Folio Licenses (7.3.0)

API for the Folio library services platform mod-licenses app

Licenses

Get a set of license records.

Authorizations:
accessTokenokapiToken
query Parameters
filters
string
match
string
term
string
sort
string
stats
boolean
perPage
integer
offset
integer
page
integer
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "meta": { },
  • "page": 0,
  • "pageSize": 0,
  • "total": 0,
  • "totalPages": 0,
  • "totalRecords": 0,
  • "results": [
    ]
}

Create license record

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
name
required
string

The name of the license or amendment

description
string

A description of the license or amendment

string or RefData (object)

The status (e.g. In negotiation, Not yet active, Active, Rejected, Expired)

One of
string

The status (e.g. In negotiation, Not yet active, Active, Rejected, Expired)

startDate
string <date>

The date on which the license or amendment becomes active

endDate
string <date>

The date on which the license or amendment expires

string or RefData (object)

How the end date should be interpreted (e.g. Explicit, Open ended, Implicit)

One of
string

How the end date should be interpreted (e.g. Explicit, Open ended, Implicit)

openEnded
boolean

Derived flag indicating whether the license or amendment is open-ended

Array of objects (Tag)

Tags applied to the license or amendment

Array
value
string
normValue
string
Array of objects (DocumentAttachment)

Documents attached to the license or amendment

Array
name
string
note
string
url
string <uri>
Array of objects (DocumentAttachment)

Supplementary documents attached to the license or amendment

Array
name
string
note
string
url
string <uri>
Array of objects (InternalContact)

Internal contacts associated with the license or amendment

Array
user
string <uuid>
string or RefData (object)

The contact's role in relation to the license

object

Custom properties (license terms) — keys are property names, values are arrays of property value instances

additional property
Array of objects (CustomPropertyValue)
string or RefData (object)

The license type (e.g. Local, Consortial, National, Alliance)

One of
string

The license type (e.g. Local, Consortial, National, Alliance)

localReference
string

A local reference identifier for the license

Array of objects (AlternateName)

Alternative names for the license

Array
name
required
string
Array of objects (LicenseOrg)

Organisations associated with the license

Array
object (Organisation)
primaryOrg
boolean
Default: false

Whether this is the primary organisation for the license

note
string

A note about this organisation's relationship to the license

Array of objects

The roles this organisation plays in relation to the license

Array of objects (LicenseAmendment)

Amendments to the license, sorted by start date descending

Array
name
required
string

The name of the license or amendment

description
string

A description of the license or amendment

string or RefData (object)

The status (e.g. In negotiation, Not yet active, Active, Rejected, Expired)

startDate
string <date>

The date on which the license or amendment becomes active

endDate
string <date>

The date on which the license or amendment expires

string or RefData (object)

How the end date should be interpreted (e.g. Explicit, Open ended, Implicit)

openEnded
boolean

Derived flag indicating whether the license or amendment is open-ended

Array of objects (Tag)

Tags applied to the license or amendment

Array of objects (DocumentAttachment)

Documents attached to the license or amendment

Array of objects (DocumentAttachment)

Supplementary documents attached to the license or amendment

Array of objects (InternalContact)

Internal contacts associated with the license or amendment

object

Custom properties (license terms) — keys are property names, values are arrays of property value instances

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "tags": [
    ],
  • "docs": [],
  • "supplementaryDocs": [],
  • "contacts": [
    ],
  • "customProperties": {
    },
  • "type": "string",
  • "localReference": "string",
  • "alternateNames": [
    ],
  • "orgs": [
    ],
  • "amendments": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "lastUpdated": "2019-08-24T14:15:22Z",
  • "tags": [
    ],
  • "docs": [
    ],
  • "supplementaryDocs": [
    ],
  • "contacts": [
    ],
  • "customProperties": {
    },
  • "type": "string",
  • "localReference": "string",
  • "alternateNames": [
    ],
  • "orgs": [
    ],
  • "amendments": [
    ]
}

Get a specified license record

Authorizations:
accessTokenokapiToken
path Parameters
licenseId
required
string <uuid>

UUID for a license

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "lastUpdated": "2019-08-24T14:15:22Z",
  • "tags": [
    ],
  • "docs": [
    ],
  • "supplementaryDocs": [
    ],
  • "contacts": [
    ],
  • "customProperties": {
    },
  • "type": "string",
  • "localReference": "string",
  • "alternateNames": [
    ],
  • "orgs": [
    ],
  • "amendments": [
    ]
}

Update license record

Authorizations:
accessTokenokapiToken
path Parameters
licenseId
required
string <uuid>

UUID for a license

Request Body schema: application/json
required
name
required
string

The name of the license or amendment

description
string

A description of the license or amendment

