alien_core/deployment/
domain.rs1use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
8#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
9#[serde(rename_all = "kebab-case")]
10pub enum CertificateStatus {
11 Pending,
12 Issued,
13 Renewing,
14 RenewalFailed,
15 Failed,
16 Deleting,
17}
18
19#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
21#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
22#[serde(rename_all = "lowercase")]
23pub enum DnsRecordStatus {
24 Pending,
25 Active,
26 Updating,
27 Deleting,
28 Failed,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
36#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
37#[serde(rename_all = "camelCase")]
38pub struct ManagedDomainInfo {
39 pub fqdn: String,
41 pub certificate_id: String,
43 pub certificate_status: CertificateStatus,
45 pub dns_status: DnsRecordStatus,
47 #[serde(skip_serializing_if = "Option::is_none")]
51 pub dns_error: Option<String>,
52 #[serde(skip_serializing_if = "Option::is_none")]
54 pub certificate_chain: Option<String>,
55 #[serde(skip_serializing_if = "Option::is_none")]
57 pub private_key: Option<String>,
58 #[serde(skip_serializing_if = "Option::is_none")]
60 pub issued_at: Option<String>,
61}
62
63#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
69#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
70#[serde(rename_all = "camelCase")]
71pub struct ResourceDomainInfo {
72 pub fqdn: String,
74 pub certificate_id: String,
76 pub certificate_status: CertificateStatus,
78 pub dns_status: DnsRecordStatus,
80 #[serde(skip_serializing_if = "Option::is_none")]
84 pub dns_error: Option<String>,
85 #[serde(skip_serializing_if = "Option::is_none")]
87 pub certificate_chain: Option<String>,
88 #[serde(skip_serializing_if = "Option::is_none")]
90 pub private_key: Option<String>,
91 #[serde(skip_serializing_if = "Option::is_none")]
93 pub issued_at: Option<String>,
94 #[serde(default, skip_serializing_if = "Vec::is_empty")]
96 pub aliases: Vec<ManagedDomainInfo>,
97}
98
99#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
101#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
102#[serde(rename_all = "camelCase")]
103pub struct DomainMetadata {
104 pub base_domain: String,
106 pub public_subdomain: String,
108 pub hosted_zone_id: String,
110 pub resources: HashMap<String, ResourceDomainInfo>,
112}