use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ModelInfo {
object: String, data: Vec<ModelMetaData>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ModelMetaData {
id: String,
object: String,
created: u64,
owned_by: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
permission: Option<Vec<Permission>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
root: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
parent: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Permission {
id: String,
object: String,
created: u64,
organization: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
group: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
allow_create_engine: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
allow_sampling: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
allow_logprobs: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
allow_search_indices: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
allow_view: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
allow_fine_tuning: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
is_blocking: Option<bool>,
}