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 ResourceDomainInfo {
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)]
65#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
66#[serde(rename_all = "camelCase")]
67pub struct DomainMetadata {
68 pub base_domain: String,
70 pub public_subdomain: String,
72 pub hosted_zone_id: String,
74 pub resources: HashMap<String, ResourceDomainInfo>,
76}