greentic_types/
bindings.rs1extern crate alloc;
7
8pub mod hints {
10 use crate::SecretRequirement;
11 use alloc::{string::String, vec::Vec};
12
13 #[cfg(feature = "schemars")]
14 use schemars::JsonSchema;
15 #[cfg(feature = "serde")]
16 use serde::{Deserialize, Serialize};
17
18 #[derive(Debug, Clone, Default, PartialEq, Eq)]
19 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
20 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
21 pub struct BindingsHints {
23 #[cfg_attr(feature = "serde", serde(default))]
25 pub network: NetworkHints,
26 #[cfg_attr(feature = "serde", serde(default))]
28 pub secrets: SecretsHints,
29 #[cfg_attr(feature = "serde", serde(default))]
32 pub env: EnvHints,
33 #[cfg_attr(feature = "serde", serde(default))]
36 pub mcp: McpHints,
37 }
38
39 #[derive(Debug, Clone, Default, PartialEq, Eq)]
40 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
41 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
42 pub struct NetworkHints {
44 #[cfg_attr(feature = "serde", serde(default))]
46 pub allow: Vec<String>,
47 }
48
49 #[derive(Debug, Clone, Default, PartialEq, Eq)]
50 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
51 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
52 pub struct SecretsHints {
54 #[cfg_attr(feature = "serde", serde(default))]
56 pub required: Vec<SecretRequirement>,
57 }
58
59 #[derive(Debug, Clone, Default, PartialEq, Eq)]
60 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
61 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
62 pub struct EnvHints {
64 #[cfg_attr(feature = "serde", serde(default))]
66 pub passthrough: Vec<String>,
67 }
68
69 #[derive(Debug, Clone, Default, PartialEq, Eq)]
70 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
71 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
72 pub struct McpHints {
74 #[cfg_attr(feature = "serde", serde(default))]
76 pub servers: Vec<McpServer>,
77 }
78
79 #[derive(Debug, Clone, PartialEq, Eq)]
80 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
81 #[cfg_attr(feature = "schemars", derive(JsonSchema))]
82 pub struct McpServer {
84 pub name: String,
86 pub transport: String,
88 pub endpoint: String,
90 #[cfg_attr(feature = "serde", serde(default))]
92 pub caps: Vec<String>,
93 }
94}