mod apply;
mod resources;
mod validate;
use axum::{
routing::{get, post},
Router,
};
use crate::AppState;
pub fn api_routes() -> Router<AppState> {
Router::new()
.route("/validate", post(validate::validate))
.route(
"/namespaces/:namespace/:resource",
get(resources::list).post(resources::create),
)
.route(
"/namespaces/:namespace/:resource/:name",
get(resources::get_one)
.put(resources::replace)
.delete(resources::delete),
)
.route(
"/namespaces/:namespace/:resource/:name/status",
put(resources::update_status),
)
.route("/namespaces/:namespace/apply", post(apply::apply))
.route(
"/namespaces/:namespace/:resource/watch",
get(resources::watch),
)
.route(
"/namespaces/:namespace/plans/:name/graph",
get(resources::get_plan_graph),
)
.route(
"/namespaces",
get(resources::list_namespaces).post(resources::create_namespace),
)
.route(
"/namespaces/:name",
get(resources::get_namespace).delete(resources::delete_namespace),
)
.route("/:resource", get(resources::list_all))
}
use axum::routing::put;