

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

# フォルダ API
<a name="v12-Grafana-API-Folder"></a>

フォルダ API を使用して Amazon Managed Grafana ワークスペースのフォルダを操作します。

フォルダの識別子 (id) は自動増分数値あり、ワークスペースごとに一意です。フォルダの一意の識別子 (uid) は、複数のワークスペース間のフォルダを一意に識別ために使用できます。フォルダの作成時に指定しない場合は自動的に生成されます。uid を使用すると、フォルダにアクセスしたり、複数の Amazon Managed Grafana ワークスペース間のフォルダを同期したりするための、一貫した URL を使用できます。uid を使用すると、フォルダのタイトルを変更しても、そのフォルダにブックマークされたリンクが破損することはありません。

uid の最大長は 40 文字までです。

フォルダのネストはできません。

**注記**  
Amazon Managed Grafana ワークスペースで Grafana API を使用するには、有効なサービスアカウントトークンが必要です。このトークンは API リクエストの `Authorization` フィールドに含めます。

`id` が 0 の **[全般]** フォルダは、フォルダ API の一部ではありません。フォルダ API を使用して全般フォルダの情報を取得することはできません。

## フォルダの作成
<a name="v12-Grafana-API-Folder-create"></a>

```
POST /api/folders
```

新しいフォルダを作成します。

**リクエストの例**

```
POST /api/folders HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "uid": "nErXDvCkzz",
  "title": "Department ABC"
}
```

JSON ボディスキーマ:
+ **uid** — オプションの、一意の ID。null の場合は新しい uid が生成されます。
+ **タイトル** — フォルダのタイトルです。

**レスポンスの例**

```
HTTP/1.1 200
Content-Type: application/json

{
  "id":1,
  "uid": "nErXDvCkzz",
  "title": "Department ABC",
  "url": "/dashboards/f/nErXDvCkzz/department-abc",
  "hasAcl": false,
  "canSave": true,
  "canEdit": true,
  "canAdmin": true,
  "createdBy": "admin",
  "created": "2018-01-31T17:43:12+01:00",
  "updatedBy": "admin",
  "updated": "2018-01-31T17:43:12+01:00",
  "version": 1
}
```

ステータスコード:
+ **200** — 作成済み
+ **400** — 無効な JSON、無効なフィールド、欠落したフィールドなどのエラー
+ **401** — 未許可
+ **403** — アクセス拒否

## フォルダの更新
<a name="v12-Grafana-API-Folder-update"></a>

```
PUT /api/folders/:uid
```

uid と一致する既存のフォルダを更新します。

**リクエストの例**

```
PUT /api/folders/nErXDvCkzz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "title":"Department DEF",
  "version": 1
}
```

JSON ボディスキーマ:
+ **uid** — 指定されると、一意の ID を変更します。
+ **タイトル** — フォルダのタイトルです。
+ **version** — フォルダの上書きができるように、現在のバージョンを指定します。`overwrite=true` の場合は不要です。
+ **overwrite** — `true` にセットすると、既存のフォルダが新しいバージョンに上書きされます。

**レスポンスの例**

```
HTTP/1.1 200
Content-Type: application/json

{
  "id":1,
  "uid": "nErXDvCkzz",
  "title": "Department DEF",
  "url": "/dashboards/f/nErXDvCkzz/department-def",
  "hasAcl": false,
  "canSave": true,
  "canEdit": true,
  "canAdmin": true,
  "createdBy": "admin",
  "created": "2018-01-31T17:43:12+01:00",
  "updatedBy": "admin",
  "updated": "2018-01-31T17:43:12+01:00",
  "version": 1
}
```

ステータスコード:
+ **200** — 作成済み
+ **400** — 無効な JSON、無効なフィールド、欠落したフィールドなどのエラー
+ **401** — 未許可
+ **403** — アクセス拒否
+ **404** — フォルダが未検出
+ **412** — 前提条件失敗

**412** ステータスコードは、フォルダを更新できない理由の説明に使用されます。
+  フォルダが他のユーザーによって変更された `status=version-mismatch` 

レスポンス本文には次のプロパティがあります:

```
HTTP/1.1 412 Precondition Failed
Content-Type: application/json; charset=UTF-8
Content-Length: 97

{
  "message": "The folder has been changed by someone else",
  "status": "version-mismatch"
}
```

## すべてのフォルダの取得
<a name="v12-Grafana-API-Folder-get-all"></a>

```
GET /api/folders
```

表示アクセス許可を持つすべてのフォルダを返します。`limit` クエリパラメータを使用すると、返されるフォルダの最大数を制御できます。デフォルトは 1000 です。

**リクエストの例**

```
GET /api/folders?limit=10 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**レスポンスの例**

```
HTTP/1.1 200
Content-Type: application/json

[
  {
    "id":1,
    "uid": "nErXDvCkzz",
    "title": "Department ABC"
  },
  {
    "id":2,
    "uid": "k3S1cklGk",
    "title": "Department RND"
  }
]
```

## uid によるフォルダの取得
<a name="v12-Grafana-API-Folder-get-uid"></a>

```
GET /api/folders/:uid
```

指定 uid と一致するすべてのフォルダを返します。

**リクエストの例**

```
GET /api/folders/nErXDvCkzzh HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**レスポンスの例**

```
HTTP/1.1 200
Content-Type: application/json

{
  "id":1,
  "uid": "nErXDvCkzz",
  "title": "Department ABC",
  "url": "/dashboards/f/nErXDvCkzz/department-abc",
  "hasAcl": false,
  "canSave": true,
  "canEdit": true,
  "canAdmin": true,
  "createdBy": "admin",
  "created": "2018-01-31T17:43:12+01:00",
  "updatedBy": "admin",
  "updated": "2018-01-31T17:43:12+01:00",
  "version": 1
}
```

ステータスコード:
+ **200** — 検出済み
+ **401** — 未許可
+ **403** — アクセス拒否
+ **404** — 未検出

## id によるフォルダの取得
<a name="v12-Grafana-API-Folder-get-id"></a>

```
GET /api/folders/id/:id
```

指定 id と一致するすべてのフォルダを返します。

**リクエストの例**

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

**レスポンスの例**

```
HTTP/1.1 200
Content-Type: application/json

{
  "id":1,
  "uid": "nErXDvCkzz",
  "title": "Department ABC",
  "url": "/dashboards/f/nErXDvCkzz/department-abc",
  "hasAcl": false,
  "canSave": true,
  "canEdit": true,
  "canAdmin": true,
  "createdBy": "admin",
  "created": "2018-01-31T17:43:12+01:00",
  "updatedBy": "admin",
  "updated": "2018-01-31T17:43:12+01:00",
  "version": 1
}
```

ステータスコード:
+ **200** — 検出済み
+ **401** — 未許可
+ **403** — アクセス拒否
+ **404** — 未検出

## uid によるフォルダの削除
<a name="v12-Grafana-API-Folder-delete"></a>

```
DELETE /api/folders/:uid
```

uid と一致するフォルダを削除し、フォルダに保存されているすべてのダッシュボードも削除します。このオペレーションを元に戻すことはできません。

**リクエストの例**

```
DELETE /api/folders/nErXDvCkzz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**レスポンスの例**

```
HTTP/1.1 200
Content-Type: application/json

{
  "message":"Folder deleted",
  "id": 2
}
```

ステータスコード:
+ **200** — 削除済み
+ **401** — 未許可
+ **403** — アクセス拒否
+ **404** — 未検出