Skip to main content

orvanta_api/models/
bpmn_mapping_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.2.0
7 * Contact: contact@orvanta.cloud
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// BpmnMappingBlocker : One reason a mapping document does not hold for a version pair (#925). `rule` is the discriminant; `rule_number` groups it (1 document well-formedness; 2 no silent drop -- an unmapped, deleted element would drop a token; 3 stable meaning -- kind, message binding and correlation names; 4 injectivity -- no N:1 merge, because a join's `arrived` is a set and would absorb the duplicate; 5 scope coherence; 6 edge images -- each source flow needs a unique counterpart between its mapped endpoints; 7 join coherence -- the only *silent* failure, since `JoinState.expected` is derived once and never refreshed; 8 boundary coherence -- the interruption surface of a running activity must not change under it). 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 BpmnMappingBlocker {
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 = "target", skip_serializing_if = "Option::is_none")]
37    pub target: Option<String>,
38    #[serde(rename = "target_flow", skip_serializing_if = "Option::is_none")]
39    pub target_flow: Option<String>,
40    #[serde(rename = "from_kind", skip_serializing_if = "Option::is_none")]
41    pub from_kind: Option<String>,
42    #[serde(rename = "to_kind", skip_serializing_if = "Option::is_none")]
43    pub to_kind: Option<String>,
44    #[serde(rename = "from_message", skip_serializing_if = "Option::is_none")]
45    pub from_message: Option<String>,
46    #[serde(rename = "to_message", skip_serializing_if = "Option::is_none")]
47    pub to_message: Option<String>,
48    #[serde(rename = "expected_scope", skip_serializing_if = "Option::is_none")]
49    pub expected_scope: Option<String>,
50    #[serde(rename = "actual_scope", skip_serializing_if = "Option::is_none")]
51    pub actual_scope: Option<String>,
52    #[serde(rename = "mapped_source", skip_serializing_if = "Option::is_none")]
53    pub mapped_source: Option<String>,
54    #[serde(rename = "mapped_target", skip_serializing_if = "Option::is_none")]
55    pub mapped_target: Option<String>,
56    #[serde(rename = "sources", skip_serializing_if = "Option::is_none")]
57    pub sources: Option<Vec<String>>,
58    #[serde(rename = "targets", skip_serializing_if = "Option::is_none")]
59    pub targets: Option<Vec<String>>,
60    #[serde(rename = "candidates", skip_serializing_if = "Option::is_none")]
61    pub candidates: Option<Vec<String>>,
62    #[serde(rename = "missing", skip_serializing_if = "Option::is_none")]
63    pub missing: Option<Vec<String>>,
64    #[serde(rename = "unexpected", skip_serializing_if = "Option::is_none")]
65    pub unexpected: Option<Vec<String>>,
66}
67
68impl BpmnMappingBlocker {
69    /// One reason a mapping document does not hold for a version pair (#925). `rule` is the discriminant; `rule_number` groups it (1 document well-formedness; 2 no silent drop -- an unmapped, deleted element would drop a token; 3 stable meaning -- kind, message binding and correlation names; 4 injectivity -- no N:1 merge, because a join's `arrived` is a set and would absorb the duplicate; 5 scope coherence; 6 edge images -- each source flow needs a unique counterpart between its mapped endpoints; 7 join coherence -- the only *silent* failure, since `JoinState.expected` is derived once and never refreshed; 8 boundary coherence -- the interruption surface of a running activity must not change under it). The remaining properties are the rule's own, and which are present depends on `rule`.
70    pub fn new(rule: Rule, rule_number: i32, message: String) -> BpmnMappingBlocker {
71        BpmnMappingBlocker {
72            rule,
73            rule_number,
74            message,
75            element_id: None,
76            flow_id: None,
77            message_name: None,
78            kind: None,
79            from: None,
80            to: None,
81            target: None,
82            target_flow: None,
83            from_kind: None,
84            to_kind: None,
85            from_message: None,
86            to_message: None,
87            expected_scope: None,
88            actual_scope: None,
89            mapped_source: None,
90            mapped_target: None,
91            sources: None,
92            targets: None,
93            candidates: None,
94            missing: None,
95            unexpected: None,
96        }
97    }
98}
99/// 
100#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
101pub enum Rule {
102    #[serde(rename = "unknown_source")]
103    UnknownSource,
104    #[serde(rename = "unknown_target")]
105    UnknownTarget,
106    #[serde(rename = "duplicate_source")]
107    DuplicateSource,
108    #[serde(rename = "activity_deleted")]
109    ActivityDeleted,
110    #[serde(rename = "mapped_kind_changed")]
111    MappedKindChanged,
112    #[serde(rename = "mapped_message_binding_changed")]
113    MappedMessageBindingChanged,
114    #[serde(rename = "message_name_removed")]
115    MessageNameRemoved,
116    #[serde(rename = "activities_merged")]
117    ActivitiesMerged,
118    #[serde(rename = "sequence_flows_merged")]
119    SequenceFlowsMerged,
120    #[serde(rename = "mapped_scope_incoherent")]
121    MappedScopeIncoherent,
122    #[serde(rename = "sequence_flow_unmapped")]
123    SequenceFlowUnmapped,
124    #[serde(rename = "sequence_flow_ambiguous")]
125    SequenceFlowAmbiguous,
126    #[serde(rename = "mapped_incoming_flows_changed")]
127    MappedIncomingFlowsChanged,
128    #[serde(rename = "boundary_events_changed")]
129    BoundaryEventsChanged,
130}
131
132impl Default for Rule {
133    fn default() -> Rule {
134        Self::UnknownSource
135    }
136}
137