use crate::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, JsonSchema)]
#[kube(
group = "postgresql.cnpg.io",
version = "v1",
kind = "Cluster",
plural = "clusters"
)]
#[kube(namespaced)]
#[kube(status = "ClusterStatus")]
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 = "enablePDB")]
pub enable_pdb: Option<bool>,
#[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 = "ephemeralVolumeSource"
)]
pub ephemeral_volume_source: Option<ClusterEphemeralVolumeSource>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "ephemeralVolumesSizeLimit"
)]
pub ephemeral_volumes_size_limit: Option<ClusterEphemeralVolumesSizeLimit>,
#[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 = "imageCatalogRef"
)]
pub image_catalog_ref: Option<ClusterImageCatalogRef>,
#[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 = "livenessProbeTimeout"
)]
pub liveness_probe_timeout: Option<i32>,
#[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")]
pub plugins: Option<Vec<ClusterPlugins>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "podSecurityContext"
)]
pub pod_security_context: Option<ClusterPodSecurityContext>,
#[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 = "priorityClassName"
)]
pub priority_class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub probes: Option<ClusterProbes>,
#[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 = "securityContext"
)]
pub security_context: Option<ClusterSecurityContext>,
#[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 = "smartShutdownTimeout"
)]
pub smart_shutdown_timeout: Option<i32>,
#[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")]
pub tablespaces: Option<Vec<ClusterTablespaces>>,
#[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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term: ClusterAffinityAdditionalPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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 = "matchLabelKeys")]
pub match_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")]
pub mismatch_label_keys: Option<Vec<String>>,
#[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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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 = "matchLabelKeys")]
pub match_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")]
pub mismatch_label_keys: Option<Vec<String>>,
#[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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term: ClusterAffinityAdditionalPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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 = "matchLabelKeys")]
pub match_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")]
pub mismatch_label_keys: Option<Vec<String>>,
#[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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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 = "matchLabelKeys")]
pub match_label_keys: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")]
pub mismatch_label_keys: Option<Vec<String>>,
#[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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution {
pub preference:
ClusterAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "nodeSelectorTerms")]
pub node_selector_terms: Vec<
ClusterAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms,
>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeSnapshot"
)]
pub volume_snapshot: Option<ClusterBackupVolumeSnapshot>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "useDefaultAzureCredentials"
)]
pub use_default_azure_credentials: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreAzureCredentialsConnectionString {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreAzureCredentialsStorageAccount {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreAzureCredentialsStorageKey {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreAzureCredentialsStorageSasToken {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreData {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "additionalCommandArgs"
)]
pub additional_command_args: Option<Vec<String>>,
#[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, JsonSchema)]
pub enum ClusterBackupBarmanObjectStoreDataCompression {
#[serde(rename = "bzip2")]
Bzip2,
#[serde(rename = "gzip")]
Gzip,
#[serde(rename = "snappy")]
Snappy,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterBackupBarmanObjectStoreDataEncryption {
#[serde(rename = "AES256")]
Aes256,
#[serde(rename = "aws:kms")]
AwsKms,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreEndpointCa {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreGoogleCredentialsApplicationCredentials {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreS3CredentialsAccessKeyId {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreS3CredentialsRegion {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreS3CredentialsSecretAccessKey {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreS3CredentialsSessionToken {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupBarmanObjectStoreWal {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "archiveAdditionalCommandArgs"
)]
pub archive_additional_command_args: Option<Vec<String>>,
#[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>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "restoreAdditionalCommandArgs"
)]
pub restore_additional_command_args: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterBackupBarmanObjectStoreWalCompression {
#[serde(rename = "bzip2")]
Bzip2,
#[serde(rename = "gzip")]
Gzip,
#[serde(rename = "lz4")]
Lz4,
#[serde(rename = "snappy")]
Snappy,
#[serde(rename = "xz")]
Xz,
#[serde(rename = "zstd")]
Zstd,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterBackupBarmanObjectStoreWalEncryption {
#[serde(rename = "AES256")]
Aes256,
#[serde(rename = "aws:kms")]
AwsKms,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterBackupTarget {
#[serde(rename = "primary")]
Primary,
#[serde(rename = "prefer-standby")]
PreferStandby,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupVolumeSnapshot {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "className")]
pub class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub online: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "onlineConfiguration"
)]
pub online_configuration: Option<ClusterBackupVolumeSnapshotOnlineConfiguration>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "snapshotOwnerReference"
)]
pub snapshot_owner_reference: Option<ClusterBackupVolumeSnapshotSnapshotOwnerReference>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "tablespaceClassName"
)]
pub tablespace_class_name: Option<BTreeMap<String, String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "walClassName"
)]
pub wal_class_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBackupVolumeSnapshotOnlineConfiguration {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "immediateCheckpoint"
)]
pub immediate_checkpoint: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "waitForArchive"
)]
pub wait_for_archive: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterBackupVolumeSnapshotSnapshotOwnerReference {
#[serde(rename = "none")]
None,
#[serde(rename = "cluster")]
Cluster,
#[serde(rename = "backup")]
Backup,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterBootstrapInitdb {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "builtinLocale"
)]
pub builtin_locale: Option<String>,
#[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", rename = "icuLocale")]
pub icu_locale: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "icuRules")]
pub icu_rules: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub import: Option<ClusterBootstrapInitdbImport>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub locale: Option<String>,
#[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",
rename = "localeProvider"
)]
pub locale_provider: 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 = "postInitSQLRefs"
)]
pub post_init_sql_refs: Option<ClusterBootstrapInitdbPostInitSqlRefs>,
#[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",
rename = "postInitTemplateSQLRefs"
)]
pub post_init_template_sql_refs: Option<ClusterBootstrapInitdbPostInitTemplateSqlRefs>,
#[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, JsonSchema)]
pub struct ClusterBootstrapInitdbImport {
pub databases: Vec<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "pgDumpExtraOptions"
)]
pub pg_dump_extra_options: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "pgRestoreDataOptions"
)]
pub pg_restore_data_options: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "pgRestoreExtraOptions"
)]
pub pg_restore_extra_options: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "pgRestorePostdataOptions"
)]
pub pg_restore_postdata_options: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "pgRestorePredataOptions"
)]
pub pg_restore_predata_options: Option<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, JsonSchema)]
pub struct ClusterBootstrapInitdbImportSource {
#[serde(rename = "externalCluster")]
pub external_cluster: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterBootstrapInitdbImportType {
#[serde(rename = "microservice")]
Microservice,
#[serde(rename = "monolith")]
Monolith,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterBootstrapInitdbPostInitApplicationSqlRefsConfigMapRefs {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBootstrapInitdbPostInitApplicationSqlRefsSecretRefs {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBootstrapInitdbPostInitSqlRefs {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "configMapRefs"
)]
pub config_map_refs: Option<Vec<ClusterBootstrapInitdbPostInitSqlRefsConfigMapRefs>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "secretRefs"
)]
pub secret_refs: Option<Vec<ClusterBootstrapInitdbPostInitSqlRefsSecretRefs>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBootstrapInitdbPostInitSqlRefsConfigMapRefs {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBootstrapInitdbPostInitSqlRefsSecretRefs {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBootstrapInitdbPostInitTemplateSqlRefs {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "configMapRefs"
)]
pub config_map_refs: Option<Vec<ClusterBootstrapInitdbPostInitTemplateSqlRefsConfigMapRefs>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "secretRefs"
)]
pub secret_refs: Option<Vec<ClusterBootstrapInitdbPostInitTemplateSqlRefsSecretRefs>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBootstrapInitdbPostInitTemplateSqlRefsConfigMapRefs {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBootstrapInitdbPostInitTemplateSqlRefsSecretRefs {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBootstrapInitdbSecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterBootstrapPgBasebackupSecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterBootstrapRecoveryBackupEndpointCa {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterBootstrapRecoverySecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterBootstrapRecoveryVolumeSnapshots {
pub storage: ClusterBootstrapRecoveryVolumeSnapshotsStorage,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "tablespaceStorage"
)]
pub tablespace_storage:
Option<BTreeMap<String, ClusterBootstrapRecoveryVolumeSnapshotsTablespaceStorage>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "walStorage"
)]
pub wal_storage: Option<ClusterBootstrapRecoveryVolumeSnapshotsWalStorage>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterBootstrapRecoveryVolumeSnapshotsTablespaceStorage {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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 = "fileKeyRef"
)]
pub file_key_ref: Option<ClusterEnvValueFromFileKeyRef>,
#[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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterEnvValueFromFileKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
pub path: String,
#[serde(rename = "volumeName")]
pub volume_name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterEphemeralVolumeSource {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeClaimTemplate"
)]
pub volume_claim_template: Option<ClusterEphemeralVolumeSourceVolumeClaimTemplate>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterEphemeralVolumeSourceVolumeClaimTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<ClusterEphemeralVolumeSourceVolumeClaimTemplateMetadata>,
pub spec: ClusterEphemeralVolumeSourceVolumeClaimTemplateSpec,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterEphemeralVolumeSourceVolumeClaimTemplateMetadata {}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterEphemeralVolumeSourceVolumeClaimTemplateSpec {
#[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<ClusterEphemeralVolumeSourceVolumeClaimTemplateSpecDataSource>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "dataSourceRef"
)]
pub data_source_ref: Option<ClusterEphemeralVolumeSourceVolumeClaimTemplateSpecDataSourceRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<ClusterEphemeralVolumeSourceVolumeClaimTemplateSpecResources>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<ClusterEphemeralVolumeSourceVolumeClaimTemplateSpecSelector>,
#[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, JsonSchema)]
pub struct ClusterEphemeralVolumeSourceVolumeClaimTemplateSpecDataSource {
#[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, JsonSchema)]
pub struct ClusterEphemeralVolumeSourceVolumeClaimTemplateSpecDataSourceRef {
#[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, JsonSchema)]
pub struct ClusterEphemeralVolumeSourceVolumeClaimTemplateSpecResources {
#[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, JsonSchema)]
pub struct ClusterEphemeralVolumeSourceVolumeClaimTemplateSpecSelector {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchExpressions"
)]
pub match_expressions:
Option<Vec<ClusterEphemeralVolumeSourceVolumeClaimTemplateSpecSelectorMatchExpressions>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchLabels"
)]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterEphemeralVolumeSourceVolumeClaimTemplateSpecSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterEphemeralVolumesSizeLimit {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shm: Option<IntOrString>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "temporaryData"
)]
pub temporary_data: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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")]
pub plugin: Option<ClusterExternalClustersPlugin>,
#[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, JsonSchema)]
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, JsonSchema)]
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>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "useDefaultAzureCredentials"
)]
pub use_default_azure_credentials: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreAzureCredentialsConnectionString {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreAzureCredentialsStorageAccount {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreAzureCredentialsStorageKey {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreAzureCredentialsStorageSasToken {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreData {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "additionalCommandArgs"
)]
pub additional_command_args: Option<Vec<String>>,
#[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, JsonSchema)]
pub enum ClusterExternalClustersBarmanObjectStoreDataCompression {
#[serde(rename = "bzip2")]
Bzip2,
#[serde(rename = "gzip")]
Gzip,
#[serde(rename = "snappy")]
Snappy,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterExternalClustersBarmanObjectStoreDataEncryption {
#[serde(rename = "AES256")]
Aes256,
#[serde(rename = "aws:kms")]
AwsKms,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreEndpointCa {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreGoogleCredentialsApplicationCredentials {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreS3CredentialsAccessKeyId {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreS3CredentialsRegion {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreS3CredentialsSecretAccessKey {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreS3CredentialsSessionToken {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterExternalClustersBarmanObjectStoreWal {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "archiveAdditionalCommandArgs"
)]
pub archive_additional_command_args: Option<Vec<String>>,
#[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>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "restoreAdditionalCommandArgs"
)]
pub restore_additional_command_args: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterExternalClustersBarmanObjectStoreWalCompression {
#[serde(rename = "bzip2")]
Bzip2,
#[serde(rename = "gzip")]
Gzip,
#[serde(rename = "lz4")]
Lz4,
#[serde(rename = "snappy")]
Snappy,
#[serde(rename = "xz")]
Xz,
#[serde(rename = "zstd")]
Zstd,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterExternalClustersBarmanObjectStoreWalEncryption {
#[serde(rename = "AES256")]
Aes256,
#[serde(rename = "aws:kms")]
AwsKms,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterExternalClustersPlugin {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "isWALArchiver"
)]
pub is_wal_archiver: Option<bool>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameters: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterImageCatalogRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub major: i64,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterImagePullSecrets {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterManaged {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub roles: Option<Vec<ClusterManagedRoles>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub services: Option<ClusterManagedServices>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub enum ClusterManagedRolesEnsure {
#[serde(rename = "present")]
Present,
#[serde(rename = "absent")]
Absent,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterManagedRolesPasswordSecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterManagedServices {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub additional: Option<Vec<ClusterManagedServicesAdditional>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "disabledDefaultServices"
)]
pub disabled_default_services: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterManagedServicesAdditional {
#[serde(rename = "selectorType")]
pub selector_type: ClusterManagedServicesAdditionalSelectorType,
#[serde(rename = "serviceTemplate")]
pub service_template: ClusterManagedServicesAdditionalServiceTemplate,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "updateStrategy"
)]
pub update_strategy: Option<ClusterManagedServicesAdditionalUpdateStrategy>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterManagedServicesAdditionalSelectorType {
#[serde(rename = "rw")]
Rw,
#[serde(rename = "r")]
R,
#[serde(rename = "ro")]
Ro,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterManagedServicesAdditionalServiceTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<ClusterManagedServicesAdditionalServiceTemplateMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spec: Option<ClusterManagedServicesAdditionalServiceTemplateSpec>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterManagedServicesAdditionalServiceTemplateMetadata {
#[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>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterManagedServicesAdditionalServiceTemplateSpec {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "allocateLoadBalancerNodePorts"
)]
pub allocate_load_balancer_node_ports: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterIP")]
pub cluster_ip: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "clusterIPs"
)]
pub cluster_i_ps: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "externalIPs"
)]
pub external_i_ps: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "externalName"
)]
pub external_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "externalTrafficPolicy"
)]
pub external_traffic_policy: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "healthCheckNodePort"
)]
pub health_check_node_port: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "internalTrafficPolicy"
)]
pub internal_traffic_policy: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "ipFamilies"
)]
pub ip_families: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "ipFamilyPolicy"
)]
pub ip_family_policy: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "loadBalancerClass"
)]
pub load_balancer_class: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "loadBalancerIP"
)]
pub load_balancer_ip: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "loadBalancerSourceRanges"
)]
pub load_balancer_source_ranges: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ports: Option<Vec<ClusterManagedServicesAdditionalServiceTemplateSpecPorts>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "publishNotReadyAddresses"
)]
pub publish_not_ready_addresses: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<BTreeMap<String, String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "sessionAffinity"
)]
pub session_affinity: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "sessionAffinityConfig"
)]
pub session_affinity_config:
Option<ClusterManagedServicesAdditionalServiceTemplateSpecSessionAffinityConfig>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "trafficDistribution"
)]
pub traffic_distribution: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterManagedServicesAdditionalServiceTemplateSpecPorts {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "appProtocol"
)]
pub app_protocol: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePort")]
pub node_port: Option<i32>,
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protocol: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "targetPort"
)]
pub target_port: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterManagedServicesAdditionalServiceTemplateSpecSessionAffinityConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientIP")]
pub client_ip:
Option<ClusterManagedServicesAdditionalServiceTemplateSpecSessionAffinityConfigClientIp>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterManagedServicesAdditionalServiceTemplateSpecSessionAffinityConfigClientIp {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "timeoutSeconds"
)]
pub timeout_seconds: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterManagedServicesAdditionalUpdateStrategy {
#[serde(rename = "patch")]
Patch,
#[serde(rename = "replace")]
Replace,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "metricsQueriesTTL"
)]
pub metrics_queries_ttl: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "podMonitorMetricRelabelings"
)]
pub pod_monitor_metric_relabelings: Option<Vec<ClusterMonitoringPodMonitorMetricRelabelings>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "podMonitorRelabelings"
)]
pub pod_monitor_relabelings: Option<Vec<ClusterMonitoringPodMonitorRelabelings>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tls: Option<ClusterMonitoringTls>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterMonitoringCustomQueriesConfigMap {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterMonitoringCustomQueriesSecret {
pub key: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterMonitoringPodMonitorMetricRelabelings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub action: Option<ClusterMonitoringPodMonitorMetricRelabelingsAction>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modulus: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub regex: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replacement: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub separator: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "sourceLabels"
)]
pub source_labels: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "targetLabel"
)]
pub target_label: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterMonitoringPodMonitorMetricRelabelingsAction {
#[serde(rename = "replace")]
Replace,
#[serde(rename = "Replace")]
ReplaceX,
#[serde(rename = "keep")]
Keep,
#[serde(rename = "Keep")]
KeepX,
#[serde(rename = "drop")]
Drop,
#[serde(rename = "Drop")]
DropX,
#[serde(rename = "hashmod")]
Hashmod,
HashMod,
#[serde(rename = "labelmap")]
Labelmap,
LabelMap,
#[serde(rename = "labeldrop")]
Labeldrop,
LabelDrop,
#[serde(rename = "labelkeep")]
Labelkeep,
LabelKeep,
#[serde(rename = "lowercase")]
Lowercase,
#[serde(rename = "Lowercase")]
LowercaseX,
#[serde(rename = "uppercase")]
Uppercase,
#[serde(rename = "Uppercase")]
UppercaseX,
#[serde(rename = "keepequal")]
Keepequal,
KeepEqual,
#[serde(rename = "dropequal")]
Dropequal,
DropEqual,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterMonitoringPodMonitorRelabelings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub action: Option<ClusterMonitoringPodMonitorRelabelingsAction>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modulus: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub regex: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replacement: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub separator: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "sourceLabels"
)]
pub source_labels: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "targetLabel"
)]
pub target_label: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterMonitoringPodMonitorRelabelingsAction {
#[serde(rename = "replace")]
Replace,
#[serde(rename = "Replace")]
ReplaceX,
#[serde(rename = "keep")]
Keep,
#[serde(rename = "Keep")]
KeepX,
#[serde(rename = "drop")]
Drop,
#[serde(rename = "Drop")]
DropX,
#[serde(rename = "hashmod")]
Hashmod,
HashMod,
#[serde(rename = "labelmap")]
Labelmap,
LabelMap,
#[serde(rename = "labeldrop")]
Labeldrop,
LabelDrop,
#[serde(rename = "labelkeep")]
Labelkeep,
LabelKeep,
#[serde(rename = "lowercase")]
Lowercase,
#[serde(rename = "Lowercase")]
LowercaseX,
#[serde(rename = "uppercase")]
Uppercase,
#[serde(rename = "Uppercase")]
UppercaseX,
#[serde(rename = "keepequal")]
Keepequal,
KeepEqual,
#[serde(rename = "dropequal")]
Dropequal,
DropEqual,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterMonitoringTls {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterNodeMaintenanceWindow {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "inProgress"
)]
pub in_progress: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "reusePVC")]
pub reuse_pvc: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterPlugins {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "isWALArchiver"
)]
pub is_wal_archiver: Option<bool>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameters: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterPodSecurityContext {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "appArmorProfile"
)]
pub app_armor_profile: Option<ClusterPodSecurityContextAppArmorProfile>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")]
pub fs_group: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "fsGroupChangePolicy"
)]
pub fs_group_change_policy: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "runAsGroup"
)]
pub run_as_group: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "runAsNonRoot"
)]
pub run_as_non_root: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")]
pub run_as_user: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "seLinuxChangePolicy"
)]
pub se_linux_change_policy: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "seLinuxOptions"
)]
pub se_linux_options: Option<ClusterPodSecurityContextSeLinuxOptions>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "seccompProfile"
)]
pub seccomp_profile: Option<ClusterPodSecurityContextSeccompProfile>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "supplementalGroups"
)]
pub supplemental_groups: Option<Vec<i64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "supplementalGroupsPolicy"
)]
pub supplemental_groups_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sysctls: Option<Vec<ClusterPodSecurityContextSysctls>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "windowsOptions"
)]
pub windows_options: Option<ClusterPodSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterPodSecurityContextAppArmorProfile {
#[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, JsonSchema)]
pub struct ClusterPodSecurityContextSeLinuxOptions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterPodSecurityContextSeccompProfile {
#[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, JsonSchema)]
pub struct ClusterPodSecurityContextSysctls {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterPodSecurityContextWindowsOptions {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "gmsaCredentialSpec"
)]
pub gmsa_credential_spec: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "gmsaCredentialSpecName"
)]
pub gmsa_credential_spec_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "hostProcess"
)]
pub host_process: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "runAsUserName"
)]
pub run_as_user_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterPostgresql {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "enableAlterSystem"
)]
pub enable_alter_system: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub extensions: Option<Vec<ClusterPostgresqlExtensions>>,
#[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")]
pub pg_ident: 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>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub synchronous: Option<ClusterPostgresqlSynchronous>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterPostgresqlExtensions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dynamic_library_path: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub extension_control_path: Option<Vec<String>>,
pub image: ClusterPostgresqlExtensionsImage,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ld_library_path: Option<Vec<String>>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterPostgresqlExtensionsImage {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "pullPolicy"
)]
pub pull_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reference: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub enum ClusterPostgresqlLdapScheme {
#[serde(rename = "ldap")]
Ldap,
#[serde(rename = "ldaps")]
Ldaps,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterPostgresqlSynchronous {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "dataDurability"
)]
pub data_durability: Option<ClusterPostgresqlSynchronousDataDurability>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failoverQuorum"
)]
pub failover_quorum: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "maxStandbyNamesFromCluster"
)]
pub max_standby_names_from_cluster: Option<i64>,
pub method: ClusterPostgresqlSynchronousMethod,
pub number: i64,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "standbyNamesPost"
)]
pub standby_names_post: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "standbyNamesPre"
)]
pub standby_names_pre: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterPostgresqlSynchronousDataDurability {
#[serde(rename = "required")]
Required,
#[serde(rename = "preferred")]
Preferred,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterPostgresqlSynchronousMethod {
#[serde(rename = "any")]
Any,
#[serde(rename = "first")]
First,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterPrimaryUpdateMethod {
#[serde(rename = "switchover")]
Switchover,
#[serde(rename = "restart")]
Restart,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterPrimaryUpdateStrategy {
#[serde(rename = "unsupervised")]
Unsupervised,
#[serde(rename = "supervised")]
Supervised,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterProbes {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub liveness: Option<ClusterProbesLiveness>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub readiness: Option<ClusterProbesReadiness>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub startup: Option<ClusterProbesStartup>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterProbesLiveness {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "initialDelaySeconds"
)]
pub initial_delay_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "isolationCheck"
)]
pub isolation_check: Option<ClusterProbesLivenessIsolationCheck>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "periodSeconds"
)]
pub period_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "successThreshold"
)]
pub success_threshold: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "terminationGracePeriodSeconds"
)]
pub termination_grace_period_seconds: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "timeoutSeconds"
)]
pub timeout_seconds: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterProbesLivenessIsolationCheck {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "connectionTimeout"
)]
pub connection_timeout: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "requestTimeout"
)]
pub request_timeout: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterProbesReadiness {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "initialDelaySeconds"
)]
pub initial_delay_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "maximumLag"
)]
pub maximum_lag: Option<IntOrString>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "periodSeconds"
)]
pub period_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "successThreshold"
)]
pub success_threshold: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "terminationGracePeriodSeconds"
)]
pub termination_grace_period_seconds: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "timeoutSeconds"
)]
pub timeout_seconds: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<ClusterProbesReadinessType>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterProbesReadinessType {
#[serde(rename = "pg_isready")]
PgIsready,
#[serde(rename = "streaming")]
Streaming,
#[serde(rename = "query")]
Query,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterProbesStartup {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "initialDelaySeconds"
)]
pub initial_delay_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "maximumLag"
)]
pub maximum_lag: Option<IntOrString>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "periodSeconds"
)]
pub period_seconds: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "successThreshold"
)]
pub success_threshold: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "terminationGracePeriodSeconds"
)]
pub termination_grace_period_seconds: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "timeoutSeconds"
)]
pub timeout_seconds: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<ClusterProbesStartupType>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum ClusterProbesStartupType {
#[serde(rename = "pg_isready")]
PgIsready,
#[serde(rename = "streaming")]
Streaming,
#[serde(rename = "query")]
Query,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterProjectedVolumeTemplateSources {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "clusterTrustBundle"
)]
pub cluster_trust_bundle: Option<ClusterProjectedVolumeTemplateSourcesClusterTrustBundle>,
#[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",
rename = "podCertificate"
)]
pub pod_certificate: Option<ClusterProjectedVolumeTemplateSourcesPodCertificate>,
#[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, JsonSchema)]
pub struct ClusterProjectedVolumeTemplateSourcesClusterTrustBundle {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "labelSelector"
)]
pub label_selector:
Option<ClusterProjectedVolumeTemplateSourcesClusterTrustBundleLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
pub path: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "signerName"
)]
pub signer_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterProjectedVolumeTemplateSourcesClusterTrustBundleLabelSelector {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchExpressions"
)]
pub match_expressions: Option<
Vec<ClusterProjectedVolumeTemplateSourcesClusterTrustBundleLabelSelectorMatchExpressions>,
>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchLabels"
)]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterProjectedVolumeTemplateSourcesClusterTrustBundleLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterProjectedVolumeTemplateSourcesDownwardApi {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<ClusterProjectedVolumeTemplateSourcesDownwardApiItems>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterProjectedVolumeTemplateSourcesPodCertificate {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "certificateChainPath"
)]
pub certificate_chain_path: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "credentialBundlePath"
)]
pub credential_bundle_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "keyPath")]
pub key_path: Option<String>,
#[serde(rename = "keyType")]
pub key_type: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "maxExpirationSeconds"
)]
pub max_expiration_seconds: Option<i32>,
#[serde(rename = "signerName")]
pub signer_name: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "userAnnotations"
)]
pub user_annotations: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterReplica {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "minApplyDelay"
)]
pub min_apply_delay: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub primary: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "promotionToken"
)]
pub promotion_token: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "self")]
pub r#_self: Option<String>,
pub source: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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 = "synchronizeReplicas"
)]
pub synchronize_replicas: Option<ClusterReplicationSlotsSynchronizeReplicas>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "updateInterval"
)]
pub update_interval: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "synchronizeLogicalDecoding"
)]
pub synchronize_logical_decoding: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterReplicationSlotsSynchronizeReplicas {
pub enabled: bool,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "excludePatterns"
)]
pub exclude_patterns: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, IntOrString>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterResourcesClaims {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub request: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterSecurityContext {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "allowPrivilegeEscalation"
)]
pub allow_privilege_escalation: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "appArmorProfile"
)]
pub app_armor_profile: Option<ClusterSecurityContextAppArmorProfile>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<ClusterSecurityContextCapabilities>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub privileged: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")]
pub proc_mount: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readOnlyRootFilesystem"
)]
pub read_only_root_filesystem: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "runAsGroup"
)]
pub run_as_group: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "runAsNonRoot"
)]
pub run_as_non_root: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")]
pub run_as_user: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "seLinuxOptions"
)]
pub se_linux_options: Option<ClusterSecurityContextSeLinuxOptions>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "seccompProfile"
)]
pub seccomp_profile: Option<ClusterSecurityContextSeccompProfile>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "windowsOptions"
)]
pub windows_options: Option<ClusterSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterSecurityContextAppArmorProfile {
#[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, JsonSchema)]
pub struct ClusterSecurityContextCapabilities {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub add: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub drop: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterSecurityContextSeLinuxOptions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterSecurityContextSeccompProfile {
#[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, JsonSchema)]
pub struct ClusterSecurityContextWindowsOptions {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "gmsaCredentialSpec"
)]
pub gmsa_credential_spec: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "gmsaCredentialSpecName"
)]
pub gmsa_credential_spec_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "hostProcess"
)]
pub host_process: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "runAsUserName"
)]
pub run_as_user_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterServiceAccountTemplate {
pub metadata: ClusterServiceAccountTemplateMetadata,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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 = "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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterStoragePvcTemplateResources {
#[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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterSuperuserSecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterTablespaces {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner: Option<ClusterTablespacesOwner>,
pub storage: ClusterTablespacesStorage,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub temporary: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterTablespacesOwner {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterTablespacesStorage {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "pvcTemplate"
)]
pub pvc_template: Option<ClusterTablespacesStoragePvcTemplate>,
#[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, JsonSchema)]
pub struct ClusterTablespacesStoragePvcTemplate {
#[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<ClusterTablespacesStoragePvcTemplateDataSource>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "dataSourceRef"
)]
pub data_source_ref: Option<ClusterTablespacesStoragePvcTemplateDataSourceRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<ClusterTablespacesStoragePvcTemplateResources>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<ClusterTablespacesStoragePvcTemplateSelector>,
#[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, JsonSchema)]
pub struct ClusterTablespacesStoragePvcTemplateDataSource {
#[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, JsonSchema)]
pub struct ClusterTablespacesStoragePvcTemplateDataSourceRef {
#[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, JsonSchema)]
pub struct ClusterTablespacesStoragePvcTemplateResources {
#[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, JsonSchema)]
pub struct ClusterTablespacesStoragePvcTemplateSelector {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchExpressions"
)]
pub match_expressions:
Option<Vec<ClusterTablespacesStoragePvcTemplateSelectorMatchExpressions>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchLabels"
)]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterTablespacesStoragePvcTemplateSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
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 = "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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterWalStoragePvcTemplateResources {
#[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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterStatus {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "availableArchitectures"
)]
pub available_architectures: Option<Vec<ClusterStatusAvailableArchitectures>>,
#[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<Condition>>,
#[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 = "demotionToken"
)]
pub demotion_token: Option<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 = "firstRecoverabilityPointByMethod"
)]
pub first_recoverability_point_by_method: Option<BTreeMap<String, 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")]
pub image: Option<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 = "lastPromotionToken"
)]
pub last_promotion_token: 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 = "lastSuccessfulBackupByMethod"
)]
pub last_successful_backup_by_method: Option<BTreeMap<String, 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",
rename = "pgDataImageInfo"
)]
pub pg_data_image_info: Option<ClusterStatusPgDataImageInfo>,
#[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 = "pluginStatus"
)]
pub plugin_status: Option<Vec<ClusterStatusPluginStatus>>,
#[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 = "switchReplicaClusterStatus"
)]
pub switch_replica_cluster_status: Option<ClusterStatusSwitchReplicaClusterStatus>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "systemID")]
pub system_id: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "tablespacesStatus"
)]
pub tablespaces_status: Option<Vec<ClusterStatusTablespacesStatus>>,
#[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, JsonSchema)]
pub struct ClusterStatusAvailableArchitectures {
#[serde(rename = "goArch")]
pub go_arch: String,
pub hash: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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, JsonSchema)]
pub struct ClusterStatusConfigMapResourceVersion {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metrics: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterStatusInstancesReportedState {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ip: Option<String>,
#[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, JsonSchema)]
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, JsonSchema)]
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, JsonSchema)]
pub struct ClusterStatusPgDataImageInfo {
pub image: String,
#[serde(rename = "majorVersion")]
pub major_version: i64,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterStatusPluginStatus {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "backupCapabilities"
)]
pub backup_capabilities: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<Vec<String>>,
pub name: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "operatorCapabilities"
)]
pub operator_capabilities: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "restoreJobHookCapabilities"
)]
pub restore_job_hook_capabilities: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
pub version: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "walCapabilities"
)]
pub wal_capabilities: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterStatusPoolerIntegrations {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "pgBouncerIntegration"
)]
pub pg_bouncer_integration: Option<ClusterStatusPoolerIntegrationsPgBouncerIntegration>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterStatusPoolerIntegrationsPgBouncerIntegration {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secrets: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
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 = "externalClusterSecretVersion"
)]
pub external_cluster_secret_version: Option<BTreeMap<String, 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, JsonSchema)]
pub struct ClusterStatusSwitchReplicaClusterStatus {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "inProgress"
)]
pub in_progress: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterStatusTablespacesStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
pub state: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct ClusterStatusTopology {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub instances: Option<BTreeMap<String, BTreeMap<String, String>>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodesUsed")]
pub nodes_used: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "successfullyExtracted"
)]
pub successfully_extracted: Option<bool>,
}