1use crate::principal::TrustLevel;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
8pub struct ServerProfile {
9 pub server_id: String,
11 pub transport: TransportKind,
13 pub command: Option<Vec<String>>,
15 pub url: Option<String>,
17 pub first_seen_at: i64,
19 pub command_hash: Option<String>,
21 pub descriptor_hash: Option<String>,
23 pub trust_level: TrustLevel,
25 pub sandbox_profile_id: Option<String>,
27}
28
29#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Hash)]
31#[non_exhaustive]
32#[serde(rename_all = "PascalCase")]
33pub enum TransportKind {
34 Stdio,
36 Http,
38}