
# Kullanımdan kaldırma kullanım raporu

`GET /v1/reports/deprecation-usage` · izin `reports:read`

Kaldırılması planlanan işlemleri hâlâ çağıran istemcilerinizi gösterir; böylece kullanımdan kaldırma tarihinden önce bunları taşıyabilirsiniz (bkz. [sürümleme politikası](/docs/policies/versioning)). Çağrılar UTC gününe göre sayılır ve kullanımdan kaldırma, istemci ve SDK sürümüne göre gruplanır. Hiçbir işlem kullanımdan kaldırılmamışsa rapor boştur.

Ortam her zaman API anahtarından gelir; ortam parametresi yoktur. Satırlarda IP adresi, `User-Agent` veya son kullanıcı tanımlayıcısı bulunmaz.

## İstek

| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
| `from` | query | hayır | Dahil edilecek ilk gün, tam tarih (`YYYY-MM-DD`, UTC). Varsayılan, `to` tarihinden 30 gün öncesidir. Planınızın rapor geçmişiyle sınırlıdır (aşağıya bakın). |
| `to` | query | hayır | Dahil edilecek son gün, tam tarih (`YYYY-MM-DD`, UTC). Varsayılan bugündür. `from`, `to` tarihinden sonra olamaz. |
| `limit` | query | hayır | Sayfa boyutu, 1 ile 100 arası. Varsayılan 50. |
| `cursor` | query | hayır | Önceki sayfanın `next_cursor` değeri. Yalnızca verildiği ortam, `from` ve `to` için geçerlidir. |

Satırlar `deprecation_id`, `client_id`, `sdk_package`, `sdk_version` sırasına göre sıralanır. Aralığın her iki ucu da dahildir. Varsayılan aralıktan (`from`/`to` gönderilmeden) alınan bir imleç, UTC günü değiştiğinde geçersiz olur; sayfalama yaparken `from` ve `to` değerlerini açıkça gönderin.

### Plana göre rapor geçmişi

| Plan | Geçmiş |
|---|---|
| Free | 30 gün |
| Startup, Business | 13 ay |
| Enterprise | 25 ay, en fazla 400 gün |

Rapor tablosu 400 gün tutulur; bu nedenle hiçbir plan 400 günden daha geriye gidemez. İzin verilen geçmişten daha eski bir `from` değeri `422 report_range_exceeds_plan` ile başarısız olur; izin verilen en erken tarih mesajda ve `errors[0].detail` alanında (`earliest_allowed_date=YYYY-MM-DD`) yer alır.

## Yanıt

`200 OK`. `data` sayfadaki satırları içerir; son sayfada `next_cursor` değeri `null` olur.

| Alan | Açıklama |
|---|---|
| `deprecation_id` | Kullanımdan kaldırma kayıt defterindeki kimlik (`dep-YYYY-NN`). |
| `client_id` | Yönetim API anahtarı için `key_…`, yönetim OAuth istemcisi için `app_…`, kontrol paneli için `dashboard`. |
| `sdk_package` | `Idp-Client` başlığındaki SDK paketi; katalog dışındaki bir paket için `other`, başlık yoksa `none`. |
| `sdk_version` | SemVer sürümü veya boş metin. |
| `call_count` | Aralıktaki çağrı sayısı. |
| `last_seen_at` | Aralıktaki son çağrı (RFC 3339, UTC). |
| `sunset_at` | Kullanımdan kaldırma kayıt defterindeki kaldırma tarihi (`YYYY-MM-DD`); bilinmiyorsa `null`. Bu günden sonra işlem `410 endpoint_sunset` yanıtı verir. |

```json
{
  "data": [
    {
      "deprecation_id": "dep-2027-01",
      "client_id": "key_01j9xk3m7q8r2s4t6v8w0y2z4d",
      "sdk_package": "keenauth-go",
      "sdk_version": "1.4.0",
      "call_count": 1280,
      "last_seen_at": "2027-03-02T09:30:00Z",
      "sunset_at": "2028-01-17"
    }
  ],
  "next_cursor": null
}
```

### CSV

Aynı sütunları başlık satırıyla birlikte CSV (RFC 4180) olarak almak için `Accept: text/csv` gönderin. `=`, `+`, `-`, `@`, sekme veya satır başı karakteriyle başlayan metin hücreleri, elektronik tablo programlarının bunları formül olarak çalıştırmaması için başına tek tırnak eklenerek yazılır. Sonraki sayfanın imleci `Link` başlığında (`rel="next"`) yer alır; aralık o bağlantıda açıkça belirtilir.

```text
deprecation_id,client_id,sdk_package,sdk_version,call_count,last_seen_at,sunset_at
dep-2027-01,key_01j9xk3m7q8r2s4t6v8w0y2z4d,keenauth-go,1.4.0,1280,2027-03-02T09:30:00Z,2028-01-17
```

## Notlar

Sayımlar dakika bazında toplanır ve rapora eşzamansız olarak yazılır; bu nedenle en yeni çağrıların görünmesi birkaç dakika sürebilir. Bir çökme, 60 saniyeye kadar sayımın kaybolmasına yol açabilir. Rapor faturalandırma girdisi değildir.

## Hatalar

Her hata, kararlı bir `code` içeren bir `application/problem+json` gövdesidir.

| HTTP | `code` | Ne zaman |
|---|---|---|
| 400 | `invalid_filter` | `from` veya `to` bir `YYYY-MM-DD` tarihi değil, bir tarih tekrarlanmış veya `from`, `to` tarihinden sonra. |
| 400 | `invalid_cursor` | İmleç bozuk veya bu ortam ve aralık için verilmemiş. |
| 422 | `report_range_exceeds_plan` | `from`, planınızın rapor geçmişinden daha eski. |
| 422 | `validation_failed` | `limit` aralık dışında veya bir parametre tekrarlanmış. |
| 401 | `unauthenticated` | API anahtarı eksik, geçersiz veya iptal edilmiş. |
| 403 | `insufficient_permissions` | Anahtarda `reports:read` izni yok. |
| 429 | `rate_limited` | Hız sınırı aşıldı; `Retry-After` değerine uyun. |
| 503 | `service_unavailable` | Raporlama servisi geçici olarak kullanılamıyor; daha sonra tekrar deneyin. |

## Örnek

```bash
curl "https://api.eu.keenauth.com/v1/reports/deprecation-usage?from=2027-03-01&to=2027-03-31" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth reports deprecation-usage --from 2027-03-01 --to 2027-03-31
keenauth reports deprecation-usage --format csv > deprecation-usage.csv
```
