#[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 = "BackupPolicy", plural = "backuppolicies")]
#[kube(namespaced)]
#[kube(status = "BackupPolicyStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct BackupPolicySpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "backoffLimit")]
pub backoff_limit: Option<i32>,
#[serde(rename = "backupMethods")]
pub backup_methods: Vec<BackupPolicyBackupMethods>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "backupRepoName")]
pub backup_repo_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "encryptionConfig")]
pub encryption_config: Option<BackupPolicyEncryptionConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pathPrefix")]
pub path_prefix: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "retentionPolicy")]
pub retention_policy: Option<BackupPolicyRetentionPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<BackupPolicyTarget>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<BackupPolicyTargets>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "useKopia")]
pub use_kopia: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethods {
#[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<BackupPolicyBackupMethodsEnv>>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeSettings")]
pub runtime_settings: Option<BackupPolicyBackupMethodsRuntimeSettings>,
#[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<BackupPolicyBackupMethodsTarget>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetVolumes")]
pub target_volumes: Option<BackupPolicyBackupMethodsTargetVolumes>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<BackupPolicyBackupMethodsTargets>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsEnv {
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<BackupPolicyBackupMethodsEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsEnvValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")]
pub config_map_key_ref: Option<BackupPolicyBackupMethodsEnvValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<BackupPolicyBackupMethodsEnvValueFromFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")]
pub resource_field_ref: Option<BackupPolicyBackupMethodsEnvValueFromResourceFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<BackupPolicyBackupMethodsEnvValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsEnvValueFromConfigMapKeyRef {
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 BackupPolicyBackupMethodsEnvValueFromFieldRef {
#[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 BackupPolicyBackupMethodsEnvValueFromResourceFieldRef {
#[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 BackupPolicyBackupMethodsEnvValueFromSecretKeyRef {
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 BackupPolicyBackupMethodsRuntimeSettings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<BackupPolicyBackupMethodsRuntimeSettingsResources>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsRuntimeSettingsResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<BackupPolicyBackupMethodsRuntimeSettingsResourcesClaims>>,
#[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 BackupPolicyBackupMethodsRuntimeSettingsResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTarget {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionCredential")]
pub connection_credential: Option<BackupPolicyBackupMethodsTargetConnectionCredential>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerPort")]
pub container_port: Option<BackupPolicyBackupMethodsTargetContainerPort>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podSelector")]
pub pod_selector: Option<BackupPolicyBackupMethodsTargetPodSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<BackupPolicyBackupMethodsTargetResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")]
pub service_account_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetConnectionCredential {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostKey")]
pub host_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordKey")]
pub password_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "portKey")]
pub port_key: Option<String>,
#[serde(rename = "secretName")]
pub secret_name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "usernameKey")]
pub username_key: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetContainerPort {
#[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, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetPodSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fallbackLabelSelector")]
pub fallback_label_selector: Option<BackupPolicyBackupMethodsTargetPodSelectorFallbackLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyBackupMethodsTargetPodSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategy: Option<BackupPolicyBackupMethodsTargetPodSelectorStrategy>,
#[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 BackupPolicyBackupMethodsTargetPodSelectorFallbackLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyBackupMethodsTargetPodSelectorFallbackLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetPodSelectorFallbackLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetPodSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupPolicyBackupMethodsTargetPodSelectorStrategy {
Any,
All,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub excluded: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub included: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<BackupPolicyBackupMethodsTargetResourcesSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetResourcesSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyBackupMethodsTargetResourcesSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetResourcesSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetVolumes {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")]
pub volume_mounts: Option<Vec<BackupPolicyBackupMethodsTargetVolumesVolumeMounts>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub volumes: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetVolumesVolumeMounts {
#[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, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargets {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionCredential")]
pub connection_credential: Option<BackupPolicyBackupMethodsTargetsConnectionCredential>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerPort")]
pub container_port: Option<BackupPolicyBackupMethodsTargetsContainerPort>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podSelector")]
pub pod_selector: Option<BackupPolicyBackupMethodsTargetsPodSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<BackupPolicyBackupMethodsTargetsResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")]
pub service_account_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetsConnectionCredential {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostKey")]
pub host_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordKey")]
pub password_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "portKey")]
pub port_key: Option<String>,
#[serde(rename = "secretName")]
pub secret_name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "usernameKey")]
pub username_key: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetsContainerPort {
#[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, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetsPodSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fallbackLabelSelector")]
pub fallback_label_selector: Option<BackupPolicyBackupMethodsTargetsPodSelectorFallbackLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyBackupMethodsTargetsPodSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategy: Option<BackupPolicyBackupMethodsTargetsPodSelectorStrategy>,
#[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 BackupPolicyBackupMethodsTargetsPodSelectorFallbackLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyBackupMethodsTargetsPodSelectorFallbackLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetsPodSelectorFallbackLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetsPodSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupPolicyBackupMethodsTargetsPodSelectorStrategy {
Any,
All,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetsResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub excluded: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub included: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<BackupPolicyBackupMethodsTargetsResourcesSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetsResourcesSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyBackupMethodsTargetsResourcesSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyBackupMethodsTargetsResourcesSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct BackupPolicyEncryptionConfig {
pub algorithm: BackupPolicyEncryptionConfigAlgorithm,
#[serde(rename = "passPhraseSecretKeyRef")]
pub pass_phrase_secret_key_ref: BackupPolicyEncryptionConfigPassPhraseSecretKeyRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupPolicyEncryptionConfigAlgorithm {
#[serde(rename = "AES-128-CFB")]
Aes128Cfb,
#[serde(rename = "AES-192-CFB")]
Aes192Cfb,
#[serde(rename = "AES-256-CFB")]
Aes256Cfb,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyEncryptionConfigPassPhraseSecretKeyRef {
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, PartialEq)]
pub enum BackupPolicyRetentionPolicy {
#[serde(rename = "retainLatestBackup")]
RetainLatestBackup,
#[serde(rename = "none")]
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTarget {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionCredential")]
pub connection_credential: Option<BackupPolicyTargetConnectionCredential>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerPort")]
pub container_port: Option<BackupPolicyTargetContainerPort>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podSelector")]
pub pod_selector: Option<BackupPolicyTargetPodSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<BackupPolicyTargetResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")]
pub service_account_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetConnectionCredential {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostKey")]
pub host_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordKey")]
pub password_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "portKey")]
pub port_key: Option<String>,
#[serde(rename = "secretName")]
pub secret_name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "usernameKey")]
pub username_key: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetContainerPort {
#[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, Default, PartialEq)]
pub struct BackupPolicyTargetPodSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fallbackLabelSelector")]
pub fallback_label_selector: Option<BackupPolicyTargetPodSelectorFallbackLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyTargetPodSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategy: Option<BackupPolicyTargetPodSelectorStrategy>,
#[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 BackupPolicyTargetPodSelectorFallbackLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyTargetPodSelectorFallbackLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetPodSelectorFallbackLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetPodSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupPolicyTargetPodSelectorStrategy {
Any,
All,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub excluded: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub included: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<BackupPolicyTargetResourcesSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetResourcesSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyTargetResourcesSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetResourcesSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargets {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionCredential")]
pub connection_credential: Option<BackupPolicyTargetsConnectionCredential>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerPort")]
pub container_port: Option<BackupPolicyTargetsContainerPort>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podSelector")]
pub pod_selector: Option<BackupPolicyTargetsPodSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<BackupPolicyTargetsResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")]
pub service_account_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetsConnectionCredential {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostKey")]
pub host_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordKey")]
pub password_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "portKey")]
pub port_key: Option<String>,
#[serde(rename = "secretName")]
pub secret_name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "usernameKey")]
pub username_key: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetsContainerPort {
#[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, Default, PartialEq)]
pub struct BackupPolicyTargetsPodSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fallbackLabelSelector")]
pub fallback_label_selector: Option<BackupPolicyTargetsPodSelectorFallbackLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyTargetsPodSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategy: Option<BackupPolicyTargetsPodSelectorStrategy>,
#[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 BackupPolicyTargetsPodSelectorFallbackLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyTargetsPodSelectorFallbackLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetsPodSelectorFallbackLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetsPodSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupPolicyTargetsPodSelectorStrategy {
Any,
All,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetsResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub excluded: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub included: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<BackupPolicyTargetsResourcesSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetsResourcesSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<BackupPolicyTargetsResourcesSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyTargetsResourcesSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct BackupPolicyStatus {
#[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<BackupPolicyStatusPhase>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum BackupPolicyStatusPhase {
Available,
Unavailable,
}