controller 0.10.6

Tembo Operator for Postgres
Documentation
// WARNING: generated by kopium - manual changes will be overwritten
// kopium command: kopium -D Default scheduledbackups.postgresql.cnpg.io
// kopium version: 0.15.0

use kube::CustomResource;
use serde::{Deserialize, Serialize};

#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default)]
#[kube(
    group = "postgresql.cnpg.io",
    version = "v1",
    kind = "ScheduledBackup",
    plural = "scheduledbackups"
)]
#[kube(namespaced)]
#[kube(status = "ScheduledBackupStatus")]
#[kube(schema = "disabled")]
pub struct ScheduledBackupSpec {
    #[serde(
        default,
        skip_serializing_if = "Option::is_none",
        rename = "backupOwnerReference"
    )]
    pub backup_owner_reference: Option<ScheduledBackupBackupOwnerReference>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub cluster: Option<ScheduledBackupCluster>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub immediate: Option<bool>,
    pub schedule: String,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub suspend: Option<bool>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub target: Option<ScheduledBackupTarget>,
}

#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ScheduledBackupBackupOwnerReference {
    #[serde(rename = "none")]
    None,
    #[serde(rename = "self")]
    r#_Self,
    #[serde(rename = "cluster")]
    Cluster,
}

#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ScheduledBackupCluster {
    pub name: String,
}

#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ScheduledBackupTarget {
    #[serde(rename = "primary")]
    Primary,
    #[serde(rename = "prefer-standby")]
    PreferStandby,
}

#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ScheduledBackupStatus {
    #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastCheckTime")]
    pub last_check_time: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastScheduleTime")]
    pub last_schedule_time: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none", rename = "nextScheduleTime")]
    pub next_schedule_time: Option<String>,
}