
# keenauth_permission

Die Ressource `keenauth_permission` definiert eine Berechtigung (einen OAuth-Scope) einer API mit den Texten, die der Zustimmungsbildschirm anzeigt. Der Provider verwaltet die API selbst nicht: Übergeben Sie die ID einer bestehenden API als `api_id`. Die Berechtigung fügen Sie mit `keenauth_role` einer Rolle hinzu.

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

## Lebenszyklus

- `value` hat die Form `resource:action` und erscheint im Claim `permissions` von Zugriffstokens. Er ist innerhalb der API eindeutig und kann nicht geändert werden: Ein neuer Wert ersetzt die Berechtigung. Das Präfix `idp_` ist der System-API vorbehalten.
- `display_name`, `description` und die Texte in `consent_text_i18n` sind reiner Text: ohne Steuerzeichen, ohne Zeilen- oder Absatztrennzeichen, ohne bidirektionale Override-Zeichen und, bei `display_name` und `description`, ohne führende oder nachgestellte Leerzeichen (die API kürzt diese beiden). Ein Text in `consent_text_i18n` wird wie geschrieben gespeichert, darf aber nicht leer sein. Ein leerer Text ist nicht zulässig; entfernen Sie stattdessen das Attribut.
- `consent_text_i18n` wird als Ganzes durch die Map ersetzt. Die Schlüssel sind Sprachkennzeichnungen wie `de` oder `pt-BR`; höchstens 30 Sprachen. Entfernen Sie das Attribut, um es zu leeren.
- `sensitivity` ist `normal` oder `sensitive`; eine sensible Berechtigung wird auf dem Zustimmungsbildschirm hervorgehoben.
- Eine Berechtigungszeile hat keine Version, daher bietet die API dafür keine `If-Match`-Prüfung. Der Provider liest bei jedem Plan die Berechtigungsliste der API, zeigt jede außerhalb vorgenommene Änderung als Drift an und sendet nur die geänderten Felder.
- Das Entfernen der Ressource löscht die Berechtigung und entfernt sie aus jeder Rolle und aus den Berechtigungslisten der Anwendungen. Die nächste Aktualisierung dieser Rollen zeigt die Änderung an.
- Die System-API nimmt keine neuen Berechtigungen an, und ihre Berechtigungen können nicht gelöscht werden (`409 conflict`). Eine API hat höchstens 1.000 Berechtigungen.
- Eine Berechtigung, die außerhalb des Providers gelöscht wurde, wird aus dem State entfernt und erneut geplant.

## Import

Importieren Sie anhand der API-ID und der Berechtigungs-ID oder anhand der API-ID und des Werts:

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