Course Reserves API (v1)

http://github.com/org/folio/mod-courses

Table of contents

Course Reserves API

API calls to perform CRUD on item reservations for courses

Overview

The Course Reserves API is all about courses, and the items that have been reserved to them. (A reserved item is typically moved from its usual location to a special temporary location, along with other items reserved to the same course. From there, it can be picked up and checked out by students registered to the course in question.)

There are ten types implemented by this module. Of these, six (role, term, coursetype, department, processingstatus and copyrightstatus) are simple controlled vocabulaties used by the four more meaningful types. Of these six, term has a name, a start-date and and end-date; all the other five consist simple of a name and a description.

The four main types are more complex:

course

This represents a course, and has fields like name, description, departmentId (linking to a department within the controlled vocabulary of that name), courseNumber and sectionName.

In this type and in courselisting records (see below), some linked objects are expanded inline when a record is fetched: these are furnished in fields whose names end with object: for example, there is departmentObject field corresponding to departmentId, containing the name and description from the controlled vocabulary entry.

However, some other fields that we might expect to see in a course record (e.g. registrarId, termId) are not present. This is because of the way we represent cross-listed courses. A courselisting record contains fields common to a set of cross-listed courses: each course belongs to exactly one courselisting and has a courseListingId field that specified this. Fetched records also have a corresponding courseListingObject, so that the Registrar ID of a course can be found in courseListingObject.registrarId.

courselisting

This represents the information common to a set of cross-listed courses, and has fields like registrarId, externalId, termId (and associated termObject) and courseTypeId (and associated courseTypeObject). It also has two further fields that link to objects defined in FOLIO's Inventory module: servicepointId and locationId.

instructor

Instructors do not exist in isolation (unlike the six controlled-vocabulary objects) but only in the context of a specific courselisting: they are accessed at /coursereserves/courselistings/{listing_id}/instructors. Each instructor record contains an optional userId pointing into FOLIO's Users module, and data fields such as name and barcode which may be either copied from the User record (when it exists) or manually filled (when it does not).

reserve

Similarly, reserves exist in the context of specific courselisting: they are accessed at /coursereserves/courselistings/{listing_id}/reserves. Each reserve record contains a mandatory itemId pointing into FOLIO's Inventory module, and a copiedItem subrecord containing data fields such as title and contributors which are copied from the Item record to facilitate searching.

In addition to the fields pertaining to the reserved item, this record contains information about the reserve itself, including processingStatusId and startDate and endDate. These last two are inherited from the term associated with the courselisting that the reserve belongs to, but can be overridden.

Note on location semantics

Locations in FOLIO are quite complex. Items have both a permanent and temporary location. Both these fields also exist in the holdings record that contains an item. The item's effective location is its own temporary location if defined, otherwise its permanent location if defined, otherwise the temporary location of its holdings record if defined, otherwise the permanent location of its holdings record.

When a new reserve is created in Course reserves, the reserve record contains a copy of parts of the reserved item's record, including the item's permanent and temporary locations (but not its effective location, as this is never stored in FOLIO and only calculated when required).

In general, when editing a reserve in the Course Reserves app, only the reserve itself is edited, including for example the copyright information associated with the reserve. But as a special case, when the temporary location is edited in a reserve, the Course Reserves module also modifies the temporary location of the underlying item record in inventory. When the reserve is deleted, the temporary location of the underlying item record is reset.

When reserving an item with no temporary location of its own (such as barcode 10101 in the FOLIO sample records) to a course with no location, the reserve that is created has no temporary location, and editing it will show "(None required)" as the temporary location. Changing fields other than temporary location and saving does not change this: the reserve's temporary location remains as "(None Required)" until it is itself edited. At that point, the temporary location that is set into the reserve gets copied back into the underlying item.

When reserving an item that already has a temporary location of its own (such as barcode 90000 in the FOLIO sample records, with temporary location "Annex") to a course with no location, the reserve that is created has no temporary location of its own, but the underlying item's temporary location of course remains unchanged. Editing the reserve will show the item's temporary location as the temporary location to be edited, because that is the effective temporary location, and saving the reserve will set that as the reserve's own temporary location. When the reserve is deleted, the underlying item's own temporary location is unset, on the assumption that the item has moved back to its permanent location.

The only difference when reserving to a course that has a location of its own is that when the reserve is placed, the temporary location of the underlying item is set to the location of the course. As before, when the reserve is deleted, the item's temporary location is cleared.

/coursereserves

GET /coursereserves/courselistings

Return a list of listings

GET /coursereserves/courselistings
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.

    with valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of courselisting items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of course listing records",
  "type": "object",
  "properties": {
    "courseListings": {
      "description": "List of course listing records",
      "id": "courseListing",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "An actual instantiation in time and space of a course",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID for this listing",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "registrarId": {
            "type": "string",
            "description": "The registration id"
          },
          "externalId": {
            "type": "string",
            "description": "An external identifier associated with this listing"
          },
          "servicepointId": {
            "type": "string",
            "description": "The ID of the service point associated with this listing's reserves",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "servicepointObject": {
            "type": "object",
            "description": "The service point associated with this listing's reserves",
            "properties": {
              "id": {
                "type": "string",
                "description": "Id of service-point object"
              },
              "name": {
                "type": "string",
                "description": "service-point name, a required field"
              },
              "code": {
                "type": "string",
                "description": "service-point code, a required field"
              },
              "discoveryDisplayName": {
                "type": "string",
                "description": "display name, a required field"
              },
              "description": {
                "type": "string",
                "description": "description of the service-point"
              },
              "shelvingLagTime": {
                "type": "integer",
                "description": "shelving lag time"
              },
              "pickupLocation": {
                "type": "boolean",
                "description": "indicates whether or not the service point is a pickup location"
              },
              "holdShelfExpiryPeriod": {
                "type": "object",
                "description": "expiration period for items on the hold shelf at the service point",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "properties": {
                  "duration": {
                    "type": "integer",
                    "description": "Duration interval"
                  },
                  "intervalId": {
                    "type": "string",
                    "description": "Unit of time for the duration",
                    "enum": [
                      "Minutes",
                      "Hours",
                      "Days",
                      "Weeks",
                      "Months"
                    ],
                    "default": "Days"
                  }
                },
                "required": [
                  "duration",
                  "intervalId"
                ],
                "additionalProperties": false
              },
              "staffSlips": {
                "type": "array",
                "description": "List of staff slips for this service point",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                      "description": "The ID of the staff slip"
                    },
                    "printByDefault": {
                      "type": "boolean",
                      "description": "Whether or not to print the staff slip by default"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "printByDefault"
                  ]
                }
              }
            }
          },
          "locationId": {
            "type": "string",
            "description": "The ID of the location associated with this listing's reserves",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "locationObject": {
            "type": "object",
            "description": "The location associated with this listing's reserves",
            "properties": {
              "id": {
                "description": "id of this (shelf) location record as UUID.",
                "type": "string"
              },
              "name": {
                "description": "Name of the (shelf) location",
                "type": "string"
              },
              "code": {
                "description": "Code of the (shelf) location, usually an abbreviation of the name.",
                "type": "string"
              },
              "description": {
                "description": "Description of the (shelf) location.",
                "type": "string"
              },
              "discoveryDisplayName": {
                "description": "Name of the (shelf) location to be shown in the discovery.",
                "type": "string"
              },
              "isActive": {
                "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
                "type": "boolean"
              },
              "institutionId": {
                "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
                "type": "string"
              },
              "campusId": {
                "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
                "type": "string"
              },
              "libraryId": {
                "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
                "type": "string"
              },
              "details": {
                "description": "Details about this (shelf) location.",
                "type": "object"
              },
              "primaryServicePoint": {
                "description": "The UUID of the primary service point of this (shelf) location.",
                "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}$",
                "type": "string"
              },
              "servicePointIds": {
                "description": "All service points that this (shelf) location has.",
                "type": "array",
                "items": {
                  "description": "The UUID of a service point that belongs to this (shelf) 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}$",
                  "not": {
                    "type": "null"
                  }
                }
              }
            }
          },
          "termId": {
            "type": "string",
            "description": "The ID of the term for this listing",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "termObject": {
            "type": "object",
            "description": "The term associated with this listing",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID to identify this schedule",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of period"
              },
              "startDate": {
                "type": "string",
                "description": "The beginning of the time period"
              },
              "endDate": {
                "type": "string",
                "description": "The ending of the time period"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "name",
              "startDate",
              "endDate"
            ]
          },
          "courseTypeId": {
            "type": "string",
            "description": "The ID of the course type for this listing",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "courseTypeObject": {
            "type": "object",
            "description": "The course type associated with this listing",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "The UUID of this type",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of the type"
              },
              "description": {
                "type": "string",
                "description": "A description of this type"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "name"
            ]
          },
          "instructorObjects": {
            "type": "array",
            "description": "A listing of associated instructor objects",
            "items": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "description": "Describes an instructor for a given section",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "description": "UUID for this instructor",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                },
                "userId": {
                  "type": "string",
                  "description": "ID of associated FOLIO user (if exists)",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                },
                "name": {
                  "type": "string",
                  "description": "The name of this instructor"
                },
                "barcode": {
                  "type": "string",
                  "description": "The instructor's user barcode"
                },
                "patronGroup": {
                  "type": "string",
                  "description": "The id of the patrongroup associated with the user"
                },
                "patronGroupObject": {
                  "type": "object",
                  "description": "The instructor's user patrongroup",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "UUID for the group",
                      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                    },
                    "desc": {
                      "type": "string",
                      "description": "description of the group"
                    },
                    "group": {
                      "type": "string",
                      "description": "the unique name of the group"
                    }
                  }
                },
                "courseListingId": {
                  "type": "string",
                  "description": "The course listing this instructor teaches",
                  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                },
                "metadata": {
                  "type": "object",
                  "$schema": "http://json-schema.org/draft-04/schema#",
                  "title": "Metadata Schema",
                  "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                  "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"
                  ]
                }
              },
              "required": [
                "courseListingId",
                "name"
              ]
            }
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "termId"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "courseListings",
    "totalRecords"
  ]
}

Example:

{
    "courseListings": [
        {
            "id": "2f9763c4-6504-463d-ad96-486fab592c62",
            "name": "02",
            "termId": "33fa9d69-e93e-4bc1-a422-91e6f1ea2dea",
            "locationId": "ce7f91ed-a790-4e49-aba3-2c74e358efa6",
            "servicepointId":"fdb690f6-5be7-4131-8993-02f5c16fd6aa"
        }
    ],
    "totalRecords": 1
}

Response 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 courselistings -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list courselistings -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/courselistings

Create a new listing

POST /coursereserves/courselistings
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "An actual instantiation in time and space of a course",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID for this listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "registrarId": {
      "type": "string",
      "description": "The registration id"
    },
    "externalId": {
      "type": "string",
      "description": "An external identifier associated with this listing"
    },
    "servicepointId": {
      "type": "string",
      "description": "The ID of the service point associated with this listing's reserves",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "servicepointObject": {
      "type": "object",
      "description": "The service point associated with this listing's reserves",
      "properties": {
        "id": {
          "type": "string",
          "description": "Id of service-point object"
        },
        "name": {
          "type": "string",
          "description": "service-point name, a required field"
        },
        "code": {
          "type": "string",
          "description": "service-point code, a required field"
        },
        "discoveryDisplayName": {
          "type": "string",
          "description": "display name, a required field"
        },
        "description": {
          "type": "string",
          "description": "description of the service-point"
        },
        "shelvingLagTime": {
          "type": "integer",
          "description": "shelving lag time"
        },
        "pickupLocation": {
          "type": "boolean",
          "description": "indicates whether or not the service point is a pickup location"
        },
        "holdShelfExpiryPeriod": {
          "type": "object",
          "description": "expiration period for items on the hold shelf at the service point",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "duration": {
              "type": "integer",
              "description": "Duration interval"
            },
            "intervalId": {
              "type": "string",
              "description": "Unit of time for the duration",
              "enum": [
                "Minutes",
                "Hours",
                "Days",
                "Weeks",
                "Months"
              ],
              "default": "Days"
            }
          },
          "required": [
            "duration",
            "intervalId"
          ],
          "additionalProperties": false
        },
        "staffSlips": {
          "type": "array",
          "description": "List of staff slips for this service point",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                "description": "The ID of the staff slip"
              },
              "printByDefault": {
                "type": "boolean",
                "description": "Whether or not to print the staff slip by default"
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "printByDefault"
            ]
          }
        }
      }
    },
    "locationId": {
      "type": "string",
      "description": "The ID of the location associated with this listing's reserves",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "locationObject": {
      "type": "object",
      "description": "The location associated with this listing's reserves",
      "properties": {
        "id": {
          "description": "id of this (shelf) location record as UUID.",
          "type": "string"
        },
        "name": {
          "description": "Name of the (shelf) location",
          "type": "string"
        },
        "code": {
          "description": "Code of the (shelf) location, usually an abbreviation of the name.",
          "type": "string"
        },
        "description": {
          "description": "Description of the (shelf) location.",
          "type": "string"
        },
        "discoveryDisplayName": {
          "description": "Name of the (shelf) location to be shown in the discovery.",
          "type": "string"
        },
        "isActive": {
          "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
          "type": "boolean"
        },
        "institutionId": {
          "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
          "type": "string"
        },
        "campusId": {
          "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
          "type": "string"
        },
        "libraryId": {
          "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
          "type": "string"
        },
        "details": {
          "description": "Details about this (shelf) location.",
          "type": "object"
        },
        "primaryServicePoint": {
          "description": "The UUID of the primary service point of this (shelf) location.",
          "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}$",
          "type": "string"
        },
        "servicePointIds": {
          "description": "All service points that this (shelf) location has.",
          "type": "array",
          "items": {
            "description": "The UUID of a service point that belongs to this (shelf) 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}$",
            "not": {
              "type": "null"
            }
          }
        }
      }
    },
    "termId": {
      "type": "string",
      "description": "The ID of the term for this listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "termObject": {
      "type": "object",
      "description": "The term associated with this listing",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID to identify this schedule",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of period"
        },
        "startDate": {
          "type": "string",
          "description": "The beginning of the time period"
        },
        "endDate": {
          "type": "string",
          "description": "The ending of the time period"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name",
        "startDate",
        "endDate"
      ]
    },
    "courseTypeId": {
      "type": "string",
      "description": "The ID of the course type for this listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseTypeObject": {
      "type": "object",
      "description": "The course type associated with this listing",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this type",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the type"
        },
        "description": {
          "type": "string",
          "description": "A description of this type"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "instructorObjects": {
      "type": "array",
      "description": "A listing of associated instructor objects",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "Describes an instructor for a given section",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID for this instructor",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "userId": {
            "type": "string",
            "description": "ID of associated FOLIO user (if exists)",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of this instructor"
          },
          "barcode": {
            "type": "string",
            "description": "The instructor's user barcode"
          },
          "patronGroup": {
            "type": "string",
            "description": "The id of the patrongroup associated with the user"
          },
          "patronGroupObject": {
            "type": "object",
            "description": "The instructor's user patrongroup",
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for the group",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "desc": {
                "type": "string",
                "description": "description of the group"
              },
              "group": {
                "type": "string",
                "description": "the unique name of the group"
              }
            }
          },
          "courseListingId": {
            "type": "string",
            "description": "The course listing this instructor teaches",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "courseListingId",
          "name"
        ]
      }
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "termId"
  ]
}

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "02",
    "termId": "33fa9d69-e93e-4bc1-a422-91e6f1ea2dea",
    "locationId": "ce7f91ed-a790-4e49-aba3-2c74e358efa6",
    "servicepointId":"fdb690f6-5be7-4131-8993-02f5c16fd6aa"
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created courselisting item

Body

Media type: application/json

Type: any

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "02",
    "termId": "33fa9d69-e93e-4bc1-a422-91e6f1ea2dea",
    "locationId": "ce7f91ed-a790-4e49-aba3-2c74e358efa6",
    "servicepointId":"fdb690f6-5be7-4131-8993-02f5c16fd6aa"
}

Response 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 courselisting -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create courselistings -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/courselistings

Delete all listings

DELETE /coursereserves/courselistings
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All listings deleted

Response 400

Bad request, e.g. unknown tenant

Body

Media type: text/plain

Type: any

Example:

tenant not found

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/courselistings/{listing_id}

Retrieve courselisting item with given {courselistingId}

GET /coursereserves/courselistings/{listing_id}
URI Parameters
  • listing_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "An actual instantiation in time and space of a course",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID for this listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "registrarId": {
      "type": "string",
      "description": "The registration id"
    },
    "externalId": {
      "type": "string",
      "description": "An external identifier associated with this listing"
    },
    "servicepointId": {
      "type": "string",
      "description": "The ID of the service point associated with this listing's reserves",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "servicepointObject": {
      "type": "object",
      "description": "The service point associated with this listing's reserves",
      "properties": {
        "id": {
          "type": "string",
          "description": "Id of service-point object"
        },
        "name": {
          "type": "string",
          "description": "service-point name, a required field"
        },
        "code": {
          "type": "string",
          "description": "service-point code, a required field"
        },
        "discoveryDisplayName": {
          "type": "string",
          "description": "display name, a required field"
        },
        "description": {
          "type": "string",
          "description": "description of the service-point"
        },
        "shelvingLagTime": {
          "type": "integer",
          "description": "shelving lag time"
        },
        "pickupLocation": {
          "type": "boolean",
          "description": "indicates whether or not the service point is a pickup location"
        },
        "holdShelfExpiryPeriod": {
          "type": "object",
          "description": "expiration period for items on the hold shelf at the service point",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "duration": {
              "type": "integer",
              "description": "Duration interval"
            },
            "intervalId": {
              "type": "string",
              "description": "Unit of time for the duration",
              "enum": [
                "Minutes",
                "Hours",
                "Days",
                "Weeks",
                "Months"
              ],
              "default": "Days"
            }
          },
          "required": [
            "duration",
            "intervalId"
          ],
          "additionalProperties": false
        },
        "staffSlips": {
          "type": "array",
          "description": "List of staff slips for this service point",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                "description": "The ID of the staff slip"
              },
              "printByDefault": {
                "type": "boolean",
                "description": "Whether or not to print the staff slip by default"
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "printByDefault"
            ]
          }
        }
      }
    },
    "locationId": {
      "type": "string",
      "description": "The ID of the location associated with this listing's reserves",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "locationObject": {
      "type": "object",
      "description": "The location associated with this listing's reserves",
      "properties": {
        "id": {
          "description": "id of this (shelf) location record as UUID.",
          "type": "string"
        },
        "name": {
          "description": "Name of the (shelf) location",
          "type": "string"
        },
        "code": {
          "description": "Code of the (shelf) location, usually an abbreviation of the name.",
          "type": "string"
        },
        "description": {
          "description": "Description of the (shelf) location.",
          "type": "string"
        },
        "discoveryDisplayName": {
          "description": "Name of the (shelf) location to be shown in the discovery.",
          "type": "string"
        },
        "isActive": {
          "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
          "type": "boolean"
        },
        "institutionId": {
          "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
          "type": "string"
        },
        "campusId": {
          "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
          "type": "string"
        },
        "libraryId": {
          "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
          "type": "string"
        },
        "details": {
          "description": "Details about this (shelf) location.",
          "type": "object"
        },
        "primaryServicePoint": {
          "description": "The UUID of the primary service point of this (shelf) location.",
          "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}$",
          "type": "string"
        },
        "servicePointIds": {
          "description": "All service points that this (shelf) location has.",
          "type": "array",
          "items": {
            "description": "The UUID of a service point that belongs to this (shelf) 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}$",
            "not": {
              "type": "null"
            }
          }
        }
      }
    },
    "termId": {
      "type": "string",
      "description": "The ID of the term for this listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "termObject": {
      "type": "object",
      "description": "The term associated with this listing",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID to identify this schedule",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of period"
        },
        "startDate": {
          "type": "string",
          "description": "The beginning of the time period"
        },
        "endDate": {
          "type": "string",
          "description": "The ending of the time period"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name",
        "startDate",
        "endDate"
      ]
    },
    "courseTypeId": {
      "type": "string",
      "description": "The ID of the course type for this listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseTypeObject": {
      "type": "object",
      "description": "The course type associated with this listing",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this type",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the type"
        },
        "description": {
          "type": "string",
          "description": "A description of this type"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "instructorObjects": {
      "type": "array",
      "description": "A listing of associated instructor objects",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "Describes an instructor for a given section",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID for this instructor",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "userId": {
            "type": "string",
            "description": "ID of associated FOLIO user (if exists)",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of this instructor"
          },
          "barcode": {
            "type": "string",
            "description": "The instructor's user barcode"
          },
          "patronGroup": {
            "type": "string",
            "description": "The id of the patrongroup associated with the user"
          },
          "patronGroupObject": {
            "type": "object",
            "description": "The instructor's user patrongroup",
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for the group",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "desc": {
                "type": "string",
                "description": "description of the group"
              },
              "group": {
                "type": "string",
                "description": "the unique name of the group"
              }
            }
          },
          "courseListingId": {
            "type": "string",
            "description": "The course listing this instructor teaches",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "courseListingId",
          "name"
        ]
      }
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "termId"
  ]
}

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "02",
    "termId": "33fa9d69-e93e-4bc1-a422-91e6f1ea2dea",
    "locationId": "ce7f91ed-a790-4e49-aba3-2c74e358efa6",
    "servicepointId":"fdb690f6-5be7-4131-8993-02f5c16fd6aa"
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"courselisting not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/courselistings/{listing_id}

