

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 폴더 API
<a name="Grafana-API-Folder"></a>

폴더 API를 사용하여 Amazon Managed Grafana 워크스페이스의 폴더에 대한 작업을 수행합니다.

폴더의 식별자(ID)는 자동으로 증가하는 숫자 값이며 워크스페이스당 고유합니다. 폴더의 고유 식별자(UID)를 사용하여 여러 워크스페이스 사이에서 폴더를 고유하게 식별할 수 있습니다. 폴더를 생성할 때 제공하지 않으면 자동으로 생성됩니다. UID를 사용하면 폴더에 액세스하고 여러 Amazon Managed Grafana 워크스페이스 사이에서 폴더를 동기화할 때 일관된 URL을 사용할 수 있습니다. UID를 사용하면 폴더의 제목을 변경해도 해당 폴더에 대한 북마크된 링크는 끊어지지 않습니다.

UID의 최대 길이는 40자입니다.

폴더를 중첩할 수 없습니다.

**참고**  
Amazon Managed Grafana 워크스페이스에서 Grafana API를 사용하려면 유효한 Grafana API 토큰이 있어야 합니다. API 요청의 `Authorization` 필드에 이를 포함합니다. API 직접 호출을 인증하기 위해 토큰을 생성하는 방법에 대한 자세한 내용은 [토큰으로 인증](authenticating-grafana-apis.md) 섹션을 참조하세요.

`id`가 0인 **일반** 폴더는 폴더 API에 속하지 않습니다. 폴더 API를 사용하여 일반 폴더에 대한 정보를 검색할 수 없습니다.

## 폴더 생성
<a name="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** - 선택적 고유 식별자. null인 경우 새 UID가 생성됩니다.
+ **title** - 폴더의 제목.

**응답의 예**

```
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="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를 변경합니다.
+ **title** - 폴더의 제목.
+ **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="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="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="Grafana-API-Folder-get-uid"></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="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** - 찾을 수 없음