Skip FOLIO Project Navigation

Introduction

This API documentaton is automatically generated from each repository’s API description files, and specify how client modules may access the functionality provided by these modules. See usage notes below.

  • view-1: Generated from RAML. Uses pop-up windows for each method and endpoint.
  • view-2: Generated from RAML. Plain. Uses one-page view to everything.
  • view-3: Uploaded from the module’s code build.
  • view-4: Generated from OpenAPI OAS.
  • Explain views.

This list of modules is sorted into functional groups.

Login

Handling the login process.

mod-login

Module should now be using "api-doc" CI facilty.

Source
ramls/login.raml view-1 view-2

Documentation for mod-login.

mod-login-saml

Module should now be using "api-doc" CI facilty.

Source
ramls/saml-login.raml view-1 view-2

Documentation for mod-login-saml.

mod-password-validator

Source
src/main/resources/swagger.api/password-validator.yaml view-4
src/main/resources/swagger.api/validator-registry.yaml view-4

Documentation for mod-password-validator.

mod-permissions

Module should now be using "api-doc" CI facilty.

Source
ramls/permissions.raml view-1 view-2
ramls/tenantPermissions.raml view-1 view-2

Documentation for mod-permissions.

Users

Information about users.

mod-users-bl

Module should now be using "api-doc" CI facilty.

Source
ramls/mod-users-bl.raml view-1 view-2

Documentation for mod-users-bl.

mod-users

Module should now be using "api-doc" CI facilty.

Source
ramls/addressTypes.raml view-1 view-2
ramls/departments.raml view-1 view-2
ramls/groups.raml view-1 view-2
ramls/proxiesFor.raml view-1 view-2
ramls/users.raml view-1 view-2

Documentation for mod-users.

mod-patron

Module should now be using "api-doc" CI facilty.

Source
ramls/patron.raml view-1 view-2

Documentation for mod-patron.

edge-patron

Module should now be using "api-doc" CI facilty.

Source
ramls/edge-patron.raml view-1 view-2

Documentation for edge-patron.

mod-patron-blocks

Module should now be using "api-doc" CI facilty.

Source
ramls/automated-patron-blocks.raml view-1 view-2
ramls/eventHandlers.raml view-1 view-2
ramls/patron-block-conditions.raml view-1 view-2
ramls/patron-block-limits.raml view-1 view-2
ramls/user-summary.raml view-1 view-2

Documentation for mod-patron-blocks.

mod-feesfines

Module should now be using "api-doc" CI facilty.

Source
ramls/accounts.raml view-1 view-2
ramls/accounts-bulk.raml view-1 view-2
ramls/comments.raml view-1 view-2
ramls/feefine-reports.raml view-1 view-2
ramls/feefineactions.raml view-1 view-2
ramls/feefines.raml view-1 view-2
ramls/lost-item-fee-policy.raml view-1 view-2
ramls/manual-block-templates.raml view-1 view-2
ramls/manualblocks.raml view-1 view-2
ramls/overdue-fine-policy.raml view-1 view-2
ramls/owners.raml view-1 view-2
ramls/payments.raml view-1 view-2
ramls/refunds.raml view-1 view-2
ramls/transfer-criteria.raml view-1 view-2
ramls/transfers.raml view-1 view-2
ramls/waiver.raml view-1 view-2

Documentation for mod-feesfines.

Codex

The FOLIO Codex.

mod-codex-mux

Refer to the raml (raml-util) repository.

Documentation for mod-codex-mux.

mod-codex-inventory

Refer to the raml (raml-util) repository.

Documentation for mod-codex-inventory.

mod-codex-ekb

Refer to the raml (raml-util) repository.

Documentation for mod-codex-ekb.

Inventory and circulation

Inventory instances, items, and circulation.

mod-circulation

Module should now be using "api-doc" CI facilty.

Source
ramls/age-to-lost-background-processes.raml view-1 view-2
ramls/change-due-date.raml view-1 view-2
ramls/circulation.raml view-1 view-2
ramls/circulation-event-handlers.raml view-1 view-2
ramls/circulation-rules.raml view-1 view-2
ramls/claim-item-returned.raml view-1 view-2
ramls/declare-item-lost.raml view-1 view-2
ramls/end-patron-action-session.raml view-1 view-2
ramls/inventory-reports.raml view-1 view-2
ramls/loan-anonymization.raml view-1 view-2
ramls/pick-slips.raml view-1 view-2
ramls/request-move.raml view-1 view-2
ramls/requests-reports.raml view-1 view-2