Update a listing by id

PUT /coursereserves/courselistings/{listing_id}
URI Parameters
  • listing_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "An actual instantiation in time and space of a course",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID for this listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "registrarId": {
      "type": "string",
      "description": "The registration id"
    },
    "externalId": {
      "type": "string",
      "description": "An external identifier associated with this listing"
    },
    "servicepointId": {
      "type": "string",
      "description": "The ID of the service point associated with this listing's reserves",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "servicepointObject": {
      "type": "object",
      "description": "The service point associated with this listing's reserves",
      "properties": {
        "id": {
          "type": "string",
          "description": "Id of service-point object"
        },
        "name": {
          "type": "string",
          "description": "service-point name, a required field"
        },
        "code": {
          "type": "string",
          "description": "service-point code, a required field"
        },
        "discoveryDisplayName": {
          "type": "string",
          "description": "display name, a required field"
        },
        "description": {
          "type": "string",
          "description": "description of the service-point"
        },
        "shelvingLagTime": {
          "type": "integer",
          "description": "shelving lag time"
        },
        "pickupLocation": {
          "type": "boolean",
          "description": "indicates whether or not the service point is a pickup location"
        },
        "holdShelfExpiryPeriod": {
          "type": "object",
          "description": "expiration period for items on the hold shelf at the service point",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "duration": {
              "type": "integer",
              "description": "Duration interval"
            },
            "intervalId": {
              "type": "string",
              "description": "Unit of time for the duration",
              "enum": [
                "Minutes",
                "Hours",
                "Days",
                "Weeks",
                "Months"
              ],
              "default": "Days"
            }
          },
          "required": [
            "duration",
            "intervalId"
          ],
          "additionalProperties": false
        },
        "staffSlips": {
          "type": "array",
          "description": "List of staff slips for this service point",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                "description": "The ID of the staff slip"
              },
              "printByDefault": {
                "type": "boolean",
                "description": "Whether or not to print the staff slip by default"
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "printByDefault"
            ]
          }
        }
      }
    },
    "locationId": {
      "type": "string",
      "description": "The ID of the location associated with this listing's reserves",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "locationObject": {
      "type": "object",
      "description": "The location associated with this listing's reserves",
      "properties": {
        "id": {
          "description": "id of this (shelf) location record as UUID.",
          "type": "string"
        },
        "name": {
          "description": "Name of the (shelf) location",
          "type": "string"
        },
        "code": {
          "description": "Code of the (shelf) location, usually an abbreviation of the name.",
          "type": "string"
        },
        "description": {
          "description": "Description of the (shelf) location.",
          "type": "string"
        },
        "discoveryDisplayName": {
          "description": "Name of the (shelf) location to be shown in the discovery.",
          "type": "string"
        },
        "isActive": {
          "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
          "type": "boolean"
        },
        "institutionId": {
          "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
          "type": "string"
        },
        "campusId": {
          "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
          "type": "string"
        },
        "libraryId": {
          "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
          "type": "string"
        },
        "details": {
          "description": "Details about this (shelf) location.",
          "type": "object"
        },
        "primaryServicePoint": {
          "description": "The UUID of the primary service point of this (shelf) location.",
          "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}$",
          "type": "string"
        },
        "servicePointIds": {
          "description": "All service points that this (shelf) location has.",
          "type": "array",
          "items": {
            "description": "The UUID of a service point that belongs to this (shelf) 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}$",
            "not": {
              "type": "null"
            }
          }
        }
      }
    },
    "termId": {
      "type": "string",
      "description": "The ID of the term for this listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "termObject": {
      "type": "object",
      "description": "The term associated with this listing",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID to identify this schedule",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of period"
        },
        "startDate": {
          "type": "string",
          "description": "The beginning of the time period"
        },
        "endDate": {
          "type": "string",
          "description": "The ending of the time period"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name",
        "startDate",
        "endDate"
      ]
    },
    "courseTypeId": {
      "type": "string",
      "description": "The ID of the course type for this listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseTypeObject": {
      "type": "object",
      "description": "The course type associated with this listing",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this type",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the type"
        },
        "description": {
          "type": "string",
          "description": "A description of this type"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "instructorObjects": {
      "type": "array",
      "description": "A listing of associated instructor objects",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "Describes an instructor for a given section",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID for this instructor",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "userId": {
            "type": "string",
            "description": "ID of associated FOLIO user (if exists)",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of this instructor"
          },
          "barcode": {
            "type": "string",
            "description": "The instructor's user barcode"
          },
          "patronGroup": {
            "type": "string",
            "description": "The id of the patrongroup associated with the user"
          },
          "patronGroupObject": {
            "type": "object",
            "description": "The instructor's user patrongroup",
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for the group",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "desc": {
                "type": "string",
                "description": "description of the group"
              },
              "group": {
                "type": "string",
                "description": "the unique name of the group"
              }
            }
          },
          "courseListingId": {
            "type": "string",
            "description": "The course listing this instructor teaches",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "courseListingId",
          "name"
        ]
      }
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "termId"
  ]
}

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "02",
    "termId": "33fa9d69-e93e-4bc1-a422-91e6f1ea2dea",
    "locationId": "ce7f91ed-a790-4e49-aba3-2c74e358efa6",
    "servicepointId":"fdb690f6-5be7-4131-8993-02f5c16fd6aa"
}

Response 204

Item successfully updated

Response 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 courselisting -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"courselisting not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/courselistings/{listing_id}

Delete courselisting item with given {courselistingId}

DELETE /coursereserves/courselistings/{listing_id}
URI Parameters
  • listing_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 courselisting -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"courselisting not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /coursereserves/courselistings/{listing_id}/courses

Return a list of courses

GET /coursereserves/courselistings/{listing_id}/courses
URI Parameters
  • listing_id: required (string)
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.

    with valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of course items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of course records",
  "type": "object",
  "properties": {
    "courses": {
      "description": "List of course records",
      "id": "courses",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "A course offered by the institution",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID to identify this course",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of course"
          },
          "description": {
            "type": "string",
            "description": "A description of the course"
          },
          "departmentId": {
            "type": "string",
            "description": "The department that this course belongs to",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "departmentObject": {
            "type": "object",
            "description": "The department associated with this course",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "The UUID of this department",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of the department"
              },
              "description": {
                "type": "string",
                "description": "A description of this department"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "name"
            ]
          },
          "courseListingId": {
            "type": "string",
            "description": "The id for the course listing this course belongs to",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "courseListingObject": {
            "type": "object",
            "description": "The course listing associated with this course",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for this listing",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "registrarId": {
                "type": "string",
                "description": "The registration id"
              },
              "externalId": {
                "type": "string",
                "description": "An external identifier associated with this listing"
              },
              "servicepointId": {
                "type": "string",
                "description": "The ID of the service point associated with this listing's reserves",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "servicepointObject": {
                "type": "object",
                "description": "The service point associated with this listing's reserves",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Id of service-point object"
                  },
                  "name": {
                    "type": "string",
                    "description": "service-point name, a required field"
                  },
                  "code": {
                    "type": "string",
                    "description": "service-point code, a required field"
                  },
                  "discoveryDisplayName": {
                    "type": "string",
                    "description": "display name, a required field"
                  },
                  "description": {
                    "type": "string",
                    "description": "description of the service-point"
                  },
                  "shelvingLagTime": {
                    "type": "integer",
                    "description": "shelving lag time"
                  },
                  "pickupLocation": {
                    "type": "boolean",
                    "description": "indicates whether or not the service point is a pickup location"
                  },
                  "holdShelfExpiryPeriod": {
                    "type": "object",
                    "description": "expiration period for items on the hold shelf at the service point",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "properties": {
                      "duration": {
                        "type": "integer",
                        "description": "Duration interval"
                      },
                      "intervalId": {
                        "type": "string",
                        "description": "Unit of time for the duration",
                        "enum": [
                          "Minutes",
                          "Hours",
                          "Days",
                          "Weeks",
                          "Months"
                        ],
                        "default": "Days"
                      }
                    },
                    "required": [
                      "duration",
                      "intervalId"
                    ],
                    "additionalProperties": false
                  },
                  "staffSlips": {
                    "type": "array",
                    "description": "List of staff slips for this service point",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                          "description": "The ID of the staff slip"
                        },
                        "printByDefault": {
                          "type": "boolean",
                          "description": "Whether or not to print the staff slip by default"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "printByDefault"
                      ]
                    }
                  }
                }
              },
              "locationId": {
                "type": "string",
                "description": "The ID of the location associated with this listing's reserves",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "locationObject": {
                "type": "object",
                "description": "The location associated with this listing's reserves",
                "properties": {
                  "id": {
                    "description": "id of this (shelf) location record as UUID.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name of the (shelf) location",
                    "type": "string"
                  },
                  "code": {
                    "description": "Code of the (shelf) location, usually an abbreviation of the name.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Description of the (shelf) location.",
                    "type": "string"
                  },
                  "discoveryDisplayName": {
                    "description": "Name of the (shelf) location to be shown in the discovery.",
                    "type": "string"
                  },
                  "isActive": {
                    "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
                    "type": "boolean"
                  },
                  "institutionId": {
                    "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
                    "type": "string"
                  },
                  "campusId": {
                    "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
                    "type": "string"
                  },
                  "libraryId": {
                    "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
                    "type": "string"
                  },
                  "details": {
                    "description": "Details about this (shelf) location.",
                    "type": "object"
                  },
                  "primaryServicePoint": {
                    "description": "The UUID of the primary service point of this (shelf) location.",
                    "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}$",
                    "type": "string"
                  },
                  "servicePointIds": {
                    "description": "All service points that this (shelf) location has.",
                    "type": "array",
                    "items": {
                      "description": "The UUID of a service point that belongs to this (shelf) 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}$",
                      "not": {
                        "type": "null"
                      }
                    }
                  }
                }
              },
              "termId": {
                "type": "string",
                "description": "The ID of the term for this listing",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "termObject": {
                "type": "object",
                "description": "The term associated with this listing",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "UUID to identify this schedule",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of period"
                  },
                  "startDate": {
                    "type": "string",
                    "description": "The beginning of the time period"
                  },
                  "endDate": {
                    "type": "string",
                    "description": "The ending of the time period"
                  },
                  "metadata": {
                    "type": "object",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "title": "Metadata Schema",
                    "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                    "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"
                    ]
                  }
                },
                "required": [
                  "name",
                  "startDate",
                  "endDate"
                ]
              },
              "courseTypeId": {
                "type": "string",
                "description": "The ID of the course type for this listing",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "courseTypeObject": {
                "type": "object",
                "description": "The course type associated with this listing",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The UUID of this type",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the type"
                  },
                  "description": {
                    "type": "string",
                    "description": "A description of this type"
                  },
                  "metadata": {
                    "type": "object",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "title": "Metadata Schema",
                    "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                    "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"
                    ]
                  }
                },
                "required": [
                  "name"
                ]
              },
              "instructorObjects": {
                "type": "array",
                "description": "A listing of associated instructor objects",
                "items": {
                  "type": "object",
                  "$schema": "http://json-schema.org/draft-04/schema#",
                  "description": "Describes an instructor for a given section",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "UUID for this instructor",
                      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                    },
                    "userId": {
                      "type": "string",
                      "description": "ID of associated FOLIO user (if exists)",
                      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of this instructor"
                    },
                    "barcode": {
                      "type": "string",
                      "description": "The instructor's user barcode"
                    },
                    "patronGroup": {
                      "type": "string",
                      "description": "The id of the patrongroup associated with the user"
                    },
                    "patronGroupObject": {
                      "type": "object",
                      "description": "The instructor's user patrongroup",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "UUID for the group",
                          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                        },
                        "desc": {
                          "type": "string",
                          "description": "description of the group"
                        },
                        "group": {
                          "type": "string",
                          "description": "the unique name of the group"
                        }
                      }
                    },
                    "courseListingId": {
                      "type": "string",
                      "description": "The course listing this instructor teaches",
                      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                    },
                    "metadata": {
                      "type": "object",
                      "$schema": "http://json-schema.org/draft-04/schema#",
                      "title": "Metadata Schema",
                      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                      "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"
                      ]
                    }
                  },
                  "required": [
                    "courseListingId",
                    "name"
                  ]
                }
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "termId"
            ]
          },
          "courseNumber": {
            "type": "string",
            "description": "A unique code identifying this course"
          },
          "sectionName": {
            "type": "string",
            "description": "A text field denoting this course's section"
          },
          "numberOfStudents": {
            "type": "integer",
            "description": "The number of students enrolled in this course"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "name",
          "departmentId",
          "courseListingId"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "courses",
    "totalRecords"
  ]
}

Example:

{
    "courses": [
        {
            "id": "2f9763c4-6504-463d-ad96-486fab592c62",
            "name": "Underwater Basket Weaving 101",
            "description": "Introduction to Aquatic Wickercraft",
            "departmentId": "8b4c9708-49ed-4b99-8383-7a9a3eef01c9",
            "courseListingId": "e5f71572-d9ef-4710-9fb0-25859845a12c"

        }
    ],
    "totalRecords": 1
}

Response 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 courses -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list courses -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/courselistings/{listing_id}/courses

Create a new course

POST /coursereserves/courselistings/{listing_id}/courses
URI Parameters
  • listing_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A course offered by the institution",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID to identify this course",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of course"
    },
    "description": {
      "type": "string",
      "description": "A description of the course"
    },
    "departmentId": {
      "type": "string",
      "description": "The department that this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "departmentObject": {
      "type": "object",
      "description": "The department associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this department",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the department"
        },
        "description": {
          "type": "string",
          "description": "A description of this department"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "courseListingId": {
      "type": "string",
      "description": "The id for the course listing this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingObject": {
      "type": "object",
      "description": "The course listing associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "registrarId": {
          "type": "string",
          "description": "The registration id"
        },
        "externalId": {
          "type": "string",
          "description": "An external identifier associated with this listing"
        },
        "servicepointId": {
          "type": "string",
          "description": "The ID of the service point associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "servicepointObject": {
          "type": "object",
          "description": "The service point associated with this listing's reserves",
          "properties": {
            "id": {
              "type": "string",
              "description": "Id of service-point object"
            },
            "name": {
              "type": "string",
              "description": "service-point name, a required field"
            },
            "code": {
              "type": "string",
              "description": "service-point code, a required field"
            },
            "discoveryDisplayName": {
              "type": "string",
              "description": "display name, a required field"
            },
            "description": {
              "type": "string",
              "description": "description of the service-point"
            },
            "shelvingLagTime": {
              "type": "integer",
              "description": "shelving lag time"
            },
            "pickupLocation": {
              "type": "boolean",
              "description": "indicates whether or not the service point is a pickup location"
            },
            "holdShelfExpiryPeriod": {
              "type": "object",
              "description": "expiration period for items on the hold shelf at the service point",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "properties": {
                "duration": {
                  "type": "integer",
                  "description": "Duration interval"
                },
                "intervalId": {
                  "type": "string",
                  "description": "Unit of time for the duration",
                  "enum": [
                    "Minutes",
                    "Hours",
                    "Days",
                    "Weeks",
                    "Months"
                  ],
                  "default": "Days"
                }
              },
              "required": [
                "duration",
                "intervalId"
              ],
              "additionalProperties": false
            },
            "staffSlips": {
              "type": "array",
              "description": "List of staff slips for this service point",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                    "description": "The ID of the staff slip"
                  },
                  "printByDefault": {
                    "type": "boolean",
                    "description": "Whether or not to print the staff slip by default"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "printByDefault"
                ]
              }
            }
          }
        },
        "locationId": {
          "type": "string",
          "description": "The ID of the location associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "locationObject": {
          "type": "object",
          "description": "The location associated with this listing's reserves",
          "properties": {
            "id": {
              "description": "id of this (shelf) location record as UUID.",
              "type": "string"
            },
            "name": {
              "description": "Name of the (shelf) location",
              "type": "string"
            },
            "code": {
              "description": "Code of the (shelf) location, usually an abbreviation of the name.",
              "type": "string"
            },
            "description": {
              "description": "Description of the (shelf) location.",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "Name of the (shelf) location to be shown in the discovery.",
              "type": "string"
            },
            "isActive": {
              "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
              "type": "boolean"
            },
            "institutionId": {
              "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "campusId": {
              "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "libraryId": {
              "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "details": {
              "description": "Details about this (shelf) location.",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "The UUID of the primary service point of this (shelf) location.",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "All service points that this (shelf) location has.",
              "type": "array",
              "items": {
                "description": "The UUID of a service point that belongs to this (shelf) 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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "termId": {
          "type": "string",
          "description": "The ID of the term for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "termObject": {
          "type": "object",
          "description": "The term associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "UUID to identify this schedule",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of period"
            },
            "startDate": {
              "type": "string",
              "description": "The beginning of the time period"
            },
            "endDate": {
              "type": "string",
              "description": "The ending of the time period"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name",
            "startDate",
            "endDate"
          ]
        },
        "courseTypeId": {
          "type": "string",
          "description": "The ID of the course type for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "courseTypeObject": {
          "type": "object",
          "description": "The course type associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "instructorObjects": {
          "type": "array",
          "description": "A listing of associated instructor objects",
          "items": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "Describes an instructor for a given section",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for this instructor",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "userId": {
                "type": "string",
                "description": "ID of associated FOLIO user (if exists)",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of this instructor"
              },
              "barcode": {
                "type": "string",
                "description": "The instructor's user barcode"
              },
              "patronGroup": {
                "type": "string",
                "description": "The id of the patrongroup associated with the user"
              },
              "patronGroupObject": {
                "type": "object",
                "description": "The instructor's user patrongroup",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "UUID for the group",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "desc": {
                    "type": "string",
                    "description": "description of the group"
                  },
                  "group": {
                    "type": "string",
                    "description": "the unique name of the group"
                  }
                }
              },
              "courseListingId": {
                "type": "string",
                "description": "The course listing this instructor teaches",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "courseListingId",
              "name"
            ]
          }
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "termId"
      ]
    },
    "courseNumber": {
      "type": "string",
      "description": "A unique code identifying this course"
    },
    "sectionName": {
      "type": "string",
      "description": "A text field denoting this course's section"
    },
    "numberOfStudents": {
      "type": "integer",
      "description": "The number of students enrolled in this course"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name",
    "departmentId",
    "courseListingId"
  ]
}

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "Underwater Basket Weaving 101",
    "description": "Introduction to Aquatic Wickercraft",
    "departmentId": "8b4c9708-49ed-4b99-8383-7a9a3eef01c9",
    "courseListingId": "e5f71572-d9ef-4710-9fb0-25859845a12c",
    "numberOfStudents": 42
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created course item

