#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "dataprotection.kubeblocks.io", version = "v1alpha1", kind = "BackupPolicyTemplate", plural = "backuppolicytemplates")]
#[kube(status = "BackupPolicyTemplateStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct BackupPolicyTemplateSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "backoffLimit")]
pub backoff_limit: Option<i32>,
#[serde(rename = "backupMethods")]
pub backup_methods: Vec<BackupPolicyTemplateBackupMethods>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "compDefs")]
pub comp_defs: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "retentionPolicy")]
pub retention_policy: Option<BackupPolicyTemplateRetentionPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub schedules: Option<Vec<BackupPolicyTemplateSchedules>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceKind")]
pub service_kind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<BackupPolicyTemplateTarget>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateBackupMethods {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "actionSetName")]
pub action_set_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "compatibleMethod")]
pub compatible_method: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<Vec<BackupPolicyTemplateBackupMethodsEnv>>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeSettings")]
pub runtime_settings: Option<BackupPolicyTemplateBackupMethodsRuntimeSettings>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "snapshotVolumes")]
pub snapshot_volumes: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<BackupPolicyTemplateBackupMethodsTarget>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetVolumes")]
pub target_volumes: Option<BackupPolicyTemplateBackupMethodsTargetVolumes>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateBackupMethodsEnv {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")]
pub value_from: Option<BackupPolicyTemplateBackupMethodsEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateBackupMethodsEnvValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "versionMapping")]
pub version_mapping: Option<Vec<BackupPolicyTemplateBackupMethodsEnvValueFromVersionMapping>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateBackupMethodsEnvValueFromVersionMapping {
#[serde(rename = "mappedValue")]
pub mapped_value: String,
#[serde(rename = "serviceVersions")]
pub service_versions: Vec<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateBackupMethodsRuntimeSettings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<BackupPolicyTemplateBackupMethodsRuntimeSettingsResources>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateBackupMethodsRuntimeSettingsResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<BackupPolicyTemplateBackupMethodsRuntimeSettingsResourcesClaims>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, IntOrString>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateBackupMethodsRuntimeSettingsResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateBackupMethodsTarget {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub account: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerPort")]
pub container_port: Option<BackupPolicyTemplateBackupMethodsTargetContainerPort>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fallbackRole")]
pub fallback_role: Option<String>,
pub role: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategy: Option<BackupPolicyTemplateBackupMethodsTargetStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "useParentSelectedPods")]
pub use_parent_selected_pods: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateBackupMethodsTargetContainerPort {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "portName")]
pub port_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupPolicyTemplateBackupMethodsTargetStrategy {
Any,
All,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateBackupMethodsTargetVolumes {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")]
pub volume_mounts: Option<Vec<BackupPolicyTemplateBackupMethodsTargetVolumesVolumeMounts>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub volumes: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateBackupMethodsTargetVolumesVolumeMounts {
#[serde(rename = "mountPath")]
pub mount_path: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mountPropagation")]
pub mount_propagation: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "subPath")]
pub sub_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "subPathExpr")]
pub sub_path_expr: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupPolicyTemplateRetentionPolicy {
#[serde(rename = "retainLatestBackup")]
RetainLatestBackup,
#[serde(rename = "none")]
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateSchedules {
#[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<BackupPolicyTemplateSchedulesParameters>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "retentionPeriod")]
pub retention_period: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateSchedulesParameters {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateTarget {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub account: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerPort")]
pub container_port: Option<BackupPolicyTemplateTargetContainerPort>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fallbackRole")]
pub fallback_role: Option<String>,
pub role: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategy: Option<BackupPolicyTemplateTargetStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "useParentSelectedPods")]
pub use_parent_selected_pods: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateTargetContainerPort {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "portName")]
pub port_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupPolicyTemplateTargetStrategy {
Any,
All,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTemplateStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: 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<BackupPolicyTemplateStatusPhase>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupPolicyTemplateStatusPhase {
Available,
Unavailable,
}