UBC Library Abacus Dataverse API

The REST API of Abacus, UBC Library's research-data repository, running Dataverse 5.9 on UBC's own infrastructure at abacus.library.ubc.ca. UBC operates the deployment and the data is UBC's and its BC consortium partners'; the contract itself is Dataverse software's, served by the product at /openapi, and every schema, ruleset and vocabulary in this repo derived from it inherits that. Verified live 2026-08-19 at /api/info/version. This ONE surface was previously recorded as twenty-two separate APIs because the refine step splits a contract by tag — the twenty-two OpenAPI documents are kept as properties here, but they describe one API, not twenty-two.

Operations 22

GET /api/v1/access/datafile/bundle/{fileId} #
GET /api/v1/access/datafile/{fileId:.+} #
GET /api/v1/access/datafile/{fileId}/auxiliary #
GET /api/v1/access/datafile/{fileId}/auxiliary/{formatTag}/{formatVersion} #
POST /api/v1/access/datafile/{fileId}/auxiliary/{formatTag}/{formatVersion} #
DELETE /api/v1/access/datafile/{fileId}/auxiliary/{formatTag}/{formatVersion} #
GET /api/v1/access/datafile/{fileId}/auxiliary/{origin} #
GET /api/v1/access/datafile/{fileId}/metadata #
GET /api/v1/access/datafile/{fileId}/metadata/ddi #
PUT /api/v1/access/datafile/{id}/grantAccess/{identifier} #
GET /api/v1/access/datafile/{id}/listRequests #
PUT /api/v1/access/datafile/{id}/rejectAccess/{identifier} #
PUT /api/v1/access/datafile/{id}/requestAccess #
DELETE /api/v1/access/datafile/{id}/revokeAccess/{identifier} #
POST /api/v1/access/datafiles #
GET /api/v1/access/datafiles/{fileIds} #
GET /api/v1/access/dataset/{id} #
GET /api/v1/access/dataset/{id}/versions/{versionId} #
GET /api/v1/access/dsCardImage/{versionId} #
GET /api/v1/access/dvCardImage/{dataverseId} #
GET /api/v1/access/fileCardImage/{fileId} #
PUT /api/v1/access/{id}/allowAccessRequest #

Documentation

Specifications

OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-access-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-admin-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-batch-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-builtin-users-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-datasets-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-datatags-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-dataverses-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-edit-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-files-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-harvest-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-info-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-ingest-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-mail-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-meta-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-metadatablocks-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-mydata-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-notifications-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-pids-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-roles-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-search-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-users-api-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-workflows-api-openapi.yml

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/abacus-dataverse"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ubc-access-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: UBC Abacus Dataverse Access API
  description: OpenAPI 3.0 description of the Dataverse REST API exposed by UBC Library's Abacus research-data repository (Dataverse 5.9). Spec retrieved live from https://abacus.library.ubc.ca/openapi. Native Dataverse Search and Data Access APIs are available for read; write operations require an API token.
  version: '5.9'
servers:
- url: https://abacus.library.ubc.ca
  description: UBC Abacus Dataverse production server.
