Skip to main content

eero_api/api/
forwards.rs

1use crate::client::EeroClient;
2use crate::error::Result;
3use crate::types::forward::{NewPortForward, PortForward};
4
5impl EeroClient {
6    /// List all port forwards on a network.
7    #[tracing::instrument(skip(self))]
8    pub async fn get_port_forwards(&self, network_id: u64) -> Result<Vec<PortForward>> {
9        let url = self.url(&format!("/networks/{network_id}/forwards"));
10        self.get(&url).await
11    }
12
13    /// Create a new port forward.
14    #[tracing::instrument(skip(self, forward))]
15    pub async fn create_port_forward(
16        &self,
17        network_id: u64,
18        forward: &NewPortForward,
19    ) -> Result<PortForward> {
20        let url = self.url(&format!("/networks/{network_id}/forwards"));
21        self.post(&url, forward).await
22    }
23
24    /// Delete a port forward by its resource URL.
25    #[tracing::instrument(skip(self))]
26    pub async fn delete_port_forward(&self, forward_url: &str) -> Result<serde_json::Value> {
27        let url = self.resource_url(forward_url);
28        self.delete(&url).await
29    }
30}