Documentation for mod-circulation.

mod-circulation-storage

Module should now be using "api-doc" CI facilty.

Source
ramls/anonymize-storage-loans.raml view-1 view-2
ramls/cancellation-reason.raml view-1 view-2
ramls/check-in-storage.raml view-1 view-2
ramls/circulation-rules-storage.raml view-1 view-2
ramls/fixed-due-date-schedule.raml view-1 view-2
ramls/loan-policy-storage.raml view-1 view-2
ramls/loan-storage.raml view-1 view-2
ramls/patron-action-session.raml view-1 view-2
ramls/patron-notice-policy.raml view-1 view-2
ramls/request-policy-storage.raml view-1 view-2
ramls/request-preference-storage.raml view-1 view-2
ramls/request-storage.raml view-1 view-2
ramls/request-storage-batch.raml view-1 view-2
ramls/scheduled-notice-storage.raml view-1 view-2
ramls/staff-slips.raml view-1 view-2

Documentation for mod-circulation-storage.

mod-copycat

Module should now be using "api-doc" CI facilty.

Source
ramls/copycat.raml view-1 view-2

Documentation for mod-copycat.

mod-inventory

Module should now be using "api-doc" CI facilty.

Source
ramls/inventory.raml view-1 view-2
ramls/inventory-batch.raml view-1 view-2
ramls/inventory-config.raml view-1 view-2
ramls/inventory-event-handlers.raml view-1 view-2
ramls/inventory-move.raml view-1 view-2
ramls/isbn.raml view-1 view-2

Documentation for mod-inventory.

mod-inventory-storage

Module should now be using "api-doc" CI facilty.

Source
ramls/alternative-title-type.raml view-1 view-2
ramls/bound-with-part.raml view-1 view-2
ramls/call-number-type.raml view-1 view-2
ramls/classification-type.raml view-1 view-2
ramls/contributor-name-type.raml view-1 view-2
ramls/contributor-type.raml view-1 view-2
ramls/electronic-access-relationship.raml view-1 view-2
ramls/holdings-note-type.raml view-1 view-2
ramls/holdings-sources.raml view-1 view-2
ramls/holdings-storage.raml view-1 view-2
ramls/holdings-sync.raml view-1 view-2
ramls/holdings-type.raml view-1 view-2
ramls/hrid-settings-storage.raml view-1 view-2
ramls/identifier-type.raml view-1 view-2
ramls/ill-policy.raml view-1 view-2
ramls/instance-format.raml view-1 view-2
ramls/instance-note-type.raml view-1 view-2
ramls/instance-preceding-succeeding-titles.raml view-1 view-2
ramls/instance-reindex.raml view-1 view-2
ramls/instance-relationship-type.raml view-1 view-2
ramls/instance-status.raml view-1 view-2
ramls/instance-storage.raml view-1 view-2
ramls/instance-storage-batch.raml view-1 view-2
ramls/instance-sync.raml view-1 view-2
ramls/instance-type.raml view-1 view-2
ramls/inventory-hierarchy.raml view-1 view-2
ramls/inventory-view.raml view-1 view-2
ramls/item-damaged-statuses.raml view-1 view-2
ramls/item-note-type.raml view-1 view-2
ramls/item-storage.raml view-1 view-2
ramls/item-storage-dereferenced.raml view-1 view-2
ramls/item-sync.raml view-1 view-2
ramls/loan-type.raml view-1 view-2
ramls/location.raml view-1 view-2
ramls/locationunit.raml view-1 view-2
ramls/material-type.raml view-1 view-2
ramls/mode-of-issuance.raml view-1 view-2
ramls/nature-of-content-term.raml view-1 view-2
ramls/oai-pmh-view.raml view-1 view-2
ramls/record-bulk.raml view-1 view-2
ramls/service-point.raml view-1 view-2
ramls/service-points-user.raml view-1 view-2
ramls/shelf-location.raml view-1 view-2
ramls/statistical-code.raml view-1 view-2
ramls/statistical-code-type.raml view-1 view-2

Documentation for mod-inventory-storage.

mod-inventory-update

