1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
use axum::Router;
use crate::state::AppState;
pub mod ai;
pub mod anr;
pub mod auth;
pub mod backup;
pub mod camera_config;
pub mod cameras;
pub mod discovery;
pub mod health;
pub mod incidents;
pub mod liveview;
pub mod metrics;
pub mod modules;
pub mod onvif;
pub mod outbox;
pub mod playback;
pub mod playback_sessions;
pub mod recording_control;
pub mod recordings;
pub mod registry;
pub mod schedules;
pub mod snapshot_schedules;
pub mod system;
pub mod webhooks;
pub mod zones;
/// Assemble the kernel API router (absolute paths, mounted at root by the composing server). The
/// auth admin surface stays here for now; domain apps merge their own routers in
/// the server binary.
pub fn api_router() -> Router<AppState> {
Router::new()
.merge(system::router())
.merge(modules::router())
.merge(registry::router())
.merge(camera_config::router())
.merge(cameras::router())
.merge(recordings::router())
.merge(anr::router())
.merge(recording_control::router())
.merge(playback::router())
.merge(playback_sessions::router())
.merge(liveview::router())
.merge(health::router())
.merge(discovery::router())
.merge(ai::router())
.merge(zones::router())
.merge(schedules::router())
.merge(snapshot_schedules::router())
.merge(incidents::router())
.merge(backup::router())
.merge(onvif::router())
.merge(outbox::router())
.merge(webhooks::router())
.merge(auth::router())
}