string or RefData (object)

The status (e.g. In negotiation, Not yet active, Active, Rejected, Expired)

One of
string

The status (e.g. In negotiation, Not yet active, Active, Rejected, Expired)

startDate
string <date>

The date on which the license or amendment becomes active

endDate
string <date>

The date on which the license or amendment expires

string or RefData (object)

How the end date should be interpreted (e.g. Explicit, Open ended, Implicit)

One of
string

How the end date should be interpreted (e.g. Explicit, Open ended, Implicit)

openEnded
boolean

Derived flag indicating whether the license or amendment is open-ended

Array of objects (Tag)

Tags applied to the license or amendment

Array
value
string
normValue
string
Array of objects (DocumentAttachment)

Documents attached to the license or amendment

Array
name
string
note
string
url
string <uri>
Array of objects (DocumentAttachment)

Supplementary documents attached to the license or amendment

Array
name
string
note
string
url
string <uri>
Array of objects (InternalContact)

Internal contacts associated with the license or amendment

Array
user
string <uuid>
string or RefData (object)

The contact's role in relation to the license

object

Custom properties (license terms) — keys are property names, values are arrays of property value instances

additional property
Array of objects (CustomPropertyValue)
string or RefData (object)

The license type (e.g. Local, Consortial, National, Alliance)

One of
string

The license type (e.g. Local, Consortial, National, Alliance)

localReference
string

A local reference identifier for the license

Array of objects (AlternateName)

Alternative names for the license

Array
name
required
string
Array of objects (LicenseOrg)

Organisations associated with the license

Array
object (Organisation)
primaryOrg
boolean
Default: false

Whether this is the primary organisation for the license

note
string

A note about this organisation's relationship to the license

Array of objects

The roles this organisation plays in relation to the license

Array of objects (LicenseAmendment)

Amendments to the license, sorted by start date descending

Array
name
required
string

The name of the license or amendment

description
string

A description of the license or amendment

string or RefData (object)

The status (e.g. In negotiation, Not yet active, Active, Rejected, Expired)

startDate
string <date>

The date on which the license or amendment becomes active

endDate
string <date>

The date on which the license or amendment expires

string or RefData (object)

How the end date should be interpreted (e.g. Explicit, Open ended, Implicit)

openEnded
boolean

Derived flag indicating whether the license or amendment is open-ended

Array of objects (Tag)

Tags applied to the license or amendment

Array of objects (DocumentAttachment)

Documents attached to the license or amendment

Array of objects (DocumentAttachment)

Supplementary documents attached to the license or amendment

Array of objects (InternalContact)

Internal contacts associated with the license or amendment

object

Custom properties (license terms) — keys are property names, values are arrays of property value instances

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "tags": [
    ],
  • "docs": [],
  • "supplementaryDocs": [],
  • "contacts": [
    ],
  • "customProperties": {
    },
  • "type": "string",
  • "localReference": "string",
  • "alternateNames": [
    ],
  • "orgs": [
    ],
  • "amendments": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "lastUpdated": "2019-08-24T14:15:22Z",
  • "tags": [
    ],
  • "docs": [
    ],
  • "supplementaryDocs": [
    ],
  • "contacts": [
    ],
  • "customProperties": {
    },
  • "type": "string",
  • "localReference": "string",
  • "alternateNames": [
    ],
  • "orgs": [
    ],
  • "amendments": [
    ]
}

Delete a specified license record

Authorizations:
accessTokenokapiToken
path Parameters
licenseId
required
string <uuid>

UUID for a license

Responses

Response samples

Content type
application/json
{
  • "error": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "message": "string",
  • "exception": "string",
  • "stackTrace": [
    ]
}

Get subscription agreements linked to a specified license

Authorizations:
accessTokenokapiToken
path Parameters
licenseId
required
string <uuid>

UUID for a license

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
[
  • { }
]

Clone a specified license record

Authorizations:
accessTokenokapiToken
path Parameters
licenseId
required
string <uuid>

UUID for a license

header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
licenseInfo
boolean

Group: copy name, type, description and status

internalContacts
boolean

Group: copy contacts

organizations
boolean

Group: copy orgs

coreDocs
boolean

Group: copy docs

terms
boolean

Group: copy customProperties

licenseDateInfo
boolean

Group: copy endDateSemantics, startDate and endDate

name
boolean

Copy the license name

type
boolean

Copy the license type

description
boolean

Copy the license description

status
boolean

Copy the license status

contacts
boolean

Copy internal contacts

orgs
boolean

Copy organizations

docs
boolean

Copy documents

customProperties
boolean

Copy custom properties (terms)

endDateSemantics
boolean

Copy end date semantics

startDate
boolean

Copy the start date