Body

Media type: application/json

Type: any

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "Underwater Basket Weaving 101",
    "description": "Introduction to Aquatic Wickercraft",
    "departmentId": "8b4c9708-49ed-4b99-8383-7a9a3eef01c9",
    "courseListingId": "e5f71572-d9ef-4710-9fb0-25859845a12c",
    "numberOfStudents": 42
}

Response 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 course -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create courses -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/courselistings/{listing_id}/courses

Delete all courses

DELETE /coursereserves/courselistings/{listing_id}/courses
URI Parameters
  • listing_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All courses deleted

Response 400

Bad request, e.g. malformed listing_id

Body

Media type: text/plain

Type: any

Example:

listing_id is not a UUID

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/courselistings/{listing_id}/courses/{course_id}

Retrieve course item with given {courseId}

GET /coursereserves/courselistings/{listing_id}/courses/{course_id}
URI Parameters
  • listing_id: required (string)
  • course_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A course offered by the institution",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID to identify this course",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of course"
    },
    "description": {
      "type": "string",
      "description": "A description of the course"
    },
    "departmentId": {
      "type": "string",
      "description": "The department that this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "departmentObject": {
      "type": "object",
      "description": "The department associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this department",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the department"
        },
        "description": {
          "type": "string",
          "description": "A description of this department"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "courseListingId": {
      "type": "string",
      "description": "The id for the course listing this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingObject": {
      "type": "object",
      "description": "The course listing associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "registrarId": {
          "type": "string",
          "description": "The registration id"
        },
        "externalId": {
          "type": "string",
          "description": "An external identifier associated with this listing"
        },
        "servicepointId": {
          "type": "string",
          "description": "The ID of the service point associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "servicepointObject": {
          "type": "object",
          "description": "The service point associated with this listing's reserves",
          "properties": {
            "id": {
              "type": "string",
              "description": "Id of service-point object"
            },
            "name": {
              "type": "string",
              "description": "service-point name, a required field"
            },
            "code": {
              "type": "string",
              "description": "service-point code, a required field"
            },
            "discoveryDisplayName": {
              "type": "string",
              "description": "display name, a required field"
            },
            "description": {
              "type": "string",
              "description": "description of the service-point"
            },
            "shelvingLagTime": {
              "type": "integer",
              "description": "shelving lag time"
            },
            "pickupLocation": {
              "type": "boolean",
              "description": "indicates whether or not the service point is a pickup location"
            },
            "holdShelfExpiryPeriod": {
              "type": "object",
              "description": "expiration period for items on the hold shelf at the service point",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "properties": {
                "duration": {
                  "type": "integer",
                  "description": "Duration interval"
                },
                "intervalId": {
                  "type": "string",
                  "description": "Unit of time for the duration",
                  "enum": [
                    "Minutes",
                    "Hours",
                    "Days",
                    "Weeks",
                    "Months"
                  ],
                  "default": "Days"
                }
              },
              "required": [
                "duration",
                "intervalId"
              ],
              "additionalProperties": false
            },
            "staffSlips": {
              "type": "array",
              "description": "List of staff slips for this service point",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                    "description": "The ID of the staff slip"
                  },
                  "printByDefault": {
                    "type": "boolean",
                    "description": "Whether or not to print the staff slip by default"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "printByDefault"
                ]
              }
            }
          }
        },
        "locationId": {
          "type": "string",
          "description": "The ID of the location associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "locationObject": {
          "type": "object",
          "description": "The location associated with this listing's reserves",
          "properties": {
            "id": {
              "description": "id of this (shelf) location record as UUID.",
              "type": "string"
            },
            "name": {
              "description": "Name of the (shelf) location",
              "type": "string"
            },
            "code": {
              "description": "Code of the (shelf) location, usually an abbreviation of the name.",
              "type": "string"
            },
            "description": {
              "description": "Description of the (shelf) location.",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "Name of the (shelf) location to be shown in the discovery.",
              "type": "string"
            },
            "isActive": {
              "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
              "type": "boolean"
            },
            "institutionId": {
              "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "campusId": {
              "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "libraryId": {
              "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "details": {
              "description": "Details about this (shelf) location.",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "The UUID of the primary service point of this (shelf) location.",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "All service points that this (shelf) location has.",
              "type": "array",
              "items": {
                "description": "The UUID of a service point that belongs to this (shelf) 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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "termId": {
          "type": "string",
          "description": "The ID of the term for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "termObject": {
          "type": "object",
          "description": "The term associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "UUID to identify this schedule",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of period"
            },
            "startDate": {
              "type": "string",
              "description": "The beginning of the time period"
            },
            "endDate": {
              "type": "string",
              "description": "The ending of the time period"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name",
            "startDate",
            "endDate"
          ]
        },
        "courseTypeId": {
          "type": "string",
          "description": "The ID of the course type for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "courseTypeObject": {
          "type": "object",
          "description": "The course type associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "instructorObjects": {
          "type": "array",
          "description": "A listing of associated instructor objects",
          "items": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "Describes an instructor for a given section",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for this instructor",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "userId": {
                "type": "string",
                "description": "ID of associated FOLIO user (if exists)",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of this instructor"
              },
              "barcode": {
                "type": "string",
                "description": "The instructor's user barcode"
              },
              "patronGroup": {
                "type": "string",
                "description": "The id of the patrongroup associated with the user"
              },
              "patronGroupObject": {
                "type": "object",
                "description": "The instructor's user patrongroup",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "UUID for the group",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "desc": {
                    "type": "string",
                    "description": "description of the group"
                  },
                  "group": {
                    "type": "string",
                    "description": "the unique name of the group"
                  }
                }
              },
              "courseListingId": {
                "type": "string",
                "description": "The course listing this instructor teaches",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "courseListingId",
              "name"
            ]
          }
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "termId"
      ]
    },
    "courseNumber": {
      "type": "string",
      "description": "A unique code identifying this course"
    },
    "sectionName": {
      "type": "string",
      "description": "A text field denoting this course's section"
    },
    "numberOfStudents": {
      "type": "integer",
      "description": "The number of students enrolled in this course"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name",
    "departmentId",
    "courseListingId"
  ]
}

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "Underwater Basket Weaving 101",
    "description": "Introduction to Aquatic Wickercraft",
    "departmentId": "8b4c9708-49ed-4b99-8383-7a9a3eef01c9",
    "courseListingId": "e5f71572-d9ef-4710-9fb0-25859845a12c",
    "numberOfStudents": 42
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"course not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/courselistings/{listing_id}/courses/{course_id}

Update a course by id

PUT /coursereserves/courselistings/{listing_id}/courses/{course_id}
URI Parameters
  • listing_id: required (string)
  • course_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A course offered by the institution",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID to identify this course",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of course"
    },
    "description": {
      "type": "string",
      "description": "A description of the course"
    },
    "departmentId": {
      "type": "string",
      "description": "The department that this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "departmentObject": {
      "type": "object",
      "description": "The department associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this department",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the department"
        },
        "description": {
          "type": "string",
          "description": "A description of this department"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "courseListingId": {
      "type": "string",
      "description": "The id for the course listing this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingObject": {
      "type": "object",
      "description": "The course listing associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "registrarId": {
          "type": "string",
          "description": "The registration id"
        },
        "externalId": {
          "type": "string",
          "description": "An external identifier associated with this listing"
        },
        "servicepointId": {
          "type": "string",
          "description": "The ID of the service point associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "servicepointObject": {
          "type": "object",
          "description": "The service point associated with this listing's reserves",
          "properties": {
            "id": {
              "type": "string",
              "description": "Id of service-point object"
            },
            "name": {
              "type": "string",
              "description": "service-point name, a required field"
            },
            "code": {
              "type": "string",
              "description": "service-point code, a required field"
            },
            "discoveryDisplayName": {
              "type": "string",
              "description": "display name, a required field"
            },
            "description": {
              "type": "string",
              "description": "description of the service-point"
            },
            "shelvingLagTime": {
              "type": "integer",
              "description": "shelving lag time"
            },
            "pickupLocation": {
              "type": "boolean",
              "description": "indicates whether or not the service point is a pickup location"
            },
            "holdShelfExpiryPeriod": {
              "type": "object",
              "description": "expiration period for items on the hold shelf at the service point",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "properties": {
                "duration": {
                  "type": "integer",
                  "description": "Duration interval"
                },
                "intervalId": {
                  "type": "string",
                  "description": "Unit of time for the duration",
                  "enum": [
                    "Minutes",
                    "Hours",
                    "Days",
                    "Weeks",
                    "Months"
                  ],
                  "default": "Days"
                }
              },
              "required": [
                "duration",
                "intervalId"
              ],
              "additionalProperties": false
            },
            "staffSlips": {
              "type": "array",
              "description": "List of staff slips for this service point",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                    "description": "The ID of the staff slip"
                  },
                  "printByDefault": {
                    "type": "boolean",
                    "description": "Whether or not to print the staff slip by default"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "printByDefault"
                ]
              }
            }
          }
        },
        "locationId": {
          "type": "string",
          "description": "The ID of the location associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "locationObject": {
          "type": "object",
          "description": "The location associated with this listing's reserves",
          "properties": {
            "id": {
              "description": "id of this (shelf) location record as UUID.",
              "type": "string"
            },
            "name": {
              "description": "Name of the (shelf) location",
              "type": "string"
            },
            "code": {
              "description": "Code of the (shelf) location, usually an abbreviation of the name.",
              "type": "string"
            },
            "description": {
              "description": "Description of the (shelf) location.",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "Name of the (shelf) location to be shown in the discovery.",
              "type": "string"
            },
            "isActive": {
              "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
              "type": "boolean"
            },
            "institutionId": {
              "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "campusId": {
              "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "libraryId": {
              "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "details": {
              "description": "Details about this (shelf) location.",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "The UUID of the primary service point of this (shelf) location.",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "All service points that this (shelf) location has.",
              "type": "array",
              "items": {
                "description": "The UUID of a service point that belongs to this (shelf) 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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "termId": {
          "type": "string",
          "description": "The ID of the term for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "termObject": {
          "type": "object",
          "description": "The term associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "UUID to identify this schedule",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of period"
            },
            "startDate": {
              "type": "string",
              "description": "The beginning of the time period"
            },
            "endDate": {
              "type": "string",
              "description": "The ending of the time period"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name",
            "startDate",
            "endDate"
          ]
        },
        "courseTypeId": {
          "type": "string",
          "description": "The ID of the course type for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "courseTypeObject": {
          "type": "object",
          "description": "The course type associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "instructorObjects": {
          "type": "array",
          "description": "A listing of associated instructor objects",
          "items": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "Describes an instructor for a given section",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for this instructor",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "userId": {
                "type": "string",
                "description": "ID of associated FOLIO user (if exists)",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of this instructor"
              },
              "barcode": {
                "type": "string",
                "description": "The instructor's user barcode"
              },
              "patronGroup": {
                "type": "string",
                "description": "The id of the patrongroup associated with the user"
              },
              "patronGroupObject": {
                "type": "object",
                "description": "The instructor's user patrongroup",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "UUID for the group",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "desc": {
                    "type": "string",
                    "description": "description of the group"
                  },
                  "group": {
                    "type": "string",
                    "description": "the unique name of the group"
                  }
                }
              },
              "courseListingId": {
                "type": "string",
                "description": "The course listing this instructor teaches",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "courseListingId",
              "name"
            ]
          }
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "termId"
      ]
    },
    "courseNumber": {
      "type": "string",
      "description": "A unique code identifying this course"
    },
    "sectionName": {
      "type": "string",
      "description": "A text field denoting this course's section"
    },
    "numberOfStudents": {
      "type": "integer",
      "description": "The number of students enrolled in this course"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name",
    "departmentId",
    "courseListingId"
  ]
}

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "Underwater Basket Weaving 101",
    "description": "Introduction to Aquatic Wickercraft",
    "departmentId": "8b4c9708-49ed-4b99-8383-7a9a3eef01c9",
    "courseListingId": "e5f71572-d9ef-4710-9fb0-25859845a12c",
    "numberOfStudents": 42
}

Response 204

Item successfully updated

Response 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 course -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"course not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/courselistings/{listing_id}/courses/{course_id}

Delete course item with given {courseId}

DELETE /coursereserves/courselistings/{listing_id}/courses/{course_id}
URI Parameters
  • listing_id: required (string)
  • course_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 course -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"course not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /coursereserves/courselistings/{listing_id}/instructors

Return a list of instructors

GET /coursereserves/courselistings/{listing_id}/instructors
URI Parameters
  • listing_id: required (string)
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.

    with valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of instructor items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of records",
  "type": "object",
  "properties": {
    "instructors": {
      "description": "List of records",
      "id": "instructors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "Describes an instructor for a given section",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID for this instructor",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "userId": {
            "type": "string",
            "description": "ID of associated FOLIO user (if exists)",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of this instructor"
          },
          "barcode": {
            "type": "string",
            "description": "The instructor's user barcode"
          },
          "patronGroup": {
            "type": "string",
            "description": "The id of the patrongroup associated with the user"
          },
          "patronGroupObject": {
            "type": "object",
            "description": "The instructor's user patrongroup",
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for the group",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "desc": {
                "type": "string",
                "description": "description of the group"
              },
              "group": {
                "type": "string",
                "description": "the unique name of the group"
              }
            }
          },
          "courseListingId": {
            "type": "string",
            "description": "The course listing this instructor teaches",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "courseListingId",
          "name"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "instructors",
    "totalRecords"
  ]
}

Example:

{
    "instructors": [
        {
            "id": "0b20ec0c-28b5-411c-a24e-530a97a7a074",
            "userId": "0b20ec0c-28b5-411c-a24e-530a97a7a074",
            "roleId": "c848bbfd-675b-4e0f-9ef3-b891c6116117",
            "name": "Anderson, Hans Christian",
            "courseListingId": "d0973301-e741-4abf-9105-8c51e56dd7cc"
        }
    ],
    "totalRecords": 1
}

Response 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 instructors -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list instructors -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/courselistings/{listing_id}/instructors

Create a new instructor

POST /coursereserves/courselistings/{listing_id}/instructors
URI Parameters
  • listing_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "Describes an instructor for a given section",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID for this instructor",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "userId": {
      "type": "string",
      "description": "ID of associated FOLIO user (if exists)",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of this instructor"
    },
    "barcode": {
      "type": "string",
      "description": "The instructor's user barcode"
    },
    "patronGroup": {
      "type": "string",
      "description": "The id of the patrongroup associated with the user"
    },
    "patronGroupObject": {
      "type": "object",
      "description": "The instructor's user patrongroup",
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID for the group",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "desc": {
          "type": "string",
          "description": "description of the group"
        },
        "group": {
          "type": "string",
          "description": "the unique name of the group"
        }
      }
    },
    "courseListingId": {
      "type": "string",
      "description": "The course listing this instructor teaches",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "courseListingId",
    "name"
  ]
}

Example:

{
    "id": "0b20ec0c-28b5-411c-a24e-530a97a7a074",
    "userId": "0b20ec0c-28b5-411c-a24e-530a97a7a074",
    "roleId": "c848bbfd-675b-4e0f-9ef3-b891c6116117",
    "name": "Anderson, Hans Christian",
    "courseListingId": "d0973301-e741-4abf-9105-8c51e56dd7cc"
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created instructor item

Body

Media type: application/json

Type: any

Example:

{
    "id": "0b20ec0c-28b5-411c-a24e-530a97a7a074",
    "userId": "0b20ec0c-28b5-411c-a24e-530a97a7a074",
    "roleId": "c848bbfd-675b-4e0f-9ef3-b891c6116117",
    "name": "Anderson, Hans Christian",
    "courseListingId": "d0973301-e741-4abf-9105-8c51e56dd7cc"
}

Response 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 instructor -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create instructors -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/courselistings/{listing_id}/instructors

Delete all instructors

DELETE /coursereserves/courselistings/{listing_id}/instructors
URI Parameters
  • listing_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All instructors deleted

Response 400

Bad request, e.g. malformed listing_id

Body

Media type: text/plain

Type: any

Example:

listing_id is not a UUID

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/courselistings/{listing_id}/instructors/{instructor_id}

Retrieve instructor item with given {instructorId}

GET /coursereserves/courselistings/{listing_id}/instructors/{instructor_id}
URI Parameters
  • listing_id: required (string)
  • instructor_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "Describes an instructor for a given section",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID for this instructor",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "userId": {
      "type": "string",
      "description": "ID of associated FOLIO user (if exists)",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of this instructor"
    },
    "barcode": {
      "type": "string",
      "description": "The instructor's user barcode"
    },
    "patronGroup": {
      "type": "string",
      "description": "The id of the patrongroup associated with the user"
    },
    "patronGroupObject": {
      "type": "object",
      "description": "The instructor's user patrongroup",
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID for the group",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "desc": {
          "type": "string",
          "description": "description of the group"
        },
        "group": {
          "type": "string",
          "description": "the unique name of the group"
        }
      }
    },
    "courseListingId": {
      "type": "string",
      "description": "The course listing this instructor teaches",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "courseListingId",
    "name"
  ]
}

