

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

# スナップショット API
<a name="v10-Grafana-API-Snapshot"></a>

スナップショット API を使用して、Amazon Managed Grafana ワークスペースのスナップショットを使用します。

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

## 新しいシェープショットの作成
<a name="v10-Grafana-API-Snapshot-create"></a>

```
POST /api/snapshots
```

**リクエストの例**

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

    {
      "dashboard": {
        "editable":false,
        "hideControls":true,
        "nav":[
        {
          "enable":false,
        "type":"timepicker"
        }
        ],
        "rows": [
          {

          }
        ],
        "style":"dark",
        "tags":[],
        "templating":{
          "list":[
          ]
        },
        "time":{
        },
        "timezone":"browser",
        "title":"Home",
        "version":5
        },
      "expires": 3600
    }
```

JSON ボディスキーマ:
+ **dashboard** — (必須) 完全なダッシュボードモデルです。
+ **[名前]** — (オプション) スナップショットの名前です。
+ **expires** — (オプション) スナップショットの有効期限が切れるタイミングを、秒単位で指定します。デフォルトは、有効期限なしです。
+ **external** — (オプション) スナップショットをローカルではなく、外部サーバーに保存します。デフォルトは偽です。
+ **key** — (`external` が `true` の場合は必須) 一意のキーを定義します。
+ **deletekey** — (`external` が `true` の場合は必須) スナップショットの削除に使用する一意のキーです。これは `key` とは異なり、作成者のみがスナップショットを削除できます。

**注記**  
API を使用してスナップショットを作成するときは、スナップショットデータを含むダッシュボードペイロード全体を用意する必要があります。このエンドポイントは Grafana UI 用です。

**レスポンスの例**

```
HTTP/1.1 200
    Content-Type: application/json
    {
      "deleteKey":"XXXXXXX",
      "deleteUrl":"myurl/api/snapshots-delete/XXXXXXX",
      "key":"YYYYYYY",
      "url":"myurl/dashboard/snapshot/YYYYYYY",
      "id": 1,
    }
```

キー:
+ **deleteKey** — スナップショットの削除に使用するために生成されたキーです。
+ **key** — ダッシュボードを共有するために生成されたキーです。

## スナップショットのリストの取得
<a name="v10-Grafana-API-snapshot-list"></a>

```
GET /api/dashboard/snapshots
```

クエリパラメータ:
+ **query** — クエリの検索
+ **[制限]** — 返される結果数の制限

**リクエストの例**

```
GET /api/dashboard/snapshots HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**レスポンスの例**

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

[
  {
    "id":8,
    "name":"Home",
    "key":"YYYYYYY",
    "orgId":1,
    "userId":1,
    "external":false,
    "externalUrl":"",
    "expires":"2200-13-32T25:23:23+02:00",
    "created":"2200-13-32T28:24:23+02:00",
    "updated":"2200-13-32T28:24:23+02:00"
  }
]
```

## key によるスナップショットの取得
<a name="v10-Grafana-API-snapshot-get-bykey"></a>

```
GET /api/snapshots/:key
```

**リクエストの例**

```
GET /api/snapshots/YYYYYYY HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**レスポンスの例**

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

{
  "meta":{
    "isSnapshot":true,
    "type":"snapshot",
    "canSave":false,
    "canEdit":false,
    "canStar":false,
    "slug":"",
    "expires":"2200-13-32T25:23:23+02:00",
    "created":"2200-13-32T28:24:23+02:00"
  },
  "dashboard": {
    "editable":false,
    "hideControls":true,
    "nav": [
      {
        "enable":false,
        "type":"timepicker"
      }
    ],
    "rows": [
      {

      }
    ],
    "style":"dark",
    "tags":[],
    "templating":{
      "list":[
      ]
    },
    "time":{
    },
    "timezone":"browser",
    "title":"Home",
    "version":5
  }
}
```

## key によるスナップショットの削除
<a name="v10-Grafana-API-snapshot-delete-bykey"></a>

```
DELETE /api/snapshots/:key
```

**リクエストの例**

```
DELETE /api/snapshots/YYYYYYY HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

**レスポンスの例**

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

{"message":"Snapshot deleted. It might take an hour before it's cleared from any CDN caches.", "id": 1}
```

## deleteKey によるスナップショットの削除
<a name="v10-Grafana-API-snapshot-delete-deletekey"></a>

この API コールは、スナップショットのシークレット削除キーを使用すると認証なしで使用できます。

```
GET /api/snapshots-delete/:deleteKey
```

**リクエストの例**

```
GET /api/snapshots-delete/XXXXXXX HTTP/1.1
Accept: application/json
```

**レスポンスの例**

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

{"message":"Snapshot deleted. It might take an hour before it's cleared from any CDN caches.", "id": 1}
```