tags:
- name: Access
paths:
  /api/v1/access/datafile/bundle/{fileId}:
    get:
      operationId: datafileBundle
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: fileMetadataId
        in: query
        schema:
          type: number
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/BundleDownloadInstance'
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafile/{fileId:.+}:
    get:
      operationId: datafile
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/DownloadInstance'
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafile/{fileId}/auxiliary:
    get:
      operationId: listDatafileMetadataAux
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafile/{fileId}/auxiliary/{formatTag}/{formatVersion}:
    get:
      operationId: downloadAuxiliaryFile
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: formatTag
        in: path
        required: true
        schema:
          type: string
      - name: formatVersion
        in: path
        required: true
        schema:
          type: string
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DownloadInstance'
          description: Default Response.
      tags:
      - Access
    post:
      operationId: saveAuxiliaryFileWithVersion
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: number
      - name: formatTag
        in: path
        required: true
        schema:
          type: string
      - name: formatVersion
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
    delete:
      operationId: deleteAuxiliaryFileWithVersion
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: number
      - name: formatTag
        in: path
        required: true
        schema:
          type: string
      - name: formatVersion
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafile/{fileId}/auxiliary/{origin}:
    get:
      operationId: listDatafileMetadataAuxByOrigin
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: origin
        in: path
        required: true
        schema:
          type: string
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafile/{fileId}/metadata:
    get:
      operationId: tabularDatafileMetadata
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: fileMetadataId
        in: query
        schema:
          type: number
      - name: exclude
        in: query
        schema:
          type: string
      - name: include
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            text/xml:
              schema:
                type: string
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafile/{fileId}/metadata/ddi:
    get:
      operationId: tabularDatafileMetadataDDI
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: fileMetadataId
        in: query
        schema:
          type: number
      - name: exclude
        in: query
        schema:
          type: string
      - name: include
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            text/xml:
              schema:
                type: string
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafile/{id}/grantAccess/{identifier}:
    put:
      operationId: grantFileAccess
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafile/{id}/listRequests:
    get:
      operationId: listFileAccessRequests
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafile/{id}/rejectAccess/{identifier}:
    put:
      operationId: rejectFileAccess
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafile/{id}/requestAccess:
    put:
      operationId: requestFileAccess
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafile/{id}/revokeAccess/{identifier}:
    delete:
      operationId: revokeFileAccess
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafiles:
    post:
      operationId: postDownloadDatafiles
      parameters:
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      requestBody:
        content:
          text/plain:
            schema:
              type: string
      responses:
        default:
          content:
            application/zip:
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/datafiles/{fileIds}:
    get:
      operationId: datafiles
      parameters:
      - name: fileIds
        in: path
        required: true
        schema:
          type: string
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            application/zip:
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/dataset/{id}:
    get:
      operationId: downloadAllFromLatest
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            application/zip:
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/dataset/{id}/versions/{versionId}:
    get:
      operationId: downloadAllFromVersion
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: versionId
        in: path
        required: true
        schema:
          type: string
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            application/zip:
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/dsCardImage/{versionId}:
    get:
      operationId: dsCardImage
      parameters:
      - name: versionId
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            image/png:
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/dvCardImage/{dataverseId}:
    get:
      operationId: dvCardImage
      parameters:
      - name: dataverseId
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            image/png:
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/fileCardImage/{fileId}:
    get:
      operationId: fileCardImage
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            image/png:
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
  /api/v1/access/{id}/allowAccessRequest:
    put:
      operationId: allowAccessRequest
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          '*/*':
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
      tags:
      - Access