endDate
boolean

Copy the end date

supplementaryDocs
boolean

Copy supplementary documents

property name*
additional property
boolean

Any other single field name on the license, set to true to copy it

Responses

Request samples

Content type
application/json
{
  • "licenseInfo": true,
  • "internalContacts": true,
  • "organizations": true,
  • "coreDocs": true,
  • "terms": true,
  • "licenseDateInfo": true,
  • "name": true,
  • "type": true,
  • "description": true,
  • "status": true,
  • "contacts": true,
  • "orgs": true,
  • "docs": true,
  • "customProperties": true,
  • "endDateSemantics": true,
  • "startDate": true,
  • "endDate": true,
  • "supplementaryDocs": true,
  • "property1": true,
  • "property2": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "lastUpdated": "2019-08-24T14:15:22Z",
  • "tags": [
    ],
  • "docs": [
    ],
  • "supplementaryDocs": [
    ],
  • "contacts": [
    ],
  • "customProperties": {
    },
  • "type": "string",
  • "localReference": "string",
  • "alternateNames": [
    ],
  • "orgs": [
    ],
  • "amendments": [
    ]
}

Compare license terms

Streams a CSV comparing selected fields and custom properties (terms) across a set of specified licenses. Always writes a header row; a data row is only written for licenses matched by ids.

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
ids
Array of strings <uuid> [ items <uuid > ]

UUIDs of the licenses to include in the comparison

object

Which columns to output. Set a license property name to true to output it as a column, or use the special key customProperties to select terms. Any other single-value field name on the license is also accepted, set to true.

id
boolean

Include the license id column

name
boolean

Include the license name column

description
boolean

Include the license description column

status
boolean

Include the license status column

startDate
boolean

Include the license start date column

endDate
boolean

Include the license end date column

endDateSemantics
boolean

Include the license end date semantics column

openEnded
boolean

Include the derived open-ended flag column

type
boolean

Include the license type column

localReference
boolean

Include the license local reference column

dateCreated
boolean

Include the record creation date column

lastUpdated
boolean

Include the record last-updated date column

object

Map of custom property (term) name to true, to include that term. For each included term, the parts selected in terms are each output as a separate column.

property name*
additional property
boolean

Any other single-value license field name, set to true to include it as a column. Collection-valued fields (e.g. tags, docs, contacts, orgs) are not rejected, but render poorly since each row is joined from the raw object's string form rather than a meaningful value.

object

Which parts of each custom property named in include.customProperties to output as columns.

value
boolean

Include the term's value column

internal
boolean

Include the term's internal note column

note
boolean

Include the term's note column

publicNote
boolean

Include the term's public note column

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ],
  • "include": {
    },
  • "terms": {
    }
}

Response samples

Content type
application/json
{
  • "error": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "message": "string",
  • "exception": "string",
  • "stackTrace": [
    ]
}

Access Control

Claim the specified license record with a set of access policies

Authorizations:
accessTokenokapiToken
path Parameters
licenseId
required
string <uuid>

UUID for a license

header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
required
Array of objects (PolicyLink)
Array
id
string

Identifier of this policy link. Supply an existing link's id to update it, or omit to add a new one

required
object (BasicPolicy)
type
required
string (AccessPolicyType)
Value: "ACQ_UNIT"

The mechanism used to enforce this access policy

description
string

Responses

Request samples

Content type
application/json
{
  • "claims": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Get the access policies for the specified license record, across its ownership chain

Authorizations:
accessTokenokapiToken
path Parameters
licenseId
required
string <uuid>

UUID for a license

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Check whether the current user can read the specified license record

Authorizations:
accessTokenokapiToken
path Parameters
licenseId
required
string <uuid>

UUID for a license

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "canRead": true,
  • "canUpdate": true,
  • "canDelete": true,
  • "canCreate": true,
  • "canClaim": true,
  • "canApplyPolicies": true
}

Check whether the current user can update the specified license record

Authorizations:
accessTokenokapiToken
path Parameters
licenseId
required
string <uuid>

UUID for a license

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "canRead": true,
  • "canUpdate": true,
  • "canDelete": true,
  • "canCreate": true,
  • "canClaim": true,
  • "canApplyPolicies": true
}

Check whether the current user can delete the specified license record

Authorizations:
accessTokenokapiToken
path Parameters
licenseId
required
string <uuid>

UUID for a license

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "canRead": true,
  • "canUpdate": true,
  • "canDelete": true,
  • "canCreate": true,
  • "canClaim": true,
  • "canApplyPolicies": true
}

Check whether the current user can apply access policies to the specified license record

Authorizations:
accessTokenokapiToken
path Parameters
licenseId
required
string <uuid>

