use serde::{Deserialize, Serialize};
use utoipa::ToSchema;
#[derive(Debug, Deserialize, ToSchema)]
pub struct InternalScaleRequest {
pub service: String,
pub replicas: u32,
}
#[derive(Debug, Serialize, ToSchema)]
pub struct InternalScaleResponse {
pub success: bool,
pub service: String,
pub replicas: u32,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reroute_to_os: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
pub struct InternalAddPeerRequest {
pub wg_public_key: String,
pub overlay_ip: String,
pub endpoint: String,
}
#[derive(Debug, Serialize, ToSchema)]
pub struct InternalAddPeerResponse {
pub success: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, utoipa::ToSchema)]
#[serde(tag = "op", rename_all = "snake_case")]
pub enum SecretsRaftOp {
RegisterNode {
identity: crate::storage::NodeIdentity,
},
RevokeNode {
node_id: String,
},
RotateDek {
new_wraps: crate::storage::WrappedDek,
},
PutSecret {
secret: crate::storage::ReplicatedSecret,
},
DeleteSecret {
storage_key: String,
},
}