Skip to main content

objectiveai_sdk/functions/profiles/
request.rs

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