1use serde::Deserialize;
9use serde::Serialize;
10
11#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
12pub struct PeerInfo {
13 pub did: String,
14 pub state: String,
15}
16
17#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
18pub struct ConnectPeerViaHttpRequest {
19 pub url: String,
20}
21
22#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
23pub struct ConnectPeerViaHttpResponse {
24 pub did: String,
25}
26
27#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
28pub struct ConnectWithDidRequest {
29 pub did: String,
30}
31
32#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
33pub struct ConnectWithDidResponse {}
34
35#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
36pub struct SeedPeer {
37 pub did: String,
38 pub url: String,
39}
40
41#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
42pub struct ConnectWithSeedRequest {
43 pub peers: Vec<SeedPeer>,
44}
45
46#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
47pub struct ConnectWithSeedResponse {}
48
49#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
50pub struct ListPeersRequest {}
51
52#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
53pub struct ListPeersResponse {
54 pub peers: Vec<PeerInfo>,
55}
56
57#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
58pub struct CreateOfferRequest {
59 pub did: String,
60}
61
62#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
63pub struct CreateOfferResponse {
64 pub offer: String,
65}
66
67#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
68pub struct AnswerOfferRequest {
69 pub offer: String,
70}
71
72#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
73pub struct AnswerOfferResponse {
74 pub answer: String,
75}
76
77#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
78pub struct AcceptAnswerRequest {
79 pub answer: String,
80}
81
82#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
83pub struct AcceptAnswerResponse {}
84
85#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
86pub struct DisconnectRequest {
87 pub did: String,
88}
89
90#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
91pub struct DisconnectResponse {}
92
93#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
94pub struct SendBackendMessageRequest {
95 pub destination_did: String,
96 pub namespace: String,
98 pub data: String,
102}
103
104#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
105pub struct SendBackendMessageResponse {}
106
107#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
108pub struct SendE2eHandshakeRequest {
109 pub destination_did: String,
110}
111
112#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
113pub struct SendE2eHandshakeResponse {
114 pub tx_id: String,
115}
116
117#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
118pub struct SendE2eMessageRequest {
119 pub destination_did: String,
120 pub recipient_public_key: String,
123 pub data: String,
125 #[serde(default)]
127 pub max_plaintext_frame_len: u32,
128}
129
130#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
131pub struct SendE2eMessageResponse {
132 pub stream_id: String,
133}
134
135#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
136pub struct PublishMessageToTopicRequest {
137 pub topic: String,
138 pub data: String,
139}
140
141#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
142pub struct PublishMessageToTopicResponse {}
143
144#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
145pub struct FetchTopicMessagesRequest {
146 pub topic: String,
147 pub skip: i64,
148}
149
150#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
151pub struct FetchTopicMessagesResponse {
152 pub data: Vec<String>,
153}
154
155#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
156pub struct RegisterServiceRequest {
157 pub name: String,
158}
159
160#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
161pub struct RegisterServiceResponse {}
162
163#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
164pub struct LookupServiceRequest {
165 pub name: String,
166}
167
168#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
169pub struct LookupServiceResponse {
170 pub dids: Vec<String>,
171}
172
173#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
174pub struct NodeInfoRequest {}
175
176#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
177pub struct FingerTableRange {
178 pub did: Option<String>,
179 pub start: u64,
180 pub end: u64,
181}
182
183#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
184pub struct DhtInfo {
185 pub did: String,
186 pub successors: Vec<String>,
187 pub predecessor: Option<String>,
188 pub finger_table_ranges: Vec<FingerTableRange>,
189}
190
191#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
192pub struct StorageValue {
193 pub did: String,
194 pub kind: String,
195 pub data: Vec<String>,
196}
197
198#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
199pub struct StorageItem {
200 pub key: String,
201 pub value: Option<StorageValue>,
202}
203
204#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
205pub struct StorageInfo {
206 pub items: Vec<StorageItem>,
207}
208
209#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
210pub struct SwarmInfo {
211 pub peers: Vec<PeerInfo>,
212 pub dht: Option<DhtInfo>,
213 pub persistence_storage: Option<StorageInfo>,
214 pub cache_storage: Option<StorageInfo>,
215}
216
217#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
218pub struct NodeInfoResponse {
219 pub version: String,
220 pub swarm: Option<SwarmInfo>,
221}
222
223#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
224pub struct NodeDidRequest {}
225
226#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
227pub struct NodeDidResponse {
228 pub did: String,
229}