1use derive_builder::Builder;
2use serde::Serialize;
3
4use crate::structs::{FieldValuePair, RoleOwner, Schedule};
5
6#[derive(Builder, Debug, Default, Serialize)]
7#[builder(setter(into, strip_option), default)]
8pub struct UpdateNodeRequest {
9 pub node_owners: Option<Vec<String>>,
10 pub node_schedule: Option<Schedule>,
11 pub schedules: Option<Vec<Schedule>>,
12 pub fields: Option<Vec<FieldValuePair>>,
13 pub role_assignee: Option<Vec<RoleOwner>>,
14}
15
16#[derive(Builder, Debug, Default, Serialize)]
17#[builder(setter(into, strip_option), default)]
18pub struct OperateNodeRequest {
19 pub action: String,
20 pub rollback_reason: Option<String>,
21 pub node_owners: Option<Vec<String>>,
22 pub node_schedule: Option<Schedule>,
23 pub schedules: Option<Vec<Schedule>>,
24 pub fields: Option<Vec<FieldValuePair>>,
25 pub role_assignee: Option<Vec<RoleOwner>>,
26}
27
28#[derive(Builder, Debug, Default, Serialize)]
29#[builder(setter(into, strip_option), default)]
30pub struct ChangeStateRequest {
31 pub transition_id: i64,
32 pub role_owners: Option<Vec<RoleOwner>>,
33 pub fields: Option<Vec<FieldValuePair>>,
34}
35
36#[derive(Builder, Debug, Default, Serialize)]
37#[builder(setter(into, strip_option), default)]
38pub struct GetWorkflowDetailRequest {
39 pub flow_type: Option<i64>,
40 pub fields: Option<Vec<String>>,
41}