OpenAPI Specification
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/