1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
6pub struct WireProviderCatalog {
7 pub all: Vec<WireProviderEntry>,
8 pub connected: Vec<String>,
9}
10
11#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
12pub struct WireProviderEntry {
13 pub id: String,
14 pub name: Option<String>,
15 pub models: HashMap<String, WireProviderModel>,
16 #[serde(default, skip_serializing_if = "Option::is_none")]
17 pub catalog_source: Option<String>,
18 #[serde(default, skip_serializing_if = "Option::is_none")]
19 pub catalog_status: Option<String>,
20 #[serde(default, skip_serializing_if = "Option::is_none")]
21 pub catalog_message: Option<String>,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
25pub struct WireProviderModel {
26 pub name: Option<String>,
27 pub limit: Option<WireProviderModelLimit>,
28}
29
30#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
31pub struct WireProviderModelLimit {
32 pub context: Option<u32>,
33}