Skip to main content

systemprompt_models/profile/
cloud.rs

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