Skip to main content

objectiveai_sdk/swarm/
request.rs

1//! Request types for swarm listing endpoints.
2
3use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6/// Query parameters for the list swarms endpoint.
7#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
8#[schemars(rename = "swarm.ListSwarmsRequest")]
9pub struct ListSwarmsRequest {
10    /// Optional source filter for listing swarms.
11    #[serde(skip_serializing_if = "Option::is_none")]
12    #[schemars(extend("omitempty" = true))]
13    pub source: Option<ListSwarmsSource>,
14}
15
16/// Source filter for listing swarms.
17#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
18#[schemars(rename = "swarm.ListSwarmsSource")]
19#[serde(rename_all = "snake_case")]
20pub enum ListSwarmsSource {
21    All,
22    Mock,
23    Filesystem,
24    Objectiveai,
25}
26
27impl ListSwarmsSource {
28    pub fn as_str(&self) -> &str {
29        match self {
30            ListSwarmsSource::All => "all",
31            ListSwarmsSource::Mock => "mock",
32            ListSwarmsSource::Filesystem => "filesystem",
33            ListSwarmsSource::Objectiveai => "objectiveai",
34        }
35    }
36}
37
38/// Request parameters for getting a specific swarm.
39pub type GetSwarmRequest = crate::RemotePathCommitOptional;