#[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 = "pgv2.percona.com", version = "v2", kind = "PerconaPGBackup", plural = "perconapgbackups")]
#[kube(namespaced)]
#[kube(status = "PerconaPgBackupStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct PerconaPgBackupSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<String>>,
#[serde(rename = "pgCluster")]
pub pg_cluster: String,
#[serde(rename = "repoName")]
pub repo_name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PerconaPgBackupStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "backupName")]
pub backup_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "backupType")]
pub backup_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completed: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "crVersion")]
pub cr_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub destination: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub image: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "jobName")]
pub job_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "latestRestorableTime")]
pub latest_restorable_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub repo: Option<PerconaPgBackupStatusRepo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageType")]
pub storage_type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PerconaPgBackupStatusRepo {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub azure: Option<PerconaPgBackupStatusRepoAzure>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gcs: Option<PerconaPgBackupStatusRepoGcs>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub s3: Option<PerconaPgBackupStatusRepoS3>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub schedules: Option<PerconaPgBackupStatusRepoSchedules>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub volume: Option<PerconaPgBackupStatusRepoVolume>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PerconaPgBackupStatusRepoAzure {
pub container: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PerconaPgBackupStatusRepoGcs {
pub bucket: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PerconaPgBackupStatusRepoS3 {
pub bucket: String,
pub endpoint: String,
pub region: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PerconaPgBackupStatusRepoSchedules {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub differential: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub full: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub incremental: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PerconaPgBackupStatusRepoVolume {
#[serde(rename = "volumeClaimSpec")]
pub volume_claim_spec: PerconaPgBackupStatusRepoVolumeVolumeClaimSpec,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PerconaPgBackupStatusRepoVolumeVolumeClaimSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")]
pub access_modes: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSource")]
pub data_source: Option<PerconaPgBackupStatusRepoVolumeVolumeClaimSpecDataSource>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")]
pub data_source_ref: Option<PerconaPgBackupStatusRepoVolumeVolumeClaimSpecDataSourceRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<PerconaPgBackupStatusRepoVolumeVolumeClaimSpecResources>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<PerconaPgBackupStatusRepoVolumeVolumeClaimSpecSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")]
pub storage_class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeAttributesClassName")]
pub volume_attributes_class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")]
pub volume_mode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")]
pub volume_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PerconaPgBackupStatusRepoVolumeVolumeClaimSpecDataSource {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PerconaPgBackupStatusRepoVolumeVolumeClaimSpecDataSourceRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PerconaPgBackupStatusRepoVolumeVolumeClaimSpecResources {
#[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 PerconaPgBackupStatusRepoVolumeVolumeClaimSpecSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PerconaPgBackupStatusRepoVolumeVolumeClaimSpecSelectorMatchExpressions>>,
#[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 PerconaPgBackupStatusRepoVolumeVolumeClaimSpecSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}