codex_protocol/
network_policy.rs1use crate::approvals::NetworkApprovalProtocol;
2use codex_network_proxy::NetworkDecisionSource;
3use codex_network_proxy::NetworkPolicyDecision;
4use serde::Deserialize;
5
6#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
7#[serde(rename_all = "camelCase")]
8pub struct NetworkPolicyDecisionPayload {
9 pub decision: NetworkPolicyDecision,
10 pub source: NetworkDecisionSource,
11 #[serde(default)]
12 pub protocol: Option<NetworkApprovalProtocol>,
13 pub host: Option<String>,
14 pub reason: Option<String>,
15 pub port: Option<u16>,
16}
17
18impl NetworkPolicyDecisionPayload {
19 pub fn is_ask_from_decider(&self) -> bool {
20 self.decision == NetworkPolicyDecision::Ask && self.source == NetworkDecisionSource::Decider
21 }
22}