1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4use crate::types::{Message, TaskPushNotificationConfig};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct MessageSendParams {
10 pub message: Message,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub configuration: Option<SendMessageConfiguration>,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub metadata: Option<HashMap<String, serde_json::Value>>,
15}
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
19#[serde(rename_all = "camelCase")]
20pub struct SendMessageConfiguration {
21 #[serde(skip_serializing_if = "Option::is_none")]
22 pub accepted_output_modes: Option<Vec<String>>,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub task_push_notification_config: Option<TaskPushNotificationConfig>,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub history_length: Option<i32>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub return_immediately: Option<bool>,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
33#[serde(rename_all = "camelCase")]
34pub struct TaskQueryParams {
35 pub id: String,
36 #[serde(skip_serializing_if = "Option::is_none")]
37 pub history_length: Option<i32>,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
42#[serde(rename_all = "camelCase")]
43pub struct TaskIdParams {
44 pub id: String,
45}