1#[allow(unused_imports)]
6mod prelude {
7 pub use kube::CustomResource;
8 pub use serde::{Serialize, Deserialize};
9 pub use std::collections::BTreeMap;
10 pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
11}
12
13use self::prelude::*;
14
15#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
22#[kube(group = "airflow.stackable.tech", version = "v1alpha1", kind = "AirflowCluster", plural = "airflowclusters")]
23#[kube(namespaced)]
24#[kube(status = "AirflowClusterStatus")]
25#[kube(schema = "disabled")]
26#[kube(derive="Default")]
27#[kube(derive="PartialEq")]
28pub struct AirflowClusterSpec {
29 #[serde(default, skip_serializing_if = "Option::is_none", rename = "celeryExecutors")]
32 pub celery_executors: Option<AirflowClusterCeleryExecutors>,
33 #[serde(rename = "clusterConfig")]
36 pub cluster_config: AirflowClusterClusterConfig,
37 #[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterOperation")]
40 pub cluster_operation: Option<AirflowClusterClusterOperation>,
41 #[serde(default, skip_serializing_if = "Option::is_none", rename = "dagProcessors")]
43 pub dag_processors: Option<AirflowClusterDagProcessors>,
44 pub image: AirflowClusterImage,
51 #[serde(default, skip_serializing_if = "Option::is_none", rename = "kubernetesExecutors")]
53 pub kubernetes_executors: Option<AirflowClusterKubernetesExecutors>,
54 #[serde(default, skip_serializing_if = "Option::is_none", rename = "objectOverrides")]
62 pub object_overrides: Option<Vec<BTreeMap<String, serde_json::Value>>>,
63 #[serde(default, skip_serializing_if = "Option::is_none")]
66 pub schedulers: Option<AirflowClusterSchedulers>,
67 #[serde(default, skip_serializing_if = "Option::is_none")]
69 pub triggerers: Option<AirflowClusterTriggerers>,
70 #[serde(default, skip_serializing_if = "Option::is_none")]
72 pub webservers: Option<AirflowClusterWebservers>,
73}
74
75#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
78pub struct AirflowClusterCeleryExecutors {
79 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
80 pub cli_overrides: Option<BTreeMap<String, String>>,
81 #[serde(default, skip_serializing_if = "Option::is_none")]
82 pub config: Option<AirflowClusterCeleryExecutorsConfig>,
83 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
89 pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
90 #[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
97 pub env_overrides: Option<BTreeMap<String, String>>,
98 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
105 pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
106 #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleConfig")]
108 pub role_config: Option<AirflowClusterCeleryExecutorsRoleConfig>,
109 #[serde(rename = "roleGroups")]
110 pub role_groups: BTreeMap<String, AirflowClusterCeleryExecutorsRoleGroups>,
111}
112
113#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
114pub struct AirflowClusterCeleryExecutorsConfig {
115 #[serde(default, skip_serializing_if = "Option::is_none")]
118 pub affinity: Option<AirflowClusterCeleryExecutorsConfigAffinity>,
119 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")]
121 pub graceful_shutdown_timeout: Option<String>,
122 #[serde(default, skip_serializing_if = "Option::is_none")]
124 pub logging: Option<AirflowClusterCeleryExecutorsConfigLogging>,
125 #[serde(default, skip_serializing_if = "Option::is_none")]
128 pub resources: Option<AirflowClusterCeleryExecutorsConfigResources>,
129}
130
131#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
134pub struct AirflowClusterCeleryExecutorsConfigAffinity {
135 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
137 pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
138 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
140 pub node_selector: Option<BTreeMap<String, String>>,
141 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
143 pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
144 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
146 pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
147}
148
149#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
151pub struct AirflowClusterCeleryExecutorsConfigLogging {
152 #[serde(default, skip_serializing_if = "Option::is_none")]
154 pub containers: Option<BTreeMap<String, AirflowClusterCeleryExecutorsConfigLoggingContainers>>,
155 #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
157 pub enable_vector_agent: Option<bool>,
158}
159
160#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
162pub struct AirflowClusterCeleryExecutorsConfigLoggingContainers {
163 #[serde(default, skip_serializing_if = "Option::is_none")]
165 pub console: Option<AirflowClusterCeleryExecutorsConfigLoggingContainersConsole>,
166 #[serde(default, skip_serializing_if = "Option::is_none")]
168 pub custom: Option<AirflowClusterCeleryExecutorsConfigLoggingContainersCustom>,
169 #[serde(default, skip_serializing_if = "Option::is_none")]
171 pub file: Option<AirflowClusterCeleryExecutorsConfigLoggingContainersFile>,
172 #[serde(default, skip_serializing_if = "Option::is_none")]
174 pub loggers: Option<BTreeMap<String, AirflowClusterCeleryExecutorsConfigLoggingContainersLoggers>>,
175}
176
177#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
179pub struct AirflowClusterCeleryExecutorsConfigLoggingContainersConsole {
180 #[serde(default, skip_serializing_if = "Option::is_none")]
183 pub level: Option<AirflowClusterCeleryExecutorsConfigLoggingContainersConsoleLevel>,
184}
185
186#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
188pub enum AirflowClusterCeleryExecutorsConfigLoggingContainersConsoleLevel {
189 #[serde(rename = "TRACE")]
190 Trace,
191 #[serde(rename = "DEBUG")]
192 Debug,
193 #[serde(rename = "INFO")]
194 Info,
195 #[serde(rename = "WARN")]
196 Warn,
197 #[serde(rename = "ERROR")]
198 Error,
199 #[serde(rename = "FATAL")]
200 Fatal,
201 #[serde(rename = "NONE")]
202 None,
203}
204
205#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
207pub struct AirflowClusterCeleryExecutorsConfigLoggingContainersCustom {
208 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
210 pub config_map: Option<String>,
211}
212
213#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
215pub struct AirflowClusterCeleryExecutorsConfigLoggingContainersFile {
216 #[serde(default, skip_serializing_if = "Option::is_none")]
219 pub level: Option<AirflowClusterCeleryExecutorsConfigLoggingContainersFileLevel>,
220}
221
222#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
224pub enum AirflowClusterCeleryExecutorsConfigLoggingContainersFileLevel {
225 #[serde(rename = "TRACE")]
226 Trace,
227 #[serde(rename = "DEBUG")]
228 Debug,
229 #[serde(rename = "INFO")]
230 Info,
231 #[serde(rename = "WARN")]
232 Warn,
233 #[serde(rename = "ERROR")]
234 Error,
235 #[serde(rename = "FATAL")]
236 Fatal,
237 #[serde(rename = "NONE")]
238 None,
239}
240
241#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
243pub struct AirflowClusterCeleryExecutorsConfigLoggingContainersLoggers {
244 #[serde(default, skip_serializing_if = "Option::is_none")]
247 pub level: Option<AirflowClusterCeleryExecutorsConfigLoggingContainersLoggersLevel>,
248}
249
250#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
252pub enum AirflowClusterCeleryExecutorsConfigLoggingContainersLoggersLevel {
253 #[serde(rename = "TRACE")]
254 Trace,
255 #[serde(rename = "DEBUG")]
256 Debug,
257 #[serde(rename = "INFO")]
258 Info,
259 #[serde(rename = "WARN")]
260 Warn,
261 #[serde(rename = "ERROR")]
262 Error,
263 #[serde(rename = "FATAL")]
264 Fatal,
265 #[serde(rename = "NONE")]
266 None,
267}
268
269#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
272pub struct AirflowClusterCeleryExecutorsConfigResources {
273 #[serde(default, skip_serializing_if = "Option::is_none")]
274 pub cpu: Option<AirflowClusterCeleryExecutorsConfigResourcesCpu>,
275 #[serde(default, skip_serializing_if = "Option::is_none")]
276 pub memory: Option<AirflowClusterCeleryExecutorsConfigResourcesMemory>,
277 #[serde(default, skip_serializing_if = "Option::is_none")]
278 pub storage: Option<AirflowClusterCeleryExecutorsConfigResourcesStorage>,
279}
280
281#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
282pub struct AirflowClusterCeleryExecutorsConfigResourcesCpu {
283 #[serde(default, skip_serializing_if = "Option::is_none")]
288 pub max: Option<String>,
289 #[serde(default, skip_serializing_if = "Option::is_none")]
294 pub min: Option<String>,
295}
296
297#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
298pub struct AirflowClusterCeleryExecutorsConfigResourcesMemory {
299 #[serde(default, skip_serializing_if = "Option::is_none")]
306 pub limit: Option<String>,
307 #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
309 pub runtime_limits: Option<AirflowClusterCeleryExecutorsConfigResourcesMemoryRuntimeLimits>,
310}
311
312#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
314pub struct AirflowClusterCeleryExecutorsConfigResourcesMemoryRuntimeLimits {
315}
316
317#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
318pub struct AirflowClusterCeleryExecutorsConfigResourcesStorage {
319}
320
321#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
323pub struct AirflowClusterCeleryExecutorsRoleConfig {
324 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podDisruptionBudget")]
332 pub pod_disruption_budget: Option<AirflowClusterCeleryExecutorsRoleConfigPodDisruptionBudget>,
333}
334
335#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
343pub struct AirflowClusterCeleryExecutorsRoleConfigPodDisruptionBudget {
344 #[serde(default, skip_serializing_if = "Option::is_none")]
348 pub enabled: Option<bool>,
349 #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")]
353 pub max_unavailable: Option<u16>,
354}
355
356#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
357pub struct AirflowClusterCeleryExecutorsRoleGroups {
358 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
359 pub cli_overrides: Option<BTreeMap<String, String>>,
360 #[serde(default, skip_serializing_if = "Option::is_none")]
361 pub config: Option<AirflowClusterCeleryExecutorsRoleGroupsConfig>,
362 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
368 pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
369 #[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
376 pub env_overrides: Option<BTreeMap<String, String>>,
377 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
384 pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
385 #[serde(default, skip_serializing_if = "Option::is_none")]
386 pub replicas: Option<u16>,
387}
388
389#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
390pub struct AirflowClusterCeleryExecutorsRoleGroupsConfig {
391 #[serde(default, skip_serializing_if = "Option::is_none")]
394 pub affinity: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigAffinity>,
395 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")]
397 pub graceful_shutdown_timeout: Option<String>,
398 #[serde(default, skip_serializing_if = "Option::is_none")]
400 pub logging: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigLogging>,
401 #[serde(default, skip_serializing_if = "Option::is_none")]
404 pub resources: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigResources>,
405}
406
407#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
410pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigAffinity {
411 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
413 pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
414 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
416 pub node_selector: Option<BTreeMap<String, String>>,
417 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
419 pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
420 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
422 pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
423}
424
425#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
427pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigLogging {
428 #[serde(default, skip_serializing_if = "Option::is_none")]
430 pub containers: Option<BTreeMap<String, AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainers>>,
431 #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
433 pub enable_vector_agent: Option<bool>,
434}
435
436#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
438pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainers {
439 #[serde(default, skip_serializing_if = "Option::is_none")]
441 pub console: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersConsole>,
442 #[serde(default, skip_serializing_if = "Option::is_none")]
444 pub custom: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersCustom>,
445 #[serde(default, skip_serializing_if = "Option::is_none")]
447 pub file: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersFile>,
448 #[serde(default, skip_serializing_if = "Option::is_none")]
450 pub loggers: Option<BTreeMap<String, AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersLoggers>>,
451}
452
453#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
455pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersConsole {
456 #[serde(default, skip_serializing_if = "Option::is_none")]
459 pub level: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersConsoleLevel>,
460}
461
462#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
464pub enum AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersConsoleLevel {
465 #[serde(rename = "TRACE")]
466 Trace,
467 #[serde(rename = "DEBUG")]
468 Debug,
469 #[serde(rename = "INFO")]
470 Info,
471 #[serde(rename = "WARN")]
472 Warn,
473 #[serde(rename = "ERROR")]
474 Error,
475 #[serde(rename = "FATAL")]
476 Fatal,
477 #[serde(rename = "NONE")]
478 None,
479}
480
481#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
483pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersCustom {
484 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
486 pub config_map: Option<String>,
487}
488
489#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
491pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersFile {
492 #[serde(default, skip_serializing_if = "Option::is_none")]
495 pub level: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersFileLevel>,
496}
497
498#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
500pub enum AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersFileLevel {
501 #[serde(rename = "TRACE")]
502 Trace,
503 #[serde(rename = "DEBUG")]
504 Debug,
505 #[serde(rename = "INFO")]
506 Info,
507 #[serde(rename = "WARN")]
508 Warn,
509 #[serde(rename = "ERROR")]
510 Error,
511 #[serde(rename = "FATAL")]
512 Fatal,
513 #[serde(rename = "NONE")]
514 None,
515}
516
517#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
519pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersLoggers {
520 #[serde(default, skip_serializing_if = "Option::is_none")]
523 pub level: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersLoggersLevel>,
524}
525
526#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
528pub enum AirflowClusterCeleryExecutorsRoleGroupsConfigLoggingContainersLoggersLevel {
529 #[serde(rename = "TRACE")]
530 Trace,
531 #[serde(rename = "DEBUG")]
532 Debug,
533 #[serde(rename = "INFO")]
534 Info,
535 #[serde(rename = "WARN")]
536 Warn,
537 #[serde(rename = "ERROR")]
538 Error,
539 #[serde(rename = "FATAL")]
540 Fatal,
541 #[serde(rename = "NONE")]
542 None,
543}
544
545#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
548pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigResources {
549 #[serde(default, skip_serializing_if = "Option::is_none")]
550 pub cpu: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigResourcesCpu>,
551 #[serde(default, skip_serializing_if = "Option::is_none")]
552 pub memory: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigResourcesMemory>,
553 #[serde(default, skip_serializing_if = "Option::is_none")]
554 pub storage: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigResourcesStorage>,
555}
556
557#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
558pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigResourcesCpu {
559 #[serde(default, skip_serializing_if = "Option::is_none")]
564 pub max: Option<String>,
565 #[serde(default, skip_serializing_if = "Option::is_none")]
570 pub min: Option<String>,
571}
572
573#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
574pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigResourcesMemory {
575 #[serde(default, skip_serializing_if = "Option::is_none")]
582 pub limit: Option<String>,
583 #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
585 pub runtime_limits: Option<AirflowClusterCeleryExecutorsRoleGroupsConfigResourcesMemoryRuntimeLimits>,
586}
587
588#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
590pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigResourcesMemoryRuntimeLimits {
591}
592
593#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
594pub struct AirflowClusterCeleryExecutorsRoleGroupsConfigResourcesStorage {
595}
596
597#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
600pub struct AirflowClusterClusterConfig {
601 #[serde(default, skip_serializing_if = "Option::is_none")]
602 pub authentication: Option<Vec<AirflowClusterClusterConfigAuthentication>>,
603 #[serde(default, skip_serializing_if = "Option::is_none")]
606 pub authorization: Option<AirflowClusterClusterConfigAuthorization>,
607 #[serde(rename = "credentialsSecret")]
612 pub credentials_secret: String,
613 #[serde(default, skip_serializing_if = "Option::is_none", rename = "dagsGitSync")]
617 pub dags_git_sync: Option<Vec<AirflowClusterClusterConfigDagsGitSync>>,
618 #[serde(default, skip_serializing_if = "Option::is_none", rename = "databaseInitialization")]
620 pub database_initialization: Option<AirflowClusterClusterConfigDatabaseInitialization>,
621 #[serde(default, skip_serializing_if = "Option::is_none", rename = "exposeConfig")]
623 pub expose_config: Option<bool>,
624 #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadExamples")]
627 pub load_examples: Option<bool>,
628 #[serde(default, skip_serializing_if = "Option::is_none", rename = "vectorAggregatorConfigMapName")]
633 pub vector_aggregator_config_map_name: Option<String>,
634 #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")]
636 pub volume_mounts: Option<Vec<BTreeMap<String, serde_json::Value>>>,
637 #[serde(default, skip_serializing_if = "Option::is_none")]
639 pub volumes: Option<Vec<BTreeMap<String, serde_json::Value>>>,
640}
641
642#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
643pub struct AirflowClusterClusterConfigAuthentication {
644 #[serde(rename = "authenticationClass")]
646 pub authentication_class: String,
647 #[serde(default, skip_serializing_if = "Option::is_none")]
649 pub oidc: Option<AirflowClusterClusterConfigAuthenticationOidc>,
650 #[serde(default, skip_serializing_if = "Option::is_none", rename = "syncRolesAt")]
653 pub sync_roles_at: Option<AirflowClusterClusterConfigAuthenticationSyncRolesAt>,
654 #[serde(default, skip_serializing_if = "Option::is_none", rename = "userRegistration")]
657 pub user_registration: Option<bool>,
658 #[serde(default, skip_serializing_if = "Option::is_none", rename = "userRegistrationRole")]
661 pub user_registration_role: Option<String>,
662}
663
664#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
666pub struct AirflowClusterClusterConfigAuthenticationOidc {
667 #[serde(rename = "clientCredentialsSecret")]
670 pub client_credentials_secret: String,
671 #[serde(default, skip_serializing_if = "Option::is_none", rename = "extraScopes")]
673 pub extra_scopes: Option<Vec<String>>,
674}
675
676#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
677pub enum AirflowClusterClusterConfigAuthenticationSyncRolesAt {
678 Registration,
679 Login,
680}
681
682#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
685pub struct AirflowClusterClusterConfigAuthorization {
686 #[serde(default, skip_serializing_if = "Option::is_none")]
691 pub opa: Option<AirflowClusterClusterConfigAuthorizationOpa>,
692}
693
694#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
699pub struct AirflowClusterClusterConfigAuthorizationOpa {
700 #[serde(default, skip_serializing_if = "Option::is_none")]
702 pub cache: Option<AirflowClusterClusterConfigAuthorizationOpaCache>,
703 #[serde(rename = "configMapName")]
706 pub config_map_name: String,
707 #[serde(default, skip_serializing_if = "Option::is_none")]
709 pub package: Option<String>,
710}
711
712#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
714pub struct AirflowClusterClusterConfigAuthorizationOpaCache {
715 #[serde(default, skip_serializing_if = "Option::is_none", rename = "entryTimeToLive")]
717 pub entry_time_to_live: Option<String>,
718 #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxEntries")]
721 pub max_entries: Option<u32>,
722}
723
724#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
725pub struct AirflowClusterClusterConfigDagsGitSync {
726 #[serde(default, skip_serializing_if = "Option::is_none")]
730 pub branch: Option<String>,
731 #[serde(default, skip_serializing_if = "Option::is_none", rename = "credentialsSecret")]
739 pub credentials_secret: Option<String>,
740 #[serde(default, skip_serializing_if = "Option::is_none")]
742 pub depth: Option<u32>,
743 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitFolder")]
748 pub git_folder: Option<String>,
749 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitSyncConf")]
756 pub git_sync_conf: Option<BTreeMap<String, String>>,
757 pub repo: String,
759 #[serde(default, skip_serializing_if = "Option::is_none")]
763 pub wait: Option<String>,
764}
765
766#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
768pub struct AirflowClusterClusterConfigDatabaseInitialization {
769 #[serde(default, skip_serializing_if = "Option::is_none")]
773 pub enabled: Option<bool>,
774}
775
776#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
779pub struct AirflowClusterClusterOperation {
780 #[serde(default, skip_serializing_if = "Option::is_none", rename = "reconciliationPaused")]
787 pub reconciliation_paused: Option<bool>,
788 #[serde(default, skip_serializing_if = "Option::is_none")]
794 pub stopped: Option<bool>,
795}
796
797#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
799pub struct AirflowClusterDagProcessors {
800 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
801 pub cli_overrides: Option<BTreeMap<String, String>>,
802 #[serde(default, skip_serializing_if = "Option::is_none")]
803 pub config: Option<AirflowClusterDagProcessorsConfig>,
804 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
810 pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
811 #[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
818 pub env_overrides: Option<BTreeMap<String, String>>,
819 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
826 pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
827 #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleConfig")]
829 pub role_config: Option<AirflowClusterDagProcessorsRoleConfig>,
830 #[serde(rename = "roleGroups")]
831 pub role_groups: BTreeMap<String, AirflowClusterDagProcessorsRoleGroups>,
832}
833
834#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
835pub struct AirflowClusterDagProcessorsConfig {
836 #[serde(default, skip_serializing_if = "Option::is_none")]
839 pub affinity: Option<AirflowClusterDagProcessorsConfigAffinity>,
840 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")]
842 pub graceful_shutdown_timeout: Option<String>,
843 #[serde(default, skip_serializing_if = "Option::is_none")]
845 pub logging: Option<AirflowClusterDagProcessorsConfigLogging>,
846 #[serde(default, skip_serializing_if = "Option::is_none")]
849 pub resources: Option<AirflowClusterDagProcessorsConfigResources>,
850}
851
852#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
855pub struct AirflowClusterDagProcessorsConfigAffinity {
856 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
858 pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
859 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
861 pub node_selector: Option<BTreeMap<String, String>>,
862 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
864 pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
865 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
867 pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
868}
869
870#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
872pub struct AirflowClusterDagProcessorsConfigLogging {
873 #[serde(default, skip_serializing_if = "Option::is_none")]
875 pub containers: Option<BTreeMap<String, AirflowClusterDagProcessorsConfigLoggingContainers>>,
876 #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
878 pub enable_vector_agent: Option<bool>,
879}
880
881#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
883pub struct AirflowClusterDagProcessorsConfigLoggingContainers {
884 #[serde(default, skip_serializing_if = "Option::is_none")]
886 pub console: Option<AirflowClusterDagProcessorsConfigLoggingContainersConsole>,
887 #[serde(default, skip_serializing_if = "Option::is_none")]
889 pub custom: Option<AirflowClusterDagProcessorsConfigLoggingContainersCustom>,
890 #[serde(default, skip_serializing_if = "Option::is_none")]
892 pub file: Option<AirflowClusterDagProcessorsConfigLoggingContainersFile>,
893 #[serde(default, skip_serializing_if = "Option::is_none")]
895 pub loggers: Option<BTreeMap<String, AirflowClusterDagProcessorsConfigLoggingContainersLoggers>>,
896}
897
898#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
900pub struct AirflowClusterDagProcessorsConfigLoggingContainersConsole {
901 #[serde(default, skip_serializing_if = "Option::is_none")]
904 pub level: Option<AirflowClusterDagProcessorsConfigLoggingContainersConsoleLevel>,
905}
906
907#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
909pub enum AirflowClusterDagProcessorsConfigLoggingContainersConsoleLevel {
910 #[serde(rename = "TRACE")]
911 Trace,
912 #[serde(rename = "DEBUG")]
913 Debug,
914 #[serde(rename = "INFO")]
915 Info,
916 #[serde(rename = "WARN")]
917 Warn,
918 #[serde(rename = "ERROR")]
919 Error,
920 #[serde(rename = "FATAL")]
921 Fatal,
922 #[serde(rename = "NONE")]
923 None,
924}
925
926#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
928pub struct AirflowClusterDagProcessorsConfigLoggingContainersCustom {
929 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
931 pub config_map: Option<String>,
932}
933
934#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
936pub struct AirflowClusterDagProcessorsConfigLoggingContainersFile {
937 #[serde(default, skip_serializing_if = "Option::is_none")]
940 pub level: Option<AirflowClusterDagProcessorsConfigLoggingContainersFileLevel>,
941}
942
943#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
945pub enum AirflowClusterDagProcessorsConfigLoggingContainersFileLevel {
946 #[serde(rename = "TRACE")]
947 Trace,
948 #[serde(rename = "DEBUG")]
949 Debug,
950 #[serde(rename = "INFO")]
951 Info,
952 #[serde(rename = "WARN")]
953 Warn,
954 #[serde(rename = "ERROR")]
955 Error,
956 #[serde(rename = "FATAL")]
957 Fatal,
958 #[serde(rename = "NONE")]
959 None,
960}
961
962#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
964pub struct AirflowClusterDagProcessorsConfigLoggingContainersLoggers {
965 #[serde(default, skip_serializing_if = "Option::is_none")]
968 pub level: Option<AirflowClusterDagProcessorsConfigLoggingContainersLoggersLevel>,
969}
970
971#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
973pub enum AirflowClusterDagProcessorsConfigLoggingContainersLoggersLevel {
974 #[serde(rename = "TRACE")]
975 Trace,
976 #[serde(rename = "DEBUG")]
977 Debug,
978 #[serde(rename = "INFO")]
979 Info,
980 #[serde(rename = "WARN")]
981 Warn,
982 #[serde(rename = "ERROR")]
983 Error,
984 #[serde(rename = "FATAL")]
985 Fatal,
986 #[serde(rename = "NONE")]
987 None,
988}
989
990#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
993pub struct AirflowClusterDagProcessorsConfigResources {
994 #[serde(default, skip_serializing_if = "Option::is_none")]
995 pub cpu: Option<AirflowClusterDagProcessorsConfigResourcesCpu>,
996 #[serde(default, skip_serializing_if = "Option::is_none")]
997 pub memory: Option<AirflowClusterDagProcessorsConfigResourcesMemory>,
998 #[serde(default, skip_serializing_if = "Option::is_none")]
999 pub storage: Option<AirflowClusterDagProcessorsConfigResourcesStorage>,
1000}
1001
1002#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1003pub struct AirflowClusterDagProcessorsConfigResourcesCpu {
1004 #[serde(default, skip_serializing_if = "Option::is_none")]
1009 pub max: Option<String>,
1010 #[serde(default, skip_serializing_if = "Option::is_none")]
1015 pub min: Option<String>,
1016}
1017
1018#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1019pub struct AirflowClusterDagProcessorsConfigResourcesMemory {
1020 #[serde(default, skip_serializing_if = "Option::is_none")]
1027 pub limit: Option<String>,
1028 #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
1030 pub runtime_limits: Option<AirflowClusterDagProcessorsConfigResourcesMemoryRuntimeLimits>,
1031}
1032
1033#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1035pub struct AirflowClusterDagProcessorsConfigResourcesMemoryRuntimeLimits {
1036}
1037
1038#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1039pub struct AirflowClusterDagProcessorsConfigResourcesStorage {
1040}
1041
1042#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1044pub struct AirflowClusterDagProcessorsRoleConfig {
1045 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podDisruptionBudget")]
1053 pub pod_disruption_budget: Option<AirflowClusterDagProcessorsRoleConfigPodDisruptionBudget>,
1054}
1055
1056#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1064pub struct AirflowClusterDagProcessorsRoleConfigPodDisruptionBudget {
1065 #[serde(default, skip_serializing_if = "Option::is_none")]
1069 pub enabled: Option<bool>,
1070 #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")]
1074 pub max_unavailable: Option<u16>,
1075}
1076
1077#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1078pub struct AirflowClusterDagProcessorsRoleGroups {
1079 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
1080 pub cli_overrides: Option<BTreeMap<String, String>>,
1081 #[serde(default, skip_serializing_if = "Option::is_none")]
1082 pub config: Option<AirflowClusterDagProcessorsRoleGroupsConfig>,
1083 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
1089 pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
1090 #[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
1097 pub env_overrides: Option<BTreeMap<String, String>>,
1098 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
1105 pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
1106 #[serde(default, skip_serializing_if = "Option::is_none")]
1107 pub replicas: Option<u16>,
1108}
1109
1110#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1111pub struct AirflowClusterDagProcessorsRoleGroupsConfig {
1112 #[serde(default, skip_serializing_if = "Option::is_none")]
1115 pub affinity: Option<AirflowClusterDagProcessorsRoleGroupsConfigAffinity>,
1116 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")]
1118 pub graceful_shutdown_timeout: Option<String>,
1119 #[serde(default, skip_serializing_if = "Option::is_none")]
1121 pub logging: Option<AirflowClusterDagProcessorsRoleGroupsConfigLogging>,
1122 #[serde(default, skip_serializing_if = "Option::is_none")]
1125 pub resources: Option<AirflowClusterDagProcessorsRoleGroupsConfigResources>,
1126}
1127
1128#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1131pub struct AirflowClusterDagProcessorsRoleGroupsConfigAffinity {
1132 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
1134 pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
1135 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
1137 pub node_selector: Option<BTreeMap<String, String>>,
1138 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
1140 pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
1141 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
1143 pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
1144}
1145
1146#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1148pub struct AirflowClusterDagProcessorsRoleGroupsConfigLogging {
1149 #[serde(default, skip_serializing_if = "Option::is_none")]
1151 pub containers: Option<BTreeMap<String, AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainers>>,
1152 #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
1154 pub enable_vector_agent: Option<bool>,
1155}
1156
1157#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1159pub struct AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainers {
1160 #[serde(default, skip_serializing_if = "Option::is_none")]
1162 pub console: Option<AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersConsole>,
1163 #[serde(default, skip_serializing_if = "Option::is_none")]
1165 pub custom: Option<AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersCustom>,
1166 #[serde(default, skip_serializing_if = "Option::is_none")]
1168 pub file: Option<AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersFile>,
1169 #[serde(default, skip_serializing_if = "Option::is_none")]
1171 pub loggers: Option<BTreeMap<String, AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersLoggers>>,
1172}
1173
1174#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1176pub struct AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersConsole {
1177 #[serde(default, skip_serializing_if = "Option::is_none")]
1180 pub level: Option<AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersConsoleLevel>,
1181}
1182
1183#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
1185pub enum AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersConsoleLevel {
1186 #[serde(rename = "TRACE")]
1187 Trace,
1188 #[serde(rename = "DEBUG")]
1189 Debug,
1190 #[serde(rename = "INFO")]
1191 Info,
1192 #[serde(rename = "WARN")]
1193 Warn,
1194 #[serde(rename = "ERROR")]
1195 Error,
1196 #[serde(rename = "FATAL")]
1197 Fatal,
1198 #[serde(rename = "NONE")]
1199 None,
1200}
1201
1202#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1204pub struct AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersCustom {
1205 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
1207 pub config_map: Option<String>,
1208}
1209
1210#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1212pub struct AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersFile {
1213 #[serde(default, skip_serializing_if = "Option::is_none")]
1216 pub level: Option<AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersFileLevel>,
1217}
1218
1219#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
1221pub enum AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersFileLevel {
1222 #[serde(rename = "TRACE")]
1223 Trace,
1224 #[serde(rename = "DEBUG")]
1225 Debug,
1226 #[serde(rename = "INFO")]
1227 Info,
1228 #[serde(rename = "WARN")]
1229 Warn,
1230 #[serde(rename = "ERROR")]
1231 Error,
1232 #[serde(rename = "FATAL")]
1233 Fatal,
1234 #[serde(rename = "NONE")]
1235 None,
1236}
1237
1238#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1240pub struct AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersLoggers {
1241 #[serde(default, skip_serializing_if = "Option::is_none")]
1244 pub level: Option<AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersLoggersLevel>,
1245}
1246
1247#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
1249pub enum AirflowClusterDagProcessorsRoleGroupsConfigLoggingContainersLoggersLevel {
1250 #[serde(rename = "TRACE")]
1251 Trace,
1252 #[serde(rename = "DEBUG")]
1253 Debug,
1254 #[serde(rename = "INFO")]
1255 Info,
1256 #[serde(rename = "WARN")]
1257 Warn,
1258 #[serde(rename = "ERROR")]
1259 Error,
1260 #[serde(rename = "FATAL")]
1261 Fatal,
1262 #[serde(rename = "NONE")]
1263 None,
1264}
1265
1266#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1269pub struct AirflowClusterDagProcessorsRoleGroupsConfigResources {
1270 #[serde(default, skip_serializing_if = "Option::is_none")]
1271 pub cpu: Option<AirflowClusterDagProcessorsRoleGroupsConfigResourcesCpu>,
1272 #[serde(default, skip_serializing_if = "Option::is_none")]
1273 pub memory: Option<AirflowClusterDagProcessorsRoleGroupsConfigResourcesMemory>,
1274 #[serde(default, skip_serializing_if = "Option::is_none")]
1275 pub storage: Option<AirflowClusterDagProcessorsRoleGroupsConfigResourcesStorage>,
1276}
1277
1278#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1279pub struct AirflowClusterDagProcessorsRoleGroupsConfigResourcesCpu {
1280 #[serde(default, skip_serializing_if = "Option::is_none")]
1285 pub max: Option<String>,
1286 #[serde(default, skip_serializing_if = "Option::is_none")]
1291 pub min: Option<String>,
1292}
1293
1294#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1295pub struct AirflowClusterDagProcessorsRoleGroupsConfigResourcesMemory {
1296 #[serde(default, skip_serializing_if = "Option::is_none")]
1303 pub limit: Option<String>,
1304 #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
1306 pub runtime_limits: Option<AirflowClusterDagProcessorsRoleGroupsConfigResourcesMemoryRuntimeLimits>,
1307}
1308
1309#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1311pub struct AirflowClusterDagProcessorsRoleGroupsConfigResourcesMemoryRuntimeLimits {
1312}
1313
1314#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1315pub struct AirflowClusterDagProcessorsRoleGroupsConfigResourcesStorage {
1316}
1317
1318#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1325pub struct AirflowClusterImage {
1326 #[serde(default, skip_serializing_if = "Option::is_none")]
1329 pub custom: Option<String>,
1330 #[serde(default, skip_serializing_if = "Option::is_none", rename = "productVersion")]
1332 pub product_version: Option<String>,
1333 #[serde(default, skip_serializing_if = "Option::is_none", rename = "pullPolicy")]
1335 pub pull_policy: Option<AirflowClusterImagePullPolicy>,
1336 #[serde(default, skip_serializing_if = "Option::is_none", rename = "pullSecrets")]
1338 pub pull_secrets: Option<Vec<AirflowClusterImagePullSecrets>>,
1339 #[serde(default, skip_serializing_if = "Option::is_none")]
1341 pub repo: Option<String>,
1342 #[serde(default, skip_serializing_if = "Option::is_none", rename = "stackableVersion")]
1346 pub stackable_version: Option<String>,
1347}
1348
1349#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
1356pub enum AirflowClusterImagePullPolicy {
1357 IfNotPresent,
1358 Always,
1359 Never,
1360}
1361
1362#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1364pub struct AirflowClusterImagePullSecrets {
1365 pub name: String,
1367}
1368
1369#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1371pub struct AirflowClusterKubernetesExecutors {
1372 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
1373 pub cli_overrides: Option<BTreeMap<String, String>>,
1374 #[serde(default, skip_serializing_if = "Option::is_none")]
1375 pub config: Option<AirflowClusterKubernetesExecutorsConfig>,
1376 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
1382 pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
1383 #[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
1390 pub env_overrides: Option<BTreeMap<String, String>>,
1391 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
1398 pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
1399}
1400
1401#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1402pub struct AirflowClusterKubernetesExecutorsConfig {
1403 #[serde(default, skip_serializing_if = "Option::is_none")]
1406 pub affinity: Option<AirflowClusterKubernetesExecutorsConfigAffinity>,
1407 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")]
1409 pub graceful_shutdown_timeout: Option<String>,
1410 #[serde(default, skip_serializing_if = "Option::is_none")]
1412 pub logging: Option<AirflowClusterKubernetesExecutorsConfigLogging>,
1413 #[serde(default, skip_serializing_if = "Option::is_none")]
1416 pub resources: Option<AirflowClusterKubernetesExecutorsConfigResources>,
1417}
1418
1419#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1422pub struct AirflowClusterKubernetesExecutorsConfigAffinity {
1423 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
1425 pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
1426 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
1428 pub node_selector: Option<BTreeMap<String, String>>,
1429 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
1431 pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
1432 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
1434 pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
1435}
1436
1437#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1439pub struct AirflowClusterKubernetesExecutorsConfigLogging {
1440 #[serde(default, skip_serializing_if = "Option::is_none")]
1442 pub containers: Option<BTreeMap<String, AirflowClusterKubernetesExecutorsConfigLoggingContainers>>,
1443 #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
1445 pub enable_vector_agent: Option<bool>,
1446}
1447
1448#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1450pub struct AirflowClusterKubernetesExecutorsConfigLoggingContainers {
1451 #[serde(default, skip_serializing_if = "Option::is_none")]
1453 pub console: Option<AirflowClusterKubernetesExecutorsConfigLoggingContainersConsole>,
1454 #[serde(default, skip_serializing_if = "Option::is_none")]
1456 pub custom: Option<AirflowClusterKubernetesExecutorsConfigLoggingContainersCustom>,
1457 #[serde(default, skip_serializing_if = "Option::is_none")]
1459 pub file: Option<AirflowClusterKubernetesExecutorsConfigLoggingContainersFile>,
1460 #[serde(default, skip_serializing_if = "Option::is_none")]
1462 pub loggers: Option<BTreeMap<String, AirflowClusterKubernetesExecutorsConfigLoggingContainersLoggers>>,
1463}
1464
1465#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1467pub struct AirflowClusterKubernetesExecutorsConfigLoggingContainersConsole {
1468 #[serde(default, skip_serializing_if = "Option::is_none")]
1471 pub level: Option<AirflowClusterKubernetesExecutorsConfigLoggingContainersConsoleLevel>,
1472}
1473
1474#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
1476pub enum AirflowClusterKubernetesExecutorsConfigLoggingContainersConsoleLevel {
1477 #[serde(rename = "TRACE")]
1478 Trace,
1479 #[serde(rename = "DEBUG")]
1480 Debug,
1481 #[serde(rename = "INFO")]
1482 Info,
1483 #[serde(rename = "WARN")]
1484 Warn,
1485 #[serde(rename = "ERROR")]
1486 Error,
1487 #[serde(rename = "FATAL")]
1488 Fatal,
1489 #[serde(rename = "NONE")]
1490 None,
1491}
1492
1493#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1495pub struct AirflowClusterKubernetesExecutorsConfigLoggingContainersCustom {
1496 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
1498 pub config_map: Option<String>,
1499}
1500
1501#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1503pub struct AirflowClusterKubernetesExecutorsConfigLoggingContainersFile {
1504 #[serde(default, skip_serializing_if = "Option::is_none")]
1507 pub level: Option<AirflowClusterKubernetesExecutorsConfigLoggingContainersFileLevel>,
1508}
1509
1510#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
1512pub enum AirflowClusterKubernetesExecutorsConfigLoggingContainersFileLevel {
1513 #[serde(rename = "TRACE")]
1514 Trace,
1515 #[serde(rename = "DEBUG")]
1516 Debug,
1517 #[serde(rename = "INFO")]
1518 Info,
1519 #[serde(rename = "WARN")]
1520 Warn,
1521 #[serde(rename = "ERROR")]
1522 Error,
1523 #[serde(rename = "FATAL")]
1524 Fatal,
1525 #[serde(rename = "NONE")]
1526 None,
1527}
1528
1529#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1531pub struct AirflowClusterKubernetesExecutorsConfigLoggingContainersLoggers {
1532 #[serde(default, skip_serializing_if = "Option::is_none")]
1535 pub level: Option<AirflowClusterKubernetesExecutorsConfigLoggingContainersLoggersLevel>,
1536}
1537
1538#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
1540pub enum AirflowClusterKubernetesExecutorsConfigLoggingContainersLoggersLevel {
1541 #[serde(rename = "TRACE")]
1542 Trace,
1543 #[serde(rename = "DEBUG")]
1544 Debug,
1545 #[serde(rename = "INFO")]
1546 Info,
1547 #[serde(rename = "WARN")]
1548 Warn,
1549 #[serde(rename = "ERROR")]
1550 Error,
1551 #[serde(rename = "FATAL")]
1552 Fatal,
1553 #[serde(rename = "NONE")]
1554 None,
1555}
1556
1557#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1560pub struct AirflowClusterKubernetesExecutorsConfigResources {
1561 #[serde(default, skip_serializing_if = "Option::is_none")]
1562 pub cpu: Option<AirflowClusterKubernetesExecutorsConfigResourcesCpu>,
1563 #[serde(default, skip_serializing_if = "Option::is_none")]
1564 pub memory: Option<AirflowClusterKubernetesExecutorsConfigResourcesMemory>,
1565 #[serde(default, skip_serializing_if = "Option::is_none")]
1566 pub storage: Option<AirflowClusterKubernetesExecutorsConfigResourcesStorage>,
1567}
1568
1569#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1570pub struct AirflowClusterKubernetesExecutorsConfigResourcesCpu {
1571 #[serde(default, skip_serializing_if = "Option::is_none")]
1576 pub max: Option<String>,
1577 #[serde(default, skip_serializing_if = "Option::is_none")]
1582 pub min: Option<String>,
1583}
1584
1585#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1586pub struct AirflowClusterKubernetesExecutorsConfigResourcesMemory {
1587 #[serde(default, skip_serializing_if = "Option::is_none")]
1594 pub limit: Option<String>,
1595 #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
1597 pub runtime_limits: Option<AirflowClusterKubernetesExecutorsConfigResourcesMemoryRuntimeLimits>,
1598}
1599
1600#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1602pub struct AirflowClusterKubernetesExecutorsConfigResourcesMemoryRuntimeLimits {
1603}
1604
1605#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1606pub struct AirflowClusterKubernetesExecutorsConfigResourcesStorage {
1607}
1608
1609#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1612pub struct AirflowClusterSchedulers {
1613 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
1614 pub cli_overrides: Option<BTreeMap<String, String>>,
1615 #[serde(default, skip_serializing_if = "Option::is_none")]
1616 pub config: Option<AirflowClusterSchedulersConfig>,
1617 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
1623 pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
1624 #[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
1631 pub env_overrides: Option<BTreeMap<String, String>>,
1632 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
1639 pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
1640 #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleConfig")]
1642 pub role_config: Option<AirflowClusterSchedulersRoleConfig>,
1643 #[serde(rename = "roleGroups")]
1644 pub role_groups: BTreeMap<String, AirflowClusterSchedulersRoleGroups>,
1645}
1646
1647#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1648pub struct AirflowClusterSchedulersConfig {
1649 #[serde(default, skip_serializing_if = "Option::is_none")]
1652 pub affinity: Option<AirflowClusterSchedulersConfigAffinity>,
1653 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")]
1655 pub graceful_shutdown_timeout: Option<String>,
1656 #[serde(default, skip_serializing_if = "Option::is_none")]
1658 pub logging: Option<AirflowClusterSchedulersConfigLogging>,
1659 #[serde(default, skip_serializing_if = "Option::is_none")]
1662 pub resources: Option<AirflowClusterSchedulersConfigResources>,
1663}
1664
1665#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1668pub struct AirflowClusterSchedulersConfigAffinity {
1669 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
1671 pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
1672 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
1674 pub node_selector: Option<BTreeMap<String, String>>,
1675 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
1677 pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
1678 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
1680 pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
1681}
1682
1683#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1685pub struct AirflowClusterSchedulersConfigLogging {
1686 #[serde(default, skip_serializing_if = "Option::is_none")]
1688 pub containers: Option<BTreeMap<String, AirflowClusterSchedulersConfigLoggingContainers>>,
1689 #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
1691 pub enable_vector_agent: Option<bool>,
1692}
1693
1694#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1696pub struct AirflowClusterSchedulersConfigLoggingContainers {
1697 #[serde(default, skip_serializing_if = "Option::is_none")]
1699 pub console: Option<AirflowClusterSchedulersConfigLoggingContainersConsole>,
1700 #[serde(default, skip_serializing_if = "Option::is_none")]
1702 pub custom: Option<AirflowClusterSchedulersConfigLoggingContainersCustom>,
1703 #[serde(default, skip_serializing_if = "Option::is_none")]
1705 pub file: Option<AirflowClusterSchedulersConfigLoggingContainersFile>,
1706 #[serde(default, skip_serializing_if = "Option::is_none")]
1708 pub loggers: Option<BTreeMap<String, AirflowClusterSchedulersConfigLoggingContainersLoggers>>,
1709}
1710
1711#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1713pub struct AirflowClusterSchedulersConfigLoggingContainersConsole {
1714 #[serde(default, skip_serializing_if = "Option::is_none")]
1717 pub level: Option<AirflowClusterSchedulersConfigLoggingContainersConsoleLevel>,
1718}
1719
1720#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
1722pub enum AirflowClusterSchedulersConfigLoggingContainersConsoleLevel {
1723 #[serde(rename = "TRACE")]
1724 Trace,
1725 #[serde(rename = "DEBUG")]
1726 Debug,
1727 #[serde(rename = "INFO")]
1728 Info,
1729 #[serde(rename = "WARN")]
1730 Warn,
1731 #[serde(rename = "ERROR")]
1732 Error,
1733 #[serde(rename = "FATAL")]
1734 Fatal,
1735 #[serde(rename = "NONE")]
1736 None,
1737}
1738
1739#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1741pub struct AirflowClusterSchedulersConfigLoggingContainersCustom {
1742 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
1744 pub config_map: Option<String>,
1745}
1746
1747#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1749pub struct AirflowClusterSchedulersConfigLoggingContainersFile {
1750 #[serde(default, skip_serializing_if = "Option::is_none")]
1753 pub level: Option<AirflowClusterSchedulersConfigLoggingContainersFileLevel>,
1754}
1755
1756#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
1758pub enum AirflowClusterSchedulersConfigLoggingContainersFileLevel {
1759 #[serde(rename = "TRACE")]
1760 Trace,
1761 #[serde(rename = "DEBUG")]
1762 Debug,
1763 #[serde(rename = "INFO")]
1764 Info,
1765 #[serde(rename = "WARN")]
1766 Warn,
1767 #[serde(rename = "ERROR")]
1768 Error,
1769 #[serde(rename = "FATAL")]
1770 Fatal,
1771 #[serde(rename = "NONE")]
1772 None,
1773}
1774
1775#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1777pub struct AirflowClusterSchedulersConfigLoggingContainersLoggers {
1778 #[serde(default, skip_serializing_if = "Option::is_none")]
1781 pub level: Option<AirflowClusterSchedulersConfigLoggingContainersLoggersLevel>,
1782}
1783
1784#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
1786pub enum AirflowClusterSchedulersConfigLoggingContainersLoggersLevel {
1787 #[serde(rename = "TRACE")]
1788 Trace,
1789 #[serde(rename = "DEBUG")]
1790 Debug,
1791 #[serde(rename = "INFO")]
1792 Info,
1793 #[serde(rename = "WARN")]
1794 Warn,
1795 #[serde(rename = "ERROR")]
1796 Error,
1797 #[serde(rename = "FATAL")]
1798 Fatal,
1799 #[serde(rename = "NONE")]
1800 None,
1801}
1802
1803#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1806pub struct AirflowClusterSchedulersConfigResources {
1807 #[serde(default, skip_serializing_if = "Option::is_none")]
1808 pub cpu: Option<AirflowClusterSchedulersConfigResourcesCpu>,
1809 #[serde(default, skip_serializing_if = "Option::is_none")]
1810 pub memory: Option<AirflowClusterSchedulersConfigResourcesMemory>,
1811 #[serde(default, skip_serializing_if = "Option::is_none")]
1812 pub storage: Option<AirflowClusterSchedulersConfigResourcesStorage>,
1813}
1814
1815#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1816pub struct AirflowClusterSchedulersConfigResourcesCpu {
1817 #[serde(default, skip_serializing_if = "Option::is_none")]
1822 pub max: Option<String>,
1823 #[serde(default, skip_serializing_if = "Option::is_none")]
1828 pub min: Option<String>,
1829}
1830
1831#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1832pub struct AirflowClusterSchedulersConfigResourcesMemory {
1833 #[serde(default, skip_serializing_if = "Option::is_none")]
1840 pub limit: Option<String>,
1841 #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
1843 pub runtime_limits: Option<AirflowClusterSchedulersConfigResourcesMemoryRuntimeLimits>,
1844}
1845
1846#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1848pub struct AirflowClusterSchedulersConfigResourcesMemoryRuntimeLimits {
1849}
1850
1851#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1852pub struct AirflowClusterSchedulersConfigResourcesStorage {
1853}
1854
1855#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1857pub struct AirflowClusterSchedulersRoleConfig {
1858 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podDisruptionBudget")]
1866 pub pod_disruption_budget: Option<AirflowClusterSchedulersRoleConfigPodDisruptionBudget>,
1867}
1868
1869#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1877pub struct AirflowClusterSchedulersRoleConfigPodDisruptionBudget {
1878 #[serde(default, skip_serializing_if = "Option::is_none")]
1882 pub enabled: Option<bool>,
1883 #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")]
1887 pub max_unavailable: Option<u16>,
1888}
1889
1890#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1891pub struct AirflowClusterSchedulersRoleGroups {
1892 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
1893 pub cli_overrides: Option<BTreeMap<String, String>>,
1894 #[serde(default, skip_serializing_if = "Option::is_none")]
1895 pub config: Option<AirflowClusterSchedulersRoleGroupsConfig>,
1896 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
1902 pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
1903 #[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
1910 pub env_overrides: Option<BTreeMap<String, String>>,
1911 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
1918 pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
1919 #[serde(default, skip_serializing_if = "Option::is_none")]
1920 pub replicas: Option<u16>,
1921}
1922
1923#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1924pub struct AirflowClusterSchedulersRoleGroupsConfig {
1925 #[serde(default, skip_serializing_if = "Option::is_none")]
1928 pub affinity: Option<AirflowClusterSchedulersRoleGroupsConfigAffinity>,
1929 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")]
1931 pub graceful_shutdown_timeout: Option<String>,
1932 #[serde(default, skip_serializing_if = "Option::is_none")]
1934 pub logging: Option<AirflowClusterSchedulersRoleGroupsConfigLogging>,
1935 #[serde(default, skip_serializing_if = "Option::is_none")]
1938 pub resources: Option<AirflowClusterSchedulersRoleGroupsConfigResources>,
1939}
1940
1941#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1944pub struct AirflowClusterSchedulersRoleGroupsConfigAffinity {
1945 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
1947 pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
1948 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
1950 pub node_selector: Option<BTreeMap<String, String>>,
1951 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
1953 pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
1954 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
1956 pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
1957}
1958
1959#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1961pub struct AirflowClusterSchedulersRoleGroupsConfigLogging {
1962 #[serde(default, skip_serializing_if = "Option::is_none")]
1964 pub containers: Option<BTreeMap<String, AirflowClusterSchedulersRoleGroupsConfigLoggingContainers>>,
1965 #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
1967 pub enable_vector_agent: Option<bool>,
1968}
1969
1970#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1972pub struct AirflowClusterSchedulersRoleGroupsConfigLoggingContainers {
1973 #[serde(default, skip_serializing_if = "Option::is_none")]
1975 pub console: Option<AirflowClusterSchedulersRoleGroupsConfigLoggingContainersConsole>,
1976 #[serde(default, skip_serializing_if = "Option::is_none")]
1978 pub custom: Option<AirflowClusterSchedulersRoleGroupsConfigLoggingContainersCustom>,
1979 #[serde(default, skip_serializing_if = "Option::is_none")]
1981 pub file: Option<AirflowClusterSchedulersRoleGroupsConfigLoggingContainersFile>,
1982 #[serde(default, skip_serializing_if = "Option::is_none")]
1984 pub loggers: Option<BTreeMap<String, AirflowClusterSchedulersRoleGroupsConfigLoggingContainersLoggers>>,
1985}
1986
1987#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
1989pub struct AirflowClusterSchedulersRoleGroupsConfigLoggingContainersConsole {
1990 #[serde(default, skip_serializing_if = "Option::is_none")]
1993 pub level: Option<AirflowClusterSchedulersRoleGroupsConfigLoggingContainersConsoleLevel>,
1994}
1995
1996#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
1998pub enum AirflowClusterSchedulersRoleGroupsConfigLoggingContainersConsoleLevel {
1999 #[serde(rename = "TRACE")]
2000 Trace,
2001 #[serde(rename = "DEBUG")]
2002 Debug,
2003 #[serde(rename = "INFO")]
2004 Info,
2005 #[serde(rename = "WARN")]
2006 Warn,
2007 #[serde(rename = "ERROR")]
2008 Error,
2009 #[serde(rename = "FATAL")]
2010 Fatal,
2011 #[serde(rename = "NONE")]
2012 None,
2013}
2014
2015#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2017pub struct AirflowClusterSchedulersRoleGroupsConfigLoggingContainersCustom {
2018 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
2020 pub config_map: Option<String>,
2021}
2022
2023#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2025pub struct AirflowClusterSchedulersRoleGroupsConfigLoggingContainersFile {
2026 #[serde(default, skip_serializing_if = "Option::is_none")]
2029 pub level: Option<AirflowClusterSchedulersRoleGroupsConfigLoggingContainersFileLevel>,
2030}
2031
2032#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
2034pub enum AirflowClusterSchedulersRoleGroupsConfigLoggingContainersFileLevel {
2035 #[serde(rename = "TRACE")]
2036 Trace,
2037 #[serde(rename = "DEBUG")]
2038 Debug,
2039 #[serde(rename = "INFO")]
2040 Info,
2041 #[serde(rename = "WARN")]
2042 Warn,
2043 #[serde(rename = "ERROR")]
2044 Error,
2045 #[serde(rename = "FATAL")]
2046 Fatal,
2047 #[serde(rename = "NONE")]
2048 None,
2049}
2050
2051#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2053pub struct AirflowClusterSchedulersRoleGroupsConfigLoggingContainersLoggers {
2054 #[serde(default, skip_serializing_if = "Option::is_none")]
2057 pub level: Option<AirflowClusterSchedulersRoleGroupsConfigLoggingContainersLoggersLevel>,
2058}
2059
2060#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
2062pub enum AirflowClusterSchedulersRoleGroupsConfigLoggingContainersLoggersLevel {
2063 #[serde(rename = "TRACE")]
2064 Trace,
2065 #[serde(rename = "DEBUG")]
2066 Debug,
2067 #[serde(rename = "INFO")]
2068 Info,
2069 #[serde(rename = "WARN")]
2070 Warn,
2071 #[serde(rename = "ERROR")]
2072 Error,
2073 #[serde(rename = "FATAL")]
2074 Fatal,
2075 #[serde(rename = "NONE")]
2076 None,
2077}
2078
2079#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2082pub struct AirflowClusterSchedulersRoleGroupsConfigResources {
2083 #[serde(default, skip_serializing_if = "Option::is_none")]
2084 pub cpu: Option<AirflowClusterSchedulersRoleGroupsConfigResourcesCpu>,
2085 #[serde(default, skip_serializing_if = "Option::is_none")]
2086 pub memory: Option<AirflowClusterSchedulersRoleGroupsConfigResourcesMemory>,
2087 #[serde(default, skip_serializing_if = "Option::is_none")]
2088 pub storage: Option<AirflowClusterSchedulersRoleGroupsConfigResourcesStorage>,
2089}
2090
2091#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2092pub struct AirflowClusterSchedulersRoleGroupsConfigResourcesCpu {
2093 #[serde(default, skip_serializing_if = "Option::is_none")]
2098 pub max: Option<String>,
2099 #[serde(default, skip_serializing_if = "Option::is_none")]
2104 pub min: Option<String>,
2105}
2106
2107#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2108pub struct AirflowClusterSchedulersRoleGroupsConfigResourcesMemory {
2109 #[serde(default, skip_serializing_if = "Option::is_none")]
2116 pub limit: Option<String>,
2117 #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
2119 pub runtime_limits: Option<AirflowClusterSchedulersRoleGroupsConfigResourcesMemoryRuntimeLimits>,
2120}
2121
2122#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2124pub struct AirflowClusterSchedulersRoleGroupsConfigResourcesMemoryRuntimeLimits {
2125}
2126
2127#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2128pub struct AirflowClusterSchedulersRoleGroupsConfigResourcesStorage {
2129}
2130
2131#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2133pub struct AirflowClusterTriggerers {
2134 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
2135 pub cli_overrides: Option<BTreeMap<String, String>>,
2136 #[serde(default, skip_serializing_if = "Option::is_none")]
2137 pub config: Option<AirflowClusterTriggerersConfig>,
2138 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
2144 pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
2145 #[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
2152 pub env_overrides: Option<BTreeMap<String, String>>,
2153 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
2160 pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
2161 #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleConfig")]
2163 pub role_config: Option<AirflowClusterTriggerersRoleConfig>,
2164 #[serde(rename = "roleGroups")]
2165 pub role_groups: BTreeMap<String, AirflowClusterTriggerersRoleGroups>,
2166}
2167
2168#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2169pub struct AirflowClusterTriggerersConfig {
2170 #[serde(default, skip_serializing_if = "Option::is_none")]
2173 pub affinity: Option<AirflowClusterTriggerersConfigAffinity>,
2174 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")]
2176 pub graceful_shutdown_timeout: Option<String>,
2177 #[serde(default, skip_serializing_if = "Option::is_none")]
2179 pub logging: Option<AirflowClusterTriggerersConfigLogging>,
2180 #[serde(default, skip_serializing_if = "Option::is_none")]
2183 pub resources: Option<AirflowClusterTriggerersConfigResources>,
2184}
2185
2186#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2189pub struct AirflowClusterTriggerersConfigAffinity {
2190 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
2192 pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
2193 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
2195 pub node_selector: Option<BTreeMap<String, String>>,
2196 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
2198 pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
2199 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
2201 pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
2202}
2203
2204#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2206pub struct AirflowClusterTriggerersConfigLogging {
2207 #[serde(default, skip_serializing_if = "Option::is_none")]
2209 pub containers: Option<BTreeMap<String, AirflowClusterTriggerersConfigLoggingContainers>>,
2210 #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
2212 pub enable_vector_agent: Option<bool>,
2213}
2214
2215#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2217pub struct AirflowClusterTriggerersConfigLoggingContainers {
2218 #[serde(default, skip_serializing_if = "Option::is_none")]
2220 pub console: Option<AirflowClusterTriggerersConfigLoggingContainersConsole>,
2221 #[serde(default, skip_serializing_if = "Option::is_none")]
2223 pub custom: Option<AirflowClusterTriggerersConfigLoggingContainersCustom>,
2224 #[serde(default, skip_serializing_if = "Option::is_none")]
2226 pub file: Option<AirflowClusterTriggerersConfigLoggingContainersFile>,
2227 #[serde(default, skip_serializing_if = "Option::is_none")]
2229 pub loggers: Option<BTreeMap<String, AirflowClusterTriggerersConfigLoggingContainersLoggers>>,
2230}
2231
2232#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2234pub struct AirflowClusterTriggerersConfigLoggingContainersConsole {
2235 #[serde(default, skip_serializing_if = "Option::is_none")]
2238 pub level: Option<AirflowClusterTriggerersConfigLoggingContainersConsoleLevel>,
2239}
2240
2241#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
2243pub enum AirflowClusterTriggerersConfigLoggingContainersConsoleLevel {
2244 #[serde(rename = "TRACE")]
2245 Trace,
2246 #[serde(rename = "DEBUG")]
2247 Debug,
2248 #[serde(rename = "INFO")]
2249 Info,
2250 #[serde(rename = "WARN")]
2251 Warn,
2252 #[serde(rename = "ERROR")]
2253 Error,
2254 #[serde(rename = "FATAL")]
2255 Fatal,
2256 #[serde(rename = "NONE")]
2257 None,
2258}
2259
2260#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2262pub struct AirflowClusterTriggerersConfigLoggingContainersCustom {
2263 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
2265 pub config_map: Option<String>,
2266}
2267
2268#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2270pub struct AirflowClusterTriggerersConfigLoggingContainersFile {
2271 #[serde(default, skip_serializing_if = "Option::is_none")]
2274 pub level: Option<AirflowClusterTriggerersConfigLoggingContainersFileLevel>,
2275}
2276
2277#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
2279pub enum AirflowClusterTriggerersConfigLoggingContainersFileLevel {
2280 #[serde(rename = "TRACE")]
2281 Trace,
2282 #[serde(rename = "DEBUG")]
2283 Debug,
2284 #[serde(rename = "INFO")]
2285 Info,
2286 #[serde(rename = "WARN")]
2287 Warn,
2288 #[serde(rename = "ERROR")]
2289 Error,
2290 #[serde(rename = "FATAL")]
2291 Fatal,
2292 #[serde(rename = "NONE")]
2293 None,
2294}
2295
2296#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2298pub struct AirflowClusterTriggerersConfigLoggingContainersLoggers {
2299 #[serde(default, skip_serializing_if = "Option::is_none")]
2302 pub level: Option<AirflowClusterTriggerersConfigLoggingContainersLoggersLevel>,
2303}
2304
2305#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
2307pub enum AirflowClusterTriggerersConfigLoggingContainersLoggersLevel {
2308 #[serde(rename = "TRACE")]
2309 Trace,
2310 #[serde(rename = "DEBUG")]
2311 Debug,
2312 #[serde(rename = "INFO")]
2313 Info,
2314 #[serde(rename = "WARN")]
2315 Warn,
2316 #[serde(rename = "ERROR")]
2317 Error,
2318 #[serde(rename = "FATAL")]
2319 Fatal,
2320 #[serde(rename = "NONE")]
2321 None,
2322}
2323
2324#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2327pub struct AirflowClusterTriggerersConfigResources {
2328 #[serde(default, skip_serializing_if = "Option::is_none")]
2329 pub cpu: Option<AirflowClusterTriggerersConfigResourcesCpu>,
2330 #[serde(default, skip_serializing_if = "Option::is_none")]
2331 pub memory: Option<AirflowClusterTriggerersConfigResourcesMemory>,
2332 #[serde(default, skip_serializing_if = "Option::is_none")]
2333 pub storage: Option<AirflowClusterTriggerersConfigResourcesStorage>,
2334}
2335
2336#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2337pub struct AirflowClusterTriggerersConfigResourcesCpu {
2338 #[serde(default, skip_serializing_if = "Option::is_none")]
2343 pub max: Option<String>,
2344 #[serde(default, skip_serializing_if = "Option::is_none")]
2349 pub min: Option<String>,
2350}
2351
2352#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2353pub struct AirflowClusterTriggerersConfigResourcesMemory {
2354 #[serde(default, skip_serializing_if = "Option::is_none")]
2361 pub limit: Option<String>,
2362 #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
2364 pub runtime_limits: Option<AirflowClusterTriggerersConfigResourcesMemoryRuntimeLimits>,
2365}
2366
2367#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2369pub struct AirflowClusterTriggerersConfigResourcesMemoryRuntimeLimits {
2370}
2371
2372#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2373pub struct AirflowClusterTriggerersConfigResourcesStorage {
2374}
2375
2376#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2378pub struct AirflowClusterTriggerersRoleConfig {
2379 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podDisruptionBudget")]
2387 pub pod_disruption_budget: Option<AirflowClusterTriggerersRoleConfigPodDisruptionBudget>,
2388}
2389
2390#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2398pub struct AirflowClusterTriggerersRoleConfigPodDisruptionBudget {
2399 #[serde(default, skip_serializing_if = "Option::is_none")]
2403 pub enabled: Option<bool>,
2404 #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")]
2408 pub max_unavailable: Option<u16>,
2409}
2410
2411#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2412pub struct AirflowClusterTriggerersRoleGroups {
2413 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
2414 pub cli_overrides: Option<BTreeMap<String, String>>,
2415 #[serde(default, skip_serializing_if = "Option::is_none")]
2416 pub config: Option<AirflowClusterTriggerersRoleGroupsConfig>,
2417 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
2423 pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
2424 #[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
2431 pub env_overrides: Option<BTreeMap<String, String>>,
2432 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
2439 pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
2440 #[serde(default, skip_serializing_if = "Option::is_none")]
2441 pub replicas: Option<u16>,
2442}
2443
2444#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2445pub struct AirflowClusterTriggerersRoleGroupsConfig {
2446 #[serde(default, skip_serializing_if = "Option::is_none")]
2449 pub affinity: Option<AirflowClusterTriggerersRoleGroupsConfigAffinity>,
2450 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")]
2452 pub graceful_shutdown_timeout: Option<String>,
2453 #[serde(default, skip_serializing_if = "Option::is_none")]
2455 pub logging: Option<AirflowClusterTriggerersRoleGroupsConfigLogging>,
2456 #[serde(default, skip_serializing_if = "Option::is_none")]
2459 pub resources: Option<AirflowClusterTriggerersRoleGroupsConfigResources>,
2460}
2461
2462#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2465pub struct AirflowClusterTriggerersRoleGroupsConfigAffinity {
2466 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
2468 pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
2469 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
2471 pub node_selector: Option<BTreeMap<String, String>>,
2472 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
2474 pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
2475 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
2477 pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
2478}
2479
2480#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2482pub struct AirflowClusterTriggerersRoleGroupsConfigLogging {
2483 #[serde(default, skip_serializing_if = "Option::is_none")]
2485 pub containers: Option<BTreeMap<String, AirflowClusterTriggerersRoleGroupsConfigLoggingContainers>>,
2486 #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
2488 pub enable_vector_agent: Option<bool>,
2489}
2490
2491#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2493pub struct AirflowClusterTriggerersRoleGroupsConfigLoggingContainers {
2494 #[serde(default, skip_serializing_if = "Option::is_none")]
2496 pub console: Option<AirflowClusterTriggerersRoleGroupsConfigLoggingContainersConsole>,
2497 #[serde(default, skip_serializing_if = "Option::is_none")]
2499 pub custom: Option<AirflowClusterTriggerersRoleGroupsConfigLoggingContainersCustom>,
2500 #[serde(default, skip_serializing_if = "Option::is_none")]
2502 pub file: Option<AirflowClusterTriggerersRoleGroupsConfigLoggingContainersFile>,
2503 #[serde(default, skip_serializing_if = "Option::is_none")]
2505 pub loggers: Option<BTreeMap<String, AirflowClusterTriggerersRoleGroupsConfigLoggingContainersLoggers>>,
2506}
2507
2508#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2510pub struct AirflowClusterTriggerersRoleGroupsConfigLoggingContainersConsole {
2511 #[serde(default, skip_serializing_if = "Option::is_none")]
2514 pub level: Option<AirflowClusterTriggerersRoleGroupsConfigLoggingContainersConsoleLevel>,
2515}
2516
2517#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
2519pub enum AirflowClusterTriggerersRoleGroupsConfigLoggingContainersConsoleLevel {
2520 #[serde(rename = "TRACE")]
2521 Trace,
2522 #[serde(rename = "DEBUG")]
2523 Debug,
2524 #[serde(rename = "INFO")]
2525 Info,
2526 #[serde(rename = "WARN")]
2527 Warn,
2528 #[serde(rename = "ERROR")]
2529 Error,
2530 #[serde(rename = "FATAL")]
2531 Fatal,
2532 #[serde(rename = "NONE")]
2533 None,
2534}
2535
2536#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2538pub struct AirflowClusterTriggerersRoleGroupsConfigLoggingContainersCustom {
2539 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
2541 pub config_map: Option<String>,
2542}
2543
2544#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2546pub struct AirflowClusterTriggerersRoleGroupsConfigLoggingContainersFile {
2547 #[serde(default, skip_serializing_if = "Option::is_none")]
2550 pub level: Option<AirflowClusterTriggerersRoleGroupsConfigLoggingContainersFileLevel>,
2551}
2552
2553#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
2555pub enum AirflowClusterTriggerersRoleGroupsConfigLoggingContainersFileLevel {
2556 #[serde(rename = "TRACE")]
2557 Trace,
2558 #[serde(rename = "DEBUG")]
2559 Debug,
2560 #[serde(rename = "INFO")]
2561 Info,
2562 #[serde(rename = "WARN")]
2563 Warn,
2564 #[serde(rename = "ERROR")]
2565 Error,
2566 #[serde(rename = "FATAL")]
2567 Fatal,
2568 #[serde(rename = "NONE")]
2569 None,
2570}
2571
2572#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2574pub struct AirflowClusterTriggerersRoleGroupsConfigLoggingContainersLoggers {
2575 #[serde(default, skip_serializing_if = "Option::is_none")]
2578 pub level: Option<AirflowClusterTriggerersRoleGroupsConfigLoggingContainersLoggersLevel>,
2579}
2580
2581#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
2583pub enum AirflowClusterTriggerersRoleGroupsConfigLoggingContainersLoggersLevel {
2584 #[serde(rename = "TRACE")]
2585 Trace,
2586 #[serde(rename = "DEBUG")]
2587 Debug,
2588 #[serde(rename = "INFO")]
2589 Info,
2590 #[serde(rename = "WARN")]
2591 Warn,
2592 #[serde(rename = "ERROR")]
2593 Error,
2594 #[serde(rename = "FATAL")]
2595 Fatal,
2596 #[serde(rename = "NONE")]
2597 None,
2598}
2599
2600#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2603pub struct AirflowClusterTriggerersRoleGroupsConfigResources {
2604 #[serde(default, skip_serializing_if = "Option::is_none")]
2605 pub cpu: Option<AirflowClusterTriggerersRoleGroupsConfigResourcesCpu>,
2606 #[serde(default, skip_serializing_if = "Option::is_none")]
2607 pub memory: Option<AirflowClusterTriggerersRoleGroupsConfigResourcesMemory>,
2608 #[serde(default, skip_serializing_if = "Option::is_none")]
2609 pub storage: Option<AirflowClusterTriggerersRoleGroupsConfigResourcesStorage>,
2610}
2611
2612#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2613pub struct AirflowClusterTriggerersRoleGroupsConfigResourcesCpu {
2614 #[serde(default, skip_serializing_if = "Option::is_none")]
2619 pub max: Option<String>,
2620 #[serde(default, skip_serializing_if = "Option::is_none")]
2625 pub min: Option<String>,
2626}
2627
2628#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2629pub struct AirflowClusterTriggerersRoleGroupsConfigResourcesMemory {
2630 #[serde(default, skip_serializing_if = "Option::is_none")]
2637 pub limit: Option<String>,
2638 #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
2640 pub runtime_limits: Option<AirflowClusterTriggerersRoleGroupsConfigResourcesMemoryRuntimeLimits>,
2641}
2642
2643#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2645pub struct AirflowClusterTriggerersRoleGroupsConfigResourcesMemoryRuntimeLimits {
2646}
2647
2648#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2649pub struct AirflowClusterTriggerersRoleGroupsConfigResourcesStorage {
2650}
2651
2652#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2654pub struct AirflowClusterWebservers {
2655 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
2656 pub cli_overrides: Option<BTreeMap<String, String>>,
2657 #[serde(default, skip_serializing_if = "Option::is_none")]
2658 pub config: Option<AirflowClusterWebserversConfig>,
2659 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
2665 pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
2666 #[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
2673 pub env_overrides: Option<BTreeMap<String, String>>,
2674 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
2681 pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
2682 #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleConfig")]
2684 pub role_config: Option<AirflowClusterWebserversRoleConfig>,
2685 #[serde(rename = "roleGroups")]
2686 pub role_groups: BTreeMap<String, AirflowClusterWebserversRoleGroups>,
2687}
2688
2689#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2690pub struct AirflowClusterWebserversConfig {
2691 #[serde(default, skip_serializing_if = "Option::is_none")]
2694 pub affinity: Option<AirflowClusterWebserversConfigAffinity>,
2695 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")]
2697 pub graceful_shutdown_timeout: Option<String>,
2698 #[serde(default, skip_serializing_if = "Option::is_none")]
2700 pub logging: Option<AirflowClusterWebserversConfigLogging>,
2701 #[serde(default, skip_serializing_if = "Option::is_none")]
2704 pub resources: Option<AirflowClusterWebserversConfigResources>,
2705}
2706
2707#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2710pub struct AirflowClusterWebserversConfigAffinity {
2711 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
2713 pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
2714 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
2716 pub node_selector: Option<BTreeMap<String, String>>,
2717 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
2719 pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
2720 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
2722 pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
2723}
2724
2725#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2727pub struct AirflowClusterWebserversConfigLogging {
2728 #[serde(default, skip_serializing_if = "Option::is_none")]
2730 pub containers: Option<BTreeMap<String, AirflowClusterWebserversConfigLoggingContainers>>,
2731 #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
2733 pub enable_vector_agent: Option<bool>,
2734}
2735
2736#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2738pub struct AirflowClusterWebserversConfigLoggingContainers {
2739 #[serde(default, skip_serializing_if = "Option::is_none")]
2741 pub console: Option<AirflowClusterWebserversConfigLoggingContainersConsole>,
2742 #[serde(default, skip_serializing_if = "Option::is_none")]
2744 pub custom: Option<AirflowClusterWebserversConfigLoggingContainersCustom>,
2745 #[serde(default, skip_serializing_if = "Option::is_none")]
2747 pub file: Option<AirflowClusterWebserversConfigLoggingContainersFile>,
2748 #[serde(default, skip_serializing_if = "Option::is_none")]
2750 pub loggers: Option<BTreeMap<String, AirflowClusterWebserversConfigLoggingContainersLoggers>>,
2751}
2752
2753#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2755pub struct AirflowClusterWebserversConfigLoggingContainersConsole {
2756 #[serde(default, skip_serializing_if = "Option::is_none")]
2759 pub level: Option<AirflowClusterWebserversConfigLoggingContainersConsoleLevel>,
2760}
2761
2762#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
2764pub enum AirflowClusterWebserversConfigLoggingContainersConsoleLevel {
2765 #[serde(rename = "TRACE")]
2766 Trace,
2767 #[serde(rename = "DEBUG")]
2768 Debug,
2769 #[serde(rename = "INFO")]
2770 Info,
2771 #[serde(rename = "WARN")]
2772 Warn,
2773 #[serde(rename = "ERROR")]
2774 Error,
2775 #[serde(rename = "FATAL")]
2776 Fatal,
2777 #[serde(rename = "NONE")]
2778 None,
2779}
2780
2781#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2783pub struct AirflowClusterWebserversConfigLoggingContainersCustom {
2784 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
2786 pub config_map: Option<String>,
2787}
2788
2789#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2791pub struct AirflowClusterWebserversConfigLoggingContainersFile {
2792 #[serde(default, skip_serializing_if = "Option::is_none")]
2795 pub level: Option<AirflowClusterWebserversConfigLoggingContainersFileLevel>,
2796}
2797
2798#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
2800pub enum AirflowClusterWebserversConfigLoggingContainersFileLevel {
2801 #[serde(rename = "TRACE")]
2802 Trace,
2803 #[serde(rename = "DEBUG")]
2804 Debug,
2805 #[serde(rename = "INFO")]
2806 Info,
2807 #[serde(rename = "WARN")]
2808 Warn,
2809 #[serde(rename = "ERROR")]
2810 Error,
2811 #[serde(rename = "FATAL")]
2812 Fatal,
2813 #[serde(rename = "NONE")]
2814 None,
2815}
2816
2817#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2819pub struct AirflowClusterWebserversConfigLoggingContainersLoggers {
2820 #[serde(default, skip_serializing_if = "Option::is_none")]
2823 pub level: Option<AirflowClusterWebserversConfigLoggingContainersLoggersLevel>,
2824}
2825
2826#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
2828pub enum AirflowClusterWebserversConfigLoggingContainersLoggersLevel {
2829 #[serde(rename = "TRACE")]
2830 Trace,
2831 #[serde(rename = "DEBUG")]
2832 Debug,
2833 #[serde(rename = "INFO")]
2834 Info,
2835 #[serde(rename = "WARN")]
2836 Warn,
2837 #[serde(rename = "ERROR")]
2838 Error,
2839 #[serde(rename = "FATAL")]
2840 Fatal,
2841 #[serde(rename = "NONE")]
2842 None,
2843}
2844
2845#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2848pub struct AirflowClusterWebserversConfigResources {
2849 #[serde(default, skip_serializing_if = "Option::is_none")]
2850 pub cpu: Option<AirflowClusterWebserversConfigResourcesCpu>,
2851 #[serde(default, skip_serializing_if = "Option::is_none")]
2852 pub memory: Option<AirflowClusterWebserversConfigResourcesMemory>,
2853 #[serde(default, skip_serializing_if = "Option::is_none")]
2854 pub storage: Option<AirflowClusterWebserversConfigResourcesStorage>,
2855}
2856
2857#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2858pub struct AirflowClusterWebserversConfigResourcesCpu {
2859 #[serde(default, skip_serializing_if = "Option::is_none")]
2864 pub max: Option<String>,
2865 #[serde(default, skip_serializing_if = "Option::is_none")]
2870 pub min: Option<String>,
2871}
2872
2873#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2874pub struct AirflowClusterWebserversConfigResourcesMemory {
2875 #[serde(default, skip_serializing_if = "Option::is_none")]
2882 pub limit: Option<String>,
2883 #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
2885 pub runtime_limits: Option<AirflowClusterWebserversConfigResourcesMemoryRuntimeLimits>,
2886}
2887
2888#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2890pub struct AirflowClusterWebserversConfigResourcesMemoryRuntimeLimits {
2891}
2892
2893#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2894pub struct AirflowClusterWebserversConfigResourcesStorage {
2895}
2896
2897#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2899pub struct AirflowClusterWebserversRoleConfig {
2900 #[serde(default, skip_serializing_if = "Option::is_none", rename = "listenerClass")]
2902 pub listener_class: Option<String>,
2903 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podDisruptionBudget")]
2911 pub pod_disruption_budget: Option<AirflowClusterWebserversRoleConfigPodDisruptionBudget>,
2912}
2913
2914#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2922pub struct AirflowClusterWebserversRoleConfigPodDisruptionBudget {
2923 #[serde(default, skip_serializing_if = "Option::is_none")]
2927 pub enabled: Option<bool>,
2928 #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")]
2932 pub max_unavailable: Option<u16>,
2933}
2934
2935#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2936pub struct AirflowClusterWebserversRoleGroups {
2937 #[serde(default, skip_serializing_if = "Option::is_none", rename = "cliOverrides")]
2938 pub cli_overrides: Option<BTreeMap<String, String>>,
2939 #[serde(default, skip_serializing_if = "Option::is_none")]
2940 pub config: Option<AirflowClusterWebserversRoleGroupsConfig>,
2941 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configOverrides")]
2947 pub config_overrides: Option<BTreeMap<String, BTreeMap<String, String>>>,
2948 #[serde(default, skip_serializing_if = "Option::is_none", rename = "envOverrides")]
2955 pub env_overrides: Option<BTreeMap<String, String>>,
2956 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podOverrides")]
2963 pub pod_overrides: Option<BTreeMap<String, serde_json::Value>>,
2964 #[serde(default, skip_serializing_if = "Option::is_none")]
2965 pub replicas: Option<u16>,
2966}
2967
2968#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2969pub struct AirflowClusterWebserversRoleGroupsConfig {
2970 #[serde(default, skip_serializing_if = "Option::is_none")]
2973 pub affinity: Option<AirflowClusterWebserversRoleGroupsConfigAffinity>,
2974 #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")]
2976 pub graceful_shutdown_timeout: Option<String>,
2977 #[serde(default, skip_serializing_if = "Option::is_none")]
2979 pub logging: Option<AirflowClusterWebserversRoleGroupsConfigLogging>,
2980 #[serde(default, skip_serializing_if = "Option::is_none")]
2983 pub resources: Option<AirflowClusterWebserversRoleGroupsConfigResources>,
2984}
2985
2986#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
2989pub struct AirflowClusterWebserversRoleGroupsConfigAffinity {
2990 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinity")]
2992 pub node_affinity: Option<BTreeMap<String, serde_json::Value>>,
2993 #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")]
2995 pub node_selector: Option<BTreeMap<String, String>>,
2996 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAffinity")]
2998 pub pod_affinity: Option<BTreeMap<String, serde_json::Value>>,
2999 #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAntiAffinity")]
3001 pub pod_anti_affinity: Option<BTreeMap<String, serde_json::Value>>,
3002}
3003
3004#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3006pub struct AirflowClusterWebserversRoleGroupsConfigLogging {
3007 #[serde(default, skip_serializing_if = "Option::is_none")]
3009 pub containers: Option<BTreeMap<String, AirflowClusterWebserversRoleGroupsConfigLoggingContainers>>,
3010 #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableVectorAgent")]
3012 pub enable_vector_agent: Option<bool>,
3013}
3014
3015#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3017pub struct AirflowClusterWebserversRoleGroupsConfigLoggingContainers {
3018 #[serde(default, skip_serializing_if = "Option::is_none")]
3020 pub console: Option<AirflowClusterWebserversRoleGroupsConfigLoggingContainersConsole>,
3021 #[serde(default, skip_serializing_if = "Option::is_none")]
3023 pub custom: Option<AirflowClusterWebserversRoleGroupsConfigLoggingContainersCustom>,
3024 #[serde(default, skip_serializing_if = "Option::is_none")]
3026 pub file: Option<AirflowClusterWebserversRoleGroupsConfigLoggingContainersFile>,
3027 #[serde(default, skip_serializing_if = "Option::is_none")]
3029 pub loggers: Option<BTreeMap<String, AirflowClusterWebserversRoleGroupsConfigLoggingContainersLoggers>>,
3030}
3031
3032#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3034pub struct AirflowClusterWebserversRoleGroupsConfigLoggingContainersConsole {
3035 #[serde(default, skip_serializing_if = "Option::is_none")]
3038 pub level: Option<AirflowClusterWebserversRoleGroupsConfigLoggingContainersConsoleLevel>,
3039}
3040
3041#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
3043pub enum AirflowClusterWebserversRoleGroupsConfigLoggingContainersConsoleLevel {
3044 #[serde(rename = "TRACE")]
3045 Trace,
3046 #[serde(rename = "DEBUG")]
3047 Debug,
3048 #[serde(rename = "INFO")]
3049 Info,
3050 #[serde(rename = "WARN")]
3051 Warn,
3052 #[serde(rename = "ERROR")]
3053 Error,
3054 #[serde(rename = "FATAL")]
3055 Fatal,
3056 #[serde(rename = "NONE")]
3057 None,
3058}
3059
3060#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3062pub struct AirflowClusterWebserversRoleGroupsConfigLoggingContainersCustom {
3063 #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
3065 pub config_map: Option<String>,
3066}
3067
3068#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3070pub struct AirflowClusterWebserversRoleGroupsConfigLoggingContainersFile {
3071 #[serde(default, skip_serializing_if = "Option::is_none")]
3074 pub level: Option<AirflowClusterWebserversRoleGroupsConfigLoggingContainersFileLevel>,
3075}
3076
3077#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
3079pub enum AirflowClusterWebserversRoleGroupsConfigLoggingContainersFileLevel {
3080 #[serde(rename = "TRACE")]
3081 Trace,
3082 #[serde(rename = "DEBUG")]
3083 Debug,
3084 #[serde(rename = "INFO")]
3085 Info,
3086 #[serde(rename = "WARN")]
3087 Warn,
3088 #[serde(rename = "ERROR")]
3089 Error,
3090 #[serde(rename = "FATAL")]
3091 Fatal,
3092 #[serde(rename = "NONE")]
3093 None,
3094}
3095
3096#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3098pub struct AirflowClusterWebserversRoleGroupsConfigLoggingContainersLoggers {
3099 #[serde(default, skip_serializing_if = "Option::is_none")]
3102 pub level: Option<AirflowClusterWebserversRoleGroupsConfigLoggingContainersLoggersLevel>,
3103}
3104
3105#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
3107pub enum AirflowClusterWebserversRoleGroupsConfigLoggingContainersLoggersLevel {
3108 #[serde(rename = "TRACE")]
3109 Trace,
3110 #[serde(rename = "DEBUG")]
3111 Debug,
3112 #[serde(rename = "INFO")]
3113 Info,
3114 #[serde(rename = "WARN")]
3115 Warn,
3116 #[serde(rename = "ERROR")]
3117 Error,
3118 #[serde(rename = "FATAL")]
3119 Fatal,
3120 #[serde(rename = "NONE")]
3121 None,
3122}
3123
3124#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3127pub struct AirflowClusterWebserversRoleGroupsConfigResources {
3128 #[serde(default, skip_serializing_if = "Option::is_none")]
3129 pub cpu: Option<AirflowClusterWebserversRoleGroupsConfigResourcesCpu>,
3130 #[serde(default, skip_serializing_if = "Option::is_none")]
3131 pub memory: Option<AirflowClusterWebserversRoleGroupsConfigResourcesMemory>,
3132 #[serde(default, skip_serializing_if = "Option::is_none")]
3133 pub storage: Option<AirflowClusterWebserversRoleGroupsConfigResourcesStorage>,
3134}
3135
3136#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3137pub struct AirflowClusterWebserversRoleGroupsConfigResourcesCpu {
3138 #[serde(default, skip_serializing_if = "Option::is_none")]
3143 pub max: Option<String>,
3144 #[serde(default, skip_serializing_if = "Option::is_none")]
3149 pub min: Option<String>,
3150}
3151
3152#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3153pub struct AirflowClusterWebserversRoleGroupsConfigResourcesMemory {
3154 #[serde(default, skip_serializing_if = "Option::is_none")]
3161 pub limit: Option<String>,
3162 #[serde(default, skip_serializing_if = "Option::is_none", rename = "runtimeLimits")]
3164 pub runtime_limits: Option<AirflowClusterWebserversRoleGroupsConfigResourcesMemoryRuntimeLimits>,
3165}
3166
3167#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3169pub struct AirflowClusterWebserversRoleGroupsConfigResourcesMemoryRuntimeLimits {
3170}
3171
3172#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3173pub struct AirflowClusterWebserversRoleGroupsConfigResourcesStorage {
3174}
3175
3176#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
3177pub struct AirflowClusterStatus {
3178 #[serde(default, skip_serializing_if = "Option::is_none")]
3179 pub conditions: Option<Vec<Condition>>,
3180}
3181