# Schemas — Provider API v0.6.7

420 schemas
Source: https://plasapi.com/provider/v0.6.7/schemas/

Every named schema in the specification, one level deep. A field that points at another schema links to it rather than being expanded, so each schema is described in one place.

## AddItemToPatronListRequestBody

`PatronListItem`

No properties in the specification — see the schema index for its form.

## AdditionalIdentifier

`one of AdditionalIdentifierTypeISBN | AdditionalIdentifierTypeISSN | AdditionalIdentifierTypeEAN | AdditionalIdentifierTypeBibsentBibbi`

No properties in the specification — see the schema index for its form.

## AdditionalIdentifierTypeBibsentBibbi

`object`

- `type` (`string enum`, required) — `bibsentBibbi`
- `value` (`string`, required)

## AdditionalIdentifierTypeEAN

`object`

- `digits` (`string enum`, required) — `13`
- `type` (`string enum`, required) — `ean`
- `value` (`string`, required)

## AdditionalIdentifierTypeISBN

`object`

- `digits` (`string enum`, required) — `10` · `13`
- `type` (`string enum`, required) — `isbn`
- `value` (`string`, required)

## AdditionalIdentifierTypeISSN

`object`

- `type` (`string enum`, required) — `issn`
- `value` (`string`, required)

## AddLoanToPatronLoanHistoryRequestBody

`object`