UUID for a license

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "canRead": true,
  • "canUpdate": true,
  • "canDelete": true,
  • "canCreate": true,
  • "canClaim": true,
  • "canApplyPolicies": true
}

Check whether the current user can create license records

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "canRead": true,
  • "canUpdate": true,
  • "canDelete": true,
  • "canCreate": true,
  • "canClaim": true,
  • "canApplyPolicies": true
}

Claim the specified amendment record with a set of access policies

Authorizations:
accessTokenokapiToken
path Parameters
amendmentId
required
string <uuid>

UUID for an amendment

header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
required
Array of objects (PolicyLink)
Array
id
string

Identifier of this policy link. Supply an existing link's id to update it, or omit to add a new one

required
object (BasicPolicy)
type
required
string (AccessPolicyType)
Value: "ACQ_UNIT"

The mechanism used to enforce this access policy

description
string

Responses

Request samples

Content type
application/json
{
  • "claims": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Get the access policies for the specified amendment record, across its ownership chain

Authorizations:
accessTokenokapiToken
path Parameters
amendmentId
required
string <uuid>

UUID for an amendment

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Check whether the current user can read the specified amendment record

Authorizations:
accessTokenokapiToken
path Parameters
amendmentId
required
string <uuid>

UUID for an amendment

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "canRead": true,
  • "canUpdate": true,
  • "canDelete": true,
  • "canCreate": true,
  • "canClaim": true,
  • "canApplyPolicies": true
}

Check whether the current user can update the specified amendment record

Authorizations:
accessTokenokapiToken
path Parameters
amendmentId
required
string <uuid>

UUID for an amendment

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "canRead": true,
  • "canUpdate": true,
  • "canDelete": true,
  • "canCreate": true,
  • "canClaim": true,
  • "canApplyPolicies": true
}

Check whether the current user can delete the specified amendment record

Authorizations:
accessTokenokapiToken
path Parameters
amendmentId
required
string <uuid>

UUID for an amendment

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "canRead": true,
  • "canUpdate": true,
  • "canDelete": true,
  • "canCreate": true,
  • "canClaim": true,
  • "canApplyPolicies": true
}

Check whether the current user can apply access policies to the specified amendment record

Authorizations:
accessTokenokapiToken
path Parameters
amendmentId
required
string <uuid>

UUID for an amendment

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "canRead": true,
  • "canUpdate": true,
  • "canDelete": true,
  • "canCreate": true,
  • "canClaim": true,
  • "canApplyPolicies": true
}

Check whether the current user can create amendment records

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "canRead": true,
  • "canUpdate": true,
  • "canDelete": true,
  • "canCreate": true,
  • "canClaim": true,
  • "canApplyPolicies": true
}

Get a set of access policy records

Authorizations:
accessTokenokapiToken
query Parameters
filters
string
match
string
term
string
sort
string
stats
boolean
perPage
integer
offset
integer
page
integer
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "meta": { },
  • "page": 0,
  • "pageSize": 0,
  • "total": 0,
  • "totalPages": 0,
  • "totalRecords": 0,
  • "results": [
    ]
}

Get a specified access policy record

Authorizations:
accessTokenokapiToken
path Parameters
accessControlId
required
string <uuid>

UUID for an access policy

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "description": "string",
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "type": "ACQ_UNIT",
  • "policyId": "string",
  • "resourceClass": "string",
  • "resourceId": "string"
}

Get the policies valid for READ operations

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "readPolicies": [
    ],
  • "updatePolicies": [
    ],
  • "createPolicies": [
    ],
  • "deletePolicies": [
    ],
  • "claimPolicies": [
    ],
  • "applyPolicies": [
    ]
}

Get the policies valid for DELETE operations

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "readPolicies": [
    ],
  • "updatePolicies": [
    ],
  • "createPolicies": [
    ],
  • "deletePolicies": [
    ],
  • "claimPolicies": [
    ],
  • "applyPolicies": [
    ]
}

Get the policies valid for UPDATE operations

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "readPolicies": [
    ],
  • "updatePolicies": [
    ],
  • "createPolicies": [
    ],
  • "deletePolicies": [
    ],
  • "claimPolicies": [
    ],
  • "applyPolicies": [
    ]
}

Get the policies valid for CREATE operations

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "readPolicies": [
    ],
  • "updatePolicies": [
    ],
  • "createPolicies": [
    ],
  • "deletePolicies": [
    ],
  • "claimPolicies": [
    ],
  • "applyPolicies": [
    ]
}

Get the policies valid for CLAIM operations

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "readPolicies": [
    ],
  • "updatePolicies": [
    ],
  • "createPolicies": [
    ],
  • "deletePolicies": [
    ],
  • "claimPolicies": [
    ],
  • "applyPolicies": [
    ]
}

