
# keenauth_role

`keenauth_role` kaynağı, ortamın bir rolünü ve bu role ait tam izin kümesini yönetir. Tek bir kuruluşa ait olan rol ise farklı bir kaynaktır: `keenauth_organization_role`. `keenauth_role` veri kaynağı, bir rolü `id` veya `key` ile okur.

```terraform
resource "keenauth_permission" "invoices_read" {
  api_id = "api_01j9zq3v8c5m2x7k4t6r1n0b3d"
  value  = "invoices:read"
}

resource "keenauth_role" "billing" {
  key         = "billing"
  name        = "Billing"
  description = "Invoices and payment methods."

  permission_ids = [keenauth_permission.invoices_read.id]
}

data "keenauth_role" "billing" {
  key = "billing"
}
```

## Yaşam döngüsü

- `key` ortamda benzersizdir, `org_roles` talebinde görünür ve değiştirilemez: yeni bir anahtar rolün yerini alır.
- `name` 1 ile 128 karakter arasında, `description` en fazla 1024 karakter olabilir. API bu değerleri kırptığı için ikisi de boşlukla başlayamaz veya boşlukla bitemez.
- `permission_ids` tam kümedir (en fazla 500). Rol alanlarından sonra ayrı bir istekle yazılır; oluşturma sırasında bu istek başarısız olursa rol, işaretlenmiş (tainted) olarak durumda kalır ve bir sonraki uygulamada yeniden oluşturulur. Başka bir yerde eklenen veya kaldırılan bir izin, bir sonraki uygulamada geri alınır.
- `is_privileged` bir rolü ayrıcalıklı olarak işaretler. Self-service ortamda bunu yalnızca kuruluş yönetici rolüne sahip bir yönetici atayabilir; bu role eşlenen harici bir grubun ise `roles:write` yetkisine ve bir onaya ihtiyacı vardır. Mevcut bir rolü ayrıcalıklı yapmak, grup eşlemelerini onaylanana kadar onaysız bırakır. Varsayılan değer `false`'tur; ayrıcalıklı bir rolü içe aktardığınızda `is_privileged = true` değerini açıkça yazın, aksi halde bir sonraki uygulama rolü ayrıcalıksız hale getirir.
- Güncellemeler ve silmeler, son okunan ETag ile birlikte `If-Match` gönderir. Plan oluşturulduktan sonra rol değiştiyse API `412` yanıtı verir ve hiçbir şey değişmez; `plan` komutunu yeniden çalıştırın.
- `force_destroy = true` ile atanmış bir rol de silinir ve atamaları aynı istekte kaldırılır; aksi halde atanmış bir rolü silmek `409 role_in_use` hatasıyla başarısız olur. Bir kuruluşun yönetici veya varsayılan üye rolü olarak kullanılan bir rol hiç silinemez. Yalnızca `force_destroy` değiştirildiğinde istek gönderilmez.
- Rollerin kullanıcılara ve üyeliklere atamaları kaynak değildir. Bunlar kişisel veridir ve hiçbir zaman durumda (state) tutulmaz; bunları API, CLI veya kontrol paneli ile yönetin.

## İçe aktarma

Anahtarla veya kimlikle içe aktarın:

```shell
tofu import keenauth_role.billing billing
tofu import keenauth_role.billing rol_01j9zq3v8c5m2x7k4t6r1n0b3d
```
