dataplane_sdk/core/model/
messages.rs1use std::collections::HashMap;
14
15use bon::Builder;
16use serde::{Deserialize, Serialize};
17use serde_json::Value;
18
19use super::{data_address::DataAddress, data_flow::DataFlowState};
20
21#[derive(Debug, Serialize, Deserialize, Clone, Builder)]
22#[serde(rename_all = "camelCase")]
23#[builder(on(String, into))]
24pub struct DataFlowStartMessage {
25 pub message_id: String,
26 pub participant_id: String,
27 pub counter_party_id: String,
28 pub dataspace_context: String,
29 pub process_id: String,
30 pub agreement_id: String,
31 pub dataset_id: String,
32 pub profile: String,
33 pub data_address: Option<DataAddress>,
34 #[builder(default)]
35 #[serde(default)]
36 pub labels: Vec<String>,
37 #[builder(default)]
38 #[serde(default)]
39 pub metadata: HashMap<String, Value>,
40 #[builder(default)]
41 #[serde(default)]
42 pub claims: HashMap<String, Value>,
43}
44
45#[derive(Debug, Serialize, Deserialize, Clone, Builder)]
46#[serde(rename_all = "camelCase")]
47#[builder(on(String, into))]
48pub struct DataFlowResumeMessage {
49 pub data_address: Option<DataAddress>,
50}
51
52#[derive(Debug, Serialize, Deserialize, Clone, Builder)]
53#[serde(rename_all = "camelCase")]
54#[builder(on(String, into))]
55pub struct DataFlowPrepareMessage {
56 pub message_id: String,
57 pub participant_id: String,
58 pub counter_party_id: String,
59 pub dataspace_context: String,
60 pub process_id: String,
61 pub agreement_id: String,
62 pub dataset_id: String,
63 pub profile: String,
64 #[builder(default)]
65 #[serde(default)]
66 pub labels: Vec<String>,
67 #[builder(default)]
68 #[serde(default)]
69 pub metadata: HashMap<String, Value>,
70 #[builder(default)]
71 #[serde(default)]
72 pub claims: HashMap<String, Value>,
73}
74
75#[derive(Debug, Builder, Serialize, Deserialize, Clone)]
76#[serde(rename_all = "camelCase")]
77#[builder(on(String, into))]
78pub struct DataFlowStatusMessage {
79 #[builder(default = new_message_id())]
80 #[serde(default = "new_message_id")]
81 pub message_id: String,
82 pub data_flow_id: String,
83 #[serde(skip_serializing_if = "Option::is_none")]
84 pub data_address: Option<DataAddress>,
85 pub state: DataFlowState,
86 #[serde(skip_serializing_if = "Option::is_none")]
87 pub error: Option<String>,
88}
89
90fn new_message_id() -> String {
91 uuid::Uuid::new_v4().to_string()
92}
93
94#[derive(Debug, Builder, Serialize, Deserialize, Clone)]
95#[serde(rename_all = "camelCase")]
96pub struct DataFlowStartedNotificationMessage {
97 pub data_address: Option<DataAddress>,
98}
99
100#[derive(Builder, Debug, Serialize, Deserialize, Clone)]
101#[serde(rename_all = "camelCase")]
102#[builder(on(String, into))]
103pub struct DataFlowStatusResponseMessage {
104 pub data_flow_id: String,
105 pub state: DataFlowState,
106}
107
108#[derive(Debug, Serialize, Deserialize, Clone)]
109#[serde(rename_all = "camelCase")]
110pub struct DataFlowSuspendMessage {
111 pub reason: Option<String>,
112}
113
114#[derive(Debug, Serialize, Deserialize, Clone, Builder)]
115#[serde(rename_all = "camelCase")]
116#[builder(on(String, into))]
117pub struct DataFlowTerminateMessage {
118 pub reason: Option<String>,
119}