# SDK handler routes that are not listed in docs/api-inventory.csv.
#
# Tracked in #65 (non-spec routes audit). Each entry needs triage:
# either confirm the route exists and update the docs/inventory, or
# remove the handler if the route is fictional.
#
# The inventory script (`scripts/export_api_inventory.py`) only
# captures the top-level pages it can crawl from redis.io; many real
# Redis Enterprise endpoints live on deeper subpages or auxiliary
# pages that the script doesn't currently visit. That is the single
# biggest source of false positives here — most entries below probably
# ARE documented somewhere, just not in the captured inventory.
#
# Format: `METHOD /path/{}/segments` — one per line, matching the
# normalization performed in tests/route_coverage.rs.
#
# Updating this file:
#   - Remove an entry if the route is removed from the handler.
#   - Remove an entry if docs/api-inventory.csv now lists the route.
#   - Add a comment explaining the triage outcome where useful
#     (e.g. "internal-only", "documented at <URL>", "scheduled for
#     removal in #N").

# ============================================================================
# actions
# ============================================================================
DELETE /v1/actions/{}

# ============================================================================
# bdb_groups — entire CRUD module is non-inventory (see #65)
# ============================================================================
DELETE /v1/bdb_groups/{}
GET /v1/bdb_groups
GET /v1/bdb_groups/{}
POST /v1/bdb_groups
PUT /v1/bdb_groups/{}

# ============================================================================
# bdbs subresources — many real endpoints not in the inventory
# (stats, endpoints, proxies, alert_settings, flush, reset_admin_pass).
# ============================================================================
GET /v1/bdbs/metrics/{}
GET /v1/bdbs/{}/alert_settings
GET /v1/bdbs/{}/alerts
GET /v1/bdbs/{}/endpoints
GET /v1/bdbs/{}/proxies
GET /v1/bdbs/{}/stats
GET /v1/bdbs/{}/stats/last
PUT /v1/bdbs/{}/alert_settings
PUT /v1/bdbs/{}/flush
PUT /v1/bdbs/{}/reset_admin_pass

# ============================================================================
# bootstrap — full CRUD on /v1/bootstrap is real but only POST is in
# the captured inventory (and even that as the misspelled "boostrap").
# `create_cluster` is documented in src/cluster.rs:450 as a known
# inconsistency with the docs.
# ============================================================================
DELETE /v1/bootstrap
GET /v1/bootstrap
POST /v1/bootstrap
POST /v1/bootstrap/create_cluster
POST /v1/bootstrap/join

# ============================================================================
# cluster subresources — many real endpoints not captured by the
# inventory crawler (license, topology, settings, suffixes, etc.).
# ============================================================================
GET /v1/cluster/alert_settings
GET /v1/cluster/alert_settings/{}
GET /v1/cluster/license
GET /v1/cluster/settings
GET /v1/cluster/suffixes
GET /v1/cluster/topology
GET /v1/cluster/witness_disk
POST /v1/cluster/actions/recover
POST /v1/cluster/actions/reset
PUT /v1/cluster/alert_settings
PUT /v1/cluster/alert_settings/{}
PUT /v1/cluster/policy/restore_default

# ============================================================================
# cm_settings
# ============================================================================
DELETE /v1/cm_settings

# ============================================================================
# crdb_tasks / crdbs
# ============================================================================
POST /v1/crdb_tasks
GET /v1/crdbs/{}/tasks

# ============================================================================
# debuginfo — entire tree is deprecated as of 7.4.2 (see #65). The
# handler should eventually be `#[deprecated]`-tagged or removed.
# ============================================================================
DELETE /v1/debuginfo/{}
GET /v1/debuginfo
GET /v1/debuginfo/{}
GET /v1/debuginfo/{}/download
POST /v1/debuginfo

# ============================================================================
# diagnostics — extends beyond the single documented /v1/diagnostics
# entry (see #65).
# ============================================================================
GET /v1/diagnostics/checks
GET /v1/diagnostics/last
GET /v1/diagnostics/reports
GET /v1/diagnostics/reports/{}
POST /v1/diagnostics

# ============================================================================
# endpoints — `endpoints/stats` is in the inventory; the rest is
# extra SDK surface (see #65).
# ============================================================================
GET /v1/endpoints
GET /v1/endpoints/{}
GET /v1/endpoints/{}/stats

# ============================================================================
# job_scheduler — CRUD beyond the single `/v1/job_scheduler` GET in
# the inventory.
# ============================================================================
DELETE /v1/job_scheduler/{}
GET /v1/job_scheduler/{}
GET /v1/job_scheduler/{}/history
POST /v1/job_scheduler
POST /v1/job_scheduler/{}/trigger
PUT /v1/job_scheduler/{}

# ============================================================================
# license / migrations
# ============================================================================
GET /v1/license/usage
POST /v1/license/validate
DELETE /v1/migrations/{}
GET /v1/migrations
POST /v1/migrations
POST /v1/migrations/{}/pause
POST /v1/migrations/{}/resume
POST /v1/migrations/{}/start

# ============================================================================
# modules — handler covers both v1 and v2 CRUD; inventory mostly
# documents user-defined modules (already covered separately).
# ============================================================================
DELETE /v1/modules/{}
POST /v1/modules
POST /v2/modules
PUT /v1/modules/{}

# ============================================================================
# nodes subresources — stats, alerts, endpoints, proxies, shards,
# wd_status, snapshots. Most are real endpoints; inventory only has
# the top-level CRUD.
# ============================================================================
DELETE /v1/nodes/{}
GET /v1/nodes/wd_status
GET /v1/nodes/{}/alerts
GET /v1/nodes/{}/endpoints
GET /v1/nodes/{}/proxies
GET /v1/nodes/{}/shards
GET /v1/nodes/{}/stats
GET /v1/nodes/{}/stats/last
GET /v1/nodes/{}/wd_status
POST /v1/nodes/{}/snapshots/{}

# ============================================================================
# ocsp
# ============================================================================
DELETE /v1/ocsp/cache
POST /v1/ocsp/query

# ============================================================================
# proxies — stats subresources + reload action.
# ============================================================================
GET /v1/proxies/{}/stats
GET /v1/proxies/{}/stats/{}
POST /v1/proxies/{}/actions/reload

# ============================================================================
# redis_acls
# ============================================================================
POST /v1/redis_acls/validate

# ============================================================================
# roles
# ============================================================================
GET /v1/roles/{}/users
GET /v1/roles/builtin

# ============================================================================
# shards — stats subresources.
# ============================================================================
GET /v1/shards/{}/stats
GET /v1/shards/{}/stats/{}

# ============================================================================
# suffix
# ============================================================================
DELETE /v1/suffix/{}
POST /v1/suffix
PUT /v1/suffix/{}


# ============================================================================
# users — password mgmt + permissions; auth/refresh_jwt are in
# the inventory and covered.
# ============================================================================
DELETE /v1/users/password
GET /v1/users/permissions
GET /v1/users/permissions/{}
POST /v1/users/password
PUT /v1/users/password
