greentic_types/
bindings.rs1extern crate alloc;
7
8pub mod hints {
10 use alloc::{string::String, vec::Vec};
11
12 #[cfg(feature = "schemars")]
13 use schemars::JsonSchema;
14 #[cfg(feature = "serde")]
15 use serde::{Deserialize, Serialize};
16
17 #[derive(Debug, Clone, Default, PartialEq, Eq)]
18 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
19 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
20 pub struct BindingsHints {
22 #[cfg_attr(feature = "serde", serde(default))]
24 pub network: NetworkHints,
25 #[cfg_attr(feature = "serde", serde(default))]
27 pub secrets: SecretsHints,
28 #[cfg_attr(feature = "serde", serde(default))]
31 pub env: EnvHints,
32 #[cfg_attr(feature = "serde", serde(default))]
35 pub mcp: McpHints,
36 }
37
38 #[derive(Debug, Clone, Default, PartialEq, Eq)]
39 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
40 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
41 pub struct NetworkHints {
43 #[cfg_attr(feature = "serde", serde(default))]
45 pub allow: Vec<String>,
46 }
47
48 #[derive(Debug, Clone, Default, PartialEq, Eq)]
49 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
50 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
51 pub struct SecretsHints {
53 #[cfg_attr(feature = "serde", serde(default))]
55 pub required: Vec<String>,
56 }
57
58 #[derive(Debug, Clone, Default, PartialEq, Eq)]
59 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
60 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
61 pub struct EnvHints {
63 #[cfg_attr(feature = "serde", serde(default))]
65 pub passthrough: Vec<String>,
66 }
67
68 #[derive(Debug, Clone, Default, PartialEq, Eq)]
69 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
70 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
71 pub struct McpHints {
73 #[cfg_attr(feature = "serde", serde(default))]
75 pub servers: Vec<McpServer>,
76 }
77
78 #[derive(Debug, Clone, PartialEq, Eq)]
79 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
80 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
81 pub struct McpServer {
83 pub name: String,
85 pub transport: String,
87 pub endpoint: String,
89 #[cfg_attr(feature = "serde", serde(default))]
91 pub caps: Vec<String>,
92 }
93}