#![allow(unused_imports, clippy::large_enum_variant)]
use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use crate::multipart::FilePart;
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct A2ajsonRpcRequest {
pub jsonrpc: String,
pub method: A2ajsonRpcRequestMethod,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub params: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<serde_json::Value>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum A2ajsonRpcRequestMethod {
#[default]
#[serde(rename = "tasks/send")]
TasksSend,
#[serde(rename = "tasks/sendSubscribe")]
TasksSendSubscribe,
#[serde(rename = "tasks/get")]
TasksGet,
#[serde(rename = "tasks/cancel")]
TasksCancel,
#[serde(rename = "tasks/pushNotification/set")]
TasksPushNotificationSet,
#[serde(rename = "tasks/pushNotification/get")]
TasksPushNotificationGet,
#[serde(untagged)]
Other(String),
}
impl A2ajsonRpcRequestMethod {
pub fn as_str(&self) -> &str {
match self {
Self::TasksSend => "tasks/send",
Self::TasksSendSubscribe => "tasks/sendSubscribe",
Self::TasksGet => "tasks/get",
Self::TasksCancel => "tasks/cancel",
Self::TasksPushNotificationSet => "tasks/pushNotification/set",
Self::TasksPushNotificationGet => "tasks/pushNotification/get",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for A2ajsonRpcRequestMethod {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for A2ajsonRpcRequestMethod {
fn from(value: &str) -> Self {
match value {
"tasks/send" => Self::TasksSend,
"tasks/sendSubscribe" => Self::TasksSendSubscribe,
"tasks/get" => Self::TasksGet,
"tasks/cancel" => Self::TasksCancel,
"tasks/pushNotification/set" => Self::TasksPushNotificationSet,
"tasks/pushNotification/get" => Self::TasksPushNotificationGet,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct A2ATask {
pub task_id: String,
pub agent_id: String,
pub status: A2ATaskStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub history: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub artifacts: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum A2ATaskStatus {
#[default]
#[serde(rename = "submitted")]
Submitted,
#[serde(rename = "working")]
Working,
#[serde(rename = "input-required")]
InputRequired,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "canceled")]
Canceled,
#[serde(rename = "failed")]
Failed,
#[serde(untagged)]
Other(String),
}
impl A2ATaskStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Submitted => "submitted",
Self::Working => "working",
Self::InputRequired => "input-required",
Self::Completed => "completed",
Self::Canceled => "canceled",
Self::Failed => "failed",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for A2ATaskStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for A2ATaskStatus {
fn from(value: &str) -> Self {
match value {
"submitted" => Self::Submitted,
"working" => Self::Working,
"input-required" => Self::InputRequired,
"completed" => Self::Completed,
"canceled" => Self::Canceled,
"failed" => Self::Failed,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ActivateSafeModeRequest {
pub reason: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub activated_by: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deadline_hours: Option<f64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AddTeamGraphEdgeRequest {
pub from: String,
pub to: String,
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub task_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AddTeamGraphNodeRequest {
pub agent_id: String,
pub role: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spawned_by: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub goal_summary: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminAnalyticsEventsResponse {
pub items: Vec<AdminAnalyticsEventsResponseItem>,
pub count: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminAnalyticsEventsResponseItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub event_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ts: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub visitor_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub device_type: Option<AdminAnalyticsEventsResponseItemDeviceType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub browser: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub os: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub referrer_host: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub utm_source: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub utm_medium: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub utm_campaign: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ip_hash: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum AdminAnalyticsEventsResponseItemDeviceType {
#[default]
#[serde(rename = "mobile")]
Mobile,
#[serde(rename = "tablet")]
Tablet,
#[serde(rename = "desktop")]
Desktop,
#[serde(rename = "bot")]
Bot,
#[serde(rename = "unknown")]
Unknown,
#[serde(untagged)]
Other(String),
}
impl AdminAnalyticsEventsResponseItemDeviceType {
pub fn as_str(&self) -> &str {
match self {
Self::Mobile => "mobile",
Self::Tablet => "tablet",
Self::Desktop => "desktop",
Self::Bot => "bot",
Self::Unknown => "unknown",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for AdminAnalyticsEventsResponseItemDeviceType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for AdminAnalyticsEventsResponseItemDeviceType {
fn from(value: &str) -> Self {
match value {
"mobile" => Self::Mobile,
"tablet" => Self::Tablet,
"desktop" => Self::Desktop,
"bot" => Self::Bot,
"unknown" => Self::Unknown,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminAnalyticsOverviewResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub range: Option<AdminAnalyticsOverviewResponseRange>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub totals: Option<AdminAnalyticsOverviewResponseTotals>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unique_visitors_30d: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signups_30d: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conversion_rate: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeseries: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub top_countries: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub top_devices: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub top_browsers: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub top_referrers: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub top_utm_sources: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminAnalyticsOverviewResponseRange {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub from: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub to: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub days: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminAnalyticsOverviewResponseTotals {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub landing_visit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page_view: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signup: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub app_open: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminDataExplorerRawKeysResponse {
pub keys: Vec<AdminDataExplorerRawKeysResponseKey>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
pub total: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminDataExplorerRawKeysResponseKey {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<Vec<serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value_preview: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<AdminDataExplorerRawKeysResponseKeyType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sensitive: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum AdminDataExplorerRawKeysResponseKeyType {
#[default]
#[serde(rename = "null")]
Null,
#[serde(rename = "array")]
Array,
#[serde(rename = "string")]
String,
#[serde(rename = "number")]
Number,
#[serde(rename = "boolean")]
Boolean,
#[serde(rename = "object")]
Object,
#[serde(rename = "undefined")]
Undefined,
#[serde(untagged)]
Other(String),
}
impl AdminDataExplorerRawKeysResponseKeyType {
pub fn as_str(&self) -> &str {
match self {
Self::Null => "null",
Self::Array => "array",
Self::String => "string",
Self::Number => "number",
Self::Boolean => "boolean",
Self::Object => "object",
Self::Undefined => "undefined",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for AdminDataExplorerRawKeysResponseKeyType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for AdminDataExplorerRawKeysResponseKeyType {
fn from(value: &str) -> Self {
match value {
"null" => Self::Null,
"array" => Self::Array,
"string" => Self::String,
"number" => Self::Number,
"boolean" => Self::Boolean,
"object" => Self::Object,
"undefined" => Self::Undefined,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminDeleteOAuthProviderResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provider: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub configured: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminGetOAuthProviderResponse {
pub provider: String,
pub enabled: bool,
pub configured: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_secret_hint: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scopes: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminGetReconciliationResponse {
pub tenant_id: String,
pub reconciliation: AdminGetReconciliationResponseReconciliation,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminGetReconciliationResponseReconciliation {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub period: Option<String>,
#[serde(flatten)]
pub extra: HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminListToolsResponse {
pub tools: Vec<AdminListToolsResponseTool>,
pub count: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminListToolsResponseTool {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameters: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminListWebhookDLQResponse {
pub entries: Vec<AdminListWebhookDLQResponseEntry>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminListWebhookDLQResponseEntry {
#[serde(rename = "eventId")]
pub event_id: String,
#[serde(rename = "eventType")]
pub event_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub payload: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(rename = "errorMessage")]
pub error_message: String,
pub timestamp: String,
#[serde(rename = "tenantId", default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminPutOAuthProviderRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scopes: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminPutOAuthProviderResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provider: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub configured: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminReplayWebhookDLQResponse {
pub success: bool,
#[serde(rename = "eventId")]
pub event_id: String,
pub action: String,
pub message: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Agent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub specs: Option<Vec<AgentSpec>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auto_approve_tools: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command_relationships: Option<AgentCommandRelationships>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access_control: Option<AgentAccessControl>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
pub agent_id: String,
pub tenant_id: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
pub model: AgentModelConfig,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompts: Option<AgentPrompts>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mcp: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub policies: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skills: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub thinking: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub effort_policy: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_limits: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub guardrails: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub approval_required_tools: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub built_in_tools: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub image_generation: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub knowledge_base_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fallback_model: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub execution_mode: Option<AgentExecutionMode>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub worker_reuse: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub schedule: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub a2a: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub risk_classification: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub workspace_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub context_strategy: Option<AgentContextStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub context_window_size: Option<i64>,
pub created_at: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentAccessControl {
pub clearance: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub compartments: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub caveats: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentAnalyticsSummary {
pub range: AgentAnalyticsSummaryRange,
pub total: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub by_execution_mode: Option<AgentAnalyticsSummaryByExecutionMode>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bridge: Option<AgentAnalyticsSummaryBridge>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub runs_total: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cost_total_usd: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tokens_total: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub top_by_runs: Option<Vec<AgentSummary>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub top_by_cost: Option<Vec<AgentSummary>>,
pub agents: Vec<AgentSummary>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentAnalyticsSummaryBridge {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub online: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stale: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offline: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub machines_total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentAnalyticsSummaryByExecutionMode {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cloud: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bridge: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentAnalyticsSummaryRange {
pub days: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentCommandRelationships {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub opcon: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub coordinates_with: Option<Vec<String>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum AgentContextStrategy {
#[default]
#[serde(rename = "compaction")]
Compaction,
#[serde(rename = "summarize")]
Summarize,
#[serde(rename = "truncate")]
Truncate,
#[serde(rename = "sliding_window")]
SlidingWindow,
#[serde(untagged)]
Other(String),
}
impl AgentContextStrategy {
pub fn as_str(&self) -> &str {
match self {
Self::Compaction => "compaction",
Self::Summarize => "summarize",
Self::Truncate => "truncate",
Self::SlidingWindow => "sliding_window",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for AgentContextStrategy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for AgentContextStrategy {
fn from(value: &str) -> Self {
match value {
"compaction" => Self::Compaction,
"summarize" => Self::Summarize,
"truncate" => Self::Truncate,
"sliding_window" => Self::SlidingWindow,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum AgentExecutionMode {
#[default]
#[serde(rename = "async")]
Async,
#[serde(rename = "worker")]
Worker,
#[serde(rename = "bridge")]
Bridge,
#[serde(untagged)]
Other(String),
}
impl AgentExecutionMode {
pub fn as_str(&self) -> &str {
match self {
Self::Async => "async",
Self::Worker => "worker",
Self::Bridge => "bridge",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for AgentExecutionMode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for AgentExecutionMode {
fn from(value: &str) -> Self {
match value {
"async" => Self::Async,
"worker" => Self::Worker,
"bridge" => Self::Bridge,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentIntegration {
pub id: String,
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
pub connector_id: String,
pub name: String,
pub status: IntegrationStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentLineage {
pub agent_id: String,
pub chain: Vec<String>,
pub depth: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_id: Option<String>,
pub spawned_by: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spawned_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentModelConfig {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentModelConfigInput {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provider: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model_ref: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub endpoint_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub api_key_ref: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentPrompts {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub developer: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentSpec {
pub spec_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permissions_granted: Option<Vec<AgentSpecPermissionsGrantedItem>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentSpecPermissionsGrantedItem {
pub cap: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
pub granted_by: AgentSpecPermissionsGrantedItemGrantedBy,
pub granted_at: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum AgentSpecPermissionsGrantedItemGrantedBy {
#[default]
#[serde(rename = "wizard")]
Wizard,
#[serde(rename = "admin")]
Admin,
#[serde(rename = "bootstrap")]
Bootstrap,
#[serde(rename = "migrated")]
Migrated,
#[serde(untagged)]
Other(String),
}
impl AgentSpecPermissionsGrantedItemGrantedBy {
pub fn as_str(&self) -> &str {
match self {
Self::Wizard => "wizard",
Self::Admin => "admin",
Self::Bootstrap => "bootstrap",
Self::Migrated => "migrated",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for AgentSpecPermissionsGrantedItemGrantedBy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for AgentSpecPermissionsGrantedItemGrantedBy {
fn from(value: &str) -> Self {
match value {
"wizard" => Self::Wizard,
"admin" => Self::Admin,
"bootstrap" => Self::Bootstrap,
"migrated" => Self::Migrated,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentSummary {
pub agent_id: String,
pub tenant_id: String,
pub name: String,
pub execution_mode: AgentSummaryExecutionMode,
pub status: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bridge_status: Option<AgentSummaryBridgeStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub machine_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub runs: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cost_usd: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tokens: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum AgentSummaryBridgeStatus {
#[default]
#[serde(rename = "online")]
Online,
#[serde(rename = "stale")]
Stale,
#[serde(rename = "offline")]
Offline,
#[serde(untagged)]
Other(String),
}
impl AgentSummaryBridgeStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Online => "online",
Self::Stale => "stale",
Self::Offline => "offline",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for AgentSummaryBridgeStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for AgentSummaryBridgeStatus {
fn from(value: &str) -> Self {
match value {
"online" => Self::Online,
"stale" => Self::Stale,
"offline" => Self::Offline,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum AgentSummaryExecutionMode {
#[default]
#[serde(rename = "async")]
Async,
#[serde(rename = "worker")]
Worker,
#[serde(rename = "bridge")]
Bridge,
#[serde(rename = "cloud")]
Cloud,
#[serde(untagged)]
Other(String),
}
impl AgentSummaryExecutionMode {
pub fn as_str(&self) -> &str {
match self {
Self::Async => "async",
Self::Worker => "worker",
Self::Bridge => "bridge",
Self::Cloud => "cloud",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for AgentSummaryExecutionMode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for AgentSummaryExecutionMode {
fn from(value: &str) -> Self {
match value {
"async" => Self::Async,
"worker" => Self::Worker,
"bridge" => Self::Bridge,
"cloud" => Self::Cloud,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AgentUpdate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompts: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<AgentModelConfigInput>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub specs: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub approval_required_tools: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auto_approve_tools: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub knowledge_base_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub knowledge_base_ids: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub workspace_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub visibility: Option<AgentUpdateVisibility>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum AgentUpdateVisibility {
#[default]
#[serde(rename = "private")]
Private,
#[serde(rename = "team")]
Team,
#[serde(rename = "public")]
Public,
#[serde(untagged)]
Other(String),
}
impl AgentUpdateVisibility {
pub fn as_str(&self) -> &str {
match self {
Self::Private => "private",
Self::Team => "team",
Self::Public => "public",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for AgentUpdateVisibility {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for AgentUpdateVisibility {
fn from(value: &str) -> Self {
match value {
"private" => Self::Private,
"team" => Self::Team,
"public" => Self::Public,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Ambassador {
pub ambassador_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
pub role: AmbassadorRole,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permissions: Option<AmbassadorPermissions>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AmbassadorPermissions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_veto: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_audit: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_propose: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AmbassadorRequest {
pub id: String,
pub from_agent_id: String,
pub r#type: String,
pub subject: String,
pub body: String,
pub status: AmbassadorRequestStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub response: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resolved_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum AmbassadorRequestStatus {
#[default]
#[serde(rename = "pending")]
Pending,
#[serde(rename = "acknowledged")]
Acknowledged,
#[serde(rename = "resolved")]
Resolved,
#[serde(untagged)]
Other(String),
}
impl AmbassadorRequestStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Pending => "pending",
Self::Acknowledged => "acknowledged",
Self::Resolved => "resolved",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for AmbassadorRequestStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for AmbassadorRequestStatus {
fn from(value: &str) -> Self {
match value {
"pending" => Self::Pending,
"acknowledged" => Self::Acknowledged,
"resolved" => Self::Resolved,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum AmbassadorRole {
#[default]
#[serde(rename = "founder")]
Founder,
#[serde(rename = "ambassador")]
Ambassador,
#[serde(rename = "observer")]
Observer,
#[serde(untagged)]
Other(String),
}
impl AmbassadorRole {
pub fn as_str(&self) -> &str {
match self {
Self::Founder => "founder",
Self::Ambassador => "ambassador",
Self::Observer => "observer",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for AmbassadorRole {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for AmbassadorRole {
fn from(value: &str) -> Self {
match value {
"founder" => Self::Founder,
"ambassador" => Self::Ambassador,
"observer" => Self::Observer,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AmbassadorVetoRequest {
pub target_type: String,
pub target_id: String,
pub reason: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AmendConstitutionRequest {
pub rule_id: String,
pub action: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rule: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rationale: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AmendConstitutionResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rules: Option<Vec<ConstitutionRule>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct APIKeyResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub raw_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scopes: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub warning: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AppleNativeAuthRequest {
pub identity_token: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub device_label: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AppleNativeAuthResponse {
pub api_key: String,
pub email: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ApplyProgramRequest {
pub session_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ArbiterCase {
pub id: String,
pub filed_by: String,
pub against_agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
pub status: ArbiterCaseStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ruling: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filed_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ArbiterCaseStatus {
#[default]
#[serde(rename = "filed")]
Filed,
#[serde(rename = "in_review")]
InReview,
#[serde(rename = "ruled")]
Ruled,
#[serde(rename = "appealed")]
Appealed,
#[serde(rename = "closed")]
Closed,
#[serde(untagged)]
Other(String),
}
impl ArbiterCaseStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Filed => "filed",
Self::InReview => "in_review",
Self::Ruled => "ruled",
Self::Appealed => "appealed",
Self::Closed => "closed",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ArbiterCaseStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ArbiterCaseStatus {
fn from(value: &str) -> Self {
match value {
"filed" => Self::Filed,
"in_review" => Self::InReview,
"ruled" => Self::Ruled,
"appealed" => Self::Appealed,
"closed" => Self::Closed,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Artifact {
pub artifact_id: String,
pub run_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
pub name: String,
pub mime_type: String,
pub size_bytes: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub storage_ref: Option<String>,
pub created_at: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AssignWorkspaceRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub company_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AuthVerifyCodeRequest {
pub email: String,
pub code: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AuthVerifyCodeResponse {
pub api_key: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Ballot {
pub id: String,
pub proposal_id: String,
pub agent_id: String,
pub vote: BallotVote,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub weight: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reasoning: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signature: Option<String>,
pub cast_at: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum BallotVote {
#[default]
#[serde(rename = "yes")]
Yes,
#[serde(rename = "no")]
No,
#[serde(rename = "abstain")]
Abstain,
#[serde(untagged)]
Other(String),
}
impl BallotVote {
pub fn as_str(&self) -> &str {
match self {
Self::Yes => "yes",
Self::No => "no",
Self::Abstain => "abstain",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for BallotVote {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for BallotVote {
fn from(value: &str) -> Self {
match value {
"yes" => Self::Yes,
"no" => Self::No,
"abstain" => Self::Abstain,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BootstrapAmbassadorResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ambassador_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BootstrapRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_slug: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeConnection {
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
pub machine_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub machine_name: Option<String>,
pub capabilities: Vec<String>,
pub working_directory: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_heartbeat: Option<String>,
pub status: AgentSummaryBridgeStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub registered_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub os: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeDelegateRequest {
pub agent_id: String,
pub context: serde_json::Map<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeDelegateResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub task_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeDeregisterRequest {
pub machine_id: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeDeregisterResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeHeartbeatRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub machine_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeHeartbeatResponse {
pub ok: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timestamp: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgePendingTask {
pub task_id: String,
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub run_id: Option<String>,
pub input: BridgePendingTaskInput,
pub queued_at: String,
pub expires_at: String,
pub source: BridgePendingTaskSource,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgePendingTaskInput {
pub message: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conversation_history: Option<Vec<BridgePendingTaskInputConversationHistoryItem>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub files: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgePendingTaskInputConversationHistoryItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgePendingTaskSource {
pub r#type: BridgePendingTaskSourceType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum BridgePendingTaskSourceType {
#[default]
#[serde(rename = "head_agent")]
HeadAgent,
#[serde(rename = "user")]
User,
#[serde(rename = "team")]
Team,
#[serde(untagged)]
Other(String),
}
impl BridgePendingTaskSourceType {
pub fn as_str(&self) -> &str {
match self {
Self::HeadAgent => "head_agent",
Self::User => "user",
Self::Team => "team",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for BridgePendingTaskSourceType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for BridgePendingTaskSourceType {
fn from(value: &str) -> Self {
match value {
"head_agent" => Self::HeadAgent,
"user" => Self::User,
"team" => Self::Team,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgePollResponse {
pub tasks: Vec<BridgePendingTask>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeRegisterRequest {
pub machine_id: String,
pub capabilities: Vec<String>,
pub working_directory: String,
pub version: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub machine_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub os: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeRegisterResponse {
pub agent_id: String,
pub status: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub registered: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeStatusResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_heartbeat: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeTaskEvent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub event_id: Option<String>,
pub r#type: BridgeTaskEventType,
pub timestamp: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub approval_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<BridgeTaskEventStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_args_preview: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_call_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_result_preview: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metrics: Option<BridgeTaskEventMetrics>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BridgeTaskEventMetrics {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_calls_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub files_modified: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub commands_executed: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_calls: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub execution_time_ms: Option<i64>,
#[serde(flatten)]
pub extra: HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum BridgeTaskEventStatus {
#[default]
#[serde(rename = "working")]
Working,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "failed")]
Failed,
#[serde(rename = "approval_denied")]
ApprovalDenied,
#[serde(untagged)]
Other(String),
}
impl BridgeTaskEventStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Working => "working",
Self::Completed => "completed",
Self::Failed => "failed",
Self::ApprovalDenied => "approval_denied",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for BridgeTaskEventStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for BridgeTaskEventStatus {
fn from(value: &str) -> Self {
match value {
"working" => Self::Working,
"completed" => Self::Completed,
"failed" => Self::Failed,
"approval_denied" => Self::ApprovalDenied,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum BridgeTaskEventType {
#[default]
#[serde(rename = "status")]
Status,
#[serde(rename = "tool_call")]
ToolCall,
#[serde(rename = "tool_result")]
ToolResult,
#[serde(rename = "content")]
Content,
#[serde(rename = "thinking")]
Thinking,
#[serde(rename = "text")]
Text,
#[serde(rename = "metrics")]
Metrics,
#[serde(rename = "approval_request")]
ApprovalRequest,
#[serde(rename = "error")]
Error,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "capability_report")]
CapabilityReport,
#[serde(rename = "escalation")]
Escalation,
#[serde(rename = "approval_denied")]
ApprovalDenied,
#[serde(untagged)]
Other(String),
}
impl BridgeTaskEventType {
pub fn as_str(&self) -> &str {
match self {
Self::Status => "status",
Self::ToolCall => "tool_call",
Self::ToolResult => "tool_result",
Self::Content => "content",
Self::Thinking => "thinking",
Self::Text => "text",
Self::Metrics => "metrics",
Self::ApprovalRequest => "approval_request",
Self::Error => "error",
Self::Completed => "completed",
Self::CapabilityReport => "capability_report",
Self::Escalation => "escalation",
Self::ApprovalDenied => "approval_denied",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for BridgeTaskEventType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for BridgeTaskEventType {
fn from(value: &str) -> Self {
match value {
"status" => Self::Status,
"tool_call" => Self::ToolCall,
"tool_result" => Self::ToolResult,
"content" => Self::Content,
"thinking" => Self::Thinking,
"text" => Self::Text,
"metrics" => Self::Metrics,
"approval_request" => Self::ApprovalRequest,
"error" => Self::Error,
"completed" => Self::Completed,
"capability_report" => Self::CapabilityReport,
"escalation" => Self::Escalation,
"approval_denied" => Self::ApprovalDenied,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct BulkDeleteNotificationsResponse {
pub deleted: i64,
pub scope: BulkDeleteNotificationsScope,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum BulkDeleteNotificationsScope {
#[default]
#[serde(rename = "read")]
Read,
#[serde(rename = "all")]
All,
#[serde(untagged)]
Other(String),
}
impl BulkDeleteNotificationsScope {
pub fn as_str(&self) -> &str {
match self {
Self::Read => "read",
Self::All => "all",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for BulkDeleteNotificationsScope {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for BulkDeleteNotificationsScope {
fn from(value: &str) -> Self {
match value {
"read" => Self::Read,
"all" => Self::All,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CastBallotRequest {
pub agent_id: String,
pub vote: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub weight: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reasoning: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signature: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ChatCompletionRequest {
pub model: String,
pub messages: Vec<ChatCompletionRequestMessage>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub temperature: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stream: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tools: Option<Vec<ChatCompletionRequestTool>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_choice: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ChatCompletionRequestMessage {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<ChatCompletionRequestMessageRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ChatCompletionRequestMessageRole {
#[default]
#[serde(rename = "system")]
System,
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "tool")]
Tool,
#[serde(untagged)]
Other(String),
}
impl ChatCompletionRequestMessageRole {
pub fn as_str(&self) -> &str {
match self {
Self::System => "system",
Self::User => "user",
Self::Assistant => "assistant",
Self::Tool => "tool",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ChatCompletionRequestMessageRole {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ChatCompletionRequestMessageRole {
fn from(value: &str) -> Self {
match value {
"system" => Self::System,
"user" => Self::User,
"assistant" => Self::Assistant,
"tool" => Self::Tool,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ChatCompletionRequestTool {
pub r#type: ChatCompletionRequestToolType,
pub function: ChatCompletionRequestToolFunction,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ChatCompletionRequestToolFunction {
pub name: String,
pub description: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameters: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ChatCompletionRequestToolType {
#[default]
#[serde(rename = "function")]
Function,
#[serde(untagged)]
Other(String),
}
impl ChatCompletionRequestToolType {
pub fn as_str(&self) -> &str {
match self {
Self::Function => "function",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ChatCompletionRequestToolType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ChatCompletionRequestToolType {
fn from(value: &str) -> Self {
match value {
"function" => Self::Function,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CheckGovernanceRequest {
pub agent_id: String,
pub action: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub run_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CheckGovernanceResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub violations: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CheckSpawnPermissionRequest {
pub parent_agent_id: String,
pub child_permissions: PermissionSet,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ClearRateLimitsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cleared: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Company {
pub company_id: String,
pub tenant_id: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mission: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategic_goals: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
pub strategist_agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_ids: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_agent_ids: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub budget: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub workspace_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CompanyCreate {
pub name: String,
pub mission: String,
pub budget: f64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategic_goals: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub workspace_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CompanyUpdate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mission: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub budget: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategic_goals: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CompleteOAuthLoginResponse {
pub api_key: String,
pub email: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Constitution {
pub rules: Vec<ConstitutionRule>,
pub version: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ConstitutionRule {
pub id: String,
pub rule_type: ConstitutionRuleRuleType,
pub scope: ConstitutionRuleScope,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope_targets: Option<Vec<String>>,
pub action: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub obligated_action: Option<String>,
pub penalty: ConstitutionRulePenalty,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub immutable: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub priority: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ConstitutionRulePenalty {
#[default]
#[serde(rename = "block")]
Block,
#[serde(rename = "warn")]
Warn,
#[serde(rename = "log")]
Log,
#[serde(rename = "terminate_agent")]
TerminateAgent,
#[serde(rename = "revoke_permissions")]
RevokePermissions,
#[serde(untagged)]
Other(String),
}
impl ConstitutionRulePenalty {
pub fn as_str(&self) -> &str {
match self {
Self::Block => "block",
Self::Warn => "warn",
Self::Log => "log",
Self::TerminateAgent => "terminate_agent",
Self::RevokePermissions => "revoke_permissions",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ConstitutionRulePenalty {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ConstitutionRulePenalty {
fn from(value: &str) -> Self {
match value {
"block" => Self::Block,
"warn" => Self::Warn,
"log" => Self::Log,
"terminate_agent" => Self::TerminateAgent,
"revoke_permissions" => Self::RevokePermissions,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ConstitutionRuleRuleType {
#[default]
#[serde(rename = "prohibition")]
Prohibition,
#[serde(rename = "requirement")]
Requirement,
#[serde(rename = "permission")]
Permission,
#[serde(untagged)]
Other(String),
}
impl ConstitutionRuleRuleType {
pub fn as_str(&self) -> &str {
match self {
Self::Prohibition => "prohibition",
Self::Requirement => "requirement",
Self::Permission => "permission",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ConstitutionRuleRuleType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ConstitutionRuleRuleType {
fn from(value: &str) -> Self {
match value {
"prohibition" => Self::Prohibition,
"requirement" => Self::Requirement,
"permission" => Self::Permission,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ConstitutionRuleScope {
#[default]
#[serde(rename = "all_agents")]
AllAgents,
#[serde(rename = "team")]
Team,
#[serde(rename = "agent")]
Agent,
#[serde(rename = "role")]
Role,
#[serde(untagged)]
Other(String),
}
impl ConstitutionRuleScope {
pub fn as_str(&self) -> &str {
match self {
Self::AllAgents => "all_agents",
Self::Team => "team",
Self::Agent => "agent",
Self::Role => "role",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ConstitutionRuleScope {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ConstitutionRuleScope {
fn from(value: &str) -> Self {
match value {
"all_agents" => Self::AllAgents,
"team" => Self::Team,
"agent" => Self::Agent,
"role" => Self::Role,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ContentReport {
pub id: String,
pub target_type: ContentReportInputTargetType,
pub target_id: String,
pub reason: ContentReportInputReason,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub details: Option<String>,
pub tenant_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
pub origin: ContentReportOrigin,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reporter_tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reporter_user_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reporter_fingerprint: Option<String>,
pub status: ContentReportStatus,
pub severity: ContentReportSeverity,
pub created_at: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ContentReportAccepted {
pub report_id: String,
pub status: ContentReportAcceptedStatus,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ContentReportAcceptedStatus {
#[default]
#[serde(rename = "received")]
Received,
#[serde(untagged)]
Other(String),
}
impl ContentReportAcceptedStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Received => "received",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ContentReportAcceptedStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ContentReportAcceptedStatus {
fn from(value: &str) -> Self {
match value {
"received" => Self::Received,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ContentReportInput {
pub target_type: ContentReportInputTargetType,
pub target_id: String,
pub reason: ContentReportInputReason,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub details: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ContentReportInputReason {
#[default]
#[serde(rename = "harassment")]
Harassment,
#[serde(rename = "hate")]
Hate,
#[serde(rename = "sexual")]
Sexual,
#[serde(rename = "violence")]
Violence,
#[serde(rename = "self_harm")]
SelfHarm,
#[serde(rename = "illegal")]
Illegal,
#[serde(rename = "spam")]
Spam,
#[serde(rename = "other")]
Other,
#[serde(untagged)]
Unknown(String),
}
impl ContentReportInputReason {
pub fn as_str(&self) -> &str {
match self {
Self::Harassment => "harassment",
Self::Hate => "hate",
Self::Sexual => "sexual",
Self::Violence => "violence",
Self::SelfHarm => "self_harm",
Self::Illegal => "illegal",
Self::Spam => "spam",
Self::Other => "other",
Self::Unknown(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ContentReportInputReason {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ContentReportInputReason {
fn from(value: &str) -> Self {
match value {
"harassment" => Self::Harassment,
"hate" => Self::Hate,
"sexual" => Self::Sexual,
"violence" => Self::Violence,
"self_harm" => Self::SelfHarm,
"illegal" => Self::Illegal,
"spam" => Self::Spam,
"other" => Self::Other,
other => Self::Unknown(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ContentReportInputTargetType {
#[default]
#[serde(rename = "message")]
Message,
#[serde(rename = "session")]
Session,
#[serde(rename = "agent")]
Agent,
#[serde(untagged)]
Other(String),
}
impl ContentReportInputTargetType {
pub fn as_str(&self) -> &str {
match self {
Self::Message => "message",
Self::Session => "session",
Self::Agent => "agent",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ContentReportInputTargetType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ContentReportInputTargetType {
fn from(value: &str) -> Self {
match value {
"message" => Self::Message,
"session" => Self::Session,
"agent" => Self::Agent,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ContentReportOrigin {
#[default]
#[serde(rename = "authenticated")]
Authenticated,
#[serde(rename = "public_session")]
PublicSession,
#[serde(untagged)]
Other(String),
}
impl ContentReportOrigin {
pub fn as_str(&self) -> &str {
match self {
Self::Authenticated => "authenticated",
Self::PublicSession => "public_session",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ContentReportOrigin {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ContentReportOrigin {
fn from(value: &str) -> Self {
match value {
"authenticated" => Self::Authenticated,
"public_session" => Self::PublicSession,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ContentReportSeverity {
#[default]
#[serde(rename = "critical")]
Critical,
#[serde(rename = "high")]
High,
#[serde(rename = "normal")]
Normal,
#[serde(untagged)]
Other(String),
}
impl ContentReportSeverity {
pub fn as_str(&self) -> &str {
match self {
Self::Critical => "critical",
Self::High => "high",
Self::Normal => "normal",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ContentReportSeverity {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ContentReportSeverity {
fn from(value: &str) -> Self {
match value {
"critical" => Self::Critical,
"high" => Self::High,
"normal" => Self::Normal,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ContentReportStatus {
#[default]
#[serde(rename = "received")]
Received,
#[serde(rename = "reviewing")]
Reviewing,
#[serde(rename = "actioned")]
Actioned,
#[serde(rename = "dismissed")]
Dismissed,
#[serde(untagged)]
Other(String),
}
impl ContentReportStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Received => "received",
Self::Reviewing => "reviewing",
Self::Actioned => "actioned",
Self::Dismissed => "dismissed",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ContentReportStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ContentReportStatus {
fn from(value: &str) -> Self {
match value {
"received" => Self::Received,
"reviewing" => Self::Reviewing,
"actioned" => Self::Actioned,
"dismissed" => Self::Dismissed,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ContinueRunRequest {
pub continuation_token: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ConversationEntry {
pub role: ConversationEntryRole,
pub content: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub run_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timestamp: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub compacted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_calls: Option<Vec<ConversationEntryToolCall>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub thinking: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ConversationEntryRole {
#[default]
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "system")]
System,
#[serde(rename = "tool_result")]
ToolResult,
#[serde(untagged)]
Other(String),
}
impl ConversationEntryRole {
pub fn as_str(&self) -> &str {
match self {
Self::User => "user",
Self::Assistant => "assistant",
Self::System => "system",
Self::ToolResult => "tool_result",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ConversationEntryRole {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ConversationEntryRole {
fn from(value: &str) -> Self {
match value {
"user" => Self::User,
"assistant" => Self::Assistant,
"system" => Self::System,
"tool_result" => Self::ToolResult,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ConversationEntryToolCall {
pub id: String,
pub name: String,
pub status: ConversationEntryToolCallStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration_ms: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ConversationEntryToolCallStatus {
#[default]
#[serde(rename = "done")]
Done,
#[serde(rename = "error")]
Error,
#[serde(untagged)]
Other(String),
}
impl ConversationEntryToolCallStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Done => "done",
Self::Error => "error",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ConversationEntryToolCallStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ConversationEntryToolCallStatus {
fn from(value: &str) -> Self {
match value {
"done" => Self::Done,
"error" => Self::Error,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CopyWorkspaceFileRequest {
pub source: String,
pub destination: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CopyWorkspaceFileResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CoreMemoryBlock {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub block_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateA2ATaskRequest {
pub agent_id: String,
pub messages: Vec<CreateA2ATaskRequestMessage>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateA2ATaskRequestMessage {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parts: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateAgentFriaRequest {
pub rights_assessed: Vec<CreateAgentFriaRequestRightsAssessedItem>,
pub mitigations: String,
pub assessor: String,
pub next_review: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateAgentFriaRequestRightsAssessedItem {
pub right: String,
pub impact: CreateAgentFriaRequestRightsAssessedItemImpact,
pub justification: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mitigation: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum CreateAgentFriaRequestRightsAssessedItemImpact {
#[default]
#[serde(rename = "none")]
None,
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
#[serde(untagged)]
Other(String),
}
impl CreateAgentFriaRequestRightsAssessedItemImpact {
pub fn as_str(&self) -> &str {
match self {
Self::None => "none",
Self::Low => "low",
Self::Medium => "medium",
Self::High => "high",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for CreateAgentFriaRequestRightsAssessedItemImpact {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for CreateAgentFriaRequestRightsAssessedItemImpact {
fn from(value: &str) -> Self {
match value {
"none" => Self::None,
"low" => Self::Low,
"medium" => Self::Medium,
"high" => Self::High,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateAgentIntegrationRequest {
pub connector_id: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateAgentRequest {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<AgentModelConfigInput>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompts: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skills: Option<Vec<serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub thinking: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_limits: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub guardrails: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateAgentVersionRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub changelog: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateAmbassadorRequestRequest {
pub from_agent_id: String,
pub r#type: String,
pub subject: String,
pub body: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateAPIKeyRequest {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scopes: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateBillingPortalSessionRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub return_url: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateBillingPortalSessionResponse {
pub url: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateCheckoutSessionRequest {
pub plan_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cancel_url: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateCheckoutSessionResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateCommerceProductRequest {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub r#type: ProductType,
pub price_cents: i64,
pub currency: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub knowledge_base_ids: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub course_structure: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub slug: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vendor: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub images: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub variants: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub compare_at_price_cents: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body_html: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shopify_product_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateDatasetRequest {
pub name: String,
pub cases: Vec<CreateDatasetRequestCas>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateDatasetRequestCas {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expected_output: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateExperimentRequest {
pub name: String,
pub dataset_id: String,
pub variants: Vec<CreateExperimentRequestVariant>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateExperimentRequestVariant {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub eval_run_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateGoalRequest {
pub agent_id: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateGuardrailRequest {
pub name: String,
pub webhook_url: String,
pub phase: CreateGuardrailRequestPhase,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub action: Option<CreateGuardrailRequestAction>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout_ms: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum CreateGuardrailRequestAction {
#[default]
#[serde(rename = "block")]
Block,
#[serde(rename = "redact")]
Redact,
#[serde(rename = "warn")]
Warn,
#[serde(rename = "log")]
Log,
#[serde(untagged)]
Other(String),
}
impl CreateGuardrailRequestAction {
pub fn as_str(&self) -> &str {
match self {
Self::Block => "block",
Self::Redact => "redact",
Self::Warn => "warn",
Self::Log => "log",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for CreateGuardrailRequestAction {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for CreateGuardrailRequestAction {
fn from(value: &str) -> Self {
match value {
"block" => Self::Block,
"redact" => Self::Redact,
"warn" => Self::Warn,
"log" => Self::Log,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum CreateGuardrailRequestPhase {
#[default]
#[serde(rename = "input")]
Input,
#[serde(rename = "output")]
Output,
#[serde(rename = "both")]
Both,
#[serde(untagged)]
Other(String),
}
impl CreateGuardrailRequestPhase {
pub fn as_str(&self) -> &str {
match self {
Self::Input => "input",
Self::Output => "output",
Self::Both => "both",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for CreateGuardrailRequestPhase {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for CreateGuardrailRequestPhase {
fn from(value: &str) -> Self {
match value {
"input" => Self::Input,
"output" => Self::Output,
"both" => Self::Both,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateImprovementProposalRequest {
pub r#type: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateIntegrationRequest {
pub connector_id: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateMCPServerRequest {
pub name: String,
pub transport: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub args: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateMyTenantRequest {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub slug: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateMyTenantResponse {
pub created: bool,
pub tenant_id: String,
pub name: String,
pub slug: String,
pub role: String,
pub user_id: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum CreatePlanStripePricePlanId {
#[default]
#[serde(rename = "starter")]
Starter,
#[serde(rename = "pro")]
Pro,
#[serde(rename = "enterprise")]
Enterprise,
#[serde(untagged)]
Other(String),
}
impl CreatePlanStripePricePlanId {
pub fn as_str(&self) -> &str {
match self {
Self::Starter => "starter",
Self::Pro => "pro",
Self::Enterprise => "enterprise",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for CreatePlanStripePricePlanId {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for CreatePlanStripePricePlanId {
fn from(value: &str) -> Self {
match value {
"starter" => Self::Starter,
"pro" => Self::Pro,
"enterprise" => Self::Enterprise,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreatePlanStripePriceRequest {
pub amount_cents: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub interval: Option<CreatePlanStripePriceRequestInterval>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub product_name: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum CreatePlanStripePriceRequestInterval {
#[default]
#[serde(rename = "month")]
Month,
#[serde(rename = "year")]
Year,
#[serde(untagged)]
Other(String),
}
impl CreatePlanStripePriceRequestInterval {
pub fn as_str(&self) -> &str {
match self {
Self::Month => "month",
Self::Year => "year",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for CreatePlanStripePriceRequestInterval {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for CreatePlanStripePriceRequestInterval {
fn from(value: &str) -> Self {
match value {
"month" => Self::Month,
"year" => Self::Year,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreatePlanStripePriceResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plan_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stripe_price_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stripe_product_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub amount_cents: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub interval: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateProgramRequest {
pub name: String,
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub listing_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub steps: Vec<CreateProgramRequestStep>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateProgramRequestStep {
pub title: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order_index: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub suggested_due_offset_days: Option<f64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreatePublicSessionRequest {
pub agent_id: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreatePublicSessionResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub token: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub greeting: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateResponseRequest {
pub model: String,
pub input: serde_json::Value,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub previous_response_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub instructions: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stream: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateResponseResponse {
pub id: String,
pub object: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<i64>,
pub model: String,
pub output: Vec<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub usage: Option<CreateResponseResponseUsage>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateResponseResponseUsage {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_tokens: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateRunRequest {
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_limits: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateSessionAnnotationRequest {
pub message_id: String,
pub content: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateSessionAnnotationResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub author: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resolved: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateSessionRequest {
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateSessionShareRequest {
pub role: GetSessionShareResponseRole,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_in_hours: Option<f64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateSessionShareResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub share_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<GetSessionShareResponseRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateSessionTodoRequest {
pub title: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub due_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assign_agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateTaskRequest {
pub title: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub instructions: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub due_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub recurrence: Option<CreateTaskRequestRecurrence>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub require_confirmation: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub delivery: Option<CreateTaskRequestDelivery>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_ids: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateTaskRequestDelivery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub channels: Option<Vec<CreateTaskRequestDeliveryChannel>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum CreateTaskRequestDeliveryChannel {
#[default]
#[serde(rename = "email")]
Email,
#[serde(rename = "telegram")]
Telegram,
#[serde(rename = "whatsapp")]
Whatsapp,
#[serde(untagged)]
Other(String),
}
impl CreateTaskRequestDeliveryChannel {
pub fn as_str(&self) -> &str {
match self {
Self::Email => "email",
Self::Telegram => "telegram",
Self::Whatsapp => "whatsapp",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for CreateTaskRequestDeliveryChannel {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for CreateTaskRequestDeliveryChannel {
fn from(value: &str) -> Self {
match value {
"email" => Self::Email,
"telegram" => Self::Telegram,
"whatsapp" => Self::Whatsapp,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateTaskRequestRecurrence {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cron: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateVotingProposalRequest {
pub title: String,
pub description: String,
pub proposal_type: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateWebhookRequest {
pub url: String,
pub events: Vec<CreateWebhookRequestEvent>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum CreateWebhookRequestEvent {
#[default]
#[serde(rename = "run.completed")]
RunCompleted,
#[serde(rename = "run.failed")]
RunFailed,
#[serde(rename = "run.cancelled")]
RunCancelled,
#[serde(rename = "agent.created")]
AgentCreated,
#[serde(rename = "agent.updated")]
AgentUpdated,
#[serde(rename = "agent.deleted")]
AgentDeleted,
#[serde(rename = "quota.threshold")]
QuotaThreshold,
#[serde(rename = "quota.exceeded")]
QuotaExceeded,
#[serde(rename = "guardrail.violated")]
GuardrailViolated,
#[serde(rename = "billing.invoice.created")]
BillingInvoiceCreated,
#[serde(rename = "billing.payment.failed")]
BillingPaymentFailed,
#[serde(rename = "eval.auto_rollback")]
EvalAutoRollback,
#[serde(rename = "company.budget_alert")]
CompanyBudgetAlert,
#[serde(rename = "company.budget_exceeded")]
CompanyBudgetExceeded,
#[serde(rename = "company.objective_failed")]
CompanyObjectiveFailed,
#[serde(rename = "company.goal_completed")]
CompanyGoalCompleted,
#[serde(rename = "company.paused")]
CompanyPaused,
#[serde(untagged)]
Other(String),
}
impl CreateWebhookRequestEvent {
pub fn as_str(&self) -> &str {
match self {
Self::RunCompleted => "run.completed",
Self::RunFailed => "run.failed",
Self::RunCancelled => "run.cancelled",
Self::AgentCreated => "agent.created",
Self::AgentUpdated => "agent.updated",
Self::AgentDeleted => "agent.deleted",
Self::QuotaThreshold => "quota.threshold",
Self::QuotaExceeded => "quota.exceeded",
Self::GuardrailViolated => "guardrail.violated",
Self::BillingInvoiceCreated => "billing.invoice.created",
Self::BillingPaymentFailed => "billing.payment.failed",
Self::EvalAutoRollback => "eval.auto_rollback",
Self::CompanyBudgetAlert => "company.budget_alert",
Self::CompanyBudgetExceeded => "company.budget_exceeded",
Self::CompanyObjectiveFailed => "company.objective_failed",
Self::CompanyGoalCompleted => "company.goal_completed",
Self::CompanyPaused => "company.paused",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for CreateWebhookRequestEvent {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for CreateWebhookRequestEvent {
fn from(value: &str) -> Self {
match value {
"run.completed" => Self::RunCompleted,
"run.failed" => Self::RunFailed,
"run.cancelled" => Self::RunCancelled,
"agent.created" => Self::AgentCreated,
"agent.updated" => Self::AgentUpdated,
"agent.deleted" => Self::AgentDeleted,
"quota.threshold" => Self::QuotaThreshold,
"quota.exceeded" => Self::QuotaExceeded,
"guardrail.violated" => Self::GuardrailViolated,
"billing.invoice.created" => Self::BillingInvoiceCreated,
"billing.payment.failed" => Self::BillingPaymentFailed,
"eval.auto_rollback" => Self::EvalAutoRollback,
"company.budget_alert" => Self::CompanyBudgetAlert,
"company.budget_exceeded" => Self::CompanyBudgetExceeded,
"company.objective_failed" => Self::CompanyObjectiveFailed,
"company.goal_completed" => Self::CompanyGoalCompleted,
"company.paused" => Self::CompanyPaused,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CreateWorkspaceRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Customer {
pub id: String,
pub tenant_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub first_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub note: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub addresses: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub accepts_marketing: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub verified_email: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tax_exempt: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub locale: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CustomerUpdate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub first_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub note: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub addresses: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub accepts_marketing: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub verified_email: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tax_exempt: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub locale: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeactivateSafeModeResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteCommerceCustomerResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteCommerceProductResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteDataExplorerValueResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteGuardrailResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub guardrail_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteLLMProviderKeyResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provider_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteNotificationResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteSessionTodoResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub todo_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteSpawnPolicyResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteTeamGraphEdgeResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub edge_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteTeamGraphNodeResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteTeamResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DeleteUserResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DesignRequest {
pub request_id: String,
pub tenant_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub submitted_by: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tools: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rationale: Option<String>,
pub status: DesignRequestStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub proposal_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spawned_agent_id: Option<String>,
pub created_at: String,
pub updated_at: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DesignRequestCreate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub submitted_by: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tools: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rationale: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum DesignRequestStatus {
#[default]
#[serde(rename = "pending")]
Pending,
#[serde(rename = "voting")]
Voting,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "rejected")]
Rejected,
#[serde(rename = "spawned")]
Spawned,
#[serde(untagged)]
Other(String),
}
impl DesignRequestStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Pending => "pending",
Self::Voting => "voting",
Self::Approved => "approved",
Self::Rejected => "rejected",
Self::Spawned => "spawned",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for DesignRequestStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for DesignRequestStatus {
fn from(value: &str) -> Self {
match value {
"pending" => Self::Pending,
"voting" => Self::Voting,
"approved" => Self::Approved,
"rejected" => Self::Rejected,
"spawned" => Self::Spawned,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct DisableMfaResponse {
pub disabled: bool,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct EmbeddingsRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
pub input: serde_json::Value,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub encoding_format: Option<EmbeddingsRequestEncodingFormat>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dimensions: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum EmbeddingsRequestEncodingFormat {
#[default]
#[serde(rename = "float")]
Float,
#[serde(rename = "base64")]
Base64,
#[serde(untagged)]
Other(String),
}
impl EmbeddingsRequestEncodingFormat {
pub fn as_str(&self) -> &str {
match self {
Self::Float => "float",
Self::Base64 => "base64",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for EmbeddingsRequestEncodingFormat {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for EmbeddingsRequestEncodingFormat {
fn from(value: &str) -> Self {
match value {
"float" => Self::Float,
"base64" => Self::Base64,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct EmbeddingsResponse {
pub object: String,
pub data: Vec<EmbeddingsResponseDataItem>,
pub model: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub usage: Option<EmbeddingsResponseUsage>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct EmbeddingsResponseDataItem {
pub object: String,
pub embedding: Vec<f64>,
pub index: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct EmbeddingsResponseUsage {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_tokens: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct EmptyWorkspaceTrashResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct EnforcementResult {
pub allowed: bool,
pub violations: Vec<EnforcementResultViolation>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct EnforcementResultViolation {
pub rule_id: String,
pub severity: EnforcementResultViolationSeverity,
pub message: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum EnforcementResultViolationSeverity {
#[default]
#[serde(rename = "info")]
Info,
#[serde(rename = "warning")]
Warning,
#[serde(rename = "error")]
Error,
#[serde(rename = "blocker")]
Blocker,
#[serde(untagged)]
Other(String),
}
impl EnforcementResultViolationSeverity {
pub fn as_str(&self) -> &str {
match self {
Self::Info => "info",
Self::Warning => "warning",
Self::Error => "error",
Self::Blocker => "blocker",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for EnforcementResultViolationSeverity {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for EnforcementResultViolationSeverity {
fn from(value: &str) -> Self {
match value {
"info" => Self::Info,
"warning" => Self::Warning,
"error" => Self::Error,
"blocker" => Self::Blocker,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Enrollment {
pub id: String,
pub tenant_id: String,
pub customer_id: String,
pub product_id: String,
pub status: EnrollmentStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub started_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completed_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum EnrollmentStatus {
#[default]
#[serde(rename = "active")]
Active,
#[serde(rename = "paused")]
Paused,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "cancelled")]
Cancelled,
#[serde(untagged)]
Other(String),
}
impl EnrollmentStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Active => "active",
Self::Paused => "paused",
Self::Completed => "completed",
Self::Cancelled => "cancelled",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for EnrollmentStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for EnrollmentStatus {
fn from(value: &str) -> Self {
match value {
"active" => Self::Active,
"paused" => Self::Paused,
"completed" => Self::Completed,
"cancelled" => Self::Cancelled,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct EnrolMfaRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub issuer: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub algorithm: Option<EnrolMfaRequestAlgorithm>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum EnrolMfaRequestAlgorithm {
#[default]
#[serde(rename = "SHA-1")]
Sha1,
#[serde(rename = "SHA-256")]
Sha256,
#[serde(rename = "SHA-512")]
Sha512,
#[serde(untagged)]
Other(String),
}
impl EnrolMfaRequestAlgorithm {
pub fn as_str(&self) -> &str {
match self {
Self::Sha1 => "SHA-1",
Self::Sha256 => "SHA-256",
Self::Sha512 => "SHA-512",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for EnrolMfaRequestAlgorithm {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for EnrolMfaRequestAlgorithm {
fn from(value: &str) -> Self {
match value {
"SHA-1" => Self::Sha1,
"SHA-256" => Self::Sha256,
"SHA-512" => Self::Sha512,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct EnrolMfaResponse {
pub otpauth_url: String,
pub secret: String,
pub recovery_codes: Vec<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Error {
pub r#type: String,
pub title: String,
pub status: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub detail: Option<String>,
#[serde(rename = "correlationId", default, skip_serializing_if = "Option::is_none")]
pub correlation_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub errors: Option<Vec<ErrorError>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ErrorError {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub field: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Experiment {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub experiment_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dataset_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub variants: Option<Vec<ExperimentVariant>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<ExperimentStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub comparison: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ExperimentStatus {
#[default]
#[serde(rename = "pending")]
Pending,
#[serde(rename = "running")]
Running,
#[serde(rename = "completed")]
Completed,
#[serde(untagged)]
Other(String),
}
impl ExperimentStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Pending => "pending",
Self::Running => "running",
Self::Completed => "completed",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ExperimentStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ExperimentStatus {
fn from(value: &str) -> Self {
match value {
"pending" => Self::Pending,
"running" => Self::Running,
"completed" => Self::Completed,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ExperimentVariant {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub eval_run_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ExportAdminConfigResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exported_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub section_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sections: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FileArbiterAppealRequest {
pub filed_by: String,
pub reason: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FileArbiterCaseRequest {
pub filed_by: String,
pub against_agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetActivityFeedResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAdminGuardrailsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub guardrails: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAdminIntegrationsResponse {
pub integrations: Vec<GetAdminIntegrationsResponseIntegration>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAdminIntegrationsResponseIntegration {
pub id: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub icon: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auth_type: Option<GetAdminIntegrationsResponseIntegrationAuthType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
pub enabled: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub beta: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum GetAdminIntegrationsResponseIntegrationAuthType {
#[default]
#[serde(rename = "oauth2")]
Oauth2,
#[serde(rename = "api_key")]
APIKey,
#[serde(rename = "none")]
None,
#[serde(untagged)]
Other(String),
}
impl GetAdminIntegrationsResponseIntegrationAuthType {
pub fn as_str(&self) -> &str {
match self {
Self::Oauth2 => "oauth2",
Self::APIKey => "api_key",
Self::None => "none",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for GetAdminIntegrationsResponseIntegrationAuthType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for GetAdminIntegrationsResponseIntegrationAuthType {
fn from(value: &str) -> Self {
match value {
"oauth2" => Self::Oauth2,
"api_key" => Self::APIKey,
"none" => Self::None,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAdminLLMDefaultsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub providers: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAdminPlansResponse {
pub plans: Vec<GetAdminPlansResponsePlan>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAdminPlansResponsePlan {
pub id: String,
pub name: String,
pub quotas: serde_json::Map<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAdminStatsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_tenants: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_agents: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_runs: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAdminTraceResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub trace: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAgentActivityStatsResponse {
#[serde(rename = "totalRuns", default, skip_serializing_if = "Option::is_none")]
pub total_runs: Option<i64>,
#[serde(rename = "completedRuns", default, skip_serializing_if = "Option::is_none")]
pub completed_runs: Option<i64>,
#[serde(rename = "failedRuns", default, skip_serializing_if = "Option::is_none")]
pub failed_runs: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAgentIdentityResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub public_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAgentObligationsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rules: Option<Vec<ConstitutionRule>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub count: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum GetAgentSystemCardFormat {
#[default]
#[serde(rename = "json")]
JSON,
#[serde(rename = "markdown")]
Markdown,
#[serde(untagged)]
Other(String),
}
impl GetAgentSystemCardFormat {
pub fn as_str(&self) -> &str {
match self {
Self::JSON => "json",
Self::Markdown => "markdown",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for GetAgentSystemCardFormat {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for GetAgentSystemCardFormat {
fn from(value: &str) -> Self {
match value {
"json" => Self::JSON,
"markdown" => Self::Markdown,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAgentTrafficResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<GetAgentTrafficResponseEntry>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAgentTrafficResponseEntry {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub weight: Option<f64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAgentVersionDiffResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version_from: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version_to: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub diff: Option<HashMap<String, Value2>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub changed_fields: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAgentViolationsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub violations: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub count: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAppleAppSiteAssociationResponse {
pub applinks: GetAppleAppSiteAssociationResponseApplinks,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub webcredentials: Option<GetAppleAppSiteAssociationResponseWebcredentials>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAppleAppSiteAssociationResponseApplinks {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub apps: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub details: Option<Vec<GetAppleAppSiteAssociationResponseApplinksDetail>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAppleAppSiteAssociationResponseApplinksDetail {
#[serde(rename = "appIDs", default, skip_serializing_if = "Option::is_none")]
pub app_i_ds: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub components: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetAppleAppSiteAssociationResponseWebcredentials {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub apps: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetBridgeTaskApprovalResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub approval_response: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetClientConfigResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub features: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub providers: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetCommerceAnalyticsResponse {
pub total_customers: i64,
pub total_products: i64,
pub total_orders: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub paid_orders: Option<i64>,
pub total_revenue_cents: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub active_enrollments: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completed_enrollments: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetCompanyActivityResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub activity: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetCompanyBudgetResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_usd: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spent_usd: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub daily_limit_usd: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub alert_threshold_pct: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub remaining_usd: Option<f64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetCompanyObjectivesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub trees: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub objectives: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetConstitutionResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rules: Option<Vec<ConstitutionRule>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetDataExplorerValueResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size_bytes: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetFeatureFlagsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub flags: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetGovernanceLedgerResponse {
pub entries: Vec<GovernanceLedgerEntry>,
pub head: String,
pub total: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetHealthResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<GetHealthResponseStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timestamp: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kv_connected: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uptime_seconds: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pending_resumes: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum GetHealthResponseStatus {
#[default]
#[serde(rename = "healthy")]
Healthy,
#[serde(rename = "degraded")]
Degraded,
#[serde(rename = "unhealthy")]
Unhealthy,
#[serde(untagged)]
Other(String),
}
impl GetHealthResponseStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Healthy => "healthy",
Self::Degraded => "degraded",
Self::Unhealthy => "unhealthy",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for GetHealthResponseStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for GetHealthResponseStatus {
fn from(value: &str) -> Self {
match value {
"healthy" => Self::Healthy,
"degraded" => Self::Degraded,
"unhealthy" => Self::Unhealthy,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetImmutableAuditResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetListingReviewsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reviews: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetMarkupConfigResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub markup: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetMemoriesByEntityResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<MemoryEntry>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetMeResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<GetMeResponseUser>,
pub tenant: GetMeResponseTenant,
pub role: String,
pub scopes: Vec<String>,
pub auth_method: GetMeResponseAuthMethod,
pub memberships: Vec<GetMeResponseMembership>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum GetMeResponseAuthMethod {
#[default]
#[serde(rename = "api_key")]
APIKey,
#[serde(rename = "cookie")]
Cookie,
#[serde(rename = "jwt")]
JWT,
#[serde(untagged)]
Other(String),
}
impl GetMeResponseAuthMethod {
pub fn as_str(&self) -> &str {
match self {
Self::APIKey => "api_key",
Self::Cookie => "cookie",
Self::JWT => "jwt",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for GetMeResponseAuthMethod {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for GetMeResponseAuthMethod {
fn from(value: &str) -> Self {
match value {
"api_key" => Self::APIKey,
"cookie" => Self::Cookie,
"jwt" => Self::JWT,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetMeResponseMembership {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetMeResponseTenant {
pub tenant_id: String,
pub name: String,
pub slug: String,
pub plan: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetMeResponseUser {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub avatar_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_login_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetMfaStatusResponse {
pub enrolled: bool,
pub recovery_remaining: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetMyHeadAgentTemplateResponse {
pub plan: String,
pub recommended: GetMyHeadAgentTemplateResponseRecommended,
pub tiers: Vec<GetMyHeadAgentTemplateResponseTier>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum GetMyHeadAgentTemplateResponseRecommended {
#[default]
#[serde(rename = "basic")]
Basic,
#[serde(rename = "standard")]
Standard,
#[serde(rename = "full")]
Full,
#[serde(untagged)]
Other(String),
}
impl GetMyHeadAgentTemplateResponseRecommended {
pub fn as_str(&self) -> &str {
match self {
Self::Basic => "basic",
Self::Standard => "standard",
Self::Full => "full",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for GetMyHeadAgentTemplateResponseRecommended {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for GetMyHeadAgentTemplateResponseRecommended {
fn from(value: &str) -> Self {
match value {
"basic" => Self::Basic,
"standard" => Self::Standard,
"full" => Self::Full,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetMyHeadAgentTemplateResponseTier {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tier: Option<GetMyHeadAgentTemplateResponseTierTier>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub available: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub install_specs: Option<Vec<GetMyHeadAgentTemplateResponseTierInstallSpec>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auto_approve_tools: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_tool_count: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetMyHeadAgentTemplateResponseTierInstallSpec {
pub spec_id: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetMyHeadAgentTemplateResponseTierTier {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<GetMyHeadAgentTemplateResponseRecommended>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub required_plan: Option<GetMyHeadAgentTemplateResponseTierTierRequiredPlan>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spec_ids: Option<Vec<String>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum GetMyHeadAgentTemplateResponseTierTierRequiredPlan {
#[default]
#[serde(rename = "free")]
Free,
#[serde(rename = "starter")]
Starter,
#[serde(rename = "pro")]
Pro,
#[serde(untagged)]
Other(String),
}
impl GetMyHeadAgentTemplateResponseTierTierRequiredPlan {
pub fn as_str(&self) -> &str {
match self {
Self::Free => "free",
Self::Starter => "starter",
Self::Pro => "pro",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for GetMyHeadAgentTemplateResponseTierTierRequiredPlan {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for GetMyHeadAgentTemplateResponseTierTierRequiredPlan {
fn from(value: &str) -> Self {
match value {
"free" => Self::Free,
"starter" => Self::Starter,
"pro" => Self::Pro,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetPlatformURLSResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub urls: Option<GetPlatformURLSResponseURLS>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetPlatformURLSResponseURLS {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub public_base_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub webhook_base_url: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetPublicFeaturedAgentResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetRateLimitsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub endpoints: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetReadyResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<GetReadyResponseStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timestamp: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub checks: Option<GetReadyResponseChecks>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetReadyResponseChecks {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kv: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum GetReadyResponseStatus {
#[default]
#[serde(rename = "ready")]
Ready,
#[serde(rename = "not_ready")]
NotReady,
#[serde(untagged)]
Other(String),
}
impl GetReadyResponseStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Ready => "ready",
Self::NotReady => "not_ready",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for GetReadyResponseStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for GetReadyResponseStatus {
fn from(value: &str) -> Self {
match value {
"ready" => Self::Ready,
"not_ready" => Self::NotReady,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetRootAgentResponse {
#[serde(default)]
pub root_agent_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetRunQueuePositionResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub run_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub queue_position: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetRunStepsResponse {
pub steps: Vec<RunStep>,
pub total: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetRuntimeConfigResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub runtime: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetSessionShareResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub share_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<GetSessionShareResponseRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum GetSessionShareResponseRole {
#[default]
#[serde(rename = "viewer")]
Viewer,
#[serde(rename = "editor")]
Editor,
#[serde(untagged)]
Other(String),
}
impl GetSessionShareResponseRole {
pub fn as_str(&self) -> &str {
match self {
Self::Viewer => "viewer",
Self::Editor => "editor",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for GetSessionShareResponseRole {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for GetSessionShareResponseRole {
fn from(value: &str) -> Self {
match value {
"viewer" => Self::Viewer,
"editor" => Self::Editor,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetTeamChatHistoryResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conversation_history: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chat_state: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetTeamGraphResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nodes: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub edges: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetTeamRunMessagesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub messages: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetTenantUsageResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub period: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub usage: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetUnreadCountResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unread_count: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum GetUsageTimeseriesMetric {
#[default]
#[serde(rename = "runs")]
Runs,
#[serde(rename = "tokens")]
Tokens,
#[serde(rename = "cost")]
Cost,
#[serde(untagged)]
Other(String),
}
impl GetUsageTimeseriesMetric {
pub fn as_str(&self) -> &str {
match self {
Self::Runs => "runs",
Self::Tokens => "tokens",
Self::Cost => "cost",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for GetUsageTimeseriesMetric {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for GetUsageTimeseriesMetric {
fn from(value: &str) -> Self {
match value {
"runs" => Self::Runs,
"tokens" => Self::Tokens,
"cost" => Self::Cost,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetUsageTimeseriesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plan: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<Vec<GetUsageTimeseriesResponseDataItem>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GetUsageTimeseriesResponseDataItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<f64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Goal {
pub id: String,
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub status: GoalStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum GoalStatus {
#[default]
#[serde(rename = "draft")]
Draft,
#[serde(rename = "active")]
Active,
#[serde(rename = "achieved")]
Achieved,
#[serde(rename = "abandoned")]
Abandoned,
#[serde(rename = "expired")]
Expired,
#[serde(untagged)]
Other(String),
}
impl GoalStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Draft => "draft",
Self::Active => "active",
Self::Achieved => "achieved",
Self::Abandoned => "abandoned",
Self::Expired => "expired",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for GoalStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for GoalStatus {
fn from(value: &str) -> Self {
match value {
"draft" => Self::Draft,
"active" => Self::Active,
"achieved" => Self::Achieved,
"abandoned" => Self::Abandoned,
"expired" => Self::Expired,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GoogleOneTapAuthRequest {
pub credential: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub device_label: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GoogleOneTapAuthResponse {
pub api_key: String,
pub email: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct GovernanceLedgerEntry {
pub seq: i64,
pub action: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub payload: Option<serde_json::Map<String, serde_json::Value>>,
pub timestamp: String,
#[serde(default)]
pub prev_hash: Option<String>,
pub hash: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct HandleStripeWebhookRequest {
pub r#type: String,
pub data: serde_json::Map<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct HealthLiveResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct HealthzAliasResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ImportAdminConfigRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
pub sections: serde_json::Map<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ImprovementProposal {
pub agent_id: String,
pub version: String,
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub diff: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rationale: Option<String>,
pub status: ImprovementProposalStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub submitted_by: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ImprovementProposalStatus {
#[default]
#[serde(rename = "proposed")]
Proposed,
#[serde(rename = "arbiter_review")]
ArbiterReview,
#[serde(rename = "voting")]
Voting,
#[serde(rename = "sandbox_testing")]
SandboxTesting,
#[serde(rename = "approved")]
Approved,
#[serde(rename = "applied")]
Applied,
#[serde(rename = "rejected")]
Rejected,
#[serde(untagged)]
Other(String),
}
impl ImprovementProposalStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Proposed => "proposed",
Self::ArbiterReview => "arbiter_review",
Self::Voting => "voting",
Self::SandboxTesting => "sandbox_testing",
Self::Approved => "approved",
Self::Applied => "applied",
Self::Rejected => "rejected",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ImprovementProposalStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ImprovementProposalStatus {
fn from(value: &str) -> Self {
match value {
"proposed" => Self::Proposed,
"arbiter_review" => Self::ArbiterReview,
"voting" => Self::Voting,
"sandbox_testing" => Self::SandboxTesting,
"approved" => Self::Approved,
"applied" => Self::Applied,
"rejected" => Self::Rejected,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct IngestKbDocumentRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filename: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct IngestKbDocumentResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub document_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chunks_created: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct IngestMemoryRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filename: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chunk_size: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct IngestMemoryResponse {
pub ingested: bool,
pub filename: String,
pub text_length: i64,
pub chunks_created: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_id: Option<String>,
pub entries: Vec<IngestMemoryResponseEntry>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct IngestMemoryResponseEntry {
pub entry_id: String,
pub r#type: String,
pub content_preview: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Integration {
pub id: String,
pub tenant_id: String,
pub connector_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<serde_json::Map<String, serde_json::Value>>,
pub status: IntegrationStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_sync_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub migrated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct IntegrationCatalogItem {
pub id: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub icon: Option<String>,
pub auth_type: IntegrationCatalogItemAuthType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config_schema: Option<HashMap<String, Value>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum IntegrationCatalogItemAuthType {
#[default]
#[serde(rename = "api_key")]
APIKey,
#[serde(rename = "oauth2")]
Oauth2,
#[serde(rename = "webhook")]
Webhook,
#[serde(rename = "none")]
None,
#[serde(untagged)]
Other(String),
}
impl IntegrationCatalogItemAuthType {
pub fn as_str(&self) -> &str {
match self {
Self::APIKey => "api_key",
Self::Oauth2 => "oauth2",
Self::Webhook => "webhook",
Self::None => "none",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for IntegrationCatalogItemAuthType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for IntegrationCatalogItemAuthType {
fn from(value: &str) -> Self {
match value {
"api_key" => Self::APIKey,
"oauth2" => Self::Oauth2,
"webhook" => Self::Webhook,
"none" => Self::None,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum IntegrationStatus {
#[default]
#[serde(rename = "active")]
Active,
#[serde(rename = "inactive")]
Inactive,
#[serde(rename = "error")]
Error,
#[serde(untagged)]
Other(String),
}
impl IntegrationStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Active => "active",
Self::Inactive => "inactive",
Self::Error => "error",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for IntegrationStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for IntegrationStatus {
fn from(value: &str) -> Self {
match value {
"active" => Self::Active,
"inactive" => Self::Inactive,
"error" => Self::Error,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct InviteUserRequest {
pub email: String,
pub role: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct InvokeListingAgentRequest {
pub input: serde_json::Map<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct IssueArbiterRulingRequest {
pub decision: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub penalties: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct IssueArbiterRulingResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct KnowledgeBase {
pub id: String,
pub tenant_id: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub embedding_model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chunk_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub document_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct KnowledgeBaseCreate {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub embedding_model: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct KnowledgeBaseUpdate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListA2ATasksResponse {
pub tasks: Vec<A2ATask>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub has_more: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListAdminProvidersResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub providers: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListAgentIntegrationsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub integrations: Option<Vec<AgentIntegration>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListAgentScorersResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scorers: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListAgentsResponse {
pub items: Vec<Agent>,
#[serde(default)]
pub cursor: Option<String>,
pub has_more: bool,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListAgentVersionsResponse {
pub items: Vec<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub versions: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
pub total: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListAllContentReportsResponse {
pub items: Vec<ContentReport>,
#[serde(default)]
pub cursor: Option<String>,
pub has_more: bool,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListAmbassadorRequestsResponse {
pub requests: Vec<AmbassadorRequest>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListAmbassadorVetoesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vetoes: Option<Vec<Veto>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListArbiterCasesResponse {
pub cases: Vec<ArbiterCase>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListAuthProvidersResponse {
pub items: Vec<ListAuthProvidersResponseItem>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub providers: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListAuthProvidersResponseItem {
pub id: ListAuthProvidersResponseItemId,
pub linked: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sub: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub linked_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ListAuthProvidersResponseItemId {
#[default]
#[serde(rename = "otp")]
Otp,
#[serde(rename = "github")]
Github,
#[serde(rename = "google")]
Google,
#[serde(rename = "apple")]
Apple,
#[serde(untagged)]
Other(String),
}
impl ListAuthProvidersResponseItemId {
pub fn as_str(&self) -> &str {
match self {
Self::Otp => "otp",
Self::Github => "github",
Self::Google => "google",
Self::Apple => "apple",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ListAuthProvidersResponseItemId {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ListAuthProvidersResponseItemId {
fn from(value: &str) -> Self {
match value {
"otp" => Self::Otp,
"github" => Self::Github,
"google" => Self::Google,
"apple" => Self::Apple,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListBallotsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ballots: Option<Vec<Ballot>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListBillingPlansResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plans: Option<Vec<ListBillingPlansResponsePlan>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListBillingPlansResponsePlan {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub current: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub checkout_available: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub price_amount_cents: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub price_currency: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListBuilderRequestsResponse {
pub requests: Vec<DesignRequest>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListCommerceCustomersResponse {
pub items: Vec<Customer>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub customers: Option<Vec<Customer>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListCommerceEnrollmentsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enrollments: Option<Vec<Enrollment>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListCommerceOrdersResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub orders: Option<Vec<Order>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListCommerceProductsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub products: Option<Vec<Product>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListCompaniesResponse {
pub items: Vec<Company>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub companies: Option<Vec<Company>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListContentReportsResponse {
pub items: Vec<ContentReport>,
#[serde(default)]
pub cursor: Option<String>,
pub has_more: bool,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListDataExplorerKeysResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keys: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub has_more: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListDataExplorerNamespacesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListFilesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub has_more: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListGoalsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub goals: Option<Vec<Goal>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListIntegrationsCatalogResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub connectors: Option<Vec<IntegrationCatalogItem>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListIntegrationsResponse {
pub integrations: Vec<Integration>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListInvitesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub invites: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListKbDocumentsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub documents: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListKnowledgeBasesResponse {
pub items: Vec<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub knowledge_bases: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
pub total: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListLLMCredentialsProvidersResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub providers: Option<Vec<ListLLMCredentialsProvidersResponseProvider>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListLLMCredentialsProvidersResponseProvider {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub configured: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub local: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub default_endpoint: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListLLMModelsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub models: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListMCPServersResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub servers: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListMeSessionsResponse {
pub items: Vec<ListMeSessionsResponseItem>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sessions: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
pub total: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListMeSessionsResponseItem {
pub key_id: String,
pub name: String,
pub prefix: String,
pub scopes: Vec<String>,
pub status: ListMeSessionsResponseItemStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_used_at: Option<String>,
pub is_current: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ListMeSessionsResponseItemStatus {
#[default]
#[serde(rename = "active")]
Active,
#[serde(rename = "revoked")]
Revoked,
#[serde(untagged)]
Other(String),
}
impl ListMeSessionsResponseItemStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Active => "active",
Self::Revoked => "revoked",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ListMeSessionsResponseItemStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ListMeSessionsResponseItemStatus {
fn from(value: &str) -> Self {
match value {
"active" => Self::Active,
"revoked" => Self::Revoked,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListModelsResponse {
pub object: String,
pub data: Vec<ListModelsResponseDataItem>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListModelsResponseDataItem {
pub id: String,
pub object: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListMyTenantsResponse {
pub user_id: String,
pub email: String,
pub memberships: Vec<ListMyTenantsResponseMembership>,
pub pending_invites: Vec<ListMyTenantsResponsePendingInvite>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListMyTenantsResponseMembership {
pub tenant_id: String,
pub user_id: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub slug: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plan: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub logo_url: Option<String>,
pub role: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_sole_owner: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub member_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub joined_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListMyTenantsResponsePendingInvite {
pub invite_id: String,
pub tenant_id: String,
pub tenant_name: String,
pub role: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub invited_by_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListNotificationsResponse {
pub notifications: Vec<Notification>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListOAuthLoginProvidersResponse {
pub providers: Vec<ListOAuthLoginProvidersResponseProvider>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListOAuthLoginProvidersResponseProvider {
pub id: ListOAuthLoginProvidersResponseProviderId,
pub name: String,
pub enabled: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ListOAuthLoginProvidersResponseProviderId {
#[default]
#[serde(rename = "github")]
Github,
#[serde(rename = "google")]
Google,
#[serde(rename = "apple")]
Apple,
#[serde(untagged)]
Other(String),
}
impl ListOAuthLoginProvidersResponseProviderId {
pub fn as_str(&self) -> &str {
match self {
Self::Github => "github",
Self::Google => "google",
Self::Apple => "apple",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ListOAuthLoginProvidersResponseProviderId {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ListOAuthLoginProvidersResponseProviderId {
fn from(value: &str) -> Self {
match value {
"github" => Self::Github,
"google" => Self::Google,
"apple" => Self::Apple,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListProviderModelsResponse {
pub provider: String,
pub endpoint_url: String,
pub models: Vec<ListProviderModelsResponseModel>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListProviderModelsResponseModel {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListPublicPlansResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plans: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListPublicStatesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub states: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListPublicTenantsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub has_more: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListRunCheckpointsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub checkpoints: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListRunsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub has_more: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListSessionAnnotationsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<ListSessionAnnotationsResponseItem>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListSessionAnnotationsResponseItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub author: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resolved: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListSessionArtifactsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub artifacts: Option<Vec<Artifact>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListSessionBranchesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub branches: Option<Vec<ListSessionBranchesResponseBranch>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub active_branch: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListSessionBranchesResponseBranch {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub branch_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListSessionsResponse {
pub items: Vec<ListSessionsResponseItem>,
#[serde(default)]
pub cursor: Option<String>,
pub has_more: bool,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListSessionsResponseItem {
pub session_id: String,
pub tenant_id: String,
pub agent_id: String,
pub status: SessionStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conversation_history: Option<Vec<ConversationEntry>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub runs: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub branches: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub active_branch: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub queue_mode: Option<SessionQueueMode>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model_override: Option<ListSessionsResponseItemModelOverride>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub first_user_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_count: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListSessionsResponseItemModelOverride {
pub provider: String,
pub model_ref: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub endpoint_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListSessionTodosResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub todos: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListSubscriptionsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subscriptions: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListTeamGraphEdgesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub edges: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListTeamGraphNodesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nodes: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListTeamRunsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub runs: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListTeamsResponse {
pub items: Vec<Team>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub teams: Option<Vec<Team>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListTenantsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenants: Option<Vec<Tenant>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListTodosResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub todos: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListUsersResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub users: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListVideoProvidersResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub providers: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListVotingProposalsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub proposals: Option<Vec<VotingProposal>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListWebhookDeliveriesResponse {
pub webhook_id: String,
pub deliveries: Vec<serde_json::Map<String, serde_json::Value>>,
pub total: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListWebhooksResponse {
pub webhooks: Vec<WebhookSubscription>,
pub total: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ListWorkspaceTrashResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct LLMCredential {
pub id: String,
pub tenant_id: String,
pub provider: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
pub key_preview: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub endpoint_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct LLMSynthesizeSpeechRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
pub input: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub voice: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub response_format: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct LLMTranscribeAudioRequest {
pub file: FilePart,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct LocateMyAgentResponse {
pub tenant_id: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct LogoutResponse {
pub ok: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub already_revoked: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct MarkAllNotificationsReadResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub marked: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct MarketplaceInvocation {
pub invocation_id: String,
pub listing_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub caller_tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input: Option<serde_json::Map<String, serde_json::Value>>,
pub status: MarketplaceInvocationStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub result: Option<serde_json::Map<String, serde_json::Value>>,
pub created_at: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completed_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum MarketplaceInvocationStatus {
#[default]
#[serde(rename = "pending")]
Pending,
#[serde(rename = "running")]
Running,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "failed")]
Failed,
#[serde(untagged)]
Other(String),
}
impl MarketplaceInvocationStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Pending => "pending",
Self::Running => "running",
Self::Completed => "completed",
Self::Failed => "failed",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for MarketplaceInvocationStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for MarketplaceInvocationStatus {
fn from(value: &str) -> Self {
match value {
"pending" => Self::Pending,
"running" => Self::Running,
"completed" => Self::Completed,
"failed" => Self::Failed,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct MarketplaceListing {
pub listing_id: String,
pub tenant_id: String,
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_version: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub category: MarketplaceListingCategory,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub icon_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub readme: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pricing: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stats: Option<MarketplaceListingStats>,
pub status: MarketplaceListingStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub a2a_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub program_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum MarketplaceListingCategory {
#[default]
#[serde(rename = "productivity")]
Productivity,
#[serde(rename = "engineering")]
Engineering,
#[serde(rename = "research")]
Research,
#[serde(rename = "creative")]
Creative,
#[serde(rename = "support")]
Support,
#[serde(rename = "operations")]
Operations,
#[serde(rename = "analytics")]
Analytics,
#[serde(rename = "education")]
Education,
#[serde(rename = "personal")]
Personal,
#[serde(rename = "other")]
Other,
#[serde(untagged)]
Unknown(String),
}
impl MarketplaceListingCategory {
pub fn as_str(&self) -> &str {
match self {
Self::Productivity => "productivity",
Self::Engineering => "engineering",
Self::Research => "research",
Self::Creative => "creative",
Self::Support => "support",
Self::Operations => "operations",
Self::Analytics => "analytics",
Self::Education => "education",
Self::Personal => "personal",
Self::Other => "other",
Self::Unknown(value) => value.as_str(),
}
}
}
impl std::fmt::Display for MarketplaceListingCategory {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for MarketplaceListingCategory {
fn from(value: &str) -> Self {
match value {
"productivity" => Self::Productivity,
"engineering" => Self::Engineering,
"research" => Self::Research,
"creative" => Self::Creative,
"support" => Self::Support,
"operations" => Self::Operations,
"analytics" => Self::Analytics,
"education" => Self::Education,
"personal" => Self::Personal,
"other" => Self::Other,
other => Self::Unknown(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct MarketplaceListingRating {
pub rating_id: String,
pub listing_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
pub rating: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub review: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
pub created_at: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct MarketplaceListingStats {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rating_avg: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rating_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub invocation_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub favourite_count: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum MarketplaceListingStatus {
#[default]
#[serde(rename = "draft")]
Draft,
#[serde(rename = "published")]
Published,
#[serde(rename = "deprecated")]
Deprecated,
#[serde(untagged)]
Other(String),
}
impl MarketplaceListingStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Draft => "draft",
Self::Published => "published",
Self::Deprecated => "deprecated",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for MarketplaceListingStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for MarketplaceListingStatus {
fn from(value: &str) -> Self {
match value {
"draft" => Self::Draft,
"published" => Self::Published,
"deprecated" => Self::Deprecated,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct McpjsonRpcRequest {
pub jsonrpc: String,
pub method: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub params: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct MemoryEntry {
pub entry_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<MemoryEntryType>,
pub content: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub relevance_score: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_run_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum MemoryEntryType {
#[default]
#[serde(rename = "episodic")]
Episodic,
#[serde(rename = "semantic")]
Semantic,
#[serde(rename = "procedural")]
Procedural,
#[serde(rename = "note")]
Note,
#[serde(untagged)]
Other(String),
}
impl MemoryEntryType {
pub fn as_str(&self) -> &str {
match self {
Self::Episodic => "episodic",
Self::Semantic => "semantic",
Self::Procedural => "procedural",
Self::Note => "note",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for MemoryEntryType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for MemoryEntryType {
fn from(value: &str) -> Self {
match value {
"episodic" => Self::Episodic,
"semantic" => Self::Semantic,
"procedural" => Self::Procedural,
"note" => Self::Note,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct MintSSETokenResponse {
pub token: String,
pub expires_at: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct MoveWorkspaceFileRequest {
pub from_path: String,
pub to_path: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Notification {
pub id: String,
pub tenant_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
pub r#type: String,
pub title: String,
pub message: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<serde_json::Map<String, serde_json::Value>>,
pub read: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub action_url: Option<String>,
pub created_at: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub priority: Option<NotificationPriority>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dedup_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<NotificationSource>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum NotificationPriority {
#[default]
#[serde(rename = "critical")]
Critical,
#[serde(rename = "warning")]
Warning,
#[serde(rename = "info")]
Info,
#[serde(rename = "success")]
Success,
#[serde(untagged)]
Other(String),
}
impl NotificationPriority {
pub fn as_str(&self) -> &str {
match self {
Self::Critical => "critical",
Self::Warning => "warning",
Self::Info => "info",
Self::Success => "success",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for NotificationPriority {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for NotificationPriority {
fn from(value: &str) -> Self {
match value {
"critical" => Self::Critical,
"warning" => Self::Warning,
"info" => Self::Info,
"success" => Self::Success,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct NotificationSource {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<NotificationSourceKind>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum NotificationSourceKind {
#[default]
#[serde(rename = "run")]
Run,
#[serde(rename = "agent")]
Agent,
#[serde(rename = "bridge")]
Bridge,
#[serde(rename = "budget")]
Budget,
#[serde(rename = "team")]
Team,
#[serde(rename = "task")]
Task,
#[serde(untagged)]
Other(String),
}
impl NotificationSourceKind {
pub fn as_str(&self) -> &str {
match self {
Self::Run => "run",
Self::Agent => "agent",
Self::Bridge => "bridge",
Self::Budget => "budget",
Self::Team => "team",
Self::Task => "task",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for NotificationSourceKind {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for NotificationSourceKind {
fn from(value: &str) -> Self {
match value {
"run" => Self::Run,
"agent" => Self::Agent,
"bridge" => Self::Bridge,
"budget" => Self::Budget,
"team" => Self::Team,
"task" => Self::Task,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct OAuthCompleteRequest {
pub state: String,
pub code: String,
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct OAuthLoginProviderConfigDeleted {
pub provider: OAuthLoginProviderItemId,
pub configured: bool,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct OAuthLoginProviderConfigStatus {
pub provider: OAuthLoginProviderItemId,
pub enabled: bool,
pub configured: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_secret_hint: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scopes: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct OAuthLoginProviderConfigUpdate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scopes: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct OAuthLoginProviderConfigUpdateResponse {
pub provider: OAuthLoginProviderItemId,
pub enabled: bool,
pub configured: bool,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct OAuthLoginProviderItem {
pub id: OAuthLoginProviderItemId,
pub name: String,
pub enabled: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum OAuthLoginProviderItemId {
#[default]
#[serde(rename = "github")]
Github,
#[serde(rename = "google")]
Google,
#[serde(untagged)]
Other(String),
}
impl OAuthLoginProviderItemId {
pub fn as_str(&self) -> &str {
match self {
Self::Github => "github",
Self::Google => "google",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for OAuthLoginProviderItemId {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for OAuthLoginProviderItemId {
fn from(value: &str) -> Self {
match value {
"github" => Self::Github,
"google" => Self::Google,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct OAuthLoginProvidersList {
pub providers: Vec<OAuthLoginProviderItem>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct OAuthStartResponse {
pub auth_url: String,
pub state: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct OpenAiError {
pub error: OpenAiErrorError,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct OpenAiErrorError {
pub message: String,
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Order {
pub id: String,
pub tenant_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub customer_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub product_id: Option<String>,
pub amount_cents: i64,
pub currency: String,
pub status: OrderStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stripe_payment_intent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub paid_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum OrderStatus {
#[default]
#[serde(rename = "pending")]
Pending,
#[serde(rename = "paid")]
Paid,
#[serde(rename = "failed")]
Failed,
#[serde(rename = "refunded")]
Refunded,
#[serde(untagged)]
Other(String),
}
impl OrderStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Pending => "pending",
Self::Paid => "paid",
Self::Failed => "failed",
Self::Refunded => "refunded",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for OrderStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for OrderStatus {
fn from(value: &str) -> Self {
match value {
"pending" => Self::Pending,
"paid" => Self::Paid,
"failed" => Self::Failed,
"refunded" => Self::Refunded,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct PauseCompanyResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct PermissionCheckResult {
pub allowed: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub denied_permissions: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct PermissionSet {
pub agent_id: String,
pub tenant_id: String,
pub allowed_tools: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_roles: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_permissions: Option<Vec<ResourcePermission>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_budget_per_run_usd: Option<f64>,
pub max_spawn_depth: i64,
pub can_spawn: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_self_modify: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Product {
pub id: String,
pub tenant_id: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub r#type: ProductType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<ProductStatus>,
pub price_cents: i64,
pub currency: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub knowledge_base_ids: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub course_structure: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub slug: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vendor: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub images: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub variants: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub compare_at_price_cents: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body_html: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shopify_product_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stripe_price_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ProductStatus {
#[default]
#[serde(rename = "active")]
Active,
#[serde(rename = "archived")]
Archived,
#[serde(untagged)]
Other(String),
}
impl ProductStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Active => "active",
Self::Archived => "archived",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ProductStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ProductStatus {
fn from(value: &str) -> Self {
match value {
"active" => Self::Active,
"archived" => Self::Archived,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ProductType {
#[default]
#[serde(rename = "course")]
Course,
#[serde(rename = "service")]
Service,
#[serde(rename = "digital")]
Digital,
#[serde(rename = "subscription")]
Subscription,
#[serde(untagged)]
Other(String),
}
impl ProductType {
pub fn as_str(&self) -> &str {
match self {
Self::Course => "course",
Self::Service => "service",
Self::Digital => "digital",
Self::Subscription => "subscription",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ProductType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ProductType {
fn from(value: &str) -> Self {
match value {
"course" => Self::Course,
"service" => Self::Service,
"digital" => Self::Digital,
"subscription" => Self::Subscription,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ProductUpdate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub price_cents: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub knowledge_base_ids: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub course_structure: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stripe_price_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub slug: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vendor: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub images: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub variants: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub compare_at_price_cents: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body_html: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct PublicDomainLookupResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub found: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct PublicTrackEventRequest {
pub event: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub properties: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct PublishListingRequest {
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_version: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub category: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub readme: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pricing: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub a2a_enabled: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct PurgeAdminTenantResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub purged: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct PushBridgeTaskEventsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub events_stored: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RateListingRequest {
pub rating: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegisterAmbassadorRequest {
pub ambassador_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permissions: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegisterAmbassadorResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryAdminListSpecsResponse {
pub specs: Vec<RegistryAdminListSpecsResponseSpec>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub next_cursor: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryAdminListSpecsResponseSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner_tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub visibility: Option<RegistryPublishResponseVisibility>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub latest_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub published_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size_bytes: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub yanked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_with_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub categories: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keywords: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryGetFileResponse {
pub path: String,
pub size: i64,
pub binary: bool,
pub truncated: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryGetReadmeResponse {
pub readme: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryGetShareResponse {
pub scope: String,
pub name: String,
pub shared_with: Vec<String>,
pub owner_tenant_id: String,
pub updated_at: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryGetSparseIndexResponse {
pub scope: String,
pub name: String,
pub versions: Vec<RegistryGetSparseIndexResponseVersion>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryGetSparseIndexResponseVersion {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha256: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dependencies: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub yanked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub yank_reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub published_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryGetSpecMetadataResponse {
pub scope: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub license: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub repository: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub homepage: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub categories: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keywords: Option<Vec<String>>,
pub visibility: RegistryPublishResponseVisibility,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_with: Option<Vec<String>>,
pub owner_tenant_id: String,
pub latest_version: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub versions: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub schema_version: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryGetSpecVersionResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub manifest: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha256: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size_bytes: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dependencies: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub yanked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub visibility: Option<RegistryPublishResponseVisibility>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_with: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub published_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub download_url: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryListFilesResponse {
pub files: Vec<RegistryListFilesResponseFile>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryListFilesResponseFile {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub binary: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryPublishRequest {
pub manifest: String,
pub artifact: FilePart,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha256: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub attestation: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryPublishResponse {
pub scope: String,
pub name: String,
pub version: String,
pub publisher_tenant_id: String,
pub manifest: serde_json::Map<String, serde_json::Value>,
pub sha256: String,
pub size_bytes: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub artifact_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dependencies: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub yanked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub yanked_reason: Option<String>,
pub visibility: RegistryPublishResponseVisibility,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_with: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub attestation: Option<serde_json::Map<String, serde_json::Value>>,
pub published_at: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum RegistryPublishResponseVisibility {
#[default]
#[serde(rename = "public")]
Public,
#[serde(rename = "private")]
Private,
#[serde(untagged)]
Other(String),
}
impl RegistryPublishResponseVisibility {
pub fn as_str(&self) -> &str {
match self {
Self::Public => "public",
Self::Private => "private",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for RegistryPublishResponseVisibility {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for RegistryPublishResponseVisibility {
fn from(value: &str) -> Self {
match value {
"public" => Self::Public,
"private" => Self::Private,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistrySearchResponse {
pub hits: Vec<RegistrySearchResponseHit>,
pub total: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub next_cursor: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistrySearchResponseHit {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub categories: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keywords: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub publisher_tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub published_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistrySetShareRequest {
pub shared_with: Vec<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistrySetShareResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_with: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner_tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RegistryYankVersionRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RejectRunRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ReplaceConstitutionRequest {
pub rules: Vec<ConstitutionRule>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ReplaceConstitutionResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rules: Option<Vec<ConstitutionRule>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ResendInviteResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ResolveAmbassadorRequestRequest {
pub response: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ResolveSharedSessionResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<GetSessionShareResponseRole>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ResourcePermission {
pub resource: String,
pub actions: Vec<ResourcePermissionAction>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ResourcePermissionAction {
#[default]
#[serde(rename = "read")]
Read,
#[serde(rename = "write")]
Write,
#[serde(rename = "delete")]
Delete,
#[serde(rename = "execute")]
Execute,
#[serde(untagged)]
Other(String),
}
impl ResourcePermissionAction {
pub fn as_str(&self) -> &str {
match self {
Self::Read => "read",
Self::Write => "write",
Self::Delete => "delete",
Self::Execute => "execute",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ResourcePermissionAction {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ResourcePermissionAction {
fn from(value: &str) -> Self {
match value {
"read" => Self::Read,
"write" => Self::Write,
"delete" => Self::Delete,
"execute" => Self::Execute,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RespondToPublicHitlRequest {
pub response: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RespondToRunRequest {
pub response: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RespondToRunResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub accepted: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ResumeCompanyResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RevokeMeSessionResponse {
pub ok: bool,
pub key_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub already_revoked: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RiskClassification {
pub level: RiskClassificationUpdateLevel,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annex_iii_category: Option<RiskClassificationUpdateAnnexIiiCategory>,
pub justification: String,
pub assessor: String,
pub assessed_at: String,
pub review_due_at: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RiskClassificationUpdate {
pub level: RiskClassificationUpdateLevel,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annex_iii_category: Option<RiskClassificationUpdateAnnexIiiCategory>,
pub justification: String,
pub assessor: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assessed_at: Option<String>,
pub review_due_at: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum RiskClassificationUpdateAnnexIiiCategory {
#[default]
#[serde(rename = "biometric")]
Biometric,
#[serde(rename = "critical-infrastructure")]
CriticalInfrastructure,
#[serde(rename = "education")]
Education,
#[serde(rename = "employment")]
Employment,
#[serde(rename = "essential-services")]
EssentialServices,
#[serde(rename = "law-enforcement")]
LawEnforcement,
#[serde(rename = "migration")]
Migration,
#[serde(rename = "democratic-processes")]
DemocraticProcesses,
#[serde(untagged)]
Other(String),
}
impl RiskClassificationUpdateAnnexIiiCategory {
pub fn as_str(&self) -> &str {
match self {
Self::Biometric => "biometric",
Self::CriticalInfrastructure => "critical-infrastructure",
Self::Education => "education",
Self::Employment => "employment",
Self::EssentialServices => "essential-services",
Self::LawEnforcement => "law-enforcement",
Self::Migration => "migration",
Self::DemocraticProcesses => "democratic-processes",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for RiskClassificationUpdateAnnexIiiCategory {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for RiskClassificationUpdateAnnexIiiCategory {
fn from(value: &str) -> Self {
match value {
"biometric" => Self::Biometric,
"critical-infrastructure" => Self::CriticalInfrastructure,
"education" => Self::Education,
"employment" => Self::Employment,
"essential-services" => Self::EssentialServices,
"law-enforcement" => Self::LawEnforcement,
"migration" => Self::Migration,
"democratic-processes" => Self::DemocraticProcesses,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum RiskClassificationUpdateLevel {
#[default]
#[serde(rename = "minimal")]
Minimal,
#[serde(rename = "limited")]
Limited,
#[serde(rename = "high")]
High,
#[serde(rename = "unacceptable")]
Unacceptable,
#[serde(untagged)]
Other(String),
}
impl RiskClassificationUpdateLevel {
pub fn as_str(&self) -> &str {
match self {
Self::Minimal => "minimal",
Self::Limited => "limited",
Self::High => "high",
Self::Unacceptable => "unacceptable",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for RiskClassificationUpdateLevel {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for RiskClassificationUpdateLevel {
fn from(value: &str) -> Self {
match value {
"minimal" => Self::Minimal,
"limited" => Self::Limited,
"high" => Self::High,
"unacceptable" => Self::Unacceptable,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RollbackAgentRequest {
pub version: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RotateAgentIdentityResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub public_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rotated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Run {
pub run_id: String,
pub tenant_id: String,
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
pub status: RunStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metrics: Option<RunMetrics>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
pub created_at: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub started_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completed_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_run_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub step_seq: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub artifacts: Option<Vec<Artifact>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_limits: Option<RunResourceLimits>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RunEvaluationRequest {
pub dataset_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_version: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RunMetrics {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration_ms: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub steps_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub thinking_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_calls_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_calls_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub guardrail_checks: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub guardrail_violations: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory_retrievals: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory_extractions: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_cost_usd: Option<f64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RunResourceLimits {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_duration_ms: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_steps: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_tool_calls: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_tokens_per_run: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum RunStatus {
#[default]
#[serde(rename = "queued")]
Queued,
#[serde(rename = "running")]
Running,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "failed")]
Failed,
#[serde(rename = "cancelled")]
Cancelled,
#[serde(rename = "timeout")]
Timeout,
#[serde(rename = "guardrail_blocked")]
GuardrailBlocked,
#[serde(rename = "paused")]
Paused,
#[serde(rename = "awaiting_approval")]
AwaitingApproval,
#[serde(rename = "awaiting_input")]
AwaitingInput,
#[serde(rename = "auth_required")]
AuthRequired,
#[serde(rename = "rejected")]
Rejected,
#[serde(untagged)]
Other(String),
}
impl RunStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Queued => "queued",
Self::Running => "running",
Self::Completed => "completed",
Self::Failed => "failed",
Self::Cancelled => "cancelled",
Self::Timeout => "timeout",
Self::GuardrailBlocked => "guardrail_blocked",
Self::Paused => "paused",
Self::AwaitingApproval => "awaiting_approval",
Self::AwaitingInput => "awaiting_input",
Self::AuthRequired => "auth_required",
Self::Rejected => "rejected",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for RunStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for RunStatus {
fn from(value: &str) -> Self {
match value {
"queued" => Self::Queued,
"running" => Self::Running,
"completed" => Self::Completed,
"failed" => Self::Failed,
"cancelled" => Self::Cancelled,
"timeout" => Self::Timeout,
"guardrail_blocked" => Self::GuardrailBlocked,
"paused" => Self::Paused,
"awaiting_approval" => Self::AwaitingApproval,
"awaiting_input" => Self::AwaitingInput,
"auth_required" => Self::AuthRequired,
"rejected" => Self::Rejected,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RunStep {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub step_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub run_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub step_index: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<RunStepStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metrics: Option<RunStepMetrics>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_calls: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub started_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completed_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RunStepMetrics {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration_ms: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub thinking_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_calls: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tool_calls_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cost_usd: Option<f64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum RunStepStatus {
#[default]
#[serde(rename = "running")]
Running,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "failed")]
Failed,
#[serde(untagged)]
Other(String),
}
impl RunStepStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Running => "running",
Self::Completed => "completed",
Self::Failed => "failed",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for RunStepStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for RunStepStatus {
fn from(value: &str) -> Self {
match value {
"running" => Self::Running,
"completed" => Self::Completed,
"failed" => Self::Failed,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RunWorkspaceCommandRequest {
pub command: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub workdir: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout_sec: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct RunWorkspaceCommandResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Schedule {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
pub cron: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_concurrent_scheduled: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub on_failure: Option<ScheduleOnFailure>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub autonomous_mode: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reflection_prompt: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub next_run_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum ScheduleOnFailure {
#[default]
#[serde(rename = "continue")]
Continue,
#[serde(rename = "pause")]
Pause,
#[serde(rename = "alert")]
Alert,
#[serde(untagged)]
Other(String),
}
impl ScheduleOnFailure {
pub fn as_str(&self) -> &str {
match self {
Self::Continue => "continue",
Self::Pause => "pause",
Self::Alert => "alert",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for ScheduleOnFailure {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for ScheduleOnFailure {
fn from(value: &str) -> Self {
match value {
"continue" => Self::Continue,
"pause" => Self::Pause,
"alert" => Self::Alert,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum SearchMarketplaceCategory {
#[default]
#[serde(rename = "coding")]
Coding,
#[serde(rename = "writing")]
Writing,
#[serde(rename = "research")]
Research,
#[serde(rename = "data")]
Data,
#[serde(rename = "automation")]
Automation,
#[serde(rename = "creative")]
Creative,
#[serde(rename = "education")]
Education,
#[serde(rename = "business")]
Business,
#[serde(rename = "other")]
Other,
#[serde(untagged)]
Unknown(String),
}
impl SearchMarketplaceCategory {
pub fn as_str(&self) -> &str {
match self {
Self::Coding => "coding",
Self::Writing => "writing",
Self::Research => "research",
Self::Data => "data",
Self::Automation => "automation",
Self::Creative => "creative",
Self::Education => "education",
Self::Business => "business",
Self::Other => "other",
Self::Unknown(value) => value.as_str(),
}
}
}
impl std::fmt::Display for SearchMarketplaceCategory {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for SearchMarketplaceCategory {
fn from(value: &str) -> Self {
match value {
"coding" => Self::Coding,
"writing" => Self::Writing,
"research" => Self::Research,
"data" => Self::Data,
"automation" => Self::Automation,
"creative" => Self::Creative,
"education" => Self::Education,
"business" => Self::Business,
"other" => Self::Other,
other => Self::Unknown(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SearchMarketplaceResponse {
pub items: Vec<MarketplaceListing>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub listings: Option<Vec<MarketplaceListing>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum SearchMarketplaceSort {
#[default]
#[serde(rename = "rating")]
Rating,
#[serde(rename = "popularity")]
Popularity,
#[serde(rename = "recency")]
Recency,
#[serde(untagged)]
Other(String),
}
impl SearchMarketplaceSort {
pub fn as_str(&self) -> &str {
match self {
Self::Rating => "rating",
Self::Popularity => "popularity",
Self::Recency => "recency",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for SearchMarketplaceSort {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for SearchMarketplaceSort {
fn from(value: &str) -> Self {
match value {
"rating" => Self::Rating,
"popularity" => Self::Popularity,
"recency" => Self::Recency,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SearchMemoryRequest {
pub text: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategy: Option<SearchMemoryRequestStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub types: Option<Vec<SearchMemoryRequestType>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum SearchMemoryRequestStrategy {
#[default]
#[serde(rename = "recency")]
Recency,
#[serde(rename = "hybrid")]
Hybrid,
#[serde(untagged)]
Other(String),
}
impl SearchMemoryRequestStrategy {
pub fn as_str(&self) -> &str {
match self {
Self::Recency => "recency",
Self::Hybrid => "hybrid",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for SearchMemoryRequestStrategy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for SearchMemoryRequestStrategy {
fn from(value: &str) -> Self {
match value {
"recency" => Self::Recency,
"hybrid" => Self::Hybrid,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum SearchMemoryRequestType {
#[default]
#[serde(rename = "episodic")]
Episodic,
#[serde(rename = "semantic")]
Semantic,
#[serde(rename = "procedural")]
Procedural,
#[serde(untagged)]
Other(String),
}
impl SearchMemoryRequestType {
pub fn as_str(&self) -> &str {
match self {
Self::Episodic => "episodic",
Self::Semantic => "semantic",
Self::Procedural => "procedural",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for SearchMemoryRequestType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for SearchMemoryRequestType {
fn from(value: &str) -> Self {
match value {
"episodic" => Self::Episodic,
"semantic" => Self::Semantic,
"procedural" => Self::Procedural,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum SearchType {
#[default]
#[serde(rename = "agent")]
Agent,
#[serde(rename = "session")]
Session,
#[serde(rename = "run")]
Run,
#[serde(untagged)]
Other(String),
}
impl SearchType {
pub fn as_str(&self) -> &str {
match self {
Self::Agent => "agent",
Self::Session => "session",
Self::Run => "run",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for SearchType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for SearchType {
fn from(value: &str) -> Self {
match value {
"agent" => Self::Agent,
"session" => Self::Session,
"run" => Self::Run,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum SearchWorkspaceFilesRegex {
#[default]
#[serde(rename = "true")]
True,
#[serde(rename = "1")]
V1,
#[serde(untagged)]
Other(String),
}
impl SearchWorkspaceFilesRegex {
pub fn as_str(&self) -> &str {
match self {
Self::True => "true",
Self::V1 => "1",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for SearchWorkspaceFilesRegex {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for SearchWorkspaceFilesRegex {
fn from(value: &str) -> Self {
match value {
"true" => Self::True,
"1" => Self::V1,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SearchWorkspaceFilesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub results: Option<Vec<SearchWorkspaceFilesResponseResult>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SearchWorkspaceFilesResponseResult {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(rename = "lineNumber", default, skip_serializing_if = "Option::is_none")]
pub line_number: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub line: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#match: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SendPublicMessageRequest {
pub content: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SendPublicMessageResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub run_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub messages_remaining: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SendSessionMessageRequest {
pub content: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_ids: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub workspace_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SendSessionMessageResponse {
pub run_id: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SensorWebhookResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub accepted: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Session {
pub session_id: String,
pub tenant_id: String,
pub agent_id: String,
pub status: SessionStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conversation_history: Option<Vec<ConversationEntry>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub runs: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub branches: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub active_branch: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub queue_mode: Option<SessionQueueMode>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model_override: Option<SessionModelOverride>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SessionModelOverride {
pub provider: String,
pub model_ref: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub endpoint_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum SessionQueueMode {
#[default]
#[serde(rename = "allow")]
Allow,
#[serde(rename = "reject")]
Reject,
#[serde(untagged)]
Other(String),
}
impl SessionQueueMode {
pub fn as_str(&self) -> &str {
match self {
Self::Allow => "allow",
Self::Reject => "reject",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for SessionQueueMode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for SessionQueueMode {
fn from(value: &str) -> Self {
match value {
"allow" => Self::Allow,
"reject" => Self::Reject,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum SessionStatus {
#[default]
#[serde(rename = "active")]
Active,
#[serde(rename = "closed")]
Closed,
#[serde(rename = "expired")]
Expired,
#[serde(untagged)]
Other(String),
}
impl SessionStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Active => "active",
Self::Closed => "closed",
Self::Expired => "expired",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for SessionStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for SessionStatus {
fn from(value: &str) -> Self {
match value {
"active" => Self::Active,
"closed" => Self::Closed,
"expired" => Self::Expired,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetAdminLLMDefaultRequest {
pub api_key: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetAdminLLMDefaultResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetAgentCapabilitiesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetAgentPermissionsResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetAgentTrafficRequest {
pub entries: Vec<SetAgentTrafficRequestEntry>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetAgentTrafficRequestEntry {
pub version: i64,
pub weight: f64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetArbiterRegistryResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetDataExplorerValueRequest {
pub namespace: String,
pub key: String,
pub value: serde_json::Value,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetDataExplorerValueResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum SetLLMProviderKeyProvider {
#[default]
#[serde(rename = "openai_compat")]
OpenaiCompat,
#[serde(rename = "custom")]
Custom,
#[serde(untagged)]
Other(String),
}
impl SetLLMProviderKeyProvider {
pub fn as_str(&self) -> &str {
match self {
Self::OpenaiCompat => "openai_compat",
Self::Custom => "custom",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for SetLLMProviderKeyProvider {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for SetLLMProviderKeyProvider {
fn from(value: &str) -> Self {
match value {
"openai_compat" => Self::OpenaiCompat,
"custom" => Self::Custom,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetLLMProviderKeyRequest {
pub api_key: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetLLMProviderKeyResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provider_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub configured: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetRootAgentRequest {
pub agent_id: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetRootAgentResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub root_agent_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetRootAttestationResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetScheduleRequest {
pub cron: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub on_failure: Option<SetScheduleRequestOnFailure>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_concurrent_scheduled: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub autonomous_mode: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reflection_prompt: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum SetScheduleRequestOnFailure {
#[default]
#[serde(rename = "retry_next")]
RetryNext,
#[serde(rename = "pause_schedule")]
PauseSchedule,
#[serde(rename = "notify")]
Notify,
#[serde(untagged)]
Other(String),
}
impl SetScheduleRequestOnFailure {
pub fn as_str(&self) -> &str {
match self {
Self::RetryNext => "retry_next",
Self::PauseSchedule => "pause_schedule",
Self::Notify => "notify",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for SetScheduleRequestOnFailure {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for SetScheduleRequestOnFailure {
fn from(value: &str) -> Self {
match value {
"retry_next" => Self::RetryNext,
"pause_schedule" => Self::PauseSchedule,
"notify" => Self::Notify,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetSpawnPolicyResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetUserRoleRequest {
pub role: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SetUserRoleResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ShareWorkspaceRequest {
pub agent_id: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SpawnPolicy {
pub tenant_id: String,
pub child_budget_ratio: f64,
pub max_depth: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_roles: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub require_approval_above_depth: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_children_per_agent: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum StartOAuthProvider {
#[default]
#[serde(rename = "github")]
Github,
#[serde(rename = "stripe")]
Stripe,
#[serde(rename = "notion")]
Notion,
#[serde(rename = "slack")]
Slack,
#[serde(rename = "x_twitter")]
XTwitter,
#[serde(rename = "linkedin")]
Linkedin,
#[serde(rename = "youtube")]
Youtube,
#[serde(rename = "instagram")]
Instagram,
#[serde(untagged)]
Other(String),
}
impl StartOAuthProvider {
pub fn as_str(&self) -> &str {
match self {
Self::Github => "github",
Self::Stripe => "stripe",
Self::Notion => "notion",
Self::Slack => "slack",
Self::XTwitter => "x_twitter",
Self::Linkedin => "linkedin",
Self::Youtube => "youtube",
Self::Instagram => "instagram",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for StartOAuthProvider {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for StartOAuthProvider {
fn from(value: &str) -> Self {
match value {
"github" => Self::Github,
"stripe" => Self::Stripe,
"notion" => Self::Notion,
"slack" => Self::Slack,
"x_twitter" => Self::XTwitter,
"linkedin" => Self::Linkedin,
"youtube" => Self::Youtube,
"instagram" => Self::Instagram,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct StartOAuthRequest {
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scopes: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct StartTeamRunRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub addressed_to: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chat_mode: Option<StartTeamRunRequestChatMode>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum StartTeamRunRequestChatMode {
#[default]
#[serde(rename = "plan")]
Plan,
#[serde(rename = "chat")]
Chat,
#[serde(untagged)]
Other(String),
}
impl StartTeamRunRequestChatMode {
pub fn as_str(&self) -> &str {
match self {
Self::Plan => "plan",
Self::Chat => "chat",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for StartTeamRunRequestChatMode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for StartTeamRunRequestChatMode {
fn from(value: &str) -> Self {
match value {
"plan" => Self::Plan,
"chat" => Self::Chat,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SubscribeToListingRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stripe_subscription_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SuspendAgentRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SuspendTenantRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SuspendUserResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub suspended: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TallyVotesResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub outcome: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_votes: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Team {
pub team_id: String,
pub tenant_id: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub topology: TeamTopology,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub delegation_strategy: Option<TeamDelegationStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub merge_strategy: Option<TeamMergeStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_protocol: Option<TeamMessageProtocol>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub orchestration_mode: Option<TeamOrchestrationMode>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supervisor_mode: Option<TeamSupervisorMode>,
pub supervisor_agent_id: String,
pub workers: Vec<TeamWorker>,
pub policies: TeamPolicies,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub goal_config: Option<TeamGoalConfig>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swarm_config: Option<TeamSwarmConfig>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub workspace_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamCreate {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub topology: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supervisor_agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub workers: Option<Vec<TeamCreateWorker>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_ids: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub delegation_strategy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub merge_strategy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub orchestration_mode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub workspace_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamCreateWorker {
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum TeamDelegationStrategy {
#[default]
#[serde(rename = "supervisor_decides")]
SupervisorDecides,
#[serde(rename = "round_robin")]
RoundRobin,
#[serde(rename = "capability_match")]
CapabilityMatch,
#[serde(untagged)]
Other(String),
}
impl TeamDelegationStrategy {
pub fn as_str(&self) -> &str {
match self {
Self::SupervisorDecides => "supervisor_decides",
Self::RoundRobin => "round_robin",
Self::CapabilityMatch => "capability_match",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for TeamDelegationStrategy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for TeamDelegationStrategy {
fn from(value: &str) -> Self {
match value {
"supervisor_decides" => Self::SupervisorDecides,
"round_robin" => Self::RoundRobin,
"capability_match" => Self::CapabilityMatch,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamGoalConfig {
pub root_objective_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub review_interval_ms: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_iterations: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub budget: Option<TeamObjectiveBudget>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum TeamMergeStrategy {
#[default]
#[serde(rename = "supervisor_merges")]
SupervisorMerges,
#[serde(rename = "concatenate")]
Concatenate,
#[serde(rename = "vote")]
Vote,
#[serde(untagged)]
Other(String),
}
impl TeamMergeStrategy {
pub fn as_str(&self) -> &str {
match self {
Self::SupervisorMerges => "supervisor_merges",
Self::Concatenate => "concatenate",
Self::Vote => "vote",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for TeamMergeStrategy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for TeamMergeStrategy {
fn from(value: &str) -> Self {
match value {
"supervisor_merges" => Self::SupervisorMerges,
"concatenate" => Self::Concatenate,
"vote" => Self::Vote,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum TeamMessageProtocol {
#[default]
#[serde(rename = "shared_context")]
SharedContext,
#[serde(rename = "message_passing")]
MessagePassing,
#[serde(untagged)]
Other(String),
}
impl TeamMessageProtocol {
pub fn as_str(&self) -> &str {
match self {
Self::SharedContext => "shared_context",
Self::MessagePassing => "message_passing",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for TeamMessageProtocol {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for TeamMessageProtocol {
fn from(value: &str) -> Self {
match value {
"shared_context" => Self::SharedContext,
"message_passing" => Self::MessagePassing,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamObjectiveBudget {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_runs: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_cost_usd: Option<f64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum TeamOrchestrationMode {
#[default]
#[serde(rename = "strict_addressed")]
StrictAddressed,
#[serde(rename = "peer_collab")]
PeerCollab,
#[serde(rename = "vote_based")]
VoteBased,
#[serde(untagged)]
Other(String),
}
impl TeamOrchestrationMode {
pub fn as_str(&self) -> &str {
match self {
Self::StrictAddressed => "strict_addressed",
Self::PeerCollab => "peer_collab",
Self::VoteBased => "vote_based",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for TeamOrchestrationMode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for TeamOrchestrationMode {
fn from(value: &str) -> Self {
match value {
"strict_addressed" => Self::StrictAddressed,
"peer_collab" => Self::PeerCollab,
"vote_based" => Self::VoteBased,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamPolicies {
pub max_rounds: i64,
pub timeout_ms: i64,
pub early_termination: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub consensus_threshold: Option<f64>,
pub effort: TeamPoliciesEffort,
pub max_delegation_depth: i64,
pub subtask_timeout_ms: i64,
pub on_worker_failure: TeamPoliciesOnWorkerFailure,
pub max_worker_retries: i64,
pub require_all_workers: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub validation: Option<ValidationPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_graph_nodes: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<i64>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum TeamPoliciesEffort {
#[default]
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
#[serde(rename = "max")]
Max,
#[serde(untagged)]
Other(String),
}
impl TeamPoliciesEffort {
pub fn as_str(&self) -> &str {
match self {
Self::Low => "low",
Self::Medium => "medium",
Self::High => "high",
Self::Max => "max",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for TeamPoliciesEffort {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for TeamPoliciesEffort {
fn from(value: &str) -> Self {
match value {
"low" => Self::Low,
"medium" => Self::Medium,
"high" => Self::High,
"max" => Self::Max,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum TeamPoliciesOnWorkerFailure {
#[default]
#[serde(rename = "retry")]
Retry,
#[serde(rename = "skip")]
Skip,
#[serde(rename = "abort_team")]
AbortTeam,
#[serde(untagged)]
Other(String),
}
impl TeamPoliciesOnWorkerFailure {
pub fn as_str(&self) -> &str {
match self {
Self::Retry => "retry",
Self::Skip => "skip",
Self::AbortTeam => "abort_team",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for TeamPoliciesOnWorkerFailure {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for TeamPoliciesOnWorkerFailure {
fn from(value: &str) -> Self {
match value {
"retry" => Self::Retry,
"skip" => Self::Skip,
"abort_team" => Self::AbortTeam,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum TeamSupervisorMode {
#[default]
#[serde(rename = "auto_dispatch")]
AutoDispatch,
#[serde(rename = "tool_driven")]
ToolDriven,
#[serde(untagged)]
Other(String),
}
impl TeamSupervisorMode {
pub fn as_str(&self) -> &str {
match self {
Self::AutoDispatch => "auto_dispatch",
Self::ToolDriven => "tool_driven",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for TeamSupervisorMode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for TeamSupervisorMode {
fn from(value: &str) -> Self {
match value {
"auto_dispatch" => Self::AutoDispatch,
"tool_driven" => Self::ToolDriven,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamSwarmConfig {
pub initial_agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_handoffs: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub handoff_context_strategy: Option<TeamSwarmConfigHandoffContextStrategy>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum TeamSwarmConfigHandoffContextStrategy {
#[default]
#[serde(rename = "full")]
Full,
#[serde(rename = "summary")]
Summary,
#[serde(untagged)]
Other(String),
}
impl TeamSwarmConfigHandoffContextStrategy {
pub fn as_str(&self) -> &str {
match self {
Self::Full => "full",
Self::Summary => "summary",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for TeamSwarmConfigHandoffContextStrategy {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for TeamSwarmConfigHandoffContextStrategy {
fn from(value: &str) -> Self {
match value {
"full" => Self::Full,
"summary" => Self::Summary,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum TeamTopology {
#[default]
#[serde(rename = "supervisor")]
Supervisor,
#[serde(rename = "round_robin")]
RoundRobin,
#[serde(rename = "pipeline")]
Pipeline,
#[serde(rename = "goal_driven")]
GoalDriven,
#[serde(rename = "swarm")]
Swarm,
#[serde(untagged)]
Other(String),
}
impl TeamTopology {
pub fn as_str(&self) -> &str {
match self {
Self::Supervisor => "supervisor",
Self::RoundRobin => "round_robin",
Self::Pipeline => "pipeline",
Self::GoalDriven => "goal_driven",
Self::Swarm => "swarm",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for TeamTopology {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for TeamTopology {
fn from(value: &str) -> Self {
match value {
"supervisor" => Self::Supervisor,
"round_robin" => Self::RoundRobin,
"pipeline" => Self::Pipeline,
"goal_driven" => Self::GoalDriven,
"swarm" => Self::Swarm,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamUpdate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub topology: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supervisor_agent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub workers: Option<Vec<TeamUpdateWorker>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamUpdateWorker {
pub agent_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamWorker {
pub agent_id: String,
pub role: String,
pub permissions: TeamWorkerPermissions,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_a2a: Option<TeamWorkerExternalA2A>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamWorkerExternalA2A {
pub endpoint: String,
pub agent_card_url: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auth: Option<TeamWorkerExternalA2AAuth>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamWorkerExternalA2AAuth {
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub token_ref: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamWorkerPermissions {
pub tools: Vec<String>,
pub can_read_other_results: bool,
pub can_delegate: bool,
pub can_abort: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_tokens: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_steps_per_subtask: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Tenant {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub slug: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<TenantStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plan: Option<TenantPlan>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quotas: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub settings: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum TenantPlan {
#[default]
#[serde(rename = "free")]
Free,
#[serde(rename = "starter")]
Starter,
#[serde(rename = "pro")]
Pro,
#[serde(rename = "enterprise")]
Enterprise,
#[serde(untagged)]
Other(String),
}
impl TenantPlan {
pub fn as_str(&self) -> &str {
match self {
Self::Free => "free",
Self::Starter => "starter",
Self::Pro => "pro",
Self::Enterprise => "enterprise",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for TenantPlan {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for TenantPlan {
fn from(value: &str) -> Self {
match value {
"free" => Self::Free,
"starter" => Self::Starter,
"pro" => Self::Pro,
"enterprise" => Self::Enterprise,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum TenantStatus {
#[default]
#[serde(rename = "active")]
Active,
#[serde(rename = "suspended")]
Suspended,
#[serde(rename = "trial")]
Trial,
#[serde(untagged)]
Other(String),
}
impl TenantStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Active => "active",
Self::Suspended => "suspended",
Self::Trial => "trial",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for TenantStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for TenantStatus {
fn from(value: &str) -> Self {
match value {
"active" => Self::Active,
"suspended" => Self::Suspended,
"trial" => Self::Trial,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TerminateAgentResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TestAgentIntegrationResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TestIntegrationResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TestLLMProviderKeyResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TransferTenantOwnershipResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub new_owner_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UnlinkAuthProviderResponse {
pub ok: bool,
pub provider: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub remaining_factors: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub already_unlinked: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UnsubscribeFromListingResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unsubscribed: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub listing_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UnsuspendUserResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateAdminPlansRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plans: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateAdminPlansResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plans: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateAdminStripeConfigRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<UpdateAdminStripeConfigRequestMode>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub webhook_secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub publishable_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub price_id_starter: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub price_id_pro: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub price_id_enterprise: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum UpdateAdminStripeConfigRequestMode {
#[default]
#[serde(rename = "test")]
Test,
#[serde(rename = "live")]
Live,
#[serde(untagged)]
Other(String),
}
impl UpdateAdminStripeConfigRequestMode {
pub fn as_str(&self) -> &str {
match self {
Self::Test => "test",
Self::Live => "live",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for UpdateAdminStripeConfigRequestMode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for UpdateAdminStripeConfigRequestMode {
fn from(value: &str) -> Self {
match value {
"test" => Self::Test,
"live" => Self::Live,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateAgentIntegrationRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateBridgeAgentCapabilityRequest {
pub capabilities: Vec<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateBridgeAgentCapabilityResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateBuilderRequestStatusRequest {
pub status: DesignRequestStatus,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateCoreMemoryBlockRequest {
pub content: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateGoalStatusRequest {
pub status: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateImprovementStatusRequest {
pub status: ImprovementProposalStatus,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateIntegrationRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdatePlatformURLSRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub public_base_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub webhook_base_url: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateSecurityPoliciesRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cors_allowed_origins: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub webhook_url_denylist: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_upload_max_size_bytes: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_upload_allowed_mime_types: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub admin_provider_settings_require_super_admin: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateSessionAnnotationRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resolved: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateSessionRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model_override: Option<UpdateSessionRequestModelOverride>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateSessionRequestModelOverride {
pub provider: String,
pub model_ref: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub endpoint_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateTeamGraphNodeRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub goal_summary: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateTenantRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub settings: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateWebhooksPolicyRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ssrf_check_at_subscription: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stripe_signature_tolerance_sec: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub delivery_max_retries: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub delivery_backoff_base_ms: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub delivery_max_window_hours: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UpdateWorkspaceRequest {
pub name: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct UploadFileRequest {
pub data: FilePart,
pub mime_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filename: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ValidationCriterion {
pub name: String,
pub description: String,
pub weight: f64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ValidationPolicy {
pub enabled: bool,
pub criteria: Vec<ValidationCriterion>,
pub min_score: f64,
pub max_revision_rounds: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub validator_agent_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Value {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub required: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Value2 {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub from: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub to: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VerifyGovernanceLedgerResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub valid: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub errors: Option<Vec<serde_json::Map<String, serde_json::Value>>>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VerifyMfaRecoveryRequest {
pub code: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VerifyMfaRecoveryResponse {
pub verified: bool,
pub recovery_remaining: i64,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VerifyMfaRequest {
pub code: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VerifyMfaResponse {
pub verified: bool,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VerifyTenantDomainResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub verified: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Veto {
pub id: String,
pub issued_by: String,
pub target_type: String,
pub target_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub issued_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VetoProposalRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub founder_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VetoProposalResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VotingProposal {
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub proposer_agent_id: Option<String>,
pub status: VotingProposalStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub opens_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub closes_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub result: Option<serde_json::Map<String, serde_json::Value>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum VotingProposalStatus {
#[default]
#[serde(rename = "draft")]
Draft,
#[serde(rename = "open")]
Open,
#[serde(rename = "closed")]
Closed,
#[serde(rename = "vetoed")]
Vetoed,
#[serde(rename = "executed")]
Executed,
#[serde(untagged)]
Other(String),
}
impl VotingProposalStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Draft => "draft",
Self::Open => "open",
Self::Closed => "closed",
Self::Vetoed => "vetoed",
Self::Executed => "executed",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for VotingProposalStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for VotingProposalStatus {
fn from(value: &str) -> Self {
match value {
"draft" => Self::Draft,
"open" => Self::Open,
"closed" => Self::Closed,
"vetoed" => Self::Vetoed,
"executed" => Self::Executed,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WebhookSubscription {
pub webhook_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
pub url: String,
pub events: Vec<String>,
pub status: WebhookSubscriptionStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum WebhookSubscriptionStatus {
#[default]
#[serde(rename = "active")]
Active,
#[serde(rename = "disabled")]
Disabled,
#[serde(rename = "failing")]
Failing,
#[serde(untagged)]
Other(String),
}
impl WebhookSubscriptionStatus {
pub fn as_str(&self) -> &str {
match self {
Self::Active => "active",
Self::Disabled => "disabled",
Self::Failing => "failing",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for WebhookSubscriptionStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for WebhookSubscriptionStatus {
fn from(value: &str) -> Self {
match value {
"active" => Self::Active,
"disabled" => Self::Disabled,
"failing" => Self::Failing,
other => Self::Other(other.to_string()),
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Workspace {
pub workspace_id: String,
pub tenant_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner_type: Option<WorkspaceOwnerType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner_id: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_with: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_agents: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_teams: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_companies: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct WorkspaceFile {
pub file_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant_id: Option<String>,
pub workspace_id: String,
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_path: Option<String>,
pub filename: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mime_type: Option<String>,
pub size_bytes: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, Serialize, Deserialize)]
pub enum WorkspaceOwnerType {
#[default]
#[serde(rename = "agent")]
Agent,
#[serde(rename = "team")]
Team,
#[serde(rename = "standalone")]
Standalone,
#[serde(untagged)]
Other(String),
}
impl WorkspaceOwnerType {
pub fn as_str(&self) -> &str {
match self {
Self::Agent => "agent",
Self::Team => "team",
Self::Standalone => "standalone",
Self::Other(value) => value.as_str(),
}
}
}
impl std::fmt::Display for WorkspaceOwnerType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(self.as_str())
}
}
impl From<&str> for WorkspaceOwnerType {
fn from(value: &str) -> Self {
match value {
"agent" => Self::Agent,
"team" => Self::Team,
"standalone" => Self::Standalone,
other => Self::Other(other.to_string()),
}
}
}