1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
* Windmill API
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 1.864.0
* Contact: contact@windmill.dev
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct RoleCapabilities {
/// Author scripts and run code of one's own (previews, dependency jobs, dynamic selects, resolving jobs, data table migrations). Required by `full` flows or apps. Previews also need `run`.
#[serde(rename = "code")]
pub code: bool,
#[serde(rename = "flows")]
pub flows: models::AuthorLevel,
#[serde(rename = "apps")]
pub apps: models::AuthorLevel,
#[serde(rename = "manage_schedules")]
pub manage_schedules: bool,
#[serde(rename = "manage_triggers")]
pub manage_triggers: bool,
/// Start runs of scripts, flows and AI agents (by path, hash or version, restarts, previews, MCP run tools). Without it a role is view-only. Schedules and triggers keep their own rights; resuming a suspended step is not a run.
#[serde(rename = "run")]
pub run: bool,
/// Fork the workspace.
#[serde(rename = "fork")]
pub fork: bool,
#[serde(rename = "visibility")]
pub visibility: Box<models::RoleVisibility>,
}
impl RoleCapabilities {
pub fn new(code: bool, flows: models::AuthorLevel, apps: models::AuthorLevel, manage_schedules: bool, manage_triggers: bool, run: bool, fork: bool, visibility: models::RoleVisibility) -> RoleCapabilities {
RoleCapabilities {
code,
flows,
apps,
manage_schedules,
manage_triggers,
run,
fork,
visibility: Box::new(visibility),
}
}
}