Get the policies valid for APPLY_POLICIES operations

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "readPolicies": [
    ],
  • "updatePolicies": [
    ],
  • "createPolicies": [
    ],
  • "deletePolicies": [
    ],
  • "claimPolicies": [
    ],
  • "applyPolicies": [
    ]
}

Get the enabled policy engines, keyed by access policy type

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "property1": true,
  • "property2": true
}

Amendments

Get a set of amendment records.

Authorizations:
accessTokenokapiToken
query Parameters
filters
string
match
string
term
string
sort
string
stats
boolean
perPage
integer
offset
integer
page
integer
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "meta": { },
  • "page": 0,
  • "pageSize": 0,
  • "total": 0,
  • "totalPages": 0,
  • "totalRecords": 0,
  • "results": [
    ]
}

Create amendment record

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
name
required
string

The name of the license or amendment

description
string

A description of the license or amendment

string or RefData (object)

The status (e.g. In negotiation, Not yet active, Active, Rejected, Expired)

One of
string

The status (e.g. In negotiation, Not yet active, Active, Rejected, Expired)

startDate
string <date>

The date on which the license or amendment becomes active

endDate
string <date>

The date on which the license or amendment expires

string or RefData (object)

How the end date should be interpreted (e.g. Explicit, Open ended, Implicit)

One of
string

How the end date should be interpreted (e.g. Explicit, Open ended, Implicit)

openEnded
boolean

Derived flag indicating whether the license or amendment is open-ended

Array of objects (Tag)

Tags applied to the license or amendment

Array
value
string
normValue
string
Array of objects (DocumentAttachment)

Documents attached to the license or amendment

Array
name
string
note
string
url
string <uri>
Array of objects (DocumentAttachment)

Supplementary documents attached to the license or amendment

Array
name
string
note
string
url
string <uri>
Array of objects (InternalContact)

Internal contacts associated with the license or amendment

Array
user
string <uuid>
string or RefData (object)

The contact's role in relation to the license

object

Custom properties (license terms) — keys are property names, values are arrays of property value instances

additional property
Array of objects (CustomPropertyValue)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "tags": [
    ],
  • "docs": [],
  • "supplementaryDocs": [],
  • "contacts": [
    ],
  • "customProperties": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "lastUpdated": "2019-08-24T14:15:22Z",
  • "tags": [
    ],
  • "docs": [
    ],
  • "supplementaryDocs": [
    ],
  • "contacts": [
    ],
  • "customProperties": {
    }
}

Get a specified amendment record

Authorizations:
accessTokenokapiToken
path Parameters
amendmentId
required
string <uuid>

UUID for an amendment

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "lastUpdated": "2019-08-24T14:15:22Z",
  • "tags": [
    ],
  • "docs": [
    ],
  • "supplementaryDocs": [
    ],
  • "contacts": [
    ],
  • "customProperties": {
    }
}

Update amendment record

Authorizations:
accessTokenokapiToken
path Parameters
amendmentId
required
string <uuid>

UUID for an amendment

Request Body schema: application/json
required
name
required
string

The name of the license or amendment

description
string

A description of the license or amendment

string or RefData (object)

The status (e.g. In negotiation, Not yet active, Active, Rejected, Expired)

One of
string

The status (e.g. In negotiation, Not yet active, Active, Rejected, Expired)

startDate
string <date>

The date on which the license or amendment becomes active

endDate
string <date>

The date on which the license or amendment expires

string or RefData (object)

How the end date should be interpreted (e.g. Explicit, Open ended, Implicit)

One of
string

How the end date should be interpreted (e.g. Explicit, Open ended, Implicit)

openEnded
boolean

Derived flag indicating whether the license or amendment is open-ended

Array of objects (Tag)

Tags applied to the license or amendment

Array
value
string
normValue
string
Array of objects (DocumentAttachment)

Documents attached to the license or amendment

Array
name
string
note
string
url
string <uri>
Array of objects (DocumentAttachment)

Supplementary documents attached to the license or amendment

Array
name
string
note
string
url
string <uri>
Array of objects (InternalContact)

Internal contacts associated with the license or amendment

Array
user
string <uuid>
string or RefData (object)

The contact's role in relation to the license

object

Custom properties (license terms) — keys are property names, values are arrays of property value instances

additional property
Array of objects (CustomPropertyValue)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "tags": [
    ],
  • "docs": [],
  • "supplementaryDocs": [],
  • "contacts": [
    ],
  • "customProperties": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "lastUpdated": "2019-08-24T14:15:22Z",
  • "tags": [
    ],
  • "docs": [
    ],
  • "supplementaryDocs": [
    ],
  • "contacts": [
    ],
  • "customProperties": {
    }
}

