systemprompt_agent/models/a2a/protocol/
push_notification.rs1use crate::models::a2a::AgentAuthentication;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
5pub struct PushNotificationConfig {
6 #[serde(default)]
7 #[serde(skip_serializing_if = "String::is_empty")]
8 pub endpoint: String,
9 pub headers: Option<serde_json::Map<String, serde_json::Value>>,
10 pub url: String,
11 pub token: Option<String>,
12 pub authentication: Option<AgentAuthentication>,
13}
14
15#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
16pub struct PushNotificationNotSupportedError {
17 pub message: String,
18}
19
20#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
21pub struct TaskPushNotificationConfig {
22 pub id: String,
23 pub push_notification_config: PushNotificationConfig,
24}
25
26#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
27pub struct SetTaskPushNotificationConfigRequest {
28 pub task_id: String,
29 pub config: PushNotificationConfig,
30}
31
32#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
33pub struct SetTaskPushNotificationConfigResponse {
34 pub success: bool,
35 pub message: Option<String>,
36}
37
38#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
39pub struct GetTaskPushNotificationConfigRequest {
40 pub task_id: String,
41}
42
43#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
44pub struct GetTaskPushNotificationConfigResponse {
45 pub config: Option<PushNotificationConfig>,
46}
47
48#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
49pub struct GetTaskPushNotificationConfigParams {
50 pub id: String,
51}
52
53#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
54pub struct DeleteTaskPushNotificationConfigRequest {
55 pub task_id: String,
56}
57
58#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
59pub struct DeleteTaskPushNotificationConfigResponse {
60 pub success: bool,
61 pub message: Option<String>,
62}
63
64#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
65pub struct DeleteTaskPushNotificationConfigParams {
66 pub id: String,
67}
68
69#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
70pub struct ListTaskPushNotificationConfigRequest {
71 pub task_id: String,
72 pub limit: Option<u32>,
73 pub offset: Option<u32>,
74}
75
76#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
77pub struct ListTaskPushNotificationConfigResponse {
78 pub configs: Vec<PushNotificationConfig>,
79 pub total: u32,
80}
81
82#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
83pub struct TaskResubscriptionRequest {
84 pub task_id: String,
85 pub config: PushNotificationConfig,
86}
87
88#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
89pub struct TaskResubscriptionResponse {
90 pub success: bool,
91 pub message: Option<String>,
92}