alien_core/deployment/release.rs
1//! Release metadata for deployment version tracking.
2
3use crate::Stack;
4use serde::{Deserialize, Serialize};
5
6/// Release metadata
7///
8/// Identifies a specific release version and includes the stack definition.
9/// The deployment engine uses this to track which release is currently deployed
10/// and which is the target.
11#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
12#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
13#[serde(rename_all = "camelCase")]
14pub struct ReleaseInfo {
15 /// Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no
16 /// Alien-assigned release — the platform resolves a release from `version`.
17 #[serde(default, skip_serializing_if = "Option::is_none")]
18 pub release_id: Option<String>,
19 /// Version string (e.g., 2.1.0)
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub version: Option<String>,
22 /// Short description of the release
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub description: Option<String>,
25 /// Stack definition for this release
26 pub stack: Stack,
27}