1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct AuditLog {
16 #[serde(rename = "id")]
17 pub id: i32,
18 #[serde(rename = "timestamp")]
19 pub timestamp: String,
20 #[serde(rename = "username")]
21 pub username: String,
22 #[serde(rename = "operation")]
23 pub operation: Operation,
24 #[serde(rename = "action_kind")]
25 pub action_kind: ActionKind,
26 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
27 pub resource: Option<String>,
28 #[serde(rename = "parameters", skip_serializing_if = "Option::is_none")]
29 pub parameters: Option<serde_json::Value>,
30}
31
32impl AuditLog {
33 pub fn new(id: i32, timestamp: String, username: String, operation: Operation, action_kind: ActionKind) -> AuditLog {
34 AuditLog {
35 id,
36 timestamp,
37 username,
38 operation,
39 action_kind,
40 resource: None,
41 parameters: None,
42 }
43 }
44}
45#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
47pub enum Operation {
48 #[serde(rename = "jobs.run")]
49 JobsPeriodRun,
50 #[serde(rename = "jobs.run.script")]
51 JobsPeriodRunPeriodScript,
52 #[serde(rename = "jobs.run.preview")]
53 JobsPeriodRunPeriodPreview,
54 #[serde(rename = "jobs.run.flow")]
55 JobsPeriodRunPeriodFlow,
56 #[serde(rename = "jobs.run.flow_preview")]
57 JobsPeriodRunPeriodFlowPreview,
58 #[serde(rename = "jobs.run.script_hub")]
59 JobsPeriodRunPeriodScriptHub,
60 #[serde(rename = "jobs.run.dependencies")]
61 JobsPeriodRunPeriodDependencies,
62 #[serde(rename = "jobs.run.identity")]
63 JobsPeriodRunPeriodIdentity,
64 #[serde(rename = "jobs.run.noop")]
65 JobsPeriodRunPeriodNoop,
66 #[serde(rename = "jobs.flow_dependencies")]
67 JobsPeriodFlowDependencies,
68 #[serde(rename = "jobs")]
69 Jobs,
70 #[serde(rename = "jobs.cancel")]
71 JobsPeriodCancel,
72 #[serde(rename = "jobs.force_cancel")]
73 JobsPeriodForceCancel,
74 #[serde(rename = "jobs.disapproval")]
75 JobsPeriodDisapproval,
76 #[serde(rename = "jobs.delete")]
77 JobsPeriodDelete,
78 #[serde(rename = "account.delete")]
79 AccountPeriodDelete,
80 #[serde(rename = "ai.request")]
81 AiPeriodRequest,
82 #[serde(rename = "resources.create")]
83 ResourcesPeriodCreate,
84 #[serde(rename = "resources.update")]
85 ResourcesPeriodUpdate,
86 #[serde(rename = "resources.delete")]
87 ResourcesPeriodDelete,
88 #[serde(rename = "resource_types.create")]
89 ResourceTypesPeriodCreate,
90 #[serde(rename = "resource_types.update")]
91 ResourceTypesPeriodUpdate,
92 #[serde(rename = "resource_types.delete")]
93 ResourceTypesPeriodDelete,
94 #[serde(rename = "schedule.create")]
95 SchedulePeriodCreate,
96 #[serde(rename = "schedule.setenabled")]
97 SchedulePeriodSetenabled,
98 #[serde(rename = "schedule.edit")]
99 SchedulePeriodEdit,
100 #[serde(rename = "schedule.delete")]
101 SchedulePeriodDelete,
102 #[serde(rename = "scripts.create")]
103 ScriptsPeriodCreate,
104 #[serde(rename = "scripts.update")]
105 ScriptsPeriodUpdate,
106 #[serde(rename = "scripts.archive")]
107 ScriptsPeriodArchive,
108 #[serde(rename = "scripts.delete")]
109 ScriptsPeriodDelete,
110 #[serde(rename = "users.create")]
111 UsersPeriodCreate,
112 #[serde(rename = "users.delete")]
113 UsersPeriodDelete,
114 #[serde(rename = "users.update")]
115 UsersPeriodUpdate,
116 #[serde(rename = "users.login")]
117 UsersPeriodLogin,
118 #[serde(rename = "users.login_failure")]
119 UsersPeriodLoginFailure,
120 #[serde(rename = "users.logout")]
121 UsersPeriodLogout,
122 #[serde(rename = "users.accept_invite")]
123 UsersPeriodAcceptInvite,
124 #[serde(rename = "users.decline_invite")]
125 UsersPeriodDeclineInvite,
126 #[serde(rename = "users.token.create")]
127 UsersPeriodTokenPeriodCreate,
128 #[serde(rename = "users.token.delete")]
129 UsersPeriodTokenPeriodDelete,
130 #[serde(rename = "users.add_to_workspace")]
131 UsersPeriodAddToWorkspace,
132 #[serde(rename = "users.add_global")]
133 UsersPeriodAddGlobal,
134 #[serde(rename = "users.setpassword")]
135 UsersPeriodSetpassword,
136 #[serde(rename = "users.impersonate")]
137 UsersPeriodImpersonate,
138 #[serde(rename = "users.leave_workspace")]
139 UsersPeriodLeaveWorkspace,
140 #[serde(rename = "oauth.login")]
141 OauthPeriodLogin,
142 #[serde(rename = "oauth.login_failure")]
143 OauthPeriodLoginFailure,
144 #[serde(rename = "oauth.signup")]
145 OauthPeriodSignup,
146 #[serde(rename = "variables.create")]
147 VariablesPeriodCreate,
148 #[serde(rename = "variables.delete")]
149 VariablesPeriodDelete,
150 #[serde(rename = "variables.update")]
151 VariablesPeriodUpdate,
152 #[serde(rename = "flows.create")]
153 FlowsPeriodCreate,
154 #[serde(rename = "flows.update")]
155 FlowsPeriodUpdate,
156 #[serde(rename = "flows.delete")]
157 FlowsPeriodDelete,
158 #[serde(rename = "flows.archive")]
159 FlowsPeriodArchive,
160 #[serde(rename = "apps.create")]
161 AppsPeriodCreate,
162 #[serde(rename = "apps.update")]
163 AppsPeriodUpdate,
164 #[serde(rename = "apps.delete")]
165 AppsPeriodDelete,
166 #[serde(rename = "folder.create")]
167 FolderPeriodCreate,
168 #[serde(rename = "folder.update")]
169 FolderPeriodUpdate,
170 #[serde(rename = "folder.delete")]
171 FolderPeriodDelete,
172 #[serde(rename = "folder.add_owner")]
173 FolderPeriodAddOwner,
174 #[serde(rename = "folder.remove_owner")]
175 FolderPeriodRemoveOwner,
176 #[serde(rename = "group.create")]
177 GroupPeriodCreate,
178 #[serde(rename = "group.delete")]
179 GroupPeriodDelete,
180 #[serde(rename = "group.edit")]
181 GroupPeriodEdit,
182 #[serde(rename = "group.adduser")]
183 GroupPeriodAdduser,
184 #[serde(rename = "group.removeuser")]
185 GroupPeriodRemoveuser,
186 #[serde(rename = "igroup.create")]
187 IgroupPeriodCreate,
188 #[serde(rename = "igroup.delete")]
189 IgroupPeriodDelete,
190 #[serde(rename = "igroup.adduser")]
191 IgroupPeriodAdduser,
192 #[serde(rename = "igroup.removeuser")]
193 IgroupPeriodRemoveuser,
194 #[serde(rename = "variables.decrypt_secret")]
195 VariablesPeriodDecryptSecret,
196 #[serde(rename = "workspaces.edit_command_script")]
197 WorkspacesPeriodEditCommandScript,
198 #[serde(rename = "workspaces.edit_deploy_to")]
199 WorkspacesPeriodEditDeployTo,
200 #[serde(rename = "workspaces.edit_auto_invite_domain")]
201 WorkspacesPeriodEditAutoInviteDomain,
202 #[serde(rename = "workspaces.edit_webhook")]
203 WorkspacesPeriodEditWebhook,
204 #[serde(rename = "workspaces.edit_copilot_config")]
205 WorkspacesPeriodEditCopilotConfig,
206 #[serde(rename = "workspaces.edit_error_handler")]
207 WorkspacesPeriodEditErrorHandler,
208 #[serde(rename = "workspaces.create")]
209 WorkspacesPeriodCreate,
210 #[serde(rename = "workspaces.update")]
211 WorkspacesPeriodUpdate,
212 #[serde(rename = "workspaces.archive")]
213 WorkspacesPeriodArchive,
214 #[serde(rename = "workspaces.unarchive")]
215 WorkspacesPeriodUnarchive,
216 #[serde(rename = "workspaces.delete")]
217 WorkspacesPeriodDelete,
218}
219
220impl Default for Operation {
221 fn default() -> Operation {
222 Self::JobsPeriodRun
223 }
224}
225#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
227pub enum ActionKind {
228 #[serde(rename = "Created")]
229 Created,
230 #[serde(rename = "Updated")]
231 Updated,
232 #[serde(rename = "Delete")]
233 Delete,
234 #[serde(rename = "Execute")]
235 Execute,
236}
237
238impl Default for ActionKind {
239 fn default() -> ActionKind {
240 Self::Created
241 }
242}
243