
# keenauth_permission

El recurso `keenauth_permission` define un permiso (un ámbito de OAuth) de una API, con los textos que muestra la pantalla de consentimiento. El proveedor no gestiona la API en sí: pase el ID de una API existente como `api_id`. Incluya el permiso en un rol 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 de vida

- `value` tiene la forma `resource:action` y aparece en la claim `permissions` de los tokens de acceso. Es único en la API y no puede cambiarse: un nuevo valor reemplaza el permiso. El prefijo `idp_` pertenece a la API del sistema.
- `display_name`, `description` y los textos de `consent_text_i18n` son texto plano: sin caracteres de control, sin separadores de línea o de párrafo, sin caracteres de anulación bidireccional y, para `display_name` y `description`, sin espacios al principio ni al final (la API recorta esos dos). Un texto de `consent_text_i18n` se guarda tal como se escribe, pero no puede estar en blanco. Un texto vacío no está permitido; en su lugar, elimine el atributo.
- `consent_text_i18n` se reemplaza completo como mapa. Las claves son etiquetas de idioma como `de` o `pt-BR`; hasta 30 idiomas. Elimine el atributo para vaciarlo.
- `sensitivity` es `normal` o `sensitive`; un permiso sensible se resalta en la pantalla de consentimiento.
- Una fila de permiso no tiene versión, por lo que la API no ofrece una comprobación `If-Match` para ella. El proveedor lee la lista de permisos de la API en cada plan, muestra cualquier cambio hecho en otro lugar como desviación y envía solo los campos modificados.
- Eliminar el recurso borra el permiso y lo quita de todos los roles y de las listas de permisos de las aplicaciones. La siguiente actualización de esos roles muestra el cambio.
- La API del sistema no acepta permisos nuevos y sus permisos no pueden eliminarse (`409 conflict`). Una API tiene como máximo 1000 permisos.
- Un permiso eliminado fuera del proveedor se quita del estado y se vuelve a planificar.

## Importación

Importe por ID de API e ID de permiso, o por ID de API y valor:

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