Delete a specified amendment record

Authorizations:
accessTokenokapiToken
path Parameters
amendmentId
required
string <uuid>

UUID for an amendment

Responses

Response samples

Content type
application/json
{
  • "error": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "message": "string",
  • "exception": "string",
  • "stackTrace": [
    ]
}

Clone a specified amendment record

Authorizations:
accessTokenokapiToken
path Parameters
amendmentId
required
string <uuid>

UUID for an amendment

header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
amendmentInfo
boolean

Group: copy name, type, description and status

internalContacts
boolean

Group: copy contacts

organizations
boolean

Group: copy orgs

coreDocs
boolean

Group: copy docs

terms
boolean

Group: copy customProperties

amendmentDateInfo
boolean

Group: copy endDateSemantics, startDate and endDate

name
boolean

Copy the amendment name

type
boolean

Copy the amendment type

description
boolean

Copy the amendment description

status
boolean

Copy the amendment status

contacts
boolean

Copy internal contacts

orgs
boolean

Copy organizations

docs
boolean

Copy documents

customProperties
boolean

Copy custom properties (terms)

endDateSemantics
boolean

Copy end date semantics

startDate
boolean

Copy the start date

endDate
boolean

Copy the end date

supplementaryDocs
boolean

Copy supplementary documents

property name*
additional property
boolean

Any other single field name on the amendment, set to true to copy it

Responses

Request samples

Content type
application/json
{
  • "amendmentInfo": true,
  • "internalContacts": true,
  • "organizations": true,
  • "coreDocs": true,
  • "terms": true,
  • "amendmentDateInfo": true,
  • "name": true,
  • "type": true,
  • "description": true,
  • "status": true,
  • "contacts": true,
  • "orgs": true,
  • "docs": true,
  • "customProperties": true,
  • "endDateSemantics": true,
  • "startDate": true,
  • "endDate": true,
  • "supplementaryDocs": true,
  • "property1": true,
  • "property2": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "status": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "endDateSemantics": "string",
  • "openEnded": true,
  • "dateCreated": "2019-08-24T14:15:22Z",
  • "lastUpdated": "2019-08-24T14:15:22Z",
  • "tags": [
    ],
  • "docs": [
    ],
  • "supplementaryDocs": [
    ],
  • "contacts": [
    ],
  • "customProperties": {
    }
}

Contacts

Get a set of internal contact records

Authorizations:
accessTokenokapiToken
query Parameters
filters
string
match
string
term
string
sort
string
stats
boolean
perPage
integer
offset
integer
page
integer
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "meta": { },
  • "page": 0,
  • "pageSize": 0,
  • "total": 0,
  • "totalPages": 0,
  • "totalRecords": 0,
  • "results": [
    ]
}

Get a specified internal contact record

Authorizations:
accessTokenokapiToken
path Parameters
contactId
required
string

ID for an internal contact

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "owner": {
    },
  • "user": "76f62a58-5404-486d-9afc-07bded328704",
  • "role": "string"
}

Organisations

Get a set of organisation records

Authorizations:
accessTokenokapiToken
query Parameters
filters
string
match
string
term
string
sort
string
stats
boolean
perPage
integer
offset
integer
page
integer
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "meta": { },
  • "page": 0,
  • "pageSize": 0,
  • "total": 0,
  • "totalPages": 0,
  • "totalRecords": 0,
  • "results": [
    ]
}

Get a specified organisation record

Authorizations:
accessTokenokapiToken
path Parameters
orgId
required
string

ID for an organisation

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "orgsUuid": "ad460e86-3e95-4a96-8e2c-3e5b6da78e05",
  • "orgsUuid_object": { }
}

Reference Data

Get a set of reference data category records.

Authorizations:
accessTokenokapiToken
query Parameters
filters
string
match
string
term
string
sort
string
stats
boolean
perPage
integer
offset
integer
page
integer
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "meta": { },
  • "page": 0,
  • "pageSize": 0,
  • "total": 0,
  • "totalPages": 0,
  • "totalRecords": 0,
  • "results": [
    ]
}

Create reference data category record

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
desc
string
internal
boolean
Array of objects (RefData)
Array
label
string
value
string
owner
object (RefDataCategory) Recursive

Responses

Request samples

Content type
application/json
{
  • "desc": "string",
  • "internal": true,
  • "values": [
    ]
}

Response samples

Content type
application/json
{
  • "desc": "string",
  • "id": "string",
  • "internal": true,
  • "values": [
    ]
}

Get a specified reference data category record

Authorizations:
accessTokenokapiToken
path Parameters
refdataCategoryId
required
string

ID for a reference data category

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "desc": "string",
  • "id": "string",
  • "internal": true,
  • "values": [
    ]
}

