use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
use kube::CustomResource;
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use std::collections::BTreeMap;
use utoipa::ToSchema;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, JsonSchema)]
#[kube(
group = "postgresql.cnpg.io",
version = "v1",
kind = "Pooler",
plural = "poolers"
)]
#[kube(namespaced)]
#[kube(status = "PoolerStatus")]
#[kube(schema = "disabled")]
pub struct PoolerSpec {
pub cluster: PoolerCluster,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "deploymentStrategy"
)]
pub deployment_strategy: Option<PoolerDeploymentStrategy>,
pub instances: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub monitoring: Option<PoolerMonitoring>,
pub pgbouncer: PoolerPgbouncer,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub template: Option<PoolerTemplate>,
#[serde(rename = "type")]
pub r#type: PoolerType,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerCluster {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerDeploymentStrategy {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "rollingUpdate"
)]
pub rolling_update: Option<PoolerDeploymentStrategyRollingUpdate>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerDeploymentStrategyRollingUpdate {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxSurge")]
pub max_surge: Option<IntOrString>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "maxUnavailable"
)]
pub max_unavailable: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerMonitoring {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "enablePodMonitor"
)]
pub enable_pod_monitor: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerPgbouncer {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "authQuery")]
pub auth_query: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "authQuerySecret"
)]
pub auth_query_secret: Option<PoolerPgbouncerAuthQuerySecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parameters: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub paused: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pg_hba: Option<Vec<String>>,
#[serde(rename = "poolMode")]
pub pool_mode: PoolerPgbouncerPoolMode,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerPgbouncerAuthQuerySecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, ToSchema, Default)]
pub enum PoolerPgbouncerPoolMode {
#[serde(rename = "session")]
Session,
#[default]
#[serde(rename = "transaction")]
Transaction,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<PoolerTemplateMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spec: Option<PoolerTemplateSpec>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateMetadata {
#[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, Default)]
pub struct PoolerTemplateSpec {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "activeDeadlineSeconds"
)]
pub active_deadline_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub affinity: Option<PoolerTemplateSpecAffinity>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "automountServiceAccountToken"
)]
pub automount_service_account_token: Option<bool>,
pub containers: Vec<PoolerTemplateSpecContainers>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dnsConfig")]
pub dns_config: Option<PoolerTemplateSpecDnsConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dnsPolicy")]
pub dns_policy: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "enableServiceLinks"
)]
pub enable_service_links: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "ephemeralContainers"
)]
pub ephemeral_containers: Option<Vec<PoolerTemplateSpecEphemeralContainers>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "hostAliases"
)]
pub host_aliases: Option<Vec<PoolerTemplateSpecHostAliases>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostIPC")]
pub host_ipc: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "hostNetwork"
)]
pub host_network: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPID")]
pub host_pid: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostUsers")]
pub host_users: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hostname: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "imagePullSecrets"
)]
pub image_pull_secrets: Option<Vec<PoolerTemplateSpecImagePullSecrets>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "initContainers"
)]
pub init_containers: Option<Vec<PoolerTemplateSpecInitContainers>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeName")]
pub node_name: Option<String>,
#[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")]
pub os: Option<PoolerTemplateSpecOs>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub overhead: Option<BTreeMap<String, IntOrString>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "preemptionPolicy"
)]
pub preemption_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub priority: Option<i32>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "priorityClassName"
)]
pub priority_class_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readinessGates"
)]
pub readiness_gates: Option<Vec<PoolerTemplateSpecReadinessGates>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resourceClaims"
)]
pub resource_claims: Option<Vec<PoolerTemplateSpecResourceClaims>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "restartPolicy"
)]
pub restart_policy: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "runtimeClassName"
)]
pub runtime_class_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "schedulerName"
)]
pub scheduler_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "schedulingGates"
)]
pub scheduling_gates: Option<Vec<PoolerTemplateSpecSchedulingGates>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "securityContext"
)]
pub security_context: Option<PoolerTemplateSpecSecurityContext>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "serviceAccount"
)]
pub service_account: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "serviceAccountName"
)]
pub service_account_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "setHostnameAsFQDN"
)]
pub set_hostname_as_fqdn: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "shareProcessNamespace"
)]
pub share_process_namespace: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subdomain: Option<String>,
#[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")]
pub tolerations: Option<Vec<PoolerTemplateSpecTolerations>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "topologySpreadConstraints"
)]
pub topology_spread_constraints: Option<Vec<PoolerTemplateSpecTopologySpreadConstraints>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub volumes: Option<Vec<PoolerTemplateSpecVolumes>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodeAffinity"
)]
pub node_affinity: Option<PoolerTemplateSpecAffinityNodeAffinity>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "podAffinity"
)]
pub pod_affinity: Option<PoolerTemplateSpecAffinityPodAffinity>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "podAntiAffinity"
)]
pub pod_anti_affinity: Option<PoolerTemplateSpecAffinityPodAntiAffinity>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecAffinityNodeAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "preferredDuringSchedulingIgnoredDuringExecution"
)]
pub preferred_during_scheduling_ignored_during_execution: Option<
Vec<PoolerTemplateSpecAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution>,
>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "requiredDuringSchedulingIgnoredDuringExecution"
)]
pub required_during_scheduling_ignored_during_execution: Option<
PoolerTemplateSpecAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution,
>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution {
pub preference:
PoolerTemplateSpecAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PoolerTemplateSpecAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")]
pub match_fields: Option<Vec<PoolerTemplateSpecAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions
{
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 PoolerTemplateSpecAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields
{
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 PoolerTemplateSpecAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "nodeSelectorTerms")]
pub node_selector_terms: Vec<
PoolerTemplateSpecAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms,
>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PoolerTemplateSpecAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")]
pub match_fields: Option<Vec<PoolerTemplateSpecAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions
{
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 PoolerTemplateSpecAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields
{
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 PoolerTemplateSpecAffinityPodAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "preferredDuringSchedulingIgnoredDuringExecution"
)]
pub preferred_during_scheduling_ignored_during_execution: Option<
Vec<PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecution>,
>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "requiredDuringSchedulingIgnoredDuringExecution"
)]
pub required_during_scheduling_ignored_during_execution: Option<
Vec<PoolerTemplateSpecAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution>,
>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term:
PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector>,
#[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 PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions>>,
#[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 PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions
{
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 PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions>>,
#[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 PoolerTemplateSpecAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions
{
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 PoolerTemplateSpecAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<
PoolerTemplateSpecAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector,
>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "namespaceSelector"
)]
pub namespace_selector: Option<
PoolerTemplateSpecAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector,
>,
#[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 PoolerTemplateSpecAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PoolerTemplateSpecAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions>>,
#[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 PoolerTemplateSpecAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions
{
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 PoolerTemplateSpecAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PoolerTemplateSpecAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions>>,
#[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 PoolerTemplateSpecAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions
{
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 PoolerTemplateSpecAffinityPodAntiAffinity {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "preferredDuringSchedulingIgnoredDuringExecution"
)]
pub preferred_during_scheduling_ignored_during_execution:
Option<Vec<PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "requiredDuringSchedulingIgnoredDuringExecution"
)]
pub required_during_scheduling_ignored_during_execution:
Option<Vec<PoolerTemplateSpecAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term: PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector>,
#[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 PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions>>,
#[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 PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions
{
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 PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions>>,
#[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 PoolerTemplateSpecAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions
{
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 PoolerTemplateSpecAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<PoolerTemplateSpecAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<PoolerTemplateSpecAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector>,
#[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 PoolerTemplateSpecAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PoolerTemplateSpecAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions>>,
#[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 PoolerTemplateSpecAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions
{
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 PoolerTemplateSpecAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PoolerTemplateSpecAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions>>,
#[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 PoolerTemplateSpecAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions
{
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, Default)]
pub struct PoolerTemplateSpecContainers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub args: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<Vec<PoolerTemplateSpecContainersEnv>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")]
pub env_from: Option<Vec<PoolerTemplateSpecContainersEnvFrom>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub image: 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")]
pub lifecycle: Option<PoolerTemplateSpecContainersLifecycle>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "livenessProbe"
)]
pub liveness_probe: Option<PoolerTemplateSpecContainersLivenessProbe>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ports: Option<Vec<PoolerTemplateSpecContainersPorts>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readinessProbe"
)]
pub readiness_probe: Option<PoolerTemplateSpecContainersReadinessProbe>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resizePolicy"
)]
pub resize_policy: Option<Vec<PoolerTemplateSpecContainersResizePolicy>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<PoolerTemplateSpecContainersResources>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "securityContext"
)]
pub security_context: Option<PoolerTemplateSpecContainersSecurityContext>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "startupProbe"
)]
pub startup_probe: Option<PoolerTemplateSpecContainersStartupProbe>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stdin: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "stdinOnce")]
pub stdin_once: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "terminationMessagePath"
)]
pub termination_message_path: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "terminationMessagePolicy"
)]
pub termination_message_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tty: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeDevices"
)]
pub volume_devices: Option<Vec<PoolerTemplateSpecContainersVolumeDevices>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeMounts"
)]
pub volume_mounts: Option<Vec<PoolerTemplateSpecContainersVolumeMounts>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "workingDir"
)]
pub working_dir: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersEnv {
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<PoolerTemplateSpecContainersEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersEnvValueFrom {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "configMapKeyRef"
)]
pub config_map_key_ref: Option<PoolerTemplateSpecContainersEnvValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<PoolerTemplateSpecContainersEnvValueFromFieldRef>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resourceFieldRef"
)]
pub resource_field_ref: Option<PoolerTemplateSpecContainersEnvValueFromResourceFieldRef>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "secretKeyRef"
)]
pub secret_key_ref: Option<PoolerTemplateSpecContainersEnvValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersEnvValueFromConfigMapKeyRef {
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 PoolerTemplateSpecContainersEnvValueFromFieldRef {
#[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 PoolerTemplateSpecContainersEnvValueFromResourceFieldRef {
#[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 PoolerTemplateSpecContainersEnvValueFromSecretKeyRef {
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 PoolerTemplateSpecContainersEnvFrom {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "configMapRef"
)]
pub config_map_ref: Option<PoolerTemplateSpecContainersEnvFromConfigMapRef>,
#[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<PoolerTemplateSpecContainersEnvFromSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersEnvFromConfigMapRef {
#[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 PoolerTemplateSpecContainersEnvFromSecretRef {
#[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 PoolerTemplateSpecContainersLifecycle {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "postStart")]
pub post_start: Option<PoolerTemplateSpecContainersLifecyclePostStart>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preStop")]
pub pre_stop: Option<PoolerTemplateSpecContainersLifecyclePreStop>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLifecyclePostStart {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecContainersLifecyclePostStartExec>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecContainersLifecyclePostStartHttpGet>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecContainersLifecyclePostStartTcpSocket>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLifecyclePostStartExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLifecyclePostStartHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers: Option<Vec<PoolerTemplateSpecContainersLifecyclePostStartHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLifecyclePostStartHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLifecyclePostStartTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLifecyclePreStop {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecContainersLifecyclePreStopExec>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecContainersLifecyclePreStopHttpGet>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecContainersLifecyclePreStopTcpSocket>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLifecyclePreStopExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLifecyclePreStopHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers: Option<Vec<PoolerTemplateSpecContainersLifecyclePreStopHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLifecyclePreStopHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLifecyclePreStopTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLivenessProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecContainersLivenessProbeExec>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grpc: Option<PoolerTemplateSpecContainersLivenessProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecContainersLivenessProbeHttpGet>,
#[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 = "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 = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecContainersLivenessProbeTcpSocket>,
#[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 PoolerTemplateSpecContainersLivenessProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLivenessProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLivenessProbeHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers: Option<Vec<PoolerTemplateSpecContainersLivenessProbeHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLivenessProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersLivenessProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersPorts {
#[serde(rename = "containerPort")]
pub container_port: i32,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostIP")]
pub host_ip: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPort")]
pub host_port: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protocol: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersReadinessProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecContainersReadinessProbeExec>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grpc: Option<PoolerTemplateSpecContainersReadinessProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecContainersReadinessProbeHttpGet>,
#[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 = "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 = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecContainersReadinessProbeTcpSocket>,
#[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 PoolerTemplateSpecContainersReadinessProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersReadinessProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersReadinessProbeHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers: Option<Vec<PoolerTemplateSpecContainersReadinessProbeHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersReadinessProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersReadinessProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersResizePolicy {
#[serde(rename = "resourceName")]
pub resource_name: String,
#[serde(rename = "restartPolicy")]
pub restart_policy: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema, ToSchema)]
pub struct PoolerTemplateSpecContainersResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<PoolerTemplateSpecContainersResourcesClaims>>,
#[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, ToSchema)]
pub struct PoolerTemplateSpecContainersResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersSecurityContext {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "allowPrivilegeEscalation"
)]
pub allow_privilege_escalation: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<PoolerTemplateSpecContainersSecurityContextCapabilities>,
#[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<PoolerTemplateSpecContainersSecurityContextSeLinuxOptions>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "seccompProfile"
)]
pub seccomp_profile: Option<PoolerTemplateSpecContainersSecurityContextSeccompProfile>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "windowsOptions"
)]
pub windows_options: Option<PoolerTemplateSpecContainersSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersSecurityContextCapabilities {
#[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 PoolerTemplateSpecContainersSecurityContextSeLinuxOptions {
#[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 PoolerTemplateSpecContainersSecurityContextSeccompProfile {
#[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 PoolerTemplateSpecContainersSecurityContextWindowsOptions {
#[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 PoolerTemplateSpecContainersStartupProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecContainersStartupProbeExec>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grpc: Option<PoolerTemplateSpecContainersStartupProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecContainersStartupProbeHttpGet>,
#[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 = "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 = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecContainersStartupProbeTcpSocket>,
#[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 PoolerTemplateSpecContainersStartupProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersStartupProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersStartupProbeHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers: Option<Vec<PoolerTemplateSpecContainersStartupProbeHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersStartupProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersStartupProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersVolumeDevices {
#[serde(rename = "devicePath")]
pub device_path: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecContainersVolumeMounts {
#[serde(rename = "mountPath")]
pub mount_path: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "mountPropagation"
)]
pub mount_propagation: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "subPath")]
pub sub_path: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "subPathExpr"
)]
pub sub_path_expr: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecDnsConfig {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nameservers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<PoolerTemplateSpecDnsConfigOptions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub searches: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecDnsConfigOptions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub args: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<Vec<PoolerTemplateSpecEphemeralContainersEnv>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")]
pub env_from: Option<Vec<PoolerTemplateSpecEphemeralContainersEnvFrom>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub image: 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")]
pub lifecycle: Option<PoolerTemplateSpecEphemeralContainersLifecycle>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "livenessProbe"
)]
pub liveness_probe: Option<PoolerTemplateSpecEphemeralContainersLivenessProbe>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ports: Option<Vec<PoolerTemplateSpecEphemeralContainersPorts>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readinessProbe"
)]
pub readiness_probe: Option<PoolerTemplateSpecEphemeralContainersReadinessProbe>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resizePolicy"
)]
pub resize_policy: Option<Vec<PoolerTemplateSpecEphemeralContainersResizePolicy>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<PoolerTemplateSpecEphemeralContainersResources>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "securityContext"
)]
pub security_context: Option<PoolerTemplateSpecEphemeralContainersSecurityContext>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "startupProbe"
)]
pub startup_probe: Option<PoolerTemplateSpecEphemeralContainersStartupProbe>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stdin: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "stdinOnce")]
pub stdin_once: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "targetContainerName"
)]
pub target_container_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "terminationMessagePath"
)]
pub termination_message_path: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "terminationMessagePolicy"
)]
pub termination_message_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tty: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeDevices"
)]
pub volume_devices: Option<Vec<PoolerTemplateSpecEphemeralContainersVolumeDevices>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeMounts"
)]
pub volume_mounts: Option<Vec<PoolerTemplateSpecEphemeralContainersVolumeMounts>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "workingDir"
)]
pub working_dir: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersEnv {
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<PoolerTemplateSpecEphemeralContainersEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersEnvValueFrom {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "configMapKeyRef"
)]
pub config_map_key_ref:
Option<PoolerTemplateSpecEphemeralContainersEnvValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<PoolerTemplateSpecEphemeralContainersEnvValueFromFieldRef>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resourceFieldRef"
)]
pub resource_field_ref:
Option<PoolerTemplateSpecEphemeralContainersEnvValueFromResourceFieldRef>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "secretKeyRef"
)]
pub secret_key_ref: Option<PoolerTemplateSpecEphemeralContainersEnvValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersEnvValueFromConfigMapKeyRef {
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 PoolerTemplateSpecEphemeralContainersEnvValueFromFieldRef {
#[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 PoolerTemplateSpecEphemeralContainersEnvValueFromResourceFieldRef {
#[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 PoolerTemplateSpecEphemeralContainersEnvValueFromSecretKeyRef {
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 PoolerTemplateSpecEphemeralContainersEnvFrom {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "configMapRef"
)]
pub config_map_ref: Option<PoolerTemplateSpecEphemeralContainersEnvFromConfigMapRef>,
#[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<PoolerTemplateSpecEphemeralContainersEnvFromSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersEnvFromConfigMapRef {
#[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 PoolerTemplateSpecEphemeralContainersEnvFromSecretRef {
#[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 PoolerTemplateSpecEphemeralContainersLifecycle {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "postStart")]
pub post_start: Option<PoolerTemplateSpecEphemeralContainersLifecyclePostStart>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preStop")]
pub pre_stop: Option<PoolerTemplateSpecEphemeralContainersLifecyclePreStop>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLifecyclePostStart {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecEphemeralContainersLifecyclePostStartExec>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecEphemeralContainersLifecyclePostStartHttpGet>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecEphemeralContainersLifecyclePostStartTcpSocket>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLifecyclePostStartExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLifecyclePostStartHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers:
Option<Vec<PoolerTemplateSpecEphemeralContainersLifecyclePostStartHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLifecyclePostStartHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLifecyclePostStartTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLifecyclePreStop {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecEphemeralContainersLifecyclePreStopExec>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecEphemeralContainersLifecyclePreStopHttpGet>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecEphemeralContainersLifecyclePreStopTcpSocket>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLifecyclePreStopExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLifecyclePreStopHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers:
Option<Vec<PoolerTemplateSpecEphemeralContainersLifecyclePreStopHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLifecyclePreStopHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLifecyclePreStopTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLivenessProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecEphemeralContainersLivenessProbeExec>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grpc: Option<PoolerTemplateSpecEphemeralContainersLivenessProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecEphemeralContainersLivenessProbeHttpGet>,
#[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 = "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 = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecEphemeralContainersLivenessProbeTcpSocket>,
#[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 PoolerTemplateSpecEphemeralContainersLivenessProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLivenessProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLivenessProbeHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers:
Option<Vec<PoolerTemplateSpecEphemeralContainersLivenessProbeHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLivenessProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersLivenessProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersPorts {
#[serde(rename = "containerPort")]
pub container_port: i32,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostIP")]
pub host_ip: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPort")]
pub host_port: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protocol: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersReadinessProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecEphemeralContainersReadinessProbeExec>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grpc: Option<PoolerTemplateSpecEphemeralContainersReadinessProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecEphemeralContainersReadinessProbeHttpGet>,
#[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 = "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 = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecEphemeralContainersReadinessProbeTcpSocket>,
#[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 PoolerTemplateSpecEphemeralContainersReadinessProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersReadinessProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersReadinessProbeHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers:
Option<Vec<PoolerTemplateSpecEphemeralContainersReadinessProbeHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersReadinessProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersReadinessProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersResizePolicy {
#[serde(rename = "resourceName")]
pub resource_name: String,
#[serde(rename = "restartPolicy")]
pub restart_policy: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<PoolerTemplateSpecEphemeralContainersResourcesClaims>>,
#[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 PoolerTemplateSpecEphemeralContainersResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersSecurityContext {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "allowPrivilegeEscalation"
)]
pub allow_privilege_escalation: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<PoolerTemplateSpecEphemeralContainersSecurityContextCapabilities>,
#[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<PoolerTemplateSpecEphemeralContainersSecurityContextSeLinuxOptions>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "seccompProfile"
)]
pub seccomp_profile: Option<PoolerTemplateSpecEphemeralContainersSecurityContextSeccompProfile>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "windowsOptions"
)]
pub windows_options: Option<PoolerTemplateSpecEphemeralContainersSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersSecurityContextCapabilities {
#[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 PoolerTemplateSpecEphemeralContainersSecurityContextSeLinuxOptions {
#[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 PoolerTemplateSpecEphemeralContainersSecurityContextSeccompProfile {
#[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 PoolerTemplateSpecEphemeralContainersSecurityContextWindowsOptions {
#[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 PoolerTemplateSpecEphemeralContainersStartupProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecEphemeralContainersStartupProbeExec>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grpc: Option<PoolerTemplateSpecEphemeralContainersStartupProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecEphemeralContainersStartupProbeHttpGet>,
#[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 = "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 = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecEphemeralContainersStartupProbeTcpSocket>,
#[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 PoolerTemplateSpecEphemeralContainersStartupProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersStartupProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersStartupProbeHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers:
Option<Vec<PoolerTemplateSpecEphemeralContainersStartupProbeHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersStartupProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersStartupProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersVolumeDevices {
#[serde(rename = "devicePath")]
pub device_path: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecEphemeralContainersVolumeMounts {
#[serde(rename = "mountPath")]
pub mount_path: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "mountPropagation"
)]
pub mount_propagation: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "subPath")]
pub sub_path: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "subPathExpr"
)]
pub sub_path_expr: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecHostAliases {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hostnames: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ip: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecImagePullSecrets {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub args: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<Vec<PoolerTemplateSpecInitContainersEnv>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")]
pub env_from: Option<Vec<PoolerTemplateSpecInitContainersEnvFrom>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub image: 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")]
pub lifecycle: Option<PoolerTemplateSpecInitContainersLifecycle>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "livenessProbe"
)]
pub liveness_probe: Option<PoolerTemplateSpecInitContainersLivenessProbe>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ports: Option<Vec<PoolerTemplateSpecInitContainersPorts>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "readinessProbe"
)]
pub readiness_probe: Option<PoolerTemplateSpecInitContainersReadinessProbe>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resizePolicy"
)]
pub resize_policy: Option<Vec<PoolerTemplateSpecInitContainersResizePolicy>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<PoolerTemplateSpecInitContainersResources>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "securityContext"
)]
pub security_context: Option<PoolerTemplateSpecInitContainersSecurityContext>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "startupProbe"
)]
pub startup_probe: Option<PoolerTemplateSpecInitContainersStartupProbe>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stdin: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "stdinOnce")]
pub stdin_once: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "terminationMessagePath"
)]
pub termination_message_path: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "terminationMessagePolicy"
)]
pub termination_message_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tty: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeDevices"
)]
pub volume_devices: Option<Vec<PoolerTemplateSpecInitContainersVolumeDevices>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeMounts"
)]
pub volume_mounts: Option<Vec<PoolerTemplateSpecInitContainersVolumeMounts>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "workingDir"
)]
pub working_dir: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersEnv {
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<PoolerTemplateSpecInitContainersEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersEnvValueFrom {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "configMapKeyRef"
)]
pub config_map_key_ref: Option<PoolerTemplateSpecInitContainersEnvValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<PoolerTemplateSpecInitContainersEnvValueFromFieldRef>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resourceFieldRef"
)]
pub resource_field_ref: Option<PoolerTemplateSpecInitContainersEnvValueFromResourceFieldRef>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "secretKeyRef"
)]
pub secret_key_ref: Option<PoolerTemplateSpecInitContainersEnvValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersEnvValueFromConfigMapKeyRef {
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 PoolerTemplateSpecInitContainersEnvValueFromFieldRef {
#[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 PoolerTemplateSpecInitContainersEnvValueFromResourceFieldRef {
#[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 PoolerTemplateSpecInitContainersEnvValueFromSecretKeyRef {
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 PoolerTemplateSpecInitContainersEnvFrom {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "configMapRef"
)]
pub config_map_ref: Option<PoolerTemplateSpecInitContainersEnvFromConfigMapRef>,
#[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<PoolerTemplateSpecInitContainersEnvFromSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersEnvFromConfigMapRef {
#[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 PoolerTemplateSpecInitContainersEnvFromSecretRef {
#[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 PoolerTemplateSpecInitContainersLifecycle {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "postStart")]
pub post_start: Option<PoolerTemplateSpecInitContainersLifecyclePostStart>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preStop")]
pub pre_stop: Option<PoolerTemplateSpecInitContainersLifecyclePreStop>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLifecyclePostStart {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecInitContainersLifecyclePostStartExec>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecInitContainersLifecyclePostStartHttpGet>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecInitContainersLifecyclePostStartTcpSocket>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLifecyclePostStartExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLifecyclePostStartHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers:
Option<Vec<PoolerTemplateSpecInitContainersLifecyclePostStartHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLifecyclePostStartHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLifecyclePostStartTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLifecyclePreStop {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecInitContainersLifecyclePreStopExec>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecInitContainersLifecyclePreStopHttpGet>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecInitContainersLifecyclePreStopTcpSocket>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLifecyclePreStopExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLifecyclePreStopHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers:
Option<Vec<PoolerTemplateSpecInitContainersLifecyclePreStopHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLifecyclePreStopHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLifecyclePreStopTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLivenessProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecInitContainersLivenessProbeExec>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grpc: Option<PoolerTemplateSpecInitContainersLivenessProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecInitContainersLivenessProbeHttpGet>,
#[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 = "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 = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecInitContainersLivenessProbeTcpSocket>,
#[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 PoolerTemplateSpecInitContainersLivenessProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLivenessProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLivenessProbeHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers: Option<Vec<PoolerTemplateSpecInitContainersLivenessProbeHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLivenessProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersLivenessProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersPorts {
#[serde(rename = "containerPort")]
pub container_port: i32,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostIP")]
pub host_ip: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPort")]
pub host_port: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protocol: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersReadinessProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecInitContainersReadinessProbeExec>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grpc: Option<PoolerTemplateSpecInitContainersReadinessProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecInitContainersReadinessProbeHttpGet>,
#[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 = "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 = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecInitContainersReadinessProbeTcpSocket>,
#[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 PoolerTemplateSpecInitContainersReadinessProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersReadinessProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersReadinessProbeHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers: Option<Vec<PoolerTemplateSpecInitContainersReadinessProbeHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersReadinessProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersReadinessProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersResizePolicy {
#[serde(rename = "resourceName")]
pub resource_name: String,
#[serde(rename = "restartPolicy")]
pub restart_policy: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<PoolerTemplateSpecInitContainersResourcesClaims>>,
#[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 PoolerTemplateSpecInitContainersResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersSecurityContext {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "allowPrivilegeEscalation"
)]
pub allow_privilege_escalation: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capabilities: Option<PoolerTemplateSpecInitContainersSecurityContextCapabilities>,
#[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<PoolerTemplateSpecInitContainersSecurityContextSeLinuxOptions>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "seccompProfile"
)]
pub seccomp_profile: Option<PoolerTemplateSpecInitContainersSecurityContextSeccompProfile>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "windowsOptions"
)]
pub windows_options: Option<PoolerTemplateSpecInitContainersSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersSecurityContextCapabilities {
#[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 PoolerTemplateSpecInitContainersSecurityContextSeLinuxOptions {
#[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 PoolerTemplateSpecInitContainersSecurityContextSeccompProfile {
#[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 PoolerTemplateSpecInitContainersSecurityContextWindowsOptions {
#[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 PoolerTemplateSpecInitContainersStartupProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<PoolerTemplateSpecInitContainersStartupProbeExec>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "failureThreshold"
)]
pub failure_threshold: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grpc: Option<PoolerTemplateSpecInitContainersStartupProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<PoolerTemplateSpecInitContainersStartupProbeHttpGet>,
#[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 = "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 = "tcpSocket")]
pub tcp_socket: Option<PoolerTemplateSpecInitContainersStartupProbeTcpSocket>,
#[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 PoolerTemplateSpecInitContainersStartupProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersStartupProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersStartupProbeHttpGet {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "httpHeaders"
)]
pub http_headers: Option<Vec<PoolerTemplateSpecInitContainersStartupProbeHttpGetHttpHeaders>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
pub port: IntOrString,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheme: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersStartupProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersStartupProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersVolumeDevices {
#[serde(rename = "devicePath")]
pub device_path: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecInitContainersVolumeMounts {
#[serde(rename = "mountPath")]
pub mount_path: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "mountPropagation"
)]
pub mount_propagation: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "subPath")]
pub sub_path: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "subPathExpr"
)]
pub sub_path_expr: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecOs {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecReadinessGates {
#[serde(rename = "conditionType")]
pub condition_type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecResourceClaims {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<PoolerTemplateSpecResourceClaimsSource>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecResourceClaimsSource {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resourceClaimName"
)]
pub resource_claim_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "resourceClaimTemplateName"
)]
pub resource_claim_template_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecSchedulingGates {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecSecurityContext {
#[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 = "seLinuxOptions"
)]
pub se_linux_options: Option<PoolerTemplateSpecSecurityContextSeLinuxOptions>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "seccompProfile"
)]
pub seccomp_profile: Option<PoolerTemplateSpecSecurityContextSeccompProfile>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "supplementalGroups"
)]
pub supplemental_groups: Option<Vec<i64>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sysctls: Option<Vec<PoolerTemplateSpecSecurityContextSysctls>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "windowsOptions"
)]
pub windows_options: Option<PoolerTemplateSpecSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecSecurityContextSeLinuxOptions {
#[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 PoolerTemplateSpecSecurityContextSeccompProfile {
#[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 PoolerTemplateSpecSecurityContextSysctls {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecSecurityContextWindowsOptions {
#[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 PoolerTemplateSpecTolerations {
#[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 PoolerTemplateSpecTopologySpreadConstraints {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "labelSelector"
)]
pub label_selector: Option<PoolerTemplateSpecTopologySpreadConstraintsLabelSelector>,
#[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 PoolerTemplateSpecTopologySpreadConstraintsLabelSelector {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchExpressions"
)]
pub match_expressions:
Option<Vec<PoolerTemplateSpecTopologySpreadConstraintsLabelSelectorMatchExpressions>>,
#[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 PoolerTemplateSpecTopologySpreadConstraintsLabelSelectorMatchExpressions {
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 PoolerTemplateSpecVolumes {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "awsElasticBlockStore"
)]
pub aws_elastic_block_store: Option<PoolerTemplateSpecVolumesAwsElasticBlockStore>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")]
pub azure_disk: Option<PoolerTemplateSpecVolumesAzureDisk>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")]
pub azure_file: Option<PoolerTemplateSpecVolumesAzureFile>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cephfs: Option<PoolerTemplateSpecVolumesCephfs>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cinder: Option<PoolerTemplateSpecVolumesCinder>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<PoolerTemplateSpecVolumesConfigMap>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub csi: Option<PoolerTemplateSpecVolumesCsi>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "downwardAPI"
)]
pub downward_api: Option<PoolerTemplateSpecVolumesDownwardApi>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")]
pub empty_dir: Option<PoolerTemplateSpecVolumesEmptyDir>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ephemeral: Option<PoolerTemplateSpecVolumesEphemeral>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fc: Option<PoolerTemplateSpecVolumesFc>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "flexVolume"
)]
pub flex_volume: Option<PoolerTemplateSpecVolumesFlexVolume>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub flocker: Option<PoolerTemplateSpecVolumesFlocker>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "gcePersistentDisk"
)]
pub gce_persistent_disk: Option<PoolerTemplateSpecVolumesGcePersistentDisk>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")]
pub git_repo: Option<PoolerTemplateSpecVolumesGitRepo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub glusterfs: Option<PoolerTemplateSpecVolumesGlusterfs>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")]
pub host_path: Option<PoolerTemplateSpecVolumesHostPath>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub iscsi: Option<PoolerTemplateSpecVolumesIscsi>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nfs: Option<PoolerTemplateSpecVolumesNfs>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "persistentVolumeClaim"
)]
pub persistent_volume_claim: Option<PoolerTemplateSpecVolumesPersistentVolumeClaim>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "photonPersistentDisk"
)]
pub photon_persistent_disk: Option<PoolerTemplateSpecVolumesPhotonPersistentDisk>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "portworxVolume"
)]
pub portworx_volume: Option<PoolerTemplateSpecVolumesPortworxVolume>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub projected: Option<PoolerTemplateSpecVolumesProjected>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quobyte: Option<PoolerTemplateSpecVolumesQuobyte>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rbd: Option<PoolerTemplateSpecVolumesRbd>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")]
pub scale_io: Option<PoolerTemplateSpecVolumesScaleIo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<PoolerTemplateSpecVolumesSecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub storageos: Option<PoolerTemplateSpecVolumesStorageos>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "vsphereVolume"
)]
pub vsphere_volume: Option<PoolerTemplateSpecVolumesVsphereVolume>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesAwsElasticBlockStore {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub partition: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(rename = "volumeID")]
pub volume_id: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesAzureDisk {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "cachingMode"
)]
pub caching_mode: Option<String>,
#[serde(rename = "diskName")]
pub disk_name: String,
#[serde(rename = "diskURI")]
pub disk_uri: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesAzureFile {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(rename = "secretName")]
pub secret_name: String,
#[serde(rename = "shareName")]
pub share_name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesCephfs {
pub monitors: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "secretFile"
)]
pub secret_file: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<PoolerTemplateSpecVolumesCephfsSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesCephfsSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesCinder {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<PoolerTemplateSpecVolumesCinderSecretRef>,
#[serde(rename = "volumeID")]
pub volume_id: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesCinderSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesConfigMap {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "defaultMode"
)]
pub default_mode: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<PoolerTemplateSpecVolumesConfigMapItems>>,
#[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 PoolerTemplateSpecVolumesConfigMapItems {
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 PoolerTemplateSpecVolumesCsi {
pub driver: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "nodePublishSecretRef"
)]
pub node_publish_secret_ref: Option<PoolerTemplateSpecVolumesCsiNodePublishSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeAttributes"
)]
pub volume_attributes: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesCsiNodePublishSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesDownwardApi {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "defaultMode"
)]
pub default_mode: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<PoolerTemplateSpecVolumesDownwardApiItems>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesDownwardApiItems {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<PoolerTemplateSpecVolumesDownwardApiItemsFieldRef>,
#[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<PoolerTemplateSpecVolumesDownwardApiItemsResourceFieldRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesDownwardApiItemsFieldRef {
#[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 PoolerTemplateSpecVolumesDownwardApiItemsResourceFieldRef {
#[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 PoolerTemplateSpecVolumesEmptyDir {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub medium: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sizeLimit")]
pub size_limit: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesEphemeral {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeClaimTemplate"
)]
pub volume_claim_template: Option<PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplate>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateMetadata>,
pub spec: PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpec,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateMetadata {}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpec {
#[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<PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecDataSource>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "dataSourceRef"
)]
pub data_source_ref:
Option<PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecResources>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecSelector>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "storageClassName"
)]
pub storage_class_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeMode"
)]
pub volume_mode: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeName"
)]
pub volume_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecDataSource {
#[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 PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef {
#[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 PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims:
Option<Vec<PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecResourcesClaims>>,
#[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 PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecSelector {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "matchExpressions"
)]
pub match_expressions: Option<
Vec<PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecSelectorMatchExpressions>,
>,
#[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 PoolerTemplateSpecVolumesEphemeralVolumeClaimTemplateSpecSelectorMatchExpressions {
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 PoolerTemplateSpecVolumesFc {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lun: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "targetWWNs"
)]
pub target_ww_ns: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub wwids: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesFlexVolume {
pub driver: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<PoolerTemplateSpecVolumesFlexVolumeSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesFlexVolumeSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesFlocker {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "datasetName"
)]
pub dataset_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "datasetUUID"
)]
pub dataset_uuid: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesGcePersistentDisk {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub partition: Option<i32>,
#[serde(rename = "pdName")]
pub pd_name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesGitRepo {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub directory: Option<String>,
pub repository: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub revision: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesGlusterfs {
pub endpoints: String,
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesHostPath {
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesIscsi {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "chapAuthDiscovery"
)]
pub chap_auth_discovery: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "chapAuthSession"
)]
pub chap_auth_session: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "initiatorName"
)]
pub initiator_name: Option<String>,
pub iqn: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "iscsiInterface"
)]
pub iscsi_interface: Option<String>,
pub lun: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub portals: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<PoolerTemplateSpecVolumesIscsiSecretRef>,
#[serde(rename = "targetPortal")]
pub target_portal: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesIscsiSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesNfs {
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
pub server: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesPersistentVolumeClaim {
#[serde(rename = "claimName")]
pub claim_name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesPhotonPersistentDisk {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(rename = "pdID")]
pub pd_id: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesPortworxVolume {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(rename = "volumeID")]
pub volume_id: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesProjected {
#[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<PoolerTemplateSpecVolumesProjectedSources>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesProjectedSources {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<PoolerTemplateSpecVolumesProjectedSourcesConfigMap>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "downwardAPI"
)]
pub downward_api: Option<PoolerTemplateSpecVolumesProjectedSourcesDownwardApi>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<PoolerTemplateSpecVolumesProjectedSourcesSecret>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "serviceAccountToken"
)]
pub service_account_token: Option<PoolerTemplateSpecVolumesProjectedSourcesServiceAccountToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesProjectedSourcesConfigMap {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<PoolerTemplateSpecVolumesProjectedSourcesConfigMapItems>>,
#[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 PoolerTemplateSpecVolumesProjectedSourcesConfigMapItems {
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 PoolerTemplateSpecVolumesProjectedSourcesDownwardApi {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<PoolerTemplateSpecVolumesProjectedSourcesDownwardApiItems>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesProjectedSourcesDownwardApiItems {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<PoolerTemplateSpecVolumesProjectedSourcesDownwardApiItemsFieldRef>,
#[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<PoolerTemplateSpecVolumesProjectedSourcesDownwardApiItemsResourceFieldRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesProjectedSourcesDownwardApiItemsFieldRef {
#[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 PoolerTemplateSpecVolumesProjectedSourcesDownwardApiItemsResourceFieldRef {
#[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 PoolerTemplateSpecVolumesProjectedSourcesSecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<PoolerTemplateSpecVolumesProjectedSourcesSecretItems>>,
#[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 PoolerTemplateSpecVolumesProjectedSourcesSecretItems {
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 PoolerTemplateSpecVolumesProjectedSourcesServiceAccountToken {
#[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 PoolerTemplateSpecVolumesQuobyte {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub group: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
pub registry: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tenant: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
pub volume: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesRbd {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
pub image: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keyring: Option<String>,
pub monitors: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pool: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<PoolerTemplateSpecVolumesRbdSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesRbdSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesScaleIo {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
pub gateway: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "protectionDomain"
)]
pub protection_domain: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(rename = "secretRef")]
pub secret_ref: PoolerTemplateSpecVolumesScaleIoSecretRef,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "sslEnabled"
)]
pub ssl_enabled: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "storageMode"
)]
pub storage_mode: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "storagePool"
)]
pub storage_pool: Option<String>,
pub system: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeName"
)]
pub volume_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesScaleIoSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesSecret {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "defaultMode"
)]
pub default_mode: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<PoolerTemplateSpecVolumesSecretItems>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "secretName"
)]
pub secret_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesSecretItems {
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 PoolerTemplateSpecVolumesStorageos {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<PoolerTemplateSpecVolumesStorageosSecretRef>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeName"
)]
pub volume_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "volumeNamespace"
)]
pub volume_namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesStorageosSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerTemplateSpecVolumesVsphereVolume {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fsType")]
pub fs_type: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "storagePolicyID"
)]
pub storage_policy_id: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "storagePolicyName"
)]
pub storage_policy_name: Option<String>,
#[serde(rename = "volumePath")]
pub volume_path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum PoolerType {
#[serde(rename = "rw")]
Rw,
#[serde(rename = "ro")]
Ro,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub instances: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secrets: Option<PoolerStatusSecrets>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerStatusSecrets {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientCA")]
pub client_ca: Option<PoolerStatusSecretsClientCa>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "pgBouncerSecrets"
)]
pub pg_bouncer_secrets: Option<PoolerStatusSecretsPgBouncerSecrets>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serverCA")]
pub server_ca: Option<PoolerStatusSecretsServerCa>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serverTLS")]
pub server_tls: Option<PoolerStatusSecretsServerTls>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerStatusSecretsClientCa {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerStatusSecretsPgBouncerSecrets {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "authQuery")]
pub auth_query: Option<PoolerStatusSecretsPgBouncerSecretsAuthQuery>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerStatusSecretsPgBouncerSecretsAuthQuery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerStatusSecretsServerCa {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct PoolerStatusSecretsServerTls {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}