objectiveai_sdk/mcp/tool/
resource_link.rs1use indexmap::IndexMap;
4use schemars::JsonSchema;
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
9#[schemars(rename = "mcp.tool.ResourceLink")]
10pub struct ResourceLink {
11 pub name: String,
13 pub uri: String,
15 #[serde(skip_serializing_if = "Option::is_none")]
17 #[schemars(extend("omitempty" = true))]
18 pub title: Option<String>,
19 #[serde(skip_serializing_if = "Option::is_none")]
21 #[schemars(extend("omitempty" = true))]
22 pub description: Option<String>,
23 #[serde(skip_serializing_if = "Option::is_none")]
25 #[schemars(extend("omitempty" = true))]
26 #[serde(rename = "mimeType")]
27 pub mime_type: Option<String>,
28 #[serde(skip_serializing_if = "Option::is_none")]
30 #[schemars(extend("omitempty" = true))]
31 pub icons: Option<Vec<super::super::shared::Icon>>,
32 #[serde(skip_serializing_if = "Option::is_none")]
34 #[schemars(extend("omitempty" = true))]
35 pub annotations: Option<super::super::shared::Annotations>,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 #[schemars(extend("omitempty" = true))]
39 pub _meta: Option<IndexMap<String, serde_json::Value>>,
40}