Perses Global Datasources API

Manage shared datasources across projects.

OpenAPI Specification

perses-global-datasources-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Perses Dashboards Global 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: Global Datasources
  description: Manage shared datasources across projects.
paths:
  /api/v1/globaldatasources:
    get:
      tags:
      - Global Datasources
      summary: List global datasources
      operationId: listGlobalDatasources
      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 global datasources.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Datasource'
    post:
      tags:
      - Global Datasources
      summary: Create a global datasource
      operationId: createGlobalDatasource
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Datasource'
      responses:
        '200':
          description: Global datasource created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Datasource'
  /api/v1/globaldatasources/{name}:
    parameters:
    - in: path
      name: name
      required: true
      schema:
        type: string
    get:
      tags:
      - Global Datasources
      summary: Get a global datasource
      operationId: getGlobalDatasource
      responses:
        '200':
          description: Global datasource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Datasource'
    put:
      tags:
      - Global Datasources
      summary: Update a global datasource
      operationId: updateGlobalDatasource
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Datasource'
      responses:
        '200':
          description: Global datasource updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Datasource'
    delete:
      tags:
      - Global Datasources
      summary: Delete a global datasource
      operationId: deleteGlobalDatasource
      responses:
        '204':
          description: Global 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/