Skip to main content

taskforceai_sdk/
types.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Debug, Clone, Serialize, Deserialize, Default)]
5pub struct TaskForceAIOptions {
6    #[serde(skip_serializing_if = "Option::is_none")]
7    pub api_key: Option<String>,
8    #[serde(skip_serializing_if = "Option::is_none")]
9    pub base_url: Option<String>,
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub timeout: Option<u64>,
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub mock_mode: Option<bool>,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize, Default)]
17#[serde(rename_all = "camelCase")]
18pub struct TaskSubmissionOptions {
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub model_id: Option<String>,
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub silent: Option<bool>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub mock: Option<bool>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub vercel_ai_key: Option<String>,
27    #[serde(flatten)]
28    pub additional_options: HashMap<String, serde_json::Value>,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
32#[serde(rename_all = "lowercase")]
33pub enum TaskStatusValue {
34    Processing,
35    Completed,
36    Failed,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
40#[serde(rename_all = "camelCase")]
41pub struct TaskStatus {
42    pub task_id: String,
43    pub status: TaskStatusValue,
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub result: Option<String>,
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub error: Option<String>,
48    #[serde(skip_serializing_if = "Option::is_none")]
49    pub warnings: Option<Vec<String>>,
50    #[serde(skip_serializing_if = "Option::is_none")]
51    pub metadata: Option<HashMap<String, serde_json::Value>>,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
55pub struct SubmitTaskResponse {
56    #[serde(rename = "taskId")]
57    pub task_id: String,
58}