|
|
@@ -0,0 +1,286 @@
|
|
|
++++
|
|
|
+title = "Playlist HTTP API "
|
|
|
+description = "Playlist Admin HTTP API"
|
|
|
+keywords = ["grafana", "http", "documentation", "api", "playlist"]
|
|
|
+aliases = ["/http_api/playlist/"]
|
|
|
+type = "docs"
|
|
|
+[menu.docs]
|
|
|
+name = "Playlist"
|
|
|
+parent = "http_api"
|
|
|
++++
|
|
|
+
|
|
|
+# Playlist API
|
|
|
+
|
|
|
+## Search Playlist
|
|
|
+
|
|
|
+`GET /api/playlists`
|
|
|
+
|
|
|
+Get all existing playlist for the current organization using pagination
|
|
|
+
|
|
|
+**Example Request**:
|
|
|
+
|
|
|
+```bash
|
|
|
+GET /api/playlists HTTP/1.1
|
|
|
+Accept: application/json
|
|
|
+Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
|
|
+```
|
|
|
+
|
|
|
+ Querystring Parameters:
|
|
|
+
|
|
|
+ These parameters are used as querystring parameters.
|
|
|
+
|
|
|
+ - **query** - Limit response to playlist having a name like this value.
|
|
|
+ - **limit** - Limit response to *X* number of playlist.
|
|
|
+
|
|
|
+**Example Response**:
|
|
|
+
|
|
|
+```json
|
|
|
+HTTP/1.1 200
|
|
|
+Content-Type: application/json
|
|
|
+[
|
|
|
+ {
|
|
|
+ "id": 1,
|
|
|
+ "name": "my playlist",
|
|
|
+ "interval": "5m"
|
|
|
+ }
|
|
|
+]
|
|
|
+```
|
|
|
+
|
|
|
+## Get one playlist
|
|
|
+
|
|
|
+`GET /api/playlists/:id`
|
|
|
+
|
|
|
+**Example Request**:
|
|
|
+
|
|
|
+```bash
|
|
|
+GET /api/playlists/1 HTTP/1.1
|
|
|
+Accept: application/json
|
|
|
+Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
|
|
+```
|
|
|
+
|
|
|
+**Example Response**:
|
|
|
+
|
|
|
+```json
|
|
|
+HTTP/1.1 200
|
|
|
+Content-Type: application/json
|
|
|
+{
|
|
|
+ "id" : 1,
|
|
|
+ "name": "my playlist",
|
|
|
+ "interval": "5m",
|
|
|
+ "orgId": "my org",
|
|
|
+ "items": [
|
|
|
+ {
|
|
|
+ "id": 1,
|
|
|
+ "playlistId": 1,
|
|
|
+ "type": "dashboard_by_id",
|
|
|
+ "value": "3",
|
|
|
+ "order": 1,
|
|
|
+ "title":"my third dasboard"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 2,
|
|
|
+ "playlistId": 1,
|
|
|
+ "type": "dashboard_by_tag",
|
|
|
+ "value": "myTag",
|
|
|
+ "order": 2,
|
|
|
+ "title":"my other dasboard"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+## Get Playlist items
|
|
|
+
|
|
|
+`GET /api/playlists/:id/items`
|
|
|
+
|
|
|
+**Example Request**:
|
|
|
+
|
|
|
+```bash
|
|
|
+GET /api/playlists/1/items HTTP/1.1
|
|
|
+Accept: application/json
|
|
|
+Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
|
|
+```
|
|
|
+
|
|
|
+**Example Response**:
|
|
|
+
|
|
|
+```json
|
|
|
+HTTP/1.1 200
|
|
|
+Content-Type: application/json
|
|
|
+[
|
|
|
+ {
|
|
|
+ "id": 1,
|
|
|
+ "playlistId": 1,
|
|
|
+ "type": "dashboard_by_id",
|
|
|
+ "value": "3",
|
|
|
+ "order": 1,
|
|
|
+ "title":"my third dasboard"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 2,
|
|
|
+ "playlistId": 1,
|
|
|
+ "type": "dashboard_by_tag",
|
|
|
+ "value": "myTag",
|
|
|
+ "order": 2,
|
|
|
+ "title":"my other dasboard"
|
|
|
+ }
|
|
|
+]
|
|
|
+```
|
|
|
+
|
|
|
+## Get Playlist dashboards
|
|
|
+
|
|
|
+`GET /api/playlists/:id/dashboards`
|
|
|
+
|
|
|
+**Example Request**:
|
|
|
+
|
|
|
+```bash
|
|
|
+GET /api/playlists/1/dashboards HTTP/1.1
|
|
|
+Accept: application/json
|
|
|
+Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
|
|
+```
|
|
|
+
|
|
|
+**Example Response**:
|
|
|
+
|
|
|
+```json
|
|
|
+HTTP/1.1 200
|
|
|
+Content-Type: application/json
|
|
|
+[
|
|
|
+ {
|
|
|
+ "id": 3,
|
|
|
+ "title": "my third dasboard",
|
|
|
+ "order": 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 5,
|
|
|
+ "title":"my other dasboard"
|
|
|
+ "order": 2,
|
|
|
+
|
|
|
+ }
|
|
|
+]
|
|
|
+```
|
|
|
+
|
|
|
+## Create a playlist
|
|
|
+
|
|
|
+`POST /api/playlists/`
|
|
|
+
|
|
|
+**Example Request**:
|
|
|
+
|
|
|
+```bash
|
|
|
+PUT /api/playlists/1 HTTP/1.1
|
|
|
+Accept: application/json
|
|
|
+Content-Type: application/json
|
|
|
+Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
|
|
+ {
|
|
|
+ "name": "my playlist",
|
|
|
+ "interval": "5m",
|
|
|
+ "items": [
|
|
|
+ {
|
|
|
+ "type": "dashboard_by_id",
|
|
|
+ "value": "3",
|
|
|
+ "order": 1,
|
|
|
+ "title":"my third dasboard"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "dashboard_by_tag",
|
|
|
+ "value": "myTag",
|
|
|
+ "order": 2,
|
|
|
+ "title":"my other dasboard"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+**Example Response**:
|
|
|
+
|
|
|
+```json
|
|
|
+HTTP/1.1 200
|
|
|
+Content-Type: application/json
|
|
|
+ {
|
|
|
+ "id": 1,
|
|
|
+ "name": "my playlist",
|
|
|
+ "interval": "5m"
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+## Update a playlist
|
|
|
+
|
|
|
+`PUT /api/playlists/:id`
|
|
|
+
|
|
|
+**Example Request**:
|
|
|
+
|
|
|
+```bash
|
|
|
+PUT /api/playlists/1 HTTP/1.1
|
|
|
+Accept: application/json
|
|
|
+Content-Type: application/json
|
|
|
+Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
|
|
+ {
|
|
|
+ "name": "my playlist",
|
|
|
+ "interval": "5m",
|
|
|
+ "items": [
|
|
|
+ {
|
|
|
+ "playlistId": 1,
|
|
|
+ "type": "dashboard_by_id",
|
|
|
+ "value": "3",
|
|
|
+ "order": 1,
|
|
|
+ "title":"my third dasboard"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "playlistId": 1,
|
|
|
+ "type": "dashboard_by_tag",
|
|
|
+ "value": "myTag",
|
|
|
+ "order": 2,
|
|
|
+ "title":"my other dasboard"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+**Example Response**:
|
|
|
+
|
|
|
+```json
|
|
|
+HTTP/1.1 200
|
|
|
+Content-Type: application/json
|
|
|
+{
|
|
|
+ "id" : 1,
|
|
|
+ "name": "my playlist",
|
|
|
+ "interval": "5m",
|
|
|
+ "orgId": "my org",
|
|
|
+ "items": [
|
|
|
+ {
|
|
|
+ "id": 1,
|
|
|
+ "playlistId": 1,
|
|
|
+ "type": "dashboard_by_id",
|
|
|
+ "value": "3",
|
|
|
+ "order": 1,
|
|
|
+ "title":"my third dasboard"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 2,
|
|
|
+ "playlistId": 1,
|
|
|
+ "type": "dashboard_by_tag",
|
|
|
+ "value": "myTag",
|
|
|
+ "order": 2,
|
|
|
+ "title":"my other dasboard"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+## Delete a playlist
|
|
|
+
|
|
|
+`DELETE /api/playlists/:id`
|
|
|
+
|
|
|
+**Example Request**:
|
|
|
+
|
|
|
+```bash
|
|
|
+DELETE /api/playlists/1 HTTP/1.1
|
|
|
+Accept: application/json
|
|
|
+Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
|
|
+```
|
|
|
+
|
|
|
+**Example Response**:
|
|
|
+
|
|
|
+```json
|
|
|
+HTTP/1.1 200
|
|
|
+Content-Type: application/json
|
|
|
+{}
|
|
|
+```
|