systemprompt_models/profile/
cloud.rs1use 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}