use mogh_resolver::Resolve;
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
use crate::entities::{
NoData,
server::ServerQuery,
terminal::{
ContainerTerminalMode, Terminal, TerminalRecreateMode,
TerminalTarget,
},
};
use super::KomodoWriteRequest;
#[cfg(feature = "utoipa")]
#[utoipa::path(
post,
path = "/CreateTerminal",
description = "Create a Terminal.",
request_body(content = CreateTerminal),
responses(
(status = 200, description = "The created terminal", body = Terminal),
),
)]
pub fn create_terminal() {}
#[typeshare]
#[derive(Debug, Clone, Serialize, Deserialize, Resolve)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[empty_traits(KomodoWriteRequest)]
#[response(Terminal)]
#[error(mogh_error::Error)]
pub struct CreateTerminal {
pub name: Option<String>,
pub target: TerminalTarget,
pub command: Option<String>,
pub mode: Option<ContainerTerminalMode>,
#[serde(default)]
pub recreate: TerminalRecreateMode,
}
#[cfg(feature = "utoipa")]
#[utoipa::path(
post,
path = "/DeleteTerminal",
description = "Delete a terminal.",
request_body(content = DeleteTerminal),
responses(
(status = 200, description = "No data", body = NoData),
),
)]
pub fn delete_terminal() {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Resolve)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[empty_traits(KomodoWriteRequest)]
#[response(NoData)]
#[error(mogh_error::Error)]
pub struct DeleteTerminal {
pub target: TerminalTarget,
pub terminal: String,
}
#[cfg(feature = "utoipa")]
#[utoipa::path(
post,
path = "/DeleteAllTerminals",
description = "Delete all Terminals on the Server.",
request_body(content = DeleteAllTerminals),
responses(
(status = 200, description = "No data", body = NoData),
),
)]
pub fn delete_all_terminals() {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Resolve)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[empty_traits(KomodoWriteRequest)]
#[response(NoData)]
#[error(mogh_error::Error)]
pub struct DeleteAllTerminals {
pub server: String,
}
#[cfg(feature = "utoipa")]
#[utoipa::path(
post,
path = "/BatchDeleteAllTerminals",
description = "Delete all terminals on many or all Servers.",
request_body(content = BatchDeleteAllTerminals),
responses(
(status = 200, description = "No data", body = NoData),
),
)]
pub fn batch_delete_all_terminals() {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Resolve)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[empty_traits(KomodoWriteRequest)]
#[response(NoData)]
#[error(mogh_error::Error)]
pub struct BatchDeleteAllTerminals {
#[serde(default)]
pub query: ServerQuery,
}