use serde::Serialize;
use crate::rpc::{ExecutionLocation, LauncherConfig};
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SpawnedCommandOptions<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub timeout_seconds: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timeout_after_inactive_seconds: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub launcher_config: Option<&'a LauncherConfig>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SpawnCommandParams<'a, S: AsRef<str>> {
pub execution_location: ExecutionLocation,
pub command: &'a str,
#[serde(serialize_with = "super::super::serialize_asref_str_seq")]
pub args: &'a [S],
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<SpawnedCommandOptions<'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 FilesystemAccess<'a> {
pub model_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
#[serde(bound(serialize = ""))]
pub struct SpawnCommandForModelParams<'a, S: AsRef<str>> {
pub model_id: &'a str,
pub execution_location: ExecutionLocation,
pub command: &'a str,
#[serde(serialize_with = "super::super::serialize_asref_str_seq")]
pub args: &'a [S],
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<SpawnedCommandOptions<'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 TerminateSpawnedCommandParams<'a> {
pub spawned_command_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetSpawnedCommandsParams<'a, S: AsRef<str>> {
#[serde(skip_serializing_if = "Option::is_none")]
pub spawned_command_ids: Option<&'a [S]>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct WriteToSpawnedCommandParams<'a, T: AsRef<[u8]>> {
pub spawned_command_id: &'a str,
#[serde(skip_serializing)]
pub data: T,
}
#[cfg(feature = "events")]
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SpawnedSubscribeToEventsParams<'a> {
pub spawned_command_id: &'a str,
}
#[cfg(feature = "events")]
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SpawnedUnsubscribeFromEventsParams<'a> {
pub spawned_command_id: &'a str,
}