Example:

{
    "id": "0b20ec0c-28b5-411c-a24e-530a97a7a074",
    "userId": "0b20ec0c-28b5-411c-a24e-530a97a7a074",
    "roleId": "c848bbfd-675b-4e0f-9ef3-b891c6116117",
    "name": "Anderson, Hans Christian",
    "courseListingId": "d0973301-e741-4abf-9105-8c51e56dd7cc"
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"instructor not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/courselistings/{listing_id}/instructors/{instructor_id}

Update an instructor by id

PUT /coursereserves/courselistings/{listing_id}/instructors/{instructor_id}
URI Parameters
  • listing_id: required (string)
  • instructor_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "Describes an instructor for a given section",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID for this instructor",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "userId": {
      "type": "string",
      "description": "ID of associated FOLIO user (if exists)",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of this instructor"
    },
    "barcode": {
      "type": "string",
      "description": "The instructor's user barcode"
    },
    "patronGroup": {
      "type": "string",
      "description": "The id of the patrongroup associated with the user"
    },
    "patronGroupObject": {
      "type": "object",
      "description": "The instructor's user patrongroup",
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID for the group",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "desc": {
          "type": "string",
          "description": "description of the group"
        },
        "group": {
          "type": "string",
          "description": "the unique name of the group"
        }
      }
    },
    "courseListingId": {
      "type": "string",
      "description": "The course listing this instructor teaches",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "courseListingId",
    "name"
  ]
}

Example:

{
    "id": "0b20ec0c-28b5-411c-a24e-530a97a7a074",
    "userId": "0b20ec0c-28b5-411c-a24e-530a97a7a074",
    "roleId": "c848bbfd-675b-4e0f-9ef3-b891c6116117",
    "name": "Anderson, Hans Christian",
    "courseListingId": "d0973301-e741-4abf-9105-8c51e56dd7cc"
}

Response 204

Item successfully updated

Response 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 instructor -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"instructor not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/courselistings/{listing_id}/instructors/{instructor_id}

Delete instructor item with given {instructorId}

DELETE /coursereserves/courselistings/{listing_id}/instructors/{instructor_id}
URI Parameters
  • listing_id: required (string)
  • instructor_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 instructor -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"instructor not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /coursereserves/courselistings/{listing_id}/reserves

Return a list of reserves

GET /coursereserves/courselistings/{listing_id}/reserves
URI Parameters
  • listing_id: required (string)
Query Parameters
  • expand: (string)

    Whether or not to expand the id fields

  • 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.

    with valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of reserve items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of records",
  "type": "object",
  "properties": {
    "reserves": {
      "description": "List of records",
      "id": "reserves",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "A reserve of a single inventory item, associated with a section",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID of this reserve",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "courseListingId": {
            "type": "string",
            "description": "ID of the listing",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "itemId": {
            "type": "string",
            "description": "ID of the item",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "processingStatusId": {
            "type": "string",
            "description": "The ID of the processing status of the reserve",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "processingStatusObject": {
            "type": "object",
            "description": "The processing status object associated with the reserve",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "The UUID of this status",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of the status"
              },
              "description": {
                "type": "string",
                "description": "A description of this status"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "name"
            ]
          },
          "startDate": {
            "type": "string",
            "description": "The beginning of the time period for this reserve"
          },
          "endDate": {
            "type": "string",
            "description": "The ending of the time period for this reserve"
          },
          "copiedItem": {
            "type": "object",
            "description": "Cached fields from the item record, for searching",
            "readOnly": true,
            "properties": {
              "barcode": {
                "type": "string",
                "description": "Item barcode, from item"
              },
              "temporaryLocationId": {
                "type": "string",
                "description": "Temporary Location ID, from item"
              },
              "temporaryLocationObject": {
                "type": "object",
                "description": "Temporary location object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "description": "name, copied from inventory",
                    "type": "string"
                  },
                  "code": {
                    "description": "code, copied from inventory",
                    "type": "string"
                  },
                  "description": {
                    "description": "description, copied from inventory",
                    "type": "string"
                  },
                  "discoveryDisplayName": {
                    "description": "discoveryDisplayName, copied from inventory",
                    "type": "string"
                  },
                  "isActive": {
                    "description": "isActive, copied from inventory",
                    "type": "boolean"
                  },
                  "institutionId": {
                    "description": "institutionId, copied from inventory",
                    "type": "string"
                  },
                  "campusId": {
                    "description": "campusId, copied from inventory",
                    "type": "string"
                  },
                  "libraryId": {
                    "description": "libraryId, copied from inventory",
                    "type": "string"
                  },
                  "details": {
                    "description": "details, copied from inventory",
                    "type": "object"
                  },
                  "primaryServicePoint": {
                    "description": "primaryServicePoint, copied from inventory",
                    "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}$",
                    "type": "string"
                  },
                  "servicePointIds": {
                    "description": "servicePointIds, copied from inventory",
                    "type": "array",
                    "items": {
                      "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}$",
                      "not": {
                        "type": "null"
                      }
                    }
                  }
                }
              },
              "permanentLocationId": {
                "type": "string",
                "description": "Permanent Location ID, from item"
              },
              "permanentLocationObject": {
                "type": "object",
                "description": "Permanent location object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "description": "name, copied from inventory",
                    "type": "string"
                  },
                  "code": {
                    "description": "code, copied from inventory",
                    "type": "string"
                  },
                  "description": {
                    "description": "description, copied from inventory",
                    "type": "string"
                  },
                  "discoveryDisplayName": {
                    "description": "discoveryDisplayName, copied from inventory",
                    "type": "string"
                  },
                  "isActive": {
                    "description": "isActive, copied from inventory",
                    "type": "boolean"
                  },
                  "institutionId": {
                    "description": "institutionId, copied from inventory",
                    "type": "string"
                  },
                  "campusId": {
                    "description": "campusId, copied from inventory",
                    "type": "string"
                  },
                  "libraryId": {
                    "description": "libraryId, copied from inventory",
                    "type": "string"
                  },
                  "details": {
                    "description": "details, copied from inventory",
                    "type": "object"
                  },
                  "primaryServicePoint": {
                    "description": "primaryServicePoint, copied from inventory",
                    "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}$",
                    "type": "string"
                  },
                  "servicePointIds": {
                    "description": "servicePointIds, copied from inventory",
                    "type": "array",
                    "items": {
                      "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}$",
                      "not": {
                        "type": "null"
                      }
                    }
                  }
                }
              },
              "title": {
                "type": "string",
                "description": "Title, from Instance"
              },
              "contributors": {
                "description": "Contributor information, from Instance",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Personal name, corporate name, meeting name"
                    },
                    "contributorTypeId": {
                      "type": "string",
                      "description": "ID for the contributor type term defined as a referencetable in settings"
                    },
                    "contributorTypeText": {
                      "type": "string",
                      "description": "Free text element for adding contributor type terms other that defined by the MARC code list for relators"
                    },
                    "contributorNameTypeId": {
                      "type": "string",
                      "description": "Contributor type terms defined by the MARC code list for relators"
                    },
                    "primary": {
                      "type": "boolean",
                      "description": "Whether this is the primary contributor"
                    }
                  }
                }
              },
              "publication": {
                "description": "List of publication items, from Instance",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "publisher": {
                      "type": "string",
                      "description": "Name of publisher, distributor, etc."
                    },
                    "place": {
                      "type": "string",
                      "description": "Place of publication, distribution, etc."
                    },
                    "dateOfPublication": {
                      "type": "string",
                      "description": "Date (year YYYY) of publication, distribution, etc."
                    },
                    "role": {
                      "type": "string",
                      "description": "The role of the publisher, distributor, etc."
                    }
                  }
                }
              },
              "callNumber": {
                "type": "string",
                "description": "The item's call number"
              },
              "uri": {
                "type": "string",
                "description": "A URI to access the item"
              },
              "volume": {
                "type": "string",
                "description": "PENDING"
              },
              "copy": {
                "type": "string",
                "description": "PENDING"
              },
              "enumeration": {
                "type": "string",
                "description": "PENDING"
              },
              "url": {
                "type": "string",
                "description": "PENDING"
              },
              "instanceId": {
                "type": "string",
                "description": "The id of the associated instance record"
              },
              "instanceHrid": {
                "type": "string",
                "description": "The HRID of the associated instance record"
              },
              "instanceDiscoverySuppress": {
                "type": "boolean",
                "description": "Whether the associated instance record has been marked as suppressed from discovery"
              },
              "holdingsId": {
                "type": "string",
                "description": "The id of the associated holdings record"
              }
            }
          },
          "temporaryLoanTypeId": {
            "type": "string",
            "description": "The type to temporarily set the loan to while on reserve",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "temporaryLoanTypeObject": {
            "type": "object",
            "description": "The loan type object of what the item is set to while on reserve",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "description": "label for the loan type",
                "type": "string"
              }
            }
          },
          "copyrightTracking": {
            "type": "object",
            "description": "Information about copyright status, volume of material used, etc.",
            "properties": {
              "additionalSectionsUsed": {
                "type": "boolean",
                "description": "Additional sections of this item used in this course"
              },
              "copyrightStatusId": {
                "type": "string",
                "description": "The id of the copyright status",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "copyrightStatusObject": {
                "type": "object",
                "description": "The copyright status object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The UUID of this type",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the type"
                  },
                  "description": {
                    "type": "string",
                    "description": "A description of this type"
                  },
                  "metadata": {
                    "type": "object",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "title": "Metadata Schema",
                    "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                    "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"
                    ]
                  }
                },
                "required": [
                  "name"
                ]
              },
              "totalPagesInItem": {
                "type": "integer",
                "description": "PENDING"
              },
              "totalPagesUsed": {
                "type": "integer",
                "description": "PENDING"
              },
              "percentOfPages": {
                "type": "string",
                "description": "Percent of pages used"
              },
              "paymentBasis": {
                "type": "string",
                "description": "PENDING"
              }
            }
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "courseListingId"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "reserves",
    "totalRecords"
  ]
}

Example:

{
    "reserves": [
        {
            "id":"970e07c5-1354-4f4a-8326-2d10a94eb33c",
            "sectionId":"79628277-984d-437a-a640-3d29fa89957b",
            "itemId":"d64ecfda-17b2-4af6-a168-4b8b4ae0afa6",
            "barcode":"234543678233",
            "status": {
                "name": "Available"
            },
            "title":"Underwater Basket Weaving: A Holistic Approach",
            "contributors": [
                {
                    "name": "Weevin, Ben",
                    "contributorNameTypeId": "37105705-bba4-4fc1-9709-2edd4842b41c",
                    "primary": true
                }
            ]
        }
    ],
    "totalRecords": 1
}

Response 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 reserves -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list reserves -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/courselistings/{listing_id}/reserves

Create a new reserve

POST /coursereserves/courselistings/{listing_id}/reserves
URI Parameters
  • listing_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A reserve of a single inventory item, associated with a section",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID of this reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingId": {
      "type": "string",
      "description": "ID of the listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "itemId": {
      "type": "string",
      "description": "ID of the item",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusId": {
      "type": "string",
      "description": "The ID of the processing status of the reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusObject": {
      "type": "object",
      "description": "The processing status object associated with the reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the status"
        },
        "description": {
          "type": "string",
          "description": "A description of this status"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "startDate": {
      "type": "string",
      "description": "The beginning of the time period for this reserve"
    },
    "endDate": {
      "type": "string",
      "description": "The ending of the time period for this reserve"
    },
    "copiedItem": {
      "type": "object",
      "description": "Cached fields from the item record, for searching",
      "readOnly": true,
      "properties": {
        "barcode": {
          "type": "string",
          "description": "Item barcode, from item"
        },
        "temporaryLocationId": {
          "type": "string",
          "description": "Temporary Location ID, from item"
        },
        "temporaryLocationObject": {
          "type": "object",
          "description": "Temporary location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "permanentLocationId": {
          "type": "string",
          "description": "Permanent Location ID, from item"
        },
        "permanentLocationObject": {
          "type": "object",
          "description": "Permanent location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "title": {
          "type": "string",
          "description": "Title, from Instance"
        },
        "contributors": {
          "description": "Contributor information, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Personal name, corporate name, meeting name"
              },
              "contributorTypeId": {
                "type": "string",
                "description": "ID for the contributor type term defined as a referencetable in settings"
              },
              "contributorTypeText": {
                "type": "string",
                "description": "Free text element for adding contributor type terms other that defined by the MARC code list for relators"
              },
              "contributorNameTypeId": {
                "type": "string",
                "description": "Contributor type terms defined by the MARC code list for relators"
              },
              "primary": {
                "type": "boolean",
                "description": "Whether this is the primary contributor"
              }
            }
          }
        },
        "publication": {
          "description": "List of publication items, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "publisher": {
                "type": "string",
                "description": "Name of publisher, distributor, etc."
              },
              "place": {
                "type": "string",
                "description": "Place of publication, distribution, etc."
              },
              "dateOfPublication": {
                "type": "string",
                "description": "Date (year YYYY) of publication, distribution, etc."
              },
              "role": {
                "type": "string",
                "description": "The role of the publisher, distributor, etc."
              }
            }
          }
        },
        "callNumber": {
          "type": "string",
          "description": "The item's call number"
        },
        "uri": {
          "type": "string",
          "description": "A URI to access the item"
        },
        "volume": {
          "type": "string",
          "description": "PENDING"
        },
        "copy": {
          "type": "string",
          "description": "PENDING"
        },
        "enumeration": {
          "type": "string",
          "description": "PENDING"
        },
        "url": {
          "type": "string",
          "description": "PENDING"
        },
        "instanceId": {
          "type": "string",
          "description": "The id of the associated instance record"
        },
        "instanceHrid": {
          "type": "string",
          "description": "The HRID of the associated instance record"
        },
        "instanceDiscoverySuppress": {
          "type": "boolean",
          "description": "Whether the associated instance record has been marked as suppressed from discovery"
        },
        "holdingsId": {
          "type": "string",
          "description": "The id of the associated holdings record"
        }
      }
    },
    "temporaryLoanTypeId": {
      "type": "string",
      "description": "The type to temporarily set the loan to while on reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "temporaryLoanTypeObject": {
      "type": "object",
      "description": "The loan type object of what the item is set to while on reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "description": "label for the loan type",
          "type": "string"
        }
      }
    },
    "copyrightTracking": {
      "type": "object",
      "description": "Information about copyright status, volume of material used, etc.",
      "properties": {
        "additionalSectionsUsed": {
          "type": "boolean",
          "description": "Additional sections of this item used in this course"
        },
        "copyrightStatusId": {
          "type": "string",
          "description": "The id of the copyright status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "copyrightStatusObject": {
          "type": "object",
          "description": "The copyright status object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "totalPagesInItem": {
          "type": "integer",
          "description": "PENDING"
        },
        "totalPagesUsed": {
          "type": "integer",
          "description": "PENDING"
        },
        "percentOfPages": {
          "type": "string",
          "description": "Percent of pages used"
        },
        "paymentBasis": {
          "type": "string",
          "description": "PENDING"
        }
      }
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "courseListingId"
  ]
}

Example:

{
    "id":"970e07c5-1354-4f4a-8326-2d10a94eb33c",
    "sectionId":"79628277-984d-437a-a640-3d29fa89957b",
    "itemId":"d64ecfda-17b2-4af6-a168-4b8b4ae0afa6",
    "copiedItem": {
        "barcode":"234543678233",
        "title":"Underwater Basket Weaving: A Holistic Approach",
        "contributors": [
            {
                "name": "Weevin, Ben",
                "contributorNameTypeId": "37105705-bba4-4fc1-9709-2edd4842b41c",
                "primary": true
            }
        ]
    }
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created reserve item

Body

Media type: application/json

Type: any

Example:

{
    "id":"970e07c5-1354-4f4a-8326-2d10a94eb33c",
    "sectionId":"79628277-984d-437a-a640-3d29fa89957b",
    "itemId":"d64ecfda-17b2-4af6-a168-4b8b4ae0afa6",
    "copiedItem": {
        "barcode":"234543678233",
        "title":"Underwater Basket Weaving: A Holistic Approach",
        "contributors": [
            {
                "name": "Weevin, Ben",
                "contributorNameTypeId": "37105705-bba4-4fc1-9709-2edd4842b41c",
                "primary": true
            }
        ]
    }
}

Response 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 reserve -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create reserves -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/courselistings/{listing_id}/reserves

Delete all reserves

DELETE /coursereserves/courselistings/{listing_id}/reserves
URI Parameters
  • listing_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All reserves deleted

Response 400

Bad request, e.g. malformed listing_id

Body

Media type: text/plain

Type: any

Example:

listing_id is not a UUID

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/courselistings/{listing_id}/reserves/{reserve_id}

Retrieve reserve item with given {reserveId}

GET /coursereserves/courselistings/{listing_id}/reserves/{reserve_id}
URI Parameters
  • listing_id: required (string)
  • reserve_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A reserve of a single inventory item, associated with a section",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID of this reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingId": {
      "type": "string",
      "description": "ID of the listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "itemId": {
      "type": "string",
      "description": "ID of the item",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusId": {
      "type": "string",
      "description": "The ID of the processing status of the reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusObject": {
      "type": "object",
      "description": "The processing status object associated with the reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the status"
        },
        "description": {
          "type": "string",
          "description": "A description of this status"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "startDate": {
      "type": "string",
      "description": "The beginning of the time period for this reserve"
    },
    "endDate": {
      "type": "string",
      "description": "The ending of the time period for this reserve"
    },
    "copiedItem": {
      "type": "object",
      "description": "Cached fields from the item record, for searching",
      "readOnly": true,
      "properties": {
        "barcode": {
          "type": "string",
          "description": "Item barcode, from item"
        },
        "temporaryLocationId": {
          "type": "string",
          "description": "Temporary Location ID, from item"
        },
        "temporaryLocationObject": {
          "type": "object",
          "description": "Temporary location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "permanentLocationId": {
          "type": "string",
          "description": "Permanent Location ID, from item"
        },
        "permanentLocationObject": {
          "type": "object",
          "description": "Permanent location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "title": {
          "type": "string",
          "description": "Title, from Instance"
        },
        "contributors": {
          "description": "Contributor information, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Personal name, corporate name, meeting name"
              },
              "contributorTypeId": {
                "type": "string",
                "description": "ID for the contributor type term defined as a referencetable in settings"
              },
              "contributorTypeText": {
                "type": "string",
                "description": "Free text element for adding contributor type terms other that defined by the MARC code list for relators"
              },
              "contributorNameTypeId": {
                "type": "string",
                "description": "Contributor type terms defined by the MARC code list for relators"
              },
              "primary": {
                "type": "boolean",
                "description": "Whether this is the primary contributor"
              }
            }
          }
        },
        "publication": {
          "description": "List of publication items, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "publisher": {
                "type": "string",
                "description": "Name of publisher, distributor, etc."
              },
              "place": {
                "type": "string",
                "description": "Place of publication, distribution, etc."
              },
              "dateOfPublication": {
                "type": "string",
                "description": "Date (year YYYY) of publication, distribution, etc."
              },
              "role": {
                "type": "string",
                "description": "The role of the publisher, distributor, etc."
              }
            }
          }
        },
        "callNumber": {
          "type": "string",
          "description": "The item's call number"
        },
        "uri": {
          "type": "string",
          "description": "A URI to access the item"
        },
        "volume": {
          "type": "string",
          "description": "PENDING"
        },
        "copy": {
          "type": "string",
          "description": "PENDING"
        },
        "enumeration": {
          "type": "string",
          "description": "PENDING"
        },
        "url": {
          "type": "string",
          "description": "PENDING"
        },
        "instanceId": {
          "type": "string",
          "description": "The id of the associated instance record"
        },
        "instanceHrid": {
          "type": "string",
          "description": "The HRID of the associated instance record"
        },
        "instanceDiscoverySuppress": {
          "type": "boolean",
          "description": "Whether the associated instance record has been marked as suppressed from discovery"
        },
        "holdingsId": {
          "type": "string",
          "description": "The id of the associated holdings record"
        }
      }
    },
    "temporaryLoanTypeId": {
      "type": "string",
      "description": "The type to temporarily set the loan to while on reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "temporaryLoanTypeObject": {
      "type": "object",
      "description": "The loan type object of what the item is set to while on reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "description": "label for the loan type",
          "type": "string"
        }
      }
    },
    "copyrightTracking": {
      "type": "object",
      "description": "Information about copyright status, volume of material used, etc.",
      "properties": {
        "additionalSectionsUsed": {
          "type": "boolean",
          "description": "Additional sections of this item used in this course"
        },
        "copyrightStatusId": {
          "type": "string",
          "description": "The id of the copyright status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "copyrightStatusObject": {
          "type": "object",
          "description": "The copyright status object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "totalPagesInItem": {
          "type": "integer",
          "description": "PENDING"
        },
        "totalPagesUsed": {
          "type": "integer",
          "description": "PENDING"
        },
        "percentOfPages": {
          "type": "string",
          "description": "Percent of pages used"
        },
        "paymentBasis": {
          "type": "string",
          "description": "PENDING"
        }
      }
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "courseListingId"
  ]
}

