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 PublishMessageToTopicRequest {
109 pub topic: String,
110 pub data: String,
111}
112
113#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
114pub struct PublishMessageToTopicResponse {}
115
116#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
117pub struct FetchTopicMessagesRequest {
118 pub topic: String,
119 pub skip: i64,
120}
121
122#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
123pub struct FetchTopicMessagesResponse {
124 pub data: Vec<String>,
125}
126
127#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
128pub struct RegisterServiceRequest {
129 pub name: String,
130}
131
132#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
133pub struct RegisterServiceResponse {}
134
135#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
136pub struct LookupServiceRequest {
137 pub name: String,
138}
139
140#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
141pub struct LookupServiceResponse {
142 pub dids: Vec<String>,
143}
144
145#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
146pub struct NodeInfoRequest {}
147
148#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
149pub struct FingerTableRange {
150 pub did: Option<String>,
151 pub start: u64,
152 pub end: u64,
153}
154
155#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
156pub struct DhtInfo {
157 pub did: String,
158 pub successors: Vec<String>,
159 pub predecessor: Option<String>,
160 pub finger_table_ranges: Vec<FingerTableRange>,
161}
162
163#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
164pub struct StorageValue {
165 pub did: String,
166 pub kind: String,
167 pub data: Vec<String>,
168}
169
170#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
171pub struct StorageItem {
172 pub key: String,
173 pub value: Option<StorageValue>,
174}
175
176#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
177pub struct StorageInfo {
178 pub items: Vec<StorageItem>,
179}
180
181#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
182pub struct SwarmInfo {
183 pub peers: Vec<PeerInfo>,
184 pub dht: Option<DhtInfo>,
185 pub persistence_storage: Option<StorageInfo>,
186 pub cache_storage: Option<StorageInfo>,
187}
188
189#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
190pub struct NodeInfoResponse {
191 pub version: String,
192 pub swarm: Option<SwarmInfo>,
193}
194
195#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
196pub struct NodeDidRequest {}
197
198#[derive(Clone, PartialEq, Debug, Default, Serialize, Deserialize)]
199pub struct NodeDidResponse {
200 pub did: String,
201}