Üyeliği güncelle

PATCH /v1/organizations/{org_id}/memberships/{membership_id} · izin organizations:write

Üyeliğin role_ids (elle atanan rollerin tam kümesi) veya expires_at alanını JSON birleştirme yaması (Content-Type: application/merge-patch+json) ile değiştirir. İki alan aynı istekte birlikte değişebilir; tek bir işlemde uygulanırlar, bu yüzden ya ikisi de yazılır ya hiçbiri yazılmaz ve tek bir organization_membership.updated denetim kaydı oluşturulur. expires_at gelecekte olmalı ve üyelik oluşturulduktan sonra en fazla 365 gün sonrası olmalıdır; null bitiş tarihini kaldırır. role_ids: null etkisizdir. Rol kuralları PUT …/roles ile aynıdır. Mevcut değerine eşit bir alan yazılmaz. Yazma işlemi organization_membership.updated olarak denetlenir.

İstek

Alan Tür Zorunlu Açıklama
org_id path evet Kuruluş kimliği (org_…).
membership_id path evet Üyelik kimliği (mem_…).
If-Match header hayır Mevcut ETag; verilirse eşleşmesi gerekir (412) ve yazmayı o sürüme sabitler.
role_ids string[] hayır Elle atanan rol kimliklerinin (rol_…) tam kümesi, en fazla 50.
expires_at string | null hayır Üyeliğin sonu (RFC 3339); null kaldırır.

Yanıt

200 OK ile güncellenmiş üyelik ve ETag değeri.

{
  "id": "mem_01j9xn5p9s0t4v6w8x0y2z4a6c",
  "organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "user_id": "usr_01j9xh2k6p7q1r3s5t7v9w1x3y",
  "status": "active",
  "source": "admin_api",
  "reason": null,
  "roles": [
    {
      "role_id": "rol_01j9xr7s1t2w6x8y0z2a4b6c8e",
      "source": "admin_api",
      "assigned_at": "2026-10-12T09:31:00.123456Z"
    }
  ],
  "expires_at": "2027-01-01T00:00:00Z",
  "created_at": "2026-10-12T09:31:00.123456Z",
  "activated_at": "2026-10-12T09:31:00.123456Z",
  "suspended_at": null,
  "removed_at": null,
  "updated_at": "2026-10-12T10:00:00Z",
  "version": 2
}

Hatalar

HTTP code Ne zaman
404 not_found Üyelik bu Kuruluşta yok.
403 role_not_assignable Bir rol ortam rolü değil veya bu Kuruluşun rolü değil.
409 last_org_admin Değişiklik Kuruluşu etkin bir yöneticisiz bırakır.
412 precondition_failed If-Match mevcut sürümle eşleşmiyor.
415 unsupported_media_type Gövde application/merge-patch+json değil.
422 validation_failed expires_at aralık dışında veya üyelik silinmiş (invalid_state), ya da bir değer geçersiz.
401 unauthenticated Kimlik bilgisi eksik, geçersiz veya iptal edilmiş.
403 insufficient_permissions Kimlik bilgisinde gerekli izin yok. Ayrıcalıklı (is_privileged) bir rol atamak ayrıca roles:write gerektirir; bu olmadan hiçbir şey yazılmaz ve required_permissions iki izni de listeler.
429 rate_limited Hız sınırı aşıldı; Retry-After süresinden sonra yeniden deneyin.
503 service_unavailable Bir bağımlılık geçici olarak kullanılamıyor; Retry-After süresinden sonra yeniden deneyin.

Örnek

curl -i -X PATCH "https://api.eu.keenauth.com/v1/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/memberships/mem_01j9xn5p9s0t4v6w8x0y2z4a6c" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -d '{"expires_at":"2027-01-01T00:00:00Z"}'

Kişisel veriler

Bu uç nokta kişisel veri içerir: Kuruluş üyelikleri ve davetler. KeenAuth API'lerinde kişisel veriler neyin saklandığını, ne kadar süre tutulduğunu ve nasıl silindiğini açıklar. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.