Source
ramls/inventory-update.raml view-1 view-2

Documentation for mod-inventory-update.

mod-kb-ebsco-java

Module should now be using "api-doc" CI facilty.

Source
ramls/access-types.raml view-1 view-2
ramls/assigned-users.raml view-1 view-2
ramls/costperuse.raml view-1 view-2
ramls/currencies.raml view-1 view-2
ramls/custom-labels.raml view-1 view-2
ramls/eholdings.raml view-1 view-2
ramls/export.raml view-1 view-2
ramls/kb-credentials.raml view-1 view-2
ramls/packages.raml view-1 view-2
ramls/providers.raml view-1 view-2
ramls/proxies.raml view-1 view-2
ramls/resources.raml view-1 view-2
ramls/tags.raml view-1 view-2
ramls/titles.raml view-1 view-2
ramls/uc.raml view-1 view-2

Documentation for mod-kb-ebsco-java.

mod-oai-pmh

Module should now be using "api-doc" CI facilty.

Source
ramls/cleanup-job.raml view-1 view-2
ramls/folio-set.raml view-1 view-2
ramls/folio-set-filtering-conditions.raml view-1 view-2
ramls/oai-pmh.raml view-1 view-2

Documentation for mod-oai-pmh.

edge-oai-pmh

Module should now be using "api-doc" CI facilty.

Source
ramls/edge-oai-pmh.raml view-1 view-2

Documentation for edge-oai-pmh.

Resource management

ERM, licenses, usage statistics.

mod-erm-usage

Module should now be using "api-doc" CI facilty.

Source
ramls/aggregatorsettings.raml view-1 view-2
ramls/counterreports.raml view-1 view-2
ramls/customreports.raml view-1 view-2
ramls/files.raml view-1 view-2
ramls/usagedataproviders.raml view-1 view-2

Documentation for mod-erm-usage.

mod-erm-usage-harvester

Module should now be using "api-doc" CI facilty.

Source
ramls/harvester.raml view-1 view-2
ramls/periodic.raml view-1 view-2
ramls/start.raml view-1 view-2

Documentation for mod-erm-usage-harvester.

mod-licenses

Source
ramls/licenses.raml view-1 view-2

Documentation for mod-licenses.

mod-finc-config

Module should now be using "api-doc" CI facilty.

Source
ramls/fincConfigEZBCredentials.raml view-1 view-2
ramls/fincConfigFiles.raml view-1 view-2
ramls/fincConfigFilters.raml view-1 view-2
ramls/fincConfigMetadataCollections.raml view-1 view-2
ramls/fincConfigMetadataSources.raml view-1 view-2
ramls/fincSelectEZBCredentials.raml view-1 view-2
ramls/fincSelectFiles.raml view-1 view-2
ramls/fincSelectFilters.raml view-1 view-2
ramls/fincSelectMetadataCollections.raml view-1 view-2
ramls/fincSelectMetadataSources.raml view-1 view-2
ramls/isils.raml view-1 view-2

Documentation for mod-finc-config.

Course reserves

Education courses and the items that have been reserved to them.

mod-courses

Source
ramls/courses.raml view-1 view-2

Documentation for mod-courses.

edge-lti-courses

Module should now be using "api-doc" CI facilty.

Source
ramls/edge-lti-courses.raml view-1 view-2

Documentation for edge-lti-courses.

Finance and orders

Finance, orders, organizations.

mod-finance

Module should now be using "api-doc" CI facilty.

Source
ramls/budgets.raml view-1 view-2
ramls/exchange-rate.raml view-1 view-2
ramls/expense-classes.raml view-1 view-2
ramls/finance-fund-codes-expense-classes.raml view-1 view-2
ramls/fiscal-years.raml view-1 view-2
ramls/fund-types.raml view-1 view-2
ramls/funds.raml view-1 view-2
ramls/group-fiscal-year-summaries.raml view-1 view-2
ramls/group-fund-fiscal-year.raml view-1 view-2
ramls/groups.raml view-1 view-2
ramls/ledger-rollover-errors.raml view-1 view-2
ramls/ledger_rollover.raml view-1 view-2
ramls/ledger_rollover_progress.raml view-1 view-2
ramls/ledgers.raml view-1 view-2
ramls/release-encumbrance.raml view-1 view-2
ramls/transaction.raml view-1 view-2
ramls/transaction-summary.raml view-1 view-2

