use serde::{Deserialize, Serialize};
use utoipa::ToSchema;
#[derive(Debug, Serialize, Deserialize, ToSchema)]
pub struct PowerRequest {
pub action: PowerAction,
pub host_expression: String,
pub target_type: PowerTargetType,
#[serde(default)]
pub force: bool,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, ToSchema)]
#[serde(rename_all = "lowercase")]
pub enum PowerAction {
On,
Off,
Reset,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, ToSchema)]
#[serde(rename_all = "lowercase")]
pub enum PowerTargetType {
Nodes,
Cluster,
}
pub struct ApplyPowerParams {
pub action: PowerAction,
pub xnames: Vec<String>,
pub force: bool,
}