Example:

{
    "id":"970e07c5-1354-4f4a-8326-2d10a94eb33c",
    "sectionId":"79628277-984d-437a-a640-3d29fa89957b",
    "itemId":"d64ecfda-17b2-4af6-a168-4b8b4ae0afa6",
    "copiedItem": {
        "barcode":"234543678233",
        "title":"Underwater Basket Weaving: A Holistic Approach",
        "contributors": [
            {
                "name": "Weevin, Ben",
                "contributorNameTypeId": "37105705-bba4-4fc1-9709-2edd4842b41c",
                "primary": true
            }
        ]
    }
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"reserve not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/courselistings/{listing_id}/reserves/{reserve_id}

Update a reserve by id

PUT /coursereserves/courselistings/{listing_id}/reserves/{reserve_id}
URI Parameters
  • listing_id: required (string)
  • reserve_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A reserve of a single inventory item, associated with a section",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID of this reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingId": {
      "type": "string",
      "description": "ID of the listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "itemId": {
      "type": "string",
      "description": "ID of the item",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusId": {
      "type": "string",
      "description": "The ID of the processing status of the reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusObject": {
      "type": "object",
      "description": "The processing status object associated with the reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the status"
        },
        "description": {
          "type": "string",
          "description": "A description of this status"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "startDate": {
      "type": "string",
      "description": "The beginning of the time period for this reserve"
    },
    "endDate": {
      "type": "string",
      "description": "The ending of the time period for this reserve"
    },
    "copiedItem": {
      "type": "object",
      "description": "Cached fields from the item record, for searching",
      "readOnly": true,
      "properties": {
        "barcode": {
          "type": "string",
          "description": "Item barcode, from item"
        },
        "temporaryLocationId": {
          "type": "string",
          "description": "Temporary Location ID, from item"
        },
        "temporaryLocationObject": {
          "type": "object",
          "description": "Temporary location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "permanentLocationId": {
          "type": "string",
          "description": "Permanent Location ID, from item"
        },
        "permanentLocationObject": {
          "type": "object",
          "description": "Permanent location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "title": {
          "type": "string",
          "description": "Title, from Instance"
        },
        "contributors": {
          "description": "Contributor information, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Personal name, corporate name, meeting name"
              },
              "contributorTypeId": {
                "type": "string",
                "description": "ID for the contributor type term defined as a referencetable in settings"
              },
              "contributorTypeText": {
                "type": "string",
                "description": "Free text element for adding contributor type terms other that defined by the MARC code list for relators"
              },
              "contributorNameTypeId": {
                "type": "string",
                "description": "Contributor type terms defined by the MARC code list for relators"
              },
              "primary": {
                "type": "boolean",
                "description": "Whether this is the primary contributor"
              }
            }
          }
        },
        "publication": {
          "description": "List of publication items, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "publisher": {
                "type": "string",
                "description": "Name of publisher, distributor, etc."
              },
              "place": {
                "type": "string",
                "description": "Place of publication, distribution, etc."
              },
              "dateOfPublication": {
                "type": "string",
                "description": "Date (year YYYY) of publication, distribution, etc."
              },
              "role": {
                "type": "string",
                "description": "The role of the publisher, distributor, etc."
              }
            }
          }
        },
        "callNumber": {
          "type": "string",
          "description": "The item's call number"
        },
        "uri": {
          "type": "string",
          "description": "A URI to access the item"
        },
        "volume": {
          "type": "string",
          "description": "PENDING"
        },
        "copy": {
          "type": "string",
          "description": "PENDING"
        },
        "enumeration": {
          "type": "string",
          "description": "PENDING"
        },
        "url": {
          "type": "string",
          "description": "PENDING"
        },
        "instanceId": {
          "type": "string",
          "description": "The id of the associated instance record"
        },
        "instanceHrid": {
          "type": "string",
          "description": "The HRID of the associated instance record"
        },
        "instanceDiscoverySuppress": {
          "type": "boolean",
          "description": "Whether the associated instance record has been marked as suppressed from discovery"
        },
        "holdingsId": {
          "type": "string",
          "description": "The id of the associated holdings record"
        }
      }
    },
    "temporaryLoanTypeId": {
      "type": "string",
      "description": "The type to temporarily set the loan to while on reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "temporaryLoanTypeObject": {
      "type": "object",
      "description": "The loan type object of what the item is set to while on reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "description": "label for the loan type",
          "type": "string"
        }
      }
    },
    "copyrightTracking": {
      "type": "object",
      "description": "Information about copyright status, volume of material used, etc.",
      "properties": {
        "additionalSectionsUsed": {
          "type": "boolean",
          "description": "Additional sections of this item used in this course"
        },
        "copyrightStatusId": {
          "type": "string",
          "description": "The id of the copyright status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "copyrightStatusObject": {
          "type": "object",
          "description": "The copyright status object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "totalPagesInItem": {
          "type": "integer",
          "description": "PENDING"
        },
        "totalPagesUsed": {
          "type": "integer",
          "description": "PENDING"
        },
        "percentOfPages": {
          "type": "string",
          "description": "Percent of pages used"
        },
        "paymentBasis": {
          "type": "string",
          "description": "PENDING"
        }
      }
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "courseListingId"
  ]
}

Example:

{
    "id":"970e07c5-1354-4f4a-8326-2d10a94eb33c",
    "sectionId":"79628277-984d-437a-a640-3d29fa89957b",
    "itemId":"d64ecfda-17b2-4af6-a168-4b8b4ae0afa6",
    "copiedItem": {
        "barcode":"234543678233",
        "title":"Underwater Basket Weaving: A Holistic Approach",
        "contributors": [
            {
                "name": "Weevin, Ben",
                "contributorNameTypeId": "37105705-bba4-4fc1-9709-2edd4842b41c",
                "primary": true
            }
        ]
    }
}

Response 204

Item successfully updated

Response 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 reserve -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"reserve not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/courselistings/{listing_id}/reserves/{reserve_id}

Delete reserve item with given {reserveId}

DELETE /coursereserves/courselistings/{listing_id}/reserves/{reserve_id}
URI Parameters
  • listing_id: required (string)
  • reserve_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 reserve -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"reserve not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /coursereserves/roles

Return a list of roles

GET /coursereserves/roles
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.

    With valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of role items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of records",
  "type": "object",
  "properties": {
    "roles": {
      "description": "List of records",
      "id": "roles",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "Role taken by an instructor in a course",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The UUID of this role",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of the role"
          },
          "description": {
            "type": "string",
            "description": "A description of this role"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "roles",
    "totalRecords"
  ]
}

Example:

{
    "roles": [
        {
            "id": "504efaf3-8b76-4c12-a61b-2e281386f9ff",
            "name": "Instructor"
        }
    ],
    "totalRecords": 1
}

Response 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 roles -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list roles -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/roles

Create a new role

POST /coursereserves/roles
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "Role taken by an instructor in a course",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this role",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the role"
    },
    "description": {
      "type": "string",
      "description": "A description of this role"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id": "504efaf3-8b76-4c12-a61b-2e281386f9ff",
    "name": "Instructor"
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created role item

Body

Media type: application/json

Type: any

Example:

{
    "id": "504efaf3-8b76-4c12-a61b-2e281386f9ff",
    "name": "Instructor"
}

Response 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 role -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create roles -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/roles

Delete all roles

DELETE /coursereserves/roles
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All roles deleted

Response 400

Bad request, e.g. unknown tenant

Body

Media type: text/plain

Type: any

Example:

tenant not found

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/roles/{role_id}

Retrieve role item with given {roleId}

GET /coursereserves/roles/{role_id}
URI Parameters
  • role_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "Role taken by an instructor in a course",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this role",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the role"
    },
    "description": {
      "type": "string",
      "description": "A description of this role"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id": "504efaf3-8b76-4c12-a61b-2e281386f9ff",
    "name": "Instructor"
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"role not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/roles/{role_id}

Update a role by id

PUT /coursereserves/roles/{role_id}
URI Parameters
  • role_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "Role taken by an instructor in a course",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this role",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the role"
    },
    "description": {
      "type": "string",
      "description": "A description of this role"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id": "504efaf3-8b76-4c12-a61b-2e281386f9ff",
    "name": "Instructor"
}

Response 204

Item successfully updated

Response 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 role -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"role not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/roles/{role_id}

Delete role item with given {roleId}

DELETE /coursereserves/roles/{role_id}
URI Parameters
  • role_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 role -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"role not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /coursereserves/terms

Return a list of terms

GET /coursereserves/terms
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.

    With valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of term items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of records",
  "type": "object",
  "properties": {
    "terms": {
      "description": "List of records",
      "id": "terms",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "Temporal periods that listings exist in",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID to identify this schedule",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of period"
          },
          "startDate": {
            "type": "string",
            "description": "The beginning of the time period"
          },
          "endDate": {
            "type": "string",
            "description": "The ending of the time period"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "name",
          "startDate",
          "endDate"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "terms",
    "totalRecords"
  ]
}

Example:

{
    "terms": [
        {
            "id": "f7c87435-6c46-4330-911e-25c870d27c56",
            "name": "Spring 2020",
            "startDate": "2020-01-09T00:00:00+0000",
            "endDate": "2020-05-21T00:00:00+0000"
        }
    ],
    "totalRecords": 1
}

Response 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 terms -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list terms -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/terms

Create a new term

POST /coursereserves/terms
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "Temporal periods that listings exist in",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID to identify this schedule",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of period"
    },
    "startDate": {
      "type": "string",
      "description": "The beginning of the time period"
    },
    "endDate": {
      "type": "string",
      "description": "The ending of the time period"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name",
    "startDate",
    "endDate"
  ]
}

Example:

{
    "id": "f7c87435-6c46-4330-911e-25c870d27c56",
    "name": "Spring 2020",
    "startDate": "2020-01-09T00:00:00+0000",
    "endDate": "2020-05-21T00:00:00+0000"
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created term item

Body

Media type: application/json

Type: any

Example:

{
    "id": "f7c87435-6c46-4330-911e-25c870d27c56",
    "name": "Spring 2020",
    "startDate": "2020-01-09T00:00:00+0000",
    "endDate": "2020-05-21T00:00:00+0000"
}

Response 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 term -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create terms -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/terms

Delete all terms

DELETE /coursereserves/terms
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All terms deleted

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/terms/{term_id}

Retrieve term item with given {termId}

GET /coursereserves/terms/{term_id}
URI Parameters
  • term_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "Temporal periods that listings exist in",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID to identify this schedule",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of period"
    },
    "startDate": {
      "type": "string",
      "description": "The beginning of the time period"
    },
    "endDate": {
      "type": "string",
      "description": "The ending of the time period"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name",
    "startDate",
    "endDate"
  ]
}

Example:

{
    "id": "f7c87435-6c46-4330-911e-25c870d27c56",
    "name": "Spring 2020",
    "startDate": "2020-01-09T00:00:00+0000",
    "endDate": "2020-05-21T00:00:00+0000"
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"term not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/terms/{term_id}

Update a term by id

PUT /coursereserves/terms/{term_id}
URI Parameters
  • term_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "Temporal periods that listings exist in",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID to identify this schedule",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of period"
    },
    "startDate": {
      "type": "string",
      "description": "The beginning of the time period"
    },
    "endDate": {
      "type": "string",
      "description": "The ending of the time period"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name",
    "startDate",
    "endDate"
  ]
}

Example:

{
    "id": "f7c87435-6c46-4330-911e-25c870d27c56",
    "name": "Spring 2020",
    "startDate": "2020-01-09T00:00:00+0000",
    "endDate": "2020-05-21T00:00:00+0000"
}

Response 204

Item successfully updated

Response 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 term -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"term not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/terms/{term_id}

Delete term item with given {termId}

DELETE /coursereserves/terms/{term_id}
URI Parameters
  • term_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 term -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"term not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /coursereserves/coursetypes

Return a list of course types

GET /coursereserves/coursetypes
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.

    With valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of coursetype items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of course type records",
  "type": "object",
  "properties": {
    "courseTypes": {
      "description": "List of course types",
      "id": "courseType",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "The type of course a listing is",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The UUID of this type",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of the type"
          },
          "description": {
            "type": "string",
            "description": "A description of this type"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "courseTypes",
    "totalRecords"
  ]
}

Example:

{
    "courseTypes": [
        {
            "id":"3481976c-d00f-40c7-9c64-2bfb91acc886",
            "name": "Regular",
            "description": "A standard course"
        }
    ],
    "totalRecords": 1
}

Response 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 coursetypes -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list coursetypes -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/coursetypes

Create a new course type

POST /coursereserves/coursetypes
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The type of course a listing is",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this type",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the type"
    },
    "description": {
      "type": "string",
      "description": "A description of this type"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id":"3481976c-d00f-40c7-9c64-2bfb91acc886",
    "name": "Regular",
    "description": "A standard course"
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created coursetype item

Body

Media type: application/json

Type: any

Example:

{
    "id":"3481976c-d00f-40c7-9c64-2bfb91acc886",
    "name": "Regular",
    "description": "A standard course"
}

Response 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 coursetype -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create coursetypes -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/coursetypes

Delete all course types

DELETE /coursereserves/coursetypes
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All course types deleted

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/coursetypes/{type_id}

Retrieve coursetype item with given {coursetypeId}

GET /coursereserves/coursetypes/{type_id}
URI Parameters
  • type_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The type of course a listing is",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this type",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the type"
    },
    "description": {
      "type": "string",
      "description": "A description of this type"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id":"3481976c-d00f-40c7-9c64-2bfb91acc886",
    "name": "Regular",
    "description": "A standard course"
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"coursetype not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/coursetypes/{type_id}

Update a course type by id

PUT /coursereserves/coursetypes/{type_id}
URI Parameters
  • type_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The type of course a listing is",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this type",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the type"
    },
    "description": {
      "type": "string",
      "description": "A description of this type"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id":"3481976c-d00f-40c7-9c64-2bfb91acc886",
    "name": "Regular",
    "description": "A standard course"
}

Response 204

Item successfully updated

Response 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 coursetype -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"coursetype not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/coursetypes/{type_id}

Delete coursetype item with given {coursetypeId}

DELETE /coursereserves/coursetypes/{type_id}
URI Parameters
  • type_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 coursetype -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"coursetype not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /coursereserves/departments

Return a list of departments

GET /coursereserves/departments
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.

    With valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of department items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of department records",
  "type": "object",
  "properties": {
    "departments": {
      "description": "List of departments",
      "id": "departments",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "The department a course belongs to",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The UUID of this department",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of the department"
          },
          "description": {
            "type": "string",
            "description": "A description of this department"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "departments",
    "totalRecords"
  ]
}

Example:

{
    "departments": [
        {
            "id": "358de20b-0c95-45dd-8f9c-b3f0e98950ac",
            "name": "History"
        }
    ],
    "totalRecords": 1
}

Response 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 departments -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list departments -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/departments

Create a new department

POST /coursereserves/departments
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The department a course belongs to",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this department",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the department"
    },
    "description": {
      "type": "string",
      "description": "A description of this department"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id": "358de20b-0c95-45dd-8f9c-b3f0e98950ac",
    "name": "History"
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created department item

Body

Media type: application/json

Type: any

Example:

{
    "id": "358de20b-0c95-45dd-8f9c-b3f0e98950ac",
    "name": "History"
}

Response 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 department -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create departments -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/departments

Delete all departments

DELETE /coursereserves/departments
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All departments deleted

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/departments/{department_id}

Retrieve department item with given {departmentId}

GET /coursereserves/departments/{department_id}
URI Parameters
  • department_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The department a course belongs to",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this department",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the department"
    },
    "description": {
      "type": "string",
      "description": "A description of this department"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id": "358de20b-0c95-45dd-8f9c-b3f0e98950ac",
    "name": "History"
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"department not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/departments/{department_id}

Update a department by id

PUT /coursereserves/departments/{department_id}
URI Parameters
  • department_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The department a course belongs to",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this department",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the department"
    },
    "description": {
      "type": "string",
      "description": "A description of this department"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id": "358de20b-0c95-45dd-8f9c-b3f0e98950ac",
    "name": "History"
}

Response 204

Item successfully updated

Response 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 department -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"department not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/departments/{department_id}

Delete department item with given {departmentId}

DELETE /coursereserves/departments/{department_id}
URI Parameters
  • department_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 department -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"department not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /coursereserves/processingstatuses

Return a list of statuses

GET /coursereserves/processingstatuses
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.

    With valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of processingstatus items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of processing statuses",
  "type": "object",
  "properties": {
    "processingStatuses": {
      "description": "List of processing status records",
      "id": "processingStatus",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "The processing status for a reserve",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The UUID of this status",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of the status"
          },
          "description": {
            "type": "string",
            "description": "A description of this status"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "processingStatuses",
    "totalRecords"
  ]
}

