1#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct GossipFrame {
5 #[prost(uint32, tag = "1")]
6 pub r#gen: u32,
7 #[prost(message, repeated, tag = "2")]
8 pub peers: ::prost::alloc::vec::Vec<PeerAnnouncement>,
9 #[prost(bytes = "vec", tag = "3")]
11 pub sender_id: ::prost::alloc::vec::Vec<u8>,
12}
13#[derive(Clone, PartialEq, ::prost::Message)]
14pub struct PeerAnnouncement {
15 #[prost(bytes = "vec", tag = "1")]
17 pub endpoint_id: ::prost::alloc::vec::Vec<u8>,
18 #[prost(enumeration = "NodeRole", tag = "2")]
19 pub role: i32,
20 #[prost(uint32, optional, tag = "3")]
21 pub http_port: ::core::option::Option<u32>,
22 #[prost(string, optional, tag = "4")]
23 pub version: ::core::option::Option<::prost::alloc::string::String>,
24 #[prost(string, optional, tag = "5")]
26 pub gpu_name: ::core::option::Option<::prost::alloc::string::String>,
27 #[prost(string, optional, tag = "6")]
29 pub hostname: ::core::option::Option<::prost::alloc::string::String>,
30 #[prost(bool, optional, tag = "7")]
32 pub is_soc: ::core::option::Option<bool>,
33 #[prost(string, optional, tag = "8")]
35 pub gpu_vram: ::core::option::Option<::prost::alloc::string::String>,
36 #[prost(string, repeated, tag = "9")]
38 pub available_models: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
39 #[prost(string, repeated, tag = "10")]
41 pub serving_models: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
42 #[prost(string, repeated, tag = "11")]
43 pub requested_models: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
44 #[prost(message, repeated, tag = "12")]
45 pub available_model_metadata: ::prost::alloc::vec::Vec<CompactModelMetadata>,
46 #[prost(message, optional, tag = "13")]
47 pub experts_summary: ::core::option::Option<ExpertsSummary>,
48 #[prost(uint32, optional, tag = "14")]
49 pub rtt_ms: ::core::option::Option<u32>,
50 #[prost(string, repeated, tag = "15")]
52 pub catalog_models: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
53 #[prost(uint64, tag = "16")]
55 pub vram_bytes: u64,
56 #[prost(string, optional, tag = "17")]
58 pub model_source: ::core::option::Option<::prost::alloc::string::String>,
59 #[prost(string, optional, tag = "18")]
61 pub primary_serving: ::core::option::Option<::prost::alloc::string::String>,
62 #[prost(string, optional, tag = "19")]
64 pub mesh_id: ::core::option::Option<::prost::alloc::string::String>,
65 #[prost(message, repeated, tag = "20")]
67 pub demand: ::prost::alloc::vec::Vec<ModelDemandEntry>,
68 #[prost(map = "string, uint64", tag = "21")]
70 pub available_model_sizes: ::std::collections::HashMap<::prost::alloc::string::String, u64>,
71 #[prost(bytes = "vec", tag = "22")]
73 pub serialized_addr: ::prost::alloc::vec::Vec<u8>,
74 #[prost(string, repeated, tag = "23")]
76 pub hosted_models: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
77 #[prost(bool, optional, tag = "24")]
79 pub hosted_models_known: ::core::option::Option<bool>,
80 #[prost(message, repeated, tag = "25")]
81 pub served_model_descriptors: ::prost::alloc::vec::Vec<ServedModelDescriptor>,
82 #[prost(message, repeated, tag = "26")]
83 pub served_model_identities: ::prost::alloc::vec::Vec<ServedModelIdentity>,
84 #[prost(message, repeated, tag = "27")]
85 pub served_model_runtime: ::prost::alloc::vec::Vec<ModelRuntimeDescriptor>,
86 #[prost(message, optional, tag = "28")]
87 pub owner_attestation: ::core::option::Option<SignedNodeOwnership>,
88 #[prost(string, optional, tag = "29")]
90 pub gpu_mem_bandwidth_gbps: ::core::option::Option<::prost::alloc::string::String>,
91 #[prost(string, optional, tag = "30")]
93 pub gpu_compute_tflops_fp32: ::core::option::Option<::prost::alloc::string::String>,
94 #[prost(string, optional, tag = "31")]
96 pub gpu_compute_tflops_fp16: ::core::option::Option<::prost::alloc::string::String>,
97 #[prost(string, optional, tag = "32")]
99 pub gpu_reserved_bytes: ::core::option::Option<::prost::alloc::string::String>,
100 #[prost(message, optional, tag = "33")]
102 pub hardware: ::core::option::Option<HardwareInfo>,
103 #[prost(uint64, optional, tag = "34")]
104 pub first_joined_mesh_ts: ::core::option::Option<u64>,
105 #[prost(string, repeated, tag = "35")]
107 pub explicit_model_interests: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
108 #[prost(message, repeated, tag = "37")]
110 pub subprotocols: ::prost::alloc::vec::Vec<MeshSubprotocol>,
111 #[prost(uint32, optional, tag = "40")]
112 pub latency_ms: ::core::option::Option<u32>,
113 #[prost(enumeration = "LatencySource", tag = "41")]
114 pub latency_source: i32,
115 #[prost(uint32, optional, tag = "42")]
116 pub latency_age_ms: ::core::option::Option<u32>,
117 #[prost(bytes = "vec", optional, tag = "43")]
118 pub latency_observer_id: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
119 #[prost(message, repeated, tag = "44")]
120 pub advertised_model_throughput: ::prost::alloc::vec::Vec<AdvertisedModelThroughput>,
121 #[prost(string, optional, tag = "45")]
122 pub mesh_policy_hash: ::core::option::Option<::prost::alloc::string::String>,
123 #[prost(message, optional, tag = "46")]
124 pub genesis_policy: ::core::option::Option<SignedMeshGenesisPolicy>,
125 #[prost(message, optional, tag = "47")]
126 pub release_attestation: ::core::option::Option<ReleaseBuildAttestation>,
127 #[prost(message, optional, tag = "48")]
128 pub direct_admission_proof: ::core::option::Option<DirectNodeAdmissionProof>,
129 #[prost(enumeration = "InferenceAdmissionState", optional, tag = "49")]
131 pub inference_admission_state: ::core::option::Option<i32>,
132}
133#[derive(Clone, PartialEq, ::prost::Message)]
134pub struct AdvertisedModelThroughput {
135 #[prost(string, tag = "1")]
136 pub model_name: ::prost::alloc::string::String,
137 #[prost(uint64, tag = "2")]
138 pub avg_tokens_per_second_milli: u64,
139 #[prost(uint64, tag = "3")]
140 pub throughput_samples: u64,
141}
142#[derive(Clone, PartialEq, ::prost::Message)]
143pub struct MeshSubprotocol {
144 #[prost(string, tag = "1")]
146 pub name: ::prost::alloc::string::String,
147 #[prost(uint32, tag = "2")]
149 pub major: u32,
150 #[prost(string, repeated, tag = "3")]
152 pub features: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
153}
154#[derive(Clone, PartialEq, ::prost::Message)]
155pub struct MeshSubprotocolOpen {
156 #[prost(uint32, tag = "1")]
157 pub r#gen: u32,
158 #[prost(string, tag = "2")]
160 pub name: ::prost::alloc::string::String,
161 #[prost(uint32, tag = "3")]
163 pub major: u32,
164}
165#[derive(Clone, PartialEq, ::prost::Message)]
166pub struct HardwareInfo {
167 #[prost(bool, optional, tag = "1")]
169 pub is_soc: ::core::option::Option<bool>,
170 #[prost(string, optional, tag = "2")]
171 pub hostname: ::core::option::Option<::prost::alloc::string::String>,
172 #[prost(message, repeated, tag = "3")]
173 pub gpus: ::prost::alloc::vec::Vec<GpuInfo>,
174}
175#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
176pub struct GpuInfo {
177 #[prost(string, optional, tag = "1")]
178 pub name: ::core::option::Option<::prost::alloc::string::String>,
179 #[prost(string, optional, tag = "2")]
180 pub vram_bytes: ::core::option::Option<::prost::alloc::string::String>,
181 #[prost(string, optional, tag = "3")]
182 pub reserved_bytes: ::core::option::Option<::prost::alloc::string::String>,
183 #[prost(string, optional, tag = "4")]
184 pub mem_bandwidth_gbps: ::core::option::Option<::prost::alloc::string::String>,
185 #[prost(string, optional, tag = "5")]
186 pub compute_tflops_fp32: ::core::option::Option<::prost::alloc::string::String>,
187 #[prost(string, optional, tag = "6")]
188 pub compute_tflops_fp16: ::core::option::Option<::prost::alloc::string::String>,
189}
190#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
191pub struct SignedNodeOwnership {
192 #[prost(uint32, tag = "1")]
193 pub version: u32,
194 #[prost(string, tag = "2")]
195 pub cert_id: ::prost::alloc::string::String,
196 #[prost(string, tag = "3")]
197 pub owner_id: ::prost::alloc::string::String,
198 #[prost(bytes = "vec", tag = "4")]
200 pub owner_sign_public_key: ::prost::alloc::vec::Vec<u8>,
201 #[prost(bytes = "vec", tag = "5")]
203 pub node_endpoint_id: ::prost::alloc::vec::Vec<u8>,
204 #[prost(uint64, tag = "6")]
205 pub issued_at_unix_ms: u64,
206 #[prost(uint64, tag = "7")]
207 pub expires_at_unix_ms: u64,
208 #[prost(string, optional, tag = "8")]
209 pub node_label: ::core::option::Option<::prost::alloc::string::String>,
210 #[prost(string, optional, tag = "9")]
211 pub hostname_hint: ::core::option::Option<::prost::alloc::string::String>,
212 #[prost(bytes = "vec", tag = "10")]
214 pub signature: ::prost::alloc::vec::Vec<u8>,
215}
216#[derive(Clone, PartialEq, ::prost::Message)]
217pub struct ServedModelDescriptor {
218 #[prost(message, optional, tag = "1")]
219 pub identity: ::core::option::Option<ServedModelIdentity>,
220 #[prost(message, optional, tag = "2")]
221 pub capabilities: ::core::option::Option<ModelCapabilities>,
222 #[prost(message, optional, tag = "3")]
223 pub topology: ::core::option::Option<ModelTopology>,
224 #[prost(bool, optional, tag = "4")]
225 pub capabilities_known: ::core::option::Option<bool>,
226 #[prost(message, optional, tag = "5")]
227 pub metadata: ::core::option::Option<ServedModelMetadata>,
228}
229#[derive(Clone, PartialEq, ::prost::Message)]
230pub struct ServedModelMetadata {
231 #[prost(string, optional, tag = "1")]
232 pub architecture: ::core::option::Option<::prost::alloc::string::String>,
233 #[prost(string, optional, tag = "2")]
234 pub parameter_size: ::core::option::Option<::prost::alloc::string::String>,
235 #[prost(double, optional, tag = "3")]
236 pub parameter_count_b: ::core::option::Option<f64>,
237 #[prost(string, optional, tag = "4")]
238 pub quant: ::core::option::Option<::prost::alloc::string::String>,
239 #[prost(uint32, optional, tag = "5")]
240 pub native_context_length: ::core::option::Option<u32>,
241 #[prost(string, optional, tag = "6")]
242 pub tokenizer: ::core::option::Option<::prost::alloc::string::String>,
243 #[prost(uint32, optional, tag = "7")]
244 pub layer_count: ::core::option::Option<u32>,
245 #[prost(uint32, optional, tag = "8")]
246 pub embedding_size: ::core::option::Option<u32>,
247 #[prost(uint32, optional, tag = "9")]
248 pub head_count: ::core::option::Option<u32>,
249 #[prost(uint32, optional, tag = "10")]
250 pub kv_head_count: ::core::option::Option<u32>,
251 #[prost(uint32, optional, tag = "11")]
252 pub expert_count: ::core::option::Option<u32>,
253 #[prost(uint32, optional, tag = "12")]
254 pub active_expert_count: ::core::option::Option<u32>,
255}
256#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
257pub struct ServedModelIdentity {
258 #[prost(string, tag = "1")]
259 pub model_name: ::prost::alloc::string::String,
260 #[prost(bool, tag = "2")]
261 pub is_primary: bool,
262 #[prost(enumeration = "ModelSourceKind", tag = "3")]
263 pub source_kind: i32,
264 #[prost(string, optional, tag = "4")]
265 pub canonical_ref: ::core::option::Option<::prost::alloc::string::String>,
266 #[prost(string, optional, tag = "5")]
267 pub repository: ::core::option::Option<::prost::alloc::string::String>,
268 #[prost(string, optional, tag = "6")]
269 pub revision: ::core::option::Option<::prost::alloc::string::String>,
270 #[prost(string, optional, tag = "7")]
271 pub artifact: ::core::option::Option<::prost::alloc::string::String>,
272 #[prost(string, optional, tag = "8")]
273 pub local_file_name: ::core::option::Option<::prost::alloc::string::String>,
274 #[prost(string, optional, tag = "9")]
275 pub identity_hash: ::core::option::Option<::prost::alloc::string::String>,
276}
277#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
278pub struct ModelCapabilities {
279 #[prost(enumeration = "CapabilityLevel", tag = "1")]
280 pub vision: i32,
281 #[prost(enumeration = "CapabilityLevel", tag = "2")]
282 pub reasoning: i32,
283 #[prost(enumeration = "CapabilityLevel", tag = "3")]
284 pub tool_use: i32,
285 #[prost(bool, tag = "4")]
286 pub moe: bool,
287 #[prost(bool, tag = "5")]
288 pub multimodal: bool,
289 #[prost(enumeration = "CapabilityLevel", tag = "6")]
290 pub audio: i32,
291}
292#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
293pub struct ModelTopology {
294 #[prost(message, optional, tag = "1")]
295 pub moe: ::core::option::Option<ModelMoeInfo>,
296}
297#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
298pub struct ModelRuntimeDescriptor {
299 #[prost(string, tag = "1")]
300 pub model_name: ::prost::alloc::string::String,
301 #[prost(string, optional, tag = "2")]
302 pub identity_hash: ::core::option::Option<::prost::alloc::string::String>,
303 #[prost(uint32, optional, tag = "3")]
304 pub context_length: ::core::option::Option<u32>,
305 #[prost(bool, tag = "4")]
306 pub ready: bool,
307}
308#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
309pub struct ModelMoeInfo {
310 #[prost(uint32, tag = "1")]
311 pub expert_count: u32,
312 #[prost(uint32, tag = "2")]
313 pub used_expert_count: u32,
314 #[prost(uint32, optional, tag = "3")]
315 pub min_experts_per_node: ::core::option::Option<u32>,
316 #[prost(string, optional, tag = "4")]
317 pub source: ::core::option::Option<::prost::alloc::string::String>,
318 #[prost(string, optional, tag = "5")]
319 pub ranking_source: ::core::option::Option<::prost::alloc::string::String>,
320 #[prost(uint32, repeated, tag = "6")]
321 pub ranking: ::prost::alloc::vec::Vec<u32>,
322 #[prost(uint32, optional, tag = "7")]
323 pub ranking_prompt_count: ::core::option::Option<u32>,
324 #[prost(uint32, optional, tag = "8")]
325 pub ranking_tokens: ::core::option::Option<u32>,
326 #[prost(string, optional, tag = "9")]
327 pub ranking_layer_scope: ::core::option::Option<::prost::alloc::string::String>,
328 #[prost(string, optional, tag = "10")]
329 pub ranking_origin: ::core::option::Option<::prost::alloc::string::String>,
330}
331#[derive(Clone, PartialEq, ::prost::Message)]
332pub struct CompactModelMetadata {
333 #[prost(string, tag = "1")]
334 pub model_key: ::prost::alloc::string::String,
335 #[prost(uint32, tag = "2")]
336 pub context_length: u32,
337 #[prost(uint32, tag = "3")]
338 pub vocab_size: u32,
339 #[prost(uint32, tag = "4")]
340 pub embedding_size: u32,
341 #[prost(uint32, tag = "5")]
342 pub head_count: u32,
343 #[prost(uint32, tag = "6")]
344 pub layer_count: u32,
345 #[prost(uint32, tag = "7")]
346 pub feed_forward_length: u32,
347 #[prost(uint32, tag = "8")]
348 pub key_length: u32,
349 #[prost(uint32, tag = "9")]
350 pub value_length: u32,
351 #[prost(string, tag = "10")]
352 pub architecture: ::prost::alloc::string::String,
353 #[prost(string, tag = "11")]
354 pub tokenizer_model_name: ::prost::alloc::string::String,
355 #[prost(message, repeated, tag = "12")]
356 pub special_tokens: ::prost::alloc::vec::Vec<SpecialToken>,
357 #[prost(float, tag = "13")]
358 pub rope_scale: f32,
359 #[prost(float, tag = "14")]
360 pub rope_freq_base: f32,
361 #[prost(bool, tag = "15")]
362 pub is_moe: bool,
363 #[prost(uint32, tag = "16")]
364 pub expert_count: u32,
365 #[prost(uint32, tag = "17")]
366 pub used_expert_count: u32,
367 #[prost(string, tag = "18")]
369 pub quantization_type: ::prost::alloc::string::String,
370 #[prost(uint32, tag = "19")]
371 pub kv_head_count: u32,
372 #[prost(string, optional, tag = "20")]
374 pub parameter_size: ::core::option::Option<::prost::alloc::string::String>,
375}
376#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
377pub struct SpecialToken {
378 #[prost(string, tag = "1")]
379 pub name: ::prost::alloc::string::String,
380 #[prost(uint32, tag = "2")]
381 pub token_id: u32,
382}
383#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
384pub struct ExpertsSummary {
385 #[prost(uint32, tag = "1")]
386 pub total_experts: u32,
387 #[prost(uint32, tag = "2")]
388 pub expert_count_used: u32,
389 #[prost(uint32, repeated, tag = "3")]
390 pub top_expert_ids: ::prost::alloc::vec::Vec<u32>,
391}
392#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
393pub struct ModelDemandEntry {
394 #[prost(string, tag = "1")]
395 pub model_name: ::prost::alloc::string::String,
396 #[prost(uint64, tag = "2")]
397 pub last_active: u64,
398 #[prost(uint64, tag = "3")]
399 pub request_count: u64,
400}
401#[derive(Clone, PartialEq, ::prost::Message)]
403pub struct TunnelMap {
404 #[prost(bytes = "vec", tag = "1")]
405 pub owner_peer_id: ::prost::alloc::vec::Vec<u8>,
406 #[prost(message, repeated, tag = "2")]
407 pub entries: ::prost::alloc::vec::Vec<TunnelEntry>,
408}
409#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
410pub struct TunnelEntry {
411 #[prost(bytes = "vec", tag = "1")]
412 pub target_peer_id: ::prost::alloc::vec::Vec<u8>,
413 #[prost(bytes = "vec", optional, tag = "2")]
414 pub relay_peer_id: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
415 #[prost(uint32, tag = "3")]
416 pub tunnel_port: u32,
417}
418#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
420pub struct RouteTableRequest {
421 #[prost(bytes = "vec", tag = "1")]
423 pub requester_id: ::prost::alloc::vec::Vec<u8>,
424 #[prost(uint32, tag = "2")]
426 pub r#gen: u32,
427}
428#[derive(Clone, PartialEq, ::prost::Message)]
429pub struct RouteTable {
430 #[prost(message, repeated, tag = "1")]
431 pub entries: ::prost::alloc::vec::Vec<RouteEntry>,
432 #[prost(string, optional, tag = "2")]
434 pub mesh_id: ::core::option::Option<::prost::alloc::string::String>,
435 #[prost(uint32, tag = "3")]
437 pub r#gen: u32,
438}
439#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
440pub struct RouteEntry {
441 #[prost(bytes = "vec", tag = "1")]
443 pub endpoint_id: ::prost::alloc::vec::Vec<u8>,
444 #[prost(string, tag = "2")]
446 pub model: ::prost::alloc::string::String,
447}
448#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
450pub struct PeerDown {
451 #[prost(bytes = "vec", tag = "1")]
453 pub peer_id: ::prost::alloc::vec::Vec<u8>,
454 #[prost(uint32, tag = "2")]
456 pub r#gen: u32,
457}
458#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
460pub struct PeerLeaving {
461 #[prost(bytes = "vec", tag = "1")]
463 pub peer_id: ::prost::alloc::vec::Vec<u8>,
464 #[prost(uint32, tag = "2")]
466 pub r#gen: u32,
467}
468#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
470pub struct DirectPathRequest {
471 #[prost(bytes = "vec", tag = "1")]
473 pub requester_id: ::prost::alloc::vec::Vec<u8>,
474 #[prost(uint32, tag = "2")]
476 pub r#gen: u32,
477 #[prost(bytes = "vec", tag = "3")]
479 pub serialized_addr: ::prost::alloc::vec::Vec<u8>,
480}
481#[derive(Clone, PartialEq, ::prost::Message)]
482pub struct NodeConfigSnapshot {
483 #[prost(uint32, tag = "1")]
485 pub version: u32,
486 #[prost(message, optional, tag = "2")]
487 pub gpu: ::core::option::Option<NodeGpuConfig>,
488 #[prost(message, repeated, tag = "3")]
489 pub models: ::prost::alloc::vec::Vec<NodeModelEntry>,
490 #[prost(message, repeated, tag = "4")]
491 pub plugins: ::prost::alloc::vec::Vec<NodePluginEntry>,
492 #[prost(string, optional, tag = "5")]
494 pub config_toml: ::core::option::Option<::prost::alloc::string::String>,
495 #[prost(message, optional, tag = "6")]
499 pub mesh_requirements: ::core::option::Option<MeshRequirements>,
500}
501#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
502pub struct NodeGpuConfig {
503 #[prost(enumeration = "GpuAssignment", tag = "1")]
504 pub assignment: i32,
505}
506#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
507pub struct ConfiguredModelRef {
508 #[prost(string, tag = "1")]
509 pub declared_ref: ::prost::alloc::string::String,
510 #[prost(string, optional, tag = "2")]
511 pub source_kind: ::core::option::Option<::prost::alloc::string::String>,
512 #[prost(string, optional, tag = "3")]
513 pub revision: ::core::option::Option<::prost::alloc::string::String>,
514}
515#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
516pub struct NodeModelEntry {
517 #[prost(string, tag = "1")]
518 pub model: ::prost::alloc::string::String,
519 #[prost(string, optional, tag = "2")]
520 pub mmproj: ::core::option::Option<::prost::alloc::string::String>,
521 #[prost(uint32, optional, tag = "3")]
522 pub ctx_size: ::core::option::Option<u32>,
523 #[prost(string, optional, tag = "4")]
524 pub gpu_id: ::core::option::Option<::prost::alloc::string::String>,
525 #[prost(message, optional, tag = "5")]
526 pub model_ref: ::core::option::Option<ConfiguredModelRef>,
527 #[prost(message, optional, tag = "6")]
528 pub mmproj_ref: ::core::option::Option<ConfiguredModelRef>,
529}
530#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
531pub struct NodePluginEntry {
532 #[prost(string, tag = "1")]
533 pub name: ::prost::alloc::string::String,
534 #[prost(bool, optional, tag = "2")]
535 pub enabled: ::core::option::Option<bool>,
536 #[prost(string, optional, tag = "3")]
537 pub command: ::core::option::Option<::prost::alloc::string::String>,
538 #[prost(string, repeated, tag = "4")]
539 pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
540}
541#[derive(Clone, PartialEq, ::prost::Message)]
542pub struct OwnerControlEnvelope {
543 #[prost(uint32, tag = "1")]
545 pub r#gen: u32,
546 #[prost(message, optional, tag = "2")]
547 pub handshake: ::core::option::Option<OwnerControlHandshake>,
548 #[prost(message, optional, tag = "3")]
549 pub request: ::core::option::Option<OwnerControlRequest>,
550 #[prost(message, optional, tag = "4")]
551 pub response: ::core::option::Option<OwnerControlResponse>,
552 #[prost(message, optional, tag = "5")]
553 pub error: ::core::option::Option<OwnerControlError>,
554}
555#[derive(Clone, PartialEq, ::prost::Message)]
556pub struct OwnerControlHandshake {
557 #[prost(message, optional, tag = "1")]
558 pub ownership: ::core::option::Option<SignedNodeOwnership>,
559}
560#[derive(Clone, PartialEq, ::prost::Message)]
561pub struct OwnerControlRequest {
562 #[prost(uint64, tag = "1")]
563 pub request_id: u64,
564 #[prost(message, optional, tag = "2")]
565 pub get_config: ::core::option::Option<OwnerControlGetConfigRequest>,
566 #[prost(message, optional, tag = "3")]
567 pub watch_config: ::core::option::Option<OwnerControlWatchConfigRequest>,
568 #[prost(message, optional, tag = "4")]
569 pub apply_config: ::core::option::Option<OwnerControlApplyConfigRequest>,
570 #[prost(message, optional, tag = "5")]
571 pub refresh_inventory: ::core::option::Option<OwnerControlRefreshInventoryRequest>,
572 #[prost(message, optional, tag = "6")]
573 pub load_model: ::core::option::Option<OwnerControlLoadModelRequest>,
574 #[prost(message, optional, tag = "7")]
575 pub unload_model: ::core::option::Option<OwnerControlUnloadModelRequest>,
576 #[prost(message, optional, tag = "8")]
577 pub ensure_model: ::core::option::Option<OwnerControlEnsureModelRequest>,
578 #[prost(message, optional, tag = "9")]
579 pub drain_model: ::core::option::Option<OwnerControlDrainModelRequest>,
580}
581#[derive(Clone, PartialEq, ::prost::Message)]
582pub struct OwnerControlResponse {
583 #[prost(uint64, tag = "1")]
584 pub request_id: u64,
585 #[prost(message, optional, tag = "2")]
586 pub get_config: ::core::option::Option<OwnerControlGetConfigResponse>,
587 #[prost(message, optional, tag = "3")]
588 pub watch_config: ::core::option::Option<OwnerControlWatchConfigResponse>,
589 #[prost(message, optional, tag = "4")]
590 pub apply_config: ::core::option::Option<OwnerControlApplyConfigResponse>,
591 #[prost(message, optional, tag = "5")]
592 pub refresh_inventory: ::core::option::Option<OwnerControlRefreshInventoryResponse>,
593 #[prost(message, optional, tag = "6")]
594 pub load_model: ::core::option::Option<OwnerControlLoadModelResponse>,
595 #[prost(message, optional, tag = "7")]
596 pub unload_model: ::core::option::Option<OwnerControlUnloadModelResponse>,
597 #[prost(message, optional, tag = "8")]
598 pub ensure_model: ::core::option::Option<OwnerControlEnsureModelResponse>,
599 #[prost(message, optional, tag = "9")]
600 pub drain_model: ::core::option::Option<OwnerControlDrainModelResponse>,
601}
602#[derive(Clone, PartialEq, ::prost::Message)]
603pub struct OwnerControlError {
604 #[prost(enumeration = "OwnerControlErrorCode", tag = "1")]
605 pub code: i32,
606 #[prost(string, tag = "2")]
607 pub message: ::prost::alloc::string::String,
608 #[prost(uint64, optional, tag = "3")]
609 pub request_id: ::core::option::Option<u64>,
610 #[prost(uint64, optional, tag = "4")]
611 pub current_revision: ::core::option::Option<u64>,
612}
613#[derive(Clone, PartialEq, ::prost::Message)]
614pub struct OwnerControlGetConfigRequest {
615 #[prost(bytes = "vec", tag = "1")]
617 pub requester_node_id: ::prost::alloc::vec::Vec<u8>,
618 #[prost(bytes = "vec", tag = "2")]
620 pub target_node_id: ::prost::alloc::vec::Vec<u8>,
621}
622#[derive(Clone, PartialEq, ::prost::Message)]
623pub struct OwnerControlGetConfigResponse {
624 #[prost(message, optional, tag = "1")]
625 pub snapshot: ::core::option::Option<OwnerControlConfigSnapshot>,
626}
627#[derive(Clone, PartialEq, ::prost::Message)]
628pub struct OwnerControlWatchConfigRequest {
629 #[prost(bytes = "vec", tag = "1")]
631 pub requester_node_id: ::prost::alloc::vec::Vec<u8>,
632 #[prost(bytes = "vec", tag = "2")]
634 pub target_node_id: ::prost::alloc::vec::Vec<u8>,
635 #[prost(bool, tag = "3")]
636 pub include_snapshot: bool,
637}
638#[derive(Clone, PartialEq, ::prost::Message)]
639pub struct OwnerControlWatchConfigResponse {
640 #[prost(message, optional, tag = "1")]
641 pub accepted: ::core::option::Option<OwnerControlWatchAccepted>,
642 #[prost(message, optional, tag = "2")]
643 pub snapshot: ::core::option::Option<OwnerControlConfigSnapshot>,
644 #[prost(message, optional, tag = "3")]
645 pub update: ::core::option::Option<OwnerControlConfigUpdate>,
646}
647#[derive(Clone, PartialEq, ::prost::Message)]
648pub struct OwnerControlWatchAccepted {
649 #[prost(bytes = "vec", tag = "1")]
651 pub target_node_id: ::prost::alloc::vec::Vec<u8>,
652}
653#[derive(Clone, PartialEq, ::prost::Message)]
654pub struct OwnerControlApplyConfigRequest {
655 #[prost(bytes = "vec", tag = "1")]
657 pub requester_node_id: ::prost::alloc::vec::Vec<u8>,
658 #[prost(bytes = "vec", tag = "2")]
660 pub target_node_id: ::prost::alloc::vec::Vec<u8>,
661 #[prost(uint64, tag = "3")]
662 pub expected_revision: u64,
663 #[prost(message, optional, tag = "4")]
664 pub config: ::core::option::Option<NodeConfigSnapshot>,
665}
666#[derive(Clone, PartialEq, ::prost::Message)]
667pub struct OwnerControlApplyConfigResponse {
668 #[prost(bool, tag = "1")]
669 pub success: bool,
670 #[prost(uint64, tag = "2")]
671 pub current_revision: u64,
672 #[prost(bytes = "vec", tag = "3")]
673 pub config_hash: ::prost::alloc::vec::Vec<u8>,
674 #[prost(string, optional, tag = "4")]
675 pub error: ::core::option::Option<::prost::alloc::string::String>,
676 #[prost(enumeration = "ConfigApplyMode", tag = "5")]
677 pub apply_mode: i32,
678 #[prost(message, repeated, tag = "6")]
679 pub diagnostics: ::prost::alloc::vec::Vec<ConfigDiagnostic>,
680}
681#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
682pub struct ConfigDiagnostic {
683 #[prost(enumeration = "ConfigDiagnosticCode", tag = "1")]
684 pub code: i32,
685 #[prost(enumeration = "ConfigDiagnosticSeverity", tag = "2")]
686 pub severity: i32,
687 #[prost(enumeration = "ConfigDiagnosticSource", tag = "3")]
688 pub source: i32,
689 #[prost(enumeration = "ConfigDiagnosticSchemaSource", optional, tag = "4")]
690 pub schema_source: ::core::option::Option<i32>,
691 #[prost(string, optional, tag = "5")]
692 pub path: ::core::option::Option<::prost::alloc::string::String>,
693 #[prost(string, optional, tag = "6")]
694 pub canonical_path: ::core::option::Option<::prost::alloc::string::String>,
695 #[prost(string, tag = "7")]
696 pub message: ::prost::alloc::string::String,
697 #[prost(string, optional, tag = "8")]
698 pub help: ::core::option::Option<::prost::alloc::string::String>,
699}
700#[derive(Clone, PartialEq, ::prost::Message)]
701pub struct OwnerControlRefreshInventoryRequest {
702 #[prost(bytes = "vec", tag = "1")]
704 pub requester_node_id: ::prost::alloc::vec::Vec<u8>,
705 #[prost(bytes = "vec", tag = "2")]
707 pub target_node_id: ::prost::alloc::vec::Vec<u8>,
708}
709#[derive(Clone, PartialEq, ::prost::Message)]
710pub struct OwnerControlRefreshInventoryResponse {
711 #[prost(message, optional, tag = "1")]
712 pub snapshot: ::core::option::Option<OwnerControlConfigSnapshot>,
713 #[prost(message, optional, tag = "2")]
714 pub inventory: ::core::option::Option<OwnerControlRefreshInventory>,
715}
716#[derive(Clone, PartialEq, ::prost::Message)]
717pub struct OwnerControlModelRef {
718 #[prost(string, tag = "1")]
719 pub canonical_model_ref: ::prost::alloc::string::String,
720 #[prost(string, optional, tag = "2")]
721 pub instance_id: ::core::option::Option<::prost::alloc::string::String>,
722}
723#[derive(Clone, PartialEq, ::prost::Message)]
724pub struct OwnerControlLoadModelRequest {
725 #[prost(bytes = "vec", tag = "1")]
726 pub requester_node_id: ::prost::alloc::vec::Vec<u8>,
727 #[prost(bytes = "vec", tag = "2")]
728 pub target_node_id: ::prost::alloc::vec::Vec<u8>,
729 #[prost(message, optional, tag = "3")]
730 pub model: ::core::option::Option<OwnerControlModelRef>,
731 #[prost(string, optional, tag = "4")]
732 pub profile: ::core::option::Option<::prost::alloc::string::String>,
733}
734#[derive(Clone, PartialEq, ::prost::Message)]
735pub struct OwnerControlUnloadModelRequest {
736 #[prost(bytes = "vec", tag = "1")]
737 pub requester_node_id: ::prost::alloc::vec::Vec<u8>,
738 #[prost(bytes = "vec", tag = "2")]
739 pub target_node_id: ::prost::alloc::vec::Vec<u8>,
740 #[prost(message, optional, tag = "3")]
741 pub model: ::core::option::Option<OwnerControlModelRef>,
742}
743#[derive(Clone, PartialEq, ::prost::Message)]
744pub struct OwnerControlEnsureModelRequest {
745 #[prost(bytes = "vec", tag = "1")]
746 pub requester_node_id: ::prost::alloc::vec::Vec<u8>,
747 #[prost(bytes = "vec", tag = "2")]
748 pub target_node_id: ::prost::alloc::vec::Vec<u8>,
749 #[prost(message, optional, tag = "3")]
750 pub model: ::core::option::Option<OwnerControlModelRef>,
751 #[prost(string, optional, tag = "4")]
752 pub profile: ::core::option::Option<::prost::alloc::string::String>,
753}
754#[derive(Clone, PartialEq, ::prost::Message)]
755pub struct OwnerControlDrainModelRequest {
756 #[prost(bytes = "vec", tag = "1")]
757 pub requester_node_id: ::prost::alloc::vec::Vec<u8>,
758 #[prost(bytes = "vec", tag = "2")]
759 pub target_node_id: ::prost::alloc::vec::Vec<u8>,
760 #[prost(message, optional, tag = "3")]
761 pub model: ::core::option::Option<OwnerControlModelRef>,
762 #[prost(uint64, optional, tag = "4")]
763 pub drain_timeout_secs: ::core::option::Option<u64>,
764}
765#[derive(Clone, PartialEq, ::prost::Message)]
766pub struct OwnerControlLoadModelResponse {
767 #[prost(string, tag = "1")]
768 pub intent_id: ::prost::alloc::string::String,
769 #[prost(string, tag = "2")]
770 pub accepted_state: ::prost::alloc::string::String,
771 #[prost(message, optional, tag = "3")]
772 pub target: ::core::option::Option<OwnerControlModelRef>,
773}
774#[derive(Clone, PartialEq, ::prost::Message)]
775pub struct OwnerControlUnloadModelResponse {
776 #[prost(string, tag = "1")]
777 pub intent_id: ::prost::alloc::string::String,
778 #[prost(string, tag = "2")]
779 pub accepted_state: ::prost::alloc::string::String,
780 #[prost(message, optional, tag = "3")]
781 pub target: ::core::option::Option<OwnerControlModelRef>,
782}
783#[derive(Clone, PartialEq, ::prost::Message)]
784pub struct OwnerControlEnsureModelResponse {
785 #[prost(string, tag = "1")]
786 pub intent_id: ::prost::alloc::string::String,
787 #[prost(string, tag = "2")]
788 pub accepted_state: ::prost::alloc::string::String,
789 #[prost(message, optional, tag = "3")]
790 pub target: ::core::option::Option<OwnerControlModelRef>,
791}
792#[derive(Clone, PartialEq, ::prost::Message)]
793pub struct OwnerControlDrainModelResponse {
794 #[prost(string, tag = "1")]
795 pub intent_id: ::prost::alloc::string::String,
796 #[prost(string, tag = "2")]
797 pub accepted_state: ::prost::alloc::string::String,
798 #[prost(message, optional, tag = "3")]
799 pub target: ::core::option::Option<OwnerControlModelRef>,
800}
801#[derive(Clone, PartialEq, ::prost::Message)]
802pub struct OwnerControlRefreshInventory {
803 #[prost(message, repeated, tag = "1")]
804 pub entries: ::prost::alloc::vec::Vec<OwnerControlInventoryEntry>,
805 #[prost(enumeration = "OwnerControlRefreshInventoryDisposition", tag = "2")]
806 pub disposition: i32,
807}
808#[derive(Clone, PartialEq, ::prost::Message)]
809pub struct OwnerControlInventoryEntry {
810 #[prost(string, tag = "1")]
811 pub canonical_model_ref: ::prost::alloc::string::String,
812 #[prost(string, optional, tag = "2")]
813 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
814 #[prost(uint64, tag = "3")]
815 pub total_size_bytes: u64,
816 #[prost(message, optional, tag = "4")]
817 pub metadata: ::core::option::Option<CompactModelMetadata>,
818}
819#[derive(Clone, PartialEq, ::prost::Message)]
820pub struct OwnerControlConfigSnapshot {
821 #[prost(bytes = "vec", tag = "1")]
823 pub node_id: ::prost::alloc::vec::Vec<u8>,
824 #[prost(uint64, tag = "2")]
825 pub revision: u64,
826 #[prost(bytes = "vec", tag = "3")]
828 pub config_hash: ::prost::alloc::vec::Vec<u8>,
829 #[prost(message, optional, tag = "4")]
830 pub config: ::core::option::Option<NodeConfigSnapshot>,
831 #[prost(string, optional, tag = "5")]
832 pub hostname: ::core::option::Option<::prost::alloc::string::String>,
833}
834#[derive(Clone, PartialEq, ::prost::Message)]
835pub struct OwnerControlConfigUpdate {
836 #[prost(bytes = "vec", tag = "1")]
838 pub node_id: ::prost::alloc::vec::Vec<u8>,
839 #[prost(uint64, tag = "2")]
840 pub revision: u64,
841 #[prost(bytes = "vec", tag = "3")]
843 pub config_hash: ::prost::alloc::vec::Vec<u8>,
844 #[prost(message, optional, tag = "4")]
845 pub config: ::core::option::Option<NodeConfigSnapshot>,
846}
847#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
848#[repr(i32)]
849pub enum CapabilityLevel {
850 Unspecified = 0,
851 None = 1,
852 Likely = 2,
853 Supported = 3,
854}
855impl CapabilityLevel {
856 pub fn as_str_name(&self) -> &'static str {
861 match self {
862 Self::Unspecified => "CAPABILITY_LEVEL_UNSPECIFIED",
863 Self::None => "CAPABILITY_LEVEL_NONE",
864 Self::Likely => "CAPABILITY_LEVEL_LIKELY",
865 Self::Supported => "CAPABILITY_LEVEL_SUPPORTED",
866 }
867 }
868 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
870 match value {
871 "CAPABILITY_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
872 "CAPABILITY_LEVEL_NONE" => Some(Self::None),
873 "CAPABILITY_LEVEL_LIKELY" => Some(Self::Likely),
874 "CAPABILITY_LEVEL_SUPPORTED" => Some(Self::Supported),
875 _ => None,
876 }
877 }
878}
879#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
880#[repr(i32)]
881pub enum ModelSourceKind {
882 Unspecified = 0,
883 Catalog = 1,
884 HuggingFace = 2,
885 LocalGguf = 3,
886 DirectUrl = 4,
887 Unknown = 5,
888}
889impl ModelSourceKind {
890 pub fn as_str_name(&self) -> &'static str {
895 match self {
896 Self::Unspecified => "MODEL_SOURCE_KIND_UNSPECIFIED",
897 Self::Catalog => "MODEL_SOURCE_KIND_CATALOG",
898 Self::HuggingFace => "MODEL_SOURCE_KIND_HUGGING_FACE",
899 Self::LocalGguf => "MODEL_SOURCE_KIND_LOCAL_GGUF",
900 Self::DirectUrl => "MODEL_SOURCE_KIND_DIRECT_URL",
901 Self::Unknown => "MODEL_SOURCE_KIND_UNKNOWN",
902 }
903 }
904 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
906 match value {
907 "MODEL_SOURCE_KIND_UNSPECIFIED" => Some(Self::Unspecified),
908 "MODEL_SOURCE_KIND_CATALOG" => Some(Self::Catalog),
909 "MODEL_SOURCE_KIND_HUGGING_FACE" => Some(Self::HuggingFace),
910 "MODEL_SOURCE_KIND_LOCAL_GGUF" => Some(Self::LocalGguf),
911 "MODEL_SOURCE_KIND_DIRECT_URL" => Some(Self::DirectUrl),
912 "MODEL_SOURCE_KIND_UNKNOWN" => Some(Self::Unknown),
913 _ => None,
914 }
915 }
916}
917#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
919#[repr(i32)]
920pub enum NodeRole {
921 Unspecified = 0,
922 Worker = 1,
923 Host = 2,
924 Client = 3,
925}
926impl NodeRole {
927 pub fn as_str_name(&self) -> &'static str {
932 match self {
933 Self::Unspecified => "NODE_ROLE_UNSPECIFIED",
934 Self::Worker => "WORKER",
935 Self::Host => "HOST",
936 Self::Client => "CLIENT",
937 }
938 }
939 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
941 match value {
942 "NODE_ROLE_UNSPECIFIED" => Some(Self::Unspecified),
943 "WORKER" => Some(Self::Worker),
944 "HOST" => Some(Self::Host),
945 "CLIENT" => Some(Self::Client),
946 _ => None,
947 }
948 }
949}
950#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
952#[repr(i32)]
953pub enum LatencySource {
954 Unspecified = 0,
955 Direct = 1,
956 Estimated = 2,
957 Unknown = 3,
958}
959#[derive(Clone, PartialEq, ::prost::Message)]
960pub struct SignedMeshGenesisPolicy {
961 #[prost(uint32, tag = "1")]
962 pub version: u32,
963 #[prost(message, optional, tag = "2")]
964 pub policy: ::core::option::Option<MeshGenesisPolicy>,
965 #[prost(bytes = "vec", tag = "3")]
966 pub origin_sign_public_key: ::prost::alloc::vec::Vec<u8>,
967 #[prost(string, tag = "4")]
968 pub signature_algorithm: ::prost::alloc::string::String,
969 #[prost(bytes = "vec", tag = "5")]
970 pub signature: ::prost::alloc::vec::Vec<u8>,
971}
972#[derive(Clone, PartialEq, ::prost::Message)]
973pub struct MeshGenesisPolicy {
974 #[prost(uint32, tag = "1")]
975 pub version: u32,
976 #[prost(string, tag = "2")]
977 pub origin_owner_id: ::prost::alloc::string::String,
978 #[prost(uint64, tag = "3")]
979 pub created_at_unix_ms: u64,
980 #[prost(message, optional, tag = "4")]
981 pub requirements: ::core::option::Option<MeshRequirements>,
982}
983#[derive(Clone, PartialEq, ::prost::Message)]
984pub struct MeshRequirements {
985 #[prost(message, optional, tag = "1")]
986 pub node_version: ::core::option::Option<NodeVersionBounds>,
987 #[prost(message, optional, tag = "2")]
988 pub protocol_generation: ::core::option::Option<ProtocolGenerationBounds>,
989 #[prost(message, optional, tag = "3")]
990 pub release_attestation: ::core::option::Option<ReleaseAttestationRequirement>,
991}
992#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
993pub struct NodeVersionBounds {
994 #[prost(string, optional, tag = "1")]
995 pub min: ::core::option::Option<::prost::alloc::string::String>,
996 #[prost(string, optional, tag = "2")]
997 pub max: ::core::option::Option<::prost::alloc::string::String>,
998}
999#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1000pub struct ProtocolGenerationBounds {
1001 #[prost(uint32, optional, tag = "1")]
1002 pub min: ::core::option::Option<u32>,
1003 #[prost(uint32, optional, tag = "2")]
1004 pub max: ::core::option::Option<u32>,
1005}
1006#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1007pub struct ReleaseAttestationRequirement {
1008 #[prost(bool, optional, tag = "1")]
1009 pub required: ::core::option::Option<bool>,
1010 #[prost(string, repeated, tag = "2")]
1011 pub allowed_signer_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1012}
1013#[derive(Clone, PartialEq, ::prost::Message)]
1014pub struct SignedBootstrapToken {
1015 #[prost(uint32, tag = "1")]
1016 pub version: u32,
1017 #[prost(bytes = "vec", repeated, tag = "2")]
1018 pub serialized_addrs: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
1019 #[prost(string, tag = "3")]
1020 pub mesh_id: ::prost::alloc::string::String,
1021 #[prost(string, tag = "4")]
1022 pub policy_hash: ::prost::alloc::string::String,
1023 #[prost(message, optional, tag = "5")]
1024 pub genesis_policy: ::core::option::Option<MeshGenesisPolicy>,
1025 #[prost(uint64, optional, tag = "6")]
1026 pub expires_at_unix_ms: ::core::option::Option<u64>,
1027 #[prost(bytes = "vec", tag = "7")]
1028 pub origin_sign_public_key: ::prost::alloc::vec::Vec<u8>,
1029 #[prost(string, tag = "8")]
1030 pub signature_algorithm: ::prost::alloc::string::String,
1031 #[prost(bytes = "vec", tag = "9")]
1032 pub signature: ::prost::alloc::vec::Vec<u8>,
1033}
1034#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1035pub struct ReleaseBuildAttestation {
1036 #[prost(uint32, tag = "1")]
1037 pub version: u32,
1038 #[prost(string, tag = "2")]
1039 pub node_version: ::prost::alloc::string::String,
1040 #[prost(string, tag = "3")]
1041 pub build_id: ::prost::alloc::string::String,
1042 #[prost(string, tag = "4")]
1043 pub commit: ::prost::alloc::string::String,
1044 #[prost(string, tag = "5")]
1045 pub target_triple: ::prost::alloc::string::String,
1046 #[prost(uint32, optional, tag = "6")]
1047 pub supported_protocol_generation_min: ::core::option::Option<u32>,
1048 #[prost(uint32, optional, tag = "7")]
1049 pub supported_protocol_generation_max: ::core::option::Option<u32>,
1050 #[prost(string, optional, tag = "8")]
1051 pub artifact_digest: ::core::option::Option<::prost::alloc::string::String>,
1052 #[prost(string, tag = "9")]
1053 pub signer_key_id: ::prost::alloc::string::String,
1054 #[prost(string, tag = "10")]
1055 pub signature_algorithm: ::prost::alloc::string::String,
1056 #[prost(bytes = "vec", tag = "11")]
1057 pub signature: ::prost::alloc::vec::Vec<u8>,
1058}
1059#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1060pub struct DirectNodeAdmissionProof {
1061 #[prost(uint32, tag = "1")]
1062 pub version: u32,
1063 #[prost(bytes = "vec", tag = "2")]
1064 pub sender_id: ::prost::alloc::vec::Vec<u8>,
1065 #[prost(string, tag = "3")]
1066 pub mesh_id: ::prost::alloc::string::String,
1067 #[prost(string, tag = "4")]
1068 pub policy_hash: ::prost::alloc::string::String,
1069 #[prost(string, tag = "5")]
1070 pub attestation_hash: ::prost::alloc::string::String,
1071 #[prost(uint64, tag = "6")]
1072 pub timestamp_unix_ms: u64,
1073 #[prost(string, tag = "7")]
1074 pub signature_algorithm: ::prost::alloc::string::String,
1075 #[prost(bytes = "vec", tag = "8")]
1076 pub signature: ::prost::alloc::vec::Vec<u8>,
1077}
1078impl LatencySource {
1079 pub fn as_str_name(&self) -> &'static str {
1080 match self {
1081 Self::Unspecified => "LATENCY_SOURCE_UNSPECIFIED",
1082 Self::Direct => "DIRECT",
1083 Self::Estimated => "ESTIMATED",
1084 Self::Unknown => "UNKNOWN",
1085 }
1086 }
1087 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1088 match value {
1089 "LATENCY_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
1090 "DIRECT" => Some(Self::Direct),
1091 "ESTIMATED" => Some(Self::Estimated),
1092 "UNKNOWN" => Some(Self::Unknown),
1093 _ => None,
1094 }
1095 }
1096}
1097#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1098#[repr(i32)]
1099pub enum GpuAssignment {
1100 Unspecified = 0,
1101 Auto = 1,
1102 Pinned = 2,
1103}
1104impl GpuAssignment {
1105 pub fn as_str_name(&self) -> &'static str {
1110 match self {
1111 Self::Unspecified => "GPU_ASSIGNMENT_UNSPECIFIED",
1112 Self::Auto => "GPU_ASSIGNMENT_AUTO",
1113 Self::Pinned => "GPU_ASSIGNMENT_PINNED",
1114 }
1115 }
1116 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1118 match value {
1119 "GPU_ASSIGNMENT_UNSPECIFIED" => Some(Self::Unspecified),
1120 "GPU_ASSIGNMENT_AUTO" => Some(Self::Auto),
1121 "GPU_ASSIGNMENT_PINNED" => Some(Self::Pinned),
1122 _ => None,
1123 }
1124 }
1125}
1126#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1127#[repr(i32)]
1128pub enum ConfigApplyMode {
1129 Unspecified = 0,
1130 Staged = 1,
1131 Live = 2,
1132 Noop = 3,
1133}
1134impl ConfigApplyMode {
1135 pub fn as_str_name(&self) -> &'static str {
1140 match self {
1141 Self::Unspecified => "CONFIG_APPLY_MODE_UNSPECIFIED",
1142 Self::Staged => "CONFIG_APPLY_MODE_STAGED",
1143 Self::Live => "CONFIG_APPLY_MODE_LIVE",
1144 Self::Noop => "CONFIG_APPLY_MODE_NOOP",
1145 }
1146 }
1147 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1149 match value {
1150 "CONFIG_APPLY_MODE_UNSPECIFIED" => Some(Self::Unspecified),
1151 "CONFIG_APPLY_MODE_STAGED" => Some(Self::Staged),
1152 "CONFIG_APPLY_MODE_LIVE" => Some(Self::Live),
1153 "CONFIG_APPLY_MODE_NOOP" => Some(Self::Noop),
1154 _ => None,
1155 }
1156 }
1157}
1158#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1159#[repr(i32)]
1160pub enum ConfigDiagnosticSeverity {
1161 Unspecified = 0,
1162 Error = 1,
1163 Warning = 2,
1164 Info = 3,
1165}
1166impl ConfigDiagnosticSeverity {
1167 pub fn as_str_name(&self) -> &'static str {
1168 match self {
1169 Self::Unspecified => "CONFIG_DIAGNOSTIC_SEVERITY_UNSPECIFIED",
1170 Self::Error => "CONFIG_DIAGNOSTIC_SEVERITY_ERROR",
1171 Self::Warning => "CONFIG_DIAGNOSTIC_SEVERITY_WARNING",
1172 Self::Info => "CONFIG_DIAGNOSTIC_SEVERITY_INFO",
1173 }
1174 }
1175 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1176 match value {
1177 "CONFIG_DIAGNOSTIC_SEVERITY_UNSPECIFIED" => Some(Self::Unspecified),
1178 "CONFIG_DIAGNOSTIC_SEVERITY_ERROR" => Some(Self::Error),
1179 "CONFIG_DIAGNOSTIC_SEVERITY_WARNING" => Some(Self::Warning),
1180 "CONFIG_DIAGNOSTIC_SEVERITY_INFO" => Some(Self::Info),
1181 _ => None,
1182 }
1183 }
1184}
1185#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1186#[repr(i32)]
1187pub enum ConfigDiagnosticSource {
1188 Unspecified = 0,
1189 Validation = 1,
1190 Schema = 2,
1191 Plugin = 3,
1192 Compatibility = 4,
1193}
1194impl ConfigDiagnosticSource {
1195 pub fn as_str_name(&self) -> &'static str {
1196 match self {
1197 Self::Unspecified => "CONFIG_DIAGNOSTIC_SOURCE_UNSPECIFIED",
1198 Self::Validation => "CONFIG_DIAGNOSTIC_SOURCE_VALIDATION",
1199 Self::Schema => "CONFIG_DIAGNOSTIC_SOURCE_SCHEMA",
1200 Self::Plugin => "CONFIG_DIAGNOSTIC_SOURCE_PLUGIN",
1201 Self::Compatibility => "CONFIG_DIAGNOSTIC_SOURCE_COMPATIBILITY",
1202 }
1203 }
1204 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1205 match value {
1206 "CONFIG_DIAGNOSTIC_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
1207 "CONFIG_DIAGNOSTIC_SOURCE_VALIDATION" => Some(Self::Validation),
1208 "CONFIG_DIAGNOSTIC_SOURCE_SCHEMA" => Some(Self::Schema),
1209 "CONFIG_DIAGNOSTIC_SOURCE_PLUGIN" => Some(Self::Plugin),
1210 "CONFIG_DIAGNOSTIC_SOURCE_COMPATIBILITY" => Some(Self::Compatibility),
1211 _ => None,
1212 }
1213 }
1214}
1215#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1216#[repr(i32)]
1217pub enum ConfigDiagnosticSchemaSource {
1218 Unspecified = 0,
1219 BuiltIn = 1,
1220 Engine = 2,
1221 Plugin = 3,
1222}
1223impl ConfigDiagnosticSchemaSource {
1224 pub fn as_str_name(&self) -> &'static str {
1225 match self {
1226 Self::Unspecified => "CONFIG_DIAGNOSTIC_SCHEMA_SOURCE_UNSPECIFIED",
1227 Self::BuiltIn => "CONFIG_DIAGNOSTIC_SCHEMA_SOURCE_BUILT_IN",
1228 Self::Engine => "CONFIG_DIAGNOSTIC_SCHEMA_SOURCE_ENGINE",
1229 Self::Plugin => "CONFIG_DIAGNOSTIC_SCHEMA_SOURCE_PLUGIN",
1230 }
1231 }
1232 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1233 match value {
1234 "CONFIG_DIAGNOSTIC_SCHEMA_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
1235 "CONFIG_DIAGNOSTIC_SCHEMA_SOURCE_BUILT_IN" => Some(Self::BuiltIn),
1236 "CONFIG_DIAGNOSTIC_SCHEMA_SOURCE_ENGINE" => Some(Self::Engine),
1237 "CONFIG_DIAGNOSTIC_SCHEMA_SOURCE_PLUGIN" => Some(Self::Plugin),
1238 _ => None,
1239 }
1240 }
1241}
1242#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1243#[repr(i32)]
1244pub enum ConfigDiagnosticCode {
1245 Unspecified = 0,
1246 InvalidValue = 1,
1247 MissingRequiredValue = 2,
1248 UnsupportedField = 3,
1249 RejectedField = 4,
1250 AliasApplied = 5,
1251 MisplacedField = 6,
1252 UnknownField = 7,
1253 SchemaUnavailable = 8,
1254 LegacyUnvalidatedConfig = 9,
1255 UnsupportedSchemaVersion = 10,
1256}
1257impl ConfigDiagnosticCode {
1258 pub fn as_str_name(&self) -> &'static str {
1259 match self {
1260 Self::Unspecified => "CONFIG_DIAGNOSTIC_CODE_UNSPECIFIED",
1261 Self::InvalidValue => "CONFIG_DIAGNOSTIC_CODE_INVALID_VALUE",
1262 Self::MissingRequiredValue => "CONFIG_DIAGNOSTIC_CODE_MISSING_REQUIRED_VALUE",
1263 Self::UnsupportedField => "CONFIG_DIAGNOSTIC_CODE_UNSUPPORTED_FIELD",
1264 Self::RejectedField => "CONFIG_DIAGNOSTIC_CODE_REJECTED_FIELD",
1265 Self::AliasApplied => "CONFIG_DIAGNOSTIC_CODE_ALIAS_APPLIED",
1266 Self::MisplacedField => "CONFIG_DIAGNOSTIC_CODE_MISPLACED_FIELD",
1267 Self::UnknownField => "CONFIG_DIAGNOSTIC_CODE_UNKNOWN_FIELD",
1268 Self::SchemaUnavailable => "CONFIG_DIAGNOSTIC_CODE_SCHEMA_UNAVAILABLE",
1269 Self::LegacyUnvalidatedConfig => "CONFIG_DIAGNOSTIC_CODE_LEGACY_UNVALIDATED_CONFIG",
1270 Self::UnsupportedSchemaVersion => "CONFIG_DIAGNOSTIC_CODE_UNSUPPORTED_SCHEMA_VERSION",
1271 }
1272 }
1273 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1274 match value {
1275 "CONFIG_DIAGNOSTIC_CODE_UNSPECIFIED" => Some(Self::Unspecified),
1276 "CONFIG_DIAGNOSTIC_CODE_INVALID_VALUE" => Some(Self::InvalidValue),
1277 "CONFIG_DIAGNOSTIC_CODE_MISSING_REQUIRED_VALUE" => Some(Self::MissingRequiredValue),
1278 "CONFIG_DIAGNOSTIC_CODE_UNSUPPORTED_FIELD" => Some(Self::UnsupportedField),
1279 "CONFIG_DIAGNOSTIC_CODE_REJECTED_FIELD" => Some(Self::RejectedField),
1280 "CONFIG_DIAGNOSTIC_CODE_ALIAS_APPLIED" => Some(Self::AliasApplied),
1281 "CONFIG_DIAGNOSTIC_CODE_MISPLACED_FIELD" => Some(Self::MisplacedField),
1282 "CONFIG_DIAGNOSTIC_CODE_UNKNOWN_FIELD" => Some(Self::UnknownField),
1283 "CONFIG_DIAGNOSTIC_CODE_SCHEMA_UNAVAILABLE" => Some(Self::SchemaUnavailable),
1284 "CONFIG_DIAGNOSTIC_CODE_LEGACY_UNVALIDATED_CONFIG" => {
1285 Some(Self::LegacyUnvalidatedConfig)
1286 }
1287 "CONFIG_DIAGNOSTIC_CODE_UNSUPPORTED_SCHEMA_VERSION" => {
1288 Some(Self::UnsupportedSchemaVersion)
1289 }
1290 _ => None,
1291 }
1292 }
1293}
1294#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1295#[repr(i32)]
1296pub enum OwnerControlErrorCode {
1297 Unspecified = 0,
1298 BadRequest = 1,
1299 Unauthorized = 2,
1300 RevisionConflict = 3,
1301 ControlUnsupported = 4,
1302 ControlEndpointRequired = 5,
1303 ControlUnavailable = 6,
1304 UnknownCommand = 7,
1305 LegacyJsonUnsupported = 8,
1306 InvalidHandshake = 9,
1307 TargetNodeMismatch = 10,
1308}
1309impl OwnerControlErrorCode {
1310 pub fn as_str_name(&self) -> &'static str {
1311 match self {
1312 Self::Unspecified => "OWNER_CONTROL_ERROR_CODE_UNSPECIFIED",
1313 Self::BadRequest => "OWNER_CONTROL_ERROR_CODE_BAD_REQUEST",
1314 Self::Unauthorized => "OWNER_CONTROL_ERROR_CODE_UNAUTHORIZED",
1315 Self::RevisionConflict => "OWNER_CONTROL_ERROR_CODE_REVISION_CONFLICT",
1316 Self::ControlUnsupported => "OWNER_CONTROL_ERROR_CODE_CONTROL_UNSUPPORTED",
1317 Self::ControlEndpointRequired => "OWNER_CONTROL_ERROR_CODE_CONTROL_ENDPOINT_REQUIRED",
1318 Self::ControlUnavailable => "OWNER_CONTROL_ERROR_CODE_CONTROL_UNAVAILABLE",
1319 Self::UnknownCommand => "OWNER_CONTROL_ERROR_CODE_UNKNOWN_COMMAND",
1320 Self::LegacyJsonUnsupported => "OWNER_CONTROL_ERROR_CODE_LEGACY_JSON_UNSUPPORTED",
1321 Self::InvalidHandshake => "OWNER_CONTROL_ERROR_CODE_INVALID_HANDSHAKE",
1322 Self::TargetNodeMismatch => "OWNER_CONTROL_ERROR_CODE_TARGET_NODE_MISMATCH",
1323 }
1324 }
1325 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1326 match value {
1327 "OWNER_CONTROL_ERROR_CODE_UNSPECIFIED" => Some(Self::Unspecified),
1328 "OWNER_CONTROL_ERROR_CODE_BAD_REQUEST" => Some(Self::BadRequest),
1329 "OWNER_CONTROL_ERROR_CODE_UNAUTHORIZED" => Some(Self::Unauthorized),
1330 "OWNER_CONTROL_ERROR_CODE_REVISION_CONFLICT" => Some(Self::RevisionConflict),
1331 "OWNER_CONTROL_ERROR_CODE_CONTROL_UNSUPPORTED" => Some(Self::ControlUnsupported),
1332 "OWNER_CONTROL_ERROR_CODE_CONTROL_ENDPOINT_REQUIRED" => {
1333 Some(Self::ControlEndpointRequired)
1334 }
1335 "OWNER_CONTROL_ERROR_CODE_CONTROL_UNAVAILABLE" => Some(Self::ControlUnavailable),
1336 "OWNER_CONTROL_ERROR_CODE_UNKNOWN_COMMAND" => Some(Self::UnknownCommand),
1337 "OWNER_CONTROL_ERROR_CODE_LEGACY_JSON_UNSUPPORTED" => Some(Self::LegacyJsonUnsupported),
1338 "OWNER_CONTROL_ERROR_CODE_INVALID_HANDSHAKE" => Some(Self::InvalidHandshake),
1339 "OWNER_CONTROL_ERROR_CODE_TARGET_NODE_MISMATCH" => Some(Self::TargetNodeMismatch),
1340 _ => None,
1341 }
1342 }
1343}
1344#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1345#[repr(i32)]
1346pub enum OwnerControlRefreshInventoryDisposition {
1347 Unspecified = 0,
1348 Executed = 1,
1349 Coalesced = 2,
1350}
1351impl OwnerControlRefreshInventoryDisposition {
1352 pub fn as_str_name(&self) -> &'static str {
1357 match self {
1358 Self::Unspecified => "OWNER_CONTROL_REFRESH_INVENTORY_DISPOSITION_UNSPECIFIED",
1359 Self::Executed => "OWNER_CONTROL_REFRESH_INVENTORY_DISPOSITION_EXECUTED",
1360 Self::Coalesced => "OWNER_CONTROL_REFRESH_INVENTORY_DISPOSITION_COALESCED",
1361 }
1362 }
1363 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1365 match value {
1366 "OWNER_CONTROL_REFRESH_INVENTORY_DISPOSITION_UNSPECIFIED" => Some(Self::Unspecified),
1367 "OWNER_CONTROL_REFRESH_INVENTORY_DISPOSITION_EXECUTED" => Some(Self::Executed),
1368 "OWNER_CONTROL_REFRESH_INVENTORY_DISPOSITION_COALESCED" => Some(Self::Coalesced),
1369 _ => None,
1370 }
1371 }
1372}
1373#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1375#[repr(i32)]
1376pub enum InferenceAdmissionState {
1377 Unspecified = 0,
1378 Accepting = 1,
1379 AcceptingDeprioritized = 2,
1380 RemotePaused = 3,
1381 AllPaused = 4,
1382}
1383impl InferenceAdmissionState {
1384 pub fn as_str_name(&self) -> &'static str {
1389 match self {
1390 Self::Unspecified => "INFERENCE_ADMISSION_STATE_UNSPECIFIED",
1391 Self::Accepting => "INFERENCE_ADMISSION_STATE_ACCEPTING",
1392 Self::AcceptingDeprioritized => "INFERENCE_ADMISSION_STATE_ACCEPTING_DEPRIORITIZED",
1393 Self::RemotePaused => "INFERENCE_ADMISSION_STATE_REMOTE_PAUSED",
1394 Self::AllPaused => "INFERENCE_ADMISSION_STATE_ALL_PAUSED",
1395 }
1396 }
1397 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1399 match value {
1400 "INFERENCE_ADMISSION_STATE_UNSPECIFIED" => Some(Self::Unspecified),
1401 "INFERENCE_ADMISSION_STATE_ACCEPTING" => Some(Self::Accepting),
1402 "INFERENCE_ADMISSION_STATE_ACCEPTING_DEPRIORITIZED" => {
1403 Some(Self::AcceptingDeprioritized)
1404 }
1405 "INFERENCE_ADMISSION_STATE_REMOTE_PAUSED" => Some(Self::RemotePaused),
1406 "INFERENCE_ADMISSION_STATE_ALL_PAUSED" => Some(Self::AllPaused),
1407 _ => None,
1408 }
1409 }
1410}