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: serde_json::Value,
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize, Default)]
50pub struct CompleteTaskRequest {
51 pub outputs_index: serde_json::Value,
52 pub result: serde_json::Value,
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize, Default)]
57pub struct FailTaskRequest {
58 pub reason: String,
59 #[serde(default)]
60 pub details: serde_json::Value,
61}