decthings_api/client/rpc/terminal/
request.rs1use crate::client::rpc::ExecutionLocationProvider;
2use serde::Serialize;
3
4#[derive(Debug, Clone, Serialize)]
5#[serde(rename_all = "camelCase")]
6pub struct FilesystemAccess<'a> {
7 pub model_id: &'a str,
8}
9
10#[derive(Debug, Clone, Serialize)]
11#[serde(rename_all = "camelCase")]
12pub struct TerminalOptions<'a> {
13 #[serde(skip_serializing_if = "Option::is_none")]
15 pub add_filesystem_access: Option<&'a [FilesystemAccess<'a>]>,
16 #[serde(skip_serializing_if = "Option::is_none")]
18 pub terminate_after_inactive_seconds: Option<u32>,
19 #[serde(skip_serializing_if = "Option::is_none")]
21 pub cols: Option<u16>,
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub rows: Option<u16>,
25}
26
27#[derive(Debug, Clone, Serialize)]
28#[serde(rename_all = "camelCase")]
29pub struct LaunchTerminalSessionParams<'a> {
30 pub model_id: &'a str,
32 pub execution_location: ExecutionLocationProvider<'a>,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub options: Option<TerminalOptions<'a>>,
36 #[cfg(feature = "events")]
38 #[serde(skip_serializing_if = "Option::is_none")]
39 pub subscribe_to_events: Option<bool>,
40}
41
42#[derive(Debug, Clone, Serialize)]
43#[serde(rename_all = "camelCase")]
44pub struct TerminateTerminalSessionParams<'a> {
45 pub terminal_session_id: &'a str,
47}
48
49#[derive(Debug, Clone, Serialize)]
50#[serde(rename_all = "camelCase")]
51pub struct GetTerminalSessionsParams<'a, S: AsRef<str>> {
52 #[serde(serialize_with = "super::super::serialize_option_asref_str_seq")]
54 #[serde(skip_serializing_if = "Option::is_none")]
55 pub terminal_session_ids: Option<&'a [S]>,
56}
57
58#[derive(Debug, Clone, Serialize)]
59#[serde(rename_all = "camelCase")]
60pub struct WriteToTerminalSessionParams<'a, T: AsRef<[u8]>> {
61 pub terminal_session_id: &'a str,
63 #[serde(skip_serializing)]
64 pub data: T,
65}
66
67#[derive(Debug, Clone, Serialize)]
68#[serde(rename_all = "camelCase")]
69pub struct TerminalSessionSize {
70 pub cols: u16,
71 pub rows: u16,
72}
73
74#[derive(Debug, Clone, Serialize)]
75#[serde(rename_all = "camelCase")]
76pub struct ResizeTerminalSessionParams<'a> {
77 pub terminal_session_id: &'a str,
79 pub size: TerminalSessionSize,
81}
82
83#[derive(Debug, Clone, Serialize)]
84#[serde(rename_all = "camelCase")]
85pub struct AddFilesystemAccessForTerminalSessionParams<'a> {
86 pub terminal_session_id: &'a str,
88 pub model_id: &'a str,
90}
91
92#[cfg(feature = "events")]
93#[derive(Debug, Clone, Serialize)]
94#[serde(rename_all = "camelCase")]
95pub struct TerminalSubscribeToEventsParams<'a> {
96 pub terminal_session_id: &'a str,
98}
99
100#[cfg(feature = "events")]
101#[derive(Debug, Clone, Serialize)]
102#[serde(rename_all = "camelCase")]
103pub struct TerminalUnsubscribeFromEventsParams<'a> {
104 pub terminal_session_id: &'a str,
106}