Skip to main content

uarp_sdk/generated/api/
acp.rs

1// Code generated by @uarp/codegen from spec/openapi.json. DO NOT EDIT.
2//!
3//! Agent Communication Protocol bridge sessions
4
5#![allow(unused_imports, clippy::too_many_arguments)]
6
7use reqwest::Method;
8use serde::{Deserialize, Serialize};
9
10use crate::client::{Client, Request, NO_BODY, NO_QUERY};
11use crate::error::Result;
12use crate::generated::models;
13use crate::multipart::{field_text, FilePart};
14use crate::sse::EventStream;
15use crate::util::encode_path;
16
17/// Agent Communication Protocol bridge sessions
18#[derive(Debug, Clone)]
19pub struct ACPApi {
20    pub(crate) client: Client,
21}
22
23impl Client {
24    /// Agent Communication Protocol bridge sessions
25    pub fn acp(&self) -> ACPApi {
26        ACPApi { client: self.clone() }
27    }
28}
29
30impl ACPApi {
31    /// Get ACP session state and events (SSE)
32    ///
33    /// `GET /api/v1/acp/session/{sessionId}`
34    ///
35    /// Returns a server-sent event stream.
36    pub fn get_acp_session(&self, session_id: &str) -> EventStream {
37        self.client.request_stream(
38            &format!("/api/v1/acp/session/{}", encode_path(session_id)),
39            NO_QUERY,
40            Vec::new(),
41        )
42    }
43
44    /// Send message / update ACP session
45    ///
46    /// `PUT /api/v1/acp/session/{sessionId}`
47    pub async fn update_acp_session(&self, session_id: &str, body: &serde_json::Map<String, serde_json::Value>) -> Result<serde_json::Value> {
48        self.client
49            .request_json(Request {
50                method: Method::PUT,
51                path: format!("/api/v1/acp/session/{}", encode_path(session_id)),
52                query: NO_QUERY,
53                body: Some(body),
54                headers: Vec::new(),
55                idempotent: true,
56            })
57            .await
58    }
59}