

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# チーム API
<a name="Grafana-API-Team"></a>

チーム API を使用して、Amazon Managed Grafana ワークスペース内のチームを使用します。この API のすべてのアクションには管理者ロールが必要です。

**注記**  
Amazon Managed Grafana ワークスペースで Grafana API を使用するには、有効な Grafana API トークンが必要です。このトークンは API リクエストの `Authorization` フィールドに含めます。API コールを認証するトークンの作成方法については、「[トークンを使用した認証](authenticating-grafana-apis.md)」を参照してください。

## ページ分割によるチーム検索
<a name="Grafana-API-Team-Searchpaging"></a>

```
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
```

**クエリパラメータの使用**

`perpage` パラメータのデフォルト値は 1000 で、`page` パラメータのデフォルト値は 1 です。

レスポンスの `totalCount` フィールドはチームリストのページ分割に使用できます。例えば、`totalCount` が 100 チームで `perpage` パラメータに 10 が設定されている場合、10 ページのチームがあります。

`query` パラメータはオプションで、クエリ値が `name`フィールドに含まれている場合に結果を返します。クエリ値にスペースが含まれる場合は URL エンコードする必要があります。例えば、`query=my%20team`。

**name パラメータの使用**

パラメータが `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 によるチームの取得
<a name="Grafana-API-Team-getbyId"></a>

```
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"
}
```

## チームの追加
<a name="Grafana-API-Team-add"></a>

チームの `name` は一意である必要があります。`name` フィールドは必須で、`email` および `orgId` フィールドはオプションです。

```
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** — チーム名が既に存在

## チームの更新
<a name="Grafana-API-Team-update"></a>

```
PUT /api/teams/:id
```

`name` および `email` フィールドのみ更新できます。

**リクエストの例**

```
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 によるチームの削除
<a name="Grafana-API-Team-deletebyId"></a>

```
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** — チーム未検出

## チームメンバーの取得
<a name="Grafana-API-Team-getmembers"></a>

```
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**— アクセス許可拒否

## チームメンバーを追加する
<a name="Grafana-API-Team-addmember"></a>

```
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** — チーム未検出

## チームのメンバーの削除
<a name="Grafana-API-Team-removemember"></a>

```
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** — チームが未検出/チームメンバーが未検出

## チーム設定の取得
<a name="Grafana-API-Team-getpreferences"></a>

```
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": ""
}
```

## チーム設定の更新
<a name="Grafana-API-Team-updatepreferences"></a>

```
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 ボディスキーマ:
+ **theme** — `light`、`dark` のにずれか、またはデフォルトテーマを使用する空の文字列を指定します。
+ **homeDashboardId** — ダッシュボードの数値の `:id` です。デフォルトは 0 です。
+ **[タイムゾーン]** — `utc`、`browser` のにずれか、またはデフォルトを使用する空の文字列を指定します。

パラメータを省略すると、現在の値はシステムのデフォルト値に置き換えられます。

**レスポンスの例**

```
HTTP/1.1 200
Content-Type: text/plain; charset=utf-8

{
  "message":"Preferences updated"
}
```