monitor_client/api/write/
repo.rs1use derive_empty_traits::EmptyTraits;
2use resolver_api::derive::Request;
3use serde::{Deserialize, Serialize};
4use typeshare::typeshare;
5
6use crate::entities::{
7 repo::{Repo, _PartialRepoConfig},
8 NoData,
9};
10
11use super::MonitorWriteRequest;
12
13#[typeshare]
17#[derive(
18 Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
19)]
20#[empty_traits(MonitorWriteRequest)]
21#[response(Repo)]
22pub struct CreateRepo {
23 pub name: String,
25 pub config: _PartialRepoConfig,
27}
28
29#[typeshare]
34#[derive(
35 Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
36)]
37#[empty_traits(MonitorWriteRequest)]
38#[response(Repo)]
39pub struct CopyRepo {
40 pub name: String,
42 pub id: String,
44}
45
46#[typeshare]
51#[derive(
52 Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
53)]
54#[empty_traits(MonitorWriteRequest)]
55#[response(Repo)]
56pub struct DeleteRepo {
57 pub id: String,
59}
60
61#[typeshare]
75#[derive(
76 Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
77)]
78#[empty_traits(MonitorWriteRequest)]
79#[response(Repo)]
80pub struct UpdateRepo {
81 pub id: String,
83 pub config: _PartialRepoConfig,
85}
86
87#[typeshare]
91#[derive(
92 Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
93)]
94#[empty_traits(MonitorWriteRequest)]
95#[response(NoData)]
96pub struct RefreshRepoCache {
97 pub repo: String,
99}
100
101#[typeshare]
104#[derive(Debug, Clone, Serialize, Deserialize)]
105pub enum RepoWebhookAction {
106 Clone,
107 Pull,
108 Build,
109}
110
111#[typeshare]
114#[derive(
115 Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
116)]
117#[empty_traits(MonitorWriteRequest)]
118#[response(CreateRepoWebhookResponse)]
119pub struct CreateRepoWebhook {
120 #[serde(alias = "id", alias = "name")]
122 pub repo: String,
123 pub action: RepoWebhookAction,
125}
126
127#[typeshare]
128pub type CreateRepoWebhookResponse = NoData;
129
130#[typeshare]
135#[derive(
136 Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
137)]
138#[empty_traits(MonitorWriteRequest)]
139#[response(DeleteRepoWebhookResponse)]
140pub struct DeleteRepoWebhook {
141 #[serde(alias = "id", alias = "name")]
143 pub repo: String,
144 pub action: RepoWebhookAction,
146}
147
148#[typeshare]
149pub type DeleteRepoWebhookResponse = NoData;