1use serde::{Deserialize, Serialize};
2
3use crate::NodeId;
4
5pub const NET_API_PATH: &str = "/net-api/v2";
6pub const NET_API_V1_VPN_PATH: &str = "/net-api/v1";
7pub const NET_API_V2_NET_PATH: &str = "/net-api/v2/net";
8pub const NET_API_V2_VPN_PATH: &str = "/net-api/v2/vpn";
9
10#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
11#[serde(rename_all = "camelCase")]
12pub struct Status {
13 pub node_id: NodeId,
14 pub listen_ip: Option<String>,
15 pub public_ip: Option<String>,
16 pub sessions: usize,
17}
18
19#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
20#[serde(rename_all = "camelCase")]
21pub struct Network {
22 pub id: String,
23 pub ip: String,
24 pub mask: String,
25 pub gateway: String,
26}
27
28#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
29#[serde(rename_all = "camelCase")]
30pub struct NewNetwork {
31 pub ip: String,
32 pub mask: Option<String>,
33 pub gateway: Option<String>,
34}
35
36#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
37#[serde(rename_all = "camelCase")]
38pub struct Node {
39 pub id: String,
40 pub ip: String,
41}
42
43#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
44#[serde(rename_all = "camelCase")]
45pub struct Address {
46 pub ip: String,
47}
48
49#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
50#[serde(rename_all = "camelCase")]
51pub struct Connection {
52 pub protocol: u16,
53 pub local_ip: String,
54 pub local_port: u16,
55 pub remote_ip: String,
56 pub remote_port: u16,
57}