1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
4pub struct Alias {
5 pub r#type: String,
6 pub name: String,
7 pub value: String,
8 pub description: String,
9}
10
11#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
12pub struct Rule {
13 pub disabled: bool,
14 pub r#type: String,
15 pub policy: String,
16 pub protocol: String,
17 pub source_inversed: bool,
18 pub source_port: String,
19 pub source_addr: String,
20 pub source_type: String,
21 pub destination_port: String,
22 pub destination_addr: String,
23 pub destination_type: String,
24 pub destination_inversed: bool,
25 pub description: String,
26 pub interface: String,
27 pub order: u64,
28}
29
30#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
31pub struct NetworkInterface {
32 pub name: String,
33 pub device: String,
34 pub addresses: Vec<IpAddress>,
35}
36
37#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
38pub struct IpAddress {
39 pub address: String,
40 pub version: i32,
41}
42
43pub struct Configuration {
44 pub rules: Vec<Rule>,
45 pub aliases: Vec<Alias>,
46 pub interfaces: Vec<NetworkInterface>,
47 pub raw_content: String,
48 pub hostname: String,
49 pub gui_protocol: String,
50}