
# keenauth_permission

`keenauth_permission` 리소스는 API의 권한(OAuth 스코프)을 동의 화면에 표시되는 텍스트와 함께 정의합니다. 프로바이더는 API 자체를 관리하지 않습니다. 기존 API의 ID를 `api_id`로 전달하세요. 권한을 역할에 넣으려면 `keenauth_role`을 사용하세요.

```terraform
resource "keenauth_permission" "invoices_read" {
  api_id       = "api_01j9zq3v8c5m2x7k4t6r1n0b3d"
  value        = "invoices:read"
  display_name = "Read invoices"
  description  = "See the invoices of the account."
  sensitivity  = "normal"

  consent_text_i18n = {
    de = "Rechnungen ansehen"
    tr = "Faturaları görüntüle"
  }
}
```

## 수명 주기

- `value`는 `resource:action` 형식이며 액세스 토큰의 `permissions` 클레임에 나타납니다. API 안에서 고유하며 바꿀 수 없습니다. 새 값은 권한을 대체합니다. `idp_` 접두사는 시스템 API에 속합니다.
- `display_name`, `description`, `consent_text_i18n`의 텍스트는 평문입니다. 제어 문자, 줄 또는 단락 구분자, 양방향 재정렬 문자는 쓸 수 없고, `display_name`과 `description`은 앞뒤 공백도 허용되지 않습니다(API가 이 둘의 공백을 제거합니다). `consent_text_i18n`의 텍스트는 적힌 그대로 저장되지만 비어 있으면 안 됩니다. 빈 텍스트는 허용되지 않으므로 대신 속성을 제거하세요.
- `consent_text_i18n`은 전체 맵으로 교체됩니다. 키는 `de`나 `pt-BR` 같은 언어 태그이며 최대 30개 언어입니다. 비우려면 속성을 제거하세요.
- `sensitivity`는 `normal` 또는 `sensitive`입니다. 민감한 권한은 동의 화면에서 강조됩니다.
- 권한 행에는 버전이 없으므로 API가 이에 대한 `If-Match` 검사를 제공하지 않습니다. 프로바이더는 계획할 때마다 API의 권한 목록을 읽고, 다른 곳에서 바뀐 내용을 드리프트로 표시하며, 바뀐 필드만 보냅니다.
- 리소스를 제거하면 권한이 삭제되고 모든 역할과 애플리케이션의 권한 목록에서도 빠집니다. 해당 역할을 다음에 새로 고치면 변경이 표시됩니다.
- 시스템 API는 새 권한을 받지 않으며 그 권한은 삭제할 수 없습니다(`409 conflict`). API당 권한은 최대 1,000개입니다.
- 프로바이더 밖에서 삭제된 권한은 상태에서 제거되고 다시 계획됩니다.

## 가져오기

API ID와 권한 ID로, 또는 API ID와 값으로 가져옵니다:

```shell
tofu import keenauth_permission.invoices_read api_01j9zq3v8c5m2x7k4t6r1n0b3d/perm_01j9zq3v8c5m2x7k4t6r1n0b3e
tofu import keenauth_permission.invoices_read api_01j9zq3v8c5m2x7k4t6r1n0b3d/invoices:read
```