components:
  schemas:
    License:
      enum:
      - NONE
      - CC0
    FileDifferenceSummaryItem:
      type: object
      properties:
        name:
          type: string
        added:
          type: integer
        changed:
          type: integer
        deleted:
          type: integer
        replaced:
          type: integer
        multiple:
          type: boolean
    FieldType:
      enum:
      - TEXT
      - TEXTBOX
      - DATE
      - EMAIL
      - URL
      - FLOAT
      - INT
      - NONE
    DOIDataCiteRegisterService:
      type: object
      properties:
        em: {}
        dataverseService:
          $ref: '#/components/schemas/DataverseServiceBean'
        doiDataCiteServiceBean:
          $ref: '#/components/schemas/DOIDataCiteServiceBean'
        client:
          $ref: '#/components/schemas/DataCiteRESTfullClient'
    MakeDataCountLoggingServiceBean:
      type: object
      properties:
        systemConfig:
          $ref: '#/components/schemas/SystemConfig'
    MetadataBlock:
      type: object
      properties:
        id:
          type: number
        name:
          type: string
        displayName:
          type: string
        namespaceUri:
          type: string
        datasetFieldTypes:
          items:
            $ref: '#/components/schemas/DatasetFieldType'
        owner:
          $ref: '#/components/schemas/Dataverse'
        empty:
          type: boolean
        selected:
          type: boolean
        hasRequired:
          type: boolean
        showDatasetFieldTypes:
          type: boolean
    BannerMessage:
      type: object
      properties:
        id:
          type: number
        dismissibleByUser:
          type: boolean
        active:
          type: boolean
        bannerMessageTexts:
          items:
            $ref: '#/components/schemas/BannerMessageText'
        userBannerMessages:
          items:
            $ref: '#/components/schemas/UserBannerMessage'
    UserNotificationServiceBean:
      type: object
      properties:
        mailService:
          $ref: '#/components/schemas/MailServiceBean'
        em: {}
    Type:
      enum:
      - ASSIGNROLE
      - REVOKEROLE
      - CREATEDV
      - CREATEDS
      - CREATEACC
      - SUBMITTEDDS
      - RETURNEDDS
      - PUBLISHEDDS
      - REQUESTFILEACCESS
      - GRANTFILEACCESS
      - REJECTFILEACCESS
      - FILESYSTEMIMPORT
      - CHECKSUMIMPORT
      - CHECKSUMFAIL
      - CONFIRMEMAIL
      - APIGENERATED
      - INGESTCOMPLETED
      - INGESTCOMPLETEDWITHERRORS
      - PUBLISHFAILED_PIDREG
      - WORKFLOW_SUCCESS
      - WORKFLOW_FAILURE
      - STATUSUPDATED
      - DATASETCREATED
    DataVariable:
      type: object
      properties:
        id:
          type: number
        dataTable:
          $ref: '#/components/schemas/DataTable'
        name:
          type: string
        label:
          type: string
        weighted:
          type: boolean
        fileStartPosition:
          type: number
        fileEndPosition:
          type: number
        interval:
          $ref: '#/components/schemas/VariableInterval'
        type:
          $ref: '#/components/schemas/VariableType'
        format:
          type: string
        formatCategory:
          type: string
        recordSegmentNumber:
          type: number
        invalidRanges:
          items:
            $ref: '#/components/schemas/VariableRange'
        invalidRangeItems:
          items:
            $ref: '#/components/schemas/VariableRangeItem'
        summaryStatistics:
          items:
            $ref: '#/components/schemas/SummaryStatistic'
        unf:
          type: string
        categories:
          items:
            $ref: '#/components/schemas/VariableCategory'
        orderedFactor:
          type: boolean
        factor:
          type: boolean
        fileOrder:
          type: integer
        numberOfDecimalPoints:
          type: number
        variableMetadatas:
          items:
            $ref: '#/components/schemas/VariableMetadata'
    IngestRequest:
      type: object
      properties:
        id:
          type: number
        dataFile:
          $ref: '#/components/schemas/DataFile'
        textEncoding:
          type: string
        controlCard:
          type: string
        labelsFile:
          type: string
        forceTypeCheck:
          type: boolean
    VarGroup:
      type: object
      properties:
        id:
          type: number
        label:
          type: string
        fileMetadata:
          $ref: '#/components/schemas/FileMetadata'
        varsInGroup:
          items:
            $ref: '#/components/schemas/DataVariable'
    ExplicitGroupProvider:
      type: object
      properties:
        explicitGroupSvc:
          $ref: '#/components/schemas/ExplicitGroupServiceBean'
        roleAssigneeSvc:
          $ref: '#/components/schemas/RoleAssigneeServiceBean'
    TermsOfUseAndAccess:
      type: object
      properties:
        id:
          type: number
        datasetVersion:
          $ref: '#/components/schemas/DatasetVersion'
        template:
          $ref: '#/components/schemas/Template'
        license:
          $ref: '#/components/schemas/License'
        termsOfUse:
          type: string
        termsOfAccess:
          type: string
        confidentialityDeclaration:
          type: string
        specialPermissions:
          type: string
        restrictions:
          type: string
        citationRequirements:
          type: string
        depositorRequirements:
          type: string
        conditions:
          type: string
        disclaimer:
          type: string
        dataAccessPlace:
          type: string
        originalArchive:
          type: string
        availabilityStatus:
          type: string
        contactForAccess:
          type: string
        sizeOfCollection:
          type: string
        studyCompletion:
          type: string
        fileAccessRequest:
          type: boolean
    ChecksumType:
      enum:
      - MD5
      - SHA1
      - SHA256
      - SHA512
    BuiltinUserServiceBean:
      type: object
      properties:
        indexService:
          $ref: '#/components/schemas/IndexServiceBean'
        passwordResetService:
          $ref: '#/components/schemas/PasswordResetServiceBean'
        em: {}
    HandlenetServiceBean:
      type: object
      properties:
        dataverseService:
          $ref: '#/components/schemas/DataverseServiceBean'
        settingsService:
          $ref: '#/components/schemas/SettingsServiceBean'
        handlenetIndex:
          type: integer
        commandEngine:
          $ref: '#/components/schemas/EjbDataverseEngine'
        datasetService:
          $ref: '#/components/schemas/DatasetServiceBean'
        datafileService:
          $ref: '#/components/schemas/DataFileServiceBean'
        systemConfig:
          $ref: '#/components/schemas/SystemConfig'
      allOf:
      - $ref: '#/components/schemas/AbstractGlobalIdServiceBean'
    DownloadInstance:
      type: object
      properties:
        extraArguments: {}
        downloadInfo:
          $ref: '#/components/schemas/DownloadInfo'
        conversionParam:
          type: string
        conversionParamValue:
          type: string
        auxiliaryFile:
          $ref: '#/components/schemas/AuxiliaryFile'
        command:
          $ref: '#/components/schemas/EjbDataverseEngine'
        dataverseRequestService:
          $ref: '#/components/schemas/DataverseRequestServiceBean'
        gbr:
          $ref: '#/components/schemas/GuestbookResponse'
        requestUriInfo: {}
        requestHttpHeaders: {}
    DataverseEntity:
      type: object
      properties:
        mergeable:
          type: boolean
    ConfirmEmailServiceBean:
      type: object
      properties:
        authenticationService:
          $ref: '#/components/schemas/AuthenticationServiceBean'
        mailService:
          $ref: '#/components/schemas/MailServiceBean'
        systemConfig:
          $ref: '#/components/schemas/SystemConfig'
        dataverseService:
          $ref: '#/components/schemas/DataverseServiceBean'
        em: {}
    DataverseRequest:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/User'
        sourceAddress:
          $ref: '#/components/schemas/IpAddress'
        invocationId:
          type: string
    VariableInterval:
      enum:
      - DISCRETE
      - CONTINUOUS
      - NOMINAL
      - DICHOTOMOUS
    DataFile:
      type: object
      properties:
        contentType:
          type: string
        checksumType:
          $ref: '#/components/schemas/ChecksumType'
        checksumValue:
          type: string
        rootDataFileId:
          type: number
        previousDataFileId:
          type: number
        filesize:
          type: number
        restricted:
          type: boolean
        provEntityName:
          type: string
        dataTables:
          items:
            $ref: '#/components/schemas/DataTable'
        auxiliaryFiles:
          items:
            $ref: '#/components/schemas/AuxiliaryFile'
        ingestReports:
          items:
            $ref: '#/components/schemas/IngestReport'
        ingestRequest:
          $ref: '#/components/schemas/IngestRequest'
        dataFileTags:
          items:
            $ref: '#/components/schemas/DataFileTag'
        fileMetadatas:
          items:
            $ref: '#/components/schemas/FileMetadata'
        guestbookResponses:
          items:
            $ref: '#/components/schemas/GuestbookResponse'
        ingestStatus:
          type: object
        thumbnailForDataset:
          $ref: '#/components/schemas/Dataset'
        embargo:
          $ref: '#/components/schemas/Embargo'
        deleted:
          type: boolean
        markedAsDuplicate:
          type: boolean
        duplicateFilename:
          type: string
        fileAccessRequesters:
          items:
            $ref: '#/components/schemas/AuthenticatedUser'
        id:
          type: number
        owner: {}
        publicationDate: {}
        releaseUser:
          $ref: '#/components/schemas/AuthenticatedUser'
        createDate: {}
        modificationTime: {}
        indexTime: {}
        permissionModificationTime: {}
        permissionIndexTime: {}
        storageIdentifier:
          type: string
        dtype:
          type: string
        protocol:
          type: string
        authority:
          type: string
        globalIdCreateTime: {}
        identifier:
          type: string
        identifierRegistered:
          type: boolean
        alternativePersistentIndentifiers:
          items:
            $ref: '#/components/schemas/AlternativePersistentIdentifier'
        previewImageAvailable:
          type: boolean
        creator:
          $ref: '#/components/schemas/AuthenticatedUser'
        roleAssignments:
          items:
            $ref: '#/components/schemas/RoleAssignment'
        mergeable:
          type: boolean
      allOf:
      - $ref: '#/components/schemas/DvObject'
    PermissionServiceBean:
      type: object
      properties:
        userService:
          $ref: '#/components/schemas/BuiltinUserServiceBean'
        authenticationService:
          $ref: '#/components/schemas/AuthenticationServiceBean'
        roleService:
          $ref: '#/components/schemas/DataverseRoleServiceBean'
        roleAssigneeService:
          $ref: '#/components/schemas/RoleAssigneeServiceBean'
        dataverseService:
          $ref: '#/components/schemas/DataverseServiceBean'
        dvObjectServiceBean:
          $ref: '#/components/schemas/DvObjectServiceBean'
        workflowService:
          $ref: '#/components/schemas/WorkflowServiceBean'
        em: {}
        groupService:
          $ref: '#/components/schemas/GroupServiceBean'
        session:
          $ref: '#/components/schemas/DataverseSession'
        dvRequestService:
          $ref: '#/components/schemas/DataverseRequestServiceBean'
    AbstractGlobalIdServiceBean:
      type: object
      properties:
        dataverseService:
          $ref: '#/components/schemas/DataverseServiceBean'
        settingsService:
          $ref: '#/components/schemas/SettingsServiceBean'
        commandEngine:
          $ref: '#/components/schemas/EjbDataverseEngine'
        datasetService:
          $ref: '#/components/schemas/DatasetServiceBean'
        datafileService:
          $ref: '#/components/schemas/DataFileServiceBean'
        systemConfig:
          $ref: '#/components/schemas/SystemConfig'
    ExternalToolType:
      type: object
      properties:
        id:
          type: number
        type:
          $ref: '#/components/schemas/Type'
        externalTool:
          $ref: '#/components/schemas/ExternalTool'
    DataverseServiceBean:
      type: object
      properties:
        indexService:
          $ref: '#/components/schemas/IndexServiceBean'
        solrIndexService:
          $ref: '#/components/schemas/SolrIndexServiceBean'
        authService:
          $ref: '#/components/schemas/AuthenticationServiceBean'
        datasetService:
          $ref: '#/components/schemas/DatasetServiceBean'
        dataverseLinkingService:
          $ref: '#/components/schemas/DataverseLinkingServiceBean'
        datasetLinkingService:
          $ref: '#/components/schemas/DatasetLinkingServiceBean'
        groupService:
          $ref: '#/components/schemas/GroupServiceBean'
        rolesService:
          $ref: '#/components/schemas/DataverseRoleServiceBean'
        permissionService:
          $ref: '#/components/schemas/PermissionServiceBean'
        systemConfig:
          $ref: '#/components/schemas/SystemConfig'
        session:
          $ref: '#/components/schemas/DataverseSession'
        em: {}
    IngestServiceBean:
      type: object
      properties:
        variableService:
          $ref: '#/components/schemas/VariableServiceBean'
        datasetService:
          $ref: '#/components/schemas/DatasetServiceBean'
        fieldService:
          $ref: '#/components/schemas/DatasetFieldServiceBean'
        fileService:
          $ref: '#/components/schemas/DataFileServiceBean'
        systemConfig:
          $ref: '#/components/schemas/SystemConfig'
        queue: {}
        factory: {}
    PersistedGlobalGroup:
      type: object
      properties:
        id:
          type: number
        persistedGroupAlias:
          type: string
        displayName:
          type: string
        description:
          type: string
    DataverseLinkingDataverse:
      type: object
      properties:
        id:
          type: number
        dataverse:
          $ref: '#/components/schemas/Dataverse'
        linkingDataverse:
          $ref: '#/components/schemas/Dataverse'
        linkCreateTime: {}
    UserNotification:
      type: object
      properties:
        id:
          type: number
        user:
          $ref: '#/components/schemas/AuthenticatedUser'
        requestor:
          $ref: '#/components/schemas/AuthenticatedUser'
        sendDate: {}
        readNotification:
          type: boolean
        type:
          $ref: '#/components/schemas/Type'
        objectId:
          type: number
        displayAsRead:
          type: boolean
        roleString:
          type: string
        emailed:
          type: boolean
        theObject:
          type: object
    DifferenceSummaryItem:
      type: object
      properties:
        displayName:
          type: string
        changed:
          type: integer
        added:
          type: integer
        deleted:
          type: integer
        replaced:
          type: integer
        multiple:
          type: boolean
    SettingsServiceBean:
      type: object
      properties:
        em: {}
        actionLogSvc:
          $ref: '#/components/schemas/ActionLogServiceBean'
    PasswordValidatorServiceBean:
      type: object
      properties:
        goodStrength:
          type: integer
        maxLength:
          type: integer
        minLength:
          type: integer
        numberOfCharacteristics:
          type: integer
        numberOfConsecutiveDigitsAllowed:
          type: integer
        characterRules:
          items:
            $ref: '#/components/schemas/CharacterRule'
        dictionaries:
          type: string
        messageResolver:
          $ref: '#/components/schemas/PropertiesMessageResolver'
        systemConfig:
          $ref: '#/components/schemas/SystemConfig'
    ExplicitGroupServiceBean:
      type: object
      properties:
        roleAssigneeSvc:
          $ref: '#/components/schemas/RoleAssigneeServiceBean'
        em: {}
        provider:
          $ref: '#/components/schemas/ExplicitGroupProvider'
    FileMetadata:
      type: object
      properties:
        label:
          type: string
        directoryLabel:
          type: string
        description:
          type: string
        restricted:
          type: boolean
        datasetVersion:
          $ref: '#/components/schemas/DatasetVersion'
        dataFile:
          $ref: '#/components/schemas/DataFile'
        provFreeForm:
          type: string
        variableMetadatas:
          items:
            $ref: '#/components/schemas/VariableMetadata'
        varGroups:
          items:
            $ref: '#/components/schemas/VarGroup'
        fileCategories:
          items:
            $ref: '#/components/schemas/DataFileCategory'
        id:
          type: number
        version:
          type: number
        inPriorVersion:
          type: boolean
        selected:
          type: boolean
        restrictedUI:
          type: boolean
        fileVersionDifference:
          $ref: '#/components/schemas/FileVersionDifference'
        contributorNames:
          type: string
    Embargo:
      type: object
      properties:
        id:
          type: number
        dateAvailable:
          type: object
        reason:
          type: string
        dataFiles:
          items:
            $ref: '#/components/schemas/DataFile'
    FakePidProviderServiceBean:
      type: object
      properties:
        dataverseService:
          $ref: '#/components/schemas/DataverseServiceBean'
        settingsService:
          $ref: '#/components/schemas/SettingsServiceBean'
        commandEngine:
          $ref: '#/components/schemas/EjbDataverseEngine'
        datasetService:
          $ref: '#/components/schemas/DatasetServiceBean'
        datafileService:
          $ref: '#/components/schemas/DataFileServiceBean'
        systemConfig:
          $ref: '#/components/schemas/SystemConfig'
      allOf:
      - $ref: '#/components/schemas/AbstractGlobalIdServiceBean'
    SearchPermissionsServiceBean:
      type: object
      properties:
        userServiceBean:
          $ref: '#/components/schemas/AuthenticationServiceBean'
        dvObjectService:
          $ref: '#/components/schemas/DvObjectServiceBean'
        permissionService:
          $ref: '#/components/schemas/PermissionServiceBean'
        roleAssigneeService:
          $ref: '#/components/schemas/RoleAssigneeServiceBean'
        rolesSvc:
          $ref: '#/components/schemas/DataverseRoleServiceBean'
        authSvc:
          $ref: '#/components/schemas/AuthenticationServiceBean'
        groupService:
          $ref: '#/components/schemas/GroupServiceBean'
        settingsService:
          $ref: '#/components/schemas/SettingsServiceBean'
        roleAssigneeCache: {}
    DatasetExternalCitations:
      type: object
      properties:
        id:
          type: number
        dataset:
          $ref: '#/components/schemas/Dataset'
        citedByUrl:
          type: string
    DataverseSession:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/User'
        permissionsService:
          $ref: '#/components/schemas/PermissionServiceBean'
        usersSvc:
          $ref: '#/components/schemas/BuiltinUserServiceBean'
        logSvc:
          $ref: '#/components/schemas/ActionLogServiceBean'
        settingsWrapper:
          $ref: '#/components/schemas/SettingsWrapper'
        headerFragment:
          $ref: '#/components/schemas/Data

# --- truncated at 32 KB (101 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-access-api-openapi.yml