wist_api/lib.rs
1//! Cross-process **agent-seam** messages for the `wist` control plane (gateway ↔ agentd).
2//!
3//! A *seam* is a runtime coupling point between two independently deployed processes
4//! (`{route, request body, response body, owner, compat, api_version}`). This crate owns the
5//! **wire messages** of the agent-facing seams so gateway and agentd `use` a single definition
6//! instead of keeping a copy each. (The center-facing seams — `gateway/register`,
7//! `gateway/status`, … — are generated into `wist-control`, not owned here.)
8//!
9//! Each module is one **seam topic** and maps to a route: `enrollment` (`agent/enroll`,
10//! `agent/credentials:renew`), `status` (`agent/status`), `uplink` (`agent/uplink:poll`),
11//! `work` (`agent/work:*`), `action_plan` (`agent/action-plan`), `action_result`
12//! (`agent/action-results`), `facts` (`agent/facts`), `discovery_policies`
13//! (`agent/discovery-policies:poll`).
14//!
15//! Seam messages reference **domain types** that are shared by more than one seam
16//! (`HostProfile`, `CredentialBundle`, `AgentIdentity`, …). Those live in `wist-contracts`
17//! — the common base of every participant — and are re-exported here so callers can pull a
18//! whole seam from one place. `wist-contracts` keeps data-plane / internal objects only.
19
20pub mod action_plan;
21pub mod action_result;
22pub mod discovery_policies;
23pub mod enrollment;
24pub mod facts;
25pub mod status;
26pub mod uplink;
27pub mod work;