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