use derive_empty_traits::EmptyTraits;
use resolver_api::derive::Request;
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
use crate::entities::{
deployment::ContainerSummary,
server::{
docker_image::ImageSummary,
docker_network::DockerNetwork,
stats::{
SystemInformation, SystemProcess, SystemStats,
SystemStatsRecord,
},
Server, ServerActionState, ServerListItem, ServerQuery,
ServerState,
},
Timelength, I64,
};
use super::MonitorReadRequest;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(Server)]
pub struct GetServer {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
pub type GetServerResponse = Server;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Default, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ListServersResponse)]
pub struct ListServers {
#[serde(default)]
pub query: ServerQuery,
}
#[typeshare]
pub type ListServersResponse = Vec<ServerListItem>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetServerStateResponse)]
pub struct GetServerState {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct GetServerStateResponse {
pub status: ServerState,
}
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ServerActionState)]
pub struct GetServerActionState {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
pub type GetServerActionStateResponse = ServerActionState;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetPeripheryVersionResponse)]
pub struct GetPeripheryVersion {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct GetPeripheryVersionResponse {
pub version: String,
}
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetDockerNetworksResponse)]
pub struct GetDockerNetworks {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
pub type GetDockerNetworksResponse = Vec<DockerNetwork>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetDockerImagesResponse)]
pub struct GetDockerImages {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
pub type GetDockerImagesResponse = Vec<ImageSummary>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetDockerContainersResponse)]
pub struct GetDockerContainers {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
pub type GetDockerContainersResponse = Vec<ContainerSummary>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetSystemInformationResponse)]
pub struct GetSystemInformation {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
pub type GetSystemInformationResponse = SystemInformation;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetSystemStatsResponse)]
pub struct GetSystemStats {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
pub type GetSystemStatsResponse = SystemStats;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetSystemProcessesResponse)]
pub struct GetSystemProcesses {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
pub type GetSystemProcessesResponse = Vec<SystemProcess>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetHistoricalServerStatsResponse)]
pub struct GetHistoricalServerStats {
#[serde(alias = "id", alias = "name")]
pub server: String,
pub granularity: Timelength,
#[serde(default)]
pub page: u32,
}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct GetHistoricalServerStatsResponse {
pub stats: Vec<SystemStatsRecord>,
pub next_page: Option<u32>,
}
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetServersSummaryResponse)]
pub struct GetServersSummary {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct GetServersSummaryResponse {
pub total: I64,
pub healthy: I64,
pub unhealthy: I64,
pub disabled: I64,
}
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetAvailableAccountsResponse)]
pub struct GetAvailableAccounts {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct GetAvailableAccountsResponse {
pub github: Vec<String>,
pub docker: Vec<String>,
}
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetAvailableSecretsResponse)]
pub struct GetAvailableSecrets {
#[serde(alias = "id", alias = "name")]
pub server: String,
}
#[typeshare]
pub type GetAvailableSecretsResponse = Vec<String>;