#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, PartialEq)]
#[kube(group = "spark.stackable.tech", version = "v1alpha1", kind = "SparkApplication", plural = "sparkapplications")]
#[kube(namespaced)]
#[kube(status = "SparkApplicationStatus")]
#[kube(schema = "disabled")]
#[kube(derive="PartialEq")]
pub struct SparkApplicationSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub args: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deps: Option<SparkApplicationDeps>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub driver: Option<SparkApplicationDriver>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub env: Option<Vec<SparkApplicationEnv>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub executor: Option<SparkApplicationExecutor>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub image: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job: Option<SparkApplicationJob>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "logFileDirectory")]
pub log_file_directory: Option<SparkApplicationLogFileDirectory>,
#[serde(rename = "mainApplicationFile")]
pub main_application_file: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mainClass")]
pub main_class: Option<String>,
pub mode: SparkApplicationMode,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub s3connection: Option<SparkApplicationS3connection>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sparkConf")]
pub spark_conf: Option<BTreeMap<String, String>>,
#[serde(rename = "sparkImage")]
pub spark_image: SparkApplicationSparkImage,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "vectorAggregatorConfigMapName")]
pub vector_aggregator_config_map_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub volumes: Option<Vec<BTreeMap<String, serde_json::Value>>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDeps {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "excludePackages")]
pub exclude_packages: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub packages: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub repositories: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requirements: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriver {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
pub cli_overrides: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<SparkApplicationDriverConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
pub env_overrides: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "jvmArgumentOverrides")]
pub jvm_argument_overrides: Option<SparkApplicationDriverJvmArgumentOverrides>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfig {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub affinity: Option<SparkApplicationDriverConfigAffinity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub logging: Option<SparkApplicationDriverConfigLogging>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "requestedSecretLifetime")]
pub requested_secret_lifetime: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<SparkApplicationDriverConfigResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")]
pub volume_mounts: Option<Vec<BTreeMap<String, serde_json::Value>>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigAffinity {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
#[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 = "podAffinity")]
pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigLogging {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub containers: Option<BTreeMap<String, SparkApplicationDriverConfigLoggingContainers>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
pub enable_vector_agent: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigLoggingContainers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub console: Option<SparkApplicationDriverConfigLoggingContainersConsole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom: Option<SparkApplicationDriverConfigLoggingContainersCustom>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file: Option<SparkApplicationDriverConfigLoggingContainersFile>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub loggers: Option<BTreeMap<String, SparkApplicationDriverConfigLoggingContainersLoggers>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigLoggingContainersConsole {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<SparkApplicationDriverConfigLoggingContainersConsoleLevel>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SparkApplicationDriverConfigLoggingContainersConsoleLevel {
#[serde(rename = "TRACE")]
Trace,
#[serde(rename = "DEBUG")]
Debug,
#[serde(rename = "INFO")]
Info,
#[serde(rename = "WARN")]
Warn,
#[serde(rename = "ERROR")]
Error,
#[serde(rename = "FATAL")]
Fatal,
#[serde(rename = "NONE")]
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigLoggingContainersCustom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigLoggingContainersFile {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<SparkApplicationDriverConfigLoggingContainersFileLevel>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SparkApplicationDriverConfigLoggingContainersFileLevel {
#[serde(rename = "TRACE")]
Trace,
#[serde(rename = "DEBUG")]
Debug,
#[serde(rename = "INFO")]
Info,
#[serde(rename = "WARN")]
Warn,
#[serde(rename = "ERROR")]
Error,
#[serde(rename = "FATAL")]
Fatal,
#[serde(rename = "NONE")]
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigLoggingContainersLoggers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<SparkApplicationDriverConfigLoggingContainersLoggersLevel>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SparkApplicationDriverConfigLoggingContainersLoggersLevel {
#[serde(rename = "TRACE")]
Trace,
#[serde(rename = "DEBUG")]
Debug,
#[serde(rename = "INFO")]
Info,
#[serde(rename = "WARN")]
Warn,
#[serde(rename = "ERROR")]
Error,
#[serde(rename = "FATAL")]
Fatal,
#[serde(rename = "NONE")]
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cpu: Option<SparkApplicationDriverConfigResourcesCpu>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory: Option<SparkApplicationDriverConfigResourcesMemory>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub storage: Option<SparkApplicationDriverConfigResourcesStorage>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigResourcesCpu {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub min: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigResourcesMemory {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
pub runtime_limits: Option<SparkApplicationDriverConfigResourcesMemoryRuntimeLimits>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigResourcesMemoryRuntimeLimits {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverConfigResourcesStorage {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationDriverJvmArgumentOverrides {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub add: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub remove: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "removeRegex")]
pub remove_regex: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationEnv {
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<SparkApplicationEnvValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationEnvValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")]
pub config_map_key_ref: Option<SparkApplicationEnvValueFromConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")]
pub field_ref: Option<SparkApplicationEnvValueFromFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")]
pub resource_field_ref: Option<SparkApplicationEnvValueFromResourceFieldRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<SparkApplicationEnvValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationEnvValueFromConfigMapKeyRef {
pub key: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationEnvValueFromFieldRef {
#[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 SparkApplicationEnvValueFromResourceFieldRef {
#[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<String>,
pub resource: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationEnvValueFromSecretKeyRef {
pub key: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutor {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
pub cli_overrides: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<SparkApplicationExecutorConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
pub env_overrides: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "jvmArgumentOverrides")]
pub jvm_argument_overrides: Option<SparkApplicationExecutorJvmArgumentOverrides>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replicas: Option<u16>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfig {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub affinity: Option<SparkApplicationExecutorConfigAffinity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub logging: Option<SparkApplicationExecutorConfigLogging>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "requestedSecretLifetime")]
pub requested_secret_lifetime: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<SparkApplicationExecutorConfigResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")]
pub volume_mounts: Option<Vec<BTreeMap<String, serde_json::Value>>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigAffinity {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
#[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 = "podAffinity")]
pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigLogging {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub containers: Option<BTreeMap<String, SparkApplicationExecutorConfigLoggingContainers>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
pub enable_vector_agent: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigLoggingContainers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub console: Option<SparkApplicationExecutorConfigLoggingContainersConsole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom: Option<SparkApplicationExecutorConfigLoggingContainersCustom>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file: Option<SparkApplicationExecutorConfigLoggingContainersFile>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub loggers: Option<BTreeMap<String, SparkApplicationExecutorConfigLoggingContainersLoggers>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigLoggingContainersConsole {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<SparkApplicationExecutorConfigLoggingContainersConsoleLevel>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SparkApplicationExecutorConfigLoggingContainersConsoleLevel {
#[serde(rename = "TRACE")]
Trace,
#[serde(rename = "DEBUG")]
Debug,
#[serde(rename = "INFO")]
Info,
#[serde(rename = "WARN")]
Warn,
#[serde(rename = "ERROR")]
Error,
#[serde(rename = "FATAL")]
Fatal,
#[serde(rename = "NONE")]
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigLoggingContainersCustom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigLoggingContainersFile {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<SparkApplicationExecutorConfigLoggingContainersFileLevel>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SparkApplicationExecutorConfigLoggingContainersFileLevel {
#[serde(rename = "TRACE")]
Trace,
#[serde(rename = "DEBUG")]
Debug,
#[serde(rename = "INFO")]
Info,
#[serde(rename = "WARN")]
Warn,
#[serde(rename = "ERROR")]
Error,
#[serde(rename = "FATAL")]
Fatal,
#[serde(rename = "NONE")]
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigLoggingContainersLoggers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<SparkApplicationExecutorConfigLoggingContainersLoggersLevel>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SparkApplicationExecutorConfigLoggingContainersLoggersLevel {
#[serde(rename = "TRACE")]
Trace,
#[serde(rename = "DEBUG")]
Debug,
#[serde(rename = "INFO")]
Info,
#[serde(rename = "WARN")]
Warn,
#[serde(rename = "ERROR")]
Error,
#[serde(rename = "FATAL")]
Fatal,
#[serde(rename = "NONE")]
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cpu: Option<SparkApplicationExecutorConfigResourcesCpu>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory: Option<SparkApplicationExecutorConfigResourcesMemory>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub storage: Option<SparkApplicationExecutorConfigResourcesStorage>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigResourcesCpu {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub min: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigResourcesMemory {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
pub runtime_limits: Option<SparkApplicationExecutorConfigResourcesMemoryRuntimeLimits>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigResourcesMemoryRuntimeLimits {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorConfigResourcesStorage {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationExecutorJvmArgumentOverrides {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub add: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub remove: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "removeRegex")]
pub remove_regex: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationJob {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
pub cli_overrides: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<SparkApplicationJobConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
pub env_overrides: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "jvmArgumentOverrides")]
pub jvm_argument_overrides: Option<SparkApplicationJobJvmArgumentOverrides>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationJobConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "requestedSecretLifetime")]
pub requested_secret_lifetime: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<SparkApplicationJobConfigResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")]
pub volume_mounts: Option<Vec<BTreeMap<String, serde_json::Value>>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationJobConfigResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cpu: Option<SparkApplicationJobConfigResourcesCpu>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory: Option<SparkApplicationJobConfigResourcesMemory>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub storage: Option<SparkApplicationJobConfigResourcesStorage>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationJobConfigResourcesCpu {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub min: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationJobConfigResourcesMemory {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
pub runtime_limits: Option<SparkApplicationJobConfigResourcesMemoryRuntimeLimits>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationJobConfigResourcesMemoryRuntimeLimits {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationJobConfigResourcesStorage {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationJobJvmArgumentOverrides {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub add: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub remove: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "removeRegex")]
pub remove_regex: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectory {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "customLogDirectory")]
pub custom_log_directory: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub s3: Option<SparkApplicationLogFileDirectoryS3>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3 {
pub bucket: SparkApplicationLogFileDirectoryS3Bucket,
pub prefix: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3Bucket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inline: Option<SparkApplicationLogFileDirectoryS3BucketInline>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reference: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInline {
#[serde(rename = "bucketName")]
pub bucket_name: String,
pub connection: SparkApplicationLogFileDirectoryS3BucketInlineConnection,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInlineConnection {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inline: Option<SparkApplicationLogFileDirectoryS3BucketInlineConnectionInline>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reference: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInlineConnectionInline {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessStyle")]
pub access_style: Option<SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineAccessStyle>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub credentials: Option<SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineCredentials>,
pub host: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<u16>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub region: Option<SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineRegion>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tls: Option<SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTls>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineAccessStyle {
Path,
VirtualHosted,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineCredentials {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineCredentialsScope>,
#[serde(rename = "secretClass")]
pub secret_class: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineCredentialsScope {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "listenerVolumes")]
pub listener_volumes: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub node: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pod: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub services: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineRegion {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTls {
pub verification: SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTlsVerification,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTlsVerification {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub none: Option<SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTlsVerificationNone>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub server: Option<SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTlsVerificationServer>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTlsVerificationNone {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTlsVerificationServer {
#[serde(rename = "caCert")]
pub ca_cert: SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTlsVerificationServerCaCert,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTlsVerificationServerCaCert {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretClass")]
pub secret_class: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "webPki")]
pub web_pki: Option<SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTlsVerificationServerCaCertWebPki>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationLogFileDirectoryS3BucketInlineConnectionInlineTlsVerificationServerCaCertWebPki {
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SparkApplicationMode {
#[serde(rename = "cluster")]
Cluster,
#[serde(rename = "client")]
Client,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationS3connection {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inline: Option<SparkApplicationS3connectionInline>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reference: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationS3connectionInline {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessStyle")]
pub access_style: Option<SparkApplicationS3connectionInlineAccessStyle>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub credentials: Option<SparkApplicationS3connectionInlineCredentials>,
pub host: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<u16>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub region: Option<SparkApplicationS3connectionInlineRegion>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tls: Option<SparkApplicationS3connectionInlineTls>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SparkApplicationS3connectionInlineAccessStyle {
Path,
VirtualHosted,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationS3connectionInlineCredentials {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<SparkApplicationS3connectionInlineCredentialsScope>,
#[serde(rename = "secretClass")]
pub secret_class: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationS3connectionInlineCredentialsScope {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "listenerVolumes")]
pub listener_volumes: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub node: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pod: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub services: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationS3connectionInlineRegion {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationS3connectionInlineTls {
pub verification: SparkApplicationS3connectionInlineTlsVerification,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationS3connectionInlineTlsVerification {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub none: Option<SparkApplicationS3connectionInlineTlsVerificationNone>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub server: Option<SparkApplicationS3connectionInlineTlsVerificationServer>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationS3connectionInlineTlsVerificationNone {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationS3connectionInlineTlsVerificationServer {
#[serde(rename = "caCert")]
pub ca_cert: SparkApplicationS3connectionInlineTlsVerificationServerCaCert,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationS3connectionInlineTlsVerificationServerCaCert {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretClass")]
pub secret_class: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "webPki")]
pub web_pki: Option<SparkApplicationS3connectionInlineTlsVerificationServerCaCertWebPki>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationS3connectionInlineTlsVerificationServerCaCertWebPki {
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationSparkImage {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "productVersion")]
pub product_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pullPolicy")]
pub pull_policy: Option<SparkApplicationSparkImagePullPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pullSecrets")]
pub pull_secrets: Option<Vec<SparkApplicationSparkImagePullSecrets>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub repo: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "stackableVersion")]
pub stackable_version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SparkApplicationSparkImagePullPolicy {
IfNotPresent,
Always,
Never,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationSparkImagePullSecrets {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SparkApplicationStatus {
pub phase: String,
}