use serde::Serialize;
use crate::rpc::ExecutionLocation;
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct FilesystemAccess<'a> {
pub model_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalOptions<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub add_filesystem_access: Option<&'a [FilesystemAccess<'a>]>,
#[serde(skip_serializing_if = "Option::is_none")]
pub terminate_after_inactive_seconds: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cols: Option<u16>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rows: Option<u16>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct LaunchTerminalSessionParams<'a> {
pub model_id: &'a str,
pub execution_location: ExecutionLocation,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<TerminalOptions<'a>>,
#[cfg(feature = "events")]
#[serde(skip_serializing_if = "Option::is_none")]
pub subscribe_to_events: Option<bool>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminateTerminalSessionParams<'a> {
pub terminal_session_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetTerminalSessionsParams<'a, S: AsRef<str>> {
#[serde(skip_serializing_if = "Option::is_none")]
pub terminal_session_ids: Option<&'a [S]>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct WriteToTerminalSessionParams<'a, T: AsRef<[u8]>> {
pub terminal_session_id: &'a str,
#[serde(skip_serializing)]
pub data: T,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalSessionSize {
pub cols: u16,
pub rows: u16,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ResizeTerminalSessionParams<'a> {
pub terminal_session_id: &'a str,
pub size: TerminalSessionSize,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct AddFilesystemAccessForTerminalSessionParams<'a> {
pub terminal_session_id: &'a str,
pub model_id: &'a str,
}
#[cfg(feature = "events")]
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalSubscribeToEventsParams<'a> {
pub terminal_session_id: &'a str,
}
#[cfg(feature = "events")]
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminalUnsubscribeFromEventsParams<'a> {
pub terminal_session_id: &'a str,
}