Example:

{
    "processingStatuses": [
        {
            "id": "0e8cb1de-a713-4edd-afff-47cea8e4f1a7",
            "name": "pending"
        }
    ],
    "totalRecords": 1
}

Response 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 processingstatuses -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list processingstatuses -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/processingstatuses

Create a new status

POST /coursereserves/processingstatuses
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The processing status for a reserve",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this status",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the status"
    },
    "description": {
      "type": "string",
      "description": "A description of this status"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id": "0e8cb1de-a713-4edd-afff-47cea8e4f1a7",
    "name": "pending"
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created processingstatus item

Body

Media type: application/json

Type: any

Example:

{
    "id": "0e8cb1de-a713-4edd-afff-47cea8e4f1a7",
    "name": "pending"
}

Response 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 processingstatus -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create processingstatuses -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/processingstatuses

Delete all statuses

DELETE /coursereserves/processingstatuses
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All statuses deleted

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/processingstatuses/{status_id}

Retrieve processingstatus item with given {processingstatusId}

GET /coursereserves/processingstatuses/{status_id}
URI Parameters
  • status_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The processing status for a reserve",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this status",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the status"
    },
    "description": {
      "type": "string",
      "description": "A description of this status"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id": "0e8cb1de-a713-4edd-afff-47cea8e4f1a7",
    "name": "pending"
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"processingstatus not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/processingstatuses/{status_id}

Update a status by id

PUT /coursereserves/processingstatuses/{status_id}
URI Parameters
  • status_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The processing status for a reserve",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this status",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the status"
    },
    "description": {
      "type": "string",
      "description": "A description of this status"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id": "0e8cb1de-a713-4edd-afff-47cea8e4f1a7",
    "name": "pending"
}

Response 204

Item successfully updated

Response 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 processingstatus -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"processingstatus not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/processingstatuses/{status_id}

Delete processingstatus item with given {processingstatusId}

DELETE /coursereserves/processingstatuses/{status_id}
URI Parameters
  • status_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 processingstatus -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"processingstatus not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /coursereserves/copyrightstatuses

Return a list of copyright statuses

GET /coursereserves/copyrightstatuses
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.

    With valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of copyrightstatus items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of copyright status records",
  "type": "object",
  "properties": {
    "copyrightStatuses": {
      "description": "List of copyright statuses",
      "id": "copyrightStatus",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "The copyright status of a reserve",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "The UUID of this type",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of the type"
          },
          "description": {
            "type": "string",
            "description": "A description of this type"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "copyrightStatuses",
    "totalRecords"
  ]
}

Example:

{
    "copyrightStatuses": [
        {
            "id":"574d1da7-f239-466e-a41f-e87330c9238f",
            "name":"paid",
            "description":"Copyright Paid"
        }
    ],
    "totalRecords": 1
}

Response 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 copyrightstatuses -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list copyrightstatuses -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/copyrightstatuses

Create a new copyright status

POST /coursereserves/copyrightstatuses
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The copyright status of a reserve",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this type",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the type"
    },
    "description": {
      "type": "string",
      "description": "A description of this type"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id":"574d1da7-f239-466e-a41f-e87330c9238f",
    "name":"paid",
    "description":"Copyright Paid"
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created copyrightstatus item

Body

Media type: application/json

Type: any

Example:

{
    "id":"574d1da7-f239-466e-a41f-e87330c9238f",
    "name":"paid",
    "description":"Copyright Paid"
}

Response 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 copyrightstatus -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create copyrightstatuses -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/copyrightstatuses

Delete all copyright statuses

DELETE /coursereserves/copyrightstatuses
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All statuses deleted

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/copyrightstatuses/{status_id}

Retrieve copyrightstatus item with given {copyrightstatusId}

GET /coursereserves/copyrightstatuses/{status_id}
URI Parameters
  • status_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The copyright status of a reserve",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this type",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the type"
    },
    "description": {
      "type": "string",
      "description": "A description of this type"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id":"574d1da7-f239-466e-a41f-e87330c9238f",
    "name":"paid",
    "description":"Copyright Paid"
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"copyrightstatus not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/copyrightstatuses/{status_id}

Update a status by id

PUT /coursereserves/copyrightstatuses/{status_id}
URI Parameters
  • status_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "The copyright status of a reserve",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "The UUID of this type",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of the type"
    },
    "description": {
      "type": "string",
      "description": "A description of this type"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name"
  ]
}

Example:

{
    "id":"574d1da7-f239-466e-a41f-e87330c9238f",
    "name":"paid",
    "description":"Copyright Paid"
}

Response 204

Item successfully updated

Response 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 copyrightstatus -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"copyrightstatus not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/copyrightstatuses/{status_id}

Delete copyrightstatus item with given {copyrightstatusId}

DELETE /coursereserves/copyrightstatuses/{status_id}
URI Parameters
  • status_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 copyrightstatus -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"copyrightstatus not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /coursereserves/courses

Return a list of courses

GET /coursereserves/courses
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.

    with valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of course items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of course records",
  "type": "object",
  "properties": {
    "courses": {
      "description": "List of course records",
      "id": "courses",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "A course offered by the institution",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID to identify this course",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "name": {
            "type": "string",
            "description": "The name of course"
          },
          "description": {
            "type": "string",
            "description": "A description of the course"
          },
          "departmentId": {
            "type": "string",
            "description": "The department that this course belongs to",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "departmentObject": {
            "type": "object",
            "description": "The department associated with this course",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "The UUID of this department",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of the department"
              },
              "description": {
                "type": "string",
                "description": "A description of this department"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "name"
            ]
          },
          "courseListingId": {
            "type": "string",
            "description": "The id for the course listing this course belongs to",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "courseListingObject": {
            "type": "object",
            "description": "The course listing associated with this course",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for this listing",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "registrarId": {
                "type": "string",
                "description": "The registration id"
              },
              "externalId": {
                "type": "string",
                "description": "An external identifier associated with this listing"
              },
              "servicepointId": {
                "type": "string",
                "description": "The ID of the service point associated with this listing's reserves",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "servicepointObject": {
                "type": "object",
                "description": "The service point associated with this listing's reserves",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Id of service-point object"
                  },
                  "name": {
                    "type": "string",
                    "description": "service-point name, a required field"
                  },
                  "code": {
                    "type": "string",
                    "description": "service-point code, a required field"
                  },
                  "discoveryDisplayName": {
                    "type": "string",
                    "description": "display name, a required field"
                  },
                  "description": {
                    "type": "string",
                    "description": "description of the service-point"
                  },
                  "shelvingLagTime": {
                    "type": "integer",
                    "description": "shelving lag time"
                  },
                  "pickupLocation": {
                    "type": "boolean",
                    "description": "indicates whether or not the service point is a pickup location"
                  },
                  "holdShelfExpiryPeriod": {
                    "type": "object",
                    "description": "expiration period for items on the hold shelf at the service point",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "properties": {
                      "duration": {
                        "type": "integer",
                        "description": "Duration interval"
                      },
                      "intervalId": {
                        "type": "string",
                        "description": "Unit of time for the duration",
                        "enum": [
                          "Minutes",
                          "Hours",
                          "Days",
                          "Weeks",
                          "Months"
                        ],
                        "default": "Days"
                      }
                    },
                    "required": [
                      "duration",
                      "intervalId"
                    ],
                    "additionalProperties": false
                  },
                  "staffSlips": {
                    "type": "array",
                    "description": "List of staff slips for this service point",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                          "description": "The ID of the staff slip"
                        },
                        "printByDefault": {
                          "type": "boolean",
                          "description": "Whether or not to print the staff slip by default"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "id",
                        "printByDefault"
                      ]
                    }
                  }
                }
              },
              "locationId": {
                "type": "string",
                "description": "The ID of the location associated with this listing's reserves",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "locationObject": {
                "type": "object",
                "description": "The location associated with this listing's reserves",
                "properties": {
                  "id": {
                    "description": "id of this (shelf) location record as UUID.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name of the (shelf) location",
                    "type": "string"
                  },
                  "code": {
                    "description": "Code of the (shelf) location, usually an abbreviation of the name.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Description of the (shelf) location.",
                    "type": "string"
                  },
                  "discoveryDisplayName": {
                    "description": "Name of the (shelf) location to be shown in the discovery.",
                    "type": "string"
                  },
                  "isActive": {
                    "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
                    "type": "boolean"
                  },
                  "institutionId": {
                    "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
                    "type": "string"
                  },
                  "campusId": {
                    "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
                    "type": "string"
                  },
                  "libraryId": {
                    "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
                    "type": "string"
                  },
                  "details": {
                    "description": "Details about this (shelf) location.",
                    "type": "object"
                  },
                  "primaryServicePoint": {
                    "description": "The UUID of the primary service point of this (shelf) location.",
                    "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}$",
                    "type": "string"
                  },
                  "servicePointIds": {
                    "description": "All service points that this (shelf) location has.",
                    "type": "array",
                    "items": {
                      "description": "The UUID of a service point that belongs to this (shelf) 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}$",
                      "not": {
                        "type": "null"
                      }
                    }
                  }
                }
              },
              "termId": {
                "type": "string",
                "description": "The ID of the term for this listing",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "termObject": {
                "type": "object",
                "description": "The term associated with this listing",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "UUID to identify this schedule",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of period"
                  },
                  "startDate": {
                    "type": "string",
                    "description": "The beginning of the time period"
                  },
                  "endDate": {
                    "type": "string",
                    "description": "The ending of the time period"
                  },
                  "metadata": {
                    "type": "object",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "title": "Metadata Schema",
                    "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                    "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"
                    ]
                  }
                },
                "required": [
                  "name",
                  "startDate",
                  "endDate"
                ]
              },
              "courseTypeId": {
                "type": "string",
                "description": "The ID of the course type for this listing",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "courseTypeObject": {
                "type": "object",
                "description": "The course type associated with this listing",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The UUID of this type",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the type"
                  },
                  "description": {
                    "type": "string",
                    "description": "A description of this type"
                  },
                  "metadata": {
                    "type": "object",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "title": "Metadata Schema",
                    "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                    "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"
                    ]
                  }
                },
                "required": [
                  "name"
                ]
              },
              "instructorObjects": {
                "type": "array",
                "description": "A listing of associated instructor objects",
                "items": {
                  "type": "object",
                  "$schema": "http://json-schema.org/draft-04/schema#",
                  "description": "Describes an instructor for a given section",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "UUID for this instructor",
                      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                    },
                    "userId": {
                      "type": "string",
                      "description": "ID of associated FOLIO user (if exists)",
                      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of this instructor"
                    },
                    "barcode": {
                      "type": "string",
                      "description": "The instructor's user barcode"
                    },
                    "patronGroup": {
                      "type": "string",
                      "description": "The id of the patrongroup associated with the user"
                    },
                    "patronGroupObject": {
                      "type": "object",
                      "description": "The instructor's user patrongroup",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "UUID for the group",
                          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                        },
                        "desc": {
                          "type": "string",
                          "description": "description of the group"
                        },
                        "group": {
                          "type": "string",
                          "description": "the unique name of the group"
                        }
                      }
                    },
                    "courseListingId": {
                      "type": "string",
                      "description": "The course listing this instructor teaches",
                      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                    },
                    "metadata": {
                      "type": "object",
                      "$schema": "http://json-schema.org/draft-04/schema#",
                      "title": "Metadata Schema",
                      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                      "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"
                      ]
                    }
                  },
                  "required": [
                    "courseListingId",
                    "name"
                  ]
                }
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "termId"
            ]
          },
          "courseNumber": {
            "type": "string",
            "description": "A unique code identifying this course"
          },
          "sectionName": {
            "type": "string",
            "description": "A text field denoting this course's section"
          },
          "numberOfStudents": {
            "type": "integer",
            "description": "The number of students enrolled in this course"
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "name",
          "departmentId",
          "courseListingId"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "courses",
    "totalRecords"
  ]
}

Example:

{
    "courses": [
        {
            "id": "2f9763c4-6504-463d-ad96-486fab592c62",
            "name": "Underwater Basket Weaving 101",
            "description": "Introduction to Aquatic Wickercraft",
            "departmentId": "8b4c9708-49ed-4b99-8383-7a9a3eef01c9",
            "courseListingId": "e5f71572-d9ef-4710-9fb0-25859845a12c"

        }
    ],
    "totalRecords": 1
}

Response 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 courses -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list courses -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/courses

Create a new course

POST /coursereserves/courses
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A course offered by the institution",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID to identify this course",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of course"
    },
    "description": {
      "type": "string",
      "description": "A description of the course"
    },
    "departmentId": {
      "type": "string",
      "description": "The department that this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "departmentObject": {
      "type": "object",
      "description": "The department associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this department",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the department"
        },
        "description": {
          "type": "string",
          "description": "A description of this department"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "courseListingId": {
      "type": "string",
      "description": "The id for the course listing this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingObject": {
      "type": "object",
      "description": "The course listing associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "registrarId": {
          "type": "string",
          "description": "The registration id"
        },
        "externalId": {
          "type": "string",
          "description": "An external identifier associated with this listing"
        },
        "servicepointId": {
          "type": "string",
          "description": "The ID of the service point associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "servicepointObject": {
          "type": "object",
          "description": "The service point associated with this listing's reserves",
          "properties": {
            "id": {
              "type": "string",
              "description": "Id of service-point object"
            },
            "name": {
              "type": "string",
              "description": "service-point name, a required field"
            },
            "code": {
              "type": "string",
              "description": "service-point code, a required field"
            },
            "discoveryDisplayName": {
              "type": "string",
              "description": "display name, a required field"
            },
            "description": {
              "type": "string",
              "description": "description of the service-point"
            },
            "shelvingLagTime": {
              "type": "integer",
              "description": "shelving lag time"
            },
            "pickupLocation": {
              "type": "boolean",
              "description": "indicates whether or not the service point is a pickup location"
            },
            "holdShelfExpiryPeriod": {
              "type": "object",
              "description": "expiration period for items on the hold shelf at the service point",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "properties": {
                "duration": {
                  "type": "integer",
                  "description": "Duration interval"
                },
                "intervalId": {
                  "type": "string",
                  "description": "Unit of time for the duration",
                  "enum": [
                    "Minutes",
                    "Hours",
                    "Days",
                    "Weeks",
                    "Months"
                  ],
                  "default": "Days"
                }
              },
              "required": [
                "duration",
                "intervalId"
              ],
              "additionalProperties": false
            },
            "staffSlips": {
              "type": "array",
              "description": "List of staff slips for this service point",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                    "description": "The ID of the staff slip"
                  },
                  "printByDefault": {
                    "type": "boolean",
                    "description": "Whether or not to print the staff slip by default"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "printByDefault"
                ]
              }
            }
          }
        },
        "locationId": {
          "type": "string",
          "description": "The ID of the location associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "locationObject": {
          "type": "object",
          "description": "The location associated with this listing's reserves",
          "properties": {
            "id": {
              "description": "id of this (shelf) location record as UUID.",
              "type": "string"
            },
            "name": {
              "description": "Name of the (shelf) location",
              "type": "string"
            },
            "code": {
              "description": "Code of the (shelf) location, usually an abbreviation of the name.",
              "type": "string"
            },
            "description": {
              "description": "Description of the (shelf) location.",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "Name of the (shelf) location to be shown in the discovery.",
              "type": "string"
            },
            "isActive": {
              "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
              "type": "boolean"
            },
            "institutionId": {
              "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "campusId": {
              "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "libraryId": {
              "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "details": {
              "description": "Details about this (shelf) location.",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "The UUID of the primary service point of this (shelf) location.",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "All service points that this (shelf) location has.",
              "type": "array",
              "items": {
                "description": "The UUID of a service point that belongs to this (shelf) 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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "termId": {
          "type": "string",
          "description": "The ID of the term for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "termObject": {
          "type": "object",
          "description": "The term associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "UUID to identify this schedule",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of period"
            },
            "startDate": {
              "type": "string",
              "description": "The beginning of the time period"
            },
            "endDate": {
              "type": "string",
              "description": "The ending of the time period"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name",
            "startDate",
            "endDate"
          ]
        },
        "courseTypeId": {
          "type": "string",
          "description": "The ID of the course type for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "courseTypeObject": {
          "type": "object",
          "description": "The course type associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "instructorObjects": {
          "type": "array",
          "description": "A listing of associated instructor objects",
          "items": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "Describes an instructor for a given section",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for this instructor",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "userId": {
                "type": "string",
                "description": "ID of associated FOLIO user (if exists)",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of this instructor"
              },
              "barcode": {
                "type": "string",
                "description": "The instructor's user barcode"
              },
              "patronGroup": {
                "type": "string",
                "description": "The id of the patrongroup associated with the user"
              },
              "patronGroupObject": {
                "type": "object",
                "description": "The instructor's user patrongroup",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "UUID for the group",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "desc": {
                    "type": "string",
                    "description": "description of the group"
                  },
                  "group": {
                    "type": "string",
                    "description": "the unique name of the group"
                  }
                }
              },
              "courseListingId": {
                "type": "string",
                "description": "The course listing this instructor teaches",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "courseListingId",
              "name"
            ]
          }
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "termId"
      ]
    },
    "courseNumber": {
      "type": "string",
      "description": "A unique code identifying this course"
    },
    "sectionName": {
      "type": "string",
      "description": "A text field denoting this course's section"
    },
    "numberOfStudents": {
      "type": "integer",
      "description": "The number of students enrolled in this course"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name",
    "departmentId",
    "courseListingId"
  ]
}

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "Underwater Basket Weaving 101",
    "description": "Introduction to Aquatic Wickercraft",
    "departmentId": "8b4c9708-49ed-4b99-8383-7a9a3eef01c9",
    "courseListingId": "e5f71572-d9ef-4710-9fb0-25859845a12c",
    "numberOfStudents": 42
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created course item

Body

Media type: application/json

Type: any

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "Underwater Basket Weaving 101",
    "description": "Introduction to Aquatic Wickercraft",
    "departmentId": "8b4c9708-49ed-4b99-8383-7a9a3eef01c9",
    "courseListingId": "e5f71572-d9ef-4710-9fb0-25859845a12c",
    "numberOfStudents": 42
}

Response 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 course -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create courses -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/courses

Delete ALL courses

DELETE /coursereserves/courses
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All courses delete

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/courses/{course_id}

Retrieve course item with given {courseId}

