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 = "schedule.create")]
103 SchedulePeriodCreate,
104 #[serde(rename = "schedule.setenabled")]
105 SchedulePeriodSetenabled,
106 #[serde(rename = "schedule.edit")]
107 SchedulePeriodEdit,
108 #[serde(rename = "schedule.delete")]
109 SchedulePeriodDelete,
110 #[serde(rename = "scripts.create")]
111 ScriptsPeriodCreate,
112 #[serde(rename = "scripts.update")]
113 ScriptsPeriodUpdate,
114 #[serde(rename = "scripts.archive")]
115 ScriptsPeriodArchive,
116 #[serde(rename = "scripts.delete")]
117 ScriptsPeriodDelete,
118 #[serde(rename = "users.create")]
119 UsersPeriodCreate,
120 #[serde(rename = "users.delete")]
121 UsersPeriodDelete,
122 #[serde(rename = "users.update")]
123 UsersPeriodUpdate,
124 #[serde(rename = "users.login")]
125 UsersPeriodLogin,
126 #[serde(rename = "users.login_failure")]
127 UsersPeriodLoginFailure,
128 #[serde(rename = "users.logout")]
129 UsersPeriodLogout,
130 #[serde(rename = "users.accept_invite")]
131 UsersPeriodAcceptInvite,
132 #[serde(rename = "users.decline_invite")]
133 UsersPeriodDeclineInvite,
134 #[serde(rename = "users.token.create")]
135 UsersPeriodTokenPeriodCreate,
136 #[serde(rename = "users.token.delete")]
137 UsersPeriodTokenPeriodDelete,
138 #[serde(rename = "users.add_to_workspace")]
139 UsersPeriodAddToWorkspace,
140 #[serde(rename = "users.add_global")]
141 UsersPeriodAddGlobal,
142 #[serde(rename = "users.setpassword")]
143 UsersPeriodSetpassword,
144 #[serde(rename = "users.impersonate")]
145 UsersPeriodImpersonate,
146 #[serde(rename = "users.leave_workspace")]
147 UsersPeriodLeaveWorkspace,
148 #[serde(rename = "oauth.login")]
149 OauthPeriodLogin,
150 #[serde(rename = "oauth.login_failure")]
151 OauthPeriodLoginFailure,
152 #[serde(rename = "oauth.signup")]
153 OauthPeriodSignup,
154 #[serde(rename = "variables.create")]
155 VariablesPeriodCreate,
156 #[serde(rename = "variables.delete")]
157 VariablesPeriodDelete,
158 #[serde(rename = "variables.update")]
159 VariablesPeriodUpdate,
160 #[serde(rename = "flows.create")]
161 FlowsPeriodCreate,
162 #[serde(rename = "flows.update")]
163 FlowsPeriodUpdate,
164 #[serde(rename = "flows.delete")]
165 FlowsPeriodDelete,
166 #[serde(rename = "flows.archive")]
167 FlowsPeriodArchive,
168 #[serde(rename = "apps.create")]
169 AppsPeriodCreate,
170 #[serde(rename = "apps.update")]
171 AppsPeriodUpdate,
172 #[serde(rename = "apps.delete")]
173 AppsPeriodDelete,
174 #[serde(rename = "folder.create")]
175 FolderPeriodCreate,
176 #[serde(rename = "folder.update")]
177 FolderPeriodUpdate,
178 #[serde(rename = "folder.delete")]
179 FolderPeriodDelete,
180 #[serde(rename = "folder.add_owner")]
181 FolderPeriodAddOwner,
182 #[serde(rename = "folder.remove_owner")]
183 FolderPeriodRemoveOwner,
184 #[serde(rename = "group.create")]
185 GroupPeriodCreate,
186 #[serde(rename = "group.delete")]
187 GroupPeriodDelete,
188 #[serde(rename = "group.edit")]
189 GroupPeriodEdit,
190 #[serde(rename = "group.adduser")]
191 GroupPeriodAdduser,
192 #[serde(rename = "group.removeuser")]
193 GroupPeriodRemoveuser,
194 #[serde(rename = "igroup.create")]
195 IgroupPeriodCreate,
196 #[serde(rename = "igroup.delete")]
197 IgroupPeriodDelete,
198 #[serde(rename = "igroup.adduser")]
199 IgroupPeriodAdduser,
200 #[serde(rename = "igroup.removeuser")]
201 IgroupPeriodRemoveuser,
202 #[serde(rename = "instance_groups.jit_adduser")]
203 InstanceGroupsPeriodJitAdduser,
204 #[serde(rename = "instance_groups.jit_removeuser")]
205 InstanceGroupsPeriodJitRemoveuser,
206 #[serde(rename = "variables.decrypt_secret")]
207 VariablesPeriodDecryptSecret,
208 #[serde(rename = "workspaces.read_encryption_key")]
209 WorkspacesPeriodReadEncryptionKey,
210 #[serde(rename = "workspaces.edit_command_script")]
211 WorkspacesPeriodEditCommandScript,
212 #[serde(rename = "workspaces.edit_deploy_to")]
213 WorkspacesPeriodEditDeployTo,
214 #[serde(rename = "workspaces.edit_auto_invite_domain")]
215 WorkspacesPeriodEditAutoInviteDomain,
216 #[serde(rename = "workspaces.edit_webhook")]
217 WorkspacesPeriodEditWebhook,
218 #[serde(rename = "workspaces.edit_copilot_config")]
219 WorkspacesPeriodEditCopilotConfig,
220 #[serde(rename = "workspaces.edit_error_handler")]
221 WorkspacesPeriodEditErrorHandler,
222 #[serde(rename = "workspaces.create")]
223 WorkspacesPeriodCreate,
224 #[serde(rename = "workspaces.update")]
225 WorkspacesPeriodUpdate,
226 #[serde(rename = "workspaces.archive")]
227 WorkspacesPeriodArchive,
228 #[serde(rename = "workspaces.unarchive")]
229 WorkspacesPeriodUnarchive,
230 #[serde(rename = "workspaces.delete")]
231 WorkspacesPeriodDelete,
232}
233
234impl Default for Operation {
235 fn default() -> Operation {
236 Self::JobsPeriodRun
237 }
238}
239#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
241pub enum ActionKind {
242 #[serde(rename = "Created")]
243 Created,
244 #[serde(rename = "Updated")]
245 Updated,
246 #[serde(rename = "Delete")]
247 Delete,
248 #[serde(rename = "Execute")]
249 Execute,
250}
251
252impl Default for ActionKind {
253 fn default() -> ActionKind {
254 Self::Created
255 }
256}
257