#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "couchbase.com", version = "v2", kind = "CouchbaseBackup", plural = "couchbasebackups")]
#[kube(namespaced)]
#[kube(status = "CouchbaseBackupStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct CouchbaseBackupSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "autoScaling")]
pub auto_scaling: Option<CouchbaseBackupAutoScaling>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "backoffLimit")]
pub backoff_limit: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "backupRetention")]
pub backup_retention: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<CouchbaseBackupData>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultRecoveryMethod")]
pub default_recovery_method: Option<CouchbaseBackupDefaultRecoveryMethod>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ephemeralVolume")]
pub ephemeral_volume: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "failedJobsHistoryLimit")]
pub failed_jobs_history_limit: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub full: Option<CouchbaseBackupFull>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub incremental: Option<CouchbaseBackupIncremental>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "logRetention")]
pub log_retention: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "objectStore")]
pub object_store: Option<CouchbaseBackupObjectStore>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub s3bucket: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub services: Option<CouchbaseBackupServices>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")]
pub storage_class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategy: Option<CouchbaseBackupStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "successfulJobsHistoryLimit")]
pub successful_jobs_history_limit: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub threads: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ttlSecondsAfterFinished")]
pub ttl_seconds_after_finished: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBackupAutoScaling {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "incrementPercent")]
pub increment_percent: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "thresholdPercent")]
pub threshold_percent: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBackupData {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exclude: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub include: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseBackupDefaultRecoveryMethod {
#[serde(rename = "none")]
None,
#[serde(rename = "resume")]
Resume,
#[serde(rename = "purge")]
Purge,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBackupFull {
pub schedule: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBackupIncremental {
pub schedule: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBackupObjectStore {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub endpoint: Option<CouchbaseBackupObjectStoreEndpoint>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uri: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "useIAM")]
pub use_iam: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBackupObjectStoreEndpoint {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "useVirtualPath")]
pub use_virtual_path: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBackupServices {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub analytics: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "bucketConfig")]
pub bucket_config: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "bucketQuery")]
pub bucket_query: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterAnalytics")]
pub cluster_analytics: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterQuery")]
pub cluster_query: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub eventing: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ftsAliases")]
pub fts_aliases: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ftsIndexes")]
pub fts_indexes: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "gsIndexes")]
pub gs_indexes: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub users: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub views: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseBackupStrategy {
#[serde(rename = "full_incremental")]
FullIncremental,
#[serde(rename = "full_only")]
FullOnly,
#[serde(rename = "immediate_incremental")]
ImmediateIncremental,
#[serde(rename = "immediate_full")]
ImmediateFull,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBackupStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub archive: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub backups: Option<Vec<CouchbaseBackupStatusBackups>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "capacityUsed")]
pub capacity_used: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cronjob: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration: Option<String>,
pub failed: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastFailure")]
pub last_failure: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastRun")]
pub last_run: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastSuccess")]
pub last_success: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pod: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub repo: Option<String>,
pub running: bool,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBackupStatusBackups {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub full: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub incrementals: Option<Vec<String>>,
pub name: String,
}