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