#[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 = "ActionSet", plural = "actionsets")]
#[kube(status = "ActionSetStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct ActionSetSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub backup: Option<ActionSetBackup>,
#[serde(rename = "backupType")]
pub backup_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<Vec<ActionSetEnv>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")]
pub env_from: Option<Vec<ActionSetEnvFrom>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "parametersSchema")]
pub parameters_schema: Option<ActionSetParametersSchema>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub restore: Option<ActionSetRestore>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetBackup {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "backupData")]
pub backup_data: Option<ActionSetBackupBackupData>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "postBackup")]
pub post_backup: Option<Vec<ActionSetBackupPostBackup>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preBackup")]
pub pre_backup: Option<Vec<ActionSetBackupPreBackup>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preDelete")]
pub pre_delete: Option<ActionSetBackupPreDelete>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "withParameters")]
pub with_parameters: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetBackupBackupData {
pub command: Vec<String>,
pub image: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "onError")]
pub on_error: Option<ActionSetBackupBackupDataOnError>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runOnTargetPodNode")]
pub run_on_target_pod_node: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "syncProgress")]
pub sync_progress: Option<ActionSetBackupBackupDataSyncProgress>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ActionSetBackupBackupDataOnError {
Continue,
Fail,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetBackupBackupDataSyncProgress {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "intervalSeconds")]
pub interval_seconds: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetBackupPostBackup {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<ActionSetBackupPostBackupExec>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job: Option<ActionSetBackupPostBackupJob>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetBackupPostBackupExec {
pub command: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub container: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "onError")]
pub on_error: Option<ActionSetBackupPostBackupExecOnError>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ActionSetBackupPostBackupExecOnError {
Continue,
Fail,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetBackupPostBackupJob {
pub command: Vec<String>,
pub image: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "onError")]
pub on_error: Option<ActionSetBackupPostBackupJobOnError>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runOnTargetPodNode")]
pub run_on_target_pod_node: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ActionSetBackupPostBackupJobOnError {
Continue,
Fail,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetBackupPreBackup {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<ActionSetBackupPreBackupExec>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job: Option<ActionSetBackupPreBackupJob>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetBackupPreBackupExec {
pub command: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub container: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "onError")]
pub on_error: Option<ActionSetBackupPreBackupExecOnError>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ActionSetBackupPreBackupExecOnError {
Continue,
Fail,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetBackupPreBackupJob {
pub command: Vec<String>,
pub image: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "onError")]
pub on_error: Option<ActionSetBackupPreBackupJobOnError>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runOnTargetPodNode")]
pub run_on_target_pod_node: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ActionSetBackupPreBackupJobOnError {
Continue,
Fail,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetBackupPreDelete {
pub command: Vec<String>,
pub image: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetEnv {
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<ActionSetEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetEnvValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")]
pub config_map_key_ref: Option<ActionSetEnvValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<ActionSetEnvValueFromFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")]
pub resource_field_ref: Option<ActionSetEnvValueFromResourceFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<ActionSetEnvValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetEnvValueFromConfigMapKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetEnvValueFromFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(rename = "fieldPath")]
pub field_path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetEnvValueFromResourceFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub divisor: Option<IntOrString>,
pub resource: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetEnvValueFromSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetEnvFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")]
pub config_map_ref: Option<ActionSetEnvFromConfigMapRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<ActionSetEnvFromSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetEnvFromConfigMapRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetEnvFromSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetParametersSchema {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "openAPIV3Schema")]
pub open_apiv3_schema: Option<BTreeMap<String, serde_json::Value>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetRestore {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "baseBackupRequired")]
pub base_backup_required: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "postReady")]
pub post_ready: Option<Vec<ActionSetRestorePostReady>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "prepareData")]
pub prepare_data: Option<ActionSetRestorePrepareData>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "withParameters")]
pub with_parameters: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetRestorePostReady {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<ActionSetRestorePostReadyExec>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job: Option<ActionSetRestorePostReadyJob>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetRestorePostReadyExec {
pub command: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub container: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "onError")]
pub on_error: Option<ActionSetRestorePostReadyExecOnError>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ActionSetRestorePostReadyExecOnError {
Continue,
Fail,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetRestorePostReadyJob {
pub command: Vec<String>,
pub image: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "onError")]
pub on_error: Option<ActionSetRestorePostReadyJobOnError>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runOnTargetPodNode")]
pub run_on_target_pod_node: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ActionSetRestorePostReadyJobOnError {
Continue,
Fail,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetRestorePrepareData {
pub command: Vec<String>,
pub image: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "onError")]
pub on_error: Option<ActionSetRestorePrepareDataOnError>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runOnTargetPodNode")]
pub run_on_target_pod_node: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ActionSetRestorePrepareDataOnError {
Continue,
Fail,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ActionSetStatus {
#[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<ActionSetStatusPhase>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ActionSetStatusPhase {
Available,
Unavailable,
}