podman_client/models/podman/networks/
inspect.rs1use core::fmt;
2use std::collections::HashMap;
3
4use chrono::{DateTime, Utc};
5use serde::{Deserialize, Serialize};
6
7pub struct NetworkInspectOptions<'a> {
8 pub name: &'a str,
9}
10
11#[derive(Deserialize, Serialize)]
12pub struct NetworkInspect {
13 pub containers: HashMap<String, NetworkInspectContainer>,
14 pub created: DateTime<Utc>,
15 pub dns_enabled: bool,
16 pub driver: String,
17 pub id: String,
18 pub internal: bool,
19 pub ipam_options: HashMap<String, String>,
20 pub ipv6_enabled: bool,
21 pub labels: HashMap<String, String>,
22 pub name: String,
23 pub network_dns_servers: Vec<String>,
24 pub network_interface: String,
25 pub options: HashMap<String, String>,
26 pub routes: Vec<NetworkInspectRoute>,
27 pub subnets: Vec<NetworkInspectSubnet>,
28}
29
30impl fmt::Debug for NetworkInspect {
31 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
32 let json = serde_json::to_string_pretty(self).map_err(|_| fmt::Error)?;
33 f.write_str(&json)
34 }
35}
36
37#[derive(Deserialize, Serialize)]
38pub struct NetworkInspectContainer {
39 pub interfaces: HashMap<String, NetworkInspectContainerInterface>,
40 pub name: String,
41}
42
43#[derive(Deserialize, Serialize)]
44pub struct NetworkInspectContainerInterface {
45 pub mac_address: String,
46 pub subnets: Vec<NetworkInspectContainerInterfaceSubnet>,
47}
48
49#[derive(Deserialize, Serialize)]
50pub struct NetworkInspectContainerInterfaceSubnet {
51 pub gateway: String,
52 pub ipnet: NetworkInspectContainerInterfaceSubnetIpnet,
53}
54
55#[derive(Deserialize, Serialize)]
56#[serde(rename_all = "PascalCase")]
57pub struct NetworkInspectContainerInterfaceSubnetIpnet {
58 #[serde(rename = "IP")]
59 pub ip: String,
60 pub mask: Vec<u8>,
61}
62
63#[derive(Deserialize, Serialize)]
64pub struct NetworkInspectRoute {
65 pub destination: String,
66 pub gateway: String,
67 pub metric: u32,
68}
69
70#[derive(Deserialize, Serialize)]
71pub struct NetworkInspectSubnet {
72 pub gateway: String,
73 pub lease_range: NetworkInspectSubnetLeaseRange,
74 pub subnet: String,
75}
76
77#[derive(Deserialize, Serialize)]
78pub struct NetworkInspectSubnetLeaseRange {
79 pub end_ip: String,
80 pub start_ip: String,
81}