systemprompt_models/bridge/
profile.rs1use std::collections::BTreeMap;
14
15use serde::{Deserialize, Serialize};
16
17use crate::providers::ApiSurface;
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct BridgeProfileResponse {
21 pub inference_gateway_base_url: String,
22 pub auth_scheme: String,
23 #[serde(default)]
24 pub models: Vec<String>,
25 #[serde(default, skip_serializing_if = "Option::is_none")]
26 pub default_model: Option<String>,
27 #[serde(default)]
28 pub organization_uuid: Option<String>,
29 #[serde(default)]
30 pub providers: Vec<ProviderHealth>,
31 #[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
35 pub model_limits: BTreeMap<String, AdvertisedLimits>,
36}
37
38#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
39pub struct AdvertisedLimits {
40 pub context_window: u32,
41 pub max_output_tokens: u32,
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
51pub struct ProviderHealth {
52 pub name: String,
53 pub surface: ApiSurface,
54 pub configured: bool,
55 #[serde(default)]
56 pub models: Vec<String>,
57 #[serde(default, skip_serializing_if = "Option::is_none")]
58 pub config_issue: Option<String>,
59 #[serde(default, skip_serializing_if = "Option::is_none")]
60 pub display_name: Option<String>,
61 #[serde(default, skip_serializing_if = "std::ops::Not::not")]
62 pub personal_key: bool,
63}
64
65#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
69pub struct ProviderCredentialStatus {
70 pub provider: String,
71 #[serde(default, skip_serializing_if = "Option::is_none")]
72 pub display_name: Option<String>,
73 pub configured: bool,
74 #[serde(default, skip_serializing_if = "Option::is_none")]
75 pub label: Option<String>,
76 #[serde(default, skip_serializing_if = "Option::is_none")]
77 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
78 #[serde(default, skip_serializing_if = "Option::is_none")]
79 pub verified_at: Option<chrono::DateTime<chrono::Utc>>,
80 #[serde(default, skip_serializing_if = "Option::is_none")]
81 pub last_used_at: Option<chrono::DateTime<chrono::Utc>>,
82}
83
84#[derive(Debug, Clone, Serialize, Deserialize)]
86pub struct SetProviderCredentialRequest {
87 pub api_key: String,
88 #[serde(default, skip_serializing_if = "Option::is_none")]
89 pub label: Option<String>,
90}