团队 API - Amazon Managed Grafana

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

团队 API

使用团队 API 在亚马逊托管 Grafana 工作空间中与团队合作。此 API 中的所有操作都要求您具有管理员角色。

注意

要在亚马逊托管 Grafana 工作空间中使用 Grafana API,您必须拥有有效的 Grafana API 令牌。您可以将其包含在 API 请求的Authorization字段中。有关如何创建令牌来验证您的 API 调用的信息,请参阅使用令牌进行身份验证

使用分页进行团队搜索

GET /api/teams/search?perpage=50&page=1&query=myteam

或者

GET /api/teams/search?name=myteam

示例请求

GET /api/teams/search?perpage=10&page=1&query=myteam HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

使用查询参数

参数的默认值为 1000,perpagepage参数的默认值为 1。

响应中的totalCount字段可用于对球队列表进行分页。例如,如果totalCount是 100 个团队并且perpage参数设置为 10,则有 10 页的团队。

query参数是可选的,返回name字段中包含查询值的结果。带空格的查询值需要经过网址编码。例如,query=my%20team

使用名称参数

如果name参数与该name字段匹配,则该参数返回一支球队。

响应示例

HTTP/1.1 200 Content-Type: application/json { "totalCount": 1, "teams": [ { "id": 1, "orgId": 1, "name": "MyTestTeam", "email": "", "avatarUrl": "\/avatar\/3f49c15916554246daa714b9bd0ee39", "memberCount": 1 } ], "page": 1, "perPage": 1000

状态码:

  • 200 — 已创建

  • 401 — 未经授权

  • 403-权限被拒绝

  • 404 — 未找到小组(如果按姓名搜索)

按 ID 获取队伍

GET /api/teams/:id

示例请求

GET /api/teams/1 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例

HHTTP/1.1 200 Content-Type: application/json { "id": 1, "orgId": 1, "name": "MyTestTeam", "email": "", "created": "2017-12-15T10:40:45+01:00", "updated": "2017-12-15T10:40:45+01:00" }

添加一支球队

团队成员必须是独一无二的。namename字段为必填字段,emailorgId字段为可选字段。

POST /api/teams

示例请求

POST /api/teams HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "name": "MyTestTeam", "email": "email@test.com", "orgId": 2 }

响应示例

HTTP/1.1 200 Content-Type: application/json {"message":"Team created","teamId":2}

状态码:

  • 200 — 已创建

  • 401 — 未经授权

  • 403-权限被拒绝

  • 409-队伍名称已存在

更新小组

PUT /api/teams/:id

只能更新nameemail字段。

示例请求

PUT /api/teams/2 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "name": "MyTestTeam", "email": "email@test.com" }

响应示例

HTTP/1.1 200 Content-Type: application/json {"message":"Team updated"}

状态码:

  • 200 — 已创建

  • 401 — 未经授权

  • 403-权限被拒绝

  • 404 — 未找到小组

  • 409-队伍名称已存在

按 ID 删除球队

DELETE /api/teams/:id

示例请求

DELETE /api/teams/2 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例

HTTP/1.1 200 Content-Type: application/json {"message":"Team deleted"}

状态码:

  • 200 — 已创建

  • 401 — 未经授权

  • 403-权限被拒绝

  • 404 — 未找到小组

获取团队成员

GET /api/teams/:teamId/members

示例请求

GET /api/teams/1/members HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例

HTTP/1.1 200 Content-Type: application/json [ { "orgId": 1, "teamId": 1, "userId": 3, "email": "user1@email.com", "login": "user1", "avatarUrl": "\/avatar\/1b3c32f6386b0185c40d359cdc733a7" }, { "orgId": 1, "teamId": 1, "userId": 2, "email": "user2@email.com", "login": "user2", "avatarUrl": "\/avatar\/cad3c68da76e45d10269e8ef02f8e7" } ]

状态码:

  • 200 — 已创建

  • 401 — 未经授权

  • 403-权限被拒绝

添加团队成员

POST /api/teams/:teamId/members

示例请求

POST /api/teams/1/members HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "userId": 2 }

响应示例

HTTP/1.1 200 Content-Type: application/json {"message":"Member added to Team"}

状态码:

  • 200 — 已创建

  • 400-用户已加入团队

  • 401 — 未经授权

  • 403-权限被拒绝

  • 404 — 未找到小组

从团队中移除成员

DELETE /api/teams/:teamId/members/:userId

示例请求

DELETE /api/teams/2/members/3 HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例

HTTP/1.1 200 Content-Type: application/json {"message":"Team Member removed"}

状态码:

  • 200 — 已创建

  • 401 — 未经授权

  • 403-权限被拒绝

  • 404 — 未找到团队/未找到团队成员

获取团队偏好

GET /api/teams/:teamId/preferences

示例请求

GET /api/teams/2/preferences HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

响应示例

HTTP/1.1 200 Content-Type: application/json { "theme": "", "homeDashboardId": 0, "timezone": "" }

更新团队偏好

PUT /api/teams/:teamId/preferences

示例请求

PUT /api/teams/2/preferences HTTP/1.1 Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "theme": "dark", "homeDashboardId": 39, "timezone": "utc" }

JSON 正文架构:

  • 主题-指定lightdark、或空字符串以使用默认主题。

  • homeDashboardId— 仪表板:id的数字。默认值是 0。

  • 时区-指定utcbrowser、或空字符串以使用默认值。

省略参数会导致当前值被系统默认值替换。

响应示例

HTTP/1.1 200 Content-Type: text/plain; charset=utf-8 { "message":"Preferences updated" }