updatehub_sdk/api/info/
runtime_settings.rs

1// Copyright (C) 2019, 2020 O.S. Systems Sofware LTDA
2//
3// SPDX-License-Identifier: Apache-2.0
4
5use chrono::{DateTime, Utc};
6use serde::{Deserialize, Serialize};
7use std::path::PathBuf;
8
9#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)]
10#[serde(deny_unknown_fields)]
11pub struct RuntimeSettings {
12    pub polling: RuntimePolling,
13    pub update: RuntimeUpdate,
14    pub path: PathBuf,
15    pub persistent: bool,
16}
17
18#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)]
19#[serde(deny_unknown_fields)]
20pub struct RuntimePolling {
21    pub last: DateTime<Utc>,
22    pub retries: usize,
23    pub now: bool,
24    pub server_address: ServerAddress,
25}
26
27#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)]
28#[serde(rename_all = "lowercase")]
29pub enum ServerAddress {
30    Default,
31    Custom(String),
32}
33
34#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Serialize)]
35#[serde(deny_unknown_fields)]
36pub struct RuntimeUpdate {
37    #[serde(skip_serializing_if = "Option::is_none")]
38    pub upgrade_to_installation: Option<InstallationSet>,
39    #[serde(skip_serializing_if = "Option::is_none")]
40    pub applied_package_uid: Option<String>,
41}
42
43#[derive(Clone, Copy, Debug, Deserialize, PartialEq, Eq, Serialize)]
44#[serde(rename_all = "lowercase")]
45pub enum InstallationSet {
46    A,
47    B,
48}