
# keenauth_permission

La risorsa `keenauth_permission` definisce un'autorizzazione (uno scope OAuth) di un'API, con i testi che mostra la schermata di consenso. Il provider non gestisce l'API stessa: passa l'ID di un'API esistente come `api_id`. Inserisci l'autorizzazione in un ruolo con `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"
  }
}
```

## Ciclo di vita

- `value` ha la forma `resource:action` e compare nel claim `permissions` dei token di accesso. È univoco nell'API e non può essere modificato: un nuovo valore sostituisce l'autorizzazione. Il prefisso `idp_` appartiene all'API di sistema.
- `display_name`, `description` e i testi in `consent_text_i18n` sono testo semplice: niente caratteri di controllo, niente separatori di riga o paragrafo, niente caratteri di override bidirezionale e, per `display_name` e `description`, niente spazi iniziali o finali (l'API rimuove quelli dai due campi). Un testo in `consent_text_i18n` viene memorizzato come scritto, ma non può essere vuoto. Un testo vuoto non è ammesso; rimuovi invece l'attributo.
- `consent_text_i18n` viene sostituita per intero come mappa. Le chiavi sono tag di lingua come `de` o `pt-BR`; al massimo 30 lingue. Rimuovi l'attributo per svuotarla.
- `sensitivity` è `normal` o `sensitive`; un'autorizzazione sensibile viene evidenziata nella schermata di consenso.
- Una riga di autorizzazione non ha versione, quindi l'API non offre un controllo `If-Match` per essa. Il provider legge la lista delle autorizzazioni dell'API a ogni plan, mostra come drift ogni modifica fatta altrove e invia solo i campi modificati.
- Rimuovere la risorsa elimina l'autorizzazione e la rimuove da ogni ruolo e dalle liste di autorizzazioni delle applicazioni. Il successivo refresh di quei ruoli mostra la modifica.
- L'API di sistema non accetta nuove autorizzazioni e le sue autorizzazioni non possono essere eliminate (`409 conflict`). Un'API contiene al massimo 1.000 autorizzazioni.
- Un'autorizzazione eliminata al di fuori del provider viene rimossa dallo state e pianificata di nuovo.

## Import

Importa tramite ID dell'API e ID dell'autorizzazione, oppure tramite ID dell'API e valore:

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