Skip to main content

eero_api/api/
devices.rs

1use crate::client::EeroClient;
2use crate::error::Result;
3use crate::types::device::{Device, DeviceUpdate};
4
5impl EeroClient {
6    /// List all devices on a network.
7    #[tracing::instrument(skip(self))]
8    pub async fn get_devices(&self, network_id: u64) -> Result<Vec<Device>> {
9        let url = self.url(&format!("/networks/{network_id}/devices"));
10        self.get(&url).await
11    }
12
13    /// Get a specific device by its resource URL.
14    #[tracing::instrument(skip(self))]
15    pub async fn get_device(&self, device_url: &str) -> Result<Device> {
16        let url = self.resource_url(device_url);
17        self.get(&url).await
18    }
19
20    /// Update a device (nickname, blocked, paused, profile assignment).
21    #[tracing::instrument(skip(self, update))]
22    pub async fn update_device(
23        &self,
24        device_url: &str,
25        update: &DeviceUpdate,
26    ) -> Result<Device> {
27        let url = self.resource_url(device_url);
28        self.put(&url, update).await
29    }
30}