Documentation for mod-finance.

mod-finance-storage

Module should now be using "api-doc" CI facilty.

Source
ramls/budget.raml view-1 view-2
ramls/budget_expense_class.raml view-1 view-2
ramls/expense_class.raml view-1 view-2
ramls/fiscal-year.raml view-1 view-2
ramls/fund.raml view-1 view-2
ramls/fund-type.raml view-1 view-2
ramls/group.raml view-1 view-2
ramls/group-budgets.raml view-1 view-2
ramls/group_fund_fy.raml view-1 view-2
ramls/ledger.raml view-1 view-2
ramls/ledger-rollover-errors.raml view-1 view-2
ramls/ledger_rollover.raml view-1 view-2
ramls/ledger_rollover_progress.raml view-1 view-2
ramls/transaction.raml view-1 view-2
ramls/transaction-summary.raml view-1 view-2

Documentation for mod-finance-storage.

mod-invoice

Module should now be using "api-doc" CI facilty.

Source
ramls/batch-group.raml view-1 view-2
ramls/batch-voucher.raml view-1 view-2
ramls/batch-voucher-export-configuration.raml view-1 view-2
ramls/batch-voucher-exports.raml view-1 view-2
ramls/invoice.raml view-1 view-2
ramls/voucher.raml view-1 view-2

Documentation for mod-invoice.

mod-invoice-storage

Module should now be using "api-doc" CI facilty.

Source
ramls/batch-group.raml view-1 view-2
ramls/batch-voucher.raml view-1 view-2
ramls/batch-voucher-export-configuration.raml view-1 view-2
ramls/batch-voucher-exports.raml view-1 view-2
ramls/invoice.raml view-1 view-2
ramls/invoice-line-number.raml view-1 view-2
ramls/invoice-number.raml view-1 view-2
ramls/voucher.raml view-1 view-2
ramls/voucher-number.raml view-1 view-2

Documentation for mod-invoice-storage.

mod-orders

Module should now be using "api-doc" CI facilty.

Source
ramls/acquisitions-units.raml view-1 view-2
ramls/check-in.raml view-1 view-2
ramls/configuration.raml view-1 view-2
ramls/holding-summary.raml view-1 view-2
ramls/order.raml view-1 view-2
ramls/order-lines.raml view-1 view-2
ramls/order-templates.raml view-1 view-2
ramls/pieces.raml view-1 view-2
ramls/po-number.raml view-1 view-2
ramls/receive.raml view-1 view-2
ramls/receiving-history.raml view-1 view-2
ramls/rollover.raml view-1 view-2
ramls/titles.raml view-1 view-2

Documentation for mod-orders.

mod-orders-storage

Module should now be using "api-doc" CI facilty.

Source
ramls/acquisitions-unit.raml view-1 view-2
ramls/alert.raml view-1 view-2
ramls/configuration.raml view-1 view-2
ramls/order-invoice-relns.raml view-1 view-2
ramls/order-templates.raml view-1 view-2
ramls/pieces.raml view-1 view-2
ramls/po-line.raml view-1 view-2
ramls/po-line-number.raml view-1 view-2
ramls/po-number.raml view-1 view-2
ramls/purchase-order.raml view-1 view-2
ramls/receiving-history.raml view-1 view-2
ramls/reporting-code.raml view-1 view-2
ramls/titles.raml view-1 view-2

Documentation for mod-orders-storage.

edge-orders

Module should now be using "api-doc" CI facilty.

Source
ramls/edge-orders.raml view-1 view-2

Documentation for edge-orders.

mod-organizations

Module should now be using "api-doc" CI facilty.

Source
ramls/organizations.raml view-1 view-2

Documentation for mod-organizations.

mod-organizations-storage

Module should now be using "api-doc" CI facilty.

Source
ramls/address.raml view-1 view-2
ramls/category.raml view-1 view-2
ramls/contact.raml view-1 view-2
ramls/email.raml view-1 view-2
ramls/interface.raml view-1 view-2
ramls/organization.raml view-1 view-2
ramls/phone_number.raml view-1 view-2
ramls/url.raml view-1 view-2

Documentation for mod-organizations-storage.

mod-gobi

Module should now be using "api-doc" CI facilty.

