windmill_api/models/
workspace_item_diff.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct WorkspaceItemDiff {
16 #[serde(rename = "kind")]
18 pub kind: Kind,
19 #[serde(rename = "path")]
21 pub path: String,
22 #[serde(rename = "ahead")]
24 pub ahead: i32,
25 #[serde(rename = "behind")]
27 pub behind: i32,
28 #[serde(rename = "has_changes")]
30 pub has_changes: bool,
31 #[serde(rename = "exists_in_source")]
33 pub exists_in_source: bool,
34 #[serde(rename = "exists_in_fork")]
36 pub exists_in_fork: bool,
37 #[serde(rename = "fork_last_event_kind", skip_serializing_if = "Option::is_none")]
38 pub fork_last_event_kind: Option<models::DeployEventKind>,
39 #[serde(rename = "fork_last_event_origin", skip_serializing_if = "Option::is_none")]
40 pub fork_last_event_origin: Option<models::DeployEventOrigin>,
41 #[serde(rename = "source_last_event_kind", skip_serializing_if = "Option::is_none")]
42 pub source_last_event_kind: Option<models::DeployEventKind>,
43 #[serde(rename = "source_last_event_origin", skip_serializing_if = "Option::is_none")]
44 pub source_last_event_origin: Option<models::DeployEventOrigin>,
45}
46
47impl WorkspaceItemDiff {
48 pub fn new(kind: Kind, path: String, ahead: i32, behind: i32, has_changes: bool, exists_in_source: bool, exists_in_fork: bool) -> WorkspaceItemDiff {
49 WorkspaceItemDiff {
50 kind,
51 path,
52 ahead,
53 behind,
54 has_changes,
55 exists_in_source,
56 exists_in_fork,
57 fork_last_event_kind: None,
58 fork_last_event_origin: None,
59 source_last_event_kind: None,
60 source_last_event_origin: None,
61 }
62 }
63}
64#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
66pub enum Kind {
67 #[serde(rename = "script")]
68 Script,
69 #[serde(rename = "flow")]
70 Flow,
71 #[serde(rename = "app")]
72 App,
73 #[serde(rename = "raw_app")]
74 RawApp,
75 #[serde(rename = "resource")]
76 Resource,
77 #[serde(rename = "variable")]
78 Variable,
79 #[serde(rename = "resource_type")]
80 ResourceType,
81 #[serde(rename = "folder")]
82 Folder,
83 #[serde(rename = "schedule")]
84 Schedule,
85 #[serde(rename = "http_trigger")]
86 HttpTrigger,
87 #[serde(rename = "websocket_trigger")]
88 WebsocketTrigger,
89 #[serde(rename = "kafka_trigger")]
90 KafkaTrigger,
91 #[serde(rename = "nats_trigger")]
92 NatsTrigger,
93 #[serde(rename = "postgres_trigger")]
94 PostgresTrigger,
95 #[serde(rename = "mqtt_trigger")]
96 MqttTrigger,
97 #[serde(rename = "amqp_trigger")]
98 AmqpTrigger,
99 #[serde(rename = "sqs_trigger")]
100 SqsTrigger,
101 #[serde(rename = "gcp_trigger")]
102 GcpTrigger,
103 #[serde(rename = "azure_trigger")]
104 AzureTrigger,
105 #[serde(rename = "email_trigger")]
106 EmailTrigger,
107}
108
109impl Default for Kind {
110 fn default() -> Kind {
111 Self::Script
112 }
113}
114