use k8s_openapi::apimachinery::pkg::{api::resource::Quantity, util::intstr::IntOrString};
use kube::CustomResource;
use serde::{Deserialize, Serialize};
use std::collections::BTreeMap;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default)]
#[kube(
group = "postgresql.cnpg.io",
version = "v1",
kind = "Cluster",
plural = "clusters"
)]
#[kube(namespaced)]
#[kube(status = "ClusterStatus")]
#[kube(schema = "disabled")]
pub struct ClusterSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub affinity: Option<ClusterAffinity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub backup: Option<ClusterBackup>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bootstrap: Option<ClusterBootstrap>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub certificates: Option<ClusterCertificates>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "enableSuperuserAccess"
)]
pub enable_superuser_access: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<Vec<ClusterEnv>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")]
pub env_from: Option<Vec<ClusterEnvFrom>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "externalClusters")]
pub external_clusters: Option<Vec<ClusterExternalClusters>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "failoverDelay")]
pub failover_delay: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "imageName")]
pub image_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")]
pub image_pull_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullSecrets")]
pub image_pull_secrets: Option<Vec<ClusterImagePullSecrets>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "inheritedMetadata"
)]
pub inherited_metadata: Option<ClusterInheritedMetadata>,
pub instances: i64,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "logLevel")]
pub log_level: Option<ClusterLogLevel>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub managed: Option<ClusterManaged>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxSyncReplicas")]
pub max_sync_replicas: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "minSyncReplicas")]
pub min_sync_replicas: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub monitoring: Option<ClusterMonitoring>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeMaintenanceWindow"
)]
pub node_maintenance_window: Option<ClusterNodeMaintenanceWindow>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "postgresGID")]
pub postgres_gid: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "postgresUID")]
pub postgres_uid: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub postgresql: Option<ClusterPostgresql>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "primaryUpdateMethod"
)]
pub primary_update_method: Option<ClusterPrimaryUpdateMethod>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "primaryUpdateStrategy"
)]
pub primary_update_strategy: Option<ClusterPrimaryUpdateStrategy>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "projectedVolumeTemplate"
)]
pub projected_volume_template: Option<ClusterProjectedVolumeTemplate>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replica: Option<ClusterReplica>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "replicationSlots")]
pub replication_slots: Option<ClusterReplicationSlots>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<ClusterResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "schedulerName")]
pub scheduler_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")]
pub seccomp_profile: Option<ClusterSeccompProfile>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "serviceAccountTemplate"
)]
pub service_account_template: Option<ClusterServiceAccountTemplate>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "startDelay")]
pub start_delay: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "stopDelay")]
pub stop_delay: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub storage: Option<ClusterStorage>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "superuserSecret")]
pub superuser_secret: Option<ClusterSuperuserSecret>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "switchoverDelay")]
pub switchover_delay: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "topologySpreadConstraints"
)]
pub topology_spread_constraints: Option<Vec<ClusterTopologySpreadConstraints>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "walStorage")]
pub wal_storage: Option<ClusterWalStorage>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "additionalPodAffinity"
)]
pub additional_pod_affinity: Option<ClusterAffinityAdditionalPodAffinity>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "additionalPodAntiAffinity"
)]
pub additional_pod_anti_affinity: Option<ClusterAffinityAdditionalPodAntiAffinity>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "enablePodAntiAffinity"
)]
pub enable_pod_anti_affinity: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
pub node_affinity: Option<ClusterAffinityNodeAffinity>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
pub node_selector: Option<BTreeMap<String, String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "podAntiAffinityType"
)]
pub pod_anti_affinity_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tolerations: Option<Vec<ClusterAffinityTolerations>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "topologyKey")]
pub topology_key: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "preferredDuringSchedulingIgnoredDuringExecution"
)]
pub preferred_during_scheduling_ignored_during_execution:
Option<Vec<ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecution>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "requiredDuringSchedulingIgnoredDuringExecution"
)]
pub required_during_scheduling_ignored_during_execution:
Option<Vec<ClusterAffinityAdditionalPodAffinityRequiredDuringSchedulingIgnoredDuringExecution>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term:
ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions
{
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)]
pub struct ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions
{
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)]
pub struct ClusterAffinityAdditionalPodAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<
ClusterAffinityAdditionalPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector,
>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "namespaceSelector"
)]
pub namespace_selector: Option<
ClusterAffinityAdditionalPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector,
>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAffinityAdditionalPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions
{
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)]
pub struct ClusterAffinityAdditionalPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAffinityAdditionalPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions
{
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)]
pub struct ClusterAffinityAdditionalPodAntiAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "preferredDuringSchedulingIgnoredDuringExecution"
)]
pub preferred_during_scheduling_ignored_during_execution:
Option<Vec<ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "requiredDuringSchedulingIgnoredDuringExecution"
)]
pub required_during_scheduling_ignored_during_execution:
Option<Vec<ClusterAffinityAdditionalPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term: ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions
{
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)]
pub struct ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions
{
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)]
pub struct ClusterAffinityAdditionalPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<ClusterAffinityAdditionalPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<ClusterAffinityAdditionalPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAffinityAdditionalPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions
{
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)]
pub struct ClusterAffinityAdditionalPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAffinityAdditionalPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityAdditionalPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions
{
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)]
pub struct ClusterAffinityNodeAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "preferredDuringSchedulingIgnoredDuringExecution"
)]
pub preferred_during_scheduling_ignored_during_execution:
Option<Vec<ClusterAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "requiredDuringSchedulingIgnoredDuringExecution"
)]
pub required_during_scheduling_ignored_during_execution:
Option<ClusterAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution {
pub preference: ClusterAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")]
pub match_fields: Option<Vec<ClusterAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions
{
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)]
pub struct ClusterAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields {
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)]
pub struct ClusterAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "nodeSelectorTerms")]
pub node_selector_terms:
Vec<ClusterAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")]
pub match_fields: Option<Vec<ClusterAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions
{
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)]
pub struct ClusterAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields
{
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)]
pub struct ClusterAffinityTolerations {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub effect: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub operator: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "tolerationSeconds"
)]
pub toleration_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackup {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "barmanObjectStore"
)]
pub barman_object_store: Option<ClusterBackupBarmanObjectStore>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "retentionPolicy")]
pub retention_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<ClusterBackupTarget>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStore {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "azureCredentials")]
pub azure_credentials: Option<ClusterBackupBarmanObjectStoreAzureCredentials>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<ClusterBackupBarmanObjectStoreData>,
#[serde(rename = "destinationPath")]
pub destination_path: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointCA")]
pub endpoint_ca: Option<ClusterBackupBarmanObjectStoreEndpointCa>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointURL")]
pub endpoint_url: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "googleCredentials"
)]
pub google_credentials: Option<ClusterBackupBarmanObjectStoreGoogleCredentials>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "historyTags")]
pub history_tags: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "s3Credentials")]
pub s3_credentials: Option<ClusterBackupBarmanObjectStoreS3Credentials>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serverName")]
pub server_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub wal: Option<ClusterBackupBarmanObjectStoreWal>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreAzureCredentials {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionString")]
pub connection_string: Option<ClusterBackupBarmanObjectStoreAzureCredentialsConnectionString>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "inheritFromAzureAD"
)]
pub inherit_from_azure_ad: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageAccount")]
pub storage_account: Option<ClusterBackupBarmanObjectStoreAzureCredentialsStorageAccount>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageKey")]
pub storage_key: Option<ClusterBackupBarmanObjectStoreAzureCredentialsStorageKey>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageSasToken")]
pub storage_sas_token: Option<ClusterBackupBarmanObjectStoreAzureCredentialsStorageSasToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreAzureCredentialsConnectionString {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreAzureCredentialsStorageAccount {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreAzureCredentialsStorageKey {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreAzureCredentialsStorageSasToken {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreData {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub compression: Option<ClusterBackupBarmanObjectStoreDataCompression>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub encryption: Option<ClusterBackupBarmanObjectStoreDataEncryption>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "immediateCheckpoint"
)]
pub immediate_checkpoint: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub jobs: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterBackupBarmanObjectStoreDataCompression {
#[serde(rename = "gzip")]
Gzip,
#[serde(rename = "bzip2")]
Bzip2,
#[serde(rename = "snappy")]
Snappy,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterBackupBarmanObjectStoreDataEncryption {
#[serde(rename = "AES256")]
Aes256,
#[serde(rename = "aws:kms")]
AwsKms,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreEndpointCa {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreGoogleCredentials {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "applicationCredentials"
)]
pub application_credentials:
Option<ClusterBackupBarmanObjectStoreGoogleCredentialsApplicationCredentials>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "gkeEnvironment")]
pub gke_environment: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreGoogleCredentialsApplicationCredentials {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreS3Credentials {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessKeyId")]
pub access_key_id: Option<ClusterBackupBarmanObjectStoreS3CredentialsAccessKeyId>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "inheritFromIAMRole"
)]
pub inherit_from_iam_role: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub region: Option<ClusterBackupBarmanObjectStoreS3CredentialsRegion>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretAccessKey")]
pub secret_access_key: Option<ClusterBackupBarmanObjectStoreS3CredentialsSecretAccessKey>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionToken")]
pub session_token: Option<ClusterBackupBarmanObjectStoreS3CredentialsSessionToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreS3CredentialsAccessKeyId {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreS3CredentialsRegion {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreS3CredentialsSecretAccessKey {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreS3CredentialsSessionToken {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBackupBarmanObjectStoreWal {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub compression: Option<ClusterBackupBarmanObjectStoreWalCompression>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub encryption: Option<ClusterBackupBarmanObjectStoreWalEncryption>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxParallel")]
pub max_parallel: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterBackupBarmanObjectStoreWalCompression {
#[serde(rename = "gzip")]
Gzip,
#[serde(rename = "bzip2")]
Bzip2,
#[serde(rename = "snappy")]
Snappy,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterBackupBarmanObjectStoreWalEncryption {
#[serde(rename = "AES256")]
Aes256,
#[serde(rename = "aws:kms")]
AwsKms,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterBackupTarget {
#[serde(rename = "primary")]
Primary,
#[serde(rename = "prefer-standby")]
PreferStandby,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrap {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub initdb: Option<ClusterBootstrapInitdb>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pg_basebackup: Option<ClusterBootstrapPgBasebackup>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub recovery: Option<ClusterBootstrapRecovery>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapInitdb {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataChecksums")]
pub data_checksums: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub database: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub encoding: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub import: Option<ClusterBootstrapInitdbImport>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "localeCType")]
pub locale_c_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "localeCollate")]
pub locale_collate: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "postInitApplicationSQL"
)]
pub post_init_application_sql: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "postInitApplicationSQLRefs"
)]
pub post_init_application_sql_refs: Option<ClusterBootstrapInitdbPostInitApplicationSqlRefs>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "postInitSQL")]
pub post_init_sql: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "postInitTemplateSQL"
)]
pub post_init_template_sql: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<ClusterBootstrapInitdbSecret>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "walSegmentSize")]
pub wal_segment_size: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct ClusterBootstrapInitdbImport {
pub databases: Vec<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "postImportApplicationSQL"
)]
pub post_import_application_sql: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub roles: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "schemaOnly")]
pub schema_only: Option<bool>,
pub source: ClusterBootstrapInitdbImportSource,
#[serde(rename = "type")]
pub r#type: ClusterBootstrapInitdbImportType,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapInitdbImportSource {
#[serde(rename = "externalCluster")]
pub external_cluster: String,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterBootstrapInitdbImportType {
#[serde(rename = "microservice")]
Microservice,
#[serde(rename = "monolith")]
Monolith,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapInitdbPostInitApplicationSqlRefs {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRefs")]
pub config_map_refs: Option<Vec<ClusterBootstrapInitdbPostInitApplicationSqlRefsConfigMapRefs>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRefs")]
pub secret_refs: Option<Vec<ClusterBootstrapInitdbPostInitApplicationSqlRefsSecretRefs>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapInitdbPostInitApplicationSqlRefsConfigMapRefs {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapInitdbPostInitApplicationSqlRefsSecretRefs {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapInitdbSecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapPgBasebackup {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub database: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<ClusterBootstrapPgBasebackupSecret>,
pub source: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapPgBasebackupSecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapRecovery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub backup: Option<ClusterBootstrapRecoveryBackup>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub database: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "recoveryTarget")]
pub recovery_target: Option<ClusterBootstrapRecoveryRecoveryTarget>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<ClusterBootstrapRecoverySecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeSnapshots")]
pub volume_snapshots: Option<ClusterBootstrapRecoveryVolumeSnapshots>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapRecoveryBackup {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointCA")]
pub endpoint_ca: Option<ClusterBootstrapRecoveryBackupEndpointCa>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapRecoveryBackupEndpointCa {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapRecoveryRecoveryTarget {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "backupID")]
pub backup_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exclusive: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetImmediate")]
pub target_immediate: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetLSN")]
pub target_lsn: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetName")]
pub target_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetTLI")]
pub target_tli: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetTime")]
pub target_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetXID")]
pub target_xid: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapRecoverySecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapRecoveryVolumeSnapshots {
pub storage: ClusterBootstrapRecoveryVolumeSnapshotsStorage,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "walStorage")]
pub wal_storage: Option<ClusterBootstrapRecoveryVolumeSnapshotsWalStorage>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterBootstrapRecoveryVolumeSnapshotsStorage {
#[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)]
pub struct ClusterBootstrapRecoveryVolumeSnapshotsWalStorage {
#[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)]
pub struct ClusterCertificates {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientCASecret")]
pub client_ca_secret: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "replicationTLSSecret"
)]
pub replication_tls_secret: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "serverAltDNSNames"
)]
pub server_alt_dns_names: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serverCASecret")]
pub server_ca_secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serverTLSSecret")]
pub server_tls_secret: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterEnv {
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<ClusterEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterEnvValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")]
pub config_map_key_ref: Option<ClusterEnvValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<ClusterEnvValueFromFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")]
pub resource_field_ref: Option<ClusterEnvValueFromResourceFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<ClusterEnvValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterEnvValueFromConfigMapKeyRef {
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)]
pub struct ClusterEnvValueFromFieldRef {
#[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)]
pub struct ClusterEnvValueFromResourceFieldRef {
#[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)]
pub struct ClusterEnvValueFromSecretKeyRef {
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)]
pub struct ClusterEnvFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")]
pub config_map_ref: Option<ClusterEnvFromConfigMapRef>,
#[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<ClusterEnvFromSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterEnvFromConfigMapRef {
#[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)]
pub struct ClusterEnvFromSecretRef {
#[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)]
pub struct ClusterExternalClusters {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "barmanObjectStore"
)]
pub barman_object_store: Option<ClusterExternalClustersBarmanObjectStore>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "connectionParameters"
)]
pub connection_parameters: Option<BTreeMap<String, String>>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password: Option<ClusterExternalClustersPassword>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sslCert")]
pub ssl_cert: Option<ClusterExternalClustersSslCert>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sslKey")]
pub ssl_key: Option<ClusterExternalClustersSslKey>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sslRootCert")]
pub ssl_root_cert: Option<ClusterExternalClustersSslRootCert>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStore {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "azureCredentials")]
pub azure_credentials: Option<ClusterExternalClustersBarmanObjectStoreAzureCredentials>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<ClusterExternalClustersBarmanObjectStoreData>,
#[serde(rename = "destinationPath")]
pub destination_path: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointCA")]
pub endpoint_ca: Option<ClusterExternalClustersBarmanObjectStoreEndpointCa>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "endpointURL")]
pub endpoint_url: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "googleCredentials"
)]
pub google_credentials: Option<ClusterExternalClustersBarmanObjectStoreGoogleCredentials>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "historyTags")]
pub history_tags: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "s3Credentials")]
pub s3_credentials: Option<ClusterExternalClustersBarmanObjectStoreS3Credentials>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serverName")]
pub server_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub wal: Option<ClusterExternalClustersBarmanObjectStoreWal>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreAzureCredentials {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionString")]
pub connection_string: Option<ClusterExternalClustersBarmanObjectStoreAzureCredentialsConnectionString>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "inheritFromAzureAD"
)]
pub inherit_from_azure_ad: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageAccount")]
pub storage_account: Option<ClusterExternalClustersBarmanObjectStoreAzureCredentialsStorageAccount>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageKey")]
pub storage_key: Option<ClusterExternalClustersBarmanObjectStoreAzureCredentialsStorageKey>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageSasToken")]
pub storage_sas_token: Option<ClusterExternalClustersBarmanObjectStoreAzureCredentialsStorageSasToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreAzureCredentialsConnectionString {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreAzureCredentialsStorageAccount {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreAzureCredentialsStorageKey {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreAzureCredentialsStorageSasToken {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreData {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub compression: Option<ClusterExternalClustersBarmanObjectStoreDataCompression>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub encryption: Option<ClusterExternalClustersBarmanObjectStoreDataEncryption>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "immediateCheckpoint"
)]
pub immediate_checkpoint: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub jobs: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterExternalClustersBarmanObjectStoreDataCompression {
#[serde(rename = "gzip")]
Gzip,
#[serde(rename = "bzip2")]
Bzip2,
#[serde(rename = "snappy")]
Snappy,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterExternalClustersBarmanObjectStoreDataEncryption {
#[serde(rename = "AES256")]
Aes256,
#[serde(rename = "aws:kms")]
AwsKms,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreEndpointCa {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreGoogleCredentials {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "applicationCredentials"
)]
pub application_credentials:
Option<ClusterExternalClustersBarmanObjectStoreGoogleCredentialsApplicationCredentials>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "gkeEnvironment")]
pub gke_environment: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreGoogleCredentialsApplicationCredentials {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreS3Credentials {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessKeyId")]
pub access_key_id: Option<ClusterExternalClustersBarmanObjectStoreS3CredentialsAccessKeyId>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "inheritFromIAMRole"
)]
pub inherit_from_iam_role: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub region: Option<ClusterExternalClustersBarmanObjectStoreS3CredentialsRegion>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretAccessKey")]
pub secret_access_key: Option<ClusterExternalClustersBarmanObjectStoreS3CredentialsSecretAccessKey>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionToken")]
pub session_token: Option<ClusterExternalClustersBarmanObjectStoreS3CredentialsSessionToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreS3CredentialsAccessKeyId {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreS3CredentialsRegion {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreS3CredentialsSecretAccessKey {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreS3CredentialsSessionToken {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersBarmanObjectStoreWal {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub compression: Option<ClusterExternalClustersBarmanObjectStoreWalCompression>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub encryption: Option<ClusterExternalClustersBarmanObjectStoreWalEncryption>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxParallel")]
pub max_parallel: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterExternalClustersBarmanObjectStoreWalCompression {
#[serde(rename = "gzip")]
Gzip,
#[serde(rename = "bzip2")]
Bzip2,
#[serde(rename = "snappy")]
Snappy,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterExternalClustersBarmanObjectStoreWalEncryption {
#[serde(rename = "AES256")]
Aes256,
#[serde(rename = "aws:kms")]
AwsKms,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterExternalClustersPassword {
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)]
pub struct ClusterExternalClustersSslCert {
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)]
pub struct ClusterExternalClustersSslKey {
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)]
pub struct ClusterExternalClustersSslRootCert {
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)]
pub struct ClusterImagePullSecrets {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterInheritedMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterLogLevel {
#[serde(rename = "error")]
Error,
#[serde(rename = "warning")]
Warning,
#[serde(rename = "info")]
Info,
#[serde(rename = "debug")]
Debug,
#[serde(rename = "trace")]
Trace,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterManaged {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub roles: Option<Vec<ClusterManagedRoles>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterManagedRoles {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bypassrls: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionLimit")]
pub connection_limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub createdb: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub createrole: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "disablePassword")]
pub disable_password: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ensure: Option<ClusterManagedRolesEnsure>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "inRoles")]
pub in_roles: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inherit: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<bool>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordSecret")]
pub password_secret: Option<ClusterManagedRolesPasswordSecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replication: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub superuser: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "validUntil")]
pub valid_until: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterManagedRolesEnsure {
#[serde(rename = "present")]
Present,
#[serde(rename = "absent")]
Absent,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterManagedRolesPasswordSecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterMonitoring {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "customQueriesConfigMap"
)]
pub custom_queries_config_map: Option<Vec<ClusterMonitoringCustomQueriesConfigMap>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "customQueriesSecret"
)]
pub custom_queries_secret: Option<Vec<ClusterMonitoringCustomQueriesSecret>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "disableDefaultQueries"
)]
pub disable_default_queries: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "enablePodMonitor")]
pub enable_pod_monitor: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterMonitoringCustomQueriesConfigMap {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterMonitoringCustomQueriesSecret {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterNodeMaintenanceWindow {
#[serde(rename = "inProgress")]
pub in_progress: bool,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "reusePVC")]
pub reuse_pvc: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterPostgresql {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ldap: Option<ClusterPostgresqlLdap>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameters: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pg_hba: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "promotionTimeout")]
pub promotion_timeout: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_preload_libraries: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "syncReplicaElectionConstraint"
)]
pub sync_replica_election_constraint: Option<ClusterPostgresqlSyncReplicaElectionConstraint>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterPostgresqlLdap {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "bindAsAuth")]
pub bind_as_auth: Option<ClusterPostgresqlLdapBindAsAuth>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "bindSearchAuth")]
pub bind_search_auth: Option<ClusterPostgresqlLdapBindSearchAuth>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<ClusterPostgresqlLdapScheme>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub server: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tls: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterPostgresqlLdapBindAsAuth {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub suffix: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterPostgresqlLdapBindSearchAuth {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "baseDN")]
pub base_dn: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "bindDN")]
pub bind_dn: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "bindPassword")]
pub bind_password: Option<ClusterPostgresqlLdapBindSearchAuthBindPassword>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "searchAttribute")]
pub search_attribute: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "searchFilter")]
pub search_filter: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterPostgresqlLdapBindSearchAuthBindPassword {
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)]
pub enum ClusterPostgresqlLdapScheme {
#[serde(rename = "ldap")]
Ldap,
#[serde(rename = "ldaps")]
Ldaps,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterPostgresqlSyncReplicaElectionConstraint {
pub enabled: bool,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeLabelsAntiAffinity"
)]
pub node_labels_anti_affinity: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterPrimaryUpdateMethod {
#[serde(rename = "switchover")]
Switchover,
#[serde(rename = "restart")]
Restart,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum ClusterPrimaryUpdateStrategy {
#[serde(rename = "unsupervised")]
Unsupervised,
#[serde(rename = "supervised")]
Supervised,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterProjectedVolumeTemplate {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultMode")]
pub default_mode: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sources: Option<Vec<ClusterProjectedVolumeTemplateSources>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterProjectedVolumeTemplateSources {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<ClusterProjectedVolumeTemplateSourcesConfigMap>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")]
pub downward_api: Option<ClusterProjectedVolumeTemplateSourcesDownwardApi>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<ClusterProjectedVolumeTemplateSourcesSecret>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "serviceAccountToken"
)]
pub service_account_token: Option<ClusterProjectedVolumeTemplateSourcesServiceAccountToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterProjectedVolumeTemplateSourcesConfigMap {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<ClusterProjectedVolumeTemplateSourcesConfigMapItems>>,
#[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)]
pub struct ClusterProjectedVolumeTemplateSourcesConfigMapItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterProjectedVolumeTemplateSourcesDownwardApi {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<ClusterProjectedVolumeTemplateSourcesDownwardApiItems>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterProjectedVolumeTemplateSourcesDownwardApiItems {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<ClusterProjectedVolumeTemplateSourcesDownwardApiItemsFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")]
pub resource_field_ref: Option<ClusterProjectedVolumeTemplateSourcesDownwardApiItemsResourceFieldRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterProjectedVolumeTemplateSourcesDownwardApiItemsFieldRef {
#[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)]
pub struct ClusterProjectedVolumeTemplateSourcesDownwardApiItemsResourceFieldRef {
#[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)]
pub struct ClusterProjectedVolumeTemplateSourcesSecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<ClusterProjectedVolumeTemplateSourcesSecretItems>>,
#[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)]
pub struct ClusterProjectedVolumeTemplateSourcesSecretItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterProjectedVolumeTemplateSourcesServiceAccountToken {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audience: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "expirationSeconds"
)]
pub expiration_seconds: Option<i64>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterReplica {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
pub source: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterReplicationSlots {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "highAvailability")]
pub high_availability: Option<ClusterReplicationSlotsHighAvailability>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "updateInterval")]
pub update_interval: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterReplicationSlotsHighAvailability {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "slotPrefix")]
pub slot_prefix: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<ClusterResourcesClaims>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<BTreeMap<String, Quantity>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, Quantity>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterSeccompProfile {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")]
pub localhost_profile: Option<String>,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterServiceAccountTemplate {
pub metadata: ClusterServiceAccountTemplateMetadata,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterServiceAccountTemplateMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStorage {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pvcTemplate")]
pub pvc_template: Option<ClusterStoragePvcTemplate>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resizeInUseVolumes"
)]
pub resize_in_use_volumes: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClass")]
pub storage_class: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStoragePvcTemplate {
#[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<ClusterStoragePvcTemplateDataSource>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")]
pub data_source_ref: Option<ClusterStoragePvcTemplateDataSourceRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<ClusterStoragePvcTemplateResources>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<ClusterStoragePvcTemplateSelector>,
#[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 = "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)]
pub struct ClusterStoragePvcTemplateDataSource {
#[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)]
pub struct ClusterStoragePvcTemplateDataSourceRef {
#[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)]
pub struct ClusterStoragePvcTemplateResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<ClusterStoragePvcTemplateResourcesClaims>>,
#[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)]
pub struct ClusterStoragePvcTemplateResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStoragePvcTemplateSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterStoragePvcTemplateSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStoragePvcTemplateSelectorMatchExpressions {
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)]
pub struct ClusterSuperuserSecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterTopologySpreadConstraints {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<ClusterTopologySpreadConstraintsLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")]
pub match_label_keys: Option<Vec<String>>,
#[serde(rename = "maxSkew")]
pub max_skew: i32,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "minDomains")]
pub min_domains: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeAffinityPolicy"
)]
pub node_affinity_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeTaintsPolicy")]
pub node_taints_policy: Option<String>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
#[serde(rename = "whenUnsatisfiable")]
pub when_unsatisfiable: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterTopologySpreadConstraintsLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterTopologySpreadConstraintsLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterTopologySpreadConstraintsLabelSelectorMatchExpressions {
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)]
pub struct ClusterWalStorage {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pvcTemplate")]
pub pvc_template: Option<ClusterWalStoragePvcTemplate>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resizeInUseVolumes"
)]
pub resize_in_use_volumes: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClass")]
pub storage_class: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterWalStoragePvcTemplate {
#[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<ClusterWalStoragePvcTemplateDataSource>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")]
pub data_source_ref: Option<ClusterWalStoragePvcTemplateDataSourceRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<ClusterWalStoragePvcTemplateResources>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<ClusterWalStoragePvcTemplateSelector>,
#[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 = "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)]
pub struct ClusterWalStoragePvcTemplateDataSource {
#[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)]
pub struct ClusterWalStoragePvcTemplateDataSourceRef {
#[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)]
pub struct ClusterWalStoragePvcTemplateResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<ClusterWalStoragePvcTemplateResourcesClaims>>,
#[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)]
pub struct ClusterWalStoragePvcTemplateResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterWalStoragePvcTemplateSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<ClusterWalStoragePvcTemplateSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterWalStoragePvcTemplateSelectorMatchExpressions {
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)]
pub struct ClusterStatus {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "azurePVCUpdateEnabled"
)]
pub azure_pvc_update_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub certificates: Option<ClusterStatusCertificates>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "cloudNativePGCommitHash"
)]
pub cloud_native_pg_commit_hash: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "cloudNativePGOperatorHash"
)]
pub cloud_native_pg_operator_hash: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<ClusterStatusConditions>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "configMapResourceVersion"
)]
pub config_map_resource_version: Option<ClusterStatusConfigMapResourceVersion>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "currentPrimary")]
pub current_primary: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "currentPrimaryFailingSinceTimestamp"
)]
pub current_primary_failing_since_timestamp: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "currentPrimaryTimestamp"
)]
pub current_primary_timestamp: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "danglingPVC")]
pub dangling_pvc: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "firstRecoverabilityPoint"
)]
pub first_recoverability_point: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "healthyPVC")]
pub healthy_pvc: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "initializingPVC")]
pub initializing_pvc: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "instanceNames")]
pub instance_names: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub instances: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "instancesReportedState"
)]
pub instances_reported_state: Option<BTreeMap<String, ClusterStatusInstancesReportedState>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "instancesStatus")]
pub instances_status: Option<BTreeMap<String, Vec<String>>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "jobCount")]
pub job_count: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastFailedBackup")]
pub last_failed_backup: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "lastSuccessfulBackup"
)]
pub last_successful_backup: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "latestGeneratedNode"
)]
pub latest_generated_node: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "managedRolesStatus"
)]
pub managed_roles_status: Option<ClusterStatusManagedRolesStatus>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "onlineUpdateEnabled"
)]
pub online_update_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phase: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "phaseReason")]
pub phase_reason: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "poolerIntegrations"
)]
pub pooler_integrations: Option<ClusterStatusPoolerIntegrations>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pvcCount")]
pub pvc_count: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readService")]
pub read_service: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readyInstances")]
pub ready_instances: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resizingPVC")]
pub resizing_pvc: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "secretsResourceVersion"
)]
pub secrets_resource_version: Option<ClusterStatusSecretsResourceVersion>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetPrimary")]
pub target_primary: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "targetPrimaryTimestamp"
)]
pub target_primary_timestamp: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timelineID")]
pub timeline_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub topology: Option<ClusterStatusTopology>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "unusablePVC")]
pub unusable_pvc: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "writeService")]
pub write_service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStatusCertificates {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientCASecret")]
pub client_ca_secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expirations: Option<BTreeMap<String, String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "replicationTLSSecret"
)]
pub replication_tls_secret: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "serverAltDNSNames"
)]
pub server_alt_dns_names: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serverCASecret")]
pub server_ca_secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serverTLSSecret")]
pub server_tls_secret: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct ClusterStatusConditions {
#[serde(rename = "lastTransitionTime")]
pub last_transition_time: String,
pub message: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "observedGeneration"
)]
pub observed_generation: Option<i64>,
pub reason: String,
pub status: ClusterStatusConditionsStatus,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ClusterStatusConditionsStatus {
True,
False,
Unknown,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStatusConfigMapResourceVersion {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metrics: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStatusInstancesReportedState {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "isPrimary")]
pub is_primary: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeLineID")]
pub time_line_id: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStatusManagedRolesStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "byStatus")]
pub by_status: Option<BTreeMap<String, Vec<String>>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "cannotReconcile")]
pub cannot_reconcile: Option<BTreeMap<String, Vec<String>>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordStatus")]
pub password_status: Option<BTreeMap<String, ClusterStatusManagedRolesStatusPasswordStatus>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStatusManagedRolesStatusPasswordStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")]
pub resource_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "transactionID")]
pub transaction_id: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStatusPoolerIntegrations {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "pgBouncerIntegration"
)]
pub pg_bouncer_integration: Option<ClusterStatusPoolerIntegrationsPgBouncerIntegration>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStatusPoolerIntegrationsPgBouncerIntegration {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secrets: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStatusSecretsResourceVersion {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "applicationSecretVersion"
)]
pub application_secret_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "barmanEndpointCA")]
pub barman_endpoint_ca: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caSecretVersion")]
pub ca_secret_version: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "clientCaSecretVersion"
)]
pub client_ca_secret_version: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "managedRoleSecretVersion"
)]
pub managed_role_secret_version: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metrics: Option<BTreeMap<String, String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "replicationSecretVersion"
)]
pub replication_secret_version: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "serverCaSecretVersion"
)]
pub server_ca_secret_version: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "serverSecretVersion"
)]
pub server_secret_version: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "superuserSecretVersion"
)]
pub superuser_secret_version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct ClusterStatusTopology {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub instances: Option<BTreeMap<String, ClusterStatusTopologyInstances>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "successfullyExtracted"
)]
pub successfully_extracted: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default)]
pub struct ClusterStatusTopologyInstances {}