University of Chicago system API

System endpoints

OpenAPI Specification

university-of-chicago-system-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Fence OpenAPI Specification admin/user system API
  version: 0.1.0
  description: Access management for Gen3 data commons. Code is available on [GitHub](https://github.com/uc-cdis/fence).
  termsOfService: http://cdis.uchicago.edu/terms/
  contact:
    email: cdis@uchicago.edu
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://example.domain/
tags:
- name: system
  description: System endpoints
paths:
  /_status:
    get:
      tags:
      - system
      summary: Returns if Fence is healthy or not
      description: Health check endpoint
      produces:
      - application/text
      responses:
        '200':
          description: Healthy
        default:
          description: Unhealthy
  /_version:
    get:
      tags:
      - system
      summary: Returns the version of Fence
      produces:
      - application/json
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/SystemVersionOutputRef'
  /metrics:
    get:
      tags:
      - system
      summary: Get Prometheus metrics
      description: Returns Prometheus metrics if the `ENABLE_PROMETHEUS_METRICS` setting is `True`. By default, this endpoint is public. Authorization controls can be setup externally; in cloud-automation setups, access to this endpoint is blocked at the revproxy level.
      responses:
        '200':
          description: successful operation
  /_dist:
    get:
      tags:
      - system
      summary: Returns the IndexD dist configuration
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Commons name
                    host:
                      type: string
                      description: Resolver URL
                    hints:
                      type: array
                      items:
                        type: string
                        description: Regex for prefix matching
                    type:
                      type: string
                      description: Type of resolver (one of [indexd, doi, dos, hs])
  /_stats:
    get:
      tags:
      - system
      summary: Returns basic information about the records in IndexD
      parameters:
      - in: query
        name: month
        description: Month for which data is to be returned. (Either both month and year or neither must be provided)
        required: false
        schema:
          type: integer
      - in: query
        name: year
        description: year for which data is to be returned. (Either both month and year or neither must be provided)
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemStatsOutputRef'
components:
  schemas:
    SystemStatsOutputRef:
      type: object
      properties:
        fileCount:
          type: integer
          description: the number of records stored in IndexD
        totalFileSize:
          type: integer
          description: the accumulated size of the object files recorded in IndexD
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /oauth/authorize
          tokenUrl: /oauth/token
          scopes:
            user: generic user access