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