use derive_empty_traits::EmptyTraits;
use resolver_api::derive::Request;
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
use crate::entities::{
stack::{
Stack, StackActionState, StackListItem, StackQuery, StackService,
},
update::Log,
SearchCombinator, U64,
};
use super::MonitorReadRequest;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetStackResponse)]
pub struct GetStack {
#[serde(alias = "id", alias = "name")]
pub stack: String,
}
#[typeshare]
pub type GetStackResponse = Stack;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ListStackServicesResponse)]
pub struct ListStackServices {
#[serde(alias = "id", alias = "name")]
pub stack: String,
}
#[typeshare]
pub type ListStackServicesResponse = Vec<StackService>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetStackServiceLogResponse)]
pub struct GetStackServiceLog {
#[serde(alias = "id", alias = "name")]
pub stack: String,
pub service: String,
#[serde(default = "default_tail")]
pub tail: U64,
}
fn default_tail() -> u64 {
50
}
#[typeshare]
pub type GetStackServiceLogResponse = Log;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(SearchStackServiceLogResponse)]
pub struct SearchStackServiceLog {
#[serde(alias = "id", alias = "name")]
pub stack: String,
pub service: String,
pub terms: Vec<String>,
#[serde(default)]
pub combinator: SearchCombinator,
#[serde(default)]
pub invert: bool,
}
#[typeshare]
pub type SearchStackServiceLogResponse = Log;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ListCommonStackExtraArgsResponse)]
pub struct ListCommonStackExtraArgs {
#[serde(default)]
pub query: StackQuery,
}
#[typeshare]
pub type ListCommonStackExtraArgsResponse = Vec<String>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Default, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ListStacksResponse)]
pub struct ListStacks {
#[serde(default)]
pub query: StackQuery,
}
#[typeshare]
pub type ListStacksResponse = Vec<StackListItem>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Default, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ListFullStacksResponse)]
pub struct ListFullStacks {
#[serde(default)]
pub query: StackQuery,
}
#[typeshare]
pub type ListFullStacksResponse = Vec<Stack>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetStackActionStateResponse)]
pub struct GetStackActionState {
#[serde(alias = "id", alias = "name")]
pub stack: String,
}
#[typeshare]
pub type GetStackActionStateResponse = StackActionState;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetStacksSummaryResponse)]
pub struct GetStacksSummary {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct GetStacksSummaryResponse {
pub total: u32,
pub running: u32,
pub paused: u32,
pub stopped: u32,
pub restarting: u32,
pub dead: u32,
pub created: u32,
pub removing: u32,
pub unhealthy: u32,
pub down: u32,
pub unknown: u32,
}
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetStackWebhooksEnabledResponse)]
pub struct GetStackWebhooksEnabled {
#[serde(alias = "id", alias = "name")]
pub stack: String,
}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct GetStackWebhooksEnabledResponse {
pub managed: bool,
pub refresh_enabled: bool,
pub deploy_enabled: bool,
}