openapi: 3.2.0 info: title: Folio Reference data API contact: name: Knowledge Integration url: https://www.k-int.com version: '1.0' description: 'Operations tagged Reference data across 6 of this provider''s published API definitions: folio-mod-agreements-openapi.json, folio-mod-licenses-openapi.json, folio-mod-oa-openapi.json, folio-mod-agreements-openapi.yml, folio-mod-licenses-openapi.yml, folio-mod-oa-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://folio-snapshot-okapi.dev.folio.org - url: https://folio-snapshot-2-okapi.dev.folio.org - url: https://folio-etesting-snapshot-kong.ci.folio.org security: - accessToken: [] - okapiToken: [] tags: - name: Reference data paths: /erm/refdata: description: Supports search and creation of reference data categories. parameters: - $ref: '#/components/parameters/x-okapi-tenant' get: tags: - Reference data summary: Get a set of reference data category records operationId: getRefdataCategories parameters: - $ref: '#/components/parameters/filters' - $ref: '#/components/parameters/match' - $ref: '#/components/parameters/term' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/stats' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/page' responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/RefdataCategoryResults' - $ref: '#/components/schemas/RefdataCategoryResultsArray' '400': description: Bad request error '403': description: Forbidden '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' post: tags: - Reference data summary: Create reference data category record operationId: postRefdataCategory requestBody: content: application/json: schema: $ref: '#/components/schemas/RefdataCategory' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/RefdataCategory' '400': description: Bad request error '403': description: Forbidden '422': description: Validation error content: application/json: schema: $ref: '#/components/schemas/ApplicationError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' servers: - url: https://folio-snapshot-okapi.dev.folio.org - url: https://folio-snapshot-2-okapi.dev.folio.org - url: https://folio-etesting-snapshot-kong.ci.folio.org /erm/refdata/{refdataId}: parameters: - $ref: '#/components/parameters/x-okapi-tenant' - $ref: '#/components/parameters/refdataId' get: tags: - Reference data summary: Get a specified reference data category record operationId: getRefdataCategory responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RefdataCategory' '400': description: Bad request error '403': description: Forbidden '404': description: Not found error content: application/json: schema: $ref: '#/components/schemas/HttpError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' put: tags: - Reference data summary: Update reference data category record operationId: putRefdataCategory requestBody: content: application/json: schema: $ref: '#/components/schemas/RefdataCategory' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RefdataCategory' '400': description: Bad request error '403': description: Forbidden '404': description: Not found error content: application/json: schema: $ref: '#/components/schemas/HttpError' '422': description: Validation error content: application/json: schema: $ref: '#/components/schemas/ApplicationError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' delete: tags: - Reference data summary: Delete a specified reference data category record. operationId: deleteRefdataCategory responses: '204': description: No content '400': description: Bad request error '403': description: Forbidden '404': description: Not found error content: application/json: schema: $ref: '#/components/schemas/HttpError' '405': description: Method not allowed - this reference data category is internal and cannot be deleted '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' servers: - url: https://folio-snapshot-okapi.dev.folio.org - url: https://folio-snapshot-2-okapi.dev.folio.org - url: https://folio-etesting-snapshot-kong.ci.folio.org /erm/refdata/{domain}/{property}: description: Look up the reference data values for a single property of a domain class, e.g. the valid `agreementStatus` values for `SubscriptionAgreement`. The domain and property are combined into a reference data category name internally. An unrecognised `domain` returns a 404; an unrecognised `property` on a valid `domain` does not error, it returns a 200 with an empty result set, since a category name is always derived even when nothing matches it. parameters: - $ref: '#/components/parameters/x-okapi-tenant' - $ref: '#/components/parameters/refdataDomain' - $ref: '#/components/parameters/refdataProperty' get: tags: - Reference data summary: Get the reference data values for a domain class property operationId: getRefdataValuesForProperty parameters: - $ref: '#/components/parameters/filters' - $ref: '#/components/parameters/match' - $ref: '#/components/parameters/term' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/stats' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/page' responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/RefdataResults' - $ref: '#/components/schemas/RefdataResultsArray' '400': description: Bad request error '403': description: Forbidden '404': description: 'Not found error: `domain` does not match any known domain class. Note an unrecognised `property` on a valid `domain` does not trigger this; it returns 200 with an empty result set instead. This action does not write its own error body, so the response has no content.' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' servers: - url: https://folio-snapshot-okapi.dev.folio.org - url: https://folio-snapshot-2-okapi.dev.folio.org - url: https://folio-etesting-snapshot-kong.ci.folio.org /licenses/refdata: description: Supports search and creation of reference data category records. parameters: - $ref: '#/components/parameters/x-okapi-tenant' get: tags: - Reference data summary: Get a set of reference data category records operationId: getLicensesRefdata parameters: - $ref: '#/components/parameters/filters' - $ref: '#/components/parameters/match' - $ref: '#/components/parameters/term' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/stats' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/page' responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/RefDataCategoryResults' - $ref: '#/components/schemas/RefDataCategoryResultsArray' '400': description: Bad request error '401': description: Unauthorized '403': description: Forbidden '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' x-operation-id-source: normalized x-operation-id-original: getRefdataCategories post: tags: - Reference data summary: Create reference data category record operationId: postLicensesRefdata requestBody: content: application/json: schema: $ref: '#/components/schemas/RefDataCategory' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/RefDataCategory' '400': description: Bad request error '401': description: Unauthorized '403': description: Forbidden '422': description: Validation error content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' x-operation-id-source: normalized x-operation-id-original: postRefdataCategory servers: - url: https://folio-snapshot-okapi.dev.folio.org - url: https://folio-snapshot-2-okapi.dev.folio.org - url: https://folio-etesting-snapshot-kong.ci.folio.org /licenses/refdata/{refdataCategoryId}: parameters: - $ref: '#/components/parameters/x-okapi-tenant' - $ref: '#/components/parameters/refdataCategoryId' get: tags: - Reference data summary: Get a specified reference data category record operationId: getLicensesRefdataByRefdataCategoryId responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RefDataCategory' '400': description: Bad request error '401': description: Unauthorized '403': description: Forbidden '404': description: Not found error '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' x-operation-id-source: normalized x-operation-id-original: getRefdataCategory put: tags: - Reference data summary: Update reference data category record operationId: putLicensesRefdataByRefdataCategoryId requestBody: content: application/json: schema: $ref: '#/components/schemas/RefDataCategory' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RefDataCategory' '400': description: Bad request error '401': description: Unauthorized '403': description: Forbidden '404': description: Not found error '422': description: Validation error content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' x-operation-id-source: normalized x-operation-id-original: putRefdataCategory delete: tags: - Reference data summary: Delete a specified reference data category record. operationId: deleteLicensesRefdataByRefdataCategoryId responses: '204': description: No content '400': description: Bad request error '401': description: Unauthorized '403': description: Forbidden '404': description: Not found error '405': description: Method not allowed - this reference data category is internal and cannot be deleted '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' x-operation-id-source: normalized x-operation-id-original: deleteRefdataCategory servers: - url: https://folio-snapshot-okapi.dev.folio.org - url: https://folio-snapshot-2-okapi.dev.folio.org - url: https://folio-etesting-snapshot-kong.ci.folio.org /licenses/refdata/{domain}/{property}: description: Look up the reference data values for a single property of a domain class, e.g. the valid `status` values for `License`. The domain and property are combined into a reference data category name internally. An unrecognised `domain` returns a 404; an unrecognised `property` on a valid `domain` does not error, it returns a 200 with an empty result set, since a category name is always derived even when nothing matches it. parameters: - $ref: '#/components/parameters/x-okapi-tenant' - $ref: '#/components/parameters/refdataDomain_2' - $ref: '#/components/parameters/refdataProperty_2' get: tags: - Reference data summary: Get the reference data values for a domain class property operationId: getLicensesRefdataByDomainByProperty parameters: - $ref: '#/components/parameters/filters' - $ref: '#/components/parameters/match' - $ref: '#/components/parameters/term' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/stats' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/page' responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/RefDataResults' - $ref: '#/components/schemas/RefDataResultsArray' '400': description: Bad request error '401': description: Unauthorized '403': description: Forbidden '404': description: 'Not found error: `domain` does not match any known domain class. Note an unrecognised `property` on a valid `domain` does not trigger this; it returns 200 with an empty result set instead. This action does not write its own error body, so the response has no content.' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/GrailsErrorResponse' x-operation-id-source: normalized x-operation-id-original: getRefdataValuesForProperty servers: - url: https://folio-snapshot-okapi.dev.folio.org - url: https://folio-snapshot-2-okapi.dev.folio.org - url: https://folio-etesting-snapshot-kong.ci.folio.org /oa/refdata: description: Supports search and creation of reference data categories. parameters: - $ref: '#/components/parameters/x-okapi-tenant' get: tags: - Reference data summary: Get a set of reference data category records operationId: getOaRefdata parameters: - $ref: '#/components/parameters/filters' - $ref: '#/components/parameters/match' - $ref: '#/components/parameters/term' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/stats' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/page' responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/RefdataCategoryResults' - $ref: '#/components/schemas/RefdataCategoryResultsArray' '400': description: Bad request error '401': description: Unauthorized '403': description: Forbidden '500': description: Internal server error x-operation-id-source: normalized x-operation-id-original: getRefdataCategories post: tags: - Reference data summary: Create reference data category record operationId: postOaRefdata requestBody: content: application/json: schema: $ref: '#/components/schemas/RefdataCategory' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/RefdataCategory' '400': description: Bad request error '401': description: Unauthorized '403': description: Forbidden '422': description: Validation error content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' '500': description: Internal server error x-operation-id-source: normalized x-operation-id-original: postRefdataCategory servers: - url: https://folio-snapshot-okapi.dev.folio.org - url: https://folio-snapshot-2-okapi.dev.folio.org - url: https://folio-etesting-snapshot-kong.ci.folio.org /oa/refdata/{id}: parameters: - $ref: '#/components/parameters/x-okapi-tenant' - $ref: '#/components/parameters/refdataCategoryId_2' get: tags: - Reference data summary: Get a specified reference data category record operationId: getOaRefdataById responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RefdataCategory' '400': description: Bad request error '401': description: Unauthorized '403': description: Forbidden '404': description: Not found error content: application/json: schema: $ref: '#/components/schemas/SpringBootErrorResponse' '500': description: Internal server error x-operation-id-source: normalized x-operation-id-original: getRefdataCategory put: tags: - Reference data summary: Update reference data category record operationId: putOaRefdataById requestBody: content: application/json: schema: $ref: '#/components/schemas/RefdataCategory' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RefdataCategory' '400': description: Bad request error '401': description: Unauthorized '404': description: Not found error content: application/json: schema: $ref: '#/components/schemas/SpringBootErrorResponse' '422': description: Validation error content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' '500': description: Internal server error x-operation-id-source: normalized x-operation-id-original: putRefdataCategory delete: tags: - Reference data summary: Delete a specified reference data category record. operationId: deleteOaRefdataById responses: '204': description: No content '400': description: Bad request error '401': description: Unauthorized '403': description: Forbidden '404': description: Not found error content: application/json: schema: $ref: '#/components/schemas/SpringBootErrorResponse' '405': description: Method not allowed - this reference data category is internal and cannot be deleted '500': description: Internal server error x-operation-id-source: normalized x-operation-id-original: deleteRefdataCategory servers: - url: https://folio-snapshot-okapi.dev.folio.org - url: https://folio-snapshot-2-okapi.dev.folio.org - url: https://folio-etesting-snapshot-kong.ci.folio.org /oa/refdata/{domain}/{property}: description: Look up the reference data values for a single property of a domain class, e.g. the valid `requestStatus` values for `PublicationRequest`. The domain and property are combined into a reference data category name internally. An unrecognised `domain` returns a 404; an unrecognised `property` on a valid `domain` does not error, it returns a 200 with an empty result set, since a category name is always derived even when nothing matches it. parameters: - $ref: '#/components/parameters/x-okapi-tenant' - $ref: '#/components/parameters/refdataDomain_3' - $ref: '#/components/parameters/refdataProperty_3' get: tags: - Reference data summary: Get the reference data values for a domain class property operationId: getOaRefdataByDomainByProperty parameters: - $ref: '#/components/parameters/filters' - $ref: '#/components/parameters/match' - $ref: '#/components/parameters/term' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/stats' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/page' responses: '200': description: OK content: application/json: schema: oneOf: - $ref: '#/components/schemas/RefdataResults' - $ref: '#/components/schemas/RefdataResultsArray' '400': description: Bad request error '401': description: Unauthorized '403': description: Forbidden '404': description: 'Not found error: `domain` does not match any known domain class. Note an unrecognised `property` on a valid `domain` does not trigger this; it returns 200 with an empty result set instead. This action does not write its own error body, so the response is the servlet container''s default error page rather than this API''s usual `HttpError` shape.' content: application/json: schema: $ref: '#/components/schemas/SpringBootErrorResponse' '500': description: Internal server error x-operation-id-source: normalized x-operation-id-original: getRefdataValuesForProperty servers: - url: https://folio-snapshot-okapi.dev.folio.org - url: https://folio-snapshot-2-okapi.dev.folio.org - url: https://folio-etesting-snapshot-kong.ci.folio.org components: parameters: filters: in: query name: filters required: false schema: type: string sort: in: query name: sort required: false schema: type: string page: in: query name: page required: false schema: type: integer perPage: in: query name: perPage required: false schema: type: integer x-okapi-tenant: in: header name: x-okapi-tenant required: true schema: type: string offset: in: query name: offset required: false schema: type: integer term: in: query name: term required: false schema: type: string refdataProperty: in: path name: property description: Name of the refdata-backed property on the domain class, e.g. `agreementStatus` (on `SubscriptionAgreement`) required: true schema: type: string stats: in: query name: stats required: false schema: type: boolean refdataDomain: in: path name: domain description: Simple (case-insensitive) name of the domain class that owns the property, e.g. `SubscriptionAgreement`, `Pkg` required: true schema: type: string match: in: query name: match required: false schema: type: string refdataId: in: path name: refdataId description: UUID for a reference data category required: true schema: type: string format: uuid refdataCategoryId: in: path name: refdataCategoryId description: ID for a reference data category required: true schema: type: string refdataProperty_2: in: path name: property description: Name of the refdata-backed property on the domain class, e.g. `type` (on `License`) required: true schema: type: string refdataDomain_2: in: path name: domain description: Simple (case-insensitive) name of the domain class that owns the property, e.g. `License`, `LicenseAmendment` required: true schema: type: string refdataCategoryId_2: in: path name: id description: Id for a reference data category required: true schema: type: string refdataProperty_3: in: path name: property description: Name of the refdata-backed property on the domain class, e.g. `requestStatus` required: true schema: type: string refdataDomain_3: in: path name: domain description: Simple (case-insensitive) name of the domain class that owns the property, e.g. `PublicationRequest` required: true schema: type: string refdataProperty_4: in: path name: property description: Name of the refdata-backed property on the domain class, e.g. `type` (on `License`) required: true schema: type: string refdataDomain_4: in: path name: domain description: Simple (case-insensitive) name of the domain class that owns the property, e.g. `License`, `LicenseAmendment` required: true schema: type: string refdataCategoryId_3: in: path name: id description: Id for a reference data category required: true schema: type: string refdataProperty_5: in: path name: property description: Name of the refdata-backed property on the domain class, e.g. `requestStatus` required: true schema: type: string refdataDomain_5: in: path name: domain description: Simple (case-insensitive) name of the domain class that owns the property, e.g. `PublicationRequest` required: true schema: type: string schemas: GrailsErrorResponse: type: object description: Error-handler body for an uncaught exception raised during request processing. `exception` and `stackTrace` usually suppressed in production systems required: - error - timestamp - message properties: error: type: integer description: HTTP status code timestamp: type: string format: date-time message: type: string exception: type: string description: Exception class and message. stackTrace: type: array items: type: string RefdataCategoryResults: type: object required: - results allOf: - $ref: '#/components/schemas/ResultsMeta' - type: object - properties: results: $ref: '#/components/schemas/RefdataCategoryResultsArray' RefdataCategoryResultsArray: type: array items: $ref: '#/components/schemas/RefdataCategory' RefdataResultsArray: type: array items: $ref: '#/components/schemas/Refdata' RefdataResults: type: object required: - results allOf: - $ref: '#/components/schemas/ResultsMeta' - type: object - properties: results: $ref: '#/components/schemas/RefdataResultsArray' Refdata: type: object properties: id: type: string label: type: string value: type: string RefdataCategory: type: object properties: desc: type: string id: type: string internal: type: boolean values: type: array items: $ref: '#/components/schemas/Refdata' ApplicationError: type: object properties: total: type: integer errors: type: array items: type: object properties: code: type: string i18n_code: type: string message: type: string object: type: string ResultsMeta: type: object properties: meta: type: object page: type: integer pageSize: type: integer total: type: integer totalPages: type: integer totalRecords: type: integer HttpError: type: object properties: message: type: string error: type: integer ValidationErrorResponse: description: 'Validation error body returned when a create/update request fails domain-object validation. Shape depends on the number of errors: a single ValidationError when there is exactly one, otherwise a wrapper with a count and an embedded array.' oneOf: - $ref: '#/components/schemas/ValidationError' - type: object required: - total - _embedded properties: total: type: integer _embedded: type: object properties: errors: type: array items: $ref: '#/components/schemas/ValidationError' RefDataResultsArray: type: array items: $ref: '#/components/schemas/RefData' RefData: type: object required: - id properties: id: type: string readOnly: true label: type: string value: type: string owner: $ref: '#/components/schemas/RefDataCategory' RefDataCategoryResultsArray: type: array items: $ref: '#/components/schemas/RefDataCategory' RefDataCategory: type: object required: - id properties: desc: type: string id: type: string readOnly: true internal: type: boolean values: type: array items: $ref: '#/components/schemas/RefData' RefDataCategoryResults: type: object required: - results allOf: - $ref: '#/components/schemas/ResultsMeta' - type: object - properties: results: $ref: '#/components/schemas/RefDataCategoryResultsArray' ValidationError: type: object required: - message - path - _links properties: message: type: string path: type: string _links: type: object required: - self properties: self: type: object required: - href properties: href: type: string format: uri RefDataResults: type: object required: - results allOf: - $ref: '#/components/schemas/ResultsMeta' - type: object - properties: results: $ref: '#/components/schemas/RefDataResultsArray' Refdata_2: type: object required: - id properties: id: type: string readOnly: true label: type: string value: type: string SpringBootErrorResponse: type: object description: Spring Boot's default error body. Emitted by the servlet container itself when a request ends in an error status with no response body written by the application, rather than by this app's own error handling - so it does not match the `HttpError` shape used elsewhere in this API. properties: timestamp: type: integer description: Epoch milliseconds status: type: integer error: type: string path: type: string Refdata_3: type: object required: - id properties: id: type: string readOnly: true label: type: string value: type: string securitySchemes: okapiToken: type: apiKey in: header name: x-okapi-token accessToken: type: apiKey in: cookie name: folioAccessToken x-refined-from: - folio-mod-agreements-openapi.json - folio-mod-licenses-openapi.json - folio-mod-oa-openapi.json - folio-mod-agreements-openapi.yml - folio-mod-licenses-openapi.yml - folio-mod-oa-openapi.yml