> **Warning:** This API is deprecated since Grafana v9.0.0 and will be removed in a future release. Refer to the [API for getting a single data source by UID](#get-a-single-data-source-by-uid) or to the [API for getting a single data source by its name](#get-a-single-data-source-by-name).
**Required permissions**
See note in the [introduction]({{< ref "#data-source-api" >}}) for an explanation.
@ -121,7 +123,7 @@ Content-Type: application/json
}
```
## Get a single data source by UID
## Get a single data source by uid
`GET /api/datasources/uid/:uid`
@ -177,7 +179,7 @@ Content-Type: application/json
}
```
## Get a single data source by Name
## Get a single data source by name
`GET /api/datasources/name/:name`
@ -233,7 +235,7 @@ Content-Type: application/json
}
```
## Get data source Id by Name
## Get data source Id by name
`GET /api/datasources/id/:name`
@ -584,6 +586,8 @@ Content-Type: application/json
`DELETE /api/datasources/:datasourceId`
> **Warning:** This API is deprecated since Grafana v9.0.0 and will be removed in a future release. Refer to the [API for deleting an existing data source by UID](#delete-an-existing-data-source-by-uid) or to the [API for deleting an existing data source by its name](#delete-an-existing-data-source-by-name)
**Required permissions**
See note in the [introduction]({{< ref "#data-source-api" >}}) for an explanation.
> **Warning:** This API is deprecated since Grafana v9.0.0 and will be removed in a future release. Refer to the [new data source API for proxying requests](#data-source-proxy-calls).
`GET /api/datasources/proxy/:datasourceId/*`
Proxies all calls to the actual data source.
Proxies all calls to the actual data source identified by the `datasourceId`.
## Data source proxy calls
`GET /api/datasources/proxy/uid/:uid/*`
Proxies all calls to the actual data source identified by the `uid`.
## Check data source health by id
@ -945,9 +957,9 @@ In addition, specific properties of each data source should be added in a reques
The following resources have been deprecated. They will be removed in a future release.
### Query a data source by ID
### Query a data source by id
> **Warning:** This API is deprecated since Grafana v8.5.0 and will be removed in a future release. Refer to the [new data source query API](#query-a-data-source-by-id).
> **Warning:** This API is deprecated since Grafana v8.5.0 and will be removed in a future release. Refer to the [new data source query API](#query-a-data-source).
Queries a data source having a backend implementation.
// If you are running Grafana Enterprise and have Fine-grained access control enabled
// you need to have a permission with action: `datasources:delete` and scopes: `datasources:*`, `datasources:uid:*` and `datasources:uid:1` (single data source).
// you need to have a permission with action: `datasources:delete` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).
//
// Please refer to [updated API](#/datasources/deleteDatasourceByUID) instead
// swagger:route GET /datasources/{datasource_id} datasources getDatasourceByID
// swagger:route GET /datasources/{id} datasources getDatasourceByID
//
// Get a single data source by Id.
//
// If you are running Grafana Enterprise and have Fine-grained access control enabled
// you need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:uid:*` and `datasources:uid:1` (single data source).
// you need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).
//
// Please refer to [updated API](#/datasources/getDatasourceByUID) instead
//
// Deprecated: true
//
// Responses:
// 200: getDatasourceResponse
@ -132,7 +140,7 @@ import (
// 404: notFoundError
// 500: internalServerError
// swagger:route GET /datasources/uid/{datasource_uid} datasources getDatasourceByUID
// swagger:route GET /datasources/uid/{uid} datasources getDatasourceByUID
//
// Get a single data source by UID.
//
@ -147,7 +155,7 @@ import (
// 404: notFoundError
// 500: internalServerError
// swagger:route GET /datasources/{datasource_id}/health datasources checkDatasourceHealthByID
// swagger:route GET /datasources/{id}/health datasources checkDatasourceHealthByID
//
// Check data source health by Id.
//
@ -162,7 +170,7 @@ import (
// 403: forbiddenError
// 500: internalServerError
// swagger:route GET /datasources/uid/{datasource_uid}/health datasources checkDatasourceHealth
// swagger:route GET /datasources/uid/{uid}/health datasources checkDatasourceHealth
//
// Check data source health by Id.
//
@ -173,7 +181,7 @@ import (
// 403: forbiddenError
// 500: internalServerError
// swagger:route GET /datasources/{datasource_id}/resources/{datasource_proxy_route} datasources fetchDatasourceResourcesByID
// swagger:route GET /datasources/{id}/resources/{datasource_proxy_route} datasources fetchDatasourceResourcesByID
//
// Fetch data source resources by Id.
//
@ -189,7 +197,7 @@ import (
// 404: notFoundError
// 500: internalServerError
// swagger:route GET /datasources/uid/{datasource_uid}/resources/{datasource_proxy_route} datasources fetchDatasourceResources
// swagger:route GET /datasources/uid/{uid}/resources/{datasource_proxy_route} datasources fetchDatasourceResources
//
// Fetch data source resources.
//
@ -201,7 +209,7 @@ import (
// 404: notFoundError
// 500: internalServerError
// swagger:route GET /datasources/name/{datasource_name} datasources getDatasourceByName
// swagger:route GET /datasources/name/{name} datasources getDatasourceByName
//
// Get a single data source by Name.
//
@ -214,7 +222,7 @@ import (
// 403: forbiddenError
// 500: internalServerError
// swagger:route GET /datasources/id/{datasource_name} datasources getDatasourceIdByName
// swagger:route GET /datasources/id/{name} datasources getDatasourceIdByName
//
// Get data source Id by Name.
//
@ -228,12 +236,16 @@ import (
// 404: notFoundError
// 500: internalServerError
// swagger:route GET /datasources/proxy/{datasource_id}/{datasource_proxy_route} datasources datasourceProxyGETcalls
// swagger:route GET /datasources/proxy/{id}/{datasource_proxy_route} datasources datasourceProxyGETcalls
//
// Data source proxy GET calls.
//
// Proxies all calls to the actual data source.
//
// Please refer to [updated API](#/datasources/datasourceProxyGETByUIDcalls) instead
//
// Deprecated: true
//
// Responses:
// 200:
// 400: badRequestError
@ -242,7 +254,7 @@ import (
// 404: notFoundError
// 500: internalServerError
// swagger:route GET /datasources/proxy/uid/{datasource_uid}/{datasource_proxy_route} datasources datasourceProxyGETByUIDcalls
// swagger:route GET /datasources/proxy/uid/{uid}/{datasource_proxy_route} datasources datasourceProxyGETByUIDcalls
//
// Data source proxy GET calls.
//
@ -256,12 +268,16 @@ import (
// 404: notFoundError
// 500: internalServerError
// swagger:route POST /datasources/proxy/{datasource_id}/{datasource_proxy_route} datasources datasourceProxyPOSTcalls
// swagger:route POST /datasources/proxy/{id}/{datasource_proxy_route} datasources datasourceProxyPOSTcalls
//
// Data source proxy POST calls.
//
// Proxies all calls to the actual data source. The data source should support POST methods for the specific path and role as defined
//
// Please refer to [updated API](#/datasources/datasourceProxyPOSTByUIDcalls) instead
//
// Deprecated: true
//
// Responses:
// 201:
// 202:
@ -271,7 +287,7 @@ import (
// 404: notFoundError
// 500: internalServerError
// swagger:route POST /datasources/proxy/uid/{datasource_uid}/{datasource_proxy_route} datasources datasourceProxyPOSTByUIDcalls
// swagger:route POST /datasources/proxy/uid/{uid}/{datasource_proxy_route} datasources datasourceProxyPOSTByUIDcalls
"description":"A flag indicating if the assignment is global or not. If set to false, the default org ID of the authenticated user will be used from the request to remove assignment.",
"name":"global",
"in":"query"
},
{
"type":"integer",
"format":"int64",
"x-go-name":"UserID",
"name":"user_id",
"in":"path",
"required":true
}
],
"responses":{
@ -4195,7 +4195,7 @@
}
}
},
"/datasources/id/{datasource_name}":{
"/datasources/id/{name}":{
"get":{
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:name:*` and `datasources:name:test_datasource` (single data source).",
"tags":["datasources"],
@ -4205,7 +4205,7 @@
{
"type":"string",
"x-go-name":"DatasourceName",
"name":"datasource_name",
"name":"name",
"in":"path",
"required":true
}
@ -4229,7 +4229,7 @@
}
}
},
"/datasources/name/{datasource_name}":{
"/datasources/name/{name}":{
"get":{
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:name:*` and `datasources:name:test_datasource` (single data source).",
"description":"Proxies all calls to the actual data source.",
"description":"Proxies all calls to the actual data source.\n\nPlease refer to [updated API](#/datasources/datasourceProxyGETByUIDcalls) instead",
"tags":["datasources"],
"summary":"Data source proxy GET calls.",
"operationId":"datasourceProxyGETcalls",
"deprecated":true,
"parameters":[
{
"type":"string",
"x-go-name":"DatasourceID",
"name":"datasource_id",
"name":"id",
"in":"path",
"required":true
},
@ -4467,15 +4468,16 @@
}
},
"post":{
"description":"Proxies all calls to the actual data source. The data source should support POST methods for the specific path and role as defined",
"description":"Proxies all calls to the actual data source. The data source should support POST methods for the specific path and role as defined\n\nPlease refer to [updated API](#/datasources/datasourceProxyPOSTByUIDcalls) instead",
"tags":["datasources"],
"summary":"Data source proxy POST calls.",
"operationId":"datasourceProxyPOSTcalls",
"deprecated":true,
"parameters":[
{
"type":"string",
"x-go-name":"DatasourceID",
"name":"datasource_id",
"name":"id",
"in":"path",
"required":true
},
@ -4520,15 +4522,16 @@
}
},
"delete":{
"description":"Proxies all calls to the actual data source.",
"description":"Proxies all calls to the actual data source.\n\nPlease refer to [updated API](#/datasources/datasourceProxyDELETEByUIDcalls) instead",
"tags":["datasources"],
"summary":"Data source proxy DELETE calls.",
"operationId":"datasourceProxyDELETEcalls",
"deprecated":true,
"parameters":[
{
"type":"string",
"x-go-name":"DatasourceID",
"name":"datasource_id",
"name":"id",
"in":"path",
"required":true
},
@ -4562,7 +4565,7 @@
}
}
},
"/datasources/uid/{datasource_uid}":{
"/datasources/uid/{uid}":{
"get":{
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:uid:*` and `datasources:uid:kLtEtcRGk` (single data source).",
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:uid:*` and `datasources:uid:1` (single data source).",
"description":"Disables permissions for the data source with the given id. All existing permissions will be removed and anyone will be able to query the data source.\n\nYou need to have a permission with action `datasources.permissions:toggle` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Disable permissions for a data source.",
"description":"Similar to creating a data source, `password` and `basicAuthPassword` should be defined under\nsecureJsonData in order to be stored securely as an encrypted blob in the database. Then, the\nencrypted fields are listed under secureJsonFields section in the response.\n\nIf you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:write` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).\n\nPlease refer to [updated API](#/datasources/updateDatasourceByUID) instead",
"tags":["datasources"],
"summary":"Update an existing data source by its sequential ID.",
"description":"Enables permissions for the data source with the given id.\nNo one except Org Admins will be able to query the data source until permissions have been added\nwhich permit certain users or teams to query the data source.\n\nYou need to have a permission with action `datasources.permissions:toggle` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Enable permissions for a data source.",
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:delete` and scopes: `datasources:*`, `datasources:uid:*` and `datasources:uid:1` (single data source).",
"tags":["datasources"],
"summary":"Delete an existing data source by id.",
"operationId":"deleteDatasourceByID",
}
},
"/datasources/{datasource_id}/permissions":{
"get":{
"description":"Gets all existing permissions for the data source with the given id.\n\nYou need to have a permission with action `datasources.permissions:read` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"description":"Disables permissions for the data source with the given id. All existing permissions will be removed and anyone will be able to query the data source.\n\nYou need to have a permission with action `datasources.permissions:toggle` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"description":"Removes the permission with the given permissionId for the data source with the given id.\n\nYou need to have a permission with action `datasources.permissions:delete` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Disable permissions for a data source.",
"description":"Enables permissions for the data source with the given id.\nNo one except Org Admins will be able to query the data source until permissions have been added\nwhich permit certain users or teams to query the data source.\n\nYou need to have a permission with action `datasources.permissions:toggle` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Enable permissions for a data source.",
"operationId":"enablePermissions",
"/datasources/{id}":{
"get":{
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).\n\nPlease refer to [updated API](#/datasources/getDatasourceByUID) instead",
"description":"Please refer to [updated API](#/datasources/checkDatasourceHealth) instead",
},
"put":{
"description":"Similar to creating a data source, `password` and `basicAuthPassword` should be defined under\nsecureJsonData in order to be stored securely as an encrypted blob in the database. Then, the\nencrypted fields are listed under secureJsonFields section in the response.\n\nIf you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:write` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).\n\nPlease refer to [updated API](#/datasources/updateDatasourceByUID) instead",
"tags":["datasources"],
"summary":"Check data source health by Id.",
"operationId":"checkDatasourceHealthByID",
"summary":"Update an existing data source by its sequential ID.",
"description":"Gets all existing permissions for the data source with the given id.\n\nYou need to have a permission with action `datasources.permissions:read` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Get permissions for a data source.",
"operationId":"getPermissions",
},
"delete":{
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:delete` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).\n\nPlease refer to [updated API](#/datasources/deleteDatasourceByUID) instead",
"tags":["datasources"],
"summary":"Delete an existing data source by id.",
"description":"Removes the permission with the given permissionId for the data source with the given id.\n\nYou need to have a permission with action `datasources.permissions:delete` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Remove permission for a data source.",
"operationId":"deletePermissions",
"/datasources/{id}/health":{
"get":{
"description":"Please refer to [updated API](#/datasources/checkDatasourceHealth) instead",
"description":"A flag indicating if the assignment is global or not. If set to false, the default org ID of the authenticated user will be used from the request to remove assignment.",
"name":"global",
"in":"query"
},
{
"type":"integer",
"format":"int64",
"x-go-name":"UserID",
"name":"user_id",
"in":"path",
"required":true
}
],
"responses":{
@ -3257,7 +3257,7 @@
}
}
},
"/datasources/id/{datasource_name}":{
"/datasources/id/{name}":{
"get":{
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:name:*` and `datasources:name:test_datasource` (single data source).",
"tags":["datasources"],
@ -3267,7 +3267,7 @@
{
"type":"string",
"x-go-name":"DatasourceName",
"name":"datasource_name",
"name":"name",
"in":"path",
"required":true
}
@ -3291,7 +3291,7 @@
}
}
},
"/datasources/name/{datasource_name}":{
"/datasources/name/{name}":{
"get":{
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:name:*` and `datasources:name:test_datasource` (single data source).",
"description":"Proxies all calls to the actual data source.",
"description":"Proxies all calls to the actual data source.\n\nPlease refer to [updated API](#/datasources/datasourceProxyGETByUIDcalls) instead",
"tags":["datasources"],
"summary":"Data source proxy GET calls.",
"operationId":"datasourceProxyGETcalls",
"deprecated":true,
"parameters":[
{
"type":"string",
"x-go-name":"DatasourceID",
"name":"datasource_id",
"name":"id",
"in":"path",
"required":true
},
@ -3529,15 +3530,16 @@
}
},
"post":{
"description":"Proxies all calls to the actual data source. The data source should support POST methods for the specific path and role as defined",
"description":"Proxies all calls to the actual data source. The data source should support POST methods for the specific path and role as defined\n\nPlease refer to [updated API](#/datasources/datasourceProxyPOSTByUIDcalls) instead",
"tags":["datasources"],
"summary":"Data source proxy POST calls.",
"operationId":"datasourceProxyPOSTcalls",
"deprecated":true,
"parameters":[
{
"type":"string",
"x-go-name":"DatasourceID",
"name":"datasource_id",
"name":"id",
"in":"path",
"required":true
},
@ -3582,15 +3584,16 @@
}
},
"delete":{
"description":"Proxies all calls to the actual data source.",
"description":"Proxies all calls to the actual data source.\n\nPlease refer to [updated API](#/datasources/datasourceProxyDELETEByUIDcalls) instead",
"tags":["datasources"],
"summary":"Data source proxy DELETE calls.",
"operationId":"datasourceProxyDELETEcalls",
"deprecated":true,
"parameters":[
{
"type":"string",
"x-go-name":"DatasourceID",
"name":"datasource_id",
"name":"id",
"in":"path",
"required":true
},
@ -3624,7 +3627,7 @@
}
}
},
"/datasources/uid/{datasource_uid}":{
"/datasources/uid/{uid}":{
"get":{
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:uid:*` and `datasources:uid:kLtEtcRGk` (single data source).",
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:uid:*` and `datasources:uid:1` (single data source).",
"description":"Disables permissions for the data source with the given id. All existing permissions will be removed and anyone will be able to query the data source.\n\nYou need to have a permission with action `datasources.permissions:toggle` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Disable permissions for a data source.",
"description":"Similar to creating a data source, `password` and `basicAuthPassword` should be defined under\nsecureJsonData in order to be stored securely as an encrypted blob in the database. Then, the\nencrypted fields are listed under secureJsonFields section in the response.\n\nIf you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:write` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).\n\nPlease refer to [updated API](#/datasources/updateDatasourceByUID) instead",
"tags":["datasources"],
"summary":"Update an existing data source by its sequential ID.",
"description":"Enables permissions for the data source with the given id.\nNo one except Org Admins will be able to query the data source until permissions have been added\nwhich permit certain users or teams to query the data source.\n\nYou need to have a permission with action `datasources.permissions:toggle` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Enable permissions for a data source.",
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:delete` and scopes: `datasources:*`, `datasources:uid:*` and `datasources:uid:1` (single data source).",
"tags":["datasources"],
"summary":"Delete an existing data source by id.",
"operationId":"deleteDatasourceByID",
}
},
"/datasources/{datasource_id}/permissions":{
"get":{
"description":"Gets all existing permissions for the data source with the given id.\n\nYou need to have a permission with action `datasources.permissions:read` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"description":"Disables permissions for the data source with the given id. All existing permissions will be removed and anyone will be able to query the data source.\n\nYou need to have a permission with action `datasources.permissions:toggle` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"description":"Removes the permission with the given permissionId for the data source with the given id.\n\nYou need to have a permission with action `datasources.permissions:delete` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Disable permissions for a data source.",
"description":"Enables permissions for the data source with the given id.\nNo one except Org Admins will be able to query the data source until permissions have been added\nwhich permit certain users or teams to query the data source.\n\nYou need to have a permission with action `datasources.permissions:toggle` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Enable permissions for a data source.",
"operationId":"enablePermissions",
"/datasources/{id}":{
"get":{
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:read` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).\n\nPlease refer to [updated API](#/datasources/getDatasourceByUID) instead",
"description":"Please refer to [updated API](#/datasources/checkDatasourceHealth) instead",
},
"put":{
"description":"Similar to creating a data source, `password` and `basicAuthPassword` should be defined under\nsecureJsonData in order to be stored securely as an encrypted blob in the database. Then, the\nencrypted fields are listed under secureJsonFields section in the response.\n\nIf you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:write` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).\n\nPlease refer to [updated API](#/datasources/updateDatasourceByUID) instead",
"tags":["datasources"],
"summary":"Check data source health by Id.",
"operationId":"checkDatasourceHealthByID",
"summary":"Update an existing data source by its sequential ID.",
"description":"Gets all existing permissions for the data source with the given id.\n\nYou need to have a permission with action `datasources.permissions:read` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Get permissions for a data source.",
"operationId":"getPermissions",
},
"delete":{
"description":"If you are running Grafana Enterprise and have Fine-grained access control enabled\nyou need to have a permission with action: `datasources:delete` and scopes: `datasources:*`, `datasources:id:*` and `datasources:id:1` (single data source).\n\nPlease refer to [updated API](#/datasources/deleteDatasourceByUID) instead",
"tags":["datasources"],
"summary":"Delete an existing data source by id.",
"description":"Removes the permission with the given permissionId for the data source with the given id.\n\nYou need to have a permission with action `datasources.permissions:delete` and scopes `datasources:*`, `datasources:id:*`, `datasources:id:1` (single data source).",
"tags":["datasource_permissions","enterprise"],
"summary":"Remove permission for a data source.",
"operationId":"deletePermissions",
"/datasources/{id}/health":{
"get":{
"description":"Please refer to [updated API](#/datasources/checkDatasourceHealth) instead",