1use std::{collections::HashMap, net::SocketAddr};
2
3use serde::{Deserialize, Serialize};
4
5use crate::NodeInfo;
6
7#[derive(Clone, Debug, Serialize, Deserialize)]
8pub struct Register {
9 pub node_name: uuid::Uuid,
10 pub csr_pem: String,
11}
12
13#[derive(Clone, Debug, Serialize, Deserialize)]
14pub struct Registration {
15 pub node_name: uuid::Uuid,
16 pub cert_pem_chain: Vec<String>,
17 pub authentication_token: String,
18 pub root_cert: String,
19 pub urls: ControlUrls,
20}
21
22#[derive(Clone, Debug, Serialize, Deserialize)]
23pub struct ControlUrls {
24 pub api_base: String,
25 pub nodes: String,
26 pub node_started: String,
27 pub node_stopped: String,
28 pub get_module: String,
29 pub add_module: String,
30 pub get_nodes: String,
31}
32
33#[derive(Clone, Debug, Serialize, Deserialize)]
34pub struct NodeStart {
35 pub node_address: SocketAddr,
36 pub attributes: HashMap<String, String>,
37}
38
39#[derive(Clone, Debug, Serialize, Deserialize)]
40pub struct NodeStarted {
41 pub node_id: i64,
43}
44
45#[derive(Clone, Debug, Serialize, Deserialize)]
46pub struct NodesList {
47 pub nodes: Vec<NodeInfo>,
48}
49
50#[derive(Clone, Debug, Serialize, Deserialize)]
51pub struct ModuleBytes {
52 pub bytes: Vec<u8>,
53}
54
55#[derive(Clone, Debug, Serialize, Deserialize)]
56pub struct AddModule {
57 pub bytes: Vec<u8>,
58}
59
60#[derive(Clone, Debug, Serialize, Deserialize)]
61pub struct ModuleId {
62 pub module_id: u64,
63}