use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ServiceType {
pub group: String,
pub artifact: String,
pub version: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ServiceInfo {
pub id: String,
pub name: String,
pub description: String,
#[serde(rename = "type")]
pub service_type: ServiceType,
pub version: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub organization: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SequenceServiceInfo {
#[serde(flatten)]
pub service: ServiceInfo,
pub refget: RefgetServiceDetails,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RefgetServiceDetails {
pub circular_supported: bool,
pub algorithms: Vec<String>,
pub identifier_types: Vec<String>,
#[serde(default)]
pub subsequence_limit: u64,
#[serde(default)]
pub supported_api_versions: Vec<String>,
}