#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "dataprotection.kubeblocks.io", version = "v1alpha1", kind = "BackupSchedule", plural = "backupschedules")]
#[kube(namespaced)]
#[kube(status = "BackupScheduleStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct BackupScheduleSpec {
#[serde(rename = "backupPolicyName")]
pub backup_policy_name: String,
pub schedules: Vec<BackupScheduleSchedules>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "startingDeadlineMinutes")]
pub starting_deadline_minutes: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupScheduleSchedules {
#[serde(rename = "backupMethod")]
pub backup_method: String,
#[serde(rename = "cronExpression")]
pub cron_expression: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameters: Option<Vec<BackupScheduleSchedulesParameters>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "retentionPeriod")]
pub retention_period: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupScheduleSchedulesParameters {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupScheduleStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "failureReason")]
pub failure_reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")]
pub observed_generation: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phase: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub schedules: Option<BTreeMap<String, BackupScheduleStatusSchedules>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupScheduleStatusSchedules {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "failureReason")]
pub failure_reason: 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 = "lastSuccessfulTime")]
pub last_successful_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phase: Option<String>,
}