#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
pub use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString;
pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
pub use k8s_openapi::api::core::v1::ObjectReference;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "druid.apache.org", version = "v1alpha1", kind = "Druid", plural = "druids")]
#[kube(namespaced)]
#[kube(status = "DruidStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct DruidSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "additionalContainer")]
pub additional_container: Option<Vec<DruidAdditionalContainer>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub affinity: Option<DruidAffinity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auth: Option<DruidAuth>,
#[serde(rename = "common.runtime.properties")]
pub common_runtime_properties: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "commonConfigMountPath")]
pub common_config_mount_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")]
pub container_security_context: Option<DruidContainerSecurityContext>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "core-site.xml")]
pub core_site_xml: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "deepStorage")]
pub deep_storage: Option<DruidDeepStorage>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultProbes")]
pub default_probes: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "deleteOrphanPvc")]
pub delete_orphan_pvc: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "disablePVCDeletionFinalizer")]
pub disable_pvc_deletion_finalizer: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dnsConfig")]
pub dns_config: Option<DruidDnsConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dnsPolicy")]
pub dns_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dynamicConfig")]
pub dynamic_config: Option<BTreeMap<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<Vec<DruidEnv>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")]
pub env_from: Option<Vec<DruidEnvFrom>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "extraCommonConfig")]
pub extra_common_config: Option<Vec<ObjectReference>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "forceDeleteStsPodOnError")]
pub force_delete_sts_pod_on_error: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hdfs-site.xml")]
pub hdfs_site_xml: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ignored: Option<bool>,
#[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", rename = "imagePullSecrets")]
pub image_pull_secrets: Option<Vec<DruidImagePullSecrets>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "jvm.options")]
pub jvm_options: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")]
pub liveness_probe: Option<DruidLivenessProbe>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "log4j.config")]
pub log4j_config: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "metadataStore")]
pub metadata_store: Option<DruidMetadataStore>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "metricDimensions.json")]
pub metric_dimensions_json: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
pub node_selector: Option<BTreeMap<String, String>>,
pub nodes: BTreeMap<String, DruidNodes>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podAnnotations")]
pub pod_annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podLabels")]
pub pod_labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podManagementPolicy")]
pub pod_management_policy: Option<String>,
#[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 = "readinessProbe")]
pub readiness_probe: Option<DruidReadinessProbe>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "rollingDeploy")]
pub rolling_deploy: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "scalePvcSts")]
pub scale_pvc_sts: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")]
pub security_context: Option<DruidSecurityContext>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccount")]
pub service_account: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub services: Option<Vec<DruidServices>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "startScript")]
pub start_script: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "startUpProbe")]
pub start_up_probe: Option<DruidStartUpProbe>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tolerations: Option<Vec<DruidTolerations>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "updateStrategy")]
pub update_strategy: Option<DruidUpdateStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeClaimTemplates")]
pub volume_claim_templates: Option<Vec<DruidVolumeClaimTemplates>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")]
pub volume_mounts: Option<Vec<DruidVolumeMounts>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub volumes: Option<Vec<DruidVolumes>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "workloadAnnotations")]
pub workload_annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub zookeeper: Option<DruidZookeeper>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainer {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub args: Option<Vec<String>>,
pub command: Vec<String>,
#[serde(rename = "containerName")]
pub container_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<Vec<DruidAdditionalContainerEnv>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")]
pub env_from: Option<Vec<DruidAdditionalContainerEnvFrom>>,
pub image: 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 resources: Option<DruidAdditionalContainerResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsInit")]
pub run_as_init: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")]
pub security_context: Option<DruidAdditionalContainerSecurityContext>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")]
pub volume_mounts: Option<Vec<DruidAdditionalContainerVolumeMounts>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerEnv {
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<DruidAdditionalContainerEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerEnvValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")]
pub config_map_key_ref: Option<DruidAdditionalContainerEnvValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<DruidAdditionalContainerEnvValueFromFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")]
pub resource_field_ref: Option<DruidAdditionalContainerEnvValueFromResourceFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<DruidAdditionalContainerEnvValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerEnvValueFromConfigMapKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerEnvValueFromFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(rename = "fieldPath")]
pub field_path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerEnvValueFromResourceFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub divisor: Option<IntOrString>,
pub resource: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerEnvValueFromSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerEnvFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")]
pub config_map_ref: Option<DruidAdditionalContainerEnvFromConfigMapRef>,
#[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<DruidAdditionalContainerEnvFromSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerEnvFromConfigMapRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerEnvFromSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<DruidAdditionalContainerResourcesClaims>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, IntOrString>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerSecurityContext {
#[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<DruidAdditionalContainerSecurityContextCapabilities>,
#[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<DruidAdditionalContainerSecurityContextSeLinuxOptions>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")]
pub seccomp_profile: Option<DruidAdditionalContainerSecurityContextSeccompProfile>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")]
pub windows_options: Option<DruidAdditionalContainerSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerSecurityContextCapabilities {
#[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, Default, PartialEq)]
pub struct DruidAdditionalContainerSecurityContextSeLinuxOptions {
#[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, Default, PartialEq)]
pub struct DruidAdditionalContainerSecurityContextSeccompProfile {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")]
pub localhost_profile: Option<String>,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAdditionalContainerSecurityContextWindowsOptions {
#[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, Default, PartialEq)]
pub struct DruidAdditionalContainerVolumeMounts {
#[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, Default, PartialEq)]
pub struct DruidAffinity {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
pub node_affinity: Option<DruidAffinityNodeAffinity>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
pub pod_affinity: Option<DruidAffinityPodAffinity>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
pub pod_anti_affinity: Option<DruidAffinityPodAntiAffinity>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityNodeAffinity {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")]
pub preferred_during_scheduling_ignored_during_execution: Option<Vec<DruidAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")]
pub required_during_scheduling_ignored_during_execution: Option<DruidAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution {
pub preference: DruidAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")]
pub match_fields: Option<Vec<DruidAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "nodeSelectorTerms")]
pub node_selector_terms: Vec<DruidAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")]
pub match_fields: Option<Vec<DruidAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinity {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")]
pub preferred_during_scheduling_ignored_during_execution: Option<Vec<DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecution>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")]
pub required_during_scheduling_ignored_during_execution: Option<Vec<DruidAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term: DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<DruidAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<DruidAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinity {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")]
pub preferred_during_scheduling_ignored_during_execution: Option<Vec<DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")]
pub required_during_scheduling_ignored_during_execution: Option<Vec<DruidAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term: DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<DruidAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<DruidAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAuth {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordKey")]
pub password_key: Option<String>,
#[serde(rename = "secretRef")]
pub secret_ref: DruidAuthSecretRef,
#[serde(rename = "type")]
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "usernameKey")]
pub username_key: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidAuthSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidContainerSecurityContext {
#[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<DruidContainerSecurityContextCapabilities>,
#[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<DruidContainerSecurityContextSeLinuxOptions>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")]
pub seccomp_profile: Option<DruidContainerSecurityContextSeccompProfile>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")]
pub windows_options: Option<DruidContainerSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidContainerSecurityContextCapabilities {
#[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, Default, PartialEq)]
pub struct DruidContainerSecurityContextSeLinuxOptions {
#[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, Default, PartialEq)]
pub struct DruidContainerSecurityContextSeccompProfile {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")]
pub localhost_profile: Option<String>,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidContainerSecurityContextWindowsOptions {
#[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, Default, PartialEq)]
pub struct DruidDeepStorage {
pub spec: String,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidDnsConfig {
#[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<DruidDnsConfigOptions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub searches: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidDnsConfigOptions {
#[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, Default, PartialEq)]
pub struct DruidEnv {
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<DruidEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidEnvValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")]
pub config_map_key_ref: Option<DruidEnvValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<DruidEnvValueFromFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")]
pub resource_field_ref: Option<DruidEnvValueFromResourceFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<DruidEnvValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidEnvValueFromConfigMapKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidEnvValueFromFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(rename = "fieldPath")]
pub field_path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidEnvValueFromResourceFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub divisor: Option<IntOrString>,
pub resource: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidEnvValueFromSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidEnvFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")]
pub config_map_ref: Option<DruidEnvFromConfigMapRef>,
#[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<DruidEnvFromSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidEnvFromConfigMapRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidEnvFromSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidImagePullSecrets {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidLivenessProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<DruidLivenessProbeExec>,
#[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<DruidLivenessProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<DruidLivenessProbeHttpGet>,
#[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<DruidLivenessProbeTcpSocket>,
#[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, Default, PartialEq)]
pub struct DruidLivenessProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidLivenessProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidLivenessProbeHttpGet {
#[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<DruidLivenessProbeHttpGetHttpHeaders>>,
#[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, Default, PartialEq)]
pub struct DruidLivenessProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidLivenessProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidMetadataStore {
pub spec: String,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodes {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "additionalContainer")]
pub additional_container: Option<Vec<DruidNodesAdditionalContainer>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub affinity: Option<DruidNodesAffinity>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerSecurityContext")]
pub container_security_context: Option<DruidNodesContainerSecurityContext>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dnsConfig")]
pub dns_config: Option<DruidNodesDnsConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dnsPolicy")]
pub dns_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "druid.port")]
pub druid_port: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dynamicConfig")]
pub dynamic_config: Option<BTreeMap<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<Vec<DruidNodesEnv>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")]
pub env_from: Option<Vec<DruidNodesEnvFrom>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "extra.jvm.options")]
pub extra_jvm_options: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hpAutoscaler")]
pub hp_autoscaler: Option<DruidNodesHpAutoscaler>,
#[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", rename = "imagePullSecrets")]
pub image_pull_secrets: Option<Vec<DruidNodesImagePullSecrets>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ingress: Option<DruidNodesIngress>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ingressAnnotations")]
pub ingress_annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "jvm.options")]
pub jvm_options: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lifecycle: Option<DruidNodesLifecycle>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")]
pub liveness_probe: Option<DruidNodesLivenessProbe>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "log4j.config")]
pub log4j_config: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxSurge")]
pub max_surge: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")]
pub max_unavailable: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeConfigMountPath")]
pub node_config_mount_path: 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", rename = "nodeType")]
pub node_type: Option<DruidNodesNodeType>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")]
pub persistent_volume_claim: Option<Vec<DruidNodesPersistentVolumeClaim>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podAnnotations")]
pub pod_annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podDisruptionBudgetSpec")]
pub pod_disruption_budget_spec: Option<DruidNodesPodDisruptionBudgetSpec>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podLabels")]
pub pod_labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podManagementPolicy")]
pub pod_management_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ports: Option<Vec<DruidNodesPorts>>,
#[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 = "readinessProbe")]
pub readiness_probe: Option<DruidNodesReadinessProbe>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replicas: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<DruidNodesResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runtime.properties")]
pub runtime_properties: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")]
pub security_context: Option<DruidNodesSecurityContext>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")]
pub service_account_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub services: Option<Vec<DruidNodesServices>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "startUpProbe")]
pub start_up_probe: Option<DruidNodesStartUpProbe>,
#[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<DruidNodesTolerations>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "topologySpreadConstraints")]
pub topology_spread_constraints: Option<Vec<DruidNodesTopologySpreadConstraints>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "updateStrategy")]
pub update_strategy: Option<DruidNodesUpdateStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeClaimTemplates")]
pub volume_claim_templates: Option<Vec<DruidNodesVolumeClaimTemplates>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")]
pub volume_mounts: Option<Vec<DruidNodesVolumeMounts>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub volumes: Option<Vec<DruidNodesVolumes>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "workloadAnnotations")]
pub workload_annotations: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainer {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub args: Option<Vec<String>>,
pub command: Vec<String>,
#[serde(rename = "containerName")]
pub container_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<Vec<DruidNodesAdditionalContainerEnv>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")]
pub env_from: Option<Vec<DruidNodesAdditionalContainerEnvFrom>>,
pub image: 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 resources: Option<DruidNodesAdditionalContainerResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsInit")]
pub run_as_init: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")]
pub security_context: Option<DruidNodesAdditionalContainerSecurityContext>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")]
pub volume_mounts: Option<Vec<DruidNodesAdditionalContainerVolumeMounts>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerEnv {
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<DruidNodesAdditionalContainerEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerEnvValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")]
pub config_map_key_ref: Option<DruidNodesAdditionalContainerEnvValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<DruidNodesAdditionalContainerEnvValueFromFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")]
pub resource_field_ref: Option<DruidNodesAdditionalContainerEnvValueFromResourceFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<DruidNodesAdditionalContainerEnvValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerEnvValueFromConfigMapKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerEnvValueFromFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(rename = "fieldPath")]
pub field_path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerEnvValueFromResourceFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub divisor: Option<IntOrString>,
pub resource: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerEnvValueFromSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerEnvFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")]
pub config_map_ref: Option<DruidNodesAdditionalContainerEnvFromConfigMapRef>,
#[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<DruidNodesAdditionalContainerEnvFromSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerEnvFromConfigMapRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerEnvFromSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<DruidNodesAdditionalContainerResourcesClaims>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, IntOrString>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerSecurityContext {
#[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<DruidNodesAdditionalContainerSecurityContextCapabilities>,
#[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<DruidNodesAdditionalContainerSecurityContextSeLinuxOptions>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")]
pub seccomp_profile: Option<DruidNodesAdditionalContainerSecurityContextSeccompProfile>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")]
pub windows_options: Option<DruidNodesAdditionalContainerSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerSecurityContextCapabilities {
#[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, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerSecurityContextSeLinuxOptions {
#[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, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerSecurityContextSeccompProfile {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")]
pub localhost_profile: Option<String>,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerSecurityContextWindowsOptions {
#[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, Default, PartialEq)]
pub struct DruidNodesAdditionalContainerVolumeMounts {
#[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, Default, PartialEq)]
pub struct DruidNodesAffinity {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
pub node_affinity: Option<DruidNodesAffinityNodeAffinity>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
pub pod_affinity: Option<DruidNodesAffinityPodAffinity>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
pub pod_anti_affinity: Option<DruidNodesAffinityPodAntiAffinity>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityNodeAffinity {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")]
pub preferred_during_scheduling_ignored_during_execution: Option<Vec<DruidNodesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")]
pub required_during_scheduling_ignored_during_execution: Option<DruidNodesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecution {
pub preference: DruidNodesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreference {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")]
pub match_fields: Option<Vec<DruidNodesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityNodeAffinityPreferredDuringSchedulingIgnoredDuringExecutionPreferenceMatchFields {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "nodeSelectorTerms")]
pub node_selector_terms: Vec<DruidNodesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTerms {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchFields")]
pub match_fields: Option<Vec<DruidNodesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityNodeAffinityRequiredDuringSchedulingIgnoredDuringExecutionNodeSelectorTermsMatchFields {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinity {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")]
pub preferred_during_scheduling_ignored_during_execution: Option<Vec<DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecution>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")]
pub required_during_scheduling_ignored_during_execution: Option<Vec<DruidNodesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term: DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<DruidNodesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<DruidNodesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinity {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preferredDuringSchedulingIgnoredDuringExecution")]
pub preferred_during_scheduling_ignored_during_execution: Option<Vec<DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "requiredDuringSchedulingIgnoredDuringExecution")]
pub required_during_scheduling_ignored_during_execution: Option<Vec<DruidNodesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecution {
#[serde(rename = "podAffinityTerm")]
pub pod_affinity_term: DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm,
pub weight: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermNamespaceSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<DruidNodesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")]
pub namespace_selector: Option<DruidNodesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespaces: Option<Vec<String>>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionNamespaceSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesContainerSecurityContext {
#[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<DruidNodesContainerSecurityContextCapabilities>,
#[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<DruidNodesContainerSecurityContextSeLinuxOptions>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")]
pub seccomp_profile: Option<DruidNodesContainerSecurityContextSeccompProfile>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")]
pub windows_options: Option<DruidNodesContainerSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesContainerSecurityContextCapabilities {
#[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, Default, PartialEq)]
pub struct DruidNodesContainerSecurityContextSeLinuxOptions {
#[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, Default, PartialEq)]
pub struct DruidNodesContainerSecurityContextSeccompProfile {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")]
pub localhost_profile: Option<String>,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesContainerSecurityContextWindowsOptions {
#[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, Default, PartialEq)]
pub struct DruidNodesDnsConfig {
#[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<DruidNodesDnsConfigOptions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub searches: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesDnsConfigOptions {
#[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, Default, PartialEq)]
pub struct DruidNodesEnv {
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<DruidNodesEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesEnvValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")]
pub config_map_key_ref: Option<DruidNodesEnvValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<DruidNodesEnvValueFromFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")]
pub resource_field_ref: Option<DruidNodesEnvValueFromResourceFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<DruidNodesEnvValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesEnvValueFromConfigMapKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesEnvValueFromFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(rename = "fieldPath")]
pub field_path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesEnvValueFromResourceFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub divisor: Option<IntOrString>,
pub resource: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesEnvValueFromSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesEnvFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")]
pub config_map_ref: Option<DruidNodesEnvFromConfigMapRef>,
#[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<DruidNodesEnvFromSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesEnvFromConfigMapRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesEnvFromSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscaler {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub behavior: Option<DruidNodesHpAutoscalerBehavior>,
#[serde(rename = "maxReplicas")]
pub max_replicas: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metrics: Option<Vec<DruidNodesHpAutoscalerMetrics>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "minReplicas")]
pub min_replicas: Option<i32>,
#[serde(rename = "scaleTargetRef")]
pub scale_target_ref: DruidNodesHpAutoscalerScaleTargetRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerBehavior {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleDown")]
pub scale_down: Option<DruidNodesHpAutoscalerBehaviorScaleDown>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleUp")]
pub scale_up: Option<DruidNodesHpAutoscalerBehaviorScaleUp>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerBehaviorScaleDown {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub policies: Option<Vec<DruidNodesHpAutoscalerBehaviorScaleDownPolicies>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "selectPolicy")]
pub select_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "stabilizationWindowSeconds")]
pub stabilization_window_seconds: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerBehaviorScaleDownPolicies {
#[serde(rename = "periodSeconds")]
pub period_seconds: i32,
#[serde(rename = "type")]
pub r#type: String,
pub value: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerBehaviorScaleUp {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub policies: Option<Vec<DruidNodesHpAutoscalerBehaviorScaleUpPolicies>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "selectPolicy")]
pub select_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "stabilizationWindowSeconds")]
pub stabilization_window_seconds: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerBehaviorScaleUpPolicies {
#[serde(rename = "periodSeconds")]
pub period_seconds: i32,
#[serde(rename = "type")]
pub r#type: String,
pub value: i32,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetrics {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerResource")]
pub container_resource: Option<DruidNodesHpAutoscalerMetricsContainerResource>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external: Option<DruidNodesHpAutoscalerMetricsExternal>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub object: Option<DruidNodesHpAutoscalerMetricsObject>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pods: Option<DruidNodesHpAutoscalerMetricsPods>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource: Option<DruidNodesHpAutoscalerMetricsResource>,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsContainerResource {
pub container: String,
pub name: String,
pub target: DruidNodesHpAutoscalerMetricsContainerResourceTarget,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsContainerResourceTarget {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "averageUtilization")]
pub average_utilization: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "averageValue")]
pub average_value: Option<IntOrString>,
#[serde(rename = "type")]
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsExternal {
pub metric: DruidNodesHpAutoscalerMetricsExternalMetric,
pub target: DruidNodesHpAutoscalerMetricsExternalTarget,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsExternalMetric {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<DruidNodesHpAutoscalerMetricsExternalMetricSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsExternalMetricSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesHpAutoscalerMetricsExternalMetricSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsExternalMetricSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsExternalTarget {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "averageUtilization")]
pub average_utilization: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "averageValue")]
pub average_value: Option<IntOrString>,
#[serde(rename = "type")]
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsObject {
#[serde(rename = "describedObject")]
pub described_object: DruidNodesHpAutoscalerMetricsObjectDescribedObject,
pub metric: DruidNodesHpAutoscalerMetricsObjectMetric,
pub target: DruidNodesHpAutoscalerMetricsObjectTarget,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsObjectDescribedObject {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsObjectMetric {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<DruidNodesHpAutoscalerMetricsObjectMetricSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsObjectMetricSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesHpAutoscalerMetricsObjectMetricSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsObjectMetricSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsObjectTarget {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "averageUtilization")]
pub average_utilization: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "averageValue")]
pub average_value: Option<IntOrString>,
#[serde(rename = "type")]
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsPods {
pub metric: DruidNodesHpAutoscalerMetricsPodsMetric,
pub target: DruidNodesHpAutoscalerMetricsPodsTarget,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsPodsMetric {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<DruidNodesHpAutoscalerMetricsPodsMetricSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsPodsMetricSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesHpAutoscalerMetricsPodsMetricSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsPodsMetricSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsPodsTarget {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "averageUtilization")]
pub average_utilization: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "averageValue")]
pub average_value: Option<IntOrString>,
#[serde(rename = "type")]
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsResource {
pub name: String,
pub target: DruidNodesHpAutoscalerMetricsResourceTarget,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerMetricsResourceTarget {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "averageUtilization")]
pub average_utilization: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "averageValue")]
pub average_value: Option<IntOrString>,
#[serde(rename = "type")]
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesHpAutoscalerScaleTargetRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesImagePullSecrets {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngress {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultBackend")]
pub default_backend: Option<DruidNodesIngressDefaultBackend>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ingressClassName")]
pub ingress_class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rules: Option<Vec<DruidNodesIngressRules>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tls: Option<Vec<DruidNodesIngressTls>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressDefaultBackend {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource: Option<DruidNodesIngressDefaultBackendResource>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<DruidNodesIngressDefaultBackendService>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressDefaultBackendResource {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressDefaultBackendService {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<DruidNodesIngressDefaultBackendServicePort>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressDefaultBackendServicePort {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub number: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressRules {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub http: Option<DruidNodesIngressRulesHttp>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressRulesHttp {
pub paths: Vec<DruidNodesIngressRulesHttpPaths>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressRulesHttpPaths {
pub backend: DruidNodesIngressRulesHttpPathsBackend,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(rename = "pathType")]
pub path_type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressRulesHttpPathsBackend {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource: Option<DruidNodesIngressRulesHttpPathsBackendResource>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<DruidNodesIngressRulesHttpPathsBackendService>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressRulesHttpPathsBackendResource {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressRulesHttpPathsBackendService {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<DruidNodesIngressRulesHttpPathsBackendServicePort>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressRulesHttpPathsBackendServicePort {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub number: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesIngressTls {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hosts: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")]
pub secret_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLifecycle {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "postStart")]
pub post_start: Option<DruidNodesLifecyclePostStart>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preStop")]
pub pre_stop: Option<DruidNodesLifecyclePreStop>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLifecyclePostStart {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<DruidNodesLifecyclePostStartExec>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<DruidNodesLifecyclePostStartHttpGet>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")]
pub tcp_socket: Option<DruidNodesLifecyclePostStartTcpSocket>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLifecyclePostStartExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLifecyclePostStartHttpGet {
#[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<DruidNodesLifecyclePostStartHttpGetHttpHeaders>>,
#[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, Default, PartialEq)]
pub struct DruidNodesLifecyclePostStartHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLifecyclePostStartTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLifecyclePreStop {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<DruidNodesLifecyclePreStopExec>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<DruidNodesLifecyclePreStopHttpGet>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")]
pub tcp_socket: Option<DruidNodesLifecyclePreStopTcpSocket>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLifecyclePreStopExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLifecyclePreStopHttpGet {
#[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<DruidNodesLifecyclePreStopHttpGetHttpHeaders>>,
#[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, Default, PartialEq)]
pub struct DruidNodesLifecyclePreStopHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLifecyclePreStopTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLivenessProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<DruidNodesLivenessProbeExec>,
#[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<DruidNodesLivenessProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<DruidNodesLivenessProbeHttpGet>,
#[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<DruidNodesLivenessProbeTcpSocket>,
#[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, Default, PartialEq)]
pub struct DruidNodesLivenessProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLivenessProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLivenessProbeHttpGet {
#[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<DruidNodesLivenessProbeHttpGetHttpHeaders>>,
#[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, Default, PartialEq)]
pub struct DruidNodesLivenessProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesLivenessProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum DruidNodesNodeType {
#[serde(rename = "historical")]
Historical,
#[serde(rename = "overlord")]
Overlord,
#[serde(rename = "middleManager")]
MiddleManager,
#[serde(rename = "indexer")]
Indexer,
#[serde(rename = "broker")]
Broker,
#[serde(rename = "coordinator")]
Coordinator,
#[serde(rename = "router")]
Router,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPersistentVolumeClaim {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<DruidNodesPersistentVolumeClaimMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spec: Option<DruidNodesPersistentVolumeClaimSpec>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<DruidNodesPersistentVolumeClaimStatus>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPersistentVolumeClaimMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub finalizers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPersistentVolumeClaimSpec {
#[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<DruidNodesPersistentVolumeClaimSpecDataSource>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")]
pub data_source_ref: Option<DruidNodesPersistentVolumeClaimSpecDataSourceRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<DruidNodesPersistentVolumeClaimSpecResources>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<DruidNodesPersistentVolumeClaimSpecSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")]
pub storage_class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")]
pub volume_mode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")]
pub volume_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPersistentVolumeClaimSpecDataSource {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPersistentVolumeClaimSpecDataSourceRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPersistentVolumeClaimSpecResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<DruidNodesPersistentVolumeClaimSpecResourcesClaims>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, IntOrString>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPersistentVolumeClaimSpecResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPersistentVolumeClaimSpecSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesPersistentVolumeClaimSpecSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPersistentVolumeClaimSpecSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPersistentVolumeClaimStatus {
#[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 = "allocatedResources")]
pub allocated_resources: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capacity: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phase: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resizeStatus")]
pub resize_status: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPodDisruptionBudgetSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")]
pub max_unavailable: Option<IntOrString>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "minAvailable")]
pub min_available: Option<IntOrString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<DruidNodesPodDisruptionBudgetSpecSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyPodEvictionPolicy")]
pub unhealthy_pod_eviction_policy: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPodDisruptionBudgetSpecSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesPodDisruptionBudgetSpecSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPodDisruptionBudgetSpecSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesPorts {
#[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, Default, PartialEq)]
pub struct DruidNodesReadinessProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<DruidNodesReadinessProbeExec>,
#[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<DruidNodesReadinessProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<DruidNodesReadinessProbeHttpGet>,
#[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<DruidNodesReadinessProbeTcpSocket>,
#[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, Default, PartialEq)]
pub struct DruidNodesReadinessProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesReadinessProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesReadinessProbeHttpGet {
#[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<DruidNodesReadinessProbeHttpGetHttpHeaders>>,
#[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, Default, PartialEq)]
pub struct DruidNodesReadinessProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesReadinessProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<DruidNodesResourcesClaims>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, IntOrString>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesSecurityContext {
#[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<DruidNodesSecurityContextSeLinuxOptions>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")]
pub seccomp_profile: Option<DruidNodesSecurityContextSeccompProfile>,
#[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<DruidNodesSecurityContextSysctls>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")]
pub windows_options: Option<DruidNodesSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesSecurityContextSeLinuxOptions {
#[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, Default, PartialEq)]
pub struct DruidNodesSecurityContextSeccompProfile {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")]
pub localhost_profile: Option<String>,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesSecurityContextSysctls {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesSecurityContextWindowsOptions {
#[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, Default, PartialEq)]
pub struct DruidNodesServices {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<DruidNodesServicesMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spec: Option<DruidNodesServicesSpec>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<DruidNodesServicesStatus>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesServicesMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub finalizers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesServicesSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "allocateLoadBalancerNodePorts")]
pub allocate_load_balancer_node_ports: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterIP")]
pub cluster_ip: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterIPs")]
pub cluster_i_ps: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "externalIPs")]
pub external_i_ps: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "externalName")]
pub external_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "externalTrafficPolicy")]
pub external_traffic_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "healthCheckNodePort")]
pub health_check_node_port: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "internalTrafficPolicy")]
pub internal_traffic_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ipFamilies")]
pub ip_families: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ipFamilyPolicy")]
pub ip_family_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerClass")]
pub load_balancer_class: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerIP")]
pub load_balancer_ip: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerSourceRanges")]
pub load_balancer_source_ranges: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ports: Option<Vec<DruidNodesServicesSpecPorts>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "publishNotReadyAddresses")]
pub publish_not_ready_addresses: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionAffinity")]
pub session_affinity: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionAffinityConfig")]
pub session_affinity_config: Option<DruidNodesServicesSpecSessionAffinityConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesServicesSpecPorts {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "appProtocol")]
pub app_protocol: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePort")]
pub node_port: Option<i32>,
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protocol: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetPort")]
pub target_port: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesServicesSpecSessionAffinityConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientIP")]
pub client_ip: Option<DruidNodesServicesSpecSessionAffinityConfigClientIp>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesServicesSpecSessionAffinityConfigClientIp {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")]
pub timeout_seconds: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesServicesStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancer")]
pub load_balancer: Option<DruidNodesServicesStatusLoadBalancer>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesServicesStatusLoadBalancer {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ingress: Option<Vec<DruidNodesServicesStatusLoadBalancerIngress>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesServicesStatusLoadBalancerIngress {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hostname: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ip: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ports: Option<Vec<DruidNodesServicesStatusLoadBalancerIngressPorts>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesServicesStatusLoadBalancerIngressPorts {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
pub port: i32,
pub protocol: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesStartUpProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<DruidNodesStartUpProbeExec>,
#[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<DruidNodesStartUpProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<DruidNodesStartUpProbeHttpGet>,
#[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<DruidNodesStartUpProbeTcpSocket>,
#[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, Default, PartialEq)]
pub struct DruidNodesStartUpProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesStartUpProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesStartUpProbeHttpGet {
#[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<DruidNodesStartUpProbeHttpGetHttpHeaders>>,
#[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, Default, PartialEq)]
pub struct DruidNodesStartUpProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesStartUpProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesTolerations {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub effect: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub operator: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")]
pub toleration_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesTopologySpreadConstraints {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<DruidNodesTopologySpreadConstraintsLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")]
pub match_label_keys: Option<Vec<String>>,
#[serde(rename = "maxSkew")]
pub max_skew: i32,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "minDomains")]
pub min_domains: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinityPolicy")]
pub node_affinity_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeTaintsPolicy")]
pub node_taints_policy: Option<String>,
#[serde(rename = "topologyKey")]
pub topology_key: String,
#[serde(rename = "whenUnsatisfiable")]
pub when_unsatisfiable: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesTopologySpreadConstraintsLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesTopologySpreadConstraintsLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesTopologySpreadConstraintsLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesUpdateStrategy {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "rollingUpdate")]
pub rolling_update: Option<DruidNodesUpdateStrategyRollingUpdate>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesUpdateStrategyRollingUpdate {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")]
pub max_unavailable: Option<IntOrString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub partition: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumeClaimTemplates {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<DruidNodesVolumeClaimTemplatesMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spec: Option<DruidNodesVolumeClaimTemplatesSpec>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<DruidNodesVolumeClaimTemplatesStatus>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumeClaimTemplatesMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub finalizers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumeClaimTemplatesSpec {
#[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<DruidNodesVolumeClaimTemplatesSpecDataSource>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")]
pub data_source_ref: Option<DruidNodesVolumeClaimTemplatesSpecDataSourceRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<DruidNodesVolumeClaimTemplatesSpecResources>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<DruidNodesVolumeClaimTemplatesSpecSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")]
pub storage_class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")]
pub volume_mode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")]
pub volume_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumeClaimTemplatesSpecDataSource {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumeClaimTemplatesSpecDataSourceRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumeClaimTemplatesSpecResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<DruidNodesVolumeClaimTemplatesSpecResourcesClaims>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, IntOrString>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumeClaimTemplatesSpecResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumeClaimTemplatesSpecSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesVolumeClaimTemplatesSpecSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumeClaimTemplatesSpecSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumeClaimTemplatesStatus {
#[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 = "allocatedResources")]
pub allocated_resources: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capacity: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phase: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resizeStatus")]
pub resize_status: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumeMounts {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumes {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")]
pub aws_elastic_block_store: Option<DruidNodesVolumesAwsElasticBlockStore>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")]
pub azure_disk: Option<DruidNodesVolumesAzureDisk>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")]
pub azure_file: Option<DruidNodesVolumesAzureFile>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cephfs: Option<DruidNodesVolumesCephfs>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cinder: Option<DruidNodesVolumesCinder>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<DruidNodesVolumesConfigMap>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub csi: Option<DruidNodesVolumesCsi>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")]
pub downward_api: Option<DruidNodesVolumesDownwardApi>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")]
pub empty_dir: Option<DruidNodesVolumesEmptyDir>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ephemeral: Option<DruidNodesVolumesEphemeral>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fc: Option<DruidNodesVolumesFc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")]
pub flex_volume: Option<DruidNodesVolumesFlexVolume>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub flocker: Option<DruidNodesVolumesFlocker>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")]
pub gce_persistent_disk: Option<DruidNodesVolumesGcePersistentDisk>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")]
pub git_repo: Option<DruidNodesVolumesGitRepo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub glusterfs: Option<DruidNodesVolumesGlusterfs>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")]
pub host_path: Option<DruidNodesVolumesHostPath>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub iscsi: Option<DruidNodesVolumesIscsi>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nfs: Option<DruidNodesVolumesNfs>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")]
pub persistent_volume_claim: Option<DruidNodesVolumesPersistentVolumeClaim>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")]
pub photon_persistent_disk: Option<DruidNodesVolumesPhotonPersistentDisk>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")]
pub portworx_volume: Option<DruidNodesVolumesPortworxVolume>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub projected: Option<DruidNodesVolumesProjected>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quobyte: Option<DruidNodesVolumesQuobyte>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rbd: Option<DruidNodesVolumesRbd>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")]
pub scale_io: Option<DruidNodesVolumesScaleIo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<DruidNodesVolumesSecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub storageos: Option<DruidNodesVolumesStorageos>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")]
pub vsphere_volume: Option<DruidNodesVolumesVsphereVolume>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesAwsElasticBlockStore {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesAzureDisk {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesAzureFile {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesCephfs {
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<DruidNodesVolumesCephfsSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesCephfsSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesCinder {
#[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<DruidNodesVolumesCinderSecretRef>,
#[serde(rename = "volumeID")]
pub volume_id: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesCinderSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesConfigMap {
#[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<DruidNodesVolumesConfigMapItems>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesConfigMapItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesCsi {
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<DruidNodesVolumesCsiNodePublishSecretRef>,
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesCsiNodePublishSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesDownwardApi {
#[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<DruidNodesVolumesDownwardApiItems>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesDownwardApiItems {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<DruidNodesVolumesDownwardApiItemsFieldRef>,
#[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<DruidNodesVolumesDownwardApiItemsResourceFieldRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesDownwardApiItemsFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(rename = "fieldPath")]
pub field_path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesDownwardApiItemsResourceFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub divisor: Option<IntOrString>,
pub resource: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesEmptyDir {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesEphemeral {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeClaimTemplate")]
pub volume_claim_template: Option<DruidNodesVolumesEphemeralVolumeClaimTemplate>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesEphemeralVolumeClaimTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<DruidNodesVolumesEphemeralVolumeClaimTemplateMetadata>,
pub spec: DruidNodesVolumesEphemeralVolumeClaimTemplateSpec,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesEphemeralVolumeClaimTemplateMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub finalizers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesEphemeralVolumeClaimTemplateSpec {
#[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<DruidNodesVolumesEphemeralVolumeClaimTemplateSpecDataSource>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")]
pub data_source_ref: Option<DruidNodesVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<DruidNodesVolumesEphemeralVolumeClaimTemplateSpecResources>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<DruidNodesVolumesEphemeralVolumeClaimTemplateSpecSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")]
pub storage_class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")]
pub volume_mode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")]
pub volume_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesEphemeralVolumeClaimTemplateSpecDataSource {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesEphemeralVolumeClaimTemplateSpecResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<DruidNodesVolumesEphemeralVolumeClaimTemplateSpecResourcesClaims>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, IntOrString>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesEphemeralVolumeClaimTemplateSpecResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesEphemeralVolumeClaimTemplateSpecSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidNodesVolumesEphemeralVolumeClaimTemplateSpecSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesEphemeralVolumeClaimTemplateSpecSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesFc {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesFlexVolume {
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<DruidNodesVolumesFlexVolumeSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesFlexVolumeSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesFlocker {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesGcePersistentDisk {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesGitRepo {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesGlusterfs {
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, Default, PartialEq)]
pub struct DruidNodesVolumesHostPath {
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesIscsi {
#[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<DruidNodesVolumesIscsiSecretRef>,
#[serde(rename = "targetPortal")]
pub target_portal: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesIscsiSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesNfs {
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, Default, PartialEq)]
pub struct DruidNodesVolumesPersistentVolumeClaim {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesPhotonPersistentDisk {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesPortworxVolume {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesProjected {
#[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<DruidNodesVolumesProjectedSources>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesProjectedSources {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<DruidNodesVolumesProjectedSourcesConfigMap>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")]
pub downward_api: Option<DruidNodesVolumesProjectedSourcesDownwardApi>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<DruidNodesVolumesProjectedSourcesSecret>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")]
pub service_account_token: Option<DruidNodesVolumesProjectedSourcesServiceAccountToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesProjectedSourcesConfigMap {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<DruidNodesVolumesProjectedSourcesConfigMapItems>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesProjectedSourcesConfigMapItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesProjectedSourcesDownwardApi {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<DruidNodesVolumesProjectedSourcesDownwardApiItems>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesProjectedSourcesDownwardApiItems {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<DruidNodesVolumesProjectedSourcesDownwardApiItemsFieldRef>,
#[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<DruidNodesVolumesProjectedSourcesDownwardApiItemsResourceFieldRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesProjectedSourcesDownwardApiItemsFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(rename = "fieldPath")]
pub field_path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesProjectedSourcesDownwardApiItemsResourceFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub divisor: Option<IntOrString>,
pub resource: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesProjectedSourcesSecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<DruidNodesVolumesProjectedSourcesSecretItems>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesProjectedSourcesSecretItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesProjectedSourcesServiceAccountToken {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audience: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")]
pub expiration_seconds: Option<i64>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesQuobyte {
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesRbd {
#[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<DruidNodesVolumesRbdSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesRbdSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesScaleIo {
#[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: DruidNodesVolumesScaleIoSecretRef,
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesScaleIoSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesSecret {
#[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<DruidNodesVolumesSecretItems>>,
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesSecretItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesStorageos {
#[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<DruidNodesVolumesStorageosSecretRef>,
#[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, Default, PartialEq)]
pub struct DruidNodesVolumesStorageosSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidNodesVolumesVsphereVolume {
#[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, Default, PartialEq)]
pub struct DruidReadinessProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<DruidReadinessProbeExec>,
#[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<DruidReadinessProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<DruidReadinessProbeHttpGet>,
#[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<DruidReadinessProbeTcpSocket>,
#[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, Default, PartialEq)]
pub struct DruidReadinessProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidReadinessProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidReadinessProbeHttpGet {
#[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<DruidReadinessProbeHttpGetHttpHeaders>>,
#[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, Default, PartialEq)]
pub struct DruidReadinessProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidReadinessProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidSecurityContext {
#[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<DruidSecurityContextSeLinuxOptions>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")]
pub seccomp_profile: Option<DruidSecurityContextSeccompProfile>,
#[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<DruidSecurityContextSysctls>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")]
pub windows_options: Option<DruidSecurityContextWindowsOptions>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidSecurityContextSeLinuxOptions {
#[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, Default, PartialEq)]
pub struct DruidSecurityContextSeccompProfile {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")]
pub localhost_profile: Option<String>,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidSecurityContextSysctls {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidSecurityContextWindowsOptions {
#[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, Default, PartialEq)]
pub struct DruidServices {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<DruidServicesMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spec: Option<DruidServicesSpec>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<DruidServicesStatus>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidServicesMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub finalizers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidServicesSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "allocateLoadBalancerNodePorts")]
pub allocate_load_balancer_node_ports: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterIP")]
pub cluster_ip: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterIPs")]
pub cluster_i_ps: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "externalIPs")]
pub external_i_ps: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "externalName")]
pub external_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "externalTrafficPolicy")]
pub external_traffic_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "healthCheckNodePort")]
pub health_check_node_port: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "internalTrafficPolicy")]
pub internal_traffic_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ipFamilies")]
pub ip_families: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ipFamilyPolicy")]
pub ip_family_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerClass")]
pub load_balancer_class: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerIP")]
pub load_balancer_ip: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerSourceRanges")]
pub load_balancer_source_ranges: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ports: Option<Vec<DruidServicesSpecPorts>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "publishNotReadyAddresses")]
pub publish_not_ready_addresses: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionAffinity")]
pub session_affinity: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionAffinityConfig")]
pub session_affinity_config: Option<DruidServicesSpecSessionAffinityConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidServicesSpecPorts {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "appProtocol")]
pub app_protocol: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodePort")]
pub node_port: Option<i32>,
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protocol: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetPort")]
pub target_port: Option<IntOrString>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidServicesSpecSessionAffinityConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientIP")]
pub client_ip: Option<DruidServicesSpecSessionAffinityConfigClientIp>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidServicesSpecSessionAffinityConfigClientIp {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")]
pub timeout_seconds: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidServicesStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancer")]
pub load_balancer: Option<DruidServicesStatusLoadBalancer>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidServicesStatusLoadBalancer {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ingress: Option<Vec<DruidServicesStatusLoadBalancerIngress>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidServicesStatusLoadBalancerIngress {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hostname: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ip: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ports: Option<Vec<DruidServicesStatusLoadBalancerIngressPorts>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidServicesStatusLoadBalancerIngressPorts {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
pub port: i32,
pub protocol: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidStartUpProbe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exec: Option<DruidStartUpProbeExec>,
#[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<DruidStartUpProbeGrpc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")]
pub http_get: Option<DruidStartUpProbeHttpGet>,
#[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<DruidStartUpProbeTcpSocket>,
#[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, Default, PartialEq)]
pub struct DruidStartUpProbeExec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidStartUpProbeGrpc {
pub port: i32,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidStartUpProbeHttpGet {
#[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<DruidStartUpProbeHttpGetHttpHeaders>>,
#[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, Default, PartialEq)]
pub struct DruidStartUpProbeHttpGetHttpHeaders {
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidStartUpProbeTcpSocket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
pub port: IntOrString,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidTolerations {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub effect: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub operator: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tolerationSeconds")]
pub toleration_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidUpdateStrategy {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "rollingUpdate")]
pub rolling_update: Option<DruidUpdateStrategyRollingUpdate>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidUpdateStrategyRollingUpdate {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")]
pub max_unavailable: Option<IntOrString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub partition: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumeClaimTemplates {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<DruidVolumeClaimTemplatesMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spec: Option<DruidVolumeClaimTemplatesSpec>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<DruidVolumeClaimTemplatesStatus>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumeClaimTemplatesMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub finalizers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumeClaimTemplatesSpec {
#[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<DruidVolumeClaimTemplatesSpecDataSource>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")]
pub data_source_ref: Option<DruidVolumeClaimTemplatesSpecDataSourceRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<DruidVolumeClaimTemplatesSpecResources>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<DruidVolumeClaimTemplatesSpecSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")]
pub storage_class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")]
pub volume_mode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")]
pub volume_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumeClaimTemplatesSpecDataSource {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumeClaimTemplatesSpecDataSourceRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumeClaimTemplatesSpecResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<DruidVolumeClaimTemplatesSpecResourcesClaims>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, IntOrString>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumeClaimTemplatesSpecResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumeClaimTemplatesSpecSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidVolumeClaimTemplatesSpecSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumeClaimTemplatesSpecSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumeClaimTemplatesStatus {
#[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 = "allocatedResources")]
pub allocated_resources: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capacity: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phase: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resizeStatus")]
pub resize_status: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumeMounts {
#[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, Default, PartialEq)]
pub struct DruidVolumes {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "awsElasticBlockStore")]
pub aws_elastic_block_store: Option<DruidVolumesAwsElasticBlockStore>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "azureDisk")]
pub azure_disk: Option<DruidVolumesAzureDisk>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "azureFile")]
pub azure_file: Option<DruidVolumesAzureFile>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cephfs: Option<DruidVolumesCephfs>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cinder: Option<DruidVolumesCinder>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<DruidVolumesConfigMap>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub csi: Option<DruidVolumesCsi>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")]
pub downward_api: Option<DruidVolumesDownwardApi>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "emptyDir")]
pub empty_dir: Option<DruidVolumesEmptyDir>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ephemeral: Option<DruidVolumesEphemeral>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fc: Option<DruidVolumesFc>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "flexVolume")]
pub flex_volume: Option<DruidVolumesFlexVolume>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub flocker: Option<DruidVolumesFlocker>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "gcePersistentDisk")]
pub gce_persistent_disk: Option<DruidVolumesGcePersistentDisk>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "gitRepo")]
pub git_repo: Option<DruidVolumesGitRepo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub glusterfs: Option<DruidVolumesGlusterfs>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPath")]
pub host_path: Option<DruidVolumesHostPath>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub iscsi: Option<DruidVolumesIscsi>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nfs: Option<DruidVolumesNfs>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")]
pub persistent_volume_claim: Option<DruidVolumesPersistentVolumeClaim>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "photonPersistentDisk")]
pub photon_persistent_disk: Option<DruidVolumesPhotonPersistentDisk>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "portworxVolume")]
pub portworx_volume: Option<DruidVolumesPortworxVolume>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub projected: Option<DruidVolumesProjected>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quobyte: Option<DruidVolumesQuobyte>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rbd: Option<DruidVolumesRbd>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "scaleIO")]
pub scale_io: Option<DruidVolumesScaleIo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<DruidVolumesSecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub storageos: Option<DruidVolumesStorageos>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "vsphereVolume")]
pub vsphere_volume: Option<DruidVolumesVsphereVolume>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesAwsElasticBlockStore {
#[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, Default, PartialEq)]
pub struct DruidVolumesAzureDisk {
#[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, Default, PartialEq)]
pub struct DruidVolumesAzureFile {
#[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, Default, PartialEq)]
pub struct DruidVolumesCephfs {
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<DruidVolumesCephfsSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesCephfsSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesCinder {
#[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<DruidVolumesCinderSecretRef>,
#[serde(rename = "volumeID")]
pub volume_id: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesCinderSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesConfigMap {
#[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<DruidVolumesConfigMapItems>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesConfigMapItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesCsi {
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<DruidVolumesCsiNodePublishSecretRef>,
#[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, Default, PartialEq)]
pub struct DruidVolumesCsiNodePublishSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesDownwardApi {
#[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<DruidVolumesDownwardApiItems>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesDownwardApiItems {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<DruidVolumesDownwardApiItemsFieldRef>,
#[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<DruidVolumesDownwardApiItemsResourceFieldRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesDownwardApiItemsFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(rename = "fieldPath")]
pub field_path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesDownwardApiItemsResourceFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub divisor: Option<IntOrString>,
pub resource: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesEmptyDir {
#[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, Default, PartialEq)]
pub struct DruidVolumesEphemeral {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeClaimTemplate")]
pub volume_claim_template: Option<DruidVolumesEphemeralVolumeClaimTemplate>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesEphemeralVolumeClaimTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<DruidVolumesEphemeralVolumeClaimTemplateMetadata>,
pub spec: DruidVolumesEphemeralVolumeClaimTemplateSpec,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesEphemeralVolumeClaimTemplateMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub finalizers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesEphemeralVolumeClaimTemplateSpec {
#[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<DruidVolumesEphemeralVolumeClaimTemplateSpecDataSource>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")]
pub data_source_ref: Option<DruidVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<DruidVolumesEphemeralVolumeClaimTemplateSpecResources>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<DruidVolumesEphemeralVolumeClaimTemplateSpecSelector>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageClassName")]
pub storage_class_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMode")]
pub volume_mode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeName")]
pub volume_name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesEphemeralVolumeClaimTemplateSpecDataSource {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesEphemeralVolumeClaimTemplateSpecDataSourceRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")]
pub api_group: Option<String>,
pub kind: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesEphemeralVolumeClaimTemplateSpecResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub claims: Option<Vec<DruidVolumesEphemeralVolumeClaimTemplateSpecResourcesClaims>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limits: Option<BTreeMap<String, IntOrString>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requests: Option<BTreeMap<String, IntOrString>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesEphemeralVolumeClaimTemplateSpecResourcesClaims {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesEphemeralVolumeClaimTemplateSpecSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<DruidVolumesEphemeralVolumeClaimTemplateSpecSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesEphemeralVolumeClaimTemplateSpecSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesFc {
#[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, Default, PartialEq)]
pub struct DruidVolumesFlexVolume {
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<DruidVolumesFlexVolumeSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesFlexVolumeSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesFlocker {
#[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, Default, PartialEq)]
pub struct DruidVolumesGcePersistentDisk {
#[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, Default, PartialEq)]
pub struct DruidVolumesGitRepo {
#[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, Default, PartialEq)]
pub struct DruidVolumesGlusterfs {
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, Default, PartialEq)]
pub struct DruidVolumesHostPath {
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesIscsi {
#[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<DruidVolumesIscsiSecretRef>,
#[serde(rename = "targetPortal")]
pub target_portal: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesIscsiSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesNfs {
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, Default, PartialEq)]
pub struct DruidVolumesPersistentVolumeClaim {
#[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, Default, PartialEq)]
pub struct DruidVolumesPhotonPersistentDisk {
#[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, Default, PartialEq)]
pub struct DruidVolumesPortworxVolume {
#[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, Default, PartialEq)]
pub struct DruidVolumesProjected {
#[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<DruidVolumesProjectedSources>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesProjectedSources {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<DruidVolumesProjectedSourcesConfigMap>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "downwardAPI")]
pub downward_api: Option<DruidVolumesProjectedSourcesDownwardApi>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<DruidVolumesProjectedSourcesSecret>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountToken")]
pub service_account_token: Option<DruidVolumesProjectedSourcesServiceAccountToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesProjectedSourcesConfigMap {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<DruidVolumesProjectedSourcesConfigMapItems>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesProjectedSourcesConfigMapItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesProjectedSourcesDownwardApi {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<DruidVolumesProjectedSourcesDownwardApiItems>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesProjectedSourcesDownwardApiItems {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<DruidVolumesProjectedSourcesDownwardApiItemsFieldRef>,
#[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<DruidVolumesProjectedSourcesDownwardApiItemsResourceFieldRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesProjectedSourcesDownwardApiItemsFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
#[serde(rename = "fieldPath")]
pub field_path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesProjectedSourcesDownwardApiItemsResourceFieldRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub divisor: Option<IntOrString>,
pub resource: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesProjectedSourcesSecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<Vec<DruidVolumesProjectedSourcesSecretItems>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesProjectedSourcesSecretItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesProjectedSourcesServiceAccountToken {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audience: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")]
pub expiration_seconds: Option<i64>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesQuobyte {
#[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, Default, PartialEq)]
pub struct DruidVolumesRbd {
#[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<DruidVolumesRbdSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesRbdSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesScaleIo {
#[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: DruidVolumesScaleIoSecretRef,
#[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, Default, PartialEq)]
pub struct DruidVolumesScaleIoSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesSecret {
#[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<DruidVolumesSecretItems>>,
#[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, Default, PartialEq)]
pub struct DruidVolumesSecretItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<i32>,
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesStorageos {
#[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<DruidVolumesStorageosSecretRef>,
#[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, Default, PartialEq)]
pub struct DruidVolumesStorageosSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidVolumesVsphereVolume {
#[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, Default, PartialEq)]
pub struct DruidZookeeper {
pub spec: String,
#[serde(rename = "type")]
pub r#type: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMaps")]
pub config_maps: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deployments: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "druidNodeStatus")]
pub druid_node_status: Option<DruidStatusDruidNodeStatus>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "hpAutoscalers")]
pub hp_autoscalers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ingress: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaims")]
pub persistent_volume_claims: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podDisruptionBudgets")]
pub pod_disruption_budgets: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pods: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub services: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "statefulSets")]
pub stateful_sets: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct DruidStatusDruidNodeStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "druidNode")]
pub druid_node: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "druidNodeConditionStatus")]
pub druid_node_condition_status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "druidNodeConditionType")]
pub druid_node_condition_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
}