posemesh_compute_node/dms/
types.rs1use chrono::{DateTime, Utc};
2use compute_runner_api::TaskSpec;
3use serde::{Deserialize, Serialize};
4use url::Url;
5use uuid::Uuid;
6
7pub type LeaseResponse = compute_runner_api::LeaseEnvelope;
9#[derive(Debug, Clone, Serialize, Deserialize, Default)]
11pub struct HeartbeatResponse {
12 #[serde(default)]
13 pub access_token: Option<String>,
14 #[serde(default)]
15 pub access_token_expires_at: Option<DateTime<Utc>>,
16 #[serde(default)]
17 pub lease_expires_at: Option<DateTime<Utc>>,
18 #[serde(default)]
19 pub cancel: Option<bool>,
20 #[serde(default)]
21 pub status: Option<String>,
22 #[serde(default)]
23 pub domain_id: Option<Uuid>,
24 #[serde(default)]
25 pub domain_server_url: Option<Url>,
26 #[serde(default)]
27 pub task: Option<TaskSpec>,
28 #[serde(default)]
29 pub task_id: Option<Uuid>,
30 #[serde(default)]
31 pub job_id: Option<Uuid>,
32 #[serde(default)]
33 pub attempts: Option<u64>,
34 #[serde(default)]
35 pub max_attempts: Option<u64>,
36 #[serde(default)]
37 pub deps_remaining: Option<u64>,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize, Default)]
42pub struct HeartbeatRequest {
43 pub progress: serde_json::Value,
44 #[serde(default)]
45 pub events: Vec<serde_json::Value>,
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize, Default)]
50pub struct CompleteTaskRequest {
51 #[serde(default)]
52 pub output_cids: Vec<String>,
53 #[serde(default)]
54 pub meta: serde_json::Value,
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize, Default)]
59pub struct FailTaskRequest {
60 pub reason: String,
61 #[serde(default)]
62 pub details: serde_json::Value,
63}