Utrecht University vault API

The vault API from Utrecht University — 16 operation(s) for vault.

OpenAPI Specification

utrecht-vault-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: Yoda core ruleset containing iRODS and Python rules and policies useful for all Yoda environments.
  contact:
    email: l.r.westerhof@uu.nl
  version: 2.1.0
  title: Yoda core admin vault API
servers:
- url: https://portal.yoda.test/api
  description: Local Yoda development server
security:
- cookieAuth: []
- basicAuth: []
tags:
- name: vault
paths:
  /vault_submit:
    post:
      tags:
      - vault
      summary: 'Submit data package for publication.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - coll
              properties:
                coll:
                  type: string
                  description: Collection of data package to submit
                  default: null
                  nullable: false
                previous_version:
                  type: string
                  description: Path to previous version of data package in the vault
                  default: None
                  nullable: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_approve:
    post:
      tags:
      - vault
      summary: 'Approve data package for publication.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - coll
              properties:
                coll:
                  type: string
                  description: Collection of data package to approve
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_cancel:
    post:
      tags:
      - vault
      summary: 'Cancel submit of data package.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - coll
              properties:
                coll:
                  type: string
                  description: Collection of data package to cancel submit
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_depublish:
    post:
      tags:
      - vault
      summary: 'Depublish data package.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - coll
              properties:
                coll:
                  type: string
                  description: Collection of data package to depublish
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_republish:
    post:
      tags:
      - vault
      summary: 'Republish data package.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - coll
              properties:
                coll:
                  type: string
                  description: Collection of data package to republish
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_copy_to_research:
    post:
      tags:
      - vault
      summary: 'Copy data package from vault to research space.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - coll_origin
              - coll_target
              properties:
                coll_origin:
                  type: string
                  description: Collection of data package to copy
                  default: null
                  nullable: false
                coll_target:
                  type: string
                  description: Collection to copy data package to
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_preservable_formats_lists:
    post:
      tags:
      - vault
      summary: 'Retrieve lists of preservable file formats on the system.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_unpreservable_files:
    post:
      tags:
      - vault
      summary: 'Retrieve list of unpreservable file formats in a collection.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - coll
              - list_name
              properties:
                coll:
                  type: string
                  description: Collection of folder to check
                  default: null
                  nullable: false
                list_name:
                  type: string
                  description: Name of preservable file format list
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_system_metadata:
    post:
      tags:
      - vault
      summary: 'Return system metadata of a vault collection.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - coll
              properties:
                coll:
                  type: string
                  description: Path to data package
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_collection_details:
    post:
      tags:
      - vault
      summary: 'Return details of a vault collection.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - path
              properties:
                path:
                  type: string
                  description: Path to data package
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_get_package_by_reference:
    post:
      tags:
      - vault
      summary: 'Return path to data package with provided reference (UUID4).

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - reference
              properties:
                reference:
                  type: string
                  description: Data Package Reference (UUID4)
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_get_landingpage_data:
    post:
      tags:
      - vault
      summary: 'Retrieve landingpage data of data package.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - coll
              properties:
                coll:
                  type: string
                  description: Collection to retrieve landingpage data from
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_get_publication_terms:
    post:
      tags:
      - vault
      summary: Retrieve the publication terms.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /grant_read_access_research_group:
    post:
      tags:
      - vault
      summary: 'Grant read rights of research group for datapackage in vault.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - coll
              properties:
                coll:
                  type: string
                  description: Collection of data package to remove read rights from
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /revoke_read_access_research_group:
    post:
      tags:
      - vault
      summary: 'Revoke read rights of research group for datapackage in vault.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - coll
              properties:
                coll:
                  type: string
                  description: Collection of data package to remove read rights from
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
  /vault_get_published_packages:
    post:
      tags:
      - vault
      summary: 'Get the path and DOI of latest versions of published data package in a vault.

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - path
              properties:
                path:
                  type: string
                  description: Path of vault with data packages
                  default: null
                  nullable: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  status_info:
                    type: string
                    nullable: true
                  data:
                    nullable: true
        '400':
          $ref: '#/components/responses/status_400'
        '500':
          $ref: '#/components/responses/status_500'
components:
  responses:
    status_500:
      description: Internal error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/result_error'
    status_400:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/result_error'
  schemas:
    result_error:
      type: object
      properties:
        status:
          type: string
          description: Holds an error ID
        status_info:
          type: string
          description: Holds a human-readable error description
        data:
          description: empty
          nullable: true
          type: object
  securitySchemes:
    cookieAuth:
      in: cookie
      type: apiKey
      name: yoda_session
    basicAuth:
      type: http
      scheme: basic