Skip to main content

updatehub_sdk/api/info/
settings.rs

1// Copyright (C) 2020 O.S. Systems Sofware LTDA
2//
3// SPDX-License-Identifier: Apache-2.0
4
5use crate::serde_helpers;
6use chrono::Duration;
7use serde::{Deserialize, Serialize};
8use std::path::PathBuf;
9
10#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)]
11#[serde(deny_unknown_fields)]
12pub struct Settings {
13    pub firmware: Firmware,
14    pub network: Network,
15    pub polling: Polling,
16    pub storage: Storage,
17    pub update: Update,
18}
19
20#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)]
21#[serde(deny_unknown_fields)]
22pub struct Firmware {
23    pub metadata: PathBuf,
24}
25
26#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)]
27#[serde(deny_unknown_fields)]
28pub struct Network {
29    pub server_address: String,
30    pub listen_socket: String,
31}
32
33#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)]
34#[serde(deny_unknown_fields)]
35pub struct Polling {
36    #[serde(with = "serde_helpers::duration")]
37    pub interval: Duration,
38    pub enabled: bool,
39}
40
41#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)]
42#[serde(deny_unknown_fields)]
43pub struct Storage {
44    /// Determine if it should run on read-only mode or not. By
45    /// default, read-only mode is disabled.
46    pub read_only: bool,
47    /// Define where the runtime settings are stored. By default,
48    /// those are stored in
49    /// `/var/lib/updatehub/runtime_settings.conf`.
50    pub runtime_settings: PathBuf,
51}
52
53#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)]
54#[serde(deny_unknown_fields)]
55pub struct Update {
56    pub download_dir: PathBuf,
57    pub supported_install_modes: Vec<String>,
58}