#[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;
pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq)]
#[kube(group = "dataprotection.kubeblocks.io", version = "v1alpha1", kind = "BackupRepo", plural = "backuprepos")]
#[kube(status = "BackupRepoStatus")]
#[kube(schema = "disabled")]
#[kube(derive="PartialEq")]
pub struct BackupRepoSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessMethod")]
pub access_method: Option<BackupRepoAccessMethod>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub credential: Option<BackupRepoCredential>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pathPrefix")]
pub path_prefix: Option<String>,
#[serde(rename = "pvReclaimPolicy")]
pub pv_reclaim_policy: BackupRepoPvReclaimPolicy,
#[serde(rename = "storageProviderRef")]
pub storage_provider_ref: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeCapacity")]
pub volume_capacity: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupRepoAccessMethod {
Mount,
Tool,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupRepoCredential {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupRepoPvReclaimPolicy {
Delete,
Retain,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupRepoStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "backupPVCName")]
pub backup_pvc_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "generatedCSIDriverSecret")]
pub generated_csi_driver_secret: Option<BackupRepoStatusGeneratedCsiDriverSecret>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "generatedStorageClassName")]
pub generated_storage_class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "isDefault")]
pub is_default: Option<bool>,
#[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", rename = "toolConfigSecretName")]
pub tool_config_secret_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupRepoStatusGeneratedCsiDriverSecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}