Skip to main content

windmill_api/models/
role_capabilities.rs

1/*
2 * Windmill API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.864.1
7 * Contact: contact@windmill.dev
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct RoleCapabilities {
16    /// 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`.
17    #[serde(rename = "code")]
18    pub code: bool,
19    #[serde(rename = "flows")]
20    pub flows: models::AuthorLevel,
21    #[serde(rename = "apps")]
22    pub apps: models::AuthorLevel,
23    #[serde(rename = "manage_schedules")]
24    pub manage_schedules: bool,
25    #[serde(rename = "manage_triggers")]
26    pub manage_triggers: bool,
27    /// 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.
28    #[serde(rename = "run")]
29    pub run: bool,
30    /// Fork the workspace.
31    #[serde(rename = "fork")]
32    pub fork: bool,
33    #[serde(rename = "visibility")]
34    pub visibility: Box<models::RoleVisibility>,
35}
36
37impl RoleCapabilities {
38    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 {
39        RoleCapabilities {
40            code,
41            flows,
42            apps,
43            manage_schedules,
44            manage_triggers,
45            run,
46            fork,
47            visibility: Box::new(visibility),
48        }
49    }
50}
51