Perses Datasources API

Manage project-scoped datasources.

OpenAPI Specification

perses-datasources-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Perses Dashboards Datasources API
  description: 'Perses is an open-source monitoring and dashboarding tool (CNCF sandbox)

    that exposes a REST API for managing dashboards, datasources, and

    projects, among other resources. All resources live under the

    /api/v1 prefix; project-scoped resources are nested under

    /api/v1/projects/{projectName}.


    Only a representative subset of the Perses API surface (projects,

    dashboards, datasources, global datasources) is modeled here. See the

    Perses documentation linked under externalDocs for the full catalog

    including users, roles, secrets, variables, and plugins.

    '
  version: 1.0.0
  contact:
    name: Perses documentation
    url: https://perses.dev/perses/docs/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://{persesHost}
  description: Perses server.
  variables:
    persesHost:
      default: localhost:8080
      description: Host and port of the Perses server.
tags:
- name: Datasources
  description: Manage project-scoped datasources.
paths:
  /api/v1/projects/{projectName}/datasources:
    parameters:
    - in: path
      name: projectName
      required: true
      schema:
        type: string
    get:
      tags:
      - Datasources
      summary: List project datasources
      operationId: listDatasources
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: kind
        schema:
          type: string
      - in: query
        name: default
        schema:
          type: boolean
      responses:
        '200':
          description: Array of datasources.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Datasource'
    post:
      tags:
      - Datasources
      summary: Create a project datasource
      operationId: createDatasource
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Datasource'
      responses:
        '200':
          description: Datasource created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Datasource'
  /api/v1/projects/{projectName}/datasources/{datasourceName}:
    parameters:
    - in: path
      name: projectName
      required: true
      schema:
        type: string
    - in: path
      name: datasourceName
      required: true
      schema:
        type: string
    get:
      tags:
      - Datasources
      summary: Get a project datasource
      operationId: getDatasource
      responses:
        '200':
          description: Datasource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Datasource'
    put:
      tags:
      - Datasources
      summary: Update a project datasource
      operationId: updateDatasource
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Datasource'
      responses:
        '200':
          description: Datasource updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Datasource'
    delete:
      tags:
      - Datasources
      summary: Delete a project datasource
      operationId: deleteDatasource
      responses:
        '204':
          description: Datasource removed.
components:
  schemas:
    Metadata:
      type: object
      properties:
        name:
          type: string
        project:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        version:
          type: integer
    Datasource:
      type: object
      properties:
        kind:
          type: string
          enum:
          - Datasource
          - GlobalDatasource
        metadata:
          $ref: '#/components/schemas/Metadata'
        spec:
          type: object
          additionalProperties: true
          description: Datasource specification including plugin kind and config.
externalDocs:
  description: Perses API reference
  url: https://perses.dev/perses/docs/api/