use derive_empty_traits::EmptyTraits;
use resolver_api::{derive::Request, HasResponse};
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
mod alert;
mod alerter;
mod build;
mod builder;
mod deployment;
mod permission;
mod procedure;
mod provider;
mod repo;
mod search;
mod server;
mod server_template;
mod stack;
mod sync;
mod tag;
mod toml;
mod update;
mod user;
mod user_group;
mod variable;
pub use alert::*;
pub use alerter::*;
pub use build::*;
pub use builder::*;
pub use deployment::*;
pub use permission::*;
pub use procedure::*;
pub use provider::*;
pub use repo::*;
pub use search::*;
pub use server::*;
pub use server_template::*;
pub use stack::*;
pub use sync::*;
pub use tag::*;
pub use toml::*;
pub use update::*;
pub use user::*;
pub use user_group::*;
pub use variable::*;
use crate::entities::{
config::{DockerRegistry, GitProvider},
update::ResourceTarget,
Timelength,
};
pub trait MonitorReadRequest: HasResponse {}
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetVersionResponse)]
pub struct GetVersion {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct GetVersionResponse {
pub version: String,
}
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(GetCoreInfoResponse)]
pub struct GetCoreInfo {}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct GetCoreInfoResponse {
pub title: String,
pub monitoring_interval: Timelength,
pub webhook_base_url: String,
pub transparent_mode: bool,
pub ui_write_disabled: bool,
pub github_webhook_owners: Vec<String>,
}
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ListGitProvidersFromConfigResponse)]
pub struct ListGitProvidersFromConfig {
pub target: Option<ResourceTarget>,
}
#[typeshare]
pub type ListGitProvidersFromConfigResponse = Vec<GitProvider>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ListDockerRegistriesFromConfigResponse)]
pub struct ListDockerRegistriesFromConfig {
pub target: Option<ResourceTarget>,
}
#[typeshare]
pub type ListDockerRegistriesFromConfigResponse = Vec<DockerRegistry>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ListAwsEcrLabelsResponse)]
pub struct ListAwsEcrLabels {}
#[typeshare]
pub type ListAwsEcrLabelsResponse = Vec<String>;
#[typeshare]
#[derive(
Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
)]
#[empty_traits(MonitorReadRequest)]
#[response(ListSecretsResponse)]
pub struct ListSecrets {
pub target: Option<ResourceTarget>,
}
#[typeshare]
pub type ListSecretsResponse = Vec<String>;