reolink_api/api/record/
get_recording.rs1use serde::{Deserialize, Serialize};
2use crate::api::JsonEndpoint;
3
4impl JsonEndpoint for GetRecordingRequest {
5 const CMD: &'static str = "GetRec";
6 type Response = GetRecordingResponse;
7 type Initial = GetRecordingResponse;
8 type Range = GetRecordingRange;
9}
10
11#[derive(Debug, Clone, Serialize)]
12pub struct GetRecordingRequest {
13 pub channel: usize,
14}
15
16#[derive(Debug, Clone, Deserialize)]
19pub struct GetRecordingResponse {
20 #[serde(rename = "Rec")]
21 pub rec: RecordingConfig,
22}
23
24#[derive(Debug, Clone, Deserialize)]
25pub struct RecordingConfig {
26 pub channel: usize,
27 pub overwrite: usize,
28 #[serde(rename = "packTime")]
29 pub pack_time: String, #[serde(rename = "postRec")]
31 pub post_rec: String,
32 #[serde(rename = "preRec")]
33 pub pre_rec: usize,
34 pub schedule: RecordingSchedule,
35}
36
37#[derive(Debug, Clone, Deserialize)]
38pub struct RecordingSchedule {
39 pub enable: usize,
40 pub table: String,
41}
42
43#[derive(Debug, Clone, Deserialize)]
46pub struct GetRecordingRange {
47 pub rec: RecordingRange,
48}
49
50#[derive(Debug, Clone, Deserialize)]
51pub struct RecordingRange {
52 pub channel: usize,
53 pub overwrite: String, #[serde(rename = "packTime")]
55 pub pack_time: Vec<String>, #[serde(rename = "postRec")]
57 pub post_rec: Vec<String>,
58 #[serde(rename = "preRec")]
59 pub pre_rec: String, #[serde(rename = "schedule")]
61 pub schedule: ScheduleRange,
62}
63
64#[derive(Debug, Clone, Deserialize)]
65pub struct ScheduleRange {
66 pub enable: usize,
67 pub table: String,
68}