use serde::{Deserialize, Serialize};
use utoipa::ToSchema;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
pub struct RuntimeSurface {
#[serde(default)]
pub functions: Vec<RuntimeFunctionDeclaration>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
pub struct RuntimeFunctionDeclaration {
pub name: String,
pub version: u16,
pub queue: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub input_schema: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub retry_policy: Option<RuntimeRetryPolicyDeclaration>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
pub struct RuntimeRetryPolicyDeclaration {
pub max_attempts: u32,
pub initial_delay_ms: u64,
}