use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PostA2aRequest {
#[serde(rename = "jsonrpc")]
pub jsonrpc: Jsonrpc,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "method")]
pub method: Method,
#[serde(rename = "params", skip_serializing_if = "Option::is_none")]
pub params: Option<Box<models::PostA2aRequestParams>>,
}
impl PostA2aRequest {
pub fn new(jsonrpc: Jsonrpc, id: String, method: Method) -> PostA2aRequest {
PostA2aRequest {
jsonrpc,
id,
method,
params: None,
}
}
}
#[derive(
Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum Jsonrpc {
#[serde(rename = "2.0")]
#[default]
Variant20,
}
#[derive(
Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
)]
pub enum Method {
#[serde(rename = "message/send")]
#[default]
MessageSlashSend,
#[serde(rename = "tasks/get")]
TasksSlashGet,
}