Source
ramls/gobi.raml view-1 view-2

Documentation for mod-gobi.

Notifications

Assembling and sending notifications.

mod-notify

Module should now be using "api-doc" CI facilty.

Source
ramls/notify.raml view-1 view-2
ramls/patron-notice.raml view-1 view-2

Documentation for mod-notify.

mod-event-config

Module should now be using "api-doc" CI facilty.

Source
ramls/event_config.raml view-1 view-2

Documentation for mod-event-config.

mod-email

Module should now be using "api-doc" CI facilty.

Source
ramls/delayedTasks.raml view-1 view-2
ramls/email.raml view-1 view-2

Documentation for mod-email.

mod-sender

Module should now be using "api-doc" CI facilty.

Source
ramls/sender.raml view-1 view-2

Documentation for mod-sender.

mod-pubsub

Module should now be using "api-doc" CI facilty.

Source
ramls/pubSub.raml view-1 view-2

Documentation for mod-pubsub.

Data import and export

Importing and loading and exporting various data.

mod-data-import

Module should now be using "api-doc" CI facilty.

Source
ramls/dataImport.raml view-1 view-2

Documentation for mod-data-import.

mod-data-import-converter-storage

Module should now be using "api-doc" CI facilty.

Source
ramls/data-import-converter-storage.raml view-1 view-2
ramls/field-protection-settings.raml view-1 view-2
ramls/form-configs-storage.raml view-1 view-2

Documentation for mod-data-import-converter-storage.

mod-data-export

Module should now be using "api-doc" CI facilty.

Source
ramls/dataExport.raml view-1 view-2
ramls/dataExport-file-definition.raml view-1 view-2
ramls/dataExport-job-profile.raml view-1 view-2
ramls/dataExport-logs.raml view-1 view-2
ramls/dataExport-mapping-profiles.raml view-1 view-2
ramls/dataExport-transformation-fields.raml view-1 view-2

Documentation for mod-data-export.

mod-source-record-manager

Module should now be using "api-doc" CI facilty.

Source
ramls/change-manager.raml view-1 view-2
ramls/mapping-metadata-provider.raml view-1 view-2
ramls/mapping-rules-provider.raml view-1 view-2
ramls/metadata-provider.raml view-1 view-2

Documentation for mod-source-record-manager.

mod-source-record-storage

Module should now be using "api-doc" CI facilty.

Source
ramls/source-record-storage-batch.raml view-1 view-2
ramls/source-record-storage-records.raml view-1 view-2
ramls/source-record-storage-snapshots.raml view-1 view-2
ramls/source-record-storage-source-records.raml view-1 view-2
ramls/source-record-storage-stream.raml view-1 view-2
ramls/source-record-storage-test-records.raml view-1 view-2

Documentation for mod-source-record-storage.

mod-user-import

Source
ramls/import.raml view-1 view-2

Documentation for mod-user-import.

Utilities and tools

Notes, tags, calendar, etc.

mod-notes

Source
ramls/note.raml view-1 view-2
ramls/types.raml view-1 view-2

Documentation for mod-notes.

mod-tags

Source
src/main/resources/swagger.api/tags.yml view-4

Documentation for mod-tags.

mod-calendar

Module should now be using "api-doc" CI facilty.

Source
ramls/calendar.raml view-1 view-2

Documentation for mod-calendar.

Module should now be using "api-doc" CI facilty.

Source

Documentation for mod-search.

mod-template-engine

Module should now be using "api-doc" CI facilty.

Source
ramls/template-engine.raml view-1 view-2

Documentation for mod-template-engine.

mod-quick-marc

Source
ramls/records-editor.raml view-1 view-2
src/main/resources/swagger.api/records-editor-async.yaml view-4
src/main/resources/swagger.api/records-editor.yaml view-4

Documentation for mod-quick-marc.

Infrastructure

Gateway, raml-util, RMB, monitoring, etc.

okapi

Source
okapi-core/src/main/raml/okapi.raml view-1 view-2

Documentation for okapi.

raml

This is the shared RAML repository. Each module uses a certain version of this as their "raml-util" directory.

Source
ramls/codex/codex-instances-sources.raml view-1 view-2
ramls/codex/codex-packages.raml view-1 view-2
ramls/codex/codex.raml view-1 view-2
ramls/jsonSchemas.raml view-1 view-2
ramls/ramls.raml view-1 view-2
ramls/tagged-record-example/users.raml view-1 view-2
ramls/tenant.raml view-1 view-2

