pub struct ProgramsApi { /* private fields */ }Expand description
Program (curriculum) management
Implementations§
Source§impl ProgramsApi
impl ProgramsApi
Sourcepub async fn apply_program(
&self,
program_id: &str,
body: &ApplyProgramRequest,
) -> Result<ApplyProgramResponse>
pub async fn apply_program( &self, program_id: &str, body: &ApplyProgramRequest, ) -> Result<ApplyProgramResponse>
Apply program to session (create todos)
Materialises the program into a session as todos. session_id and start_date are required
and both must resolve — an unknown program, session or overriding agent_id is 404, an
unparseable start_date is 422. One todo is created per step, due at 09:00 on start_date
plus the step’s suggested_due_offset_days (falling back to the step’s index in days),
assigned to agent_id or the program’s default agent; each todo whose due time is still in
the future also gets a todo_schedule row so the scheduler fires it. Not idempotent —
applying the same program twice creates two full sets of todos. 201 with the created todos.
Requires the sessions write permission and the sessions:write scope.
POST /api/v1/programs/{programId}/apply
Required scopes: sessions:write.
Sourcepub async fn create(&self, body: &CreateProgramRequest) -> Result<Program>
pub async fn create(&self, body: &CreateProgramRequest) -> Result<Program>
Create a program (curriculum)
Creates a program: an ordered list of steps that POST /programs/{programId}/apply later
turns into session todos. name, agent_id and at least one step are required (422
otherwise); each step is given a server-minted step_id and an order_index defaulting to
its position in the array. The agent_id is stored as the program’s default assignee and is
not checked for existence here. Returns the stored program, 201. Requires the agents write
permission and the agents:write scope.
POST /api/v1/programs
Required scopes: agents:write.
Sourcepub async fn get(&self, program_id: &str) -> Result<Program>
pub async fn get(&self, program_id: &str) -> Result<Program>
Get program
Returns one program with its steps. 404 when the tenant has no such program. Requires the
agents read permission and the agents:read scope.
GET /api/v1/programs/{programId}
Required scopes: agents:read.
Sourcepub async fn list(&self) -> Result<ListProgramsResponse>
pub async fn list(&self) -> Result<ListProgramsResponse>
List programs
Lists the tenant’s programs (curricula) sorted by updated_at ascending. There is no paging
and no filter — the whole prefix is read in one call. Requires the agents read permission
and the agents:read scope.
GET /api/v1/programs
Required scopes: agents:read.