Skip to main content

systemprompt_models/profile/
cloud.rs

1//! Cloud configuration.
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize, Default)]
6pub struct CloudConfig {
7    #[serde(default, skip_serializing_if = "Option::is_none")]
8    pub tenant_id: Option<String>,
9
10    #[serde(default)]
11    pub validation: CloudValidationMode,
12}
13
14impl CloudConfig {
15    #[must_use]
16    pub fn is_local_trial(&self) -> bool {
17        self.tenant_id
18            .as_deref()
19            .is_some_and(|t| t.starts_with("local_"))
20            || matches!(
21                self.validation,
22                CloudValidationMode::Warn | CloudValidationMode::Skip
23            )
24    }
25}
26
27#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
28#[serde(rename_all = "lowercase")]
29pub enum CloudValidationMode {
30    #[default]
31    Strict,
32    Warn,
33    Skip,
34}