- `acquiredFrom` ([`PatronLoanAcquiredFrom`](https://plasapi.com/provider/v0.6.7/schemas/#PatronLoanAcquiredFrom), optional)
- `checkinTime` (`string (date-time)`, optional) — The date and time the loan was checkin.
- `checkoutTime` ([`LoanCreatedTime`](https://plasapi.com/provider/v0.6.7/schemas/#LoanCreatedTime), optional)
- `dueDate` (`string (date)`, optional) — The due date of the loan at the time of checkin.
- `itemId` ([`LoanItemId`](https://plasapi.com/provider/v0.6.7/schemas/#LoanItemId), optional)
- `loanId` ([`LoanId`](https://plasapi.com/provider/v0.6.7/schemas/#LoanId), optional)
- `manuallyAdded` (`boolean`, required) — Was the loan added manually by the patron.
- `publicationId` ([`LoanPublicationId`](https://plasapi.com/provider/v0.6.7/schemas/#LoanPublicationId), required)
- `publicationMetadata` ([`PublicationFallback`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationFallback), optional)

## Address

`object`

- `city` (`string`, required) — This field refers to the city, town, or locality where the address is located.
- `country` (`string`, optional) — This field specifies the name of the country where the address is located.
- `postalCode` (`string`, optional) — This field represents the numeric or alphanumeric code assigned to a specific area for efficient mail sorting and delivery.
- `street` (`string`, required) — This field represents the name of the road, street, or thoroughfare where the address is located.  
The field should also contain the building number assigned to a building at the location, and
the field should also contain identifiers such as apartment numbers, suite numbers, or floor numbers.


## Agent

`one of AgentTypePerson | AgentTypeCollective`

No properties in the specification — see the schema index for its form.

## AgentPersonActiveLiteral

`object`

Date or date range the person was active.
This is usually only recorded for historical persons where the birth and death dates are uncertain or unknown.
A literal value, meaning there are no expected structure or format.


- `type` (`string enum`, required) — `literal`
- `value` (`string`, required)

## AgentRole

`one of AgentRoleMarcRelator`

Telling the role of an agent, e.g. author, illustrator, editor.

No properties in the specification — see the schema index for its form.

## AgentRoleMarcRelator

`object`

- `roleCode` (`string`, required) — A contribution role code from the MARC Code List for Relators.
- `type` (`string enum`, required) — `marcRelator` — Identifies the role code as being part of [MARC Code List for Relators](https://www.loc.gov/marc/relators/relaterm.html).

## AgentTypeCollective

`all of BaseAgent + object`

No properties in the specification — see the schema index for its form.

## AgentTypePerson

`all of BaseAgent + object`

No properties in the specification — see the schema index for its form.

## AllDayScheduling

`object`

All-day event scheduling information

- `endDate` (`string (date)`, required) — End date in RFC3339 _full-date_ format.
- `startDate` (`string (date)`, required) — Start date in RFC3339 _full-date_ format.
- `type` (`string enum`, required) — `all_day` — Type of scheduling for all-day events

## Amount

`integer`

The amount is in minor unit (see ISO 4217).

No properties in the specification — see the schema index for its form.

## Audience

`one of AudienceTypeLiteral | AudienceTypeAgeRange | AudienceTypeAgeGroup`

No properties in the specification — see the schema index for its form.

## AudienceTypeAgeGroup

`object`

- `code` ([`AudienceTypeAgeGroupCode`](https://plasapi.com/provider/v0.6.7/schemas/#AudienceTypeAgeGroupCode), required)
- `name` (`string`, optional) — A displayable (human readable) audience group name.
- `type` (`string enum`, required) — `ageGroup`

## AudienceTypeAgeGroupCode

`any of AudienceTypeAgeGroupCodeEnum | AudienceTypeAgeGroupCodeLiteral`

A code that (if set) can be used with the filter `plas.audience.ageGroup` to search on this age group.

No properties in the specification — see the schema index for its form.

## AudienceTypeAgeGroupCodeEnum

`string enum`
`child` · `youngAdult` · `adult`

No properties in the specification — see the schema index for its form.

## AudienceTypeAgeGroupCodeLiteral

`string`

No properties in the specification — see the schema index for its form.

## AudienceTypeAgeRange

`object`

*from* and *to* isn't required, but a least one of them should be set.


- `code` (`string`, optional) — A code that (if set) can be used with the filter `plas.audience.ageRange` to search on this age range.  
The formatting is "from:to", "form:*" or "*:to" (replace the `form` and `to` value)

- `from` (`integer`, optional)
- `to` (`integer`, optional)
- `type` (`string enum`, required) — `ageRange`

## AudienceTypeLiteral

`object`

A literal audience, meaning there are no expected structure or format.

- `code` (`string`, optional) — A code that (if set) can be used with the filter `plas.audience.literal` to search on this audience literal.
- `type` (`string enum`, required) — `literal`
- `value` (`string`, required) — A displayable (human readable) audience literal.

## AuthenticationClientAccessToken

`string`

The access token string, as issued by the authorization server.
It is strongly recommended that this token be a JWT so that it can be validated by a business partner, if e.g. the search API is delegated.


No properties in the specification — see the schema index for its form.

## AuthenticationClientCredentialsRequestBody

`all of OAuthClientIdAndSecret + object`

No properties in the specification — see the schema index for its form.

## AuthenticationClientExpiresIn

`integer`

The duration (in seconds) of time the access token is granted for.

No properties in the specification — see the schema index for its form.

## AuthenticationClientResponseBody

`object`

- `access_token` ([`AuthenticationClientAccessToken`](https://plasapi.com/provider/v0.6.7/schemas/#AuthenticationClientAccessToken), required)
- `expires_in` ([`AuthenticationClientExpiresIn`](https://plasapi.com/provider/v0.6.7/schemas/#AuthenticationClientExpiresIn), required)
- `token_type` ([`AuthenticationClientTokenType`](https://plasapi.com/provider/v0.6.7/schemas/#AuthenticationClientTokenType), required)

## AuthenticationClientTokenType

`string enum`
`Bearer`

The type of the token.

No properties in the specification — see the schema index for its form.

## BaseAgent

`object`

- `description` (`string`, optional) — This is a description of the agent.
- `fullName` (`string`, required) — This is the full name of the agent.
- `id` (`string`, optional) — This isn't required, but if it's set:
- The agent is searchable through the GET /agent endpoint.
- Or you can search using the filter `plas.agent` to search on this agent.

- `images` ([`array of ImageAgent`](https://plasapi.com/provider/v0.6.7/schemas/#ImageAgent), optional) — Images of the agent.

## BaseSuggestionAgent

`object`

- `fullName` (`string`, required) — This is the full name of the agent.
- `id` (`string`, optional) — This isn't required, but if it's set, the agent is searchable through the GET /agent endpoint.
- `images` ([`array of ImageAgent`](https://plasapi.com/provider/v0.6.7/schemas/#ImageAgent), optional) — Images of the agent.

## BasicTitle

`object`

- `language` ([`Language`](https://plasapi.com/provider/v0.6.7/schemas/#Language), optional) — The language of the titles in the object.
- `main` (`string`, required) — This is the main title.
- `part` (`object`, optional) — This contains the information to distinguish the work.
- `remainder` (`string`, optional) — This is the remainder of the title.

## Binding

`one of BindingTypeLiteral`

No properties in the specification — see the schema index for its form.

## BindingTypeLiteral

`object`

A literal binding, meaning there are no expected structure or format.

- `type` (`string enum`, required) — `literal`
- `value` (`string`, required) — A displayable (human readable) representation of the binding.

## CallbackConsent

`object`

Decoded representation of a callback consent parameter, for use in the registration request body.

- `type` ([`PatronConsentType`](https://plasapi.com/provider/v0.6.7/schemas/#PatronConsentType), required)
- `version` (`string`, required) — The version of the consent, decoded from the callback consent parameter.

## ChangePatronCredentialRequestBody

`one of ChangePatronPasswordRequestBody | ChangePatronPinRequestBody`

Which credential is being changed is told by `credential`, and the current and new values are
named after that credential, so that a password and a pin code can never be confused for one
another.


No properties in the specification — see the schema index for its form.

## ChangePatronPasswordRequestBody

`object`

- `credential` (`string enum`, required) — `password`
- `currentPassword` (`all of PatronPassword + unknown`, required)
- `newPassword` (`all of PatronPassword + unknown`, required)

## ChangePatronPinRequestBody

`object`

- `credential` (`string enum`, required) — `pin`
- `currentPin` (`all of PatronPin + unknown`, required)
- `newPin` (`all of PatronPin + unknown`, required)

## CheckinCompleted

`all of CheckinResponseBase + object`

The item was checked in.

No properties in the specification — see the schema index for its form.

## CheckinFailed

`all of CheckinResponseBase + object`

The item was not checked in, and sending the same checkin again right away will not change that.

No properties in the specification — see the schema index for its form.

## CheckinFailureReason

`any of CheckinFailureReasonEnum | CheckinFailureReasonLiteral`

Why the item was not checked in.

This is an open enum, so values other than the known ones are allowed. A vendor that does not know a
value should treat it as `unknown` and show `message` to the patron.


No properties in the specification — see the schema index for its form.

## CheckinFailureReasonEnum

`string enum`
`item_not_found` · `item_not_on_loan` · `item_belongs_to_other_library` · `unknown`

The known reasons a checkin can fail:

- `item_not_found` the item ID is not known to the provider.
- `item_not_on_loan` the item is not on loan, so there is nothing to check in.
- `item_belongs_to_other_library` the item cannot be received here, e.g. an interlibrary loan.
- `unknown` the provider cannot say why, see `message`.

An offline checkin can only fail with `item_not_found` or `item_not_on_loan`, see `checkin.offline`.


No properties in the specification — see the schema index for its form.

## CheckinFailureReasonLiteral

`string`

No properties in the specification — see the schema index for its form.

## CheckinField

`object`

- `acquiredFrom` ([`PatronLoanAcquiredFrom`](https://plasapi.com/provider/v0.6.7/schemas/#PatronLoanAcquiredFrom), optional)
- `dueDate` (`string (date)`, optional) — This is the due date of the checkin item, meaning the date where item should (at the latest) be returned.
- `fees` ([`array of PatronFee`](https://plasapi.com/provider/v0.6.7/schemas/#PatronFee), optional) — The fees the library registered on the patron as part of this checkin, e.g. an overdue fine
created because the item came back after `dueDate`. Send an empty array when the checkin created
no fee. Leave the field out only when the provider cannot tell whether a fee was created, e.g.
when fines are calculated later by a separate process.

- `itemId` (`string`, required) — This is the item ID of the checked in item.
- `loanId` ([`LoanId`](https://plasapi.com/provider/v0.6.7/schemas/#LoanId), required)
- `needsStaff` (`boolean`, optional) — True when a person has to look at this item, e.g. it is damaged, or it is not the item the
provider expected.

Do not set it for a reservation or for an item that belongs to another branch. Those are about
where the item goes, not about something being wrong with it.

If the field is missing, the default is false.

- `patronId` (`string`, optional) — The patron who had the item on loan. Leave the field out when the provider does not
disclose it, or when the loan was not to a patron, e.g. an interlibrary loan.

- `permanentLocation` ([`CheckinPermanentLocation`](https://plasapi.com/provider/v0.6.7/schemas/#CheckinPermanentLocation), optional)
- `publicationId` (`string`, required) — This is the publication ID of the checkin item. A vendor needs it to show or print a title.
- `publicationMetadata` ([`PublicationFallback`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationFallback), optional)
- `sortingCode` (`string`, optional) — This is the sorting code, and can be used to sort checked in items, on e.g. a self service machine
by reserved and not-reserved items.

PLAS defines no values for this field, they are agreed between a provider and the vendors
integrating with it. It is for providers whose sorters already run on a code of their own.

A provider that also serves SIP2 can put the same value here that it puts in `sort bin` (CL). It
is the same idea: a bin value that the library, the provider and the sorter supplier agree on
between them.

- `transactionDateTime` (`string (date-time)`, required) — This is the registered time and date of the checkin.

## CheckinPermanentLocation

`CheckOutOrInLocationWithoutNames`

The location where the item is normally kept. A sorter uses it to route the item after a checkin:
an item whose permanent location is another branch goes to that branch.


No properties in the specification — see the schema index for its form.

## CheckinRequestBody

`object`

- `checkin` (`object`, required)

## CheckinResponseBase

`object`

- `message` ([`CheckOutOrInMessage`](https://plasapi.com/provider/v0.6.7/schemas/#CheckOutOrInMessage), optional)
- `requestId` (`string`, required) — This is a unique identifier for the checkin request. This will change for each request.  
It is meant for correlating logs.

- `status` (`string`, required) — This tells the outcome of the checkin, and which other fields are present.

## CheckinResponseBody

`one of CheckinCompleted | CheckinFailed`

The outcome of the checkin. The `status` field says which shape the rest of the body has:

- `completed` the item was checked in, and `checkin` holds the result.
- `failed` the item was not checked in, and `reason` says why.


No properties in the specification — see the schema index for its form.

## CheckoutAcknowledgement

`object`

What the patron must accept before the checkout can be carried out.

The `code` covers everything in `conditions`. One code, one round trip: the provider must put every
outstanding item in `conditions` rather than asking for them one at a time, and must not answer a checkout
carrying a valid code with another `needs_acknowledgement`.

The `code` is single use, and the provider must reject it if what `conditions` described has changed
since it was issued. `expiresAt` says how long it stays valid. A checkout carrying a code the
provider does not accept, expired included, is answered `failed` with the reason
`acknowledgement_rejected`, and the vendor starts over by sending the checkout without
`acknowledgement`.

There is no message field here. Anything the patron has to accept is an entry in `conditions`, including
plain text, which is `CheckoutAcknowledgementTypeMessage`. A note about the checkout that the patron
does not have to accept goes in `message` on the response instead.


- `code` (`string`, required) — This code must be included in the checkout request in order for the checkout to be completed.
- `conditions` (`array of one of CheckoutAcknowledgementTypeFee | CheckoutAcknowledgementTypePreviouslyCheckedOut | CheckoutAcknowledgementTypeMessage`, required) — Everything the patron must accept, in one list. A vendor must show all of it to the patron, and
then send the checkout again with the single `code` that covers the whole list.

A provider that needs the patron to accept something PLAS does not model puts it here as a
`message` entry.

- `expiresAt` (`string (date-time)`, required) — When the code stops being valid.

## CheckoutAcknowledgementType

`object`

- `type` (`string`, required) — This is the type of what is to be acknowledged.

## CheckoutAcknowledgementTypeFee

`all of CheckoutAcknowledgementType + object`

A lending fee the patron must accept before the item is checked out.

No properties in the specification — see the schema index for its form.

## CheckoutAcknowledgementTypeMessage

`all of CheckoutAcknowledgementType + object`

Something the patron must accept that PLAS does not model as its own type, e.g. a local lending
condition.

The text is shown to the patron as it is, so it must be in the language asked for in `ui_language`.


No properties in the specification — see the schema index for its form.

## CheckoutAcknowledgementTypePreviouslyCheckedOut

`all of CheckoutAcknowledgementType + object`

The patron has had this title before and must accept borrowing it again.

No properties in the specification — see the schema index for its form.

## CheckoutCompleted

`all of CheckoutResponseBase + object`

The item was checked out, and the loan exists.

No properties in the specification — see the schema index for its form.

## CheckoutFailed

`all of CheckoutResponseBase + object`

The item was not checked out, and sending the same checkout again right away will not change that.

No properties in the specification — see the schema index for its form.

## CheckoutFailureReason

`any of CheckoutFailureReasonEnum | CheckoutFailureReasonLiteral`

Why the item was not checked out.

This is an open enum, so values other than the known ones are allowed. A vendor that does not know a
value should treat it as `unknown` and show `message` to the patron.


No properties in the specification — see the schema index for its form.

## CheckoutFailureReasonEnum

`string enum`
`item_not_found` · `item_not_lendable` · `item_on_loan` · `item_reserved_for_other_patron` · `item_belongs_to_other_branch` · `patron_not_found` · `patron_authentication_failed` · `patron_blocked` · `patron_owes_fees` · `patron_loan_limit_reached` · `patron_expired` · `acknowledgement_rejected` · `unknown`

The known reasons a checkout can fail:

- `item_not_found` the item ID is not known to the provider.
- `item_not_lendable` the item exists, but is not for loan.
- `item_on_loan` the item is already on loan to another patron.
- `item_reserved_for_other_patron` the item is reserved for someone else.
- `item_belongs_to_other_branch` the item cannot be lent out from this branch.
- `patron_not_found` the patron ID is not known to the provider. Only for a `patron` sent as
  `patron_id`, never for one sent as `identifier`.
- `patron_authentication_failed` the patron could not be authenticated from the `identifier` that
  was sent. It covers an identifier the provider does not know, a credential that does not match,
  and a missing credential where one is required, and the provider must not let a vendor tell those
  apart.
- `patron_blocked` the patron may not borrow at the moment.
- `patron_owes_fees` the patron owes more than the library allows.
- `patron_loan_limit_reached` the patron already has as many loans as the library allows.
- `patron_expired` the patron's library card has expired.
- `acknowledgement_rejected` the provider did not accept `acknowledgement.code`: it is unknown,
  expired, already used, belongs to a different `checkout`, or what it covered has changed. Send
  the checkout again without `acknowledgement` to get the current conditions and a new code.
- `unknown` the provider cannot say why, see `message`.

An offline checkout can only fail on an identity that cannot be resolved, see `checkout.offline`.

`patron_blocked`, `patron_owes_fees`, `patron_loan_limit_reached` and `patron_expired` all say that
the patron is real, so they are only sent once the patron has been authenticated.

A patron identified by `identifier` must not be able to learn whether that identifier belongs to a
real patron. Three rules keep that true:

- Everything that goes wrong while identifying them is `patron_authentication_failed`, whether the
  identifier is unknown, the credential is wrong, or a required credential was left out.
- The answer must take the same time whether or not the identifier matched, since looking a patron
  up and then failing is slower than failing at once.
- Rate limiting must work the same way for an identifier that matches and one that does not, so a
  429 says nothing either.


No properties in the specification — see the schema index for its form.

## CheckoutFailureReasonLiteral

`string`

No properties in the specification — see the schema index for its form.

## CheckoutField

`object`

- `acquiredFrom` ([`PatronLoanAcquiredFrom`](https://plasapi.com/provider/v0.6.7/schemas/#PatronLoanAcquiredFrom), optional)
- `dueDate` (`string (date)`, required) — This is the due date of the checked out item.
- `fees` ([`array of PatronFee`](https://plasapi.com/provider/v0.6.7/schemas/#PatronFee), optional) — The fees the library registered on the patron as part of this checkout, e.g. a lending fee the
patron accepted through `acknowledgement`. Send an empty array when the checkout created no fee.
Leave the field out only when the provider cannot tell whether a fee was created.

- `itemId` (`string`, required) — This is the item ID of the checkout item.
- `loanId` ([`LoanId`](https://plasapi.com/provider/v0.6.7/schemas/#LoanId), required)
- `patronId` (`string`, required) — This is the patron ID of the patron that made the checkout.
- `publicationId` (`string`, required) — This is the publication ID of the checkout item. A vendor needs it to show or print a title.
- `publicationMetadata` ([`PublicationFallback`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationFallback), optional)
- `renewed` (`boolean`, optional) — True when the patron already had this item on loan, so this checkout extended the existing loan
instead of creating a new one.

If the field is missing, this information is unknown.

- `transactionDateTime` (`string (date-time)`, required) — This is the registered time and date of the checkout.

## CheckoutNeedsAcknowledgement

`all of CheckoutResponseBase + object`

The item was not checked out. The patron must accept everything in `acknowledgement.conditions` first, and
the checkout must then be sent again carrying the single `acknowledgement.code` that covers it.


No properties in the specification — see the schema index for its form.

## CheckOutOrInLocationWithoutNames

`object`

The object tells the location where a checkout or checkin was made.  
The `sections` is for specifying the location more precisely.


- `branchId` (`string`, required) — The branch ID where the checkout or checkin was made.
- `sections` ([`array of LocationSectionElementWithIdNameAndType`](https://plasapi.com/provider/v0.6.7/schemas/#LocationSectionElementWithIdNameAndType), optional) — This is specifying the location more precisely.

## CheckOutOrInMessage

`object`

Both type and text are optional, but at least one of them must be set.

- `text` (`string`, optional) — Message to the patron.
- `type` (`string`, optional) — This can be used instead of the text field to identify the message type.  
This can be used by a vendor to handle the message or control the content of the message.

PLAS defines no values for this field, they are agreed between a provider and the vendors
integrating with it. A vendor that does not recognise a value should fall back to `text`.


## CheckoutPatron

`one of CheckoutPatronById | CheckoutPatronByIdentifier`

Who the checkout is for, told by `identifiedBy`. Either the patron ID from a successful
authentication, or the same identification that is sent to POST /patron/authentication and
POST /patron/authentication/no-password.

The second form exists because an offline checkout cannot use the first.

When the patron is identified by `identifier`, the provider applies the same rules as the
authentication endpoints, as configured in `patron.login` from the GET /configuration endpoint.


No properties in the specification — see the schema index for its form.

## CheckoutPatronById

`object`

The patron as a patron ID, which the vendor has because the patron authenticated through
POST /patron/authentication, POST /patron/authentication/no-password or an identity provider.


- `identifiedBy` (`string enum`, required) — `patron_id`
- `patronId` (`string`, required) — The patron ID from a successful authentication.

## CheckoutPatronByIdentifier

`object`

The patron as the identifier and optional credential that POST /patron/authentication and
POST /patron/authentication/no-password take. This is the form an offline checkout has to use,
since it never got a patron ID.


- `identifiedBy` (`string enum`, required) — `identifier`
- `identifier` ([`PatronIdentifierTypeAndValue`](https://plasapi.com/provider/v0.6.7/schemas/#PatronIdentifierTypeAndValue), required)
- `password` ([`PatronPassword`](https://plasapi.com/provider/v0.6.7/schemas/#PatronPassword), optional)

## CheckoutRequestBody

`object`

- `acknowledgement` (`object`, optional) — This is used to acknowledge the checkout, see `CheckoutNeedsAcknowledgement`.

Send `checkout` exactly as it was in the request that returned the code, `transactionDateTime`
included. The code belongs to that exact checkout. If anything in `checkout` is different, the
provider answers `failed` with the reason `acknowledgement_rejected`.

- `checkout` (`object`, required)

## CheckoutResponseBase

`object`

- `message` ([`CheckOutOrInMessage`](https://plasapi.com/provider/v0.6.7/schemas/#CheckOutOrInMessage), optional)
- `requestId` (`string`, required) — This is a unique identifier for the checkout request. This will change for each request.  
It is meant for correlating logs.

- `status` (`string`, required) — This tells the outcome of the checkout, and which other fields are present.

## CheckoutResponseBody

`one of CheckoutCompleted | CheckoutNeedsAcknowledgement | CheckoutFailed`

The outcome of the checkout. The `status` field says which shape the rest of the body has:

- `completed` the item was checked out, and `checkout` holds the resulting loan.
- `needs_acknowledgement` the item was **not** checked out. `acknowledgement` says what the patron
  must accept first, and the same checkout sent again with `acknowledgement.code` completes it.
- `failed` the item was not checked out, and `reason` says why.


No properties in the specification — see the schema index for its form.

## Classification

`one of ClassificationTypeDewey | ClassificationTypeDK5`

No properties in the specification — see the schema index for its form.

## ClassificationTypeDewey

`object`

- `name` (`string`, optional) — A displayable (human readable) value representation of the dewey number.
- `number` (`string`, required) — The value of the dewey number.
- `type` (`string enum`, required) — `dewey`

## ClassificationTypeDK5

`object`

- `name` (`string`, optional) — A displayable (human readable) value representation of the dewey number.
- `number` (`string`, required) — The value of the dk5 number.
- `type` (`string enum`, required) — `dk5`

## ConfigurationCirculation

`object`

This tells whether the provider supports checking items out and in, and whether it accepts the two
of them being carried out while the vendor was offline.

Nothing here is assumed. An absent `checkout` or `checkin` means the provider does not support that
endpoint, exactly as `isEnabled` set to false does, and an absent `offline` means it does not accept
an offline one. The one exception is `securityTags`, where absent means the library uses them, since
that is what every machine does today.

| `circulation` | What a vendor may do |
| --- | --- |
| absent | Neither check out nor check in |
| `{}` | Neither check out nor check in |
| `{"checkout":{"isEnabled":true},"checkin":{"isEnabled":true}}` | Both, but only while the provider can be reached |
| `{"checkout":{"isEnabled":true,"offline":{"isAllowed":true}},"checkin":{"isEnabled":true}}` | Offline checkout, no offline checkin, and no loan period to work a due date out from |
| `{"checkout":{"isEnabled":true,"offline":{"isAllowed":true,"defaultLoanPeriodDays":28}},"checkin":{"isEnabled":true,"offline":{"isAllowed":true}}}` | Everything |


- `checkin` (`object`, optional) — Whether the provider supports POST /checkin/{itemId}. If this field is missing, it does not.

- `checkout` (`object`, optional) — Whether the provider supports POST /checkout/{itemId}. If this field is missing, it does not.

- `securityTags` (`object`, optional) — Whether the library uses the security tags in its items, the magnetic strip or RFID chip that
makes the gate at the door sound when an item that is not checked out passes through.

This is one decision for the whole library, which is why it is here and not in each checkout
or checkin answer. Some libraries never switch the alarm on, or have no gate, and do not want
tags armed.

If this field is missing, the library uses security tags.


## ConfigurationContentApi

`object`

- `delegated` (`object`, optional)

## ConfigurationContentResponseBody

`object`

- `uiLanguages` (`object`, optional) — This contains the ui language settings.

All ui language codes should be on this list https://www.loc.gov/marc/languages/


## ConfigurationContentWithApi

`all of object + ConfigurationContentResponseBody`

No properties in the specification — see the schema index for its form.

## ConfigurationHolding

`object`

- `periodical` ([`ConfigurationHoldingPeriodical`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationHoldingPeriodical), optional)

## ConfigurationHoldingPeriodical

`object`

- `groupOrdering` ([`array of HoldingPeriodicalGroupType`](https://plasapi.com/provider/v0.6.7/schemas/#HoldingPeriodicalGroupType), optional) — The default ordering of periodical group types is `year`, `volume` and `number`, or `level1`, ..., `level7`.
It is strongly discouraged to ever mix the named types and the level* types, but if for some reason another group type order is needed, `groupOrdering` can be used to tell the vendor the ordering of periodicals.


## ConfigurationPatron

`object`

How the provider handles patrons: how they log in, register and delete their account, what they can
do with their credentials and loan history, and which patron fields the vendor can show and edit.


- `credentials` (`object`, optional) — This tells what a patron can do with the credentials they use to authenticate.

Not all providers have both a password and a pin code, and a provider that has one may still
not let the patron change it. If this is missing, it is unknown, and the vendor should offer
neither changing nor resetting a credential.

- `deletion` (`object`, optional)
- `fields` ([`array of ConfigurationPatronField`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationPatronField), optional) — This contributes with further information about some of the patron fields, like if
they are updatable or not, how they are constructed and their limitations.

The array should at most contain one element of each type.

- `loanHistory` (`object`, optional)
- `login` (`object`, optional)
- `registration` (`object`, optional)

## ConfigurationPatronField

`one of ConfigurationPatronFieldEmails | ConfigurationPatronFieldPhoneNumbers | ConfigurationPatronFieldPickupLocation`

No properties in the specification — see the schema index for its form.

## ConfigurationPatronFieldEmails

`object`

- `field` (`string enum`, required) — `emails`
- `maxNumberOfEmailAddresses` (`integer`, optional) — This tells the maximum number of email addresses that a patron can have, and hence this is also the maximum
numbers of email addresses there can be send in a update patron information request. 

If this value is missing, there is no limits on the number of emails addresses, this is not recommended.

- `verification` (`string enum`, optional) — `no_verification` · `verify_by_email` — - no_verification => No verification
- verify_by_email => An email will be sent by the provider to verify the email


## ConfigurationPatronFieldPhoneNumbers

`object`

- `field` (`string enum`, required) — `phoneNumbers`
- `landline` (`object`, optional)
- `mobile` (`object`, optional)

## ConfigurationPatronFieldPickupLocation

`object`

- `field` (`string enum`, required) — `pickupLocation`
- `form` (`string enum`, optional) — `branch_id_and_sections` · `only_branch_id` — This is the form of the pickup location, i.e. which parts/fields of the pickup location that are in use.

If this is missing 'branch_id_and_sections' is this default.


## ConfigurationPatronIdentityProviderType

`string enum`
`norway_id_portal` · `norway_nl_oidc` · `norway_feide_oidc` · `denmark_mit_id` · `denmark_dbc_access_platform`

The identity provider type, found in GET /configuration.

No properties in the specification — see the schema index for its form.

## ConfigurationPayment

`object`

- `initialize` (`object`, optional)
- `methods` ([`array of ConfigurationPaymentMethod`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationPaymentMethod), optional) — This is a list of the payment methods that the vendor supports.

If this is missing, there are no payment methods available.

- `partial` (`boolean`, optional) — If this is true, the provider allows partial payments. Default is false.

## ConfigurationPaymentMethod

`object`

- `type` ([`ConfigurationPaymentMethodType`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationPaymentMethodType), optional)

## ConfigurationPaymentMethodType

`string enum`
`mobile_pay` · `vipps` · ``

This represents the payment method type.

No properties in the specification — see the schema index for its form.

## ConfigurationResponseBody

`object`

- `circulation` ([`ConfigurationCirculation`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationCirculation), optional) — What the provider supports on POST /checkout/{itemId} and POST /checkin/{itemId}.

If this field is missing, the provider supports neither endpoint. A vendor must find
`isEnabled` set to true here before it checks anything out or in.

- `content` ([`ConfigurationContentWithApi`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationContentWithApi), optional)
- `events` (`object`, optional) — events contain configuration data for events in the LMS.  
This covers notifications sent to the user and consent changes.

- `holding` ([`ConfigurationHolding`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationHolding), optional)
- `patron` ([`ConfigurationPatron`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationPatron), optional)
- `payment` ([`ConfigurationPayment`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationPayment), optional) — If this field is missing, the vendor does not support payments.
- `search` ([`ConfigurationSearchWithApi`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationSearchWithApi), optional)
- `version` (`string`, required) — This contains the version of the Open Library API.

## ConfigurationSearchApi

`object`

- `delegated` (`object`, optional)

## ConfigurationSearchExpression

`object`

- `clustering` ([`array of array of ExpressionClusteringField`](https://plasapi.com/provider/v0.6.7/schemas/#ExpressionClusteringField), optional) — This is the providers preferred clustering of publications.  
This clustering can be used to group publications together, emulating an expression level.


## ConfigurationSearchResponseBody

`object`

- `expression` ([`ConfigurationSearchExpression`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationSearchExpression), optional)
- `suggestions` ([`ConfigurationSearchSuggestions`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationSearchSuggestions), optional)
- `uiLanguages` (`object`, optional) — This contains the ui language settings.

All ui language codes should be on this list https://www.loc.gov/marc/languages/

- `workSearch` (`object`, optional)

## ConfigurationSearchSuggestions

`object`

- `available` ([`array of ConfigurationSearchSuggestionsFilterAvailable`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationSearchSuggestionsFilterAvailable), optional) — This tells which filters are available for the `/suggestions` endpoint.
- `disabled` (`boolean`, optional) — This tells the Vendor if the `/suggestions` endpoint is disabled or not. (Default `false`).

If this is set to `true`, the Vendor should not make request to the `/suggestions` endpoint.


## ConfigurationSearchSuggestionsFilterAvailable

`object`

- `description` (`string`, optional) — This is a description of what type of filter this is.
- `type` ([`SuggestionsFilterType`](https://plasapi.com/provider/v0.6.7/schemas/#SuggestionsFilterType), required)

## ConfigurationSearchWithApi

`all of object + ConfigurationSearchResponseBody`

No properties in the specification — see the schema index for its form.

## ConfigurationWorkSearchFacet

`object`

- `available` ([`array of ConfigurationWorkSearchFacetAvailable`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationWorkSearchFacetAvailable), optional)

## ConfigurationWorkSearchFacetAvailable

`object`

- `description` (`string`, optional) — This is a description of what type of `facet` this is.
- `type` ([`SearchFacetType`](https://plasapi.com/provider/v0.6.7/schemas/#SearchFacetType), required)

## ConfigurationWorkSearchFilter

`object`

- `available` ([`array of ConfigurationWorkSearchFilterAvailable`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationWorkSearchFilterAvailable), optional)

## ConfigurationWorkSearchFilterAvailable

`object`

- `description` (`string`, optional) — This is a description of what type of filter this is.
- `type` ([`SearchFilterType`](https://plasapi.com/provider/v0.6.7/schemas/#SearchFilterType), required)

## ConfigurationWorkSearchSorting

`object`

- `available` ([`array of ConfigurationWorkSearchSortingAvailable`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationWorkSearchSortingAvailable), optional)

## ConfigurationWorkSearchSortingAvailable

`object`

This is a description of a sorting type.

- `description` (`string`, optional) — This is a description of what type of sorting this is.
- `type` ([`SearchSortingType`](https://plasapi.com/provider/v0.6.7/schemas/#SearchSortingType), required)

## ContactInfo

`object`

Contact information for registration and tickets.

At least one of the fields must be provided: `url`, `email`, `phone`, or `info`.


- `email` (`string (email)`, optional) — Email for registration/tickets
- `info` (`string`, optional) — Instructions on where to register/buy tickets
- `phone` (`string`, optional) — Phone number with country prefix for registration/tickets
- `url` (`string (uri)`, optional) — URL to registration/ticket page

## Contributor

`object`

- `agent` ([`Agent`](https://plasapi.com/provider/v0.6.7/schemas/#Agent), required)
- `roles` ([`array of AgentRole`](https://plasapi.com/provider/v0.6.7/schemas/#AgentRole), optional) — List of roles (e.g. author, illustrator, editor) that the agent played in the creation of this entity.


## CreatePatronListRequestBody

`PatronList`

No properties in the specification — see the schema index for its form.

## CreatePatronReservationRequestBody

`object`

- `pickupLocation` ([`PickupLocationWithoutNames`](https://plasapi.com/provider/v0.6.7/schemas/#PickupLocationWithoutNames), required)
- `reserveId` ([`ReserveId`](https://plasapi.com/provider/v0.6.7/schemas/#ReserveId), required)

## CreatePatronReservationResponseBody

`object`

- `reservation` ([`PatronReservation`](https://plasapi.com/provider/v0.6.7/schemas/#PatronReservation), required)

## Date

`one of DateTypeLiteral | DateTypeRFC3339 | DateTypeYear | DateTypeYearRange | DateTypeCentury`

No properties in the specification — see the schema index for its form.

## DateTypeCentury

`object`

The *century* date can be used if we only know which century an event happened.

- `beforeTheCommonEra` (`boolean`, optional) — The default value is *false*, meaning common era, otherwise before the common era.
- `century` (`integer`, required) — The century e.g. 19 century CE (meaning 1801 CE to 1900 CE), 3 century BCE (meaning 300 BCE to 201 BCE)
- `type` (`string enum`, required) — `century`

## DateTypeLiteral

`object`

A literal date, meaning there are no expected structure or format.

- `type` (`string enum`, required) — `literal`
- `value` (`string`, required)

## DateTypeRFC3339

`object`

The *rfc3339* date can be used if we now the date.

- `date` (`string (date)`, required) — RFC3339 _full-date_ format (YYYY-MM-DD).
- `type` (`string enum`, required) — `rfc3339`

## DateTypeYear

`object`

The *year* date can be used if we only know which year an event happened.

- `type` (`string enum`, required) — `year`
- `year` (`integer`, required) — Eg. 1924

## DateTypeYearRange

`object`

The *yearRange* date can be used if we only know approx when an event happened.
This can also be used give an open ended year range.
*from* and *to* isn't required, but a least one of them should be set.


- `from` (`integer`, optional) — Eg. 1924
- `to` (`integer`, optional) — Eg. 1979
- `type` (`string enum`, required) — `yearRange`

## DeletePatronByCodeAndCodeVerifierRequestBody

`object`

- `code` (`string`, required) — The code obtained from a SSO patron deletion.
- `code_verifier` (`string`, required) — The code verifier used to create the code challenge used to obtain the code.
- `identity_provider` ([`ConfigurationPatronIdentityProviderType`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationPatronIdentityProviderType), required)

## DeletePatronById

`object`

The patron as a patron ID, and the password that goes with it.

- `identifiedBy` (`string enum`, required) — `patron_id`
- `password` ([`PatronPassword`](https://plasapi.com/provider/v0.6.7/schemas/#PatronPassword), required)
- `patronId` (`string`, required) — The patron ID.

## DeletePatronByIdentifier

`object`

The patron as one of the identifier types in `patron.deletion.identifierTypes` from
GET /configuration, and the password that goes with it.


- `identifiedBy` (`string enum`, required) — `identifier`
- `identifier` ([`PatronIdentifierTypeAndValue`](https://plasapi.com/provider/v0.6.7/schemas/#PatronIdentifierTypeAndValue), required)
- `password` ([`PatronPassword`](https://plasapi.com/provider/v0.6.7/schemas/#PatronPassword), required)

## DeletePatronIdentification

`one of DeletePatronById | DeletePatronByIdentifier`

Which patron is being deleted, told by `identifiedBy`. This is for a patron who is not logged in
through an identity provider, and a password is always required, since it is the only proof in the
request that the caller is the patron.


No properties in the specification — see the schema index for its form.

## DeletePatronRequestBody

`object`

- `acknowledgement` (`object`, optional) — This is used to acknowledge the deletion of the patron.
- `patron` ([`DeletePatronIdentification`](https://plasapi.com/provider/v0.6.7/schemas/#DeletePatronIdentification), required)

## DeletePatronResponseBody

`object`

- `message` (`string`, optional) — Message to the patron.
- `status` (`string enum`, required) — `waiting_for_acknowledgement` · `pending` · `in_progress` · `done` · `deletion_error` — This tells the state of the deletion of the patron.

The status can be:
- `waiting_for_acknowledgement`, to begin the deleting process, call the deletion endpoint with the acknowledgement code.
- `pending`, the deletion request is acknowledged, and we are waiting on the process to begin. 
- `in_process`, the deletion process is in progress.
- `done`, the deletion process is done (meaning the patronId does not exist).
- `deletion_error`, the deletion process failed.
- `unknown`, the deletion process is in an unknown state.


## Description

`one of DescriptionTypeLiteral`

No properties in the specification — see the schema index for its form.

## DescriptionTypeLiteral

`object`

A literal description, meaning there are no expected structure or format.

- `type` (`string enum`, required) — `literal`
- `value` (`string`, required)

## Edition

`one of EditionTypeLiteral | EditionTypeNumbering`

No properties in the specification — see the schema index for its form.

## EditionTypeLiteral

`object`

A literal edition, meaning there are no expected structure or format.

- `type` (`string enum`, required) — `literal`
- `value` (`string`, required) — A displayable (human readable) representation of the edition.

## EditionTypeNumbering

`object`

- `display` (`string`, optional) — A displayable (human readable) representation of the edition.
- `number` (`integer`, required) — The edition number.
- `printing` (`integer`, optional) — The printing number of the edition.
- `type` (`string enum`, required) — `numbering`

## Error

`object`

- `code` ([`ErrorCode`](https://plasapi.com/provider/v0.6.7/schemas/#ErrorCode), required)
- `info` ([`ErrorInfo`](https://plasapi.com/provider/v0.6.7/schemas/#ErrorInfo), required)

## ErrorCode

`integer enum`
`500` · `600` · `10001` · `71001` · `100001` · `100011` · `100013` · `100023` · `100101` · `100211` · `100215` · `100221` · `100411` · `100611` · `101001` · `101047` · `101053` · `102001` · `102301` · `102311` · `110001` · `200001` · `200077` · `200101` · `200103` · `300001` · `300005` · `300009` · `300013` · `300301` · `300311` · `310001` · `310011` · `330001` · `330011` · `330101` · `330111`

A number representing the type of error.

List of error codes:

- \<error code\>: \<error description\>  

- 500: System error
- 600: Unsupported Open Library API version
- 10001: Endpoint disabled
- 71001: Consent has not been given for 'loan history'
- 100001: Wrong patron identifier, password or pin code
- 100011: New password or pin code rejected, because it does not meet the provider's requirements
- 100013: The provider does not let the patron change the given credential
- 100023: Patron ID not found
- 100101: Patron could not be deleted, because the patron has something unresolved issue with the library (this could be anything from a loan to a fee, and so on ...)
- 100211: maxNumberOfEmailAddresses exceeded
- 100215: maxNumberOfPhoneNumbers exceeded
- 100221: Pickup location cannot contain sections
- 100411: Updating patron consent failed
- 100611: Updating patron notification settings failed
- 101001: Reservation ID not found
- 101047: Branch ID cannot be used as pick up branch
- 101053: Section ID cannot be used as pick up branch
- 102001: Loan ID not found
- 102301: Loan not renewable, because it is an interlibrary loan
- 102311: Loan not renewable, because it is reserved
- 110001: Branch ID not found
- 200001: Publication ID not found
- 200077: ui language not supported
- 200101: missing required query parameter
- 200103: invalid/unsupported query parameter value
- 300001: Initialize payment should not be used
- 300005: Initialize payment should be used
- 300009: Payment method not supported
- 300013: Payment method does not support partial payment
- 300301: Finalized payment can not de changed
- 300311: FinalizePaymentRequest.fees contains fees with the same ID
- 310001: Loan history ID not found
- 310011: Loan history ID already exists
- 330001: List ID not found
- 330011: List ID already exists
- 330101: List item ID not found
- 330111: List item ID already exists


No properties in the specification — see the schema index for its form.

## ErrorInfo

`string`

Starts with the text matching the error code field (defined above), and a describing text could be added.

No properties in the specification — see the schema index for its form.

## Errors

`object`

- `errors` ([`array of Error`](https://plasapi.com/provider/v0.6.7/schemas/#Error), required) — The first error should always be the most relevant.

## Event

`object`

Complete event information.

Only the field `description` can contain formatting.


- `admission` ([`EventAdmission`](https://plasapi.com/provider/v0.6.7/schemas/#EventAdmission), required)
- `audiences` ([`array of EventAudience`](https://plasapi.com/provider/v0.6.7/schemas/#EventAudience), optional) — Target audiences for the event
- `branch` ([`EventBranch`](https://plasapi.com/provider/v0.6.7/schemas/#EventBranch), required)
- `categories` ([`array of EventCategory`](https://plasapi.com/provider/v0.6.7/schemas/#EventCategory), optional) — Event categories
- `description` (`string`, required) — A detailed description of the event. Is in limited html format. Supports following html tags - b - i - p - a - ul - ol - li
- `id` (`string`, required) — Unique identifier for the event.

If multi events have the same 'id' but different language, then they are the same event.

- `images` ([`array of ImageTypeContent`](https://plasapi.com/provider/v0.6.7/schemas/#ImageTypeContent), optional)
- `language` (`string`, optional) — The language of this events content (https://www.loc.gov/marc/languages/).
- `location` ([`EventLocation`](https://plasapi.com/provider/v0.6.7/schemas/#EventLocation), optional)
- `organizers` ([`array of EventOrganizer`](https://plasapi.com/provider/v0.6.7/schemas/#EventOrganizer), optional) — Event organizers
- `promoted` ([`Promoted`](https://plasapi.com/provider/v0.6.7/schemas/#Promoted), optional)
- `relatedEvents` ([`RelatedEvents`](https://plasapi.com/provider/v0.6.7/schemas/#RelatedEvents), optional)
- `relevantWorks` ([`RelevantWorks`](https://plasapi.com/provider/v0.6.7/schemas/#RelevantWorks), optional)
- `scheduling` ([`EventScheduling`](https://plasapi.com/provider/v0.6.7/schemas/#EventScheduling), required)
- `series` ([`EventSeries`](https://plasapi.com/provider/v0.6.7/schemas/#EventSeries), optional)
- `state` ([`EventState`](https://plasapi.com/provider/v0.6.7/schemas/#EventState), required)
- `teaser` (`string`, optional) — A short, engaging text designed to spark interest in the event
- `title` (`string`, required) — Event title
- `updateTime` (`string (date-time)`, required) — When was the event last update (or create) in RFC3339 _date-time_ format.
- `url` (`string (uri)`, optional) — URL to the event's webpage

## EventAdmission

`one of OpenAdmission | TicketAdmission | RegistrationAdmission`

Admission and registration information for an event

No properties in the specification — see the schema index for its form.

## EventAudience

`object`

Information about an audience target for an event

- `id` (`string`, required) — Unique identifier for the audience target
- `label` (`string`, required) — Localized label for the audience target

## EventBranch

`object`

Branch information, this is the main branch associated with the event.

- `branchId` (`string`, required) — The branch ID (should exist in GET /locations)
- `branchName` (`string`, required) — Name of the branch

## EventCategory

`object`

Category classification for events

- `id` (`string`, required) — Category identifier
- `label` (`string`, required) — Localized category label

## EventLocation

`one of EventLocationAtBranch | EventLocationExternal`

The location where the event takes place

No properties in the specification — see the schema index for its form.

## EventLocationAtBranch

`object`

Location information for an event at the branch location.

- `location` (`string`, required) — The internal location used for the event
- `type` (`string enum`, required) — `at_branch`

## EventLocationExternal

`object`

Location information for an external venue.

- `address` ([`Address`](https://plasapi.com/provider/v0.6.7/schemas/#Address), optional) — The physical address of the event location
- `name` (`string`, required) — External location name
- `type` (`string enum`, required) — `external`

## EventOrganizer

`object`

Information about an external event organizer

- `id` (`string`, optional) — Unique identifier for the external organizer
- `name` (`string`, required) — Name of the external organizer

## EventPriceCategory

`object`

- `amount` (`integer`, required) — The price for a ticket. 0 if free.

The amount is in minor unit (see ISO 4217).

- `currency` (`string`, required) — The currency of the price. ISO 4217 code.
- `label` (`string`, optional) — A label for the price, this can been used e.g. as prefix for the price type. E.g. "Adults" or "Children"

## EventPricing

`one of EventPricingSimple | EventPricingPriceCategories`

Pricing information for an event

No properties in the specification — see the schema index for its form.

## EventPricingPriceCategories

`object`

- `categories` ([`array of EventPriceCategory`](https://plasapi.com/provider/v0.6.7/schemas/#EventPriceCategory), required) — Array of price categories for an event
- `type` (`string enum`, required) — `price_categories`

## EventPricingSimple

`object`

- `text` (`string`, required) — Simple pricing text, e.g. "0 - 100 DKK"
- `type` (`string enum`, required) — `simple` · `value`

## EventScheduling

`one of AllDayScheduling | TimeSpanScheduling`

No properties in the specification — see the schema index for its form.

## EventSeries

`object`

Information about an event series that this event belongs to

- `eventIds` (`array of string`, optional) — An array of event ids within the series. This list is restricted to events that fall within the date range specified by the API request.  
It does not include the event id of the current event itself.

- `seriesId` (`string`, required) — Identifier of the event-series. This searchId can be used with `GET /content/event/series/{seriesId}`.

## EventState

`string enum`
`scheduled` · `cancelled` · `finished`

The state of the event.

There are three event state type
- scheduled, Meaning that the event is scheduled and expected to be carried out as planned (See scheduling).
- cancelled, Meaning that the event is cancelled.
- finished, Meaning that the event is finished.


No properties in the specification — see the schema index for its form.

## ExpressionClusteringField

`one of ExpressionClusteringFieldNamedCreators | ExpressionClusteringFieldNamedContributors | ExpressionClusteringFieldNamedCreatorsAndContributors | ExpressionClusteringFieldNamedMediaTypes | ExpressionClusteringFieldNamedLanguage`

No properties in the specification — see the schema index for its form.

## ExpressionClusteringFieldName

`object`

This is used to tell the providers preferred clustering of publications.

No properties in the specification — see the schema index for its form.

## ExpressionClusteringFieldNamedContributors

`all of ExpressionClusteringFieldName + object`

No properties in the specification — see the schema index for its form.

## ExpressionClusteringFieldNamedCreators

`all of ExpressionClusteringFieldName + object`

No properties in the specification — see the schema index for its form.

## ExpressionClusteringFieldNamedCreatorsAndContributors

`all of ExpressionClusteringFieldName + object`

No properties in the specification — see the schema index for its form.

## ExpressionClusteringFieldNamedLanguage

`all of ExpressionClusteringFieldName + object`

No properties in the specification — see the schema index for its form.

## ExpressionClusteringFieldNamedMediaTypes

`all of ExpressionClusteringFieldName + object`

No properties in the specification — see the schema index for its form.

## Extent

`one of ExtentTypeLiteral | ExtentTypePages | ExtentTypePlaytime | ExtentTypeUnits`

No properties in the specification — see the schema index for its form.

## ExtentTypeLiteral

`object`

A literal extent, meaning there are no expected structure or format.

- `type` (`string enum`, required) — `literal`
- `value` (`string`, required) — A displayable (human readable) representation of the extent.

## ExtentTypePages

`object`

- `pages` (`integer`, required) — Number of physical pages.
- `type` (`string enum`, required) — `pages`

## ExtentTypePlaytime

`object`

- `playtime` (`integer`, required) — The total playtime in seconds.
- `type` (`string enum`, required) — `playtime`

## ExtentTypeUnits

`object`

- `type` (`string enum`, required) — `units`
- `unitType` (`string enum`, required) — `volume` · `dvd` · `cd` · `bluRay` · `cassette` · `lp`
- `units` (`integer`, required) — Number of physical units (volumes, dvd, cd, ...)

## Facet

`object`

- `name` (`string`, optional) — A displayable (human readable) facet name.
- `terms` ([`array of FacetTerm`](https://plasapi.com/provider/v0.6.7/schemas/#FacetTerm), required)
- `type` ([`SearchFacetType`](https://plasapi.com/provider/v0.6.7/schemas/#SearchFacetType), required)

## FacetTerm

`object`

- `name` (`string`, required) — A displayable (human readable) representation of facet term name.
- `occurrences` (`integer`, optional) — The number of occurrences in the search result, based on works.
- `value` (`string`, required) — The facet terms searchable value.

## FeeAmount

`integer`

The amount is in minor unit (see ISO 4217).

No properties in the specification — see the schema index for its form.

## FeeCreatedTime

`string (date-time)`

The date and time the fee was created.

No properties in the specification — see the schema index for its form.

## FeeCurrency

`string`

ISO 4217

No properties in the specification — see the schema index for its form.

## FeeDueDate

`string (date)`

The due date of the fee.

No properties in the specification — see the schema index for its form.

## FeeId

`string`

This is the fee ID.

No properties in the specification — see the schema index for its form.

## FeeItem

`object`

Item information related to a fee.

- `acquiredFrom` ([`PatronLoanAcquiredFrom`](https://plasapi.com/provider/v0.6.7/schemas/#PatronLoanAcquiredFrom), optional)
- `itemId` (`string`, required) — The item identifier of the item that the fee is about.
- `publicationMetadata` ([`PublicationFallback`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationFallback), required)

## FeePayableState

`string enum`
`payable` · `not_payable`

This state tells if the fee can be paid and finalized through this API.  
- *payable*: The fee is payable, and can be finalized through this API.
- *not_payable*: The fee cannot be finalized through this API.


No properties in the specification — see the schema index for its form.

## FeeRemainingAmount

`Amount`

The remaining amount is the amount that is still payable. If this is not equal to amount, part of the fee has been paid.

The amount is in minor unit (see ISO 4217).


No properties in the specification — see the schema index for its form.

## FeeType

`string enum`
`fee` · `compensation` · `send_to_debt_collector`

Defines the type of fee being applied. All fees indicate that the patron should pay, never the other way around.

The possible values are:
- *fee*: Indicates a regular fee, typically for a late checked-in loan.
- *compensation*: Indicates a compensation fee, typically applied due to a damaged or lost item.
- *send_to_debt_collector*: Indicates that the fee has been sent to a debt collector because it was not paid in time.


No properties in the specification — see the schema index for its form.

## FieldItemId

`string`

The item ID is the unique item identifier. This is the identifier needed to make a checkout and/or checkin. So if the LMS has an internal identifier for an item, but uses an external identifier for checkout and checkin, the itemId should be the value of the external identifier. In some LMSs, this is called the barcode.

No properties in the specification — see the schema index for its form.

## FinalizeFeesResponseBody

`object`

Contains a mapping from each (unique) fee ID (from the request) to a response detailing how the finalize operation went for that fee.

- `responses` (`unknown`, required) — A mapping from each fee ID (from the request) to a FinalizeFee.

## FinalizeFeeStatus

`string enum`
`registered` · `registered_by_different_payment_id` · `fee_not_payable` · `not_allowed`

The results of a payment finalize operation. 
If any other value than the following is returned, it can be assumed that the operation was unsuccessful (i.e. it was not finalized by the current request).

* **registered**:                         The fee was successfully finalized
* **registered_by_different_payment_id**: The fee had already been finalized by a different payment ID
* **fee_not_payable**:                    The fee was not payable, and therefore could not be finalized
* **not_allowed**:                        The client is not authorized to finalize this fee


No properties in the specification — see the schema index for its form.

## FinalizePaymentFee

`object`

- `amount` ([`FeeAmount`](https://plasapi.com/provider/v0.6.7/schemas/#FeeAmount), optional) — This should only be used with a partial enabled payment methods. If the partial payment is not enabled, but
this field is set, the error code 300013 is returned.

The amount is in minor unit (see ISO 4217).

- `id` ([`FeeId`](https://plasapi.com/provider/v0.6.7/schemas/#FeeId), required)

## FinalizePaymentRequestBody

`object`

- `fees` ([`array of FinalizePaymentFee`](https://plasapi.com/provider/v0.6.7/schemas/#FinalizePaymentFee), required) — The list of fees that should be finalized.  
This array must not contain any fees with the same ID. In that case, an error will be returned.

- `method` ([`ConfigurationPaymentMethodType`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationPaymentMethodType), required)
- `orderId` (`string`, optional) — Order ID from initialize payment.

If in the configuration, payment->initialize->state is `use_initialize`, this field is required.

- `paymentId` (`string`, required) — Payment ID from the payment gateway.

## Form

`object`

- `id` (`string`, optional) — A id that (if set) can be used with the filter `plas.forms` to search on this form.
- `label` (`string`, required) — A displayable (human readable) value of the form.

## Genre

`object`

- `id` (`string`, optional) — A id that (if set) can be used with the filter `plas.genres` to search on this genre.
- `label` (`string`, required) — A displayable (human readable) value of the genre.

## GetAgentsResponseBody

`object`

- `agents` (`unknown`, required)

## GetContentEventsInSeriesResponseBody

`object`

- `events` ([`array of Event`](https://plasapi.com/provider/v0.6.7/schemas/#Event), required)
- `total` (`integer`, required) — The total number of events in the series.

## GetContentEventsResponseBody

`object`

- `endOfResults` (`boolean`, required) — If this is false, we haven't reached the end of the search result yet, if it's false we have, and if it's missing or null we don't know.
- `events` ([`array of Event`](https://plasapi.com/provider/v0.6.7/schemas/#Event), required)
- `total` (`integer`, optional) — The total number of events in the whole period.

## GetHoldingResponseBody

`object`

- `holdings` (`unknown`, required)

## GetPublicationsResponseBody

`object`

- `publications` (`unknown`, required)

## GetSuggestionsResponseBody

`object`

- `suggestions` ([`array of Suggestion`](https://plasapi.com/provider/v0.6.7/schemas/#Suggestion), required)

## GetVersionResponseBody

`object`

- `version` ([`Version`](https://plasapi.com/provider/v0.6.7/schemas/#Version), required) — This is recommended (by the provider) version of the Open Library API, that is supported by provider.

## GetWorksResponseBody

`object`

- `works` (`unknown`, required)

## Holding

`object`

- `locations` ([`array of HoldingLocation`](https://plasapi.com/provider/v0.6.7/schemas/#HoldingLocation), required)
- `numberOfReservations` (`integer`, optional) — This tells how many reservations there exist on the publication (or periodical).

If this is unknown, the field is not set.

- `periodical` ([`HoldingPeriodical`](https://plasapi.com/provider/v0.6.7/schemas/#HoldingPeriodical), optional)
- `publicationId` (`string`, required) — The publication ID
- `reserveId` (`string`, required) — This is the Reserve ID to be used for reserving this publication (or periodical). If this is empty, the publication (or periodical) is not reservable.  
If the holding represents a periodical, this reserve ID is still all that is required to reserve that issue.


## HoldingItem

`object`

- `availableState` (`string enum`, required) — `available` · `not_available` — This tells if the item is available at the shelf.
- `itemId` ([`FieldItemId`](https://plasapi.com/provider/v0.6.7/schemas/#FieldItemId), required)
- `lendingDays` (`integer`, optional) — If this field is set, it should be assumed that the lending time for this item is different from other "normal" items.
This field tells how many days this item can be borrowed for.

Sometimes a publication is available and reservable, but numberOfReservations is not zero. This can be because some
items are not reservable, but are loanable. This would often be the case if an item has a shorter lending period than usual.

- `loanableState` (`string enum`, required) — `loanable` · `not_for_loan` — This tells if the item is loanable.
- `pickupLocations` ([`array of PickupLocation`](https://plasapi.com/provider/v0.6.7/schemas/#PickupLocation), optional) — This is a list of locations where a reservation on this item can be made to.
This field (if set) takes precedence over all other pickup locations information.

- `reserveId` (`string`, optional) — The reserve ID for reserving precisely this item. If this is empty or missing, the item is not reservable.

## HoldingLocation

`object`

The field location uniquely defines a location on a branch (library), and items tells which items are associated with that location.
In a holding response for a given publicationId, the unique combination of a location's branch and section elements should at most appear once.  

E.g. a combination of a location with 2 section items of types "floor" and "department" (in that order of relevance) and a shelfmark, would 
give the following path to the items: branch > section (floor) > section (department) > shelfmark.


- `items` ([`array of HoldingItem`](https://plasapi.com/provider/v0.6.7/schemas/#HoldingItem), required)
- `location` ([`Location`](https://plasapi.com/provider/v0.6.7/schemas/#Location), required)
- `pickupLocations` ([`array of PickupLocation`](https://plasapi.com/provider/v0.6.7/schemas/#PickupLocation), optional) — This is a list of locations where a reservation be made to.
This field (if set) takes precedence over the pickup locations information from in /locations and /patron/{patronId}/configuration.

- `shelfmark` (`string`, required)

## HoldingPeriodical

`object`

A Periodical is e.g. a magazine or a newspaper published at regular intervals.

If the holding does not represent a periodical, then this field is not set.


- `grouping` ([`array of HoldingPeriodicalGroup`](https://plasapi.com/provider/v0.6.7/schemas/#HoldingPeriodicalGroup), optional) — The grouping is the natural division of periodicals based on of e.g. when a periodical is published and/or which number it has.  
An example could be the periodical "Sky and telescope", let us say there exist 3 publishings for this periodical. Two in 2022, and one in 2023.  
The two from 2022 could be the volumes "March" and "July", and the one from 2023 could be "February".  
This will give us 2022 -> (March, July), 2023 -> February, and each can be expressed with its own grouping like this:
1. `[{"type": "year", "value": "2022"}, {"type": "volume", "value": "March"}]`
2. `[{"type": "year", "value": "2022"}, {"type": "volume", "value": "July"}]`
3. `[{"type": "year", "value": "2023"}, {"type": "volume", "value": "February"}]`

This makes it possible for the vendor to visualize all publishings of the periodical.

It is recommended that only the types `year`, `volume` and `number` are used, but if it is not enough, use the types level1, ..., level7.

The default grouping order is documented in [GET /configuration](#/Configuration/GetConfiguration), and if another ordering is needed, it can be specified there.

- `name` (`string`, optional) — The issue's name for display.

## HoldingPeriodicalGroup

`object`

- `type` ([`HoldingPeriodicalGroupType`](https://plasapi.com/provider/v0.6.7/schemas/#HoldingPeriodicalGroupType), required)
- `value` (`string`, required)

## HoldingPeriodicalGroupType

`string enum`
`year` · `volume` · `number` · `level1` · `level2` · `level3` · `level4` · `level5` · `level6` · `level7`

Is used to visually group and name the value.

No properties in the specification — see the schema index for its form.

## Holdings

`array of Holding`

No properties in the specification — see the schema index for its form.

## ImageAgent

`one of ImageTypeAgent`

No properties in the specification — see the schema index for its form.

## ImageAlt

`object`

Alternative for accessibility

- `text` (`string`, required) — Alternative text for accessibility

## ImageCredit

`object`

Image credit information

- `text` (`string`, required)

## ImageFocalPoint

`one of ImageFocalPointHotspot`

No properties in the specification — see the schema index for its form.

## ImageFocalPointHotspot

`object`

Describes the point of the most important part of the image

- `type` (`string enum`, required) — `hotspot`
- `x` (`number`, required) — Horizontal position of hotspot (0-1)
- `y` (`number`, required) — Vertical position of hotspot (0-1)

## ImageOriginal

`all of ImageUrl + object`

The `url' is the un-cropped version of the image

No properties in the specification — see the schema index for its form.

## ImagePublication

`one of ImageTypeFrontCover | ImageTypeBackCover`

No properties in the specification — see the schema index for its form.

## ImageTypeAgent

`all of ImageUrl + object`

No properties in the specification — see the schema index for its form.

## ImageTypeBackCover

`all of ImageUrl + object`

No properties in the specification — see the schema index for its form.

## ImageTypeContent

`all of ImageUrl + object`

No properties in the specification — see the schema index for its form.

## ImageTypeFrontCover

`all of ImageUrl + object`

No properties in the specification — see the schema index for its form.

## ImageUrl

`object`

- `height` (`integer`, optional) — The image height in px.
- `mime` (`string enum`, optional) — `png` · `jpeg`
- `url` (`string`, required)
- `width` (`integer`, optional) — The image width in px.

## InitializePaymentRequestBody

`object`

- `initialize` (`object`, required)

## InitializePaymentResponseBody

`object`

- `order` (`object`, required)

## IsPatronRegistrationPossibleRequestBody

`object`

In this the password is optional, because it is not all possible registries that need it.  
A registry is where we check if a patron can be registered.


- `identifier` ([`PatronIdentifierTypeAndValue`](https://plasapi.com/provider/v0.6.7/schemas/#PatronIdentifierTypeAndValue), required)
- `password` ([`PatronPassword`](https://plasapi.com/provider/v0.6.7/schemas/#PatronPassword), optional)

## IsPatronRegistrationPossibleResponseBody

`object`

- `registries` (`array of object`, required) — Any entry in this array is a possible way a new patron be registered through, based on the provided identifier.

## Language

`object`

- `code` (`string`, required) — A id that (if set) can be used with the filter `plas.language` to search on this genre.

Codes can be found at <https://www.loc.gov/marc/languages/>

- `name` (`string`, optional) — A displayable (human readable) value of the language.

## LoanCreatedTime

`string (date-time)`

The date and time the loan was made.

No properties in the specification — see the schema index for its form.

## LoanDueDate

`string (date)`

The latest date on which the loan must be returned.

No properties in the specification — see the schema index for its form.

## LoanId

`string`

This is the loan ID.

No properties in the specification — see the schema index for its form.

## LoanItemId

`string`

This is the item identifier of the checkout item.

No properties in the specification — see the schema index for its form.

## LoanPublicationId

`string`

This is the publication ID of the loan. If this is empty, the publication is unknown.

No properties in the specification — see the schema index for its form.

## LoanRenewableState

`string enum`
`renewable` · `not_renewable` · `renewable_later` · `unknown`

This tells the renewable state of the loan.

No properties in the specification — see the schema index for its form.

## LoanRenewInfo

`object`

This contain information about renewal of the loan.

- `count` (`integer`, optional) — The number of times this loan can still be renewed. If the field is missing, this information is unknown.
- `lastDate` (`string (date)`, optional) — The date when the loan was last renewed. If the field is missing, this information is unknown.
- `state` ([`LoanRenewableState`](https://plasapi.com/provider/v0.6.7/schemas/#LoanRenewableState), required)

## Location

`object`

The branch name and the section names are included in the response to make it easier to display the location. They are the same values as from the /locations endpoint.

- `branchId` (`string`, required)
- `branchName` (`string`, required)
- `path` ([`array of LocationSectionElementWithIdNameAndType`](https://plasapi.com/provider/v0.6.7/schemas/#LocationSectionElementWithIdNameAndType), required) — This contains location section elements, sorted in the same order as LocationsResponse->sections in /locations.
At most one of each location section type may be present in this array, but it is not a requirement that
all types are present - there should only be the needed types.

All section elements that can appear here, should be defined as an element of one of the sections in LocationsResponse->sections from /locations.


## LocationBranch

`object`

- `coordinates` (`object`, optional)
- `externals` ([`LocationBranchExternals`](https://plasapi.com/provider/v0.6.7/schemas/#LocationBranchExternals), optional)
- `id` (`string`, required) — This is the internal ID of the library branch, used in e.g. the HoldingLocation->location object.
- `name` (`string`, required) — Displayable name of the library branch.
- `pickup` (`object`, optional)
- `tags` (`array of string`, optional) — Can be used to add a simple custom attribute to a branch.  
It is not advisable to use this, unless absolutely necessary.  
There are no default tag values, and thus other vendors cannot be compatible by default, based on an Open Library API implementation.  
Instead, before using, try to reach out to Open Library API with a description of the problem to be solved.


## LocationBranchExternals

`object`

- `identifiers` (`array of object`, optional) — This is used to inform about external identifiers, like e.g. an ISIL code.

## LocationSection

`object`

All section types and elements defined here could appear in a holding location.

- `elements` ([`array of LocationSectionElementWithIdNameAndParentId`](https://plasapi.com/provider/v0.6.7/schemas/#LocationSectionElementWithIdNameAndParentId), required)
- `type` (`string`, required)

## LocationSectionElementType

`string`

This should be the section type of the section (element) ID.

No properties in the specification — see the schema index for its form.

## LocationSectionElementWithId

`object`

- `id` (`string`, required) — This is the section (element) ID

## LocationSectionElementWithIdAndName

`all of LocationSectionElementWithId + object`

No properties in the specification — see the schema index for its form.

## LocationSectionElementWithIdAndType

`all of LocationSectionElementWithId + object`

No properties in the specification — see the schema index for its form.

## LocationSectionElementWithIdNameAndParentId

`all of LocationSectionElementWithIdAndName + object`

No properties in the specification — see the schema index for its form.

## LocationSectionElementWithIdNameAndType

`all of LocationSectionElementWithIdAndName + object`

No properties in the specification — see the schema index for its form.

## LocationsResponseBody

`object`

- `branches` ([`array of LocationBranch`](https://plasapi.com/provider/v0.6.7/schemas/#LocationBranch), required)
- `mainBranch` (`object`, optional)
- `pickupLocations` ([`array of PickupLocation`](https://plasapi.com/provider/v0.6.7/schemas/#PickupLocation), optional) — Default pickup locations provided by the LMS. These can be customized at more granular levels:

*   **Item Level:** Defined within the `/holdings` endpoint (locations->items->pickupLocations). This has the highest priority.
*   **Publication Level:** Defined within the `/holdings` endpoint (locations->pickupLocations).
*   **Patron Level:** Defined via the `/patron/{patronId}/configuration` endpoint.
*   **LMS Level:** Defined via the `/locations` (this) endpoint. This has the lowest priority.

These levels, if present, fully replaces any lower level pickup locations.

If no pickup locations are defined at any of these levels, reservations cannot be made.

- `sections` ([`array of LocationSection`](https://plasapi.com/provider/v0.6.7/schemas/#LocationSection), required)

## MediaType

`object`

- `code` ([`MediaTypeType`](https://plasapi.com/provider/v0.6.7/schemas/#MediaTypeType), optional)
- `name` (`string`, required) — A displayable (human readable) representation of the media type.

## MediaTypeEnum

`string enum`
`book` · `eBook` · `audiobook`

No properties in the specification — see the schema index for its form.

## MediaTypeLiteral

`string`

No properties in the specification — see the schema index for its form.

## MediaTypeType

`any of MediaTypeEnum | MediaTypeLiteral`

A code that (if set) can be used with the filter `plas.mediaTypes` to search on this media type.

No properties in the specification — see the schema index for its form.

## OAuthClientIdAndSecret

`object`

- `client_id` (`string`, required)
- `client_secret` (`string`, required)

## OAuthToken

`object`

- `token` (`string`, required) — The token that we want to revoke. This is always an access_token.

## OpenAdmission

`object`

Open admission with no registration or tickets required

- `type` (`string enum`, required) — `open` — Type of admission - open access

## Patron

`object`

- `address` ([`PatronAddress`](https://plasapi.com/provider/v0.6.7/schemas/#PatronAddress), optional)
- `emails` ([`PatronEmails`](https://plasapi.com/provider/v0.6.7/schemas/#PatronEmails), required)
- `fullName` ([`PatronFullName`](https://plasapi.com/provider/v0.6.7/schemas/#PatronFullName), required) — FullName is always provided, but givenName and surname are only specified if the data is organized in such a detailed manner.
- `givenName` ([`PatronGivenName`](https://plasapi.com/provider/v0.6.7/schemas/#PatronGivenName), optional)
- `identifiers` ([`array of PatronIdentifierTypeAndValue`](https://plasapi.com/provider/v0.6.7/schemas/#PatronIdentifierTypeAndValue), optional)
- `patronId` ([`PatronId`](https://plasapi.com/provider/v0.6.7/schemas/#PatronId), required)
- `permissions` (`array of object`, optional) — This is a list of activities, locations, etc. that the patron is either allowed or blocked from accessing.
- `phoneNumbers` ([`PatronPhoneNumbers`](https://plasapi.com/provider/v0.6.7/schemas/#PatronPhoneNumbers), required)
- `pickupLocation` ([`PickupLocation`](https://plasapi.com/provider/v0.6.7/schemas/#PickupLocation), required) — The object tells where a reservation item can be picked up.

This is the default pickup location for the patron.

- `reservation` ([`PatronInfoReservation`](https://plasapi.com/provider/v0.6.7/schemas/#PatronInfoReservation), optional)
- `surname` ([`PatronSurname`](https://plasapi.com/provider/v0.6.7/schemas/#PatronSurname), optional)

## PatronAddress

`Address`

No properties in the specification — see the schema index for its form.

## PatronAuthenticationByCodeAndCodeVerifierRequestBody

`object`

- `code` (`string`, required) — The code obtained from a SSO patron authentication.
- `code_verifier` (`string`, required) — The code verifier use to create the code challenge use to obtained the code.
- `identity_provider` ([`ConfigurationPatronIdentityProviderType`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationPatronIdentityProviderType), required)

## PatronAuthenticationByCodeAndCodeVerifierResponseBody

`object`

- `patron` ([`Patron`](https://plasapi.com/provider/v0.6.7/schemas/#Patron), required)

## PatronAuthenticationIdentityProviderResponseBody

`object`

- `url` (`string (uri)`, required)

## PatronAuthenticationNoPasswordRequestBody

`object`

- `identifier` ([`PatronIdentifierTypeAndValue`](https://plasapi.com/provider/v0.6.7/schemas/#PatronIdentifierTypeAndValue), required)

## PatronAuthenticationNoPasswordResponseBody

`object`

- `patron` ([`Patron`](https://plasapi.com/provider/v0.6.7/schemas/#Patron), required)

## PatronAuthenticationRequestBody

`object`

- `identifier` ([`PatronIdentifierTypeAndValue`](https://plasapi.com/provider/v0.6.7/schemas/#PatronIdentifierTypeAndValue), required)
- `password` ([`PatronPassword`](https://plasapi.com/provider/v0.6.7/schemas/#PatronPassword), required)

## PatronAuthenticationResponseBody

`object`

- `patron` ([`Patron`](https://plasapi.com/provider/v0.6.7/schemas/#Patron), required)

## PatronConfiguration

`object`

The patron configuration object tells the settings and restriction that are placed on the patron.

- `reservation` ([`PatronConfigurationReservation`](https://plasapi.com/provider/v0.6.7/schemas/#PatronConfigurationReservation), optional)

## PatronConfigurationReservation

`object`

- `fee` ([`PatronConfigurationReservationFee`](https://plasapi.com/provider/v0.6.7/schemas/#PatronConfigurationReservationFee), optional)
- `limits` ([`array of PatronConfigurationReservationLimit`](https://plasapi.com/provider/v0.6.7/schemas/#PatronConfigurationReservationLimit), optional)
- `pickupLocations` ([`array of PickupLocation`](https://plasapi.com/provider/v0.6.7/schemas/#PickupLocation), optional) — This tells the locations the patron can change there default/main pickup location to.
If pickupLocations is set (also if it is the empty array), it overwrites the pickup information from /locations.
The pickupLocations from /holdings (if set) overwrites this information.


## PatronConfigurationReservationFee

`object`

This tells that there are a default fee connected to the action of making a reservation.

- `amount` ([`Amount`](https://plasapi.com/provider/v0.6.7/schemas/#Amount), required) — This is the fee amount that the patron must accept when making a reservation.

The amount is in minor unit (see ISO 4217).

- `chargedAt` (`string enum`, required) — `reservation` · `checkout`
- `currency` (`string`, required) — ISO 4217

## PatronConfigurationReservationLimit

`one of PatronConfigurationReservationLimitDaily | PatronConfigurationReservationLimitMax`

No properties in the specification — see the schema index for its form.

## PatronConfigurationReservationLimitDaily

`object`

This tells the daily limit of reservation the patron can make.

- `limit` (`integer`, required)
- `type` (`string enum`, required) — `daily`

## PatronConfigurationReservationLimitMax

`object`

This tells the maximum number of concurrent reservations the patron have.

- `limit` (`integer`, required)
- `type` (`string enum`, required) — `max`

## PatronConfigurationResponseBody

`object`

- `configuration` ([`PatronConfiguration`](https://plasapi.com/provider/v0.6.7/schemas/#PatronConfiguration), required)

## PatronConsentResponseBody

`object`

- `available` (`array of object`, required) — The array must only contain one consent of each type.
- `evaluated` ([`PatronEvaluatedConsents`](https://plasapi.com/provider/v0.6.7/schemas/#PatronEvaluatedConsents), required)

## PatronConsentType

`any of PatronConsentTypeEnum | PatronConsentTypeLiteral`

No properties in the specification — see the schema index for its form.

## PatronConsentTypeEnum

`string enum`
`loan_history`

No properties in the specification — see the schema index for its form.

## PatronConsentTypeLiteral

`string`

No properties in the specification — see the schema index for its form.

## PatronCredentialType

`string enum`
`password` · `pin`

The kind of credential a patron uses.

A credential here is the secret the patron knows. It is never the identifier: that is separate.

- `password` a password.
- `pin` a pin code.

GET /configuration says which of these apply where: `patron.login.credentials` for what a patron
can authenticate with, and `patron.credentials.changeable` and `patron.credentials.resettable` for
what a patron can change or have reset.


No properties in the specification — see the schema index for its form.

## PatronDeletionIdentityProviderResponseBody

`object`

- `url` (`string (uri)`, required)

## PatronEmail

`all of PatronEmailWithoutVerified + object`

No properties in the specification — see the schema index for its form.

## PatronEmails

`array of PatronEmail`

The size of this array must not exceed (if specified) the ´maxNumberOfEmailAddresses´ value given in the configuration.

No properties in the specification — see the schema index for its form.

## PatronEmailsWithoutVerified

`array of PatronEmailWithoutVerified`

The size of this array must not exceed (if specified) the ´maxNumberOfEmailAddresses´ value given in the configuration.

No properties in the specification — see the schema index for its form.

## PatronEmailWithoutVerified

`object`

- `default` (`boolean`, optional) — At most one email can de marked as default.
- `email` (`string`, required) — Patron email, following RFC 5322.

## PatronEvaluatedConsent

`object`

- `given` (`boolean`, required)
- `type` ([`PatronConsentType`](https://plasapi.com/provider/v0.6.7/schemas/#PatronConsentType), required)
- `version` (`string`, required) — The version of the consent that the patron has made a choice for or against.

## PatronEvaluatedConsents

`array of PatronEvaluatedConsent`

The array must only contain one consent of each type.

No properties in the specification — see the schema index for its form.

## PatronFee

`object`

- `amount` ([`FeeAmount`](https://plasapi.com/provider/v0.6.7/schemas/#FeeAmount), required)
- `createdTime` ([`FeeCreatedTime`](https://plasapi.com/provider/v0.6.7/schemas/#FeeCreatedTime), required)
- `currency` ([`FeeCurrency`](https://plasapi.com/provider/v0.6.7/schemas/#FeeCurrency), required)
- `dueDate` ([`FeeDueDate`](https://plasapi.com/provider/v0.6.7/schemas/#FeeDueDate), optional)
- `id` ([`FeeId`](https://plasapi.com/provider/v0.6.7/schemas/#FeeId), required)
- `items` ([`array of FeeItem`](https://plasapi.com/provider/v0.6.7/schemas/#FeeItem), optional) — The items this fee covers, if they are known.
- `payableState` ([`FeePayableState`](https://plasapi.com/provider/v0.6.7/schemas/#FeePayableState), required)
- `remainingAmount` ([`FeeRemainingAmount`](https://plasapi.com/provider/v0.6.7/schemas/#FeeRemainingAmount), optional)
- `type` ([`FeeType`](https://plasapi.com/provider/v0.6.7/schemas/#FeeType), required)

## PatronFeeResponseBody

`object`

- `fees` ([`array of PatronFee`](https://plasapi.com/provider/v0.6.7/schemas/#PatronFee), required)

## PatronFullName

`string`

Patron's full name.

No properties in the specification — see the schema index for its form.

## PatronGivenName

`string`

Patron's given name.

No properties in the specification — see the schema index for its form.

## PatronId

`string`

Unique patron identifier (unique for that customer).

No properties in the specification — see the schema index for its form.

## PatronIdentifier

`string`

Identifier value. This information may be sensitive.

No properties in the specification — see the schema index for its form.

## PatronIdentifierType

`any of PatronIdentifierTypeEnum | PatronIdentifierTypeLiteral`

A type identifier that tells which type of identifier is used.

This is an open enum, so values other than the known ones are allowed. GET /configuration says
which types the provider accepts for each flow, in `patron.login.identifierTypes`,
`patron.registration.identifierTypes` and `patron.deletion.identifierTypes`.


No properties in the specification — see the schema index for its form.

## PatronIdentifierTypeAndValue

`object`

This can be used to identify the user.  
The data contained in the object is often sensitive data.  
The field `type` is optional. If it is missing, the type of `value` is unknown.
Which types the provider accepts depends on the flow, and GET /configuration says so per flow in
`patron.login.identifierTypes`, `patron.registration.identifierTypes` and
`patron.deletion.identifierTypes`.


- `type` ([`PatronIdentifierType`](https://plasapi.com/provider/v0.6.7/schemas/#PatronIdentifierType), optional)
- `value` ([`PatronIdentifier`](https://plasapi.com/provider/v0.6.7/schemas/#PatronIdentifier), required)

## PatronIdentifierTypeEnum

`string enum`
`local` · `email` · `phone` · `norway_national_library_card` · `norway_national_birth_number` · `denmark_cpr`

The known patron identifier types.

- `local` an identifier for one local library.
- `email` an email address.
- `phone` a phone number.

Country specific:
- `norway_national_library_card` the Norwegian national library card.
- `norway_national_birth_number` the Norwegian "Fødselsnummer".
- `denmark_cpr` the Danish CPR number.


No properties in the specification — see the schema index for its form.

## PatronIdentifierTypeLiteral

`string`

No properties in the specification — see the schema index for its form.

## PatronInfoReservation

`object`

- `postpone` (`object`, optional) — This describes an interval (possibly an open interval, but only in one end) where the patron is not interested in reservations being fulfilled, e.g. while on vacation.


## PatronInformationResponseBody

`object`

- `patron` ([`Patron`](https://plasapi.com/provider/v0.6.7/schemas/#Patron), required)

## PatronList

`object`

- `id` (`string`, required) — The ID of the list.
- `name` (`string`, required) — The name of the list.

## PatronListBaseItem

`object`

- `id` (`string`, required) — The unique ID of the item in the list.

## PatronListItem

`one of PatronListItemWorkAndPublication`

No properties in the specification — see the schema index for its form.

## PatronListItems

`array of PatronListItem`

Items contained in the list.

No properties in the specification — see the schema index for its form.

## PatronListItemWorkAndPublication

`all of PatronListBaseItem + object`

No properties in the specification — see the schema index for its form.

## PatronListResponseBody

`all of PatronList + object`

No properties in the specification — see the schema index for its form.

## PatronListsResponseBody

`object`

- `default` (`string`, required) — The default patron list ID. If a vendor chooses to only use one patron list, this will be the recommended ID of that list.

If there exist no patron list with the default ID, the default list can be created.

- `lists` ([`array of PatronList`](https://plasapi.com/provider/v0.6.7/schemas/#PatronList), required) — A list of patron lists.

## PatronLoan

`object`

- `acquiredFrom` ([`PatronLoanAcquiredFrom`](https://plasapi.com/provider/v0.6.7/schemas/#PatronLoanAcquiredFrom), optional)
- `createdTime` ([`LoanCreatedTime`](https://plasapi.com/provider/v0.6.7/schemas/#LoanCreatedTime), required)
- `dueDate` ([`LoanDueDate`](https://plasapi.com/provider/v0.6.7/schemas/#LoanDueDate), required)
- `id` ([`LoanId`](https://plasapi.com/provider/v0.6.7/schemas/#LoanId), required)
- `itemId` ([`LoanItemId`](https://plasapi.com/provider/v0.6.7/schemas/#LoanItemId), required)
- `location` ([`CheckOutOrInLocationWithoutNames`](https://plasapi.com/provider/v0.6.7/schemas/#CheckOutOrInLocationWithoutNames), optional)
- `publicationId` ([`LoanPublicationId`](https://plasapi.com/provider/v0.6.7/schemas/#LoanPublicationId), required)
- `publicationMetadata` ([`PublicationFallback`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationFallback), optional)
- `renew` ([`LoanRenewInfo`](https://plasapi.com/provider/v0.6.7/schemas/#LoanRenewInfo), required)

## PatronLoanAcquiredFrom

`one of PatronLoanAcquiredFromTypeLocalCirculation | PatronLoanAcquiredFromTypeInterlibraryLoan | PatronLoanAcquiredFromTypeUnknown`

This tells from where (the material for) this loan was acquired.  
If this field are missing, the default value **local_circulation** should be assumed. 
* **local_circulation**: Meaning that this loan was acquired from the customers own inventory.
* **interlibrary_loan**: Meaning that this loan was acquired as a interlibrary loan.
* **unknown**: Meaning that this information is unknown.


No properties in the specification — see the schema index for its form.

## PatronLoanAcquiredFromTypeInterlibraryLoan

`object`

- `type` (`string enum`, required) — `interlibrary_loan`

## PatronLoanAcquiredFromTypeLocalCirculation

`object`

- `type` (`string enum`, required) — `local_circulation`

## PatronLoanAcquiredFromTypeUnknown

`object`

- `type` (`string enum`, required) — `unknown`

## PatronLoanHistory

`object`

- `acquiredFrom` ([`PatronLoanAcquiredFrom`](https://plasapi.com/provider/v0.6.7/schemas/#PatronLoanAcquiredFrom), optional)
- `addedToHistoryTime` (`string (date-time)`, required) — The date and time when the loan was added to the patron loan history.
- `checkinTime` (`string (date-time)`, optional) — The date and time the loan was checkin.
- `checkoutTime` ([`LoanCreatedTime`](https://plasapi.com/provider/v0.6.7/schemas/#LoanCreatedTime), optional)
- `dueDate` (`string (date)`, optional) — The due date of the loan at the time of checkin.
- `id` (`string`, required) — This is the loan history ID (not the loan ID).
- `itemId` ([`LoanItemId`](https://plasapi.com/provider/v0.6.7/schemas/#LoanItemId), optional)
- `loanId` ([`LoanId`](https://plasapi.com/provider/v0.6.7/schemas/#LoanId), optional)
- `manuallyAdded` (`boolean`, required) — Was the loan added manually by the patron.
- `publicationId` ([`LoanPublicationId`](https://plasapi.com/provider/v0.6.7/schemas/#LoanPublicationId), required)
- `publicationMetadata` ([`PublicationFallback`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationFallback), optional)

## PatronLoanHistoryResponseBody

`object`

- `loanHistory` ([`array of PatronLoanHistory`](https://plasapi.com/provider/v0.6.7/schemas/#PatronLoanHistory), required)

## PatronLoanResponseBody

`object`

- `loans` ([`array of PatronLoan`](https://plasapi.com/provider/v0.6.7/schemas/#PatronLoan), required)

## PatronNotificationCategory

`string`

This is used to suggest a way in which notifications could be visually grouped together.


No properties in the specification — see the schema index for its form.

## PatronNotificationDeliveryChosen

`PatronNotificationDeliveryMethods`

This tells which delivery methods the patron has chosen

No properties in the specification — see the schema index for its form.

## PatronNotificationDeliveryMethodEmail

`object`

- `method` (`string enum`, required) — `email`

## PatronNotificationDeliveryMethodPostal

`all of PatronAddress + object`

No properties in the specification — see the schema index for its form.

## PatronNotificationDeliveryMethods

`array of one of PatronNotificationDeliveryMethodSMS | PatronNotificationDeliveryMethodEmail | PatronNotificationDeliveryMethodVendor | PatronNotificationDeliveryMethodPostal`

No properties in the specification — see the schema index for its form.

## PatronNotificationDeliveryMethodSMS

`object`

- `method` (`string enum`, required) — `sms`

## PatronNotificationDeliveryMethodVendor

`object`

The `vendor` delivery method is special compared to the other methods.  
Each vendor connected with the provider should have their own instance of this method for each patron, 
meaning that the patron could have multiple instances of this method, but only one for each vendor, and only the instance
associated with that vendor should be shown to the vendor, and only that instance should be updatable by the vendor.

If this delivery method is enabled, the provider sends the associated event to that vendor's event endpoint (if it is configured).


- `method` (`string enum`, required) — `vendor`

## PatronNotificationSetting

`object`

- `category` ([`PatronNotificationCategory`](https://plasapi.com/provider/v0.6.7/schemas/#PatronNotificationCategory), optional)
- `delivery` (`object`, required) — This tells about delivery methods
- `name` (`string`, optional) — Readable text
- `type` ([`PatronNotificationType`](https://plasapi.com/provider/v0.6.7/schemas/#PatronNotificationType), required)

## PatronNotificationSettings

`array of PatronNotificationSetting`

The array must only contain one notification setting of each type.

No properties in the specification — see the schema index for its form.

## PatronNotificationSettingsResponseBody

`object`

- `notificationSettings` ([`PatronNotificationSettings`](https://plasapi.com/provider/v0.6.7/schemas/#PatronNotificationSettings), required)

## PatronNotificationType

`string`

This identifies the type of notification.

It is recommended to use the following notification types:  
- `checkout_receipt`, send a receipt when finished checking out items.
- `checkin_receipt`, send a receipt when finished checking in items.
- `reservation_ready_for_pickup`, send when a reservation is ready to be pickup by the patron.
- `ready_reservation_expires_soon`, a reservation that is ready to be pickup by the patron, will expire soon.
- `reservation_expires_soon`, a reservation (that is not ready to be pickup by the patron), will expire soon.
- `reservation_reminder`, if it has been a long time since the reservation was placed, this notification can be sent to remind the patron. It could be that the patron is no longer interested in the reservation. 
- `loan_due_date_is_approaching`, the due date of a loan is approaching. 
- `fee_due_date_is_approaching`, the due date of a fee is approaching.

The following notification types are also events, and if the `vendor` delivery method is chosen for any of these,
and the vendor has configured an event receiver through /configuration/event/register/receiver, the event will be sent to the vendor.
- `reservation_ready_for_pickup`
- `ready_reservation_expires_soon`
- `reservation_expires_soon`
- `reservation_reminder` 
- `loan_due_date_is_approaching` 
- `fee_due_date_is_approaching`


No properties in the specification — see the schema index for its form.

## PatronPassword

`string`

The credential for the identifier.

In authentication, registration and deletion this field carries whichever credential the provider
uses, so at a provider that uses pin codes the value is a pin code even though the field is named
`password`. For authentication, `patron.login.credentials` in GET /configuration says which it is.

In POST /patron/{patronId}/credential/change the value is always a password. That request body
carries a pin code in `currentPin` and `newPin` instead.


No properties in the specification — see the schema index for its form.

## PatronPhoneNumber

`all of PatronPhoneNumberWithoutVerified + object`

No properties in the specification — see the schema index for its form.

## PatronPhoneNumbers

`array of PatronPhoneNumber`

The size of this array must not exceed (if specified) the ´maxNumberOfPhoneNumbers´ value given in the configuration.

No properties in the specification — see the schema index for its form.

## PatronPhoneNumbersWithoutVerified

`array of PatronPhoneNumberWithoutVerified`

The size of this array must not exceed (if specified) the ´maxNumberOfPhoneNumbers´ value given in the configuration.

No properties in the specification — see the schema index for its form.

## PatronPhoneNumberWithoutVerified

`object`

- `default` (`boolean`, required) — At most one phone number can be marked as default.
- `number` (`string`, required) — The phone number, in ITU standard E.164 format.
- `type` (`string enum`, required) — `mobile` · `landline` — This tells which type of phone the number is associated with

## PatronPin

`string`

Pin code for identifier.

PLAS does not state a format. The length and the character set are decided by the provider, and a
pin code the provider will not accept is rejected with error code 100011.


No properties in the specification — see the schema index for its form.

## PatronRegistrationByCodeAndCodeVerifierResponseBody

`object`

- `message` (`string`, optional) — Message to the patron, with information about the registration process.
- `patronId` (`string`, optional) — If status is 'done' this should be set, else the user needs to log in again.
- `status` (`string enum`, required) — `done` · `in_progress` · `contact_the_library` — This describes the state of the registration process.

## PatronRegistrationIdentifierRequestBody

`object`

- `consents` ([`array of CallbackConsent`](https://plasapi.com/provider/v0.6.7/schemas/#CallbackConsent), optional) — It is the client's responsibility to ensure that the consent associated with this parameter is accepted by the patron before this request is made.

- `identifier` ([`PatronIdentifierTypeAndValue`](https://plasapi.com/provider/v0.6.7/schemas/#PatronIdentifierTypeAndValue), required)
- `password` ([`PatronPassword`](https://plasapi.com/provider/v0.6.7/schemas/#PatronPassword), required)
- `pickupLocation` ([`PickupLocationWithoutNames`](https://plasapi.com/provider/v0.6.7/schemas/#PickupLocationWithoutNames), required)
- `registry` (`string`, optional) — If against `GET /patron/registration/possible`, it has been checked that a patron can be registered, the
registry can be added here, else it is up to the provider to choose.


## PatronRegistrationIdentifierResponseBody

`object`

- `message` (`string`, optional) — Message to the patron, with information about the registration process.
- `patronId` (`string`, optional) — If status is 'done' this should be set, else the user needs to log in again.
- `status` (`string enum`, required) — `done` · `in_progress` · `contact_the_library` — This describes the state of the registration process.

## PatronRegistrationIdentityProviderResponseBody

`object`

- `message` (`string`, optional) — Message to the patron, with information about the registration process.
- `patronId` (`string`, optional) — If status is 'done' this should be set, else the user needs to log in again.
- `status` (`string enum`, required) — `done` · `in_progress` · `contact_the_library` — This describes the state of the registration process.

## PatronRegistryType

`any of PatronRegistryTypeEnum | PatronRegistryTypeLiteral`

Identifies the registry which a new patron can be registered through.

This is an open enum, so values other than the known ones are allowed. A registry is where the
patron would be registered, and not the kind of identifier they gave, even where a registry and a
PatronIdentifierType share a name.


No properties in the specification — see the schema index for its form.

## PatronRegistryTypeEnum

`string enum`
`norway_national_library_card`

The known registries.

- `norway_national_library_card` the Norwegian national library card registry.


No properties in the specification — see the schema index for its form.

## PatronRegistryTypeLiteral

`string`

No properties in the specification — see the schema index for its form.

## PatronReservation

`object`

- `createdTime` ([`ReservationCreatedTime`](https://plasapi.com/provider/v0.6.7/schemas/#ReservationCreatedTime), required)
- `expirationDate` ([`ReservationExpirationDate`](https://plasapi.com/provider/v0.6.7/schemas/#ReservationExpirationDate), optional)
- `fulfillmentBy` ([`PatronReservationFulfillmentBy`](https://plasapi.com/provider/v0.6.7/schemas/#PatronReservationFulfillmentBy), optional)
- `id` ([`ReservationId`](https://plasapi.com/provider/v0.6.7/schemas/#ReservationId), required)
- `itemId` ([`ReservationItemId`](https://plasapi.com/provider/v0.6.7/schemas/#ReservationItemId), optional)
- `pickup` (`object`, required)
- `publicationId` ([`ReservationPublicationId`](https://plasapi.com/provider/v0.6.7/schemas/#ReservationPublicationId), required)
- `publicationMetadata` ([`PublicationFallback`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationFallback), optional)
- `queueNumber` ([`ReservationQueueNumber`](https://plasapi.com/provider/v0.6.7/schemas/#ReservationQueueNumber), optional)
- `state` ([`ReservationState`](https://plasapi.com/provider/v0.6.7/schemas/#ReservationState), required)

## PatronReservationFulfillmentBy

`one of PatronReservationFulfillmentByTypeLocalCirculation | PatronReservationFulfillmentByTypeInterlibraryLoan | PatronReservationFulfillmentByTypePurchase | PatronReservationFulfillmentByTypeUnknown`

This tells from where the material that are expected to fulfill this reservation will be acquired from.
If this field are missing, the default value **local_circulation** should be assumed. 
* **local_circulation**: (default) Meaning that this reservation will be fulfilling from the customers own inventory.
* **interlibrary_loan**: Meaning that this reservation will be fulfilled as a interlibrary loan.
* **purchase**: Meaning that reservation can not be fulfilled right away, but a request to purchase the material has been submitted.
* **unknown**: Meaning that this information is unknown.


No properties in the specification — see the schema index for its form.

## PatronReservationFulfillmentByTypeInterlibraryLoan

`object`

- `type` (`string enum`, required) — `interlibrary_loan`

## PatronReservationFulfillmentByTypeLocalCirculation

`object`

- `type` (`string enum`, required) — `local_circulation`

## PatronReservationFulfillmentByTypePurchase

`object`

- `type` (`string enum`, required) — `purchase`

## PatronReservationFulfillmentByTypeUnknown

`object`

- `type` (`string enum`, required) — `unknown`

## PatronReservationResponseBody

`object`

- `reservations` ([`array of PatronReservation`](https://plasapi.com/provider/v0.6.7/schemas/#PatronReservation), required)

## PatronSurname

`string`

Patron surname.

No properties in the specification — see the schema index for its form.

## PickupLocation

`object`

The object tells a location where a reservation item can be picked up.
The `sections` is for specifying the location more precisely.

The branch name and section names are included in the response to make it easier to display the location. They are the same values as from the /locations endpoint.


- `branchId` (`string`, required) — The branch ID where a reservation should be picked up.
- `branchName` (`string`, required) — This is the name of the branch.
- `sections` ([`array of LocationSectionElementWithIdNameAndType`](https://plasapi.com/provider/v0.6.7/schemas/#LocationSectionElementWithIdNameAndType), optional) — This are specifying the location more precisely.

## PickupLocationWithoutNames

`object`

The object tells a location where a reservation item can be pickup.  
The `section` is for specifying the location more exactly.


- `branchId` (`string`, required) — The branch ID where a reservation should be picked up.
- `sections` ([`array of LocationSectionElementWithIdAndType`](https://plasapi.com/provider/v0.6.7/schemas/#LocationSectionElementWithIdAndType), optional) — This are specifying the location more precisely.

## Promoted

`object`

- `endTime` (`string (date-time)`, optional) — End time in RFC3339 _date-time_ format.
- `startTime` (`string (date-time)`, optional) — Start time in RFC3339 _date-time_ format.
- `type` ([`PromotedType`](https://plasapi.com/provider/v0.6.7/schemas/#PromotedType), required)

## PromotedType

`any of PromotedTypeEnum | PromotedTypeLiteral`

No properties in the specification — see the schema index for its form.

## PromotedTypeEnum

`string enum`
`promoted`

Pre-defined promotion states that we can "switch" on.

No properties in the specification — see the schema index for its form.

## PromotedTypeLiteral

`string`

Literal promotion states that are unknown beforehand.

No properties in the specification — see the schema index for its form.

## Publication

`object`

- `additionalIdentifiers` ([`PublicationAdditionalIdentifiers`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationAdditionalIdentifiers), optional)
- `binding` ([`Binding`](https://plasapi.com/provider/v0.6.7/schemas/#Binding), optional)
- `contributors` ([`PublicationContributors`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationContributors), optional)
- `creators` ([`PublicationCreators`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationCreators), optional)
- `edition` ([`Edition`](https://plasapi.com/provider/v0.6.7/schemas/#Edition), optional)
- `extent` ([`PublicationExtent`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationExtent), optional)
- `identifier` ([`PublicationIdentifier`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationIdentifier), required)
- `images` ([`PublicationImages`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationImages), optional)
- `language` ([`PublicationLanguage`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationLanguage), optional)
- `mediaTypes` ([`PublicationMediaTypes`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationMediaTypes), optional)
- `publicationDate` ([`Date`](https://plasapi.com/provider/v0.6.7/schemas/#Date), optional) — Date of publication.
- `publishers` ([`array of PublisherAndPlaces`](https://plasapi.com/provider/v0.6.7/schemas/#PublisherAndPlaces), optional) — List of publishers and associated place(s) of publication.
- `titles` ([`PublicationTitles`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationTitles), required)
- `works` ([`array of PublicationWork`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationWork), required)

## PublicationAdditionalIdentifiers

`array of AdditionalIdentifier`

Other identifiers, like: ISBN, ISSN, ...


No properties in the specification — see the schema index for its form.

## PublicationContributors

`array of Contributor`

The contributor(s) to the publication.

No properties in the specification — see the schema index for its form.

## PublicationCreators

`array of Contributor`

The creator(s) of the publication.

No properties in the specification — see the schema index for its form.

## PublicationExtent

`array of Extent`

Together all the Extents in the array describes the total extent of the publication.

No properties in the specification — see the schema index for its form.

## PublicationFallback

`Publication`

This metadata is only intended as fallback data, for when the provider is not able to serve the metadata through the GET /publication endpoint. 

This can for some provider be the case when working with e.g. interlibrary loans.


No properties in the specification — see the schema index for its form.

## PublicationIdentifier

`string`

Publication identifier. This is searchable through the GET /publication endpoint.

No properties in the specification — see the schema index for its form.

## PublicationImages

`array of ImagePublication`

Images to use with the publication.

No properties in the specification — see the schema index for its form.

## PublicationLanguage

`array of Language`

This is the language(s) of the this publication. If the publication uses multi languages this will also contain them.

No properties in the specification — see the schema index for its form.

## PublicationMediaTypes

`array of MediaType`

No properties in the specification — see the schema index for its form.

## PublicationTitles

`array of Title`

Title of the publication.

No properties in the specification — see the schema index for its form.

## PublicationWork

`object`

- `identifier` ([`PublicationWorkIdentifier`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationWorkIdentifier), required)
- `relation` ([`PublicationWorkRelation`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationWorkRelation), optional)

## PublicationWorkIdentifier

`string`

Work identifier of this publication. This is searchable through the GET /work endpoint.

No properties in the specification — see the schema index for its form.

## PublicationWorkRelation

`string enum`
`contains` · `embodies`

Describes the publications relation to a work.  
- contains: The publication contains this work, meaning the work is part of the publication.  
- embodies: The publication embodies this work, meaning the publication is the entire work.


No properties in the specification — see the schema index for its form.

## Publisher

`object`

- `id` (`string`, optional) — The unique identifier of the publisher. It can be used to search for the other entries by the publisher
- `name` (`string`, required) — The publisher's name.

## PublisherAndPlaces

`object`

- `places` ([`array of PublisherPlace`](https://plasapi.com/provider/v0.6.7/schemas/#PublisherPlace), optional) — Place of publication. Usually one place, but can be multiple.
- `publisher` ([`Publisher`](https://plasapi.com/provider/v0.6.7/schemas/#Publisher), required)

## PublisherPlace

`object`

- `place` (`string`, required)

## QueryRelevantWorks

`object`

Relevant works specified as a query string

- `query` (`string`, required) — Query string to find relevant works
- `type` (`string enum`, required) — `query` — Type of relevant works - query string

## RegisterEventReceiverRequestBody

`object`

- `secret` (`string`, required) — This cannot be empty. It should be randomly generated, and should be used to validate the Provider in the Vendor API.
- `url` (`string`, required) — The empty string will unregister an existing receiver for the vendor.


## RegisterPatronByCodeAndCodeVerifierRequestBody

`object`

- `code` (`string`, required) — The code obtained from a SSO patron registration.
- `code_verifier` (`string`, required) — The code verifier used to create the code challenge used to obtain the code.
- `consents` ([`array of CallbackConsent`](https://plasapi.com/provider/v0.6.7/schemas/#CallbackConsent), optional) — Consents returned from the SSO callback (GET /callbacks/patron).
It is the client's responsibility to ensure that the consent associated with this parameter is accepted by the patron before this request is made.

- `identity_provider` ([`ConfigurationPatronIdentityProviderType`](https://plasapi.com/provider/v0.6.7/schemas/#ConfigurationPatronIdentityProviderType), required)
- `pickupLocation` ([`PickupLocationWithoutNames`](https://plasapi.com/provider/v0.6.7/schemas/#PickupLocationWithoutNames), required)

## RegistrationAdmission

`object`

Registration-based admission with contact information

- `contactInfo` ([`ContactInfo`](https://plasapi.com/provider/v0.6.7/schemas/#ContactInfo), required)
- `state` ([`TicketState`](https://plasapi.com/provider/v0.6.7/schemas/#TicketState), required) — State of the registration
- `type` (`string enum`, required) — `registration` — Type of admission - registration required

## RelatedEvents

`array of string`

Related events

No properties in the specification — see the schema index for its form.

## RelevantWorks

`one of WorksRelevantWorks | QueryRelevantWorks`

Books or other works relevant to the event

No properties in the specification — see the schema index for its form.

## RenewPatronLoanFailure

`object`

If the renewal failed, status should be set to the reason for the failure.

- `status` (`string enum`, required) — `denied` · `too_many_renewals` · `user_blocked` · `renewal_blocked_by_fees` · `reservation_blocked_renewal` — There are many possible failure states a renewal attempt can have.

## RenewPatronLoanResponseBody

`one of RenewPatronLoanSuccess | RenewPatronLoanFailure`

No properties in the specification — see the schema index for its form.

## RenewPatronLoanSuccess

`object`

If the renewal went well, status should be set to `success`, and loan should be set to the renewed loan.

- `loan` ([`PatronLoan`](https://plasapi.com/provider/v0.6.7/schemas/#PatronLoan), required)
- `status` (`string enum`, required) — `success`

## ReservationCreatedTime

`string (date-time)`

The date and time the reservation was created.

No properties in the specification — see the schema index for its form.

## ReservationExpirationDate

`string (date)`

The date when the reservation expires. If this is missing, the value is unknown.

No properties in the specification — see the schema index for its form.

## ReservationId

`string`

This is the reservation ID.

No properties in the specification — see the schema index for its form.

## ReservationItemId

`string`

This is the item identifier that actually fulfills the reservation. This can often only be set when the reservation is ready for pickup. If the reservation is on item level, it can be set earlier.

No properties in the specification — see the schema index for its form.

## ReservationPickupExpirationDate

`string (date)`

The date for the last chance to pick up the reservation. If this is missing, the value is unknown.

No properties in the specification — see the schema index for its form.

## ReservationPickupNote

`string`

This is the note that is used to tell the patron where to get the reservation.  
E.g. 
- a shelf number, e.g. "Shelf 9".
- an instruction, e.g. "Front desk"
- an identifier, e.g. "10/114"


No properties in the specification — see the schema index for its form.

## ReservationPublicationId

`string`

This is the publication ID of the reservation. If this is empty, the publication is unknown.

No properties in the specification — see the schema index for its form.

## ReservationQueueNumber

`integer`

The queue number tells what number in the queue the patron is. If this is missing, it represents that the queue number is unknown.

No properties in the specification — see the schema index for its form.

## ReservationState

`string enum`
`ready_for_pickup` · `in_queue` · `postponed`

This represents where in the acquiring process this reservation is.

No properties in the specification — see the schema index for its form.

## ReserveId

`string`

This is the ID used to make a reservation.

No properties in the specification — see the schema index for its form.

## ResetPatronCredentialRequestBody

`object`

- `credential` (`all of PatronCredentialType + unknown`, optional)
- `email` (`string`, required) — The email address, following RFC 5322, that the reset link should be sent to.

This selects which of the patron's already registered email addresses to use. The provider
must only send the reset link if this email address is already attached to the patron
identified by `identifier` and verified there, and must never send to an address that is
not. If it is not attached, or attached but not verified, nothing must be sent, and the
response is unchanged.

- `identifier` ([`PatronIdentifierTypeAndValue`](https://plasapi.com/provider/v0.6.7/schemas/#PatronIdentifierTypeAndValue), required)

## RevokeTokenRequestBody

`all of OAuthClientIdAndSecret + OAuthToken`

This is for revoking a token, when using OAuth grant_type *client_credentials*.

No properties in the specification — see the schema index for its form.

## SearchAgentsResponseBody

`object`

- `results` ([`array of Agent`](https://plasapi.com/provider/v0.6.7/schemas/#Agent), required)
- `total` (`integer`, required) — The total number of results in the whole search result.

## SearchFacetType

`any of SearchFacetTypeEnum | SearchFacetTypeLiteral`

Facet type, this is the value given to the search facet parameter.

The SearchFacetType should always exists in SearchFilterType


No properties in the specification — see the schema index for its form.

## SearchFacetTypeEnum

`string enum`
`plas.audience.literal` · `plas.audience.ageRange` · `plas.audience.ageGroup` · `plas.mediaTypes` · `plas.language` · `plas.subjects` · `plas.genres` · `plas.forms`

No properties in the specification — see the schema index for its form.

## SearchFacetTypeLiteral

`string`

No properties in the specification — see the schema index for its form.

## SearchFilterType

`any of SearchFilterTypeEnum | SearchFilterTypeLiteral`

Filter type, this is the value given to the search `filter` parameter.

No properties in the specification — see the schema index for its form.

## SearchFilterTypeEnum

`string enum`
`plas.audience.literal` · `plas.audience.ageRange` · `plas.audience.ageGroup` · `plas.mediaTypes` · `plas.language` · `plas.subjects` · `plas.genres` · `plas.forms`

No properties in the specification — see the schema index for its form.

## SearchFilterTypeLiteral

`string`

No properties in the specification — see the schema index for its form.

## SearchResultEntry

`object`

This search entry, represents one entry in a search result.

It's partial build with data from a work, with additional data from the works underlying publications.


- `work` ([`SearchResultEntryWork`](https://plasapi.com/provider/v0.6.7/schemas/#SearchResultEntryWork), required)

## SearchResultEntryPublication

`object`

- `identifier` ([`PublicationIdentifier`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationIdentifier), required)
- `language` ([`PublicationLanguage`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationLanguage), optional)
- `mediaTypes` ([`PublicationMediaTypes`](https://plasapi.com/provider/v0.6.7/schemas/#PublicationMediaTypes), optional)

## SearchResultEntryWork

`object`

- `creationDate` ([`Date`](https://plasapi.com/provider/v0.6.7/schemas/#Date), optional)
- `creators` ([`WorkCreators`](https://plasapi.com/provider/v0.6.7/schemas/#WorkCreators), optional)
- `forms` ([`WorkForms`](https://plasapi.com/provider/v0.6.7/schemas/#WorkForms), optional)
- `identifier` ([`WorkIdentifier`](https://plasapi.com/provider/v0.6.7/schemas/#WorkIdentifier), required)
- `images` ([`array of ImagePublication`](https://plasapi.com/provider/v0.6.7/schemas/#ImagePublication), optional) — Images to use with the work.
- `publications` ([`array of SearchResultEntryPublication`](https://plasapi.com/provider/v0.6.7/schemas/#SearchResultEntryPublication), required) — This contain only the underlying publications from the work, that matches the search criteria.
- `titles` ([`WorkTitles`](https://plasapi.com/provider/v0.6.7/schemas/#WorkTitles), required)

## SearchSortingType

`any of SearchSortingTypeEnum | SearchSortingTypeLiteral`

Sorting type, this is the value given to the search facet parameter.

The default sorting is `plas.relevance.desc`.


No properties in the specification — see the schema index for its form.

## SearchSortingTypeEnum

`string enum`
`plas.relevance.asc` · `plas.relevance.desc` · `plas.titles.asc` · `plas.titles.desc` · `plas.publicationDate.asc` · `plas.publicationDate.desc`

No properties in the specification — see the schema index for its form.

## SearchSortingTypeLiteral

`string`

No properties in the specification — see the schema index for its form.

## SearchWorksResponseBody

`object`

- `endOfResults` (`boolean`, required) — If this is false, we haven't reached the end of the search result yet, if it's false we have, and if it's missing or null we don't know.
- `facets` ([`array of Facet`](https://plasapi.com/provider/v0.6.7/schemas/#Facet), optional) — This array contains the requested facets, and their terms. Each facet type should only appear once in the array.
- `results` ([`array of SearchResultEntry`](https://plasapi.com/provider/v0.6.7/schemas/#SearchResultEntry), required) — It's important to be aware that, the result size doesn't always match the given page size, the result set can be both small and greater.
- `total` (`integer`, optional) — The total number of results in the whole search result.

## Subject

`object`

- `id` (`string`, optional) — A id that (if set) can be used with the filter `plas.subjects` to search on this subject.
- `label` (`string`, required) — A displayable (human readable) value of the subject.

## Suggestion

`one of SuggestionTypeQuery | SuggestionTypeContributor | SuggestionTypeWork | SuggestionTypeSubject`

No properties in the specification — see the schema index for its form.

## SuggestionAgent

`one of SuggestionAgentTypePerson | SuggestionAgentTypeCollective`

No properties in the specification — see the schema index for its form.

## SuggestionAgentTypeCollective

`all of BaseSuggestionAgent + object`

No properties in the specification — see the schema index for its form.

## SuggestionAgentTypePerson

`all of BaseSuggestionAgent + object`

No properties in the specification — see the schema index for its form.

## SuggestionParameterTypeEnum

`string enum`
`query` · `contributor` · `work` · `subject`

No properties in the specification — see the schema index for its form.

## SuggestionsFilterType

`any of SuggestionsFilterTypeEnum | SuggestionsFilterTypeLiteral`

Filter type, this is the value given to the suggestions `filter` parameter.

No properties in the specification — see the schema index for its form.

## SuggestionsFilterTypeEnum

`string enum`
`plas.audience.literal` · `plas.audience.ageRange` · `plas.audience.ageGroup` · `plas.mediaTypes` · `plas.language` · `plas.subjects` · `plas.genres` · `plas.forms`

No properties in the specification — see the schema index for its form.

## SuggestionsFilterTypeLiteral

`string`

No properties in the specification — see the schema index for its form.

## SuggestionTypeContributor

`object`

- `contributor` (`object`, required)
- `type` (`string enum`, required) — `contributor`

## SuggestionTypeQuery

`object`

- `query` (`string`, required)
- `type` (`string enum`, required) — `query`

## SuggestionTypeSubject

`object`

- `subject` ([`Subject`](https://plasapi.com/provider/v0.6.7/schemas/#Subject), required)
- `type` (`string enum`, required) — `subject`

## SuggestionTypeWork

`object`

- `type` (`string enum`, required) — `work`
- `work` (`object`, required)

## TicketAdmission

`object`

Ticket-based admission with pricing and capacity

- `contactInfo` ([`ContactInfo`](https://plasapi.com/provider/v0.6.7/schemas/#ContactInfo), required)
- `pricing` ([`EventPricing`](https://plasapi.com/provider/v0.6.7/schemas/#EventPricing), required)
- `state` ([`TicketState`](https://plasapi.com/provider/v0.6.7/schemas/#TicketState), required) — State of the ticket sale
- `ticketCapacity` (`string`, optional) — Total number of tickets which can be sold for the event. E.g. "100" or "unlimited"
- `type` (`string enum`, required) — `ticket` — Type of admission - ticket required

## TicketState

`string enum`
`ticket_sale_not_open` · `ticket_sale_open` · `almost_sold_out` · `sold_out`

State of ticket sales or registration

No properties in the specification — see the schema index for its form.

## TimeSpanScheduling

`object`

Time-span event scheduling information

- `endTime` (`string (date-time)`, required) — End time in RFC3339 _date-time_ format.
- `startTime` (`string (date-time)`, required) — Start time in RFC3339 _date-time_ format.
- `type` (`string enum`, required) — `time_span` — Type of scheduling for time-span events

## Title

`one of TitleTypePreferred | TitleTypeVariant | TitleTypeParallel | TitleTypeOriginal`

No properties in the specification — see the schema index for its form.

## TitleTypeOriginal

`all of BasicTitle + object`

No properties in the specification — see the schema index for its form.

## TitleTypeParallel

`all of BasicTitle + object`

No properties in the specification — see the schema index for its form.

## TitleTypePreferred

`all of BasicTitle + object`

No properties in the specification — see the schema index for its form.

## TitleTypeVariant

`all of BasicTitle + object`

No properties in the specification — see the schema index for its form.

## UpdatePatronConsentRequestBody

`object`

- `consents` ([`PatronEvaluatedConsents`](https://plasapi.com/provider/v0.6.7/schemas/#PatronEvaluatedConsents), required)

## UpdatePatronConsentResponseBody

`object`

- `available` (`array of object`, required) — The array must only contain one consent of each type.
- `evaluated` ([`PatronEvaluatedConsents`](https://plasapi.com/provider/v0.6.7/schemas/#PatronEvaluatedConsents), required)

## UpdatePatronInformationRequestAcceptedResponseBody

`object`

- `ticket` (`string`, required) — Can be used for debugging.

## UpdatePatronInformationRequestBody

`object`

- `address` ([`PatronAddress`](https://plasapi.com/provider/v0.6.7/schemas/#PatronAddress), optional)
- `emails` ([`PatronEmailsWithoutVerified`](https://plasapi.com/provider/v0.6.7/schemas/#PatronEmailsWithoutVerified), optional)
- `phoneNumbers` ([`PatronPhoneNumbersWithoutVerified`](https://plasapi.com/provider/v0.6.7/schemas/#PatronPhoneNumbersWithoutVerified), optional)
- `pickupLocation` ([`PickupLocationWithoutNames`](https://plasapi.com/provider/v0.6.7/schemas/#PickupLocationWithoutNames), optional)
- `reservation` ([`PatronInfoReservation`](https://plasapi.com/provider/v0.6.7/schemas/#PatronInfoReservation), optional)

## UpdatePatronInformationResponseBody

`object`

- `patron` ([`Patron`](https://plasapi.com/provider/v0.6.7/schemas/#Patron), required)

## UpdatePatronListRequestBody

`object`

- `name` (`string`, required) — The new name of the list.

## UpdatePatronNotificationSetting

`object`

- `chosen` ([`PatronNotificationDeliveryChosen`](https://plasapi.com/provider/v0.6.7/schemas/#PatronNotificationDeliveryChosen), required)
- `type` ([`PatronNotificationType`](https://plasapi.com/provider/v0.6.7/schemas/#PatronNotificationType), required)

## UpdatePatronNotificationSettingsRequestBody

`object`

- `notificationSettings` ([`array of UpdatePatronNotificationSetting`](https://plasapi.com/provider/v0.6.7/schemas/#UpdatePatronNotificationSetting), required)

## UpdatePatronNotificationSettingsResponseBody

`object`

- `notificationSettings` ([`PatronNotificationSettings`](https://plasapi.com/provider/v0.6.7/schemas/#PatronNotificationSettings), required)

## UpdatePatronReservationRequestBody

`object`

- `pickupLocation` ([`PickupLocationWithoutNames`](https://plasapi.com/provider/v0.6.7/schemas/#PickupLocationWithoutNames), required)

## UpdatePatronReservationResponseBody

`object`

- `reservation` ([`PatronReservation`](https://plasapi.com/provider/v0.6.7/schemas/#PatronReservation), required)

## Version

`string`

Open Library API version.

No properties in the specification — see the schema index for its form.

## Work

`object`

- `audience` ([`WorkAudience`](https://plasapi.com/provider/v0.6.7/schemas/#WorkAudience), optional)
- `classification` ([`WorkClassification`](https://plasapi.com/provider/v0.6.7/schemas/#WorkClassification), optional)
- `contributors` ([`WorkContributors`](https://plasapi.com/provider/v0.6.7/schemas/#WorkContributors), optional)
- `creationDate` ([`Date`](https://plasapi.com/provider/v0.6.7/schemas/#Date), optional)
- `creators` ([`WorkCreators`](https://plasapi.com/provider/v0.6.7/schemas/#WorkCreators), optional)
- `description` ([`WorkDescription`](https://plasapi.com/provider/v0.6.7/schemas/#WorkDescription), optional)
- `forms` ([`WorkForms`](https://plasapi.com/provider/v0.6.7/schemas/#WorkForms), optional)
- `genres` ([`WorkGenres`](https://plasapi.com/provider/v0.6.7/schemas/#WorkGenres), optional)
- `identifier` ([`WorkIdentifier`](https://plasapi.com/provider/v0.6.7/schemas/#WorkIdentifier), required)
- `images` ([`WorkImages`](https://plasapi.com/provider/v0.6.7/schemas/#WorkImages), optional)
- `language` ([`WorkLanguage`](https://plasapi.com/provider/v0.6.7/schemas/#WorkLanguage), optional)
- `publicationIds` ([`WorkPublicationIds`](https://plasapi.com/provider/v0.6.7/schemas/#WorkPublicationIds), optional)
- `subjects` ([`WorkSubjects`](https://plasapi.com/provider/v0.6.7/schemas/#WorkSubjects), optional)
- `titles` ([`WorkTitles`](https://plasapi.com/provider/v0.6.7/schemas/#WorkTitles), required)

## WorkAudience

`array of Audience`

Intended audience, target audience or intellectual level of the work.

No properties in the specification — see the schema index for its form.

## WorkClassification

`array of Classification`

Classification of the work.

No properties in the specification — see the schema index for its form.

## WorkContributors

`array of Contributor`

The contributor(s) to the work.

No properties in the specification — see the schema index for its form.

## WorkCreators

`array of Contributor`

The creator(s) of the work.

No properties in the specification — see the schema index for its form.

## WorkDescription

`array of Description`

Help readers understand what the work is about and whether they might be interested in lending/reserving it.

No properties in the specification — see the schema index for its form.

## WorkForms

`array of Form`

Form is a more specific type of metadata that describes the physical structure or organization of a work.

No properties in the specification — see the schema index for its form.

## WorkGenres

`array of Genre`

Genre is a broad category of works that share similar characteristics, such as style, tone, or subject matter.

No properties in the specification — see the schema index for its form.

## WorkIdentifier

`string`

Work identifier. This is searchable through the GET /work endpoint.

No properties in the specification — see the schema index for its form.

## WorkImages

`array of ImagePublication`

Images to use with the work.

No properties in the specification — see the schema index for its form.

## WorkLanguage

`array of Language`

This is the original language of the work. If the original version of the work uses multi languages this will also contain them.

No properties in the specification — see the schema index for its form.

## WorkPublicationIds

`array of string`

All publication identifiers from the works underlying publications. These are searchable through the GET /publication endpoint.

No properties in the specification — see the schema index for its form.

## WorksRelevantWorks

`object`

Relevant works specified as an array of work IDs

- `type` (`string enum`, required) — `works` — Type of relevant works - array of work ids
- `workIds` (`array of string`, required) — Array of works

## WorkSubjects

`array of Subject`

Subject is a topic or theme that is covered in a work.

No properties in the specification — see the schema index for its form.

## WorkTitles

`array of Title`

Title of the work.

No properties in the specification — see the schema index for its form.