Update reference data category record

Authorizations:
accessTokenokapiToken
path Parameters
refdataCategoryId
required
string

ID for a reference data category

header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
desc
string
internal
boolean
Array of objects (RefData)
Array
label
string
value
string
owner
object (RefDataCategory) Recursive

Responses

Request samples

Content type
application/json
{
  • "desc": "string",
  • "internal": true,
  • "values": [
    ]
}

Response samples

Content type
application/json
{
  • "desc": "string",
  • "id": "string",
  • "internal": true,
  • "values": [
    ]
}

Delete a specified reference data category record. Categories marked internal cannot be deleted and will return a 405.

Authorizations:
accessTokenokapiToken
path Parameters
refdataCategoryId
required
string

ID for a reference data category

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "error": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "message": "string",
  • "exception": "string",
  • "stackTrace": [
    ]
}

Get the reference data values for a domain class property.

Authorizations:
accessTokenokapiToken
path Parameters
domain
required
string

Simple (case-insensitive) name of the domain class that owns the property, e.g. License, LicenseAmendment

property
required
string

Name of the refdata-backed property on the domain class, e.g. type (on License)

query Parameters
filters
string
match
string
term
string
sort
string
stats
boolean
perPage
integer
offset
integer
page
integer
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "meta": { },
  • "page": 0,
  • "pageSize": 0,
  • "total": 0,
  • "totalPages": 0,
  • "totalRecords": 0,
  • "results": [
    ]
}

Custom Properties

Get a set of custom property definition records

Authorizations:
accessTokenokapiToken
query Parameters
filters
string
match
string
term
string
sort
string
stats
boolean
perPage
integer
offset
integer
page
integer
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "meta": { },
  • "page": 0,
  • "pageSize": 0,
  • "total": 0,
  • "totalPages": 0,
  • "totalRecords": 0,
  • "results": [
    ]
}

Create custom property definition record

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
id
string
name
string
label
string
description
string
primary
boolean
defaultInternal
boolean
retired
boolean
weight
integer
type
string

Java class name indicating the property type (e.g. CustomPropertyInteger, CustomPropertyText, CustomPropertyRefdata)

object (RefDataCategory)
desc
string
internal
boolean
Array of objects (RefData)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "label": "string",
  • "description": "string",
  • "primary": true,
  • "defaultInternal": true,
  • "retired": true,
  • "weight": 0,
  • "type": "string",
  • "category": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "label": "string",
  • "description": "string",
  • "primary": true,
  • "defaultInternal": true,
  • "retired": true,
  • "weight": 0,
  • "type": "string",
  • "category": {
    }
}

Get a specified custom property definition record

Authorizations:
accessTokenokapiToken
path Parameters
custPropId
required
string

ID for a custom property definition

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "label": "string",
  • "description": "string",
  • "primary": true,
  • "defaultInternal": true,
  • "retired": true,
  • "weight": 0,
  • "type": "string",
  • "category": {
    }
}

Update custom property definition record

Authorizations:
accessTokenokapiToken
path Parameters
custPropId
required
string

ID for a custom property definition

Request Body schema: application/json
required
id
string
name
string
label
string
description
string
primary
boolean
defaultInternal
boolean
retired
boolean
weight
integer
type
string

Java class name indicating the property type (e.g. CustomPropertyInteger, CustomPropertyText, CustomPropertyRefdata)

object (RefDataCategory)
desc
string
internal
boolean
Array of objects (RefData)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "label": "string",
  • "description": "string",
  • "primary": true,
  • "defaultInternal": true,
  • "retired": true,
  • "weight": 0,
  • "type": "string",
  • "category": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "label": "string",
  • "description": "string",
  • "primary": true,
  • "defaultInternal": true,
  • "retired": true,
  • "weight": 0,
  • "type": "string",
  • "category": {
    }
}

Delete a specified custom property definition record

Authorizations:
accessTokenokapiToken
path Parameters
custPropId
required
string

ID for a custom property definition

Responses

Response samples

Content type
application/json
{
  • "error": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "message": "string",
  • "exception": "string",
  • "stackTrace": [
    ]
}

Get the distinct set of contexts in use across custom property definitions

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
[
  • "string"
]

Files

Get a set of file records

Authorizations:
accessTokenokapiToken
query Parameters
filters
string
match
string
term
string
sort
string
stats
boolean
perPage
integer
offset
integer
page
integer
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "meta": { },
  • "page": 0,
  • "pageSize": 0,
  • "total": 0,
  • "totalPages": 0,
  • "totalRecords": 0,
  • "results": [
    ]
}

Upload a file

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string
Request Body schema: multipart/form-data
required
upload
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "contentType": "string",
  • "size": 0,
  • "modified": "2019-08-24T14:15:22Z"
}

