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