use crate::server::route_catalog::{
RouteAudience, RouteAuth, RouteEntry, RouteGroupDefaults, RouteMethod, RouteRegistry,
RouteStability,
};
use crate::server::routes::common::{PUBLIC_SURFACES, STANDARD_MIDDLEWARE};
const LEFTOVERS_USER: RouteGroupDefaults = RouteGroupDefaults {
family: "leftovers",
audience: RouteAudience::Internal,
auth: RouteAuth::UserRequired,
surfaces: PUBLIC_SURFACES,
stability: RouteStability::Internal,
middlewares: STANDARD_MIDDLEWARE,
};
const LEFTOVER_ROUTES: &[RouteEntry] = &[
RouteEntry::new("root.index", RouteMethod::Get, "/"),
RouteEntry::new("config.export", RouteMethod::Get, "/config"),
RouteEntry::new("config.import", RouteMethod::Post, "/config"),
RouteEntry::new("config.key", RouteMethod::Any, "/config/*"),
RouteEntry::new("keyed.v1.kv", RouteMethod::Any, "/v1/kv/*"),
RouteEntry::new("keyed.v1.config", RouteMethod::Any, "/v1/config/*"),
RouteEntry::new("keyed.v1.vault", RouteMethod::Any, "/v1/vault/*"),
RouteEntry::new("kv.dynamic.kvs", RouteMethod::Any, "/collections/:collection/kvs/*"),
RouteEntry::new("kv.dynamic.kv", RouteMethod::Any, "/collections/:collection/kv/*"),
RouteEntry::new("logs.dynamic", RouteMethod::Any, "/logs/:name/:action"),
RouteEntry::new("indexes.action", RouteMethod::Any, "/indexes/:name/:action"),
RouteEntry::new("vectors.cluster", RouteMethod::Post, "/vectors/cluster"),
RouteEntry::new("serverless.attach", RouteMethod::Post, "/serverless/attach"),
RouteEntry::new("serverless.warmup", RouteMethod::Post, "/serverless/warmup"),
RouteEntry::new("serverless.reclaim", RouteMethod::Post, "/serverless/reclaim"),
RouteEntry::new("serverless.tick", RouteMethod::Post, "/tick"),
RouteEntry::new(
"physical.native_vector_artifacts.by_collection",
RouteMethod::Get,
"/physical/native-vector-artifacts/:collection",
),
RouteEntry::new(
"physical.native_vector_artifacts.by_collection.warmup",
RouteMethod::Post,
"/physical/native-vector-artifacts/:collection/warmup",
),
];
pub(crate) fn register(registry: &mut RouteRegistry) {
registry.routes(LEFTOVERS_USER, LEFTOVER_ROUTES);
}