DOR Services API

The backend API for the Stanford Digital Repository, and the largest contract Stanford publishes — OpenAPI 3.1.2, 40 paths, 53 operations, Apache 2.0, bearer auth. Validates writes against Stanford's own cocina metadata model (422 on violation) and supports DOI assignment. Servers are dor-services-{env}.stanford.edu; the deployment is internal.

OpenAPI Specification

stanford-dor-services-api-openapi.yml Raw ↑
openapi: 3.1.2
info:
  description: Backend API for the Stanford Digital Repository
  version: 1.0.0
  title: DOR Services API
  license:
    name: Apache 2.0
    url: "http://www.apache.org/licenses/LICENSE-2.0.html"
servers:
  - url: "https://dor-services-{env}.stanford.edu"
    description: Production service
    variables:
      env:
        default: prod
  - url: "https://dor-services-{env}.stanford.edu"
    description: Staging service
    variables:
      env:
        default: stage
  - url: "https://dor-services-{env}.stanford.edu"
    description: QA service
    variables:
      env:
        default: qa
tags:
  - name: objects
    description: Digital Repository Objects
  - name: tags
    description: Tags
  - name: integrations
    description: Integrations with other Systems
  - name: jobs
    description: Operations involving background jobs
  - name: release_tags
    description: Operations about release tags
  - name: versions
    description: Operations about object versions
  - name: events
    description: Operations about events
  - name: files
    description: Operations about files
  - name: workspaces
    description: Operations about workspaces
  - name: workflows
    description: Operations about workflows