Get a specified file record

Authorizations:
accessTokenokapiToken
path Parameters
fileId
required
string <uuid>

UUID for a file

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "contentType": "string",
  • "size": 0,
  • "modified": "2019-08-24T14:15:22Z"
}

Delete a specified file record

Authorizations:
accessTokenokapiToken
path Parameters
fileId
required
string <uuid>

UUID for a file

Responses

Response samples

Content type
application/json
{
  • "error": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "message": "string",
  • "exception": "string",
  • "stackTrace": [
    ]
}

Download the raw content of a specified file

Authorizations:
accessTokenokapiToken
path Parameters
fileId
required
string <uuid>

UUID for a file

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "error": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "message": "string",
  • "exception": "string",
  • "stackTrace": [
    ]
}

Admin

Trigger license housekeeping

Runs the license housekeeping service. This sets endDateSemantics on any records where it is unset, and deletes any Organisation records no longer linked to a license.

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "OK"
}

Trigger migration of uploaded documents to object storage

Migrates uploaded license document (LOB) attachments still stored in the Postgres database to the configured S3/MinIO object store.

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "status": "OK"
}

Settings

Get a set of application setting records

Authorizations:
accessTokenokapiToken
query Parameters
filters
string
match
string
term
string
sort
string
stats
boolean
perPage
integer
offset
integer
page
integer
header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "meta": { },
  • "page": 0,
  • "pageSize": 0,
  • "total": 0,
  • "totalPages": 0,
  • "totalRecords": 0,
  • "results": [
    ]
}

Create application setting record

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
section
string
key
required
string
settingType
string
vocab
string
defValue
string
value
string
hidden
boolean

If true, this setting is excluded from filter/search results but is otherwise still retrievable and modifiable normally.

Responses

Request samples

Content type
application/json
{
  • "section": "string",
  • "key": "string",
  • "settingType": "string",
  • "vocab": "string",
  • "defValue": "string",
  • "value": "string",
  • "hidden": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "section": "string",
  • "key": "string",
  • "settingType": "string",
  • "vocab": "string",
  • "defValue": "string",
  • "value": "string",
  • "hidden": true
}

Get a specified application setting record

Authorizations:
accessTokenokapiToken
path Parameters
id
required
string

Identifier for an application setting

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "section": "string",
  • "key": "string",
  • "settingType": "string",
  • "vocab": "string",
  • "defValue": "string",
  • "value": "string",
  • "hidden": true
}

Update application setting record

Authorizations:
accessTokenokapiToken
path Parameters
id
required
string

Identifier for an application setting

header Parameters
x-okapi-tenant
required
string
Request Body schema: application/json
required
section
string
key
required
string
settingType
string
vocab
string
defValue
string
value
string
hidden
boolean

If true, this setting is excluded from filter/search results but is otherwise still retrievable and modifiable normally.

Responses

Request samples

Content type
application/json
{
  • "section": "string",
  • "key": "string",
  • "settingType": "string",
  • "vocab": "string",
  • "defValue": "string",
  • "value": "string",
  • "hidden": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "section": "string",
  • "key": "string",
  • "settingType": "string",
  • "vocab": "string",
  • "defValue": "string",
  • "value": "string",
  • "hidden": true
}

Delete a specified application setting record

Authorizations:
accessTokenokapiToken
path Parameters
id
required
string

Identifier for an application setting

header Parameters
x-okapi-tenant
required
string

Responses

Response samples

Content type
application/json
{
  • "error": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "message": "string",
  • "exception": "string",
  • "stackTrace": [
    ]
}

Dashboard

List dashboard widget definitions

Returns the dashboard widget definitions bundled with this module, describing the self-service search/list widgets (e.g. simple license search) that can be added to a FOLIO dashboard. Definitions are cached in memory after the first request, for the lifetime of the running instance. No specific permission is required beyond a valid tenant/token.

This path is provided under the dashboard interface, declared as interfaceType: multiple in the module descriptor, because other dashboard-capable modules (e.g. mod-agreements) expose the same path for their own widget definitions. Since more than one module enabled for a tenant can answer this exact path, a plain request is ambiguous — Okapi needs an X-Okapi-Module-Id header naming which one to route to. Discover the candidate module ids first with GET /_/proxy/tenants/{tenant}/modules?provide=dashboard, then pass one of them back on this request.

Authorizations:
accessTokenokapiToken
header Parameters
x-okapi-tenant
required
string
X-Okapi-Module-Id
required
string

ID of the specific module to route this request to. Required on paths backed by an interfaceType: multiple interface

Responses

Response samples

Content type
application/json
[
  • {
    }
]