Documentation for raml.

raml-module-builder

Source
domain-models-api-interfaces/ramls/admin.raml view-1 view-2
domain-models-api-interfaces/ramls/sample.raml view-1 view-2

Documentation for raml-module-builder.

mod-configuration

Module should now be using "api-doc" CI facilty.

Source
ramls/configuration/config.raml view-1 view-2

Documentation for mod-configuration.

mod-audit

Module should now be using "api-doc" CI facilty.

Source
ramls/audit-data.raml view-1 view-2
ramls/circulation-logs.raml view-1 view-2
ramls/mod-audit-handlers.raml view-1 view-2

Documentation for mod-audit.

Other

Not yet grouped.

folio-custom-fields

Module should now be using "api-doc" CI facilty.

Source
ramls/custom-fields.raml view-1 view-2

Documentation for folio-custom-fields.

acq-models

Has only schema and no API descriptions.

Documentation for acq-models.

data-import-raml-storage

Has only schema and no API descriptions.

Documentation for data-import-raml-storage.

mod-eusage-reports

Source
src/main/resources/openapi/eusage-reports-1.0.yaml view-4
src/main/resources/openapi/tenant-2.0.yaml view-4

Documentation for mod-eusage-reports.

mod-inn-reach

Source
src/main/resources/swagger.api/inn-reach.yaml view-4

Documentation for mod-inn-reach.

mod-ldp

Source
ramls/ldp.raml view-1 view-2

Documentation for mod-ldp.

mod-rtac

Module should now be using "api-doc" CI facilty.

Source
ramls/rtac.raml view-1 view-2
ramls/rtac-batch.raml view-1 view-2

Documentation for mod-rtac.

edge-rtac

Module should now be using "api-doc" CI facilty.

Source
ramls/edge-rtac.raml view-1 view-2

Documentation for edge-rtac.

Missing API documentation

The following list of modules are missing the configuration for generating their API documentation.

edge-caiasoft

Module should be using "api-doc" CI facilty.

edge-dematic

Module should be using "api-doc" CI facilty.

edge-inn-reach

Module should be using "api-doc" CI facilty.

edge-search-srs

Module should be using "api-doc" CI facilty.

folio-spring-base

Module should be using "api-doc" CI facilty.

mod-data-export-spring

Module should be using "api-doc" CI facilty.

mod-data-export-worker

Module should be using "api-doc" CI facilty.

mod-ebsconet

Module should be using "api-doc" CI facilty.

mod-remote-storage

Module should be using "api-doc" CI facilty.

mod-translations

Module should be using "api-doc" CI facilty.

Further information

Usage notes

  • The documents are generated by CI for each repository during the “merge to main branch” phase or upon module release. So the documentation does not relate to feature development branches.

  • To find documentation for each software version, amend the URL of each generated document view to add the version number (major.minor).
    For example mod-notes, do mod-notes/2.11/...

  • Each “view” of the documentation is generated from the same source API description file, but using different presentation software.
    • view-1: Generated from RAML. Uses pop-up windows for each method and endpoint.
    • view-2: Generated from RAML. Plain. Uses one-page view to everything.
    • view-3: Uploaded from the module’s code build.
    • view-4: Generated from OpenAPI OAS.
  • Modules should now be using the new CI job “api-doc” (“doApiDoc”). The old “publishAPI” facility is now deprecated.

  • Modules should now be using the new CI job “api-lint” (“doApiLint”). The old “runLintRamlCop” facility is now deprecated.

  • For modules that are now using the “api-doc” CI facility, there is an automated daily workflow “gather-config-apidocs” which collects configuration changes. So there will be a delay for new (or deleted) entries to be listed in their table. Updates to the actual generated API documents for each module do happen automatically, being deployed during their “merge to main branch” phase.

  • The asterisk * denotes that this is a shared set of RAML files. The generated documents are for this module’s current raml-util, but the link to the source RAML file is to the head of the default branch of the shared “raml” repository.

  • Each section of this page can be directly linked to (e.g. #mod-notes). Similarly each row of a module’s documentation (e.g. #mod-notes-types).

  • See assistance for How to determine which module handles which interface and endpoint.