paths:
  /v1/about:
    get:
      summary: A healthcheck endpoint
      responses:
        "200":
          description: The status of the service
  "/v1/background_job_results/{id}":
    get:
      tags:
        - jobs
      summary: View results of a background job
      description: Used to allow the application run long-running processes out of the request/response cycle
      operationId: "background_job_results#show"
      responses:
        "200":
          description: The background job has completed
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BackgroundJobResultResponse"
        "202":
          description: The background job is pending or processing
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BackgroundJobResultResponse"
        "404":
          description: The background job with the given id was not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      parameters:
        - name: id
          in: path
          description: ID of background job result
          required: true
          schema:
            type: integer
  /v1/virtual_objects:
    post:
      tags:
        - objects
      summary: Create a virtual object.
      description: Combines a virtual_object object with constituent objects to create an object like an Atlas (composed of several images)
      operationId: "virtual_objects#create"
      responses:
        "201":
          description: Virtual merge action started
          headers:
            location:
              description: the status of the action is found at this URI
              schema:
                type: string
                format: uri
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - virtual_objects
              properties:
                virtual_objects:
                  type: array
                  minItems: 1
                  items:
                    $ref: "#/components/schemas/VirtualObjectRequest"
  "/v1/objects/{id}/publish":
    post:
      tags:
        - objects
      summary: Publish object to PURL
      description: ""
      operationId: "objects#publish"
      responses:
        "201":
          description: Publishing action started
          headers:
            location:
              description: the status of the action is found at this URI
              schema:
                type: string
                format: uri
      parameters:
        - name: id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: lane-id
          in: query
          schema:
            $ref: "#/components/schemas/LaneId"
  "/v1/objects/{id}/accession":
    post:
      tags:
        - objects
      summary: Start an assembly workflow, optionally opening a version
      description: ""
      operationId: "objects#accession"
      responses:
        "201":
          description: Workflow started
        "409":
          description: Unable to open version.
      parameters:
        - name: id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: workflow
          in: query
          description: which workflow should be started
          required: false
          schema:
            type: string
            default: assemblyWF
            enum:
              - assemblyWF
              - gisAssemblyWF
        - name: description
          in: query
          description: the description of the version change (if versioning is needed)
          required: true
          schema:
            type: string
          example: "Re-accessioning this object"
        - name: opening_user_name
          in: query
          description: the username of the person creating the version (if versioning is needed)
          required: false
          schema:
            type: string
          example: "some_sunetid"
  "/v1/objects/{id}/reindex":
    post:
      tags:
        - integrations
      summary: Reindex the object in Solr
      description: ""
      operationId: "objects#reindex"
      responses:
        "204":
          description: OK
      parameters:
        - name: id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
  "/v1/objects/{id}/indexable":
    post:
      tags:
        - integrations
      summary: Validate the object for indexing in Solr without actually indexing it
      description: ""
      operationId: "objects#indexable"
      parameters:
        - name: id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
      requestBody:
        required: true
        content:
          application/json:
            # Note that additionalProperties needs to be set to true to allow id parameter.
            schema:
              oneOf:
                - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/DRO"
                - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/DROWithMetadata"
                - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Collection"
                - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/CollectionWithMetadata"
                - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/AdminPolicy"
                - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/AdminPolicyWithMetadata"
      responses:
        "204":
          description: OK
        "422":
          description: Index validation has failed
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Server error
  "/v1/objects/{object_id}/administrative_tags":
    get:
      tags:
        - tags
      summary: Show administrative tags for an object
      description: ""
      operationId: "administrative_tags#show"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AdministrativeTag"
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
    post:
      tags:
        - tags
      summary: Create (or replace) one or more administrative tags
      description: ""
      operationId: "administrative_tags#create"
      responses:
        "201":
          description: Created
        "400":
          description: Bad request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Object not found
          content:
            text/plain:
              schema:
                type: string
        "409":
          description: Request would result in a duplicate tag
          content:
            text/plain:
              schema:
                type: string
        "412":
          description: Provided ETag didn't match the previous version.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
      requestBody:
        description: one or more administrative tags for an object
        content:
          application/json:
            schema:
              type: object
              required:
                - administrative_tags
              properties:
                replace:
                  type: boolean
                  default: false
                administrative_tags:
                  type: array
                  minItems: 1
                  items:
                    $ref: "#/components/schemas/AdministrativeTag"
  "/v1/administrative_tags/search":
    get:
      tags:
        - tags
      summary: Search for existing tags
      description: "This is useful for doing autocomplete of tags in Argo"
      operationId: "administrative_tags#search"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
      parameters:
        - name: q
          in: query
          description: The pattern to query for
          required: true
          schema:
            type: string
  "/v1/objects/{object_id}/administrative_tags/{id}":
    delete:
      tags:
        - tags
      summary: Delete an administrative tag for an object
      description: ""
      operationId: "administrative_tags#destroy"
      responses:
        "204":
          description: Deleted
        "400":
          description: Bad request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Object or tag not found
          content:
            text/plain:
              schema:
                type: string
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: id
          in: path
          description: ID of tag to remove
          required: true
          schema:
            $ref: "#/components/schemas/AdministrativeTagEscaped"
    put:
      tags:
        - tags
      summary: Update one administrative tag
      description: ""
      operationId: "administrative_tags#update (PUT)"
      responses:
        "204":
          description: Updated
        "400":
          description: Bad request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Object or tag not found
          content:
            text/plain:
              schema:
                type: string
        "409":
          description: Request would result in a duplicate tag
          content:
            text/plain:
              schema:
                type: string
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: id
          in: path
          description: ID of tag to replace
          required: true
          schema:
            $ref: "#/components/schemas/AdministrativeTagEscaped"
      requestBody:
        description: A replacement administrative tag
        content:
          application/json:
            schema:
              type: object
              required:
                - administrative_tag
              properties:
                administrative_tag:
                  $ref: "#/components/schemas/AdministrativeTag"
    patch:
      tags:
        - tags
      summary: Update one administrative tag
      description: ""
      operationId: "administrative_tags#update (PATCH)"
      responses:
        "204":
          description: Updated
        "400":
          description: Bad request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Object or tag not found
        "409":
          description: Request would result in a duplicate tag
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: id
          in: path
          description: ID of tag to replace
          required: true
          schema:
            $ref: "#/components/schemas/AdministrativeTagEscaped"
      requestBody:
        description: A replacement administrative tag
        content:
          application/json:
            schema:
              type: object
              required:
                - administrative_tag
              properties:
                administrative_tag:
                  $ref: "#/components/schemas/AdministrativeTag"
  "/v1/objects/{id}/apply_admin_policy_defaults":
    post:
      tags:
        - objects
      summary: Applies the default values (copyright, use_statement, rights) from the admin policy
      description: ""
      operationId: "admin_policy_defaults#apply"
      responses:
        "200":
          description: OK
        "400":
          description: "The object is not supported for inheritance of APO access defaults because its type is not supported"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Not found
        "422":
          description: "The object is in a state in which it cannot be modified: it must be either registered or opened for versioning"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal server error
      parameters:
        - name: id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
  "/v1/objects/{id}/refresh_metadata":
    post:
      tags:
        - integrations
      summary: Update object metadata with marc from Symphony
      description: ""
      operationId: "metadata_refresh#refresh_metadata"
      responses:
        "200":
          description: OK
        "400":
          description: Catkey not found in Symphony.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "500":
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      parameters:
        - name: id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
  "/v1/objects/{object_id}/release_tags":
    get:
      tags:
        - release_tags
      summary: The release tag log for this object
      operationId: "release_tags#index"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ReleaseTag"
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: public
          in: query
          description: Return all of the tags that apply to this object, from the collection and directly applied
          required: false
          schema:
            type: boolean
            default: false
    post:
      tags:
        - release_tags
      summary: Create a new release_tag for this object
      description: ""
      operationId: "release_tag#create"
      responses:
        "201":
          description: Created
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: lane-id
          in: query
          schema:
            $ref: "#/components/schemas/LaneId"
      requestBody:
        description: release tag to add to the system
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReleaseTag"
  "/v1/objects/{object_id}/query/collections":
    get:
      tags:
        - objects
      summary: List the collections that an object belongs to
      description: ""
      operationId: "queries#collections"
      responses:
        "200":
          description: OK
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
  "/v1/objects/{object_id}/members":
    get:
      tags:
        - objects
      summary: List the members of this collection
      description: ""
      operationId: "members#index"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  members:
                    type: array
                    items:
                      type: object
                      properties:
                        externalIdentifier:
                          $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
                        version:
                          type: integer
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
  "/v1/objects/{id}/solr":
    get:
      tags:
        - objects
      summary: Show solr document for head version
      operationId: "objects#solr"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      parameters:
        - name: id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: validate
          in: query
          description: Enable or disable validation ofCocina
          required: false
          schema:
            type: boolean
            default: true
  "/v1/objects/{object_id}/workspace":
    post:
      tags:
        - workspaces
      summary: Create a workspace for an object
      description: ""
      operationId: "workspaces#create"
      responses:
        "200":
          description: OK
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
  "/v1/objects/{object_id}/workspace/reset":
    post:
      tags:
        - workspaces
      summary: Resets a workspace for an object
      description: After an object has been copied to preservation the workspace can be reset. This is called by the reset-workspace step of the accessionWF
      operationId: "workspaces#reset"
      responses:
        "204":
          description: OK
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: workflow
          in: query
          description: which workflow should this be reported to
          schema:
            type: string
            enum:
              - accessionWF
              - releaseWF
          example: releaseWF
        - name: lane-id
          in: query
          schema:
            $ref: "#/components/schemas/LaneId"
  "/v1/objects/{object_id}/events":
    get:
      tags:
        - events
      summary: Return a list of events about this object
      description: ""
      operationId: "events#index"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ObjectEvent"
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: event_types
          in: query
          description: Filter events by type
          required: false
          schema:
            type: array
            items:
              type: string
    post:
      tags:
        - events
      summary: Create an event about this object
      description: ""
      operationId: "events#create"
      responses:
        "201":
          description: Created
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
      requestBody:
        description: event to add to the system
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ObjectEvent"
  "/v1/objects/{object_id}/versions/current":
    get:
      tags:
        - versions
      summary: Return the current version number for this object
      description: ""
      operationId: "versions#current"
      responses:
        "200":
          description: OK
        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
    delete:
      tags:
        - versions
      summary: Destroys current open version for this object
      description: ""
      operationId: "versions#destroy_current"
      responses:
        "204":
          description: Deleted
        "409":
          description: Current version is not open
        "404":
          description: Object not found
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
  "/v1/objects/{object_id}/versions/status":
    get:
      tags:
        - versions
      summary: Return the status of the current version for this object
      description: "The status includes whether the version is open or closed and whether certain workflows are active"
      operationId: "versions#status"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VersionStatus"
        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
  "/v1/objects/{object_id}/versions/current/close":
    post:
      tags:
        - versions
      summary: Close the currently open version for this object
      description: ""
      operationId: "versions#close_current"
      responses:
        "200":
          description: OK
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: start_accession
          in: query
          schema:
            type: boolean
            default: true
          required: false
          description: Indicates if accessionWF should be started after closing the version
        - name: description
          in: query
          description: the description of the version change
          required: false
          schema:
            type: string
            example: "Re-accessioning this object"
        - name: user_name
          in: query
          description: the username of the person creating the version
          schema:
            type: string
            example: "some_sunetid"
        - name: user_versions
          in: query
          description: Create, update, or do nothing with user versions on close
          schema:
            type: string
            enum:
              - "none"
              - "new"
              - "update"
              - "update_if_existing"
        - name: lane-id
          in: query
          schema:
            $ref: "#/components/schemas/LaneId"
        - name: context
          in: query
          description: Optional workflow context to pass to accessionWF.
          required: false
          style: deepObject # Serializes the object using bracket notation rather than as a flat JSON string.
          explode: true # Expands nested properties into separate query parameter key-value pairs.
          # Together they mean a client sending: { "skipReleaseWF": true, "ocrLanguages": ["Russian"] }
          # Should encode it as query string: ?context[skipReleaseWF]=true&context[ocrLanguages][]=Russian
          schema:
            type: object
            additionalProperties: true
  "/v1/objects/{object_id}/versions":
    get:
      tags:
        - versions
      summary: The version log for this object
      operationId: "versions#index"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VersionLog"
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
    post:
      tags:
        - versions
      summary: Open a new version for this object
      description: ""
      operationId: "versions#create"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/DRO"
                  - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/DROWithMetadata"
                  - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Collection"
                  - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/CollectionWithMetadata"
                  - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/AdminPolicy"
                  - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/AdminPolicyWithMetadata"
          headers:
            ETag:
              schema:
                type: string
            Last-Modified:
              schema:
                type: string
            X-Created-At:
              schema:
                type: string
      parameters:
        - name: object_id
          in: path
          description: ID of object
          required: true
          schema:
            $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/refs/tags/v0.113.0/schema.json#/$defs/Druid"
        - name: description
          in: query
          description: short description for object version being opened
          required: true
          schema:
            type: string
          example: "Adding thumbnail"
        - name: assume_accessioned
          in: query
          description: If true, does not check whether object has been accessioned
          required: false
          schema:
            type: boolean
            default: false
        - name: opening_user_name
          in: query
          description: username to include in version event
          required: false
          schema:
            type: string
          example: "some_sunetid"
  "/v1/objects/{object_id}/versions/{id}":
    get:
      tags:
        - versions
      summary: Show the cocina for a particular object version
      operationId: "versions#show"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: "https://raw.githubusercontent.com/sul-dlss/cocina-models/ref

# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/stanford/refs/heads/main/openapi/stanford-dor-services-api-openapi.yml