Skip to main content

orvanta_api/models/
bpmn_migration_blocker.rs

1/*
2 * Orvanta API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 3.0.0
7 * Contact: contact@orvanta.cloud
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// BpmnMigrationBlocker : One reason a (from_version, to_version) pair is not eligible for an identity migration (#922). `rule` is the discriminant; `rule_number` groups it (1 superset -- every v1 element id, sequence-flow id and message name exists in v2; 2 stable meaning -- an id that survives must still denote the same kind, scope, process and message binding; 3 join stability -- no element's set of incoming sequence flows may change, because `JoinState.expected` is derived once and never refreshed, so a stale one wedges the instance with no error at all). The remaining properties are the rule's own, and which are present depends on `rule`.
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct BpmnMigrationBlocker {
17    #[serde(rename = "rule")]
18    pub rule: Rule,
19    #[serde(rename = "rule_number")]
20    pub rule_number: i32,
21    /// the rendered sentence, safe to show an operator as-is
22    #[serde(rename = "message")]
23    pub message: String,
24    #[serde(rename = "element_id", skip_serializing_if = "Option::is_none")]
25    pub element_id: Option<String>,
26    #[serde(rename = "flow_id", skip_serializing_if = "Option::is_none")]
27    pub flow_id: Option<String>,
28    #[serde(rename = "message_name", skip_serializing_if = "Option::is_none")]
29    pub message_name: Option<String>,
30    #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
31    pub kind: Option<String>,
32    #[serde(rename = "from", skip_serializing_if = "Option::is_none")]
33    pub from: Option<String>,
34    #[serde(rename = "to", skip_serializing_if = "Option::is_none")]
35    pub to: Option<String>,
36    #[serde(rename = "removed", skip_serializing_if = "Option::is_none")]
37    pub removed: Option<Vec<String>>,
38    #[serde(rename = "added", skip_serializing_if = "Option::is_none")]
39    pub added: Option<Vec<String>>,
40}
41
42impl BpmnMigrationBlocker {
43    /// One reason a (from_version, to_version) pair is not eligible for an identity migration (#922). `rule` is the discriminant; `rule_number` groups it (1 superset -- every v1 element id, sequence-flow id and message name exists in v2; 2 stable meaning -- an id that survives must still denote the same kind, scope, process and message binding; 3 join stability -- no element's set of incoming sequence flows may change, because `JoinState.expected` is derived once and never refreshed, so a stale one wedges the instance with no error at all). The remaining properties are the rule's own, and which are present depends on `rule`.
44    pub fn new(rule: Rule, rule_number: i32, message: String) -> BpmnMigrationBlocker {
45        BpmnMigrationBlocker {
46            rule,
47            rule_number,
48            message,
49            element_id: None,
50            flow_id: None,
51            message_name: None,
52            kind: None,
53            from: None,
54            to: None,
55            removed: None,
56            added: None,
57        }
58    }
59}
60/// 
61#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
62pub enum Rule {
63    #[serde(rename = "process_id_changed")]
64    ProcessIdChanged,
65    #[serde(rename = "element_removed")]
66    ElementRemoved,
67    #[serde(rename = "element_kind_changed")]
68    ElementKindChanged,
69    #[serde(rename = "element_scope_changed")]
70    ElementScopeChanged,
71    #[serde(rename = "sequence_flow_removed")]
72    SequenceFlowRemoved,
73    #[serde(rename = "message_name_removed")]
74    MessageNameRemoved,
75    #[serde(rename = "message_binding_changed")]
76    MessageBindingChanged,
77    #[serde(rename = "incoming_flows_changed")]
78    IncomingFlowsChanged,
79}
80
81impl Default for Rule {
82    fn default() -> Rule {
83        Self::ProcessIdChanged
84    }
85}
86