tftsr-devops_investigation/src-tauri/src/mcp/models.rs

92 lines
2.9 KiB
Rust
Raw Normal View History

use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct McpServer {
pub id: String,
pub name: String,
pub url: String,
pub transport_type: String,
pub transport_config: String,
pub auth_type: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub auth_value: Option<String>,
pub enabled: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_discovered_at: Option<String>,
pub discovery_status: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub discovery_error: Option<String>,
pub created_at: String,
pub updated_at: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub env_config: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct McpTool {
pub id: String,
pub server_id: String,
pub name: String,
pub tool_key: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub parameters: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct McpResource {
pub id: String,
pub server_id: String,
pub uri: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct McpServerStatus {
pub server_id: String,
pub status: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
pub tool_count: usize,
pub resource_count: usize,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_discovered_at: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreateMcpServerRequest {
pub name: String,
pub url: String,
pub transport_type: String,
pub transport_config: String,
pub auth_type: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub auth_value: Option<String>,
pub enabled: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub env_config: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UpdateMcpServerRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub transport_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub transport_config: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub auth_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub auth_value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub env_config: Option<String>,
}