lenso_contracts/
runtime.rs1use serde::{Deserialize, Serialize};
7use serde_json::Value;
8use utoipa::ToSchema;
9
10#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
11pub struct RuntimeSurface {
12 #[serde(default)]
13 pub functions: Vec<RuntimeFunctionDeclaration>,
14 #[serde(default)]
15 pub schedules: Vec<ScheduledFunctionDeclaration>,
16}
17
18#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
19pub struct RuntimeFunctionDeclaration {
20 pub name: String,
22 pub version: u16,
24 pub queue: String,
26 #[serde(default, skip_serializing_if = "Option::is_none")]
28 pub input_schema: Option<String>,
29 #[serde(default, skip_serializing_if = "Option::is_none")]
32 pub retry_policy: Option<RuntimeRetryPolicyDeclaration>,
33 #[serde(default, skip_serializing_if = "Option::is_none")]
34 pub operation: Option<crate::ServiceOperationMetadata>,
35}
36
37#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
38pub struct RuntimeRetryPolicyDeclaration {
39 pub max_attempts: u32,
40 pub initial_delay_ms: u64,
41}
42
43#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
44pub struct ScheduledFunctionDeclaration {
45 pub name: String,
47 pub function_name: String,
49 pub cron: String,
51 #[serde(default)]
52 pub input: Value,
53}