Skip to main content

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)
16    pub release_id: String,
17    /// Version string (e.g., 2.1.0)
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub version: Option<String>,
20    /// Short description of the release
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub description: Option<String>,
23    /// Stack definition for this release
24    pub stack: Stack,
25}