telos_agent/integrations/plugin/
sources.rs1use serde::{Deserialize, Serialize};
4use std::path::PathBuf;
5
6use crate::integrations::plugin::manifest::MarketplaceEntry;
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10#[serde(tag = "type", rename_all = "lowercase")]
11pub enum MarketplaceSource {
12 #[serde(rename_all = "camelCase")]
14 GitHub {
15 repo: String,
16 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
17 ref_: Option<String>,
18 #[serde(skip_serializing_if = "Option::is_none")]
19 path: Option<String>,
20 },
21 #[serde(rename_all = "camelCase")]
23 Git {
24 url: String,
25 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
26 ref_: Option<String>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 path: Option<String>,
29 },
30 #[serde(rename_all = "camelCase")]
32 Url { url: String },
33 #[serde(rename_all = "camelCase")]
35 Npm { package: String },
36 #[serde(rename_all = "camelCase")]
38 Local { path: PathBuf },
39 #[serde(rename_all = "camelCase")]
41 Inline { name: String, plugins: Vec<MarketplaceEntry> },
42}