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