GET /coursereserves/courses/{course_id}
URI Parameters
  • course_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A course offered by the institution",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID to identify this course",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of course"
    },
    "description": {
      "type": "string",
      "description": "A description of the course"
    },
    "departmentId": {
      "type": "string",
      "description": "The department that this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "departmentObject": {
      "type": "object",
      "description": "The department associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this department",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the department"
        },
        "description": {
          "type": "string",
          "description": "A description of this department"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "courseListingId": {
      "type": "string",
      "description": "The id for the course listing this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingObject": {
      "type": "object",
      "description": "The course listing associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "registrarId": {
          "type": "string",
          "description": "The registration id"
        },
        "externalId": {
          "type": "string",
          "description": "An external identifier associated with this listing"
        },
        "servicepointId": {
          "type": "string",
          "description": "The ID of the service point associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "servicepointObject": {
          "type": "object",
          "description": "The service point associated with this listing's reserves",
          "properties": {
            "id": {
              "type": "string",
              "description": "Id of service-point object"
            },
            "name": {
              "type": "string",
              "description": "service-point name, a required field"
            },
            "code": {
              "type": "string",
              "description": "service-point code, a required field"
            },
            "discoveryDisplayName": {
              "type": "string",
              "description": "display name, a required field"
            },
            "description": {
              "type": "string",
              "description": "description of the service-point"
            },
            "shelvingLagTime": {
              "type": "integer",
              "description": "shelving lag time"
            },
            "pickupLocation": {
              "type": "boolean",
              "description": "indicates whether or not the service point is a pickup location"
            },
            "holdShelfExpiryPeriod": {
              "type": "object",
              "description": "expiration period for items on the hold shelf at the service point",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "properties": {
                "duration": {
                  "type": "integer",
                  "description": "Duration interval"
                },
                "intervalId": {
                  "type": "string",
                  "description": "Unit of time for the duration",
                  "enum": [
                    "Minutes",
                    "Hours",
                    "Days",
                    "Weeks",
                    "Months"
                  ],
                  "default": "Days"
                }
              },
              "required": [
                "duration",
                "intervalId"
              ],
              "additionalProperties": false
            },
            "staffSlips": {
              "type": "array",
              "description": "List of staff slips for this service point",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                    "description": "The ID of the staff slip"
                  },
                  "printByDefault": {
                    "type": "boolean",
                    "description": "Whether or not to print the staff slip by default"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "printByDefault"
                ]
              }
            }
          }
        },
        "locationId": {
          "type": "string",
          "description": "The ID of the location associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "locationObject": {
          "type": "object",
          "description": "The location associated with this listing's reserves",
          "properties": {
            "id": {
              "description": "id of this (shelf) location record as UUID.",
              "type": "string"
            },
            "name": {
              "description": "Name of the (shelf) location",
              "type": "string"
            },
            "code": {
              "description": "Code of the (shelf) location, usually an abbreviation of the name.",
              "type": "string"
            },
            "description": {
              "description": "Description of the (shelf) location.",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "Name of the (shelf) location to be shown in the discovery.",
              "type": "string"
            },
            "isActive": {
              "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
              "type": "boolean"
            },
            "institutionId": {
              "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "campusId": {
              "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "libraryId": {
              "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "details": {
              "description": "Details about this (shelf) location.",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "The UUID of the primary service point of this (shelf) location.",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "All service points that this (shelf) location has.",
              "type": "array",
              "items": {
                "description": "The UUID of a service point that belongs to this (shelf) 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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "termId": {
          "type": "string",
          "description": "The ID of the term for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "termObject": {
          "type": "object",
          "description": "The term associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "UUID to identify this schedule",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of period"
            },
            "startDate": {
              "type": "string",
              "description": "The beginning of the time period"
            },
            "endDate": {
              "type": "string",
              "description": "The ending of the time period"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name",
            "startDate",
            "endDate"
          ]
        },
        "courseTypeId": {
          "type": "string",
          "description": "The ID of the course type for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "courseTypeObject": {
          "type": "object",
          "description": "The course type associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "instructorObjects": {
          "type": "array",
          "description": "A listing of associated instructor objects",
          "items": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "Describes an instructor for a given section",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for this instructor",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "userId": {
                "type": "string",
                "description": "ID of associated FOLIO user (if exists)",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of this instructor"
              },
              "barcode": {
                "type": "string",
                "description": "The instructor's user barcode"
              },
              "patronGroup": {
                "type": "string",
                "description": "The id of the patrongroup associated with the user"
              },
              "patronGroupObject": {
                "type": "object",
                "description": "The instructor's user patrongroup",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "UUID for the group",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "desc": {
                    "type": "string",
                    "description": "description of the group"
                  },
                  "group": {
                    "type": "string",
                    "description": "the unique name of the group"
                  }
                }
              },
              "courseListingId": {
                "type": "string",
                "description": "The course listing this instructor teaches",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "courseListingId",
              "name"
            ]
          }
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "termId"
      ]
    },
    "courseNumber": {
      "type": "string",
      "description": "A unique code identifying this course"
    },
    "sectionName": {
      "type": "string",
      "description": "A text field denoting this course's section"
    },
    "numberOfStudents": {
      "type": "integer",
      "description": "The number of students enrolled in this course"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name",
    "departmentId",
    "courseListingId"
  ]
}

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "Underwater Basket Weaving 101",
    "description": "Introduction to Aquatic Wickercraft",
    "departmentId": "8b4c9708-49ed-4b99-8383-7a9a3eef01c9",
    "courseListingId": "e5f71572-d9ef-4710-9fb0-25859845a12c",
    "numberOfStudents": 42
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"course not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/courses/{course_id}

Update a course by id

PUT /coursereserves/courses/{course_id}
URI Parameters
  • course_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A course offered by the institution",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID to identify this course",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "name": {
      "type": "string",
      "description": "The name of course"
    },
    "description": {
      "type": "string",
      "description": "A description of the course"
    },
    "departmentId": {
      "type": "string",
      "description": "The department that this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "departmentObject": {
      "type": "object",
      "description": "The department associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this department",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the department"
        },
        "description": {
          "type": "string",
          "description": "A description of this department"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "courseListingId": {
      "type": "string",
      "description": "The id for the course listing this course belongs to",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingObject": {
      "type": "object",
      "description": "The course listing associated with this course",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "UUID for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "registrarId": {
          "type": "string",
          "description": "The registration id"
        },
        "externalId": {
          "type": "string",
          "description": "An external identifier associated with this listing"
        },
        "servicepointId": {
          "type": "string",
          "description": "The ID of the service point associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "servicepointObject": {
          "type": "object",
          "description": "The service point associated with this listing's reserves",
          "properties": {
            "id": {
              "type": "string",
              "description": "Id of service-point object"
            },
            "name": {
              "type": "string",
              "description": "service-point name, a required field"
            },
            "code": {
              "type": "string",
              "description": "service-point code, a required field"
            },
            "discoveryDisplayName": {
              "type": "string",
              "description": "display name, a required field"
            },
            "description": {
              "type": "string",
              "description": "description of the service-point"
            },
            "shelvingLagTime": {
              "type": "integer",
              "description": "shelving lag time"
            },
            "pickupLocation": {
              "type": "boolean",
              "description": "indicates whether or not the service point is a pickup location"
            },
            "holdShelfExpiryPeriod": {
              "type": "object",
              "description": "expiration period for items on the hold shelf at the service point",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "properties": {
                "duration": {
                  "type": "integer",
                  "description": "Duration interval"
                },
                "intervalId": {
                  "type": "string",
                  "description": "Unit of time for the duration",
                  "enum": [
                    "Minutes",
                    "Hours",
                    "Days",
                    "Weeks",
                    "Months"
                  ],
                  "default": "Days"
                }
              },
              "required": [
                "duration",
                "intervalId"
              ],
              "additionalProperties": false
            },
            "staffSlips": {
              "type": "array",
              "description": "List of staff slips for this service point",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
                    "description": "The ID of the staff slip"
                  },
                  "printByDefault": {
                    "type": "boolean",
                    "description": "Whether or not to print the staff slip by default"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "printByDefault"
                ]
              }
            }
          }
        },
        "locationId": {
          "type": "string",
          "description": "The ID of the location associated with this listing's reserves",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "locationObject": {
          "type": "object",
          "description": "The location associated with this listing's reserves",
          "properties": {
            "id": {
              "description": "id of this (shelf) location record as UUID.",
              "type": "string"
            },
            "name": {
              "description": "Name of the (shelf) location",
              "type": "string"
            },
            "code": {
              "description": "Code of the (shelf) location, usually an abbreviation of the name.",
              "type": "string"
            },
            "description": {
              "description": "Description of the (shelf) location.",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "Name of the (shelf) location to be shown in the discovery.",
              "type": "string"
            },
            "isActive": {
              "description": "Whether this (shelf) location is active. Inactive (shelf) locations can no longer been used.",
              "type": "boolean"
            },
            "institutionId": {
              "description": "The UUID of the institution, the first-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "campusId": {
              "description": "The UUID of the campus, the second-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "libraryId": {
              "description": "The UUID of the library, the third-level location unit, this (shelf) location belongs to.",
              "type": "string"
            },
            "details": {
              "description": "Details about this (shelf) location.",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "The UUID of the primary service point of this (shelf) location.",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "All service points that this (shelf) location has.",
              "type": "array",
              "items": {
                "description": "The UUID of a service point that belongs to this (shelf) 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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "termId": {
          "type": "string",
          "description": "The ID of the term for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "termObject": {
          "type": "object",
          "description": "The term associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "UUID to identify this schedule",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of period"
            },
            "startDate": {
              "type": "string",
              "description": "The beginning of the time period"
            },
            "endDate": {
              "type": "string",
              "description": "The ending of the time period"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name",
            "startDate",
            "endDate"
          ]
        },
        "courseTypeId": {
          "type": "string",
          "description": "The ID of the course type for this listing",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "courseTypeObject": {
          "type": "object",
          "description": "The course type associated with this listing",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "instructorObjects": {
          "type": "array",
          "description": "A listing of associated instructor objects",
          "items": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "Describes an instructor for a given section",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "UUID for this instructor",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "userId": {
                "type": "string",
                "description": "ID of associated FOLIO user (if exists)",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of this instructor"
              },
              "barcode": {
                "type": "string",
                "description": "The instructor's user barcode"
              },
              "patronGroup": {
                "type": "string",
                "description": "The id of the patrongroup associated with the user"
              },
              "patronGroupObject": {
                "type": "object",
                "description": "The instructor's user patrongroup",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "UUID for the group",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "desc": {
                    "type": "string",
                    "description": "description of the group"
                  },
                  "group": {
                    "type": "string",
                    "description": "the unique name of the group"
                  }
                }
              },
              "courseListingId": {
                "type": "string",
                "description": "The course listing this instructor teaches",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "courseListingId",
              "name"
            ]
          }
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "termId"
      ]
    },
    "courseNumber": {
      "type": "string",
      "description": "A unique code identifying this course"
    },
    "sectionName": {
      "type": "string",
      "description": "A text field denoting this course's section"
    },
    "numberOfStudents": {
      "type": "integer",
      "description": "The number of students enrolled in this course"
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "name",
    "departmentId",
    "courseListingId"
  ]
}

Example:

{
    "id": "2f9763c4-6504-463d-ad96-486fab592c62",
    "name": "Underwater Basket Weaving 101",
    "description": "Introduction to Aquatic Wickercraft",
    "departmentId": "8b4c9708-49ed-4b99-8383-7a9a3eef01c9",
    "courseListingId": "e5f71572-d9ef-4710-9fb0-25859845a12c",
    "numberOfStudents": 42
}

Response 204

Item successfully updated

Response 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 course -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"course not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/courses/{course_id}

Delete course item with given {courseId}

DELETE /coursereserves/courses/{course_id}
URI Parameters
  • course_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 course -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"course not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /coursereserves/reserves

Return a list of reserves

GET /coursereserves/reserves
Query Parameters
  • expand: (string)

    What fields to expand

  • 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.

    with valid searchable fields

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    name=aaa
    
  • 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

    Example:

    10
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of reserve items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of records",
  "type": "object",
  "properties": {
    "reserves": {
      "description": "List of records",
      "id": "reserves",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "A reserve of a single inventory item, associated with a section",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "UUID of this reserve",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "courseListingId": {
            "type": "string",
            "description": "ID of the listing",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "itemId": {
            "type": "string",
            "description": "ID of the item",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "processingStatusId": {
            "type": "string",
            "description": "The ID of the processing status of the reserve",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "processingStatusObject": {
            "type": "object",
            "description": "The processing status object associated with the reserve",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "The UUID of this status",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "name": {
                "type": "string",
                "description": "The name of the status"
              },
              "description": {
                "type": "string",
                "description": "A description of this status"
              },
              "metadata": {
                "type": "object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "Metadata Schema",
                "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                "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"
                ]
              }
            },
            "required": [
              "name"
            ]
          },
          "startDate": {
            "type": "string",
            "description": "The beginning of the time period for this reserve"
          },
          "endDate": {
            "type": "string",
            "description": "The ending of the time period for this reserve"
          },
          "copiedItem": {
            "type": "object",
            "description": "Cached fields from the item record, for searching",
            "readOnly": true,
            "properties": {
              "barcode": {
                "type": "string",
                "description": "Item barcode, from item"
              },
              "temporaryLocationId": {
                "type": "string",
                "description": "Temporary Location ID, from item"
              },
              "temporaryLocationObject": {
                "type": "object",
                "description": "Temporary location object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "description": "name, copied from inventory",
                    "type": "string"
                  },
                  "code": {
                    "description": "code, copied from inventory",
                    "type": "string"
                  },
                  "description": {
                    "description": "description, copied from inventory",
                    "type": "string"
                  },
                  "discoveryDisplayName": {
                    "description": "discoveryDisplayName, copied from inventory",
                    "type": "string"
                  },
                  "isActive": {
                    "description": "isActive, copied from inventory",
                    "type": "boolean"
                  },
                  "institutionId": {
                    "description": "institutionId, copied from inventory",
                    "type": "string"
                  },
                  "campusId": {
                    "description": "campusId, copied from inventory",
                    "type": "string"
                  },
                  "libraryId": {
                    "description": "libraryId, copied from inventory",
                    "type": "string"
                  },
                  "details": {
                    "description": "details, copied from inventory",
                    "type": "object"
                  },
                  "primaryServicePoint": {
                    "description": "primaryServicePoint, copied from inventory",
                    "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}$",
                    "type": "string"
                  },
                  "servicePointIds": {
                    "description": "servicePointIds, copied from inventory",
                    "type": "array",
                    "items": {
                      "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}$",
                      "not": {
                        "type": "null"
                      }
                    }
                  }
                }
              },
              "permanentLocationId": {
                "type": "string",
                "description": "Permanent Location ID, from item"
              },
              "permanentLocationObject": {
                "type": "object",
                "description": "Permanent location object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "description": "name, copied from inventory",
                    "type": "string"
                  },
                  "code": {
                    "description": "code, copied from inventory",
                    "type": "string"
                  },
                  "description": {
                    "description": "description, copied from inventory",
                    "type": "string"
                  },
                  "discoveryDisplayName": {
                    "description": "discoveryDisplayName, copied from inventory",
                    "type": "string"
                  },
                  "isActive": {
                    "description": "isActive, copied from inventory",
                    "type": "boolean"
                  },
                  "institutionId": {
                    "description": "institutionId, copied from inventory",
                    "type": "string"
                  },
                  "campusId": {
                    "description": "campusId, copied from inventory",
                    "type": "string"
                  },
                  "libraryId": {
                    "description": "libraryId, copied from inventory",
                    "type": "string"
                  },
                  "details": {
                    "description": "details, copied from inventory",
                    "type": "object"
                  },
                  "primaryServicePoint": {
                    "description": "primaryServicePoint, copied from inventory",
                    "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}$",
                    "type": "string"
                  },
                  "servicePointIds": {
                    "description": "servicePointIds, copied from inventory",
                    "type": "array",
                    "items": {
                      "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}$",
                      "not": {
                        "type": "null"
                      }
                    }
                  }
                }
              },
              "title": {
                "type": "string",
                "description": "Title, from Instance"
              },
              "contributors": {
                "description": "Contributor information, from Instance",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Personal name, corporate name, meeting name"
                    },
                    "contributorTypeId": {
                      "type": "string",
                      "description": "ID for the contributor type term defined as a referencetable in settings"
                    },
                    "contributorTypeText": {
                      "type": "string",
                      "description": "Free text element for adding contributor type terms other that defined by the MARC code list for relators"
                    },
                    "contributorNameTypeId": {
                      "type": "string",
                      "description": "Contributor type terms defined by the MARC code list for relators"
                    },
                    "primary": {
                      "type": "boolean",
                      "description": "Whether this is the primary contributor"
                    }
                  }
                }
              },
              "publication": {
                "description": "List of publication items, from Instance",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "publisher": {
                      "type": "string",
                      "description": "Name of publisher, distributor, etc."
                    },
                    "place": {
                      "type": "string",
                      "description": "Place of publication, distribution, etc."
                    },
                    "dateOfPublication": {
                      "type": "string",
                      "description": "Date (year YYYY) of publication, distribution, etc."
                    },
                    "role": {
                      "type": "string",
                      "description": "The role of the publisher, distributor, etc."
                    }
                  }
                }
              },
              "callNumber": {
                "type": "string",
                "description": "The item's call number"
              },
              "uri": {
                "type": "string",
                "description": "A URI to access the item"
              },
              "volume": {
                "type": "string",
                "description": "PENDING"
              },
              "copy": {
                "type": "string",
                "description": "PENDING"
              },
              "enumeration": {
                "type": "string",
                "description": "PENDING"
              },
              "url": {
                "type": "string",
                "description": "PENDING"
              },
              "instanceId": {
                "type": "string",
                "description": "The id of the associated instance record"
              },
              "instanceHrid": {
                "type": "string",
                "description": "The HRID of the associated instance record"
              },
              "instanceDiscoverySuppress": {
                "type": "boolean",
                "description": "Whether the associated instance record has been marked as suppressed from discovery"
              },
              "holdingsId": {
                "type": "string",
                "description": "The id of the associated holdings record"
              }
            }
          },
          "temporaryLoanTypeId": {
            "type": "string",
            "description": "The type to temporarily set the loan to while on reserve",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "temporaryLoanTypeObject": {
            "type": "object",
            "description": "The loan type object of what the item is set to while on reserve",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "description": "label for the loan type",
                "type": "string"
              }
            }
          },
          "copyrightTracking": {
            "type": "object",
            "description": "Information about copyright status, volume of material used, etc.",
            "properties": {
              "additionalSectionsUsed": {
                "type": "boolean",
                "description": "Additional sections of this item used in this course"
              },
              "copyrightStatusId": {
                "type": "string",
                "description": "The id of the copyright status",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "copyrightStatusObject": {
                "type": "object",
                "description": "The copyright status object",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The UUID of this type",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the type"
                  },
                  "description": {
                    "type": "string",
                    "description": "A description of this type"
                  },
                  "metadata": {
                    "type": "object",
                    "$schema": "http://json-schema.org/draft-04/schema#",
                    "title": "Metadata Schema",
                    "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
                    "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"
                    ]
                  }
                },
                "required": [
                  "name"
                ]
              },
              "totalPagesInItem": {
                "type": "integer",
                "description": "PENDING"
              },
              "totalPagesUsed": {
                "type": "integer",
                "description": "PENDING"
              },
              "percentOfPages": {
                "type": "string",
                "description": "Percent of pages used"
              },
              "paymentBasis": {
                "type": "string",
                "description": "PENDING"
              }
            }
          },
          "metadata": {
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "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"
            ]
          }
        },
        "required": [
          "courseListingId"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    }
  },
  "required": [
    "reserves",
    "totalRecords"
  ]
}

Example:

{
    "reserves": [
        {
            "id":"970e07c5-1354-4f4a-8326-2d10a94eb33c",
            "sectionId":"79628277-984d-437a-a640-3d29fa89957b",
            "itemId":"d64ecfda-17b2-4af6-a168-4b8b4ae0afa6",
            "barcode":"234543678233",
            "status": {
                "name": "Available"
            },
            "title":"Underwater Basket Weaving: A Holistic Approach",
            "contributors": [
                {
                    "name": "Weevin, Ben",
                    "contributorNameTypeId": "37105705-bba4-4fc1-9709-2edd4842b41c",
                    "primary": true
                }
            ]
        }
    ],
    "totalRecords": 1
}

Response 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 reserves -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list reserves -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /coursereserves/reserves

Create a new reserve

POST /coursereserves/reserves
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A reserve of a single inventory item, associated with a section",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID of this reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingId": {
      "type": "string",
      "description": "ID of the listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "itemId": {
      "type": "string",
      "description": "ID of the item",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusId": {
      "type": "string",
      "description": "The ID of the processing status of the reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusObject": {
      "type": "object",
      "description": "The processing status object associated with the reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the status"
        },
        "description": {
          "type": "string",
          "description": "A description of this status"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "startDate": {
      "type": "string",
      "description": "The beginning of the time period for this reserve"
    },
    "endDate": {
      "type": "string",
      "description": "The ending of the time period for this reserve"
    },
    "copiedItem": {
      "type": "object",
      "description": "Cached fields from the item record, for searching",
      "readOnly": true,
      "properties": {
        "barcode": {
          "type": "string",
          "description": "Item barcode, from item"
        },
        "temporaryLocationId": {
          "type": "string",
          "description": "Temporary Location ID, from item"
        },
        "temporaryLocationObject": {
          "type": "object",
          "description": "Temporary location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "permanentLocationId": {
          "type": "string",
          "description": "Permanent Location ID, from item"
        },
        "permanentLocationObject": {
          "type": "object",
          "description": "Permanent location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "title": {
          "type": "string",
          "description": "Title, from Instance"
        },
        "contributors": {
          "description": "Contributor information, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Personal name, corporate name, meeting name"
              },
              "contributorTypeId": {
                "type": "string",
                "description": "ID for the contributor type term defined as a referencetable in settings"
              },
              "contributorTypeText": {
                "type": "string",
                "description": "Free text element for adding contributor type terms other that defined by the MARC code list for relators"
              },
              "contributorNameTypeId": {
                "type": "string",
                "description": "Contributor type terms defined by the MARC code list for relators"
              },
              "primary": {
                "type": "boolean",
                "description": "Whether this is the primary contributor"
              }
            }
          }
        },
        "publication": {
          "description": "List of publication items, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "publisher": {
                "type": "string",
                "description": "Name of publisher, distributor, etc."
              },
              "place": {
                "type": "string",
                "description": "Place of publication, distribution, etc."
              },
              "dateOfPublication": {
                "type": "string",
                "description": "Date (year YYYY) of publication, distribution, etc."
              },
              "role": {
                "type": "string",
                "description": "The role of the publisher, distributor, etc."
              }
            }
          }
        },
        "callNumber": {
          "type": "string",
          "description": "The item's call number"
        },
        "uri": {
          "type": "string",
          "description": "A URI to access the item"
        },
        "volume": {
          "type": "string",
          "description": "PENDING"
        },
        "copy": {
          "type": "string",
          "description": "PENDING"
        },
        "enumeration": {
          "type": "string",
          "description": "PENDING"
        },
        "url": {
          "type": "string",
          "description": "PENDING"
        },
        "instanceId": {
          "type": "string",
          "description": "The id of the associated instance record"
        },
        "instanceHrid": {
          "type": "string",
          "description": "The HRID of the associated instance record"
        },
        "instanceDiscoverySuppress": {
          "type": "boolean",
          "description": "Whether the associated instance record has been marked as suppressed from discovery"
        },
        "holdingsId": {
          "type": "string",
          "description": "The id of the associated holdings record"
        }
      }
    },
    "temporaryLoanTypeId": {
      "type": "string",
      "description": "The type to temporarily set the loan to while on reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "temporaryLoanTypeObject": {
      "type": "object",
      "description": "The loan type object of what the item is set to while on reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "description": "label for the loan type",
          "type": "string"
        }
      }
    },
    "copyrightTracking": {
      "type": "object",
      "description": "Information about copyright status, volume of material used, etc.",
      "properties": {
        "additionalSectionsUsed": {
          "type": "boolean",
          "description": "Additional sections of this item used in this course"
        },
        "copyrightStatusId": {
          "type": "string",
          "description": "The id of the copyright status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "copyrightStatusObject": {
          "type": "object",
          "description": "The copyright status object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "totalPagesInItem": {
          "type": "integer",
          "description": "PENDING"
        },
        "totalPagesUsed": {
          "type": "integer",
          "description": "PENDING"
        },
        "percentOfPages": {
          "type": "string",
          "description": "Percent of pages used"
        },
        "paymentBasis": {
          "type": "string",
          "description": "PENDING"
        }
      }
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "courseListingId"
  ]
}

Example:

{
    "id":"970e07c5-1354-4f4a-8326-2d10a94eb33c",
    "sectionId":"79628277-984d-437a-a640-3d29fa89957b",
    "itemId":"d64ecfda-17b2-4af6-a168-4b8b4ae0afa6",
    "copiedItem": {
        "barcode":"234543678233",
        "title":"Underwater Basket Weaving: A Holistic Approach",
        "contributors": [
            {
                "name": "Weevin, Ben",
                "contributorNameTypeId": "37105705-bba4-4fc1-9709-2edd4842b41c",
                "primary": true
            }
        ]
    }
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created reserve item

Body

Media type: application/json

Type: any

Example:

{
    "id":"970e07c5-1354-4f4a-8326-2d10a94eb33c",
    "sectionId":"79628277-984d-437a-a640-3d29fa89957b",
    "itemId":"d64ecfda-17b2-4af6-a168-4b8b4ae0afa6",
    "copiedItem": {
        "barcode":"234543678233",
        "title":"Underwater Basket Weaving: A Holistic Approach",
        "contributors": [
            {
                "name": "Weevin, Ben",
                "contributorNameTypeId": "37105705-bba4-4fc1-9709-2edd4842b41c",
                "primary": true
            }
        ]
    }
}

Response 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 reserve -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create reserves -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /coursereserves/reserves

Delete ALL reserves

DELETE /coursereserves/reserves
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All reserves deleted

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error

Body

Media type: text/plain

Type: any

Example:

Internal server error

GET /coursereserves/reserves/{reserve_id}

Retrieve reserve item with given {reserveId}

GET /coursereserves/reserves/{reserve_id}
URI Parameters
  • reserve_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A reserve of a single inventory item, associated with a section",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID of this reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingId": {
      "type": "string",
      "description": "ID of the listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "itemId": {
      "type": "string",
      "description": "ID of the item",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusId": {
      "type": "string",
      "description": "The ID of the processing status of the reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusObject": {
      "type": "object",
      "description": "The processing status object associated with the reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the status"
        },
        "description": {
          "type": "string",
          "description": "A description of this status"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "startDate": {
      "type": "string",
      "description": "The beginning of the time period for this reserve"
    },
    "endDate": {
      "type": "string",
      "description": "The ending of the time period for this reserve"
    },
    "copiedItem": {
      "type": "object",
      "description": "Cached fields from the item record, for searching",
      "readOnly": true,
      "properties": {
        "barcode": {
          "type": "string",
          "description": "Item barcode, from item"
        },
        "temporaryLocationId": {
          "type": "string",
          "description": "Temporary Location ID, from item"
        },
        "temporaryLocationObject": {
          "type": "object",
          "description": "Temporary location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "permanentLocationId": {
          "type": "string",
          "description": "Permanent Location ID, from item"
        },
        "permanentLocationObject": {
          "type": "object",
          "description": "Permanent location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "title": {
          "type": "string",
          "description": "Title, from Instance"
        },
        "contributors": {
          "description": "Contributor information, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Personal name, corporate name, meeting name"
              },
              "contributorTypeId": {
                "type": "string",
                "description": "ID for the contributor type term defined as a referencetable in settings"
              },
              "contributorTypeText": {
                "type": "string",
                "description": "Free text element for adding contributor type terms other that defined by the MARC code list for relators"
              },
              "contributorNameTypeId": {
                "type": "string",
                "description": "Contributor type terms defined by the MARC code list for relators"
              },
              "primary": {
                "type": "boolean",
                "description": "Whether this is the primary contributor"
              }
            }
          }
        },
        "publication": {
          "description": "List of publication items, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "publisher": {
                "type": "string",
                "description": "Name of publisher, distributor, etc."
              },
              "place": {
                "type": "string",
                "description": "Place of publication, distribution, etc."
              },
              "dateOfPublication": {
                "type": "string",
                "description": "Date (year YYYY) of publication, distribution, etc."
              },
              "role": {
                "type": "string",
                "description": "The role of the publisher, distributor, etc."
              }
            }
          }
        },
        "callNumber": {
          "type": "string",
          "description": "The item's call number"
        },
        "uri": {
          "type": "string",
          "description": "A URI to access the item"
        },
        "volume": {
          "type": "string",
          "description": "PENDING"
        },
        "copy": {
          "type": "string",
          "description": "PENDING"
        },
        "enumeration": {
          "type": "string",
          "description": "PENDING"
        },
        "url": {
          "type": "string",
          "description": "PENDING"
        },
        "instanceId": {
          "type": "string",
          "description": "The id of the associated instance record"
        },
        "instanceHrid": {
          "type": "string",
          "description": "The HRID of the associated instance record"
        },
        "instanceDiscoverySuppress": {
          "type": "boolean",
          "description": "Whether the associated instance record has been marked as suppressed from discovery"
        },
        "holdingsId": {
          "type": "string",
          "description": "The id of the associated holdings record"
        }
      }
    },
    "temporaryLoanTypeId": {
      "type": "string",
      "description": "The type to temporarily set the loan to while on reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "temporaryLoanTypeObject": {
      "type": "object",
      "description": "The loan type object of what the item is set to while on reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "description": "label for the loan type",
          "type": "string"
        }
      }
    },
    "copyrightTracking": {
      "type": "object",
      "description": "Information about copyright status, volume of material used, etc.",
      "properties": {
        "additionalSectionsUsed": {
          "type": "boolean",
          "description": "Additional sections of this item used in this course"
        },
        "copyrightStatusId": {
          "type": "string",
          "description": "The id of the copyright status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "copyrightStatusObject": {
          "type": "object",
          "description": "The copyright status object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "totalPagesInItem": {
          "type": "integer",
          "description": "PENDING"
        },
        "totalPagesUsed": {
          "type": "integer",
          "description": "PENDING"
        },
        "percentOfPages": {
          "type": "string",
          "description": "Percent of pages used"
        },
        "paymentBasis": {
          "type": "string",
          "description": "PENDING"
        }
      }
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "courseListingId"
  ]
}

Example:

{
    "id":"970e07c5-1354-4f4a-8326-2d10a94eb33c",
    "sectionId":"79628277-984d-437a-a640-3d29fa89957b",
    "itemId":"d64ecfda-17b2-4af6-a168-4b8b4ae0afa6",
    "copiedItem": {
        "barcode":"234543678233",
        "title":"Underwater Basket Weaving: A Holistic Approach",
        "contributors": [
            {
                "name": "Weevin, Ben",
                "contributorNameTypeId": "37105705-bba4-4fc1-9709-2edd4842b41c",
                "primary": true
            }
        ]
    }
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"reserve not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

PUT /coursereserves/reserves/{reserve_id}

Update a reserve by id

PUT /coursereserves/reserves/{reserve_id}
URI Parameters
  • reserve_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "description": "A reserve of a single inventory item, associated with a section",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "UUID of this reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "courseListingId": {
      "type": "string",
      "description": "ID of the listing",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "itemId": {
      "type": "string",
      "description": "ID of the item",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusId": {
      "type": "string",
      "description": "The ID of the processing status of the reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "processingStatusObject": {
      "type": "object",
      "description": "The processing status object associated with the reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "description": "The UUID of this status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "name": {
          "type": "string",
          "description": "The name of the status"
        },
        "description": {
          "type": "string",
          "description": "A description of this status"
        },
        "metadata": {
          "type": "object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Metadata Schema",
          "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
          "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"
          ]
        }
      },
      "required": [
        "name"
      ]
    },
    "startDate": {
      "type": "string",
      "description": "The beginning of the time period for this reserve"
    },
    "endDate": {
      "type": "string",
      "description": "The ending of the time period for this reserve"
    },
    "copiedItem": {
      "type": "object",
      "description": "Cached fields from the item record, for searching",
      "readOnly": true,
      "properties": {
        "barcode": {
          "type": "string",
          "description": "Item barcode, from item"
        },
        "temporaryLocationId": {
          "type": "string",
          "description": "Temporary Location ID, from item"
        },
        "temporaryLocationObject": {
          "type": "object",
          "description": "Temporary location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "permanentLocationId": {
          "type": "string",
          "description": "Permanent Location ID, from item"
        },
        "permanentLocationObject": {
          "type": "object",
          "description": "Permanent location object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "description": "name, copied from inventory",
              "type": "string"
            },
            "code": {
              "description": "code, copied from inventory",
              "type": "string"
            },
            "description": {
              "description": "description, copied from inventory",
              "type": "string"
            },
            "discoveryDisplayName": {
              "description": "discoveryDisplayName, copied from inventory",
              "type": "string"
            },
            "isActive": {
              "description": "isActive, copied from inventory",
              "type": "boolean"
            },
            "institutionId": {
              "description": "institutionId, copied from inventory",
              "type": "string"
            },
            "campusId": {
              "description": "campusId, copied from inventory",
              "type": "string"
            },
            "libraryId": {
              "description": "libraryId, copied from inventory",
              "type": "string"
            },
            "details": {
              "description": "details, copied from inventory",
              "type": "object"
            },
            "primaryServicePoint": {
              "description": "primaryServicePoint, copied from inventory",
              "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}$",
              "type": "string"
            },
            "servicePointIds": {
              "description": "servicePointIds, copied from inventory",
              "type": "array",
              "items": {
                "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}$",
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        "title": {
          "type": "string",
          "description": "Title, from Instance"
        },
        "contributors": {
          "description": "Contributor information, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Personal name, corporate name, meeting name"
              },
              "contributorTypeId": {
                "type": "string",
                "description": "ID for the contributor type term defined as a referencetable in settings"
              },
              "contributorTypeText": {
                "type": "string",
                "description": "Free text element for adding contributor type terms other that defined by the MARC code list for relators"
              },
              "contributorNameTypeId": {
                "type": "string",
                "description": "Contributor type terms defined by the MARC code list for relators"
              },
              "primary": {
                "type": "boolean",
                "description": "Whether this is the primary contributor"
              }
            }
          }
        },
        "publication": {
          "description": "List of publication items, from Instance",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "publisher": {
                "type": "string",
                "description": "Name of publisher, distributor, etc."
              },
              "place": {
                "type": "string",
                "description": "Place of publication, distribution, etc."
              },
              "dateOfPublication": {
                "type": "string",
                "description": "Date (year YYYY) of publication, distribution, etc."
              },
              "role": {
                "type": "string",
                "description": "The role of the publisher, distributor, etc."
              }
            }
          }
        },
        "callNumber": {
          "type": "string",
          "description": "The item's call number"
        },
        "uri": {
          "type": "string",
          "description": "A URI to access the item"
        },
        "volume": {
          "type": "string",
          "description": "PENDING"
        },
        "copy": {
          "type": "string",
          "description": "PENDING"
        },
        "enumeration": {
          "type": "string",
          "description": "PENDING"
        },
        "url": {
          "type": "string",
          "description": "PENDING"
        },
        "instanceId": {
          "type": "string",
          "description": "The id of the associated instance record"
        },
        "instanceHrid": {
          "type": "string",
          "description": "The HRID of the associated instance record"
        },
        "instanceDiscoverySuppress": {
          "type": "boolean",
          "description": "Whether the associated instance record has been marked as suppressed from discovery"
        },
        "holdingsId": {
          "type": "string",
          "description": "The id of the associated holdings record"
        }
      }
    },
    "temporaryLoanTypeId": {
      "type": "string",
      "description": "The type to temporarily set the loan to while on reserve",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "temporaryLoanTypeObject": {
      "type": "object",
      "description": "The loan type object of what the item is set to while on reserve",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "description": "label for the loan type",
          "type": "string"
        }
      }
    },
    "copyrightTracking": {
      "type": "object",
      "description": "Information about copyright status, volume of material used, etc.",
      "properties": {
        "additionalSectionsUsed": {
          "type": "boolean",
          "description": "Additional sections of this item used in this course"
        },
        "copyrightStatusId": {
          "type": "string",
          "description": "The id of the copyright status",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "copyrightStatusObject": {
          "type": "object",
          "description": "The copyright status object",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of this type",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
            },
            "name": {
              "type": "string",
              "description": "The name of the type"
            },
            "description": {
              "type": "string",
              "description": "A description of this type"
            },
            "metadata": {
              "type": "object",
              "$schema": "http://json-schema.org/draft-04/schema#",
              "title": "Metadata Schema",
              "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
              "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"
              ]
            }
          },
          "required": [
            "name"
          ]
        },
        "totalPagesInItem": {
          "type": "integer",
          "description": "PENDING"
        },
        "totalPagesUsed": {
          "type": "integer",
          "description": "PENDING"
        },
        "percentOfPages": {
          "type": "string",
          "description": "Percent of pages used"
        },
        "paymentBasis": {
          "type": "string",
          "description": "PENDING"
        }
      }
    },
    "metadata": {
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "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"
      ]
    }
  },
  "required": [
    "courseListingId"
  ]
}

Example:

{
    "id":"970e07c5-1354-4f4a-8326-2d10a94eb33c",
    "sectionId":"79628277-984d-437a-a640-3d29fa89957b",
    "itemId":"d64ecfda-17b2-4af6-a168-4b8b4ae0afa6",
    "copiedItem": {
        "barcode":"234543678233",
        "title":"Underwater Basket Weaving: A Holistic Approach",
        "contributors": [
            {
                "name": "Weevin, Ben",
                "contributorNameTypeId": "37105705-bba4-4fc1-9709-2edd4842b41c",
                "primary": true
            }
        ]
    }
}

Response 204

Item successfully updated

Response 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 reserve -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"reserve not found"

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/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#",
        "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": {
            "type": "object",
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "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"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /coursereserves/reserves/{reserve_id}

Delete reserve item with given {reserveId}

DELETE /coursereserves/reserves/{reserve_id}
URI Parameters
  • reserve_id: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 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 reserve -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"reserve not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator