zlayer_types/api/
networks.rs1use serde::{Deserialize, Serialize};
4use utoipa::ToSchema;
5
6use crate::spec::NetworkPolicySpec;
7
8#[derive(Debug, Serialize, Deserialize, ToSchema)]
10pub struct NetworkSummary {
11 pub name: String,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub description: Option<String>,
14 pub cidr_count: usize,
15 pub member_count: usize,
16 pub rule_count: usize,
17}
18
19impl From<&NetworkPolicySpec> for NetworkSummary {
20 fn from(spec: &NetworkPolicySpec) -> Self {
21 Self {
22 name: spec.name.clone(),
23 description: spec.description.clone(),
24 cidr_count: spec.cidrs.len(),
25 member_count: spec.members.len(),
26 rule_count: spec.access_rules.len(),
27 }
28 }
29}