Skip to main content

clickhouse_cloud_api/
models.rs

1//! Typed models for ClickHouse Cloud API schemas.
2//!
3//! Derived from the OpenAPI specification and kept in step with it by the drift
4//! analyzer, which parses this file — every model struct, enum and type alias
5//! must be declared here as literal source.
6//!
7//! Request models are strict and response models have every field `Option<T>`; a
8//! schema used in both directions appears twice, as `{Name}` and
9//! `{Name}Response`. `#[serde(default)]` is banned. See the crate-level docs for
10//! the policy and the reasoning behind it.
11
12use serde::{Deserialize, Serialize};
13
14/// Generates the `Deserialize` impl for an externally-discriminated
15/// `#[serde(untagged)]` enum.
16///
17/// Every ClickHouse Cloud "one of multiple variants" model whose JSON carries a
18/// string discriminator field (e.g. `bucketProvider`, `type`, `kind`,
19/// `displayType`, `service`, `operator`) shares the same deserialization shape:
20/// buffer the payload as a [`serde_json::Value`], read the discriminator key,
21/// and route each known wire value to the matching variant via
22/// [`serde_json::from_value`]. This explicit dispatch avoids the greedy
23/// first-match misrouting that `#[serde(untagged)]` derives suffer when variants
24/// share a discriminator.
25///
26/// Once the payload buffers into a `Value`, deserialization cannot fail. Two
27/// routes reach the enum's `Unknown(serde_json::Value)` catch-all, which holds
28/// the payload verbatim so it round-trips losslessly:
29///
30/// * an unrecognized discriminator value, through the final catch-all arm;
31/// * a recognized discriminator whose payload does not fit the selected variant
32///   — e.g. the API changes a field from an array to a string — through
33///   [`crate::serde_helpers::deserialize_or_raw`]. Field-level tolerance covers
34///   a field the API stops sending; this covers a field whose shape it changes.
35///
36/// The macro emits **only** the `Deserialize` impl. The enum declaration, its
37/// derives/serde attributes, and its `Display` impl must remain literal source
38/// so the syn-based OpenAPI drift analyzer can inventory them structurally (it
39/// cannot expand macros).
40///
41/// Each arm lists one or more discriminator wire values mapping to a single
42/// variant, so several values can share a variant:
43///
44/// ```ignore
45/// discriminated_union! {
46///     ClickStackNumberTileColorCondition, "operator" {
47///         "gt" | "gte" | "lt" | "lte" => ClickStackNumericColorCondition,
48///         "between" => ClickStackBetweenColorCondition,
49///         "eq" | "neq" => ClickStackEqualityColorCondition,
50///     }
51/// }
52/// ```
53///
54/// Some unions discriminate one variant by the *absence* of the key rather than
55/// by a wire value of it (e.g. a ClickStack chart config carries
56/// `configType: "sql"` when it is a raw-SQL config and carries no `configType`
57/// at all when it is a builder config). Such a union adds a trailing `none` arm
58/// naming the variant the key's absence selects, plus the keys whose presence
59/// disqualifies that variant:
60///
61/// ```ignore
62/// discriminated_union! {
63///     ClickStackLineChartConfig, "configType" {
64///         "sql" => ClickStackLineRawSqlChartConfig,
65///         none unless "connectionId" | "sqlTemplate" => ClickStackLineBuilderChartConfig,
66///     }
67/// }
68/// ```
69///
70/// The `none` arm pins two semantics:
71///
72/// * It deliberately conflates "key absent" and "key present but not a string":
73///   both produce a `None` scrutinee, so both take the arm.
74/// * The `unless` keys guard against a *dropped* discriminator. A total absence
75///   variant — one that cannot fail to deserialize, because none of its fields
76///   is required — would otherwise absorb any keyless payload, silently
77///   retyping a raw-SQL config as an empty builder config and discarding its
78///   `connectionId`/`sqlTemplate`. Listing keys that only the other variants
79///   carry routes such a payload to `Unknown` instead, where it survives
80///   intact. Unknown *added* keys are not listed and stay ignored. If the spec
81///   ever gives the absence variant one of the guard keys, drop that key from
82///   the list.
83///
84/// Without a `none` arm, an absent or non-string discriminator falls to
85/// `Unknown` through the final catch-all.
86///
87/// New discriminated unions in this module should use this macro rather than
88/// hand-writing the impl. Enums whose variants need multi-level or nested
89/// dispatch do not fit this single-key shape and must stay hand-written.
90macro_rules! discriminated_union {
91    (
92        $enum:ident, $key:literal {
93            $( $( $wire:literal )|+ => $variant:ident, )+
94            $( none unless $( $guard:literal )|+ => $absent:ident, )?
95        }
96    ) => {
97        impl<'de> Deserialize<'de> for $enum {
98            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
99            where
100                D: serde::Deserializer<'de>,
101            {
102                let value = serde_json::Value::deserialize(deserializer)?;
103                match value.get($key).and_then(|v| v.as_str()) {
104                    $(
105                        $( Some($wire) )|+ => Ok(
106                            crate::serde_helpers::deserialize_or_raw(value)
107                                .map($enum::$variant)
108                                .unwrap_or_else($enum::Unknown),
109                        ),
110                    )+
111                    $(
112                        None => Ok(
113                            if [$($guard),+].iter().any(|key| value.get(key).is_some()) {
114                                $enum::Unknown(value)
115                            } else {
116                                crate::serde_helpers::deserialize_or_raw(value)
117                                    .map($enum::$absent)
118                                    .unwrap_or_else($enum::Unknown)
119                            },
120                        ),
121                    )?
122                    _ => Ok($enum::Unknown(value)),
123                }
124            }
125        }
126    };
127}
128
129/// `pgHaType` enum from the ClickHouse Cloud API.
130#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
131pub enum PgHaType {
132    #[serde(rename = "none")]
133    #[default]
134    None,
135    #[serde(rename = "async")]
136    Async,
137    #[serde(rename = "sync")]
138    Sync,
139    /// Catch-all for unknown or newly-added values.
140    #[serde(untagged)]
141    Unknown(String),
142}
143
144impl std::fmt::Display for PgHaType {
145    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
146        match self {
147            Self::None => write!(f, "none"),
148            Self::Async => write!(f, "async"),
149            Self::Sync => write!(f, "sync"),
150            Self::Unknown(s) => write!(f, "{s}"),
151        }
152    }
153}
154
155impl PgHaType {
156    /// Wire values accepted by the API, excluding the catch-all.
157    pub const VALUES: &'static [&'static str] = &["none", "async", "sync"];
158}
159
160/// `pgProvider` enum from the ClickHouse Cloud API.
161#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
162pub enum PgProvider {
163    #[serde(rename = "aws")]
164    #[default]
165    Aws,
166    /// Catch-all for unknown or newly-added values.
167    #[serde(untagged)]
168    Unknown(String),
169}
170
171impl std::fmt::Display for PgProvider {
172    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
173        match self {
174            Self::Aws => write!(f, "aws"),
175            Self::Unknown(s) => write!(f, "{s}"),
176        }
177    }
178}
179
180impl PgProvider {
181    /// Wire values accepted by the API, excluding the catch-all.
182    pub const VALUES: &'static [&'static str] = &["aws"];
183}
184
185/// `pgSize` enum from the ClickHouse Cloud API.
186#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
187pub enum PgSize {
188    #[serde(rename = "c6gd.large")]
189    #[default]
190    C6gd_large,
191    #[serde(rename = "c6gd.xlarge")]
192    C6gd_xlarge,
193    #[serde(rename = "c6gd.2xlarge")]
194    C6gd_2xlarge,
195    #[serde(rename = "c6gd.4xlarge")]
196    C6gd_4xlarge,
197    #[serde(rename = "c6gd.8xlarge")]
198    C6gd_8xlarge,
199    #[serde(rename = "c6gd.16xlarge")]
200    C6gd_16xlarge,
201    #[serde(rename = "i7i.large")]
202    I7i_large,
203    #[serde(rename = "i7i.xlarge")]
204    I7i_xlarge,
205    #[serde(rename = "i7i.2xlarge")]
206    I7i_2xlarge,
207    #[serde(rename = "i7i.4xlarge")]
208    I7i_4xlarge,
209    #[serde(rename = "i7i.8xlarge")]
210    I7i_8xlarge,
211    #[serde(rename = "i7i.12xlarge")]
212    I7i_12xlarge,
213    #[serde(rename = "i7i.16xlarge")]
214    I7i_16xlarge,
215    #[serde(rename = "i7i.24xlarge")]
216    I7i_24xlarge,
217    #[serde(rename = "i7ie.large")]
218    I7ie_large,
219    #[serde(rename = "i7ie.xlarge")]
220    I7ie_xlarge,
221    #[serde(rename = "i7ie.2xlarge")]
222    I7ie_2xlarge,
223    #[serde(rename = "i7ie.3xlarge")]
224    I7ie_3xlarge,
225    #[serde(rename = "i7ie.6xlarge")]
226    I7ie_6xlarge,
227    #[serde(rename = "i7ie.12xlarge")]
228    I7ie_12xlarge,
229    #[serde(rename = "i7ie.18xlarge")]
230    I7ie_18xlarge,
231    #[serde(rename = "i7ie.24xlarge")]
232    I7ie_24xlarge,
233    #[serde(rename = "i8g.large")]
234    I8g_large,
235    #[serde(rename = "i8g.xlarge")]
236    I8g_xlarge,
237    #[serde(rename = "i8g.2xlarge")]
238    I8g_2xlarge,
239    #[serde(rename = "i8g.4xlarge")]
240    I8g_4xlarge,
241    #[serde(rename = "i8g.8xlarge")]
242    I8g_8xlarge,
243    #[serde(rename = "i8g.16xlarge")]
244    I8g_16xlarge,
245    #[serde(rename = "i8g.24xlarge")]
246    I8g_24xlarge,
247    #[serde(rename = "i8ge.large")]
248    I8ge_large,
249    #[serde(rename = "i8ge.xlarge")]
250    I8ge_xlarge,
251    #[serde(rename = "i8ge.2xlarge")]
252    I8ge_2xlarge,
253    #[serde(rename = "i8ge.3xlarge")]
254    I8ge_3xlarge,
255    #[serde(rename = "i8ge.6xlarge")]
256    I8ge_6xlarge,
257    #[serde(rename = "i8ge.12xlarge")]
258    I8ge_12xlarge,
259    #[serde(rename = "i8ge.18xlarge")]
260    I8ge_18xlarge,
261    #[serde(rename = "i8ge.24xlarge")]
262    I8ge_24xlarge,
263    #[serde(rename = "m6gd.large")]
264    M6gd_large,
265    #[serde(rename = "m6gd.xlarge")]
266    M6gd_xlarge,
267    #[serde(rename = "m6gd.2xlarge")]
268    M6gd_2xlarge,
269    #[serde(rename = "m6gd.4xlarge")]
270    M6gd_4xlarge,
271    #[serde(rename = "m6gd.8xlarge")]
272    M6gd_8xlarge,
273    #[serde(rename = "m6gd.16xlarge")]
274    M6gd_16xlarge,
275    #[serde(rename = "m6id.large")]
276    M6id_large,
277    #[serde(rename = "m6id.xlarge")]
278    M6id_xlarge,
279    #[serde(rename = "m6id.2xlarge")]
280    M6id_2xlarge,
281    #[serde(rename = "m6id.4xlarge")]
282    M6id_4xlarge,
283    #[serde(rename = "m6id.8xlarge")]
284    M6id_8xlarge,
285    #[serde(rename = "m6id.16xlarge")]
286    M6id_16xlarge,
287    #[serde(rename = "m8gd.large")]
288    M8gd_large,
289    #[serde(rename = "m8gd.xlarge")]
290    M8gd_xlarge,
291    #[serde(rename = "m8gd.2xlarge")]
292    M8gd_2xlarge,
293    #[serde(rename = "m8gd.4xlarge")]
294    M8gd_4xlarge,
295    #[serde(rename = "m8gd.8xlarge")]
296    M8gd_8xlarge,
297    #[serde(rename = "m8gd.16xlarge")]
298    M8gd_16xlarge,
299    #[serde(rename = "r6gd.medium")]
300    R6gd_medium,
301    #[serde(rename = "r6gd.large")]
302    R6gd_large,
303    #[serde(rename = "r6gd.xlarge")]
304    R6gd_xlarge,
305    #[serde(rename = "r6gd.2xlarge")]
306    R6gd_2xlarge,
307    #[serde(rename = "r6gd.4xlarge")]
308    R6gd_4xlarge,
309    #[serde(rename = "r6gd.8xlarge")]
310    R6gd_8xlarge,
311    #[serde(rename = "r6gd.12xlarge")]
312    R6gd_12xlarge,
313    #[serde(rename = "r6gd.16xlarge")]
314    R6gd_16xlarge,
315    #[serde(rename = "r6id.large")]
316    R6id_large,
317    #[serde(rename = "r6id.xlarge")]
318    R6id_xlarge,
319    #[serde(rename = "r6id.2xlarge")]
320    R6id_2xlarge,
321    #[serde(rename = "r6id.4xlarge")]
322    R6id_4xlarge,
323    #[serde(rename = "r6id.8xlarge")]
324    R6id_8xlarge,
325    #[serde(rename = "r6id.12xlarge")]
326    R6id_12xlarge,
327    #[serde(rename = "r6id.16xlarge")]
328    R6id_16xlarge,
329    #[serde(rename = "r6id.24xlarge")]
330    R6id_24xlarge,
331    #[serde(rename = "r6id.32xlarge")]
332    R6id_32xlarge,
333    #[serde(rename = "r8gd.medium")]
334    R8gd_medium,
335    #[serde(rename = "r8gd.large")]
336    R8gd_large,
337    #[serde(rename = "r8gd.xlarge")]
338    R8gd_xlarge,
339    #[serde(rename = "r8gd.2xlarge")]
340    R8gd_2xlarge,
341    #[serde(rename = "r8gd.4xlarge")]
342    R8gd_4xlarge,
343    #[serde(rename = "r8gd.8xlarge")]
344    R8gd_8xlarge,
345    #[serde(rename = "r8gd.12xlarge")]
346    R8gd_12xlarge,
347    #[serde(rename = "r8gd.16xlarge")]
348    R8gd_16xlarge,
349    #[serde(rename = "r8gd.24xlarge")]
350    R8gd_24xlarge,
351    #[serde(rename = "r8gd.48xlarge")]
352    R8gd_48xlarge,
353    /// Catch-all for unknown or newly-added values.
354    #[serde(untagged)]
355    Unknown(String),
356}
357
358impl std::fmt::Display for PgSize {
359    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
360        match self {
361            Self::C6gd_large => write!(f, "c6gd.large"),
362            Self::C6gd_xlarge => write!(f, "c6gd.xlarge"),
363            Self::C6gd_2xlarge => write!(f, "c6gd.2xlarge"),
364            Self::C6gd_4xlarge => write!(f, "c6gd.4xlarge"),
365            Self::C6gd_8xlarge => write!(f, "c6gd.8xlarge"),
366            Self::C6gd_16xlarge => write!(f, "c6gd.16xlarge"),
367            Self::I7i_large => write!(f, "i7i.large"),
368            Self::I7i_xlarge => write!(f, "i7i.xlarge"),
369            Self::I7i_2xlarge => write!(f, "i7i.2xlarge"),
370            Self::I7i_4xlarge => write!(f, "i7i.4xlarge"),
371            Self::I7i_8xlarge => write!(f, "i7i.8xlarge"),
372            Self::I7i_12xlarge => write!(f, "i7i.12xlarge"),
373            Self::I7i_16xlarge => write!(f, "i7i.16xlarge"),
374            Self::I7i_24xlarge => write!(f, "i7i.24xlarge"),
375            Self::I7ie_large => write!(f, "i7ie.large"),
376            Self::I7ie_xlarge => write!(f, "i7ie.xlarge"),
377            Self::I7ie_2xlarge => write!(f, "i7ie.2xlarge"),
378            Self::I7ie_3xlarge => write!(f, "i7ie.3xlarge"),
379            Self::I7ie_6xlarge => write!(f, "i7ie.6xlarge"),
380            Self::I7ie_12xlarge => write!(f, "i7ie.12xlarge"),
381            Self::I7ie_18xlarge => write!(f, "i7ie.18xlarge"),
382            Self::I7ie_24xlarge => write!(f, "i7ie.24xlarge"),
383            Self::I8g_large => write!(f, "i8g.large"),
384            Self::I8g_xlarge => write!(f, "i8g.xlarge"),
385            Self::I8g_2xlarge => write!(f, "i8g.2xlarge"),
386            Self::I8g_4xlarge => write!(f, "i8g.4xlarge"),
387            Self::I8g_8xlarge => write!(f, "i8g.8xlarge"),
388            Self::I8g_16xlarge => write!(f, "i8g.16xlarge"),
389            Self::I8g_24xlarge => write!(f, "i8g.24xlarge"),
390            Self::I8ge_large => write!(f, "i8ge.large"),
391            Self::I8ge_xlarge => write!(f, "i8ge.xlarge"),
392            Self::I8ge_2xlarge => write!(f, "i8ge.2xlarge"),
393            Self::I8ge_3xlarge => write!(f, "i8ge.3xlarge"),
394            Self::I8ge_6xlarge => write!(f, "i8ge.6xlarge"),
395            Self::I8ge_12xlarge => write!(f, "i8ge.12xlarge"),
396            Self::I8ge_18xlarge => write!(f, "i8ge.18xlarge"),
397            Self::I8ge_24xlarge => write!(f, "i8ge.24xlarge"),
398            Self::M6gd_large => write!(f, "m6gd.large"),
399            Self::M6gd_xlarge => write!(f, "m6gd.xlarge"),
400            Self::M6gd_2xlarge => write!(f, "m6gd.2xlarge"),
401            Self::M6gd_4xlarge => write!(f, "m6gd.4xlarge"),
402            Self::M6gd_8xlarge => write!(f, "m6gd.8xlarge"),
403            Self::M6gd_16xlarge => write!(f, "m6gd.16xlarge"),
404            Self::M6id_large => write!(f, "m6id.large"),
405            Self::M6id_xlarge => write!(f, "m6id.xlarge"),
406            Self::M6id_2xlarge => write!(f, "m6id.2xlarge"),
407            Self::M6id_4xlarge => write!(f, "m6id.4xlarge"),
408            Self::M6id_8xlarge => write!(f, "m6id.8xlarge"),
409            Self::M6id_16xlarge => write!(f, "m6id.16xlarge"),
410            Self::M8gd_large => write!(f, "m8gd.large"),
411            Self::M8gd_xlarge => write!(f, "m8gd.xlarge"),
412            Self::M8gd_2xlarge => write!(f, "m8gd.2xlarge"),
413            Self::M8gd_4xlarge => write!(f, "m8gd.4xlarge"),
414            Self::M8gd_8xlarge => write!(f, "m8gd.8xlarge"),
415            Self::M8gd_16xlarge => write!(f, "m8gd.16xlarge"),
416            Self::R6gd_medium => write!(f, "r6gd.medium"),
417            Self::R6gd_large => write!(f, "r6gd.large"),
418            Self::R6gd_xlarge => write!(f, "r6gd.xlarge"),
419            Self::R6gd_2xlarge => write!(f, "r6gd.2xlarge"),
420            Self::R6gd_4xlarge => write!(f, "r6gd.4xlarge"),
421            Self::R6gd_8xlarge => write!(f, "r6gd.8xlarge"),
422            Self::R6gd_12xlarge => write!(f, "r6gd.12xlarge"),
423            Self::R6gd_16xlarge => write!(f, "r6gd.16xlarge"),
424            Self::R6id_large => write!(f, "r6id.large"),
425            Self::R6id_xlarge => write!(f, "r6id.xlarge"),
426            Self::R6id_2xlarge => write!(f, "r6id.2xlarge"),
427            Self::R6id_4xlarge => write!(f, "r6id.4xlarge"),
428            Self::R6id_8xlarge => write!(f, "r6id.8xlarge"),
429            Self::R6id_12xlarge => write!(f, "r6id.12xlarge"),
430            Self::R6id_16xlarge => write!(f, "r6id.16xlarge"),
431            Self::R6id_24xlarge => write!(f, "r6id.24xlarge"),
432            Self::R6id_32xlarge => write!(f, "r6id.32xlarge"),
433            Self::R8gd_medium => write!(f, "r8gd.medium"),
434            Self::R8gd_large => write!(f, "r8gd.large"),
435            Self::R8gd_xlarge => write!(f, "r8gd.xlarge"),
436            Self::R8gd_2xlarge => write!(f, "r8gd.2xlarge"),
437            Self::R8gd_4xlarge => write!(f, "r8gd.4xlarge"),
438            Self::R8gd_8xlarge => write!(f, "r8gd.8xlarge"),
439            Self::R8gd_12xlarge => write!(f, "r8gd.12xlarge"),
440            Self::R8gd_16xlarge => write!(f, "r8gd.16xlarge"),
441            Self::R8gd_24xlarge => write!(f, "r8gd.24xlarge"),
442            Self::R8gd_48xlarge => write!(f, "r8gd.48xlarge"),
443            Self::Unknown(s) => write!(f, "{s}"),
444        }
445    }
446}
447
448/// `pgStateProperty` enum from the ClickHouse Cloud API.
449#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
450pub enum PgStateProperty {
451    #[serde(rename = "creating")]
452    #[default]
453    Creating,
454    #[serde(rename = "restarting")]
455    Restarting,
456    #[serde(rename = "running")]
457    Running,
458    #[serde(rename = "replaying_wal")]
459    Replaying_wal,
460    #[serde(rename = "restoring_backup")]
461    Restoring_backup,
462    #[serde(rename = "finalizing_restore")]
463    Finalizing_restore,
464    #[serde(rename = "unavailable")]
465    Unavailable,
466    #[serde(rename = "stopped")]
467    Stopped,
468    #[serde(rename = "deleting")]
469    Deleting,
470    /// Catch-all for unknown or newly-added values.
471    #[serde(untagged)]
472    Unknown(String),
473}
474
475impl std::fmt::Display for PgStateProperty {
476    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
477        match self {
478            Self::Creating => write!(f, "creating"),
479            Self::Restarting => write!(f, "restarting"),
480            Self::Running => write!(f, "running"),
481            Self::Replaying_wal => write!(f, "replaying_wal"),
482            Self::Restoring_backup => write!(f, "restoring_backup"),
483            Self::Finalizing_restore => write!(f, "finalizing_restore"),
484            Self::Unavailable => write!(f, "unavailable"),
485            Self::Stopped => write!(f, "stopped"),
486            Self::Deleting => write!(f, "deleting"),
487            Self::Unknown(s) => write!(f, "{s}"),
488        }
489    }
490}
491
492/// `pgVersion` enum from the ClickHouse Cloud API.
493#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
494pub enum PgVersion {
495    #[serde(rename = "18")]
496    #[default]
497    _18,
498    #[serde(rename = "17")]
499    _17,
500    /// Catch-all for unknown or newly-added values.
501    #[serde(untagged)]
502    Unknown(String),
503}
504
505impl std::fmt::Display for PgVersion {
506    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
507        match self {
508            Self::_18 => write!(f, "18"),
509            Self::_17 => write!(f, "17"),
510            Self::Unknown(s) => write!(f, "{s}"),
511        }
512    }
513}
514
515impl PgVersion {
516    /// Wire values accepted by the API, excluding the catch-all.
517    pub const VALUES: &'static [&'static str] = &["18", "17"];
518}
519
520/// Inline enum for `Activity.actorType`.
521#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
522pub enum ActivityActortype {
523    #[serde(rename = "user")]
524    #[default]
525    User,
526    #[serde(rename = "support")]
527    Support,
528    #[serde(rename = "system")]
529    System,
530    #[serde(rename = "api")]
531    Api,
532    /// Catch-all for unknown or newly-added values.
533    #[serde(untagged)]
534    Unknown(String),
535}
536
537impl std::fmt::Display for ActivityActortype {
538    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
539        match self {
540            Self::User => write!(f, "user"),
541            Self::Support => write!(f, "support"),
542            Self::System => write!(f, "system"),
543            Self::Api => write!(f, "api"),
544            Self::Unknown(s) => write!(f, "{s}"),
545        }
546    }
547}
548
549/// Inline enum for `Activity.keyUpdateType`.
550#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
551pub enum ActivityKeyupdatetype {
552    #[serde(rename = "created")]
553    #[default]
554    Created,
555    #[serde(rename = "deleted")]
556    Deleted,
557    #[serde(rename = "name-changed")]
558    Name_changed,
559    #[serde(rename = "role-changed")]
560    Role_changed,
561    #[serde(rename = "state-changed")]
562    State_changed,
563    #[serde(rename = "date-changed")]
564    Date_changed,
565    #[serde(rename = "ip-access-list-changed")]
566    Ip_access_list_changed,
567    #[serde(rename = "org-role-changed")]
568    Org_role_changed,
569    #[serde(rename = "default-service-role-changed")]
570    Default_service_role_changed,
571    #[serde(rename = "service-role-changed")]
572    Service_role_changed,
573    #[serde(rename = "roles-v2-changed")]
574    Roles_v2_changed,
575    /// Catch-all for unknown or newly-added values.
576    #[serde(untagged)]
577    Unknown(String),
578}
579
580impl std::fmt::Display for ActivityKeyupdatetype {
581    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
582        match self {
583            Self::Created => write!(f, "created"),
584            Self::Deleted => write!(f, "deleted"),
585            Self::Name_changed => write!(f, "name-changed"),
586            Self::Role_changed => write!(f, "role-changed"),
587            Self::State_changed => write!(f, "state-changed"),
588            Self::Date_changed => write!(f, "date-changed"),
589            Self::Ip_access_list_changed => write!(f, "ip-access-list-changed"),
590            Self::Org_role_changed => write!(f, "org-role-changed"),
591            Self::Default_service_role_changed => write!(f, "default-service-role-changed"),
592            Self::Service_role_changed => write!(f, "service-role-changed"),
593            Self::Roles_v2_changed => write!(f, "roles-v2-changed"),
594            Self::Unknown(s) => write!(f, "{s}"),
595        }
596    }
597}
598
599/// Inline enum for `Activity.type`.
600#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
601pub enum ActivityType {
602    #[serde(rename = "create_organization")]
603    #[default]
604    Create_organization,
605    #[serde(rename = "organization_update_name")]
606    Organization_update_name,
607    #[serde(rename = "transfer_service_in")]
608    Transfer_service_in,
609    #[serde(rename = "transfer_service_out")]
610    Transfer_service_out,
611    #[serde(rename = "save_payment_method")]
612    Save_payment_method,
613    #[serde(rename = "marketplace_subscription")]
614    Marketplace_subscription,
615    #[serde(rename = "migrate_marketplace_billing_details_in")]
616    Migrate_marketplace_billing_details_in,
617    #[serde(rename = "migrate_marketplace_billing_details_out")]
618    Migrate_marketplace_billing_details_out,
619    #[serde(rename = "organization_update_tier")]
620    Organization_update_tier,
621    #[serde(rename = "organization_invite_create")]
622    Organization_invite_create,
623    #[serde(rename = "organization_invite_delete")]
624    Organization_invite_delete,
625    #[serde(rename = "organization_member_join")]
626    Organization_member_join,
627    #[serde(rename = "organization_member_add")]
628    Organization_member_add,
629    #[serde(rename = "organization_member_leave")]
630    Organization_member_leave,
631    #[serde(rename = "organization_member_delete")]
632    Organization_member_delete,
633    #[serde(rename = "organization_member_update_role")]
634    Organization_member_update_role,
635    #[serde(rename = "organization_member_update_roles")]
636    Organization_member_update_roles,
637    #[serde(rename = "organization_member_update_mfa_method")]
638    Organization_member_update_mfa_method,
639    #[serde(rename = "organization_saml_connection_create")]
640    Organization_saml_connection_create,
641    #[serde(rename = "organization_saml_connection_update")]
642    Organization_saml_connection_update,
643    #[serde(rename = "user_login")]
644    User_login,
645    #[serde(rename = "user_login_failed")]
646    User_login_failed,
647    #[serde(rename = "user_logout")]
648    User_logout,
649    #[serde(rename = "key_create")]
650    Key_create,
651    #[serde(rename = "key_delete")]
652    Key_delete,
653    #[serde(rename = "openapi_key_update")]
654    Openapi_key_update,
655    #[serde(rename = "service_create")]
656    Service_create,
657    #[serde(rename = "service_start")]
658    Service_start,
659    #[serde(rename = "service_stop")]
660    Service_stop,
661    #[serde(rename = "service_awaken")]
662    Service_awaken,
663    #[serde(rename = "service_idle")]
664    Service_idle,
665    #[serde(rename = "service_running")]
666    Service_running,
667    #[serde(rename = "service_partially_running")]
668    Service_partially_running,
669    #[serde(rename = "service_delete")]
670    Service_delete,
671    #[serde(rename = "service_update_name")]
672    Service_update_name,
673    #[serde(rename = "service_update_ip_access_list")]
674    Service_update_ip_access_list,
675    #[serde(rename = "service_update_autoscaling_memory")]
676    Service_update_autoscaling_memory,
677    #[serde(rename = "service_update_autoscaling_idling")]
678    Service_update_autoscaling_idling,
679    #[serde(rename = "service_update_password")]
680    Service_update_password,
681    #[serde(rename = "service_update_autoscaling_replicas")]
682    Service_update_autoscaling_replicas,
683    #[serde(rename = "service_update_max_allowable_replicas")]
684    Service_update_max_allowable_replicas,
685    #[serde(rename = "service_update_backup_configuration")]
686    Service_update_backup_configuration,
687    #[serde(rename = "service_update_snapshot_configuration")]
688    Service_update_snapshot_configuration,
689    #[serde(rename = "service_restore_backup")]
690    Service_restore_backup,
691    #[serde(rename = "service_update_release_channel")]
692    Service_update_release_channel,
693    #[serde(rename = "service_update_gpt_usage_consent")]
694    Service_update_gpt_usage_consent,
695    #[serde(rename = "service_update_private_endpoints")]
696    Service_update_private_endpoints,
697    #[serde(rename = "service_import_to_organization")]
698    Service_import_to_organization,
699    #[serde(rename = "service_export_from_organization")]
700    Service_export_from_organization,
701    #[serde(rename = "service_maintenance_start")]
702    Service_maintenance_start,
703    #[serde(rename = "service_maintenance_end")]
704    Service_maintenance_end,
705    #[serde(rename = "service_update_core_dump")]
706    Service_update_core_dump,
707    #[serde(rename = "backup_delete")]
708    Backup_delete,
709    /// Catch-all for unknown or newly-added values.
710    #[serde(untagged)]
711    Unknown(String),
712}
713
714impl std::fmt::Display for ActivityType {
715    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
716        match self {
717            Self::Create_organization => write!(f, "create_organization"),
718            Self::Organization_update_name => write!(f, "organization_update_name"),
719            Self::Transfer_service_in => write!(f, "transfer_service_in"),
720            Self::Transfer_service_out => write!(f, "transfer_service_out"),
721            Self::Save_payment_method => write!(f, "save_payment_method"),
722            Self::Marketplace_subscription => write!(f, "marketplace_subscription"),
723            Self::Migrate_marketplace_billing_details_in => {
724                write!(f, "migrate_marketplace_billing_details_in")
725            }
726            Self::Migrate_marketplace_billing_details_out => {
727                write!(f, "migrate_marketplace_billing_details_out")
728            }
729            Self::Organization_update_tier => write!(f, "organization_update_tier"),
730            Self::Organization_invite_create => write!(f, "organization_invite_create"),
731            Self::Organization_invite_delete => write!(f, "organization_invite_delete"),
732            Self::Organization_member_join => write!(f, "organization_member_join"),
733            Self::Organization_member_add => write!(f, "organization_member_add"),
734            Self::Organization_member_leave => write!(f, "organization_member_leave"),
735            Self::Organization_member_delete => write!(f, "organization_member_delete"),
736            Self::Organization_member_update_role => write!(f, "organization_member_update_role"),
737            Self::Organization_member_update_roles => {
738                write!(f, "organization_member_update_roles")
739            }
740            Self::Organization_member_update_mfa_method => {
741                write!(f, "organization_member_update_mfa_method")
742            }
743            Self::Organization_saml_connection_create => {
744                write!(f, "organization_saml_connection_create")
745            }
746            Self::Organization_saml_connection_update => {
747                write!(f, "organization_saml_connection_update")
748            }
749            Self::User_login => write!(f, "user_login"),
750            Self::User_login_failed => write!(f, "user_login_failed"),
751            Self::User_logout => write!(f, "user_logout"),
752            Self::Key_create => write!(f, "key_create"),
753            Self::Key_delete => write!(f, "key_delete"),
754            Self::Openapi_key_update => write!(f, "openapi_key_update"),
755            Self::Service_create => write!(f, "service_create"),
756            Self::Service_start => write!(f, "service_start"),
757            Self::Service_stop => write!(f, "service_stop"),
758            Self::Service_awaken => write!(f, "service_awaken"),
759            Self::Service_idle => write!(f, "service_idle"),
760            Self::Service_running => write!(f, "service_running"),
761            Self::Service_partially_running => write!(f, "service_partially_running"),
762            Self::Service_delete => write!(f, "service_delete"),
763            Self::Service_update_name => write!(f, "service_update_name"),
764            Self::Service_update_ip_access_list => write!(f, "service_update_ip_access_list"),
765            Self::Service_update_autoscaling_memory => {
766                write!(f, "service_update_autoscaling_memory")
767            }
768            Self::Service_update_autoscaling_idling => {
769                write!(f, "service_update_autoscaling_idling")
770            }
771            Self::Service_update_password => write!(f, "service_update_password"),
772            Self::Service_update_autoscaling_replicas => {
773                write!(f, "service_update_autoscaling_replicas")
774            }
775            Self::Service_update_max_allowable_replicas => {
776                write!(f, "service_update_max_allowable_replicas")
777            }
778            Self::Service_update_backup_configuration => {
779                write!(f, "service_update_backup_configuration")
780            }
781            Self::Service_update_snapshot_configuration => {
782                write!(f, "service_update_snapshot_configuration")
783            }
784            Self::Service_restore_backup => write!(f, "service_restore_backup"),
785            Self::Service_update_release_channel => write!(f, "service_update_release_channel"),
786            Self::Service_update_gpt_usage_consent => write!(f, "service_update_gpt_usage_consent"),
787            Self::Service_update_private_endpoints => write!(f, "service_update_private_endpoints"),
788            Self::Service_import_to_organization => write!(f, "service_import_to_organization"),
789            Self::Service_export_from_organization => write!(f, "service_export_from_organization"),
790            Self::Service_maintenance_start => write!(f, "service_maintenance_start"),
791            Self::Service_maintenance_end => write!(f, "service_maintenance_end"),
792            Self::Service_update_core_dump => write!(f, "service_update_core_dump"),
793            Self::Backup_delete => write!(f, "backup_delete"),
794            Self::Unknown(s) => write!(f, "{s}"),
795        }
796    }
797}
798
799/// Inline enum for `ApiKey.state`.
800#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
801pub enum ApiKeyState {
802    #[serde(rename = "enabled")]
803    #[default]
804    Enabled,
805    #[serde(rename = "disabled")]
806    Disabled,
807    /// Catch-all for unknown or newly-added values.
808    #[serde(untagged)]
809    Unknown(String),
810}
811
812impl std::fmt::Display for ApiKeyState {
813    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
814        match self {
815            Self::Enabled => write!(f, "enabled"),
816            Self::Disabled => write!(f, "disabled"),
817            Self::Unknown(s) => write!(f, "{s}"),
818        }
819    }
820}
821
822/// Inline enum for `ApiKeyPatchRequest.state`.
823#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
824pub enum ApiKeyPatchRequestState {
825    #[serde(rename = "enabled")]
826    #[default]
827    Enabled,
828    #[serde(rename = "disabled")]
829    Disabled,
830    /// Catch-all for unknown or newly-added values.
831    #[serde(untagged)]
832    Unknown(String),
833}
834
835impl std::fmt::Display for ApiKeyPatchRequestState {
836    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
837        match self {
838            Self::Enabled => write!(f, "enabled"),
839            Self::Disabled => write!(f, "disabled"),
840            Self::Unknown(s) => write!(f, "{s}"),
841        }
842    }
843}
844
845/// Inline enum for `ApiKeyPostRequest.state`.
846#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
847pub enum ApiKeyPostRequestState {
848    #[serde(rename = "enabled")]
849    #[default]
850    Enabled,
851    #[serde(rename = "disabled")]
852    Disabled,
853    /// Catch-all for unknown or newly-added values.
854    #[serde(untagged)]
855    Unknown(String),
856}
857
858impl std::fmt::Display for ApiKeyPostRequestState {
859    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
860        match self {
861            Self::Enabled => write!(f, "enabled"),
862            Self::Disabled => write!(f, "disabled"),
863            Self::Unknown(s) => write!(f, "{s}"),
864        }
865    }
866}
867
868/// Inline enum for `AssignedRole.roleType`.
869#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
870pub enum AssignedRoleRoletype {
871    #[serde(rename = "system")]
872    #[default]
873    System,
874    #[serde(rename = "custom")]
875    Custom,
876    /// Catch-all for unknown or newly-added values.
877    #[serde(untagged)]
878    Unknown(String),
879}
880
881impl std::fmt::Display for AssignedRoleRoletype {
882    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
883        match self {
884            Self::System => write!(f, "system"),
885            Self::Custom => write!(f, "custom"),
886            Self::Unknown(s) => write!(f, "{s}"),
887        }
888    }
889}
890
891/// Inline enum for `AwsBackupBucket.bucketProvider`.
892#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
893pub enum AwsBackupBucketBucketprovider {
894    #[default]
895    AWS,
896    /// Catch-all for unknown or newly-added values.
897    #[serde(untagged)]
898    Unknown(String),
899}
900
901impl std::fmt::Display for AwsBackupBucketBucketprovider {
902    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
903        match self {
904            Self::AWS => write!(f, "AWS"),
905            Self::Unknown(s) => write!(f, "{s}"),
906        }
907    }
908}
909
910/// Inline enum for `AwsBackupBucketPatchRequestV1.bucketProvider`.
911#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
912pub enum AwsBackupBucketPatchRequestV1Bucketprovider {
913    #[default]
914    AWS,
915    /// Catch-all for unknown or newly-added values.
916    #[serde(untagged)]
917    Unknown(String),
918}
919
920impl std::fmt::Display for AwsBackupBucketPatchRequestV1Bucketprovider {
921    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
922        match self {
923            Self::AWS => write!(f, "AWS"),
924            Self::Unknown(s) => write!(f, "{s}"),
925        }
926    }
927}
928
929/// Inline enum for `AwsBackupBucketPostRequestV1.bucketProvider`.
930#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
931pub enum AwsBackupBucketPostRequestV1Bucketprovider {
932    #[default]
933    AWS,
934    /// Catch-all for unknown or newly-added values.
935    #[serde(untagged)]
936    Unknown(String),
937}
938
939impl std::fmt::Display for AwsBackupBucketPostRequestV1Bucketprovider {
940    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
941        match self {
942            Self::AWS => write!(f, "AWS"),
943            Self::Unknown(s) => write!(f, "{s}"),
944        }
945    }
946}
947
948/// Inline enum for `AwsBackupBucketProperties.bucketProvider`.
949#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
950pub enum AwsBackupBucketPropertiesBucketprovider {
951    #[default]
952    AWS,
953    /// Catch-all for unknown or newly-added values.
954    #[serde(untagged)]
955    Unknown(String),
956}
957
958impl std::fmt::Display for AwsBackupBucketPropertiesBucketprovider {
959    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
960        match self {
961            Self::AWS => write!(f, "AWS"),
962            Self::Unknown(s) => write!(f, "{s}"),
963        }
964    }
965}
966
967/// Inline enum for `AzureBackupBucket.bucketProvider`.
968#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
969pub enum AzureBackupBucketBucketprovider {
970    #[default]
971    AZURE,
972    /// Catch-all for unknown or newly-added values.
973    #[serde(untagged)]
974    Unknown(String),
975}
976
977impl std::fmt::Display for AzureBackupBucketBucketprovider {
978    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
979        match self {
980            Self::AZURE => write!(f, "AZURE"),
981            Self::Unknown(s) => write!(f, "{s}"),
982        }
983    }
984}
985
986/// Inline enum for `AzureBackupBucketPatchRequestV1.bucketProvider`.
987#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
988pub enum AzureBackupBucketPatchRequestV1Bucketprovider {
989    #[default]
990    AZURE,
991    /// Catch-all for unknown or newly-added values.
992    #[serde(untagged)]
993    Unknown(String),
994}
995
996impl std::fmt::Display for AzureBackupBucketPatchRequestV1Bucketprovider {
997    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
998        match self {
999            Self::AZURE => write!(f, "AZURE"),
1000            Self::Unknown(s) => write!(f, "{s}"),
1001        }
1002    }
1003}
1004
1005/// Inline enum for `AzureBackupBucketPostRequestV1.bucketProvider`.
1006#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1007pub enum AzureBackupBucketPostRequestV1Bucketprovider {
1008    #[default]
1009    AZURE,
1010    /// Catch-all for unknown or newly-added values.
1011    #[serde(untagged)]
1012    Unknown(String),
1013}
1014
1015impl std::fmt::Display for AzureBackupBucketPostRequestV1Bucketprovider {
1016    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1017        match self {
1018            Self::AZURE => write!(f, "AZURE"),
1019            Self::Unknown(s) => write!(f, "{s}"),
1020        }
1021    }
1022}
1023
1024/// Inline enum for `AzureBackupBucketProperties.bucketProvider`.
1025#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1026pub enum AzureBackupBucketPropertiesBucketprovider {
1027    #[default]
1028    AZURE,
1029    /// Catch-all for unknown or newly-added values.
1030    #[serde(untagged)]
1031    Unknown(String),
1032}
1033
1034impl std::fmt::Display for AzureBackupBucketPropertiesBucketprovider {
1035    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1036        match self {
1037            Self::AZURE => write!(f, "AZURE"),
1038            Self::Unknown(s) => write!(f, "{s}"),
1039        }
1040    }
1041}
1042
1043/// Inline enum for `Backup.status`.
1044#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1045pub enum BackupStatus {
1046    #[serde(rename = "done")]
1047    #[default]
1048    Done,
1049    #[serde(rename = "error")]
1050    Error,
1051    #[serde(rename = "in_progress")]
1052    In_progress,
1053    /// Catch-all for unknown or newly-added values.
1054    #[serde(untagged)]
1055    Unknown(String),
1056}
1057
1058impl std::fmt::Display for BackupStatus {
1059    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1060        match self {
1061            Self::Done => write!(f, "done"),
1062            Self::Error => write!(f, "error"),
1063            Self::In_progress => write!(f, "in_progress"),
1064            Self::Unknown(s) => write!(f, "{s}"),
1065        }
1066    }
1067}
1068
1069/// Inline enum for `Backup.type`.
1070#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1071pub enum BackupType {
1072    #[serde(rename = "full")]
1073    #[default]
1074    Full,
1075    #[serde(rename = "incremental")]
1076    Incremental,
1077    /// Catch-all for unknown or newly-added values.
1078    #[serde(untagged)]
1079    Unknown(String),
1080}
1081
1082impl std::fmt::Display for BackupType {
1083    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1084        match self {
1085            Self::Full => write!(f, "full"),
1086            Self::Incremental => write!(f, "incremental"),
1087            Self::Unknown(s) => write!(f, "{s}"),
1088        }
1089    }
1090}
1091
1092/// Inline enum for `ByocConfig.cloudProvider`.
1093#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1094pub enum ByocConfigCloudprovider {
1095    #[serde(rename = "gcp")]
1096    #[default]
1097    Gcp,
1098    #[serde(rename = "aws")]
1099    Aws,
1100    #[serde(rename = "azure")]
1101    Azure,
1102    /// Catch-all for unknown or newly-added values.
1103    #[serde(untagged)]
1104    Unknown(String),
1105}
1106
1107impl std::fmt::Display for ByocConfigCloudprovider {
1108    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1109        match self {
1110            Self::Gcp => write!(f, "gcp"),
1111            Self::Aws => write!(f, "aws"),
1112            Self::Azure => write!(f, "azure"),
1113            Self::Unknown(s) => write!(f, "{s}"),
1114        }
1115    }
1116}
1117
1118/// Inline enum for `ByocConfig.regionId`.
1119#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1120pub enum ByocConfigRegionid {
1121    #[serde(rename = "ap-northeast-1")]
1122    #[default]
1123    Ap_northeast_1,
1124    #[serde(rename = "ap-northeast-2")]
1125    Ap_northeast_2,
1126    #[serde(rename = "ap-south-1")]
1127    Ap_south_1,
1128    #[serde(rename = "ap-southeast-1")]
1129    Ap_southeast_1,
1130    #[serde(rename = "ap-southeast-2")]
1131    Ap_southeast_2,
1132    #[serde(rename = "ca-central-1")]
1133    Ca_central_1,
1134    #[serde(rename = "eu-central-1")]
1135    Eu_central_1,
1136    #[serde(rename = "eu-west-1")]
1137    Eu_west_1,
1138    #[serde(rename = "eu-west-2")]
1139    Eu_west_2,
1140    #[serde(rename = "il-central-1")]
1141    Il_central_1,
1142    #[serde(rename = "us-east-1")]
1143    Us_east_1,
1144    #[serde(rename = "us-east-2")]
1145    Us_east_2,
1146    #[serde(rename = "us-west-2")]
1147    Us_west_2,
1148    #[serde(rename = "us-east1")]
1149    Us_east1,
1150    #[serde(rename = "us-central1")]
1151    Us_central1,
1152    #[serde(rename = "europe-west2")]
1153    Europe_west2,
1154    #[serde(rename = "europe-west4")]
1155    Europe_west4,
1156    #[serde(rename = "asia-southeast1")]
1157    Asia_southeast1,
1158    #[serde(rename = "asia-northeast1")]
1159    Asia_northeast1,
1160    #[serde(rename = "eastus")]
1161    Eastus,
1162    #[serde(rename = "eastus2")]
1163    Eastus2,
1164    #[serde(rename = "westus3")]
1165    Westus3,
1166    #[serde(rename = "germanywestcentral")]
1167    Germanywestcentral,
1168    #[serde(rename = "centralus")]
1169    Centralus,
1170    /// Catch-all for unknown or newly-added values.
1171    #[serde(untagged)]
1172    Unknown(String),
1173}
1174
1175impl std::fmt::Display for ByocConfigRegionid {
1176    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1177        match self {
1178            Self::Ap_northeast_1 => write!(f, "ap-northeast-1"),
1179            Self::Ap_northeast_2 => write!(f, "ap-northeast-2"),
1180            Self::Ap_south_1 => write!(f, "ap-south-1"),
1181            Self::Ap_southeast_1 => write!(f, "ap-southeast-1"),
1182            Self::Ap_southeast_2 => write!(f, "ap-southeast-2"),
1183            Self::Ca_central_1 => write!(f, "ca-central-1"),
1184            Self::Eu_central_1 => write!(f, "eu-central-1"),
1185            Self::Eu_west_1 => write!(f, "eu-west-1"),
1186            Self::Eu_west_2 => write!(f, "eu-west-2"),
1187            Self::Il_central_1 => write!(f, "il-central-1"),
1188            Self::Us_east_1 => write!(f, "us-east-1"),
1189            Self::Us_east_2 => write!(f, "us-east-2"),
1190            Self::Us_west_2 => write!(f, "us-west-2"),
1191            Self::Us_east1 => write!(f, "us-east1"),
1192            Self::Us_central1 => write!(f, "us-central1"),
1193            Self::Europe_west2 => write!(f, "europe-west2"),
1194            Self::Europe_west4 => write!(f, "europe-west4"),
1195            Self::Asia_southeast1 => write!(f, "asia-southeast1"),
1196            Self::Asia_northeast1 => write!(f, "asia-northeast1"),
1197            Self::Eastus => write!(f, "eastus"),
1198            Self::Eastus2 => write!(f, "eastus2"),
1199            Self::Westus3 => write!(f, "westus3"),
1200            Self::Germanywestcentral => write!(f, "germanywestcentral"),
1201            Self::Centralus => write!(f, "centralus"),
1202            Self::Unknown(s) => write!(f, "{s}"),
1203        }
1204    }
1205}
1206
1207/// Inline enum for `ByocConfig.state`.
1208#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1209pub enum ByocConfigState {
1210    #[serde(rename = "infra-ready")]
1211    #[default]
1212    Infra_ready,
1213    #[serde(rename = "infra-provisioning")]
1214    Infra_provisioning,
1215    #[serde(rename = "infra-terminated")]
1216    Infra_terminated,
1217    /// Catch-all for unknown or newly-added values.
1218    #[serde(untagged)]
1219    Unknown(String),
1220}
1221
1222impl std::fmt::Display for ByocConfigState {
1223    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1224        match self {
1225            Self::Infra_ready => write!(f, "infra-ready"),
1226            Self::Infra_provisioning => write!(f, "infra-provisioning"),
1227            Self::Infra_terminated => write!(f, "infra-terminated"),
1228            Self::Unknown(s) => write!(f, "{s}"),
1229        }
1230    }
1231}
1232
1233/// Inline enum for `ByocInfrastructurePostRequest.regionId`.
1234#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1235pub enum ByocInfrastructurePostRequestRegionid {
1236    #[serde(rename = "ap-northeast-1")]
1237    #[default]
1238    Ap_northeast_1,
1239    #[serde(rename = "ap-northeast-2")]
1240    Ap_northeast_2,
1241    #[serde(rename = "ap-south-1")]
1242    Ap_south_1,
1243    #[serde(rename = "ap-southeast-1")]
1244    Ap_southeast_1,
1245    #[serde(rename = "ap-southeast-2")]
1246    Ap_southeast_2,
1247    #[serde(rename = "ca-central-1")]
1248    Ca_central_1,
1249    #[serde(rename = "eu-central-1")]
1250    Eu_central_1,
1251    #[serde(rename = "eu-west-1")]
1252    Eu_west_1,
1253    #[serde(rename = "eu-west-2")]
1254    Eu_west_2,
1255    #[serde(rename = "il-central-1")]
1256    Il_central_1,
1257    #[serde(rename = "us-east-1")]
1258    Us_east_1,
1259    #[serde(rename = "us-east-2")]
1260    Us_east_2,
1261    #[serde(rename = "us-west-2")]
1262    Us_west_2,
1263    #[serde(rename = "us-east1")]
1264    Us_east1,
1265    #[serde(rename = "us-central1")]
1266    Us_central1,
1267    #[serde(rename = "europe-west2")]
1268    Europe_west2,
1269    #[serde(rename = "europe-west4")]
1270    Europe_west4,
1271    #[serde(rename = "asia-southeast1")]
1272    Asia_southeast1,
1273    #[serde(rename = "asia-northeast1")]
1274    Asia_northeast1,
1275    #[serde(rename = "eastus")]
1276    Eastus,
1277    #[serde(rename = "eastus2")]
1278    Eastus2,
1279    #[serde(rename = "westus3")]
1280    Westus3,
1281    #[serde(rename = "germanywestcentral")]
1282    Germanywestcentral,
1283    #[serde(rename = "centralus")]
1284    Centralus,
1285    /// Catch-all for unknown or newly-added values.
1286    #[serde(untagged)]
1287    Unknown(String),
1288}
1289
1290impl std::fmt::Display for ByocInfrastructurePostRequestRegionid {
1291    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1292        match self {
1293            Self::Ap_northeast_1 => write!(f, "ap-northeast-1"),
1294            Self::Ap_northeast_2 => write!(f, "ap-northeast-2"),
1295            Self::Ap_south_1 => write!(f, "ap-south-1"),
1296            Self::Ap_southeast_1 => write!(f, "ap-southeast-1"),
1297            Self::Ap_southeast_2 => write!(f, "ap-southeast-2"),
1298            Self::Ca_central_1 => write!(f, "ca-central-1"),
1299            Self::Eu_central_1 => write!(f, "eu-central-1"),
1300            Self::Eu_west_1 => write!(f, "eu-west-1"),
1301            Self::Eu_west_2 => write!(f, "eu-west-2"),
1302            Self::Il_central_1 => write!(f, "il-central-1"),
1303            Self::Us_east_1 => write!(f, "us-east-1"),
1304            Self::Us_east_2 => write!(f, "us-east-2"),
1305            Self::Us_west_2 => write!(f, "us-west-2"),
1306            Self::Us_east1 => write!(f, "us-east1"),
1307            Self::Us_central1 => write!(f, "us-central1"),
1308            Self::Europe_west2 => write!(f, "europe-west2"),
1309            Self::Europe_west4 => write!(f, "europe-west4"),
1310            Self::Asia_southeast1 => write!(f, "asia-southeast1"),
1311            Self::Asia_northeast1 => write!(f, "asia-northeast1"),
1312            Self::Eastus => write!(f, "eastus"),
1313            Self::Eastus2 => write!(f, "eastus2"),
1314            Self::Westus3 => write!(f, "westus3"),
1315            Self::Germanywestcentral => write!(f, "germanywestcentral"),
1316            Self::Centralus => write!(f, "centralus"),
1317            Self::Unknown(s) => write!(f, "{s}"),
1318        }
1319    }
1320}
1321
1322/// Inline enum for `ClickPipe.state`.
1323#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1324pub enum ClickPipeState {
1325    #[default]
1326    Unknown,
1327    Provisioning,
1328    Running,
1329    Stopping,
1330    Stopped,
1331    Failed,
1332    Completed,
1333    InternalError,
1334    Setup,
1335    Snapshot,
1336    Paused,
1337    Pausing,
1338    Modifying,
1339    Resync,
1340    /// Catch-all for unknown or newly-added values.
1341    #[serde(untagged)]
1342    Other(String),
1343}
1344
1345impl std::fmt::Display for ClickPipeState {
1346    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1347        match self {
1348            Self::Unknown => write!(f, "Unknown"),
1349            Self::Provisioning => write!(f, "Provisioning"),
1350            Self::Running => write!(f, "Running"),
1351            Self::Stopping => write!(f, "Stopping"),
1352            Self::Stopped => write!(f, "Stopped"),
1353            Self::Failed => write!(f, "Failed"),
1354            Self::Completed => write!(f, "Completed"),
1355            Self::InternalError => write!(f, "InternalError"),
1356            Self::Setup => write!(f, "Setup"),
1357            Self::Snapshot => write!(f, "Snapshot"),
1358            Self::Paused => write!(f, "Paused"),
1359            Self::Pausing => write!(f, "Pausing"),
1360            Self::Modifying => write!(f, "Modifying"),
1361            Self::Resync => write!(f, "Resync"),
1362            Self::Other(s) => write!(f, "{s}"),
1363        }
1364    }
1365}
1366
1367/// Inline enum for `ClickPipeBigQueryPipeSettings.replicationMode`.
1368#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1369pub enum ClickPipeBigQueryPipeSettingsReplicationmode {
1370    #[serde(rename = "snapshot")]
1371    #[default]
1372    Snapshot,
1373    /// Catch-all for unknown or newly-added values.
1374    #[serde(untagged)]
1375    Unknown(String),
1376}
1377
1378impl std::fmt::Display for ClickPipeBigQueryPipeSettingsReplicationmode {
1379    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1380        match self {
1381            Self::Snapshot => write!(f, "snapshot"),
1382            Self::Unknown(s) => write!(f, "{s}"),
1383        }
1384    }
1385}
1386
1387/// Inline enum for `ClickPipeBigQueryPipeTableMapping.tableEngine`.
1388#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1389pub enum ClickPipeBigQueryPipeTableMappingTableengine {
1390    #[default]
1391    MergeTree,
1392    ReplacingMergeTree,
1393    Null,
1394    /// Catch-all for unknown or newly-added values.
1395    #[serde(untagged)]
1396    Unknown(String),
1397}
1398
1399impl std::fmt::Display for ClickPipeBigQueryPipeTableMappingTableengine {
1400    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1401        match self {
1402            Self::MergeTree => write!(f, "MergeTree"),
1403            Self::ReplacingMergeTree => write!(f, "ReplacingMergeTree"),
1404            Self::Null => write!(f, "Null"),
1405            Self::Unknown(s) => write!(f, "{s}"),
1406        }
1407    }
1408}
1409
1410/// Inline enum for `ClickPipeDestinationTableEngine.type`.
1411#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1412pub enum ClickPipeDestinationTableEngineType {
1413    #[default]
1414    MergeTree,
1415    ReplacingMergeTree,
1416    SummingMergeTree,
1417    Null,
1418    /// Catch-all for unknown or newly-added values.
1419    #[serde(untagged)]
1420    Unknown(String),
1421}
1422
1423impl std::fmt::Display for ClickPipeDestinationTableEngineType {
1424    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1425        match self {
1426            Self::MergeTree => write!(f, "MergeTree"),
1427            Self::ReplacingMergeTree => write!(f, "ReplacingMergeTree"),
1428            Self::SummingMergeTree => write!(f, "SummingMergeTree"),
1429            Self::Null => write!(f, "Null"),
1430            Self::Unknown(s) => write!(f, "{s}"),
1431        }
1432    }
1433}
1434
1435/// Inline enum for `ClickPipeKafkaOffset.strategy`.
1436#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1437pub enum ClickPipeKafkaOffsetStrategy {
1438    #[serde(rename = "from_beginning")]
1439    #[default]
1440    From_beginning,
1441    #[serde(rename = "from_latest")]
1442    From_latest,
1443    #[serde(rename = "from_timestamp")]
1444    From_timestamp,
1445    /// Catch-all for unknown or newly-added values.
1446    #[serde(untagged)]
1447    Unknown(String),
1448}
1449
1450impl std::fmt::Display for ClickPipeKafkaOffsetStrategy {
1451    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1452        match self {
1453            Self::From_beginning => write!(f, "from_beginning"),
1454            Self::From_latest => write!(f, "from_latest"),
1455            Self::From_timestamp => write!(f, "from_timestamp"),
1456            Self::Unknown(s) => write!(f, "{s}"),
1457        }
1458    }
1459}
1460
1461/// Inline enum for `ClickPipeKafkaSchemaRegistry.authentication`.
1462#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1463pub enum ClickPipeKafkaSchemaRegistryAuthentication {
1464    #[default]
1465    PLAIN,
1466    /// Catch-all for unknown or newly-added values.
1467    #[serde(untagged)]
1468    Unknown(String),
1469}
1470
1471impl std::fmt::Display for ClickPipeKafkaSchemaRegistryAuthentication {
1472    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1473        match self {
1474            Self::PLAIN => write!(f, "PLAIN"),
1475            Self::Unknown(s) => write!(f, "{s}"),
1476        }
1477    }
1478}
1479
1480/// Inline enum for `ClickPipeKafkaSource.authentication`.
1481#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1482pub enum ClickPipeKafkaSourceAuthentication {
1483    #[default]
1484    PLAIN,
1485    #[serde(rename = "SCRAM-SHA-256")]
1486    SCRAM_SHA_256,
1487    #[serde(rename = "SCRAM-SHA-512")]
1488    SCRAM_SHA_512,
1489    IAM_ROLE,
1490    IAM_USER,
1491    MUTUAL_TLS,
1492    /// Catch-all for unknown or newly-added values.
1493    #[serde(untagged)]
1494    Unknown(String),
1495}
1496
1497impl std::fmt::Display for ClickPipeKafkaSourceAuthentication {
1498    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1499        match self {
1500            Self::PLAIN => write!(f, "PLAIN"),
1501            Self::SCRAM_SHA_256 => write!(f, "SCRAM-SHA-256"),
1502            Self::SCRAM_SHA_512 => write!(f, "SCRAM-SHA-512"),
1503            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
1504            Self::IAM_USER => write!(f, "IAM_USER"),
1505            Self::MUTUAL_TLS => write!(f, "MUTUAL_TLS"),
1506            Self::Unknown(s) => write!(f, "{s}"),
1507        }
1508    }
1509}
1510
1511/// Inline enum for `ClickPipeKafkaSource.format`.
1512#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1513pub enum ClickPipeKafkaSourceFormat {
1514    #[default]
1515    JSONEachRow,
1516    Avro,
1517    AvroConfluent,
1518    Protobuf,
1519    /// Catch-all for unknown or newly-added values.
1520    #[serde(untagged)]
1521    Unknown(String),
1522}
1523
1524impl std::fmt::Display for ClickPipeKafkaSourceFormat {
1525    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1526        match self {
1527            Self::JSONEachRow => write!(f, "JSONEachRow"),
1528            Self::Avro => write!(f, "Avro"),
1529            Self::AvroConfluent => write!(f, "AvroConfluent"),
1530            Self::Protobuf => write!(f, "Protobuf"),
1531            Self::Unknown(s) => write!(f, "{s}"),
1532        }
1533    }
1534}
1535
1536/// Inline enum for `ClickPipeKafkaSource.type`.
1537#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1538pub enum ClickPipeKafkaSourceType {
1539    #[serde(rename = "kafka")]
1540    #[default]
1541    Kafka,
1542    #[serde(rename = "redpanda")]
1543    Redpanda,
1544    #[serde(rename = "msk")]
1545    Msk,
1546    #[serde(rename = "gcmk")]
1547    Gcmk,
1548    #[serde(rename = "confluent")]
1549    Confluent,
1550    #[serde(rename = "warpstream")]
1551    Warpstream,
1552    #[serde(rename = "azureeventhub")]
1553    Azureeventhub,
1554    #[serde(rename = "dokafka")]
1555    Dokafka,
1556    /// Catch-all for unknown or newly-added values.
1557    #[serde(untagged)]
1558    Unknown(String),
1559}
1560
1561impl std::fmt::Display for ClickPipeKafkaSourceType {
1562    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1563        match self {
1564            Self::Kafka => write!(f, "kafka"),
1565            Self::Redpanda => write!(f, "redpanda"),
1566            Self::Msk => write!(f, "msk"),
1567            Self::Gcmk => write!(f, "gcmk"),
1568            Self::Confluent => write!(f, "confluent"),
1569            Self::Warpstream => write!(f, "warpstream"),
1570            Self::Azureeventhub => write!(f, "azureeventhub"),
1571            Self::Dokafka => write!(f, "dokafka"),
1572            Self::Unknown(s) => write!(f, "{s}"),
1573        }
1574    }
1575}
1576
1577/// Inline enum for `ClickPipeKinesisSource.authentication`.
1578#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1579pub enum ClickPipeKinesisSourceAuthentication {
1580    #[default]
1581    IAM_ROLE,
1582    IAM_USER,
1583    /// Catch-all for unknown or newly-added values.
1584    #[serde(untagged)]
1585    Unknown(String),
1586}
1587
1588impl std::fmt::Display for ClickPipeKinesisSourceAuthentication {
1589    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1590        match self {
1591            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
1592            Self::IAM_USER => write!(f, "IAM_USER"),
1593            Self::Unknown(s) => write!(f, "{s}"),
1594        }
1595    }
1596}
1597
1598/// Inline enum for `ClickPipeKinesisSource.format`.
1599#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1600pub enum ClickPipeKinesisSourceFormat {
1601    #[default]
1602    JSONEachRow,
1603    Avro,
1604    AvroConfluent,
1605    /// Catch-all for unknown or newly-added values.
1606    #[serde(untagged)]
1607    Unknown(String),
1608}
1609
1610impl std::fmt::Display for ClickPipeKinesisSourceFormat {
1611    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1612        match self {
1613            Self::JSONEachRow => write!(f, "JSONEachRow"),
1614            Self::Avro => write!(f, "Avro"),
1615            Self::AvroConfluent => write!(f, "AvroConfluent"),
1616            Self::Unknown(s) => write!(f, "{s}"),
1617        }
1618    }
1619}
1620
1621/// Inline enum for `ClickPipeKinesisSource.iteratorType`.
1622#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1623pub enum ClickPipeKinesisSourceIteratortype {
1624    #[default]
1625    TRIM_HORIZON,
1626    LATEST,
1627    AT_TIMESTAMP,
1628    /// Catch-all for unknown or newly-added values.
1629    #[serde(untagged)]
1630    Unknown(String),
1631}
1632
1633impl std::fmt::Display for ClickPipeKinesisSourceIteratortype {
1634    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1635        match self {
1636            Self::TRIM_HORIZON => write!(f, "TRIM_HORIZON"),
1637            Self::LATEST => write!(f, "LATEST"),
1638            Self::AT_TIMESTAMP => write!(f, "AT_TIMESTAMP"),
1639            Self::Unknown(s) => write!(f, "{s}"),
1640        }
1641    }
1642}
1643
1644/// Inline enum for `ClickPipeMongoDBPipeSettings.replicationMode`.
1645#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1646pub enum ClickPipeMongoDBPipeSettingsReplicationmode {
1647    #[serde(rename = "cdc")]
1648    #[default]
1649    Cdc,
1650    #[serde(rename = "snapshot")]
1651    Snapshot,
1652    #[serde(rename = "cdc_only")]
1653    Cdc_only,
1654    /// Catch-all for unknown or newly-added values.
1655    #[serde(untagged)]
1656    Unknown(String),
1657}
1658
1659impl std::fmt::Display for ClickPipeMongoDBPipeSettingsReplicationmode {
1660    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1661        match self {
1662            Self::Cdc => write!(f, "cdc"),
1663            Self::Snapshot => write!(f, "snapshot"),
1664            Self::Cdc_only => write!(f, "cdc_only"),
1665            Self::Unknown(s) => write!(f, "{s}"),
1666        }
1667    }
1668}
1669
1670/// Inline enum for `ClickPipeMongoDBPipeTableMapping.tableEngine`.
1671#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1672pub enum ClickPipeMongoDBPipeTableMappingTableengine {
1673    #[default]
1674    MergeTree,
1675    ReplacingMergeTree,
1676    Null,
1677    /// Catch-all for unknown or newly-added values.
1678    #[serde(untagged)]
1679    Unknown(String),
1680}
1681
1682impl std::fmt::Display for ClickPipeMongoDBPipeTableMappingTableengine {
1683    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1684        match self {
1685            Self::MergeTree => write!(f, "MergeTree"),
1686            Self::ReplacingMergeTree => write!(f, "ReplacingMergeTree"),
1687            Self::Null => write!(f, "Null"),
1688            Self::Unknown(s) => write!(f, "{s}"),
1689        }
1690    }
1691}
1692
1693/// Inline enum for `ClickPipeMongoDBSource.readPreference`.
1694#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1695pub enum ClickPipeMongoDBSourceReadpreference {
1696    #[serde(rename = "primary")]
1697    #[default]
1698    Primary,
1699    #[serde(rename = "primaryPreferred")]
1700    PrimaryPreferred,
1701    #[serde(rename = "secondary")]
1702    Secondary,
1703    #[serde(rename = "secondaryPreferred")]
1704    SecondaryPreferred,
1705    #[serde(rename = "nearest")]
1706    Nearest,
1707    /// Catch-all for unknown or newly-added values.
1708    #[serde(untagged)]
1709    Unknown(String),
1710}
1711
1712impl std::fmt::Display for ClickPipeMongoDBSourceReadpreference {
1713    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1714        match self {
1715            Self::Primary => write!(f, "primary"),
1716            Self::PrimaryPreferred => write!(f, "primaryPreferred"),
1717            Self::Secondary => write!(f, "secondary"),
1718            Self::SecondaryPreferred => write!(f, "secondaryPreferred"),
1719            Self::Nearest => write!(f, "nearest"),
1720            Self::Unknown(s) => write!(f, "{s}"),
1721        }
1722    }
1723}
1724
1725/// Inline enum for `ClickPipeMutateKafkaSchemaRegistry.authentication`.
1726#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1727pub enum ClickPipeMutateKafkaSchemaRegistryAuthentication {
1728    #[default]
1729    PLAIN,
1730    /// Catch-all for unknown or newly-added values.
1731    #[serde(untagged)]
1732    Unknown(String),
1733}
1734
1735impl std::fmt::Display for ClickPipeMutateKafkaSchemaRegistryAuthentication {
1736    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1737        match self {
1738            Self::PLAIN => write!(f, "PLAIN"),
1739            Self::Unknown(s) => write!(f, "{s}"),
1740        }
1741    }
1742}
1743
1744/// Inline enum for `ClickPipeMutateMongoDBSource.readPreference`.
1745#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1746pub enum ClickPipeMutateMongoDBSourceReadpreference {
1747    #[serde(rename = "primary")]
1748    #[default]
1749    Primary,
1750    #[serde(rename = "primaryPreferred")]
1751    PrimaryPreferred,
1752    #[serde(rename = "secondary")]
1753    Secondary,
1754    #[serde(rename = "secondaryPreferred")]
1755    SecondaryPreferred,
1756    #[serde(rename = "nearest")]
1757    Nearest,
1758    /// Catch-all for unknown or newly-added values.
1759    #[serde(untagged)]
1760    Unknown(String),
1761}
1762
1763impl std::fmt::Display for ClickPipeMutateMongoDBSourceReadpreference {
1764    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1765        match self {
1766            Self::Primary => write!(f, "primary"),
1767            Self::PrimaryPreferred => write!(f, "primaryPreferred"),
1768            Self::Secondary => write!(f, "secondary"),
1769            Self::SecondaryPreferred => write!(f, "secondaryPreferred"),
1770            Self::Nearest => write!(f, "nearest"),
1771            Self::Unknown(s) => write!(f, "{s}"),
1772        }
1773    }
1774}
1775
1776/// Inline enum for `ClickPipeMutateMySQLSource.authentication`.
1777#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1778pub enum ClickPipeMutateMySQLSourceAuthentication {
1779    #[serde(rename = "basic")]
1780    #[default]
1781    Basic,
1782    IAM_ROLE,
1783    /// Catch-all for unknown or newly-added values.
1784    #[serde(untagged)]
1785    Unknown(String),
1786}
1787
1788impl std::fmt::Display for ClickPipeMutateMySQLSourceAuthentication {
1789    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1790        match self {
1791            Self::Basic => write!(f, "basic"),
1792            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
1793            Self::Unknown(s) => write!(f, "{s}"),
1794        }
1795    }
1796}
1797
1798/// Inline enum for `ClickPipeMutateMySQLSource.type`.
1799#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1800pub enum ClickPipeMutateMySQLSourceType {
1801    #[serde(rename = "mysql")]
1802    #[default]
1803    Mysql,
1804    #[serde(rename = "rdsmysql")]
1805    Rdsmysql,
1806    #[serde(rename = "auroramysql")]
1807    Auroramysql,
1808    #[serde(rename = "mariadb")]
1809    Mariadb,
1810    #[serde(rename = "rdsmariadb")]
1811    Rdsmariadb,
1812    /// Catch-all for unknown or newly-added values.
1813    #[serde(untagged)]
1814    Unknown(String),
1815}
1816
1817impl std::fmt::Display for ClickPipeMutateMySQLSourceType {
1818    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1819        match self {
1820            Self::Mysql => write!(f, "mysql"),
1821            Self::Rdsmysql => write!(f, "rdsmysql"),
1822            Self::Auroramysql => write!(f, "auroramysql"),
1823            Self::Mariadb => write!(f, "mariadb"),
1824            Self::Rdsmariadb => write!(f, "rdsmariadb"),
1825            Self::Unknown(s) => write!(f, "{s}"),
1826        }
1827    }
1828}
1829
1830/// Inline enum for `ClickPipeMutatePostgresSource.authentication`.
1831#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1832pub enum ClickPipeMutatePostgresSourceAuthentication {
1833    #[serde(rename = "basic")]
1834    #[default]
1835    Basic,
1836    IAM_ROLE,
1837    /// Catch-all for unknown or newly-added values.
1838    #[serde(untagged)]
1839    Unknown(String),
1840}
1841
1842impl std::fmt::Display for ClickPipeMutatePostgresSourceAuthentication {
1843    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1844        match self {
1845            Self::Basic => write!(f, "basic"),
1846            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
1847            Self::Unknown(s) => write!(f, "{s}"),
1848        }
1849    }
1850}
1851
1852/// Inline enum for `ClickPipeMutatePostgresSource.type`.
1853#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1854pub enum ClickPipeMutatePostgresSourceType {
1855    #[serde(rename = "postgres")]
1856    #[default]
1857    Postgres,
1858    #[serde(rename = "supabase")]
1859    Supabase,
1860    #[serde(rename = "neon")]
1861    Neon,
1862    #[serde(rename = "alloydb")]
1863    Alloydb,
1864    #[serde(rename = "planetscale")]
1865    Planetscale,
1866    #[serde(rename = "rdspostgres")]
1867    Rdspostgres,
1868    #[serde(rename = "aurorapostgres")]
1869    Aurorapostgres,
1870    #[serde(rename = "cloudsqlpostgres")]
1871    Cloudsqlpostgres,
1872    #[serde(rename = "azurepostgres")]
1873    Azurepostgres,
1874    #[serde(rename = "crunchybridge")]
1875    Crunchybridge,
1876    #[serde(rename = "tigerdata")]
1877    Tigerdata,
1878    /// Catch-all for unknown or newly-added values.
1879    #[serde(untagged)]
1880    Unknown(String),
1881}
1882
1883impl std::fmt::Display for ClickPipeMutatePostgresSourceType {
1884    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1885        match self {
1886            Self::Postgres => write!(f, "postgres"),
1887            Self::Supabase => write!(f, "supabase"),
1888            Self::Neon => write!(f, "neon"),
1889            Self::Alloydb => write!(f, "alloydb"),
1890            Self::Planetscale => write!(f, "planetscale"),
1891            Self::Rdspostgres => write!(f, "rdspostgres"),
1892            Self::Aurorapostgres => write!(f, "aurorapostgres"),
1893            Self::Cloudsqlpostgres => write!(f, "cloudsqlpostgres"),
1894            Self::Azurepostgres => write!(f, "azurepostgres"),
1895            Self::Crunchybridge => write!(f, "crunchybridge"),
1896            Self::Tigerdata => write!(f, "tigerdata"),
1897            Self::Unknown(s) => write!(f, "{s}"),
1898        }
1899    }
1900}
1901
1902/// Inline enum for `ClickPipeMySQLPipeSettings.replicationMechanism`.
1903#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1904pub enum ClickPipeMySQLPipeSettingsReplicationmechanism {
1905    #[default]
1906    GTID,
1907    FILE_POS,
1908    /// Catch-all for unknown or newly-added values.
1909    #[serde(untagged)]
1910    Unknown(String),
1911}
1912
1913impl std::fmt::Display for ClickPipeMySQLPipeSettingsReplicationmechanism {
1914    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1915        match self {
1916            Self::GTID => write!(f, "GTID"),
1917            Self::FILE_POS => write!(f, "FILE_POS"),
1918            Self::Unknown(s) => write!(f, "{s}"),
1919        }
1920    }
1921}
1922
1923/// Inline enum for `ClickPipeMySQLPipeSettings.replicationMode`.
1924#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1925pub enum ClickPipeMySQLPipeSettingsReplicationmode {
1926    #[serde(rename = "cdc")]
1927    #[default]
1928    Cdc,
1929    #[serde(rename = "snapshot")]
1930    Snapshot,
1931    #[serde(rename = "cdc_only")]
1932    Cdc_only,
1933    /// Catch-all for unknown or newly-added values.
1934    #[serde(untagged)]
1935    Unknown(String),
1936}
1937
1938impl std::fmt::Display for ClickPipeMySQLPipeSettingsReplicationmode {
1939    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1940        match self {
1941            Self::Cdc => write!(f, "cdc"),
1942            Self::Snapshot => write!(f, "snapshot"),
1943            Self::Cdc_only => write!(f, "cdc_only"),
1944            Self::Unknown(s) => write!(f, "{s}"),
1945        }
1946    }
1947}
1948
1949/// Inline enum for `ClickPipeMySQLPipeTableMapping.tableEngine`.
1950#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1951pub enum ClickPipeMySQLPipeTableMappingTableengine {
1952    #[default]
1953    MergeTree,
1954    ReplacingMergeTree,
1955    Null,
1956    /// Catch-all for unknown or newly-added values.
1957    #[serde(untagged)]
1958    Unknown(String),
1959}
1960
1961impl std::fmt::Display for ClickPipeMySQLPipeTableMappingTableengine {
1962    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1963        match self {
1964            Self::MergeTree => write!(f, "MergeTree"),
1965            Self::ReplacingMergeTree => write!(f, "ReplacingMergeTree"),
1966            Self::Null => write!(f, "Null"),
1967            Self::Unknown(s) => write!(f, "{s}"),
1968        }
1969    }
1970}
1971
1972/// Inline enum for `ClickPipeMySQLSource.authentication`.
1973#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1974pub enum ClickPipeMySQLSourceAuthentication {
1975    #[serde(rename = "basic")]
1976    #[default]
1977    Basic,
1978    IAM_ROLE,
1979    /// Catch-all for unknown or newly-added values.
1980    #[serde(untagged)]
1981    Unknown(String),
1982}
1983
1984impl std::fmt::Display for ClickPipeMySQLSourceAuthentication {
1985    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1986        match self {
1987            Self::Basic => write!(f, "basic"),
1988            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
1989            Self::Unknown(s) => write!(f, "{s}"),
1990        }
1991    }
1992}
1993
1994/// Inline enum for `ClickPipeMySQLSource.type`.
1995#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
1996pub enum ClickPipeMySQLSourceType {
1997    #[serde(rename = "mysql")]
1998    #[default]
1999    Mysql,
2000    #[serde(rename = "rdsmysql")]
2001    Rdsmysql,
2002    #[serde(rename = "auroramysql")]
2003    Auroramysql,
2004    #[serde(rename = "mariadb")]
2005    Mariadb,
2006    #[serde(rename = "rdsmariadb")]
2007    Rdsmariadb,
2008    /// Catch-all for unknown or newly-added values.
2009    #[serde(untagged)]
2010    Unknown(String),
2011}
2012
2013impl std::fmt::Display for ClickPipeMySQLSourceType {
2014    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2015        match self {
2016            Self::Mysql => write!(f, "mysql"),
2017            Self::Rdsmysql => write!(f, "rdsmysql"),
2018            Self::Auroramysql => write!(f, "auroramysql"),
2019            Self::Mariadb => write!(f, "mariadb"),
2020            Self::Rdsmariadb => write!(f, "rdsmariadb"),
2021            Self::Unknown(s) => write!(f, "{s}"),
2022        }
2023    }
2024}
2025
2026/// Inline enum for `ClickPipeObjectStorageSource.authentication`.
2027#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2028pub enum ClickPipeObjectStorageSourceAuthentication {
2029    #[default]
2030    IAM_ROLE,
2031    IAM_USER,
2032    CONNECTION_STRING,
2033    SERVICE_ACCOUNT,
2034    /// Catch-all for unknown or newly-added values.
2035    #[serde(untagged)]
2036    Unknown(String),
2037}
2038
2039impl std::fmt::Display for ClickPipeObjectStorageSourceAuthentication {
2040    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2041        match self {
2042            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
2043            Self::IAM_USER => write!(f, "IAM_USER"),
2044            Self::CONNECTION_STRING => write!(f, "CONNECTION_STRING"),
2045            Self::SERVICE_ACCOUNT => write!(f, "SERVICE_ACCOUNT"),
2046            Self::Unknown(s) => write!(f, "{s}"),
2047        }
2048    }
2049}
2050
2051/// Inline enum for `ClickPipeObjectStorageSource.compression`.
2052#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2053pub enum ClickPipeObjectStorageSourceCompression {
2054    #[serde(rename = "none")]
2055    #[default]
2056    None,
2057    #[serde(rename = "gzip")]
2058    Gzip,
2059    #[serde(rename = "gz")]
2060    Gz,
2061    #[serde(rename = "brotli")]
2062    Brotli,
2063    #[serde(rename = "br")]
2064    Br,
2065    #[serde(rename = "xz")]
2066    Xz,
2067    LZMA,
2068    #[serde(rename = "zstd")]
2069    Zstd,
2070    #[serde(rename = "auto")]
2071    Auto,
2072    /// Catch-all for unknown or newly-added values.
2073    #[serde(untagged)]
2074    Unknown(String),
2075}
2076
2077impl std::fmt::Display for ClickPipeObjectStorageSourceCompression {
2078    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2079        match self {
2080            Self::None => write!(f, "none"),
2081            Self::Gzip => write!(f, "gzip"),
2082            Self::Gz => write!(f, "gz"),
2083            Self::Brotli => write!(f, "brotli"),
2084            Self::Br => write!(f, "br"),
2085            Self::Xz => write!(f, "xz"),
2086            Self::LZMA => write!(f, "LZMA"),
2087            Self::Zstd => write!(f, "zstd"),
2088            Self::Auto => write!(f, "auto"),
2089            Self::Unknown(s) => write!(f, "{s}"),
2090        }
2091    }
2092}
2093
2094/// Inline enum for `ClickPipeObjectStorageSource.format`.
2095#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2096pub enum ClickPipeObjectStorageSourceFormat {
2097    #[default]
2098    JSONEachRow,
2099    JSONAsObject,
2100    CSV,
2101    CSVWithNames,
2102    TabSeparated,
2103    TabSeparatedWithNames,
2104    Parquet,
2105    Avro,
2106    /// Catch-all for unknown or newly-added values.
2107    #[serde(untagged)]
2108    Unknown(String),
2109}
2110
2111impl std::fmt::Display for ClickPipeObjectStorageSourceFormat {
2112    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2113        match self {
2114            Self::JSONEachRow => write!(f, "JSONEachRow"),
2115            Self::JSONAsObject => write!(f, "JSONAsObject"),
2116            Self::CSV => write!(f, "CSV"),
2117            Self::CSVWithNames => write!(f, "CSVWithNames"),
2118            Self::TabSeparated => write!(f, "TabSeparated"),
2119            Self::TabSeparatedWithNames => write!(f, "TabSeparatedWithNames"),
2120            Self::Parquet => write!(f, "Parquet"),
2121            Self::Avro => write!(f, "Avro"),
2122            Self::Unknown(s) => write!(f, "{s}"),
2123        }
2124    }
2125}
2126
2127/// Inline enum for `ClickPipeObjectStorageSource.type`.
2128#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2129pub enum ClickPipeObjectStorageSourceType {
2130    #[serde(rename = "s3")]
2131    #[default]
2132    S3,
2133    #[serde(rename = "gcs")]
2134    Gcs,
2135    #[serde(rename = "dospaces")]
2136    Dospaces,
2137    #[serde(rename = "azureblobstorage")]
2138    Azureblobstorage,
2139    #[serde(rename = "cloudflarer2")]
2140    Cloudflarer2,
2141    #[serde(rename = "ovhobjectstorage")]
2142    Ovhobjectstorage,
2143    /// Catch-all for unknown or newly-added values.
2144    #[serde(untagged)]
2145    Unknown(String),
2146}
2147
2148impl std::fmt::Display for ClickPipeObjectStorageSourceType {
2149    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2150        match self {
2151            Self::S3 => write!(f, "s3"),
2152            Self::Gcs => write!(f, "gcs"),
2153            Self::Dospaces => write!(f, "dospaces"),
2154            Self::Azureblobstorage => write!(f, "azureblobstorage"),
2155            Self::Cloudflarer2 => write!(f, "cloudflarer2"),
2156            Self::Ovhobjectstorage => write!(f, "ovhobjectstorage"),
2157            Self::Unknown(s) => write!(f, "{s}"),
2158        }
2159    }
2160}
2161
2162/// Inline enum for `ClickPipePatchKafkaSource.authentication`.
2163#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2164pub enum ClickPipePatchKafkaSourceAuthentication {
2165    #[default]
2166    PLAIN,
2167    #[serde(rename = "SCRAM-SHA-256")]
2168    SCRAM_SHA_256,
2169    #[serde(rename = "SCRAM-SHA-512")]
2170    SCRAM_SHA_512,
2171    IAM_ROLE,
2172    IAM_USER,
2173    MUTUAL_TLS,
2174    /// Catch-all for unknown or newly-added values.
2175    #[serde(untagged)]
2176    Unknown(String),
2177}
2178
2179impl std::fmt::Display for ClickPipePatchKafkaSourceAuthentication {
2180    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2181        match self {
2182            Self::PLAIN => write!(f, "PLAIN"),
2183            Self::SCRAM_SHA_256 => write!(f, "SCRAM-SHA-256"),
2184            Self::SCRAM_SHA_512 => write!(f, "SCRAM-SHA-512"),
2185            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
2186            Self::IAM_USER => write!(f, "IAM_USER"),
2187            Self::MUTUAL_TLS => write!(f, "MUTUAL_TLS"),
2188            Self::Unknown(s) => write!(f, "{s}"),
2189        }
2190    }
2191}
2192
2193/// Inline enum for `ClickPipePatchKinesisSource.authentication`.
2194#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2195pub enum ClickPipePatchKinesisSourceAuthentication {
2196    #[default]
2197    IAM_ROLE,
2198    IAM_USER,
2199    /// Catch-all for unknown or newly-added values.
2200    #[serde(untagged)]
2201    Unknown(String),
2202}
2203
2204impl std::fmt::Display for ClickPipePatchKinesisSourceAuthentication {
2205    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2206        match self {
2207            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
2208            Self::IAM_USER => write!(f, "IAM_USER"),
2209            Self::Unknown(s) => write!(f, "{s}"),
2210        }
2211    }
2212}
2213
2214/// Inline enum for `ClickPipePatchMongoDBPipeRemoveTableMapping.tableEngine`.
2215#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2216pub enum ClickPipePatchMongoDBPipeRemoveTableMappingTableengine {
2217    #[default]
2218    MergeTree,
2219    ReplacingMergeTree,
2220    Null,
2221    /// Catch-all for unknown or newly-added values.
2222    #[serde(untagged)]
2223    Unknown(String),
2224}
2225
2226impl std::fmt::Display for ClickPipePatchMongoDBPipeRemoveTableMappingTableengine {
2227    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2228        match self {
2229            Self::MergeTree => write!(f, "MergeTree"),
2230            Self::ReplacingMergeTree => write!(f, "ReplacingMergeTree"),
2231            Self::Null => write!(f, "Null"),
2232            Self::Unknown(s) => write!(f, "{s}"),
2233        }
2234    }
2235}
2236
2237/// Inline enum for `ClickPipePatchMongoDBSource.readPreference`.
2238#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2239pub enum ClickPipePatchMongoDBSourceReadpreference {
2240    #[serde(rename = "primary")]
2241    #[default]
2242    Primary,
2243    #[serde(rename = "primaryPreferred")]
2244    PrimaryPreferred,
2245    #[serde(rename = "secondary")]
2246    Secondary,
2247    #[serde(rename = "secondaryPreferred")]
2248    SecondaryPreferred,
2249    #[serde(rename = "nearest")]
2250    Nearest,
2251    /// Catch-all for unknown or newly-added values.
2252    #[serde(untagged)]
2253    Unknown(String),
2254}
2255
2256impl std::fmt::Display for ClickPipePatchMongoDBSourceReadpreference {
2257    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2258        match self {
2259            Self::Primary => write!(f, "primary"),
2260            Self::PrimaryPreferred => write!(f, "primaryPreferred"),
2261            Self::Secondary => write!(f, "secondary"),
2262            Self::SecondaryPreferred => write!(f, "secondaryPreferred"),
2263            Self::Nearest => write!(f, "nearest"),
2264            Self::Unknown(s) => write!(f, "{s}"),
2265        }
2266    }
2267}
2268
2269/// Inline enum for `ClickPipePatchMySQLPipeRemoveTableMapping.tableEngine`.
2270#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2271pub enum ClickPipePatchMySQLPipeRemoveTableMappingTableengine {
2272    #[default]
2273    MergeTree,
2274    ReplacingMergeTree,
2275    Null,
2276    /// Catch-all for unknown or newly-added values.
2277    #[serde(untagged)]
2278    Unknown(String),
2279}
2280
2281impl std::fmt::Display for ClickPipePatchMySQLPipeRemoveTableMappingTableengine {
2282    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2283        match self {
2284            Self::MergeTree => write!(f, "MergeTree"),
2285            Self::ReplacingMergeTree => write!(f, "ReplacingMergeTree"),
2286            Self::Null => write!(f, "Null"),
2287            Self::Unknown(s) => write!(f, "{s}"),
2288        }
2289    }
2290}
2291
2292/// Inline enum for `ClickPipePatchMySQLSource.authentication`.
2293#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2294pub enum ClickPipePatchMySQLSourceAuthentication {
2295    #[serde(rename = "basic")]
2296    #[default]
2297    Basic,
2298    IAM_ROLE,
2299    /// Catch-all for unknown or newly-added values.
2300    #[serde(untagged)]
2301    Unknown(String),
2302}
2303
2304impl std::fmt::Display for ClickPipePatchMySQLSourceAuthentication {
2305    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2306        match self {
2307            Self::Basic => write!(f, "basic"),
2308            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
2309            Self::Unknown(s) => write!(f, "{s}"),
2310        }
2311    }
2312}
2313
2314/// Inline enum for `ClickPipePatchObjectStorageSource.authentication`.
2315#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2316pub enum ClickPipePatchObjectStorageSourceAuthentication {
2317    #[default]
2318    IAM_ROLE,
2319    IAM_USER,
2320    CONNECTION_STRING,
2321    SERVICE_ACCOUNT,
2322    /// Catch-all for unknown or newly-added values.
2323    #[serde(untagged)]
2324    Unknown(String),
2325}
2326
2327impl std::fmt::Display for ClickPipePatchObjectStorageSourceAuthentication {
2328    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2329        match self {
2330            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
2331            Self::IAM_USER => write!(f, "IAM_USER"),
2332            Self::CONNECTION_STRING => write!(f, "CONNECTION_STRING"),
2333            Self::SERVICE_ACCOUNT => write!(f, "SERVICE_ACCOUNT"),
2334            Self::Unknown(s) => write!(f, "{s}"),
2335        }
2336    }
2337}
2338
2339/// Inline enum for `ClickPipePatchPostgresPipeRemoveTableMapping.tableEngine`.
2340#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2341pub enum ClickPipePatchPostgresPipeRemoveTableMappingTableengine {
2342    #[default]
2343    MergeTree,
2344    ReplacingMergeTree,
2345    Null,
2346    /// Catch-all for unknown or newly-added values.
2347    #[serde(untagged)]
2348    Unknown(String),
2349}
2350
2351impl std::fmt::Display for ClickPipePatchPostgresPipeRemoveTableMappingTableengine {
2352    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2353        match self {
2354            Self::MergeTree => write!(f, "MergeTree"),
2355            Self::ReplacingMergeTree => write!(f, "ReplacingMergeTree"),
2356            Self::Null => write!(f, "Null"),
2357            Self::Unknown(s) => write!(f, "{s}"),
2358        }
2359    }
2360}
2361
2362/// Inline enum for `ClickPipePatchPubSubSource.authentication`.
2363#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2364pub enum ClickPipePatchPubSubSourceAuthentication {
2365    #[serde(rename = "SERVICE_ACCOUNT")]
2366    #[default]
2367    ServiceAccount,
2368    /// Catch-all for unknown or newly-added values.
2369    #[serde(untagged)]
2370    Unknown(String),
2371}
2372
2373impl std::fmt::Display for ClickPipePatchPubSubSourceAuthentication {
2374    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2375        match self {
2376            Self::ServiceAccount => write!(f, "SERVICE_ACCOUNT"),
2377            Self::Unknown(s) => write!(f, "{s}"),
2378        }
2379    }
2380}
2381
2382/// Inline enum for `ClickPipePostKafkaSource.authentication`.
2383#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2384pub enum ClickPipePostKafkaSourceAuthentication {
2385    #[default]
2386    PLAIN,
2387    #[serde(rename = "SCRAM-SHA-256")]
2388    SCRAM_SHA_256,
2389    #[serde(rename = "SCRAM-SHA-512")]
2390    SCRAM_SHA_512,
2391    IAM_ROLE,
2392    IAM_USER,
2393    MUTUAL_TLS,
2394    /// Catch-all for unknown or newly-added values.
2395    #[serde(untagged)]
2396    Unknown(String),
2397}
2398
2399impl std::fmt::Display for ClickPipePostKafkaSourceAuthentication {
2400    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2401        match self {
2402            Self::PLAIN => write!(f, "PLAIN"),
2403            Self::SCRAM_SHA_256 => write!(f, "SCRAM-SHA-256"),
2404            Self::SCRAM_SHA_512 => write!(f, "SCRAM-SHA-512"),
2405            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
2406            Self::IAM_USER => write!(f, "IAM_USER"),
2407            Self::MUTUAL_TLS => write!(f, "MUTUAL_TLS"),
2408            Self::Unknown(s) => write!(f, "{s}"),
2409        }
2410    }
2411}
2412
2413/// Inline enum for `ClickPipePostKafkaSource.format`.
2414#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2415pub enum ClickPipePostKafkaSourceFormat {
2416    #[default]
2417    JSONEachRow,
2418    Avro,
2419    AvroConfluent,
2420    Protobuf,
2421    /// Catch-all for unknown or newly-added values.
2422    #[serde(untagged)]
2423    Unknown(String),
2424}
2425
2426impl std::fmt::Display for ClickPipePostKafkaSourceFormat {
2427    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2428        match self {
2429            Self::JSONEachRow => write!(f, "JSONEachRow"),
2430            Self::Avro => write!(f, "Avro"),
2431            Self::AvroConfluent => write!(f, "AvroConfluent"),
2432            Self::Protobuf => write!(f, "Protobuf"),
2433            Self::Unknown(s) => write!(f, "{s}"),
2434        }
2435    }
2436}
2437
2438/// Inline enum for `ClickPipePostKafkaSource.type`.
2439#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2440pub enum ClickPipePostKafkaSourceType {
2441    #[serde(rename = "kafka")]
2442    #[default]
2443    Kafka,
2444    #[serde(rename = "redpanda")]
2445    Redpanda,
2446    #[serde(rename = "msk")]
2447    Msk,
2448    #[serde(rename = "gcmk")]
2449    Gcmk,
2450    #[serde(rename = "confluent")]
2451    Confluent,
2452    #[serde(rename = "warpstream")]
2453    Warpstream,
2454    #[serde(rename = "azureeventhub")]
2455    Azureeventhub,
2456    #[serde(rename = "dokafka")]
2457    Dokafka,
2458    /// Catch-all for unknown or newly-added values.
2459    #[serde(untagged)]
2460    Unknown(String),
2461}
2462
2463impl std::fmt::Display for ClickPipePostKafkaSourceType {
2464    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2465        match self {
2466            Self::Kafka => write!(f, "kafka"),
2467            Self::Redpanda => write!(f, "redpanda"),
2468            Self::Msk => write!(f, "msk"),
2469            Self::Gcmk => write!(f, "gcmk"),
2470            Self::Confluent => write!(f, "confluent"),
2471            Self::Warpstream => write!(f, "warpstream"),
2472            Self::Azureeventhub => write!(f, "azureeventhub"),
2473            Self::Dokafka => write!(f, "dokafka"),
2474            Self::Unknown(s) => write!(f, "{s}"),
2475        }
2476    }
2477}
2478
2479/// Inline enum for `ClickPipePostKinesisSource.authentication`.
2480#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2481pub enum ClickPipePostKinesisSourceAuthentication {
2482    #[default]
2483    IAM_ROLE,
2484    IAM_USER,
2485    /// Catch-all for unknown or newly-added values.
2486    #[serde(untagged)]
2487    Unknown(String),
2488}
2489
2490impl std::fmt::Display for ClickPipePostKinesisSourceAuthentication {
2491    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2492        match self {
2493            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
2494            Self::IAM_USER => write!(f, "IAM_USER"),
2495            Self::Unknown(s) => write!(f, "{s}"),
2496        }
2497    }
2498}
2499
2500/// Inline enum for `ClickPipePostKinesisSource.format`.
2501#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2502pub enum ClickPipePostKinesisSourceFormat {
2503    #[default]
2504    JSONEachRow,
2505    Avro,
2506    AvroConfluent,
2507    /// Catch-all for unknown or newly-added values.
2508    #[serde(untagged)]
2509    Unknown(String),
2510}
2511
2512impl std::fmt::Display for ClickPipePostKinesisSourceFormat {
2513    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2514        match self {
2515            Self::JSONEachRow => write!(f, "JSONEachRow"),
2516            Self::Avro => write!(f, "Avro"),
2517            Self::AvroConfluent => write!(f, "AvroConfluent"),
2518            Self::Unknown(s) => write!(f, "{s}"),
2519        }
2520    }
2521}
2522
2523/// Inline enum for `ClickPipePostKinesisSource.iteratorType`.
2524#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2525pub enum ClickPipePostKinesisSourceIteratortype {
2526    #[default]
2527    TRIM_HORIZON,
2528    LATEST,
2529    AT_TIMESTAMP,
2530    /// Catch-all for unknown or newly-added values.
2531    #[serde(untagged)]
2532    Unknown(String),
2533}
2534
2535impl std::fmt::Display for ClickPipePostKinesisSourceIteratortype {
2536    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2537        match self {
2538            Self::TRIM_HORIZON => write!(f, "TRIM_HORIZON"),
2539            Self::LATEST => write!(f, "LATEST"),
2540            Self::AT_TIMESTAMP => write!(f, "AT_TIMESTAMP"),
2541            Self::Unknown(s) => write!(f, "{s}"),
2542        }
2543    }
2544}
2545
2546/// Inline enum for `ClickPipePostObjectStorageSource.authentication`.
2547#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2548pub enum ClickPipePostObjectStorageSourceAuthentication {
2549    #[default]
2550    IAM_ROLE,
2551    IAM_USER,
2552    CONNECTION_STRING,
2553    SERVICE_ACCOUNT,
2554    /// Catch-all for unknown or newly-added values.
2555    #[serde(untagged)]
2556    Unknown(String),
2557}
2558
2559impl std::fmt::Display for ClickPipePostObjectStorageSourceAuthentication {
2560    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2561        match self {
2562            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
2563            Self::IAM_USER => write!(f, "IAM_USER"),
2564            Self::CONNECTION_STRING => write!(f, "CONNECTION_STRING"),
2565            Self::SERVICE_ACCOUNT => write!(f, "SERVICE_ACCOUNT"),
2566            Self::Unknown(s) => write!(f, "{s}"),
2567        }
2568    }
2569}
2570
2571/// Inline enum for `ClickPipePostObjectStorageSource.compression`.
2572#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2573pub enum ClickPipePostObjectStorageSourceCompression {
2574    #[serde(rename = "none")]
2575    #[default]
2576    None,
2577    #[serde(rename = "gzip")]
2578    Gzip,
2579    #[serde(rename = "gz")]
2580    Gz,
2581    #[serde(rename = "brotli")]
2582    Brotli,
2583    #[serde(rename = "br")]
2584    Br,
2585    #[serde(rename = "xz")]
2586    Xz,
2587    LZMA,
2588    #[serde(rename = "zstd")]
2589    Zstd,
2590    #[serde(rename = "auto")]
2591    Auto,
2592    /// Catch-all for unknown or newly-added values.
2593    #[serde(untagged)]
2594    Unknown(String),
2595}
2596
2597impl std::fmt::Display for ClickPipePostObjectStorageSourceCompression {
2598    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2599        match self {
2600            Self::None => write!(f, "none"),
2601            Self::Gzip => write!(f, "gzip"),
2602            Self::Gz => write!(f, "gz"),
2603            Self::Brotli => write!(f, "brotli"),
2604            Self::Br => write!(f, "br"),
2605            Self::Xz => write!(f, "xz"),
2606            Self::LZMA => write!(f, "LZMA"),
2607            Self::Zstd => write!(f, "zstd"),
2608            Self::Auto => write!(f, "auto"),
2609            Self::Unknown(s) => write!(f, "{s}"),
2610        }
2611    }
2612}
2613
2614/// Inline enum for `ClickPipePostObjectStorageSource.format`.
2615#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2616pub enum ClickPipePostObjectStorageSourceFormat {
2617    #[default]
2618    JSONEachRow,
2619    JSONAsObject,
2620    CSV,
2621    CSVWithNames,
2622    TabSeparated,
2623    TabSeparatedWithNames,
2624    Parquet,
2625    Avro,
2626    /// Catch-all for unknown or newly-added values.
2627    #[serde(untagged)]
2628    Unknown(String),
2629}
2630
2631impl std::fmt::Display for ClickPipePostObjectStorageSourceFormat {
2632    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2633        match self {
2634            Self::JSONEachRow => write!(f, "JSONEachRow"),
2635            Self::JSONAsObject => write!(f, "JSONAsObject"),
2636            Self::CSV => write!(f, "CSV"),
2637            Self::CSVWithNames => write!(f, "CSVWithNames"),
2638            Self::TabSeparated => write!(f, "TabSeparated"),
2639            Self::TabSeparatedWithNames => write!(f, "TabSeparatedWithNames"),
2640            Self::Parquet => write!(f, "Parquet"),
2641            Self::Avro => write!(f, "Avro"),
2642            Self::Unknown(s) => write!(f, "{s}"),
2643        }
2644    }
2645}
2646
2647/// Inline enum for `ClickPipePostObjectStorageSource.type`.
2648#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2649pub enum ClickPipePostObjectStorageSourceType {
2650    #[serde(rename = "s3")]
2651    #[default]
2652    S3,
2653    #[serde(rename = "gcs")]
2654    Gcs,
2655    #[serde(rename = "dospaces")]
2656    Dospaces,
2657    #[serde(rename = "azureblobstorage")]
2658    Azureblobstorage,
2659    #[serde(rename = "cloudflarer2")]
2660    Cloudflarer2,
2661    #[serde(rename = "ovhobjectstorage")]
2662    Ovhobjectstorage,
2663    /// Catch-all for unknown or newly-added values.
2664    #[serde(untagged)]
2665    Unknown(String),
2666}
2667
2668impl std::fmt::Display for ClickPipePostObjectStorageSourceType {
2669    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2670        match self {
2671            Self::S3 => write!(f, "s3"),
2672            Self::Gcs => write!(f, "gcs"),
2673            Self::Dospaces => write!(f, "dospaces"),
2674            Self::Azureblobstorage => write!(f, "azureblobstorage"),
2675            Self::Cloudflarer2 => write!(f, "cloudflarer2"),
2676            Self::Ovhobjectstorage => write!(f, "ovhobjectstorage"),
2677            Self::Unknown(s) => write!(f, "{s}"),
2678        }
2679    }
2680}
2681
2682/// Inline enum for `ClickPipePostPubSubSource.authentication`.
2683#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2684pub enum ClickPipePostPubSubSourceAuthentication {
2685    #[serde(rename = "SERVICE_ACCOUNT")]
2686    #[default]
2687    ServiceAccount,
2688    /// Catch-all for unknown or newly-added values.
2689    #[serde(untagged)]
2690    Unknown(String),
2691}
2692
2693impl std::fmt::Display for ClickPipePostPubSubSourceAuthentication {
2694    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2695        match self {
2696            Self::ServiceAccount => write!(f, "SERVICE_ACCOUNT"),
2697            Self::Unknown(s) => write!(f, "{s}"),
2698        }
2699    }
2700}
2701
2702/// Inline enum for `ClickPipePostPubSubSource.format`.
2703#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2704pub enum ClickPipePostPubSubSourceFormat {
2705    #[default]
2706    JSONEachRow,
2707    Avro,
2708    Protobuf,
2709    /// Catch-all for unknown or newly-added values.
2710    #[serde(untagged)]
2711    Unknown(String),
2712}
2713
2714impl std::fmt::Display for ClickPipePostPubSubSourceFormat {
2715    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2716        match self {
2717            Self::JSONEachRow => write!(f, "JSONEachRow"),
2718            Self::Avro => write!(f, "Avro"),
2719            Self::Protobuf => write!(f, "Protobuf"),
2720            Self::Unknown(s) => write!(f, "{s}"),
2721        }
2722    }
2723}
2724
2725/// Inline enum for `ClickPipePostPubSubSource.seekType`.
2726#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2727pub enum ClickPipePostPubSubSourceSeektype {
2728    #[serde(rename = "latest")]
2729    #[default]
2730    Latest,
2731    #[serde(rename = "earliest")]
2732    Earliest,
2733    #[serde(rename = "timestamp")]
2734    Timestamp,
2735    /// Catch-all for unknown or newly-added values.
2736    #[serde(untagged)]
2737    Unknown(String),
2738}
2739
2740impl std::fmt::Display for ClickPipePostPubSubSourceSeektype {
2741    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2742        match self {
2743            Self::Latest => write!(f, "latest"),
2744            Self::Earliest => write!(f, "earliest"),
2745            Self::Timestamp => write!(f, "timestamp"),
2746            Self::Unknown(s) => write!(f, "{s}"),
2747        }
2748    }
2749}
2750
2751/// Inline enum for `ClickPipePostgresPipeSettings.replicationMode`.
2752#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2753pub enum ClickPipePostgresPipeSettingsReplicationmode {
2754    #[serde(rename = "cdc")]
2755    #[default]
2756    Cdc,
2757    #[serde(rename = "snapshot")]
2758    Snapshot,
2759    #[serde(rename = "cdc_only")]
2760    Cdc_only,
2761    /// Catch-all for unknown or newly-added values.
2762    #[serde(untagged)]
2763    Unknown(String),
2764}
2765
2766impl std::fmt::Display for ClickPipePostgresPipeSettingsReplicationmode {
2767    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2768        match self {
2769            Self::Cdc => write!(f, "cdc"),
2770            Self::Snapshot => write!(f, "snapshot"),
2771            Self::Cdc_only => write!(f, "cdc_only"),
2772            Self::Unknown(s) => write!(f, "{s}"),
2773        }
2774    }
2775}
2776
2777/// Inline enum for `ClickPipePostgresPipeTableMapping.tableEngine`.
2778#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2779pub enum ClickPipePostgresPipeTableMappingTableengine {
2780    #[default]
2781    MergeTree,
2782    ReplacingMergeTree,
2783    Null,
2784    /// Catch-all for unknown or newly-added values.
2785    #[serde(untagged)]
2786    Unknown(String),
2787}
2788
2789impl std::fmt::Display for ClickPipePostgresPipeTableMappingTableengine {
2790    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2791        match self {
2792            Self::MergeTree => write!(f, "MergeTree"),
2793            Self::ReplacingMergeTree => write!(f, "ReplacingMergeTree"),
2794            Self::Null => write!(f, "Null"),
2795            Self::Unknown(s) => write!(f, "{s}"),
2796        }
2797    }
2798}
2799
2800/// Inline enum for `ClickPipePostgresSource.authentication`.
2801#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2802pub enum ClickPipePostgresSourceAuthentication {
2803    #[serde(rename = "basic")]
2804    #[default]
2805    Basic,
2806    IAM_ROLE,
2807    /// Catch-all for unknown or newly-added values.
2808    #[serde(untagged)]
2809    Unknown(String),
2810}
2811
2812impl std::fmt::Display for ClickPipePostgresSourceAuthentication {
2813    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2814        match self {
2815            Self::Basic => write!(f, "basic"),
2816            Self::IAM_ROLE => write!(f, "IAM_ROLE"),
2817            Self::Unknown(s) => write!(f, "{s}"),
2818        }
2819    }
2820}
2821
2822/// Inline enum for `ClickPipePostgresSource.type`.
2823#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2824pub enum ClickPipePostgresSourceType {
2825    #[serde(rename = "postgres")]
2826    #[default]
2827    Postgres,
2828    #[serde(rename = "supabase")]
2829    Supabase,
2830    #[serde(rename = "neon")]
2831    Neon,
2832    #[serde(rename = "alloydb")]
2833    Alloydb,
2834    #[serde(rename = "planetscale")]
2835    Planetscale,
2836    #[serde(rename = "rdspostgres")]
2837    Rdspostgres,
2838    #[serde(rename = "aurorapostgres")]
2839    Aurorapostgres,
2840    #[serde(rename = "cloudsqlpostgres")]
2841    Cloudsqlpostgres,
2842    #[serde(rename = "azurepostgres")]
2843    Azurepostgres,
2844    #[serde(rename = "crunchybridge")]
2845    Crunchybridge,
2846    #[serde(rename = "tigerdata")]
2847    Tigerdata,
2848    /// Catch-all for unknown or newly-added values.
2849    #[serde(untagged)]
2850    Unknown(String),
2851}
2852
2853impl std::fmt::Display for ClickPipePostgresSourceType {
2854    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2855        match self {
2856            Self::Postgres => write!(f, "postgres"),
2857            Self::Supabase => write!(f, "supabase"),
2858            Self::Neon => write!(f, "neon"),
2859            Self::Alloydb => write!(f, "alloydb"),
2860            Self::Planetscale => write!(f, "planetscale"),
2861            Self::Rdspostgres => write!(f, "rdspostgres"),
2862            Self::Aurorapostgres => write!(f, "aurorapostgres"),
2863            Self::Cloudsqlpostgres => write!(f, "cloudsqlpostgres"),
2864            Self::Azurepostgres => write!(f, "azurepostgres"),
2865            Self::Crunchybridge => write!(f, "crunchybridge"),
2866            Self::Tigerdata => write!(f, "tigerdata"),
2867            Self::Unknown(s) => write!(f, "{s}"),
2868        }
2869    }
2870}
2871
2872/// Inline enum for `ClickPipePubSubSource.authentication`.
2873#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2874pub enum ClickPipePubSubSourceAuthentication {
2875    #[serde(rename = "SERVICE_ACCOUNT")]
2876    #[default]
2877    ServiceAccount,
2878    /// Catch-all for unknown or newly-added values.
2879    #[serde(untagged)]
2880    Unknown(String),
2881}
2882
2883impl std::fmt::Display for ClickPipePubSubSourceAuthentication {
2884    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2885        match self {
2886            Self::ServiceAccount => write!(f, "SERVICE_ACCOUNT"),
2887            Self::Unknown(s) => write!(f, "{s}"),
2888        }
2889    }
2890}
2891
2892/// Inline enum for `ClickPipePubSubSource.format`.
2893#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2894pub enum ClickPipePubSubSourceFormat {
2895    #[default]
2896    JSONEachRow,
2897    Avro,
2898    Protobuf,
2899    /// Catch-all for unknown or newly-added values.
2900    #[serde(untagged)]
2901    Unknown(String),
2902}
2903
2904impl std::fmt::Display for ClickPipePubSubSourceFormat {
2905    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2906        match self {
2907            Self::JSONEachRow => write!(f, "JSONEachRow"),
2908            Self::Avro => write!(f, "Avro"),
2909            Self::Protobuf => write!(f, "Protobuf"),
2910            Self::Unknown(s) => write!(f, "{s}"),
2911        }
2912    }
2913}
2914
2915/// Inline enum for `ClickPipePubSubSource.seekType`.
2916#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2917pub enum ClickPipePubSubSourceSeektype {
2918    #[serde(rename = "latest")]
2919    #[default]
2920    Latest,
2921    #[serde(rename = "earliest")]
2922    Earliest,
2923    #[serde(rename = "timestamp")]
2924    Timestamp,
2925    /// Catch-all for unknown or newly-added values.
2926    #[serde(untagged)]
2927    Unknown(String),
2928}
2929
2930impl std::fmt::Display for ClickPipePubSubSourceSeektype {
2931    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2932        match self {
2933            Self::Latest => write!(f, "latest"),
2934            Self::Earliest => write!(f, "earliest"),
2935            Self::Timestamp => write!(f, "timestamp"),
2936            Self::Unknown(s) => write!(f, "{s}"),
2937        }
2938    }
2939}
2940
2941/// Inline enum for `ClickPipeStatePatchRequest.command`.
2942#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2943pub enum ClickPipeStatePatchRequestCommand {
2944    #[serde(rename = "start")]
2945    #[default]
2946    Start,
2947    #[serde(rename = "stop")]
2948    Stop,
2949    #[serde(rename = "resync")]
2950    Resync,
2951    /// Catch-all for unknown or newly-added values.
2952    #[serde(untagged)]
2953    Unknown(String),
2954}
2955
2956impl std::fmt::Display for ClickPipeStatePatchRequestCommand {
2957    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2958        match self {
2959            Self::Start => write!(f, "start"),
2960            Self::Stop => write!(f, "stop"),
2961            Self::Resync => write!(f, "resync"),
2962            Self::Unknown(s) => write!(f, "{s}"),
2963        }
2964    }
2965}
2966
2967/// Inline enum for `ClickStackAlertChannelEmail.type`.
2968///
2969/// The spec gives both alert-channel variants the same `enum: ["webhook",
2970/// "email"]`, so `#[default]` sits on `Email` rather than on the first value:
2971/// this field discriminates the `ClickStackAlertChannel` union, and defaulting
2972/// it to `webhook` would make `ClickStackAlertChannelEmail::default()`
2973/// deserialize back as the webhook variant.
2974#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2975pub enum ClickStackAlertChannelEmailType {
2976    #[serde(rename = "webhook")]
2977    Webhook,
2978    #[serde(rename = "email")]
2979    #[default]
2980    Email,
2981    /// Catch-all for unknown or newly-added values.
2982    #[serde(untagged)]
2983    Unknown(String),
2984}
2985
2986impl std::fmt::Display for ClickStackAlertChannelEmailType {
2987    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2988        match self {
2989            Self::Webhook => write!(f, "webhook"),
2990            Self::Email => write!(f, "email"),
2991            Self::Unknown(s) => write!(f, "{s}"),
2992        }
2993    }
2994}
2995
2996/// Inline enum for `ClickStackAlertChannelWebhook.severity`.
2997#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
2998pub enum ClickStackAlertChannelWebhookSeverity {
2999    #[serde(rename = "critical")]
3000    #[default]
3001    Critical,
3002    #[serde(rename = "error")]
3003    Error,
3004    #[serde(rename = "warning")]
3005    Warning,
3006    #[serde(rename = "info")]
3007    Info,
3008    /// Catch-all for unknown or newly-added values.
3009    #[serde(untagged)]
3010    Unknown(String),
3011}
3012
3013impl std::fmt::Display for ClickStackAlertChannelWebhookSeverity {
3014    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3015        match self {
3016            Self::Critical => write!(f, "critical"),
3017            Self::Error => write!(f, "error"),
3018            Self::Warning => write!(f, "warning"),
3019            Self::Info => write!(f, "info"),
3020            Self::Unknown(s) => write!(f, "{s}"),
3021        }
3022    }
3023}
3024
3025/// Inline enum for `ClickStackAlertChannelWebhook.type`.
3026#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3027pub enum ClickStackAlertChannelWebhookType {
3028    #[serde(rename = "webhook")]
3029    #[default]
3030    Webhook,
3031    #[serde(rename = "email")]
3032    Email,
3033    /// Catch-all for unknown or newly-added values.
3034    #[serde(untagged)]
3035    Unknown(String),
3036}
3037
3038impl std::fmt::Display for ClickStackAlertChannelWebhookType {
3039    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3040        match self {
3041            Self::Webhook => write!(f, "webhook"),
3042            Self::Email => write!(f, "email"),
3043            Self::Unknown(s) => write!(f, "{s}"),
3044        }
3045    }
3046}
3047
3048/// Inline enum for `ClickStackAlertExecutionError.type`.
3049#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3050pub enum ClickStackAlertExecutionErrorType {
3051    #[default]
3052    QUERY_ERROR,
3053    WEBHOOK_ERROR,
3054    INVALID_ALERT,
3055    UNKNOWN,
3056    /// Catch-all for unknown or newly-added values.
3057    #[serde(untagged)]
3058    Unknown(String),
3059}
3060
3061impl std::fmt::Display for ClickStackAlertExecutionErrorType {
3062    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3063        match self {
3064            Self::QUERY_ERROR => write!(f, "QUERY_ERROR"),
3065            Self::WEBHOOK_ERROR => write!(f, "WEBHOOK_ERROR"),
3066            Self::INVALID_ALERT => write!(f, "INVALID_ALERT"),
3067            Self::UNKNOWN => write!(f, "UNKNOWN"),
3068            Self::Unknown(s) => write!(f, "{s}"),
3069        }
3070    }
3071}
3072
3073/// Inline enum for `ClickStackAlertResponse.interval`.
3074#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3075pub enum ClickStackAlertResponseInterval {
3076    #[serde(rename = "1m")]
3077    #[default]
3078    _1m,
3079    #[serde(rename = "5m")]
3080    _5m,
3081    #[serde(rename = "15m")]
3082    _15m,
3083    #[serde(rename = "30m")]
3084    _30m,
3085    #[serde(rename = "1h")]
3086    _1h,
3087    #[serde(rename = "6h")]
3088    _6h,
3089    #[serde(rename = "12h")]
3090    _12h,
3091    #[serde(rename = "1d")]
3092    _1d,
3093    /// Catch-all for unknown or newly-added values.
3094    #[serde(untagged)]
3095    Unknown(String),
3096}
3097
3098impl std::fmt::Display for ClickStackAlertResponseInterval {
3099    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3100        match self {
3101            Self::_1m => write!(f, "1m"),
3102            Self::_5m => write!(f, "5m"),
3103            Self::_15m => write!(f, "15m"),
3104            Self::_30m => write!(f, "30m"),
3105            Self::_1h => write!(f, "1h"),
3106            Self::_6h => write!(f, "6h"),
3107            Self::_12h => write!(f, "12h"),
3108            Self::_1d => write!(f, "1d"),
3109            Self::Unknown(s) => write!(f, "{s}"),
3110        }
3111    }
3112}
3113
3114/// Inline enum for `ClickStackAlertResponse.source`.
3115#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3116pub enum ClickStackAlertResponseSource {
3117    #[serde(rename = "saved_search")]
3118    #[default]
3119    Saved_search,
3120    #[serde(rename = "tile")]
3121    Tile,
3122    /// Catch-all for unknown or newly-added values.
3123    #[serde(untagged)]
3124    Unknown(String),
3125}
3126
3127impl std::fmt::Display for ClickStackAlertResponseSource {
3128    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3129        match self {
3130            Self::Saved_search => write!(f, "saved_search"),
3131            Self::Tile => write!(f, "tile"),
3132            Self::Unknown(s) => write!(f, "{s}"),
3133        }
3134    }
3135}
3136
3137/// Inline enum for `ClickStackAlertResponse.state`.
3138#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3139pub enum ClickStackAlertResponseState {
3140    #[default]
3141    ALERT,
3142    OK,
3143    INSUFFICIENT_DATA,
3144    DISABLED,
3145    PENDING,
3146    /// Catch-all for unknown or newly-added values.
3147    #[serde(untagged)]
3148    Unknown(String),
3149}
3150
3151impl std::fmt::Display for ClickStackAlertResponseState {
3152    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3153        match self {
3154            Self::ALERT => write!(f, "ALERT"),
3155            Self::OK => write!(f, "OK"),
3156            Self::INSUFFICIENT_DATA => write!(f, "INSUFFICIENT_DATA"),
3157            Self::DISABLED => write!(f, "DISABLED"),
3158            Self::PENDING => write!(f, "PENDING"),
3159            Self::Unknown(s) => write!(f, "{s}"),
3160        }
3161    }
3162}
3163
3164/// Inline enum for `ClickStackAlertResponse.thresholdType`.
3165#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3166pub enum ClickStackAlertResponseThresholdtype {
3167    #[serde(rename = "above")]
3168    #[default]
3169    Above,
3170    #[serde(rename = "below")]
3171    Below,
3172    #[serde(rename = "above_exclusive")]
3173    Above_exclusive,
3174    #[serde(rename = "below_or_equal")]
3175    Below_or_equal,
3176    #[serde(rename = "equal")]
3177    Equal,
3178    #[serde(rename = "not_equal")]
3179    Not_equal,
3180    #[serde(rename = "between")]
3181    Between,
3182    #[serde(rename = "not_between")]
3183    Not_between,
3184    /// Catch-all for unknown or newly-added values.
3185    #[serde(untagged)]
3186    Unknown(String),
3187}
3188
3189impl std::fmt::Display for ClickStackAlertResponseThresholdtype {
3190    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3191        match self {
3192            Self::Above => write!(f, "above"),
3193            Self::Below => write!(f, "below"),
3194            Self::Above_exclusive => write!(f, "above_exclusive"),
3195            Self::Below_or_equal => write!(f, "below_or_equal"),
3196            Self::Equal => write!(f, "equal"),
3197            Self::Not_equal => write!(f, "not_equal"),
3198            Self::Between => write!(f, "between"),
3199            Self::Not_between => write!(f, "not_between"),
3200            Self::Unknown(s) => write!(f, "{s}"),
3201        }
3202    }
3203}
3204
3205/// Inline enum for `ClickStackBackgroundChart.type`.
3206#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3207pub enum ClickStackBackgroundChartType {
3208    #[serde(rename = "line")]
3209    #[default]
3210    Line,
3211    #[serde(rename = "area")]
3212    Area,
3213    /// Catch-all for unknown or newly-added values.
3214    #[serde(untagged)]
3215    Unknown(String),
3216}
3217
3218impl std::fmt::Display for ClickStackBackgroundChartType {
3219    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3220        match self {
3221            Self::Line => write!(f, "line"),
3222            Self::Area => write!(f, "area"),
3223            Self::Unknown(s) => write!(f, "{s}"),
3224        }
3225    }
3226}
3227
3228/// Inline enum for `ClickStackBarBuilderChartConfig.displayType`.
3229#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3230pub enum ClickStackBarBuilderChartConfigDisplaytype {
3231    #[serde(rename = "stacked_bar")]
3232    #[default]
3233    Stacked_bar,
3234    /// Catch-all for unknown or newly-added values.
3235    #[serde(untagged)]
3236    Unknown(String),
3237}
3238
3239impl std::fmt::Display for ClickStackBarBuilderChartConfigDisplaytype {
3240    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3241        match self {
3242            Self::Stacked_bar => write!(f, "stacked_bar"),
3243            Self::Unknown(s) => write!(f, "{s}"),
3244        }
3245    }
3246}
3247
3248/// Inline enum for `ClickStackBarRawSqlChartConfig.configType`.
3249#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3250pub enum ClickStackBarRawSqlChartConfigConfigtype {
3251    #[serde(rename = "sql")]
3252    #[default]
3253    Sql,
3254    /// Catch-all for unknown or newly-added values.
3255    #[serde(untagged)]
3256    Unknown(String),
3257}
3258
3259impl std::fmt::Display for ClickStackBarRawSqlChartConfigConfigtype {
3260    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3261        match self {
3262            Self::Sql => write!(f, "sql"),
3263            Self::Unknown(s) => write!(f, "{s}"),
3264        }
3265    }
3266}
3267
3268/// Inline enum for `ClickStackBarRawSqlChartConfig.displayType`.
3269#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3270pub enum ClickStackBarRawSqlChartConfigDisplaytype {
3271    #[serde(rename = "stacked_bar")]
3272    #[default]
3273    Stacked_bar,
3274    /// Catch-all for unknown or newly-added values.
3275    #[serde(untagged)]
3276    Unknown(String),
3277}
3278
3279impl std::fmt::Display for ClickStackBarRawSqlChartConfigDisplaytype {
3280    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3281        match self {
3282            Self::Stacked_bar => write!(f, "stacked_bar"),
3283            Self::Unknown(s) => write!(f, "{s}"),
3284        }
3285    }
3286}
3287
3288/// Inline enum for `ClickStackBetweenColorCondition.operator`.
3289#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3290pub enum ClickStackBetweenColorConditionOperator {
3291    #[serde(rename = "between")]
3292    #[default]
3293    Between,
3294    /// Catch-all for unknown or newly-added values.
3295    #[serde(untagged)]
3296    Unknown(String),
3297}
3298
3299impl std::fmt::Display for ClickStackBetweenColorConditionOperator {
3300    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3301        match self {
3302            Self::Between => write!(f, "between"),
3303            Self::Unknown(s) => write!(f, "{s}"),
3304        }
3305    }
3306}
3307
3308/// Inline enum for `ClickStackCategoricalBarBuilderChartConfig.displayType`.
3309#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3310pub enum ClickStackCategoricalBarBuilderChartConfigDisplaytype {
3311    #[serde(rename = "bar")]
3312    #[default]
3313    Bar,
3314    /// Catch-all for unknown or newly-added values.
3315    #[serde(untagged)]
3316    Unknown(String),
3317}
3318
3319impl std::fmt::Display for ClickStackCategoricalBarBuilderChartConfigDisplaytype {
3320    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3321        match self {
3322            Self::Bar => write!(f, "bar"),
3323            Self::Unknown(s) => write!(f, "{s}"),
3324        }
3325    }
3326}
3327
3328/// Inline enum for `ClickStackCategoricalBarRawSqlChartConfig.configType`.
3329#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3330pub enum ClickStackCategoricalBarRawSqlChartConfigConfigtype {
3331    #[serde(rename = "sql")]
3332    #[default]
3333    Sql,
3334    /// Catch-all for unknown or newly-added values.
3335    #[serde(untagged)]
3336    Unknown(String),
3337}
3338
3339impl std::fmt::Display for ClickStackCategoricalBarRawSqlChartConfigConfigtype {
3340    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3341        match self {
3342            Self::Sql => write!(f, "sql"),
3343            Self::Unknown(s) => write!(f, "{s}"),
3344        }
3345    }
3346}
3347
3348/// Inline enum for `ClickStackCategoricalBarRawSqlChartConfig.displayType`.
3349#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3350pub enum ClickStackCategoricalBarRawSqlChartConfigDisplaytype {
3351    #[serde(rename = "bar")]
3352    #[default]
3353    Bar,
3354    /// Catch-all for unknown or newly-added values.
3355    #[serde(untagged)]
3356    Unknown(String),
3357}
3358
3359impl std::fmt::Display for ClickStackCategoricalBarRawSqlChartConfigDisplaytype {
3360    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3361        match self {
3362            Self::Bar => write!(f, "bar"),
3363            Self::Unknown(s) => write!(f, "{s}"),
3364        }
3365    }
3366}
3367
3368/// Palette-token colors shared by ClickStack chart tiles.
3369///
3370/// Used by `ClickStackBackgroundChart`, `ClickStackNumericColorCondition`,
3371/// `ClickStackBetweenColorCondition`, `ClickStackEqualityColorCondition`,
3372/// `ClickStackNumberBuilderChartConfig`, and `ClickStackNumberRawSqlChartConfig`.
3373#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3374pub enum ClickStackChartColor {
3375    #[serde(rename = "chart-blue")]
3376    #[default]
3377    Chart_blue,
3378    #[serde(rename = "chart-orange")]
3379    Chart_orange,
3380    #[serde(rename = "chart-red")]
3381    Chart_red,
3382    #[serde(rename = "chart-cyan")]
3383    Chart_cyan,
3384    #[serde(rename = "chart-green")]
3385    Chart_green,
3386    #[serde(rename = "chart-pink")]
3387    Chart_pink,
3388    #[serde(rename = "chart-purple")]
3389    Chart_purple,
3390    #[serde(rename = "chart-light-blue")]
3391    Chart_light_blue,
3392    #[serde(rename = "chart-brown")]
3393    Chart_brown,
3394    #[serde(rename = "chart-gray")]
3395    Chart_gray,
3396    #[serde(rename = "chart-success")]
3397    Chart_success,
3398    #[serde(rename = "chart-warning")]
3399    Chart_warning,
3400    #[serde(rename = "chart-error")]
3401    Chart_error,
3402    /// Catch-all for unknown or newly-added values.
3403    #[serde(untagged)]
3404    Unknown(String),
3405}
3406
3407impl std::fmt::Display for ClickStackChartColor {
3408    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3409        match self {
3410            Self::Chart_blue => write!(f, "chart-blue"),
3411            Self::Chart_orange => write!(f, "chart-orange"),
3412            Self::Chart_red => write!(f, "chart-red"),
3413            Self::Chart_cyan => write!(f, "chart-cyan"),
3414            Self::Chart_green => write!(f, "chart-green"),
3415            Self::Chart_pink => write!(f, "chart-pink"),
3416            Self::Chart_purple => write!(f, "chart-purple"),
3417            Self::Chart_light_blue => write!(f, "chart-light-blue"),
3418            Self::Chart_brown => write!(f, "chart-brown"),
3419            Self::Chart_gray => write!(f, "chart-gray"),
3420            Self::Chart_success => write!(f, "chart-success"),
3421            Self::Chart_warning => write!(f, "chart-warning"),
3422            Self::Chart_error => write!(f, "chart-error"),
3423            Self::Unknown(s) => write!(f, "{s}"),
3424        }
3425    }
3426}
3427
3428/// Inline enum for `ClickStackCreateAlertRequest.interval`.
3429#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3430pub enum ClickStackCreateAlertRequestInterval {
3431    #[serde(rename = "1m")]
3432    #[default]
3433    _1m,
3434    #[serde(rename = "5m")]
3435    _5m,
3436    #[serde(rename = "15m")]
3437    _15m,
3438    #[serde(rename = "30m")]
3439    _30m,
3440    #[serde(rename = "1h")]
3441    _1h,
3442    #[serde(rename = "6h")]
3443    _6h,
3444    #[serde(rename = "12h")]
3445    _12h,
3446    #[serde(rename = "1d")]
3447    _1d,
3448    /// Catch-all for unknown or newly-added values.
3449    #[serde(untagged)]
3450    Unknown(String),
3451}
3452
3453impl std::fmt::Display for ClickStackCreateAlertRequestInterval {
3454    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3455        match self {
3456            Self::_1m => write!(f, "1m"),
3457            Self::_5m => write!(f, "5m"),
3458            Self::_15m => write!(f, "15m"),
3459            Self::_30m => write!(f, "30m"),
3460            Self::_1h => write!(f, "1h"),
3461            Self::_6h => write!(f, "6h"),
3462            Self::_12h => write!(f, "12h"),
3463            Self::_1d => write!(f, "1d"),
3464            Self::Unknown(s) => write!(f, "{s}"),
3465        }
3466    }
3467}
3468
3469/// Inline enum for `ClickStackCreateAlertRequest.source`.
3470#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3471pub enum ClickStackCreateAlertRequestSource {
3472    #[serde(rename = "saved_search")]
3473    #[default]
3474    Saved_search,
3475    #[serde(rename = "tile")]
3476    Tile,
3477    /// Catch-all for unknown or newly-added values.
3478    #[serde(untagged)]
3479    Unknown(String),
3480}
3481
3482impl std::fmt::Display for ClickStackCreateAlertRequestSource {
3483    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3484        match self {
3485            Self::Saved_search => write!(f, "saved_search"),
3486            Self::Tile => write!(f, "tile"),
3487            Self::Unknown(s) => write!(f, "{s}"),
3488        }
3489    }
3490}
3491
3492/// Inline enum for `ClickStackCreateAlertRequest.thresholdType`.
3493#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3494pub enum ClickStackCreateAlertRequestThresholdtype {
3495    #[serde(rename = "above")]
3496    #[default]
3497    Above,
3498    #[serde(rename = "below")]
3499    Below,
3500    #[serde(rename = "above_exclusive")]
3501    Above_exclusive,
3502    #[serde(rename = "below_or_equal")]
3503    Below_or_equal,
3504    #[serde(rename = "equal")]
3505    Equal,
3506    #[serde(rename = "not_equal")]
3507    Not_equal,
3508    #[serde(rename = "between")]
3509    Between,
3510    #[serde(rename = "not_between")]
3511    Not_between,
3512    /// Catch-all for unknown or newly-added values.
3513    #[serde(untagged)]
3514    Unknown(String),
3515}
3516
3517impl std::fmt::Display for ClickStackCreateAlertRequestThresholdtype {
3518    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3519        match self {
3520            Self::Above => write!(f, "above"),
3521            Self::Below => write!(f, "below"),
3522            Self::Above_exclusive => write!(f, "above_exclusive"),
3523            Self::Below_or_equal => write!(f, "below_or_equal"),
3524            Self::Equal => write!(f, "equal"),
3525            Self::Not_equal => write!(f, "not_equal"),
3526            Self::Between => write!(f, "between"),
3527            Self::Not_between => write!(f, "not_between"),
3528            Self::Unknown(s) => write!(f, "{s}"),
3529        }
3530    }
3531}
3532
3533/// Inline enum for `ClickStackCreateDashboardRequest.savedQueryLanguage`.
3534#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3535pub enum ClickStackCreateDashboardRequestSavedquerylanguage {
3536    #[serde(rename = "sql")]
3537    #[default]
3538    Sql,
3539    #[serde(rename = "lucene")]
3540    Lucene,
3541    /// Catch-all for unknown or newly-added values.
3542    #[serde(untagged)]
3543    Unknown(String),
3544}
3545
3546impl std::fmt::Display for ClickStackCreateDashboardRequestSavedquerylanguage {
3547    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3548        match self {
3549            Self::Sql => write!(f, "sql"),
3550            Self::Lucene => write!(f, "lucene"),
3551            Self::Unknown(s) => write!(f, "{s}"),
3552        }
3553    }
3554}
3555
3556/// Inline enum for `ClickStackDashboardResponse.savedQueryLanguage`.
3557#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3558pub enum ClickStackDashboardResponseSavedquerylanguage {
3559    #[serde(rename = "sql")]
3560    #[default]
3561    Sql,
3562    #[serde(rename = "lucene")]
3563    Lucene,
3564    /// Catch-all for unknown or newly-added values.
3565    #[serde(untagged)]
3566    Unknown(String),
3567}
3568
3569impl std::fmt::Display for ClickStackDashboardResponseSavedquerylanguage {
3570    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3571        match self {
3572            Self::Sql => write!(f, "sql"),
3573            Self::Lucene => write!(f, "lucene"),
3574            Self::Unknown(s) => write!(f, "{s}"),
3575        }
3576    }
3577}
3578
3579/// Inline enum for `ClickStackEqualityColorCondition.operator`.
3580#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3581pub enum ClickStackEqualityColorConditionOperator {
3582    #[serde(rename = "eq")]
3583    #[default]
3584    Eq,
3585    #[serde(rename = "neq")]
3586    Neq,
3587    /// Catch-all for unknown or newly-added values.
3588    #[serde(untagged)]
3589    Unknown(String),
3590}
3591
3592impl std::fmt::Display for ClickStackEqualityColorConditionOperator {
3593    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3594        match self {
3595            Self::Eq => write!(f, "eq"),
3596            Self::Neq => write!(f, "neq"),
3597            Self::Unknown(s) => write!(f, "{s}"),
3598        }
3599    }
3600}
3601
3602/// Inline enum for `ClickStackEventPatternsChartConfig.displayType`.
3603#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3604pub enum ClickStackEventPatternsChartConfigDisplaytype {
3605    #[serde(rename = "event_patterns")]
3606    #[default]
3607    Event_patterns,
3608    /// Catch-all for unknown or newly-added values.
3609    #[serde(untagged)]
3610    Unknown(String),
3611}
3612
3613impl std::fmt::Display for ClickStackEventPatternsChartConfigDisplaytype {
3614    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3615        match self {
3616            Self::Event_patterns => write!(f, "event_patterns"),
3617            Self::Unknown(s) => write!(f, "{s}"),
3618        }
3619    }
3620}
3621
3622/// Inline enum for `ClickStackEventPatternsChartConfig.whereLanguage`.
3623#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3624pub enum ClickStackEventPatternsChartConfigWherelanguage {
3625    #[serde(rename = "sql")]
3626    #[default]
3627    Sql,
3628    #[serde(rename = "lucene")]
3629    Lucene,
3630    /// Catch-all for unknown or newly-added values.
3631    #[serde(untagged)]
3632    Unknown(String),
3633}
3634
3635impl std::fmt::Display for ClickStackEventPatternsChartConfigWherelanguage {
3636    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3637        match self {
3638            Self::Sql => write!(f, "sql"),
3639            Self::Lucene => write!(f, "lucene"),
3640            Self::Unknown(s) => write!(f, "{s}"),
3641        }
3642    }
3643}
3644
3645/// Inline enum for `ClickStackFilter.sourceMetricType`.
3646#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3647pub enum ClickStackFilterSourcemetrictype {
3648    #[serde(rename = "sum")]
3649    #[default]
3650    Sum,
3651    #[serde(rename = "gauge")]
3652    Gauge,
3653    #[serde(rename = "histogram")]
3654    Histogram,
3655    #[serde(rename = "summary")]
3656    Summary,
3657    #[serde(rename = "exponential histogram")]
3658    Exponential_histogram,
3659    /// Catch-all for unknown or newly-added values.
3660    #[serde(untagged)]
3661    Unknown(String),
3662}
3663
3664impl std::fmt::Display for ClickStackFilterSourcemetrictype {
3665    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3666        match self {
3667            Self::Sum => write!(f, "sum"),
3668            Self::Gauge => write!(f, "gauge"),
3669            Self::Histogram => write!(f, "histogram"),
3670            Self::Summary => write!(f, "summary"),
3671            Self::Exponential_histogram => write!(f, "exponential histogram"),
3672            Self::Unknown(s) => write!(f, "{s}"),
3673        }
3674    }
3675}
3676
3677/// Inline enum for `ClickStackFilter.type`.
3678#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3679pub enum ClickStackFilterType {
3680    #[default]
3681    QUERY_EXPRESSION,
3682    /// Catch-all for unknown or newly-added values.
3683    #[serde(untagged)]
3684    Unknown(String),
3685}
3686
3687impl std::fmt::Display for ClickStackFilterType {
3688    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3689        match self {
3690            Self::QUERY_EXPRESSION => write!(f, "QUERY_EXPRESSION"),
3691            Self::Unknown(s) => write!(f, "{s}"),
3692        }
3693    }
3694}
3695
3696/// Inline enum for `ClickStackFilter.whereLanguage`.
3697#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3698pub enum ClickStackFilterWherelanguage {
3699    #[serde(rename = "sql")]
3700    #[default]
3701    Sql,
3702    #[serde(rename = "lucene")]
3703    Lucene,
3704    /// Catch-all for unknown or newly-added values.
3705    #[serde(untagged)]
3706    Unknown(String),
3707}
3708
3709impl std::fmt::Display for ClickStackFilterWherelanguage {
3710    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3711        match self {
3712            Self::Sql => write!(f, "sql"),
3713            Self::Lucene => write!(f, "lucene"),
3714            Self::Unknown(s) => write!(f, "{s}"),
3715        }
3716    }
3717}
3718
3719/// Inline enum for `ClickStackFilterInput.sourceMetricType`.
3720#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3721pub enum ClickStackFilterInputSourcemetrictype {
3722    #[serde(rename = "sum")]
3723    #[default]
3724    Sum,
3725    #[serde(rename = "gauge")]
3726    Gauge,
3727    #[serde(rename = "histogram")]
3728    Histogram,
3729    #[serde(rename = "summary")]
3730    Summary,
3731    #[serde(rename = "exponential histogram")]
3732    Exponential_histogram,
3733    /// Catch-all for unknown or newly-added values.
3734    #[serde(untagged)]
3735    Unknown(String),
3736}
3737
3738impl std::fmt::Display for ClickStackFilterInputSourcemetrictype {
3739    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3740        match self {
3741            Self::Sum => write!(f, "sum"),
3742            Self::Gauge => write!(f, "gauge"),
3743            Self::Histogram => write!(f, "histogram"),
3744            Self::Summary => write!(f, "summary"),
3745            Self::Exponential_histogram => write!(f, "exponential histogram"),
3746            Self::Unknown(s) => write!(f, "{s}"),
3747        }
3748    }
3749}
3750
3751/// Inline enum for `ClickStackFilterInput.type`.
3752#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3753pub enum ClickStackFilterInputType {
3754    #[default]
3755    QUERY_EXPRESSION,
3756    /// Catch-all for unknown or newly-added values.
3757    #[serde(untagged)]
3758    Unknown(String),
3759}
3760
3761impl std::fmt::Display for ClickStackFilterInputType {
3762    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3763        match self {
3764            Self::QUERY_EXPRESSION => write!(f, "QUERY_EXPRESSION"),
3765            Self::Unknown(s) => write!(f, "{s}"),
3766        }
3767    }
3768}
3769
3770/// Inline enum for `ClickStackFilterInput.whereLanguage`.
3771#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3772pub enum ClickStackFilterInputWherelanguage {
3773    #[serde(rename = "sql")]
3774    #[default]
3775    Sql,
3776    #[serde(rename = "lucene")]
3777    Lucene,
3778    /// Catch-all for unknown or newly-added values.
3779    #[serde(untagged)]
3780    Unknown(String),
3781}
3782
3783impl std::fmt::Display for ClickStackFilterInputWherelanguage {
3784    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3785        match self {
3786            Self::Sql => write!(f, "sql"),
3787            Self::Lucene => write!(f, "lucene"),
3788            Self::Unknown(s) => write!(f, "{s}"),
3789        }
3790    }
3791}
3792
3793/// Inline enum for `ClickStackGenericWebhook.service`.
3794#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3795pub enum ClickStackGenericWebhookService {
3796    #[serde(rename = "generic")]
3797    #[default]
3798    Generic,
3799    /// Catch-all for unknown or newly-added values.
3800    #[serde(untagged)]
3801    Unknown(String),
3802}
3803
3804impl std::fmt::Display for ClickStackGenericWebhookService {
3805    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3806        match self {
3807            Self::Generic => write!(f, "generic"),
3808            Self::Unknown(s) => write!(f, "{s}"),
3809        }
3810    }
3811}
3812
3813/// Inline enum for `ClickStackHeatmapChartConfig.displayType`.
3814#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3815pub enum ClickStackHeatmapChartConfigDisplaytype {
3816    #[serde(rename = "heatmap")]
3817    #[default]
3818    Heatmap,
3819    /// Catch-all for unknown or newly-added values.
3820    #[serde(untagged)]
3821    Unknown(String),
3822}
3823
3824impl std::fmt::Display for ClickStackHeatmapChartConfigDisplaytype {
3825    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3826        match self {
3827            Self::Heatmap => write!(f, "heatmap"),
3828            Self::Unknown(s) => write!(f, "{s}"),
3829        }
3830    }
3831}
3832
3833/// Inline enum for `ClickStackHeatmapChartConfig.whereLanguage`.
3834#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3835pub enum ClickStackHeatmapChartConfigWherelanguage {
3836    #[serde(rename = "sql")]
3837    #[default]
3838    Sql,
3839    #[serde(rename = "lucene")]
3840    Lucene,
3841    /// Catch-all for unknown or newly-added values.
3842    #[serde(untagged)]
3843    Unknown(String),
3844}
3845
3846impl std::fmt::Display for ClickStackHeatmapChartConfigWherelanguage {
3847    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3848        match self {
3849            Self::Sql => write!(f, "sql"),
3850            Self::Lucene => write!(f, "lucene"),
3851            Self::Unknown(s) => write!(f, "{s}"),
3852        }
3853    }
3854}
3855
3856/// Inline enum for `ClickStackHeatmapSelectItem.heatmapScaleType`.
3857#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3858pub enum ClickStackHeatmapSelectItemHeatmapscaletype {
3859    #[serde(rename = "log")]
3860    #[default]
3861    Log,
3862    #[serde(rename = "linear")]
3863    Linear,
3864    /// Catch-all for unknown or newly-added values.
3865    #[serde(untagged)]
3866    Unknown(String),
3867}
3868
3869impl std::fmt::Display for ClickStackHeatmapSelectItemHeatmapscaletype {
3870    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3871        match self {
3872            Self::Log => write!(f, "log"),
3873            Self::Linear => write!(f, "linear"),
3874            Self::Unknown(s) => write!(f, "{s}"),
3875        }
3876    }
3877}
3878
3879/// Inline enum for `ClickStackIncidentIOWebhook.service`.
3880#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3881pub enum ClickStackIncidentIOWebhookService {
3882    #[serde(rename = "incidentio")]
3883    #[default]
3884    Incidentio,
3885    /// Catch-all for unknown or newly-added values.
3886    #[serde(untagged)]
3887    Unknown(String),
3888}
3889
3890impl std::fmt::Display for ClickStackIncidentIOWebhookService {
3891    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3892        match self {
3893            Self::Incidentio => write!(f, "incidentio"),
3894            Self::Unknown(s) => write!(f, "{s}"),
3895        }
3896    }
3897}
3898
3899/// Inline enum for `ClickStackLineBuilderChartConfig.displayType`.
3900#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3901pub enum ClickStackLineBuilderChartConfigDisplaytype {
3902    #[serde(rename = "line")]
3903    #[default]
3904    Line,
3905    /// Catch-all for unknown or newly-added values.
3906    #[serde(untagged)]
3907    Unknown(String),
3908}
3909
3910impl std::fmt::Display for ClickStackLineBuilderChartConfigDisplaytype {
3911    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3912        match self {
3913            Self::Line => write!(f, "line"),
3914            Self::Unknown(s) => write!(f, "{s}"),
3915        }
3916    }
3917}
3918
3919/// Inline enum for `ClickStackLineRawSqlChartConfig.configType`.
3920#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3921pub enum ClickStackLineRawSqlChartConfigConfigtype {
3922    #[serde(rename = "sql")]
3923    #[default]
3924    Sql,
3925    /// Catch-all for unknown or newly-added values.
3926    #[serde(untagged)]
3927    Unknown(String),
3928}
3929
3930impl std::fmt::Display for ClickStackLineRawSqlChartConfigConfigtype {
3931    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3932        match self {
3933            Self::Sql => write!(f, "sql"),
3934            Self::Unknown(s) => write!(f, "{s}"),
3935        }
3936    }
3937}
3938
3939/// Inline enum for `ClickStackLineRawSqlChartConfig.displayType`.
3940#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3941pub enum ClickStackLineRawSqlChartConfigDisplaytype {
3942    #[serde(rename = "line")]
3943    #[default]
3944    Line,
3945    /// Catch-all for unknown or newly-added values.
3946    #[serde(untagged)]
3947    Unknown(String),
3948}
3949
3950impl std::fmt::Display for ClickStackLineRawSqlChartConfigDisplaytype {
3951    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3952        match self {
3953            Self::Line => write!(f, "line"),
3954            Self::Unknown(s) => write!(f, "{s}"),
3955        }
3956    }
3957}
3958
3959/// Inline enum for `ClickStackLogSource.kind`.
3960#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3961pub enum ClickStackLogSourceKind {
3962    #[serde(rename = "log")]
3963    #[default]
3964    Log,
3965    /// Catch-all for unknown or newly-added values.
3966    #[serde(untagged)]
3967    Unknown(String),
3968}
3969
3970impl std::fmt::Display for ClickStackLogSourceKind {
3971    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3972        match self {
3973            Self::Log => write!(f, "log"),
3974            Self::Unknown(s) => write!(f, "{s}"),
3975        }
3976    }
3977}
3978
3979/// Inline enum for `ClickStackLogSource.useTextIndexForImplicitColumn`.
3980#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
3981pub enum ClickStackLogSourceUsetextindexforimplicitcolumn {
3982    #[serde(rename = "auto")]
3983    #[default]
3984    Auto,
3985    #[serde(rename = "enabled")]
3986    Enabled,
3987    #[serde(rename = "disabled")]
3988    Disabled,
3989    /// Catch-all for unknown or newly-added values.
3990    #[serde(untagged)]
3991    Unknown(String),
3992}
3993
3994impl std::fmt::Display for ClickStackLogSourceUsetextindexforimplicitcolumn {
3995    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3996        match self {
3997            Self::Auto => write!(f, "auto"),
3998            Self::Enabled => write!(f, "enabled"),
3999            Self::Disabled => write!(f, "disabled"),
4000            Self::Unknown(s) => write!(f, "{s}"),
4001        }
4002    }
4003}
4004
4005/// Inline enum for `ClickStackMarkdownChartConfig.displayType`.
4006#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4007pub enum ClickStackMarkdownChartConfigDisplaytype {
4008    #[serde(rename = "markdown")]
4009    #[default]
4010    Markdown,
4011    /// Catch-all for unknown or newly-added values.
4012    #[serde(untagged)]
4013    Unknown(String),
4014}
4015
4016impl std::fmt::Display for ClickStackMarkdownChartConfigDisplaytype {
4017    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4018        match self {
4019            Self::Markdown => write!(f, "markdown"),
4020            Self::Unknown(s) => write!(f, "{s}"),
4021        }
4022    }
4023}
4024
4025/// Inline enum for `ClickStackMarkdownChartSeries.type`.
4026#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4027pub enum ClickStackMarkdownChartSeriesType {
4028    #[serde(rename = "markdown")]
4029    #[default]
4030    Markdown,
4031    /// Catch-all for unknown or newly-added values.
4032    #[serde(untagged)]
4033    Unknown(String),
4034}
4035
4036impl std::fmt::Display for ClickStackMarkdownChartSeriesType {
4037    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4038        match self {
4039            Self::Markdown => write!(f, "markdown"),
4040            Self::Unknown(s) => write!(f, "{s}"),
4041        }
4042    }
4043}
4044
4045/// Inline enum for `ClickStackMaterializedView.minGranularity`.
4046#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4047pub enum ClickStackMaterializedViewMingranularity {
4048    #[serde(rename = "1s")]
4049    #[default]
4050    _1s,
4051    #[serde(rename = "15s")]
4052    _15s,
4053    #[serde(rename = "30s")]
4054    _30s,
4055    #[serde(rename = "1m")]
4056    _1m,
4057    #[serde(rename = "5m")]
4058    _5m,
4059    #[serde(rename = "15m")]
4060    _15m,
4061    #[serde(rename = "30m")]
4062    _30m,
4063    #[serde(rename = "1h")]
4064    _1h,
4065    #[serde(rename = "2h")]
4066    _2h,
4067    #[serde(rename = "6h")]
4068    _6h,
4069    #[serde(rename = "12h")]
4070    _12h,
4071    #[serde(rename = "1d")]
4072    _1d,
4073    #[serde(rename = "2d")]
4074    _2d,
4075    #[serde(rename = "7d")]
4076    _7d,
4077    #[serde(rename = "30d")]
4078    _30d,
4079    /// Catch-all for unknown or newly-added values.
4080    #[serde(untagged)]
4081    Unknown(String),
4082}
4083
4084impl std::fmt::Display for ClickStackMaterializedViewMingranularity {
4085    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4086        match self {
4087            Self::_1s => write!(f, "1s"),
4088            Self::_15s => write!(f, "15s"),
4089            Self::_30s => write!(f, "30s"),
4090            Self::_1m => write!(f, "1m"),
4091            Self::_5m => write!(f, "5m"),
4092            Self::_15m => write!(f, "15m"),
4093            Self::_30m => write!(f, "30m"),
4094            Self::_1h => write!(f, "1h"),
4095            Self::_2h => write!(f, "2h"),
4096            Self::_6h => write!(f, "6h"),
4097            Self::_12h => write!(f, "12h"),
4098            Self::_1d => write!(f, "1d"),
4099            Self::_2d => write!(f, "2d"),
4100            Self::_7d => write!(f, "7d"),
4101            Self::_30d => write!(f, "30d"),
4102            Self::Unknown(s) => write!(f, "{s}"),
4103        }
4104    }
4105}
4106
4107/// Inline enum for `ClickStackMetricSource.kind`.
4108#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4109pub enum ClickStackMetricSourceKind {
4110    #[serde(rename = "metric")]
4111    #[default]
4112    Metric,
4113    /// Catch-all for unknown or newly-added values.
4114    #[serde(untagged)]
4115    Unknown(String),
4116}
4117
4118impl std::fmt::Display for ClickStackMetricSourceKind {
4119    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4120        match self {
4121            Self::Metric => write!(f, "metric"),
4122            Self::Unknown(s) => write!(f, "{s}"),
4123        }
4124    }
4125}
4126
4127/// Inline enum for `ClickStackNumberBuilderChartConfig.displayType`.
4128#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4129pub enum ClickStackNumberBuilderChartConfigDisplaytype {
4130    #[serde(rename = "number")]
4131    #[default]
4132    Number,
4133    /// Catch-all for unknown or newly-added values.
4134    #[serde(untagged)]
4135    Unknown(String),
4136}
4137
4138impl std::fmt::Display for ClickStackNumberBuilderChartConfigDisplaytype {
4139    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4140        match self {
4141            Self::Number => write!(f, "number"),
4142            Self::Unknown(s) => write!(f, "{s}"),
4143        }
4144    }
4145}
4146
4147/// Inline enum for `ClickStackNumberChartSeries.aggFn`.
4148#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4149pub enum ClickStackNumberChartSeriesAggfn {
4150    #[serde(rename = "avg")]
4151    #[default]
4152    Avg,
4153    #[serde(rename = "count")]
4154    Count,
4155    #[serde(rename = "count_distinct")]
4156    Count_distinct,
4157    #[serde(rename = "last_value")]
4158    Last_value,
4159    #[serde(rename = "max")]
4160    Max,
4161    #[serde(rename = "min")]
4162    Min,
4163    #[serde(rename = "quantile")]
4164    Quantile,
4165    #[serde(rename = "sum")]
4166    Sum,
4167    #[serde(rename = "any")]
4168    Any,
4169    #[serde(rename = "none")]
4170    None,
4171    /// Catch-all for unknown or newly-added values.
4172    #[serde(untagged)]
4173    Unknown(String),
4174}
4175
4176impl std::fmt::Display for ClickStackNumberChartSeriesAggfn {
4177    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4178        match self {
4179            Self::Avg => write!(f, "avg"),
4180            Self::Count => write!(f, "count"),
4181            Self::Count_distinct => write!(f, "count_distinct"),
4182            Self::Last_value => write!(f, "last_value"),
4183            Self::Max => write!(f, "max"),
4184            Self::Min => write!(f, "min"),
4185            Self::Quantile => write!(f, "quantile"),
4186            Self::Sum => write!(f, "sum"),
4187            Self::Any => write!(f, "any"),
4188            Self::None => write!(f, "none"),
4189            Self::Unknown(s) => write!(f, "{s}"),
4190        }
4191    }
4192}
4193
4194/// Inline enum for `ClickStackNumberChartSeries.metricDataType`.
4195#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4196pub enum ClickStackNumberChartSeriesMetricdatatype {
4197    #[serde(rename = "sum")]
4198    #[default]
4199    Sum,
4200    #[serde(rename = "gauge")]
4201    Gauge,
4202    #[serde(rename = "histogram")]
4203    Histogram,
4204    #[serde(rename = "summary")]
4205    Summary,
4206    #[serde(rename = "exponential histogram")]
4207    Exponential_histogram,
4208    /// Catch-all for unknown or newly-added values.
4209    #[serde(untagged)]
4210    Unknown(String),
4211}
4212
4213impl std::fmt::Display for ClickStackNumberChartSeriesMetricdatatype {
4214    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4215        match self {
4216            Self::Sum => write!(f, "sum"),
4217            Self::Gauge => write!(f, "gauge"),
4218            Self::Histogram => write!(f, "histogram"),
4219            Self::Summary => write!(f, "summary"),
4220            Self::Exponential_histogram => write!(f, "exponential histogram"),
4221            Self::Unknown(s) => write!(f, "{s}"),
4222        }
4223    }
4224}
4225
4226/// Inline enum for `ClickStackNumberChartSeries.type`.
4227#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4228pub enum ClickStackNumberChartSeriesType {
4229    #[serde(rename = "number")]
4230    #[default]
4231    Number,
4232    /// Catch-all for unknown or newly-added values.
4233    #[serde(untagged)]
4234    Unknown(String),
4235}
4236
4237impl std::fmt::Display for ClickStackNumberChartSeriesType {
4238    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4239        match self {
4240            Self::Number => write!(f, "number"),
4241            Self::Unknown(s) => write!(f, "{s}"),
4242        }
4243    }
4244}
4245
4246/// Inline enum for `ClickStackNumberChartSeries.whereLanguage`.
4247#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4248pub enum ClickStackNumberChartSeriesWherelanguage {
4249    #[serde(rename = "sql")]
4250    #[default]
4251    Sql,
4252    #[serde(rename = "lucene")]
4253    Lucene,
4254    /// Catch-all for unknown or newly-added values.
4255    #[serde(untagged)]
4256    Unknown(String),
4257}
4258
4259impl std::fmt::Display for ClickStackNumberChartSeriesWherelanguage {
4260    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4261        match self {
4262            Self::Sql => write!(f, "sql"),
4263            Self::Lucene => write!(f, "lucene"),
4264            Self::Unknown(s) => write!(f, "{s}"),
4265        }
4266    }
4267}
4268
4269/// Inline enum for `ClickStackNumberFormat.numericUnit`.
4270#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4271pub enum ClickStackNumberFormatNumericunit {
4272    #[serde(rename = "bytes_iec")]
4273    #[default]
4274    Bytes_iec,
4275    #[serde(rename = "bytes_si")]
4276    Bytes_si,
4277    #[serde(rename = "bits_iec")]
4278    Bits_iec,
4279    #[serde(rename = "bits_si")]
4280    Bits_si,
4281    #[serde(rename = "kibibytes")]
4282    Kibibytes,
4283    #[serde(rename = "kilobytes")]
4284    Kilobytes,
4285    #[serde(rename = "mebibytes")]
4286    Mebibytes,
4287    #[serde(rename = "megabytes")]
4288    Megabytes,
4289    #[serde(rename = "gibibytes")]
4290    Gibibytes,
4291    #[serde(rename = "gigabytes")]
4292    Gigabytes,
4293    #[serde(rename = "tebibytes")]
4294    Tebibytes,
4295    #[serde(rename = "terabytes")]
4296    Terabytes,
4297    #[serde(rename = "pebibytes")]
4298    Pebibytes,
4299    #[serde(rename = "petabytes")]
4300    Petabytes,
4301    #[serde(rename = "packets_sec")]
4302    Packets_sec,
4303    #[serde(rename = "bytes_sec_iec")]
4304    Bytes_sec_iec,
4305    #[serde(rename = "bytes_sec_si")]
4306    Bytes_sec_si,
4307    #[serde(rename = "bits_sec_iec")]
4308    Bits_sec_iec,
4309    #[serde(rename = "bits_sec_si")]
4310    Bits_sec_si,
4311    #[serde(rename = "kibibytes_sec")]
4312    Kibibytes_sec,
4313    #[serde(rename = "kibibits_sec")]
4314    Kibibits_sec,
4315    #[serde(rename = "kilobytes_sec")]
4316    Kilobytes_sec,
4317    #[serde(rename = "kilobits_sec")]
4318    Kilobits_sec,
4319    #[serde(rename = "mebibytes_sec")]
4320    Mebibytes_sec,
4321    #[serde(rename = "mebibits_sec")]
4322    Mebibits_sec,
4323    #[serde(rename = "megabytes_sec")]
4324    Megabytes_sec,
4325    #[serde(rename = "megabits_sec")]
4326    Megabits_sec,
4327    #[serde(rename = "gibibytes_sec")]
4328    Gibibytes_sec,
4329    #[serde(rename = "gibibits_sec")]
4330    Gibibits_sec,
4331    #[serde(rename = "gigabytes_sec")]
4332    Gigabytes_sec,
4333    #[serde(rename = "gigabits_sec")]
4334    Gigabits_sec,
4335    #[serde(rename = "tebibytes_sec")]
4336    Tebibytes_sec,
4337    #[serde(rename = "tebibits_sec")]
4338    Tebibits_sec,
4339    #[serde(rename = "terabytes_sec")]
4340    Terabytes_sec,
4341    #[serde(rename = "terabits_sec")]
4342    Terabits_sec,
4343    #[serde(rename = "pebibytes_sec")]
4344    Pebibytes_sec,
4345    #[serde(rename = "pebibits_sec")]
4346    Pebibits_sec,
4347    #[serde(rename = "petabytes_sec")]
4348    Petabytes_sec,
4349    #[serde(rename = "petabits_sec")]
4350    Petabits_sec,
4351    #[serde(rename = "cps")]
4352    Cps,
4353    #[serde(rename = "ops")]
4354    Ops,
4355    #[serde(rename = "rps")]
4356    Rps,
4357    #[serde(rename = "reads_sec")]
4358    Reads_sec,
4359    #[serde(rename = "wps")]
4360    Wps,
4361    #[serde(rename = "iops")]
4362    Iops,
4363    #[serde(rename = "cpm")]
4364    Cpm,
4365    #[serde(rename = "opm")]
4366    Opm,
4367    #[serde(rename = "rpm_reads")]
4368    Rpm_reads,
4369    #[serde(rename = "wpm")]
4370    Wpm,
4371    /// Catch-all for unknown or newly-added values.
4372    #[serde(untagged)]
4373    Unknown(String),
4374}
4375
4376impl std::fmt::Display for ClickStackNumberFormatNumericunit {
4377    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4378        match self {
4379            Self::Bytes_iec => write!(f, "bytes_iec"),
4380            Self::Bytes_si => write!(f, "bytes_si"),
4381            Self::Bits_iec => write!(f, "bits_iec"),
4382            Self::Bits_si => write!(f, "bits_si"),
4383            Self::Kibibytes => write!(f, "kibibytes"),
4384            Self::Kilobytes => write!(f, "kilobytes"),
4385            Self::Mebibytes => write!(f, "mebibytes"),
4386            Self::Megabytes => write!(f, "megabytes"),
4387            Self::Gibibytes => write!(f, "gibibytes"),
4388            Self::Gigabytes => write!(f, "gigabytes"),
4389            Self::Tebibytes => write!(f, "tebibytes"),
4390            Self::Terabytes => write!(f, "terabytes"),
4391            Self::Pebibytes => write!(f, "pebibytes"),
4392            Self::Petabytes => write!(f, "petabytes"),
4393            Self::Packets_sec => write!(f, "packets_sec"),
4394            Self::Bytes_sec_iec => write!(f, "bytes_sec_iec"),
4395            Self::Bytes_sec_si => write!(f, "bytes_sec_si"),
4396            Self::Bits_sec_iec => write!(f, "bits_sec_iec"),
4397            Self::Bits_sec_si => write!(f, "bits_sec_si"),
4398            Self::Kibibytes_sec => write!(f, "kibibytes_sec"),
4399            Self::Kibibits_sec => write!(f, "kibibits_sec"),
4400            Self::Kilobytes_sec => write!(f, "kilobytes_sec"),
4401            Self::Kilobits_sec => write!(f, "kilobits_sec"),
4402            Self::Mebibytes_sec => write!(f, "mebibytes_sec"),
4403            Self::Mebibits_sec => write!(f, "mebibits_sec"),
4404            Self::Megabytes_sec => write!(f, "megabytes_sec"),
4405            Self::Megabits_sec => write!(f, "megabits_sec"),
4406            Self::Gibibytes_sec => write!(f, "gibibytes_sec"),
4407            Self::Gibibits_sec => write!(f, "gibibits_sec"),
4408            Self::Gigabytes_sec => write!(f, "gigabytes_sec"),
4409            Self::Gigabits_sec => write!(f, "gigabits_sec"),
4410            Self::Tebibytes_sec => write!(f, "tebibytes_sec"),
4411            Self::Tebibits_sec => write!(f, "tebibits_sec"),
4412            Self::Terabytes_sec => write!(f, "terabytes_sec"),
4413            Self::Terabits_sec => write!(f, "terabits_sec"),
4414            Self::Pebibytes_sec => write!(f, "pebibytes_sec"),
4415            Self::Pebibits_sec => write!(f, "pebibits_sec"),
4416            Self::Petabytes_sec => write!(f, "petabytes_sec"),
4417            Self::Petabits_sec => write!(f, "petabits_sec"),
4418            Self::Cps => write!(f, "cps"),
4419            Self::Ops => write!(f, "ops"),
4420            Self::Rps => write!(f, "rps"),
4421            Self::Reads_sec => write!(f, "reads_sec"),
4422            Self::Wps => write!(f, "wps"),
4423            Self::Iops => write!(f, "iops"),
4424            Self::Cpm => write!(f, "cpm"),
4425            Self::Opm => write!(f, "opm"),
4426            Self::Rpm_reads => write!(f, "rpm_reads"),
4427            Self::Wpm => write!(f, "wpm"),
4428            Self::Unknown(s) => write!(f, "{s}"),
4429        }
4430    }
4431}
4432
4433/// Inline enum for `ClickStackNumberFormat.output`.
4434#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4435pub enum ClickStackNumberFormatOutput {
4436    #[serde(rename = "currency")]
4437    #[default]
4438    Currency,
4439    #[serde(rename = "percent")]
4440    Percent,
4441    #[serde(rename = "byte")]
4442    Byte,
4443    #[serde(rename = "time")]
4444    Time,
4445    #[serde(rename = "number")]
4446    Number,
4447    #[serde(rename = "data_rate")]
4448    Data_rate,
4449    #[serde(rename = "throughput")]
4450    Throughput,
4451    #[serde(rename = "duration")]
4452    Duration,
4453    /// Catch-all for unknown or newly-added values.
4454    #[serde(untagged)]
4455    Unknown(String),
4456}
4457
4458impl std::fmt::Display for ClickStackNumberFormatOutput {
4459    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4460        match self {
4461            Self::Currency => write!(f, "currency"),
4462            Self::Percent => write!(f, "percent"),
4463            Self::Byte => write!(f, "byte"),
4464            Self::Time => write!(f, "time"),
4465            Self::Number => write!(f, "number"),
4466            Self::Data_rate => write!(f, "data_rate"),
4467            Self::Throughput => write!(f, "throughput"),
4468            Self::Duration => write!(f, "duration"),
4469            Self::Unknown(s) => write!(f, "{s}"),
4470        }
4471    }
4472}
4473
4474/// Inline enum for `ClickStackNumberRawSqlChartConfig.configType`.
4475#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4476pub enum ClickStackNumberRawSqlChartConfigConfigtype {
4477    #[serde(rename = "sql")]
4478    #[default]
4479    Sql,
4480    /// Catch-all for unknown or newly-added values.
4481    #[serde(untagged)]
4482    Unknown(String),
4483}
4484
4485impl std::fmt::Display for ClickStackNumberRawSqlChartConfigConfigtype {
4486    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4487        match self {
4488            Self::Sql => write!(f, "sql"),
4489            Self::Unknown(s) => write!(f, "{s}"),
4490        }
4491    }
4492}
4493
4494/// Inline enum for `ClickStackNumberRawSqlChartConfig.displayType`.
4495#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4496pub enum ClickStackNumberRawSqlChartConfigDisplaytype {
4497    #[serde(rename = "number")]
4498    #[default]
4499    Number,
4500    /// Catch-all for unknown or newly-added values.
4501    #[serde(untagged)]
4502    Unknown(String),
4503}
4504
4505impl std::fmt::Display for ClickStackNumberRawSqlChartConfigDisplaytype {
4506    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4507        match self {
4508            Self::Number => write!(f, "number"),
4509            Self::Unknown(s) => write!(f, "{s}"),
4510        }
4511    }
4512}
4513
4514/// Inline enum for `ClickStackNumericColorCondition.operator`.
4515#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4516pub enum ClickStackNumericColorConditionOperator {
4517    #[serde(rename = "gt")]
4518    #[default]
4519    Gt,
4520    #[serde(rename = "gte")]
4521    Gte,
4522    #[serde(rename = "lt")]
4523    Lt,
4524    #[serde(rename = "lte")]
4525    Lte,
4526    /// Catch-all for unknown or newly-added values.
4527    #[serde(untagged)]
4528    Unknown(String),
4529}
4530
4531impl std::fmt::Display for ClickStackNumericColorConditionOperator {
4532    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4533        match self {
4534            Self::Gt => write!(f, "gt"),
4535            Self::Gte => write!(f, "gte"),
4536            Self::Lt => write!(f, "lt"),
4537            Self::Lte => write!(f, "lte"),
4538            Self::Unknown(s) => write!(f, "{s}"),
4539        }
4540    }
4541}
4542
4543/// Inline enum for `ClickStackOnClickDashboard.type`.
4544#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4545pub enum ClickStackOnClickDashboardType {
4546    #[serde(rename = "dashboard")]
4547    #[default]
4548    Dashboard,
4549    /// Catch-all for unknown or newly-added values.
4550    #[serde(untagged)]
4551    Unknown(String),
4552}
4553
4554impl std::fmt::Display for ClickStackOnClickDashboardType {
4555    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4556        match self {
4557            Self::Dashboard => write!(f, "dashboard"),
4558            Self::Unknown(s) => write!(f, "{s}"),
4559        }
4560    }
4561}
4562
4563/// Inline enum for `ClickStackOnClickDashboard.whereLanguage`.
4564#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4565pub enum ClickStackOnClickDashboardWherelanguage {
4566    #[serde(rename = "sql")]
4567    #[default]
4568    Sql,
4569    #[serde(rename = "lucene")]
4570    Lucene,
4571    /// Catch-all for unknown or newly-added values.
4572    #[serde(untagged)]
4573    Unknown(String),
4574}
4575
4576impl std::fmt::Display for ClickStackOnClickDashboardWherelanguage {
4577    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4578        match self {
4579            Self::Sql => write!(f, "sql"),
4580            Self::Lucene => write!(f, "lucene"),
4581            Self::Unknown(s) => write!(f, "{s}"),
4582        }
4583    }
4584}
4585
4586/// Inline enum for `ClickStackOnClickExternal.type`.
4587#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4588pub enum ClickStackOnClickExternalType {
4589    #[serde(rename = "external")]
4590    #[default]
4591    External,
4592    /// Catch-all for unknown or newly-added values.
4593    #[serde(untagged)]
4594    Unknown(String),
4595}
4596
4597impl std::fmt::Display for ClickStackOnClickExternalType {
4598    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4599        match self {
4600            Self::External => write!(f, "external"),
4601            Self::Unknown(s) => write!(f, "{s}"),
4602        }
4603    }
4604}
4605
4606/// Inline enum for `ClickStackOnClickFilterTemplate.kind`.
4607#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4608pub enum ClickStackOnClickFilterTemplateKind {
4609    #[serde(rename = "expressionTemplate")]
4610    #[default]
4611    ExpressionTemplate,
4612    /// Catch-all for unknown or newly-added values.
4613    #[serde(untagged)]
4614    Unknown(String),
4615}
4616
4617impl std::fmt::Display for ClickStackOnClickFilterTemplateKind {
4618    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4619        match self {
4620            Self::ExpressionTemplate => write!(f, "expressionTemplate"),
4621            Self::Unknown(s) => write!(f, "{s}"),
4622        }
4623    }
4624}
4625
4626/// Inline enum for `ClickStackOnClickSearch.type`.
4627#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4628pub enum ClickStackOnClickSearchType {
4629    #[serde(rename = "search")]
4630    #[default]
4631    Search,
4632    /// Catch-all for unknown or newly-added values.
4633    #[serde(untagged)]
4634    Unknown(String),
4635}
4636
4637impl std::fmt::Display for ClickStackOnClickSearchType {
4638    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4639        match self {
4640            Self::Search => write!(f, "search"),
4641            Self::Unknown(s) => write!(f, "{s}"),
4642        }
4643    }
4644}
4645
4646/// Inline enum for `ClickStackOnClickSearch.whereLanguage`.
4647#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4648pub enum ClickStackOnClickSearchWherelanguage {
4649    #[serde(rename = "sql")]
4650    #[default]
4651    Sql,
4652    #[serde(rename = "lucene")]
4653    Lucene,
4654    /// Catch-all for unknown or newly-added values.
4655    #[serde(untagged)]
4656    Unknown(String),
4657}
4658
4659impl std::fmt::Display for ClickStackOnClickSearchWherelanguage {
4660    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4661        match self {
4662            Self::Sql => write!(f, "sql"),
4663            Self::Lucene => write!(f, "lucene"),
4664            Self::Unknown(s) => write!(f, "{s}"),
4665        }
4666    }
4667}
4668
4669/// Inline enum for `ClickStackOnClickTargetIdVariant.mode`.
4670#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4671pub enum ClickStackOnClickTargetIdVariantMode {
4672    #[serde(rename = "id")]
4673    #[default]
4674    Id,
4675    /// Catch-all for unknown or newly-added values.
4676    #[serde(untagged)]
4677    Unknown(String),
4678}
4679
4680impl std::fmt::Display for ClickStackOnClickTargetIdVariantMode {
4681    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4682        match self {
4683            Self::Id => write!(f, "id"),
4684            Self::Unknown(s) => write!(f, "{s}"),
4685        }
4686    }
4687}
4688
4689/// Inline enum for `ClickStackOnClickTargetTemplateVariant.mode`.
4690#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4691pub enum ClickStackOnClickTargetTemplateVariantMode {
4692    #[serde(rename = "template")]
4693    #[default]
4694    Template,
4695    /// Catch-all for unknown or newly-added values.
4696    #[serde(untagged)]
4697    Unknown(String),
4698}
4699
4700impl std::fmt::Display for ClickStackOnClickTargetTemplateVariantMode {
4701    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4702        match self {
4703            Self::Template => write!(f, "template"),
4704            Self::Unknown(s) => write!(f, "{s}"),
4705        }
4706    }
4707}
4708
4709/// Inline enum for `ClickStackPagerDutyAPIWebhook.service`.
4710#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4711pub enum ClickStackPagerDutyAPIWebhookService {
4712    #[serde(rename = "pagerduty_api")]
4713    #[default]
4714    Pagerduty_api,
4715    /// Catch-all for unknown or newly-added values.
4716    #[serde(untagged)]
4717    Unknown(String),
4718}
4719
4720impl std::fmt::Display for ClickStackPagerDutyAPIWebhookService {
4721    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4722        match self {
4723            Self::Pagerduty_api => write!(f, "pagerduty_api"),
4724            Self::Unknown(s) => write!(f, "{s}"),
4725        }
4726    }
4727}
4728
4729/// Inline enum for `ClickStackPieBuilderChartConfig.displayType`.
4730#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4731pub enum ClickStackPieBuilderChartConfigDisplaytype {
4732    #[serde(rename = "pie")]
4733    #[default]
4734    Pie,
4735    /// Catch-all for unknown or newly-added values.
4736    #[serde(untagged)]
4737    Unknown(String),
4738}
4739
4740impl std::fmt::Display for ClickStackPieBuilderChartConfigDisplaytype {
4741    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4742        match self {
4743            Self::Pie => write!(f, "pie"),
4744            Self::Unknown(s) => write!(f, "{s}"),
4745        }
4746    }
4747}
4748
4749/// Inline enum for `ClickStackPieRawSqlChartConfig.configType`.
4750#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4751pub enum ClickStackPieRawSqlChartConfigConfigtype {
4752    #[serde(rename = "sql")]
4753    #[default]
4754    Sql,
4755    /// Catch-all for unknown or newly-added values.
4756    #[serde(untagged)]
4757    Unknown(String),
4758}
4759
4760impl std::fmt::Display for ClickStackPieRawSqlChartConfigConfigtype {
4761    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4762        match self {
4763            Self::Sql => write!(f, "sql"),
4764            Self::Unknown(s) => write!(f, "{s}"),
4765        }
4766    }
4767}
4768
4769/// Inline enum for `ClickStackPieRawSqlChartConfig.displayType`.
4770#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4771pub enum ClickStackPieRawSqlChartConfigDisplaytype {
4772    #[serde(rename = "pie")]
4773    #[default]
4774    Pie,
4775    /// Catch-all for unknown or newly-added values.
4776    #[serde(untagged)]
4777    Unknown(String),
4778}
4779
4780impl std::fmt::Display for ClickStackPieRawSqlChartConfigDisplaytype {
4781    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4782        match self {
4783            Self::Pie => write!(f, "pie"),
4784            Self::Unknown(s) => write!(f, "{s}"),
4785        }
4786    }
4787}
4788
4789/// Inline enum for `ClickStackPromqlSource.kind`.
4790#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4791pub enum ClickStackPromqlSourceKind {
4792    #[serde(rename = "promql")]
4793    #[default]
4794    Promql,
4795    /// Catch-all for unknown or newly-added values.
4796    #[serde(untagged)]
4797    Unknown(String),
4798}
4799
4800impl std::fmt::Display for ClickStackPromqlSourceKind {
4801    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4802        match self {
4803            Self::Promql => write!(f, "promql"),
4804            Self::Unknown(s) => write!(f, "{s}"),
4805        }
4806    }
4807}
4808
4809/// Inline enum for `ClickStackSavedFilterValue.type`.
4810#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4811pub enum ClickStackSavedFilterValueType {
4812    #[serde(rename = "sql")]
4813    #[default]
4814    Sql,
4815    /// Catch-all for unknown or newly-added values.
4816    #[serde(untagged)]
4817    Unknown(String),
4818}
4819
4820impl std::fmt::Display for ClickStackSavedFilterValueType {
4821    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4822        match self {
4823            Self::Sql => write!(f, "sql"),
4824            Self::Unknown(s) => write!(f, "{s}"),
4825        }
4826    }
4827}
4828
4829/// Inline enum for `ClickStackSavedSearchFilter.type`.
4830#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4831pub enum ClickStackSavedSearchFilterType {
4832    #[serde(rename = "sql")]
4833    #[default]
4834    Sql,
4835    /// Catch-all for unknown or newly-added values.
4836    #[serde(untagged)]
4837    Unknown(String),
4838}
4839
4840impl std::fmt::Display for ClickStackSavedSearchFilterType {
4841    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4842        match self {
4843            Self::Sql => write!(f, "sql"),
4844            Self::Unknown(s) => write!(f, "{s}"),
4845        }
4846    }
4847}
4848
4849/// Inline enum for `ClickStackSavedSearchInput.whereLanguage`.
4850#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4851pub enum ClickStackSavedSearchInputWherelanguage {
4852    #[serde(rename = "sql")]
4853    #[default]
4854    Sql,
4855    #[serde(rename = "lucene")]
4856    Lucene,
4857    /// Catch-all for unknown or newly-added values.
4858    #[serde(untagged)]
4859    Unknown(String),
4860}
4861
4862impl std::fmt::Display for ClickStackSavedSearchInputWherelanguage {
4863    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4864        match self {
4865            Self::Sql => write!(f, "sql"),
4866            Self::Lucene => write!(f, "lucene"),
4867            Self::Unknown(s) => write!(f, "{s}"),
4868        }
4869    }
4870}
4871
4872/// Inline enum for `ClickStackSavedSearch.whereLanguage`.
4873#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4874pub enum ClickStackSavedSearchWherelanguage {
4875    #[serde(rename = "sql")]
4876    #[default]
4877    Sql,
4878    #[serde(rename = "lucene")]
4879    Lucene,
4880    /// Catch-all for unknown or newly-added values.
4881    #[serde(untagged)]
4882    Unknown(String),
4883}
4884
4885impl std::fmt::Display for ClickStackSavedSearchWherelanguage {
4886    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4887        match self {
4888            Self::Sql => write!(f, "sql"),
4889            Self::Lucene => write!(f, "lucene"),
4890            Self::Unknown(s) => write!(f, "{s}"),
4891        }
4892    }
4893}
4894
4895/// Inline enum for `ClickStackSearchChartConfig.displayType`.
4896#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4897pub enum ClickStackSearchChartConfigDisplaytype {
4898    #[serde(rename = "search")]
4899    #[default]
4900    Search,
4901    /// Catch-all for unknown or newly-added values.
4902    #[serde(untagged)]
4903    Unknown(String),
4904}
4905
4906impl std::fmt::Display for ClickStackSearchChartConfigDisplaytype {
4907    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4908        match self {
4909            Self::Search => write!(f, "search"),
4910            Self::Unknown(s) => write!(f, "{s}"),
4911        }
4912    }
4913}
4914
4915/// Inline enum for `ClickStackSearchChartConfig.whereLanguage`.
4916#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4917pub enum ClickStackSearchChartConfigWherelanguage {
4918    #[serde(rename = "sql")]
4919    #[default]
4920    Sql,
4921    #[serde(rename = "lucene")]
4922    Lucene,
4923    /// Catch-all for unknown or newly-added values.
4924    #[serde(untagged)]
4925    Unknown(String),
4926}
4927
4928impl std::fmt::Display for ClickStackSearchChartConfigWherelanguage {
4929    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4930        match self {
4931            Self::Sql => write!(f, "sql"),
4932            Self::Lucene => write!(f, "lucene"),
4933            Self::Unknown(s) => write!(f, "{s}"),
4934        }
4935    }
4936}
4937
4938/// Inline enum for `ClickStackSearchChartSeries.type`.
4939#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4940pub enum ClickStackSearchChartSeriesType {
4941    #[serde(rename = "search")]
4942    #[default]
4943    Search,
4944    /// Catch-all for unknown or newly-added values.
4945    #[serde(untagged)]
4946    Unknown(String),
4947}
4948
4949impl std::fmt::Display for ClickStackSearchChartSeriesType {
4950    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4951        match self {
4952            Self::Search => write!(f, "search"),
4953            Self::Unknown(s) => write!(f, "{s}"),
4954        }
4955    }
4956}
4957
4958/// Inline enum for `ClickStackSearchChartSeries.whereLanguage`.
4959#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4960pub enum ClickStackSearchChartSeriesWherelanguage {
4961    #[serde(rename = "sql")]
4962    #[default]
4963    Sql,
4964    #[serde(rename = "lucene")]
4965    Lucene,
4966    /// Catch-all for unknown or newly-added values.
4967    #[serde(untagged)]
4968    Unknown(String),
4969}
4970
4971impl std::fmt::Display for ClickStackSearchChartSeriesWherelanguage {
4972    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4973        match self {
4974            Self::Sql => write!(f, "sql"),
4975            Self::Lucene => write!(f, "lucene"),
4976            Self::Unknown(s) => write!(f, "{s}"),
4977        }
4978    }
4979}
4980
4981/// Inline enum for `ClickStackSelectItem.aggFn`.
4982#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4983pub enum ClickStackSelectItemAggfn {
4984    #[serde(rename = "avg")]
4985    #[default]
4986    Avg,
4987    #[serde(rename = "count")]
4988    Count,
4989    #[serde(rename = "count_distinct")]
4990    Count_distinct,
4991    #[serde(rename = "last_value")]
4992    Last_value,
4993    #[serde(rename = "max")]
4994    Max,
4995    #[serde(rename = "min")]
4996    Min,
4997    #[serde(rename = "quantile")]
4998    Quantile,
4999    #[serde(rename = "sum")]
5000    Sum,
5001    #[serde(rename = "any")]
5002    Any,
5003    #[serde(rename = "none")]
5004    None,
5005    /// Catch-all for unknown or newly-added values.
5006    #[serde(untagged)]
5007    Unknown(String),
5008}
5009
5010impl std::fmt::Display for ClickStackSelectItemAggfn {
5011    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5012        match self {
5013            Self::Avg => write!(f, "avg"),
5014            Self::Count => write!(f, "count"),
5015            Self::Count_distinct => write!(f, "count_distinct"),
5016            Self::Last_value => write!(f, "last_value"),
5017            Self::Max => write!(f, "max"),
5018            Self::Min => write!(f, "min"),
5019            Self::Quantile => write!(f, "quantile"),
5020            Self::Sum => write!(f, "sum"),
5021            Self::Any => write!(f, "any"),
5022            Self::None => write!(f, "none"),
5023            Self::Unknown(s) => write!(f, "{s}"),
5024        }
5025    }
5026}
5027
5028/// Inline enum for `ClickStackSelectItem.level`.
5029#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5030pub enum ClickStackSelectItemLevel {
5031    #[serde(rename = "0.5")]
5032    #[default]
5033    _0_5,
5034    #[serde(rename = "0.9")]
5035    _0_9,
5036    #[serde(rename = "0.95")]
5037    _0_95,
5038    #[serde(rename = "0.99")]
5039    _0_99,
5040    /// Catch-all for unknown or newly-added values.
5041    #[serde(untagged)]
5042    Unknown(String),
5043}
5044
5045impl std::fmt::Display for ClickStackSelectItemLevel {
5046    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5047        match self {
5048            Self::_0_5 => write!(f, "0.5"),
5049            Self::_0_9 => write!(f, "0.9"),
5050            Self::_0_95 => write!(f, "0.95"),
5051            Self::_0_99 => write!(f, "0.99"),
5052            Self::Unknown(s) => write!(f, "{s}"),
5053        }
5054    }
5055}
5056
5057/// Inline enum for `ClickStackSelectItem.metricType`.
5058#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5059pub enum ClickStackSelectItemMetrictype {
5060    #[serde(rename = "sum")]
5061    #[default]
5062    Sum,
5063    #[serde(rename = "gauge")]
5064    Gauge,
5065    #[serde(rename = "histogram")]
5066    Histogram,
5067    #[serde(rename = "summary")]
5068    Summary,
5069    #[serde(rename = "exponential histogram")]
5070    Exponential_histogram,
5071    /// Catch-all for unknown or newly-added values.
5072    #[serde(untagged)]
5073    Unknown(String),
5074}
5075
5076impl std::fmt::Display for ClickStackSelectItemMetrictype {
5077    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5078        match self {
5079            Self::Sum => write!(f, "sum"),
5080            Self::Gauge => write!(f, "gauge"),
5081            Self::Histogram => write!(f, "histogram"),
5082            Self::Summary => write!(f, "summary"),
5083            Self::Exponential_histogram => write!(f, "exponential histogram"),
5084            Self::Unknown(s) => write!(f, "{s}"),
5085        }
5086    }
5087}
5088
5089/// Inline enum for `ClickStackSelectItem.periodAggFn`.
5090#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5091pub enum ClickStackSelectItemPeriodaggfn {
5092    #[serde(rename = "delta")]
5093    #[default]
5094    Delta,
5095    /// Catch-all for unknown or newly-added values.
5096    #[serde(untagged)]
5097    Unknown(String),
5098}
5099
5100impl std::fmt::Display for ClickStackSelectItemPeriodaggfn {
5101    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5102        match self {
5103            Self::Delta => write!(f, "delta"),
5104            Self::Unknown(s) => write!(f, "{s}"),
5105        }
5106    }
5107}
5108
5109/// Inline enum for `ClickStackSelectItem.whereLanguage`.
5110#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5111pub enum ClickStackSelectItemWherelanguage {
5112    #[serde(rename = "sql")]
5113    #[default]
5114    Sql,
5115    #[serde(rename = "lucene")]
5116    Lucene,
5117    /// Catch-all for unknown or newly-added values.
5118    #[serde(untagged)]
5119    Unknown(String),
5120}
5121
5122impl std::fmt::Display for ClickStackSelectItemWherelanguage {
5123    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5124        match self {
5125            Self::Sql => write!(f, "sql"),
5126            Self::Lucene => write!(f, "lucene"),
5127            Self::Unknown(s) => write!(f, "{s}"),
5128        }
5129    }
5130}
5131
5132/// Inline enum for `ClickStackSessionSource.kind`.
5133#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5134pub enum ClickStackSessionSourceKind {
5135    #[serde(rename = "session")]
5136    #[default]
5137    Session,
5138    /// Catch-all for unknown or newly-added values.
5139    #[serde(untagged)]
5140    Unknown(String),
5141}
5142
5143impl std::fmt::Display for ClickStackSessionSourceKind {
5144    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5145        match self {
5146            Self::Session => write!(f, "session"),
5147            Self::Unknown(s) => write!(f, "{s}"),
5148        }
5149    }
5150}
5151
5152/// Inline enum for `ClickStackSlackAPIWebhook.service`.
5153#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5154pub enum ClickStackSlackAPIWebhookService {
5155    #[serde(rename = "slack_api")]
5156    #[default]
5157    Slack_api,
5158    /// Catch-all for unknown or newly-added values.
5159    #[serde(untagged)]
5160    Unknown(String),
5161}
5162
5163impl std::fmt::Display for ClickStackSlackAPIWebhookService {
5164    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5165        match self {
5166            Self::Slack_api => write!(f, "slack_api"),
5167            Self::Unknown(s) => write!(f, "{s}"),
5168        }
5169    }
5170}
5171
5172/// Inline enum for `ClickStackSlackWebhook.service`.
5173#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5174pub enum ClickStackSlackWebhookService {
5175    #[serde(rename = "slack")]
5176    #[default]
5177    Slack,
5178    /// Catch-all for unknown or newly-added values.
5179    #[serde(untagged)]
5180    Unknown(String),
5181}
5182
5183impl std::fmt::Display for ClickStackSlackWebhookService {
5184    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5185        match self {
5186            Self::Slack => write!(f, "slack"),
5187            Self::Unknown(s) => write!(f, "{s}"),
5188        }
5189    }
5190}
5191
5192/// Inline enum for `ClickStackTableBuilderChartConfig.displayType`.
5193#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5194pub enum ClickStackTableBuilderChartConfigDisplaytype {
5195    #[serde(rename = "table")]
5196    #[default]
5197    Table,
5198    /// Catch-all for unknown or newly-added values.
5199    #[serde(untagged)]
5200    Unknown(String),
5201}
5202
5203impl std::fmt::Display for ClickStackTableBuilderChartConfigDisplaytype {
5204    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5205        match self {
5206            Self::Table => write!(f, "table"),
5207            Self::Unknown(s) => write!(f, "{s}"),
5208        }
5209    }
5210}
5211
5212/// Inline enum for `ClickStackTableChartSeries.aggFn`.
5213#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5214pub enum ClickStackTableChartSeriesAggfn {
5215    #[serde(rename = "avg")]
5216    #[default]
5217    Avg,
5218    #[serde(rename = "count")]
5219    Count,
5220    #[serde(rename = "count_distinct")]
5221    Count_distinct,
5222    #[serde(rename = "last_value")]
5223    Last_value,
5224    #[serde(rename = "max")]
5225    Max,
5226    #[serde(rename = "min")]
5227    Min,
5228    #[serde(rename = "quantile")]
5229    Quantile,
5230    #[serde(rename = "sum")]
5231    Sum,
5232    #[serde(rename = "any")]
5233    Any,
5234    #[serde(rename = "none")]
5235    None,
5236    /// Catch-all for unknown or newly-added values.
5237    #[serde(untagged)]
5238    Unknown(String),
5239}
5240
5241impl std::fmt::Display for ClickStackTableChartSeriesAggfn {
5242    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5243        match self {
5244            Self::Avg => write!(f, "avg"),
5245            Self::Count => write!(f, "count"),
5246            Self::Count_distinct => write!(f, "count_distinct"),
5247            Self::Last_value => write!(f, "last_value"),
5248            Self::Max => write!(f, "max"),
5249            Self::Min => write!(f, "min"),
5250            Self::Quantile => write!(f, "quantile"),
5251            Self::Sum => write!(f, "sum"),
5252            Self::Any => write!(f, "any"),
5253            Self::None => write!(f, "none"),
5254            Self::Unknown(s) => write!(f, "{s}"),
5255        }
5256    }
5257}
5258
5259/// Inline enum for `ClickStackTableChartSeries.metricDataType`.
5260#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5261pub enum ClickStackTableChartSeriesMetricdatatype {
5262    #[serde(rename = "sum")]
5263    #[default]
5264    Sum,
5265    #[serde(rename = "gauge")]
5266    Gauge,
5267    #[serde(rename = "histogram")]
5268    Histogram,
5269    #[serde(rename = "summary")]
5270    Summary,
5271    #[serde(rename = "exponential histogram")]
5272    Exponential_histogram,
5273    /// Catch-all for unknown or newly-added values.
5274    #[serde(untagged)]
5275    Unknown(String),
5276}
5277
5278impl std::fmt::Display for ClickStackTableChartSeriesMetricdatatype {
5279    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5280        match self {
5281            Self::Sum => write!(f, "sum"),
5282            Self::Gauge => write!(f, "gauge"),
5283            Self::Histogram => write!(f, "histogram"),
5284            Self::Summary => write!(f, "summary"),
5285            Self::Exponential_histogram => write!(f, "exponential histogram"),
5286            Self::Unknown(s) => write!(f, "{s}"),
5287        }
5288    }
5289}
5290
5291/// Inline enum for `ClickStackTableChartSeries.sortOrder`.
5292#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5293pub enum ClickStackTableChartSeriesSortorder {
5294    #[serde(rename = "desc")]
5295    #[default]
5296    Desc,
5297    #[serde(rename = "asc")]
5298    Asc,
5299    /// Catch-all for unknown or newly-added values.
5300    #[serde(untagged)]
5301    Unknown(String),
5302}
5303
5304impl std::fmt::Display for ClickStackTableChartSeriesSortorder {
5305    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5306        match self {
5307            Self::Desc => write!(f, "desc"),
5308            Self::Asc => write!(f, "asc"),
5309            Self::Unknown(s) => write!(f, "{s}"),
5310        }
5311    }
5312}
5313
5314/// Inline enum for `ClickStackTableChartSeries.type`.
5315#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5316pub enum ClickStackTableChartSeriesType {
5317    #[serde(rename = "table")]
5318    #[default]
5319    Table,
5320    /// Catch-all for unknown or newly-added values.
5321    #[serde(untagged)]
5322    Unknown(String),
5323}
5324
5325impl std::fmt::Display for ClickStackTableChartSeriesType {
5326    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5327        match self {
5328            Self::Table => write!(f, "table"),
5329            Self::Unknown(s) => write!(f, "{s}"),
5330        }
5331    }
5332}
5333
5334/// Inline enum for `ClickStackTableChartSeries.whereLanguage`.
5335#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5336pub enum ClickStackTableChartSeriesWherelanguage {
5337    #[serde(rename = "sql")]
5338    #[default]
5339    Sql,
5340    #[serde(rename = "lucene")]
5341    Lucene,
5342    /// Catch-all for unknown or newly-added values.
5343    #[serde(untagged)]
5344    Unknown(String),
5345}
5346
5347impl std::fmt::Display for ClickStackTableChartSeriesWherelanguage {
5348    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5349        match self {
5350            Self::Sql => write!(f, "sql"),
5351            Self::Lucene => write!(f, "lucene"),
5352            Self::Unknown(s) => write!(f, "{s}"),
5353        }
5354    }
5355}
5356
5357/// Inline enum for `ClickStackTableRawSqlChartConfig.configType`.
5358#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5359pub enum ClickStackTableRawSqlChartConfigConfigtype {
5360    #[serde(rename = "sql")]
5361    #[default]
5362    Sql,
5363    /// Catch-all for unknown or newly-added values.
5364    #[serde(untagged)]
5365    Unknown(String),
5366}
5367
5368impl std::fmt::Display for ClickStackTableRawSqlChartConfigConfigtype {
5369    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5370        match self {
5371            Self::Sql => write!(f, "sql"),
5372            Self::Unknown(s) => write!(f, "{s}"),
5373        }
5374    }
5375}
5376
5377/// Inline enum for `ClickStackTableRawSqlChartConfig.displayType`.
5378#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5379pub enum ClickStackTableRawSqlChartConfigDisplaytype {
5380    #[serde(rename = "table")]
5381    #[default]
5382    Table,
5383    /// Catch-all for unknown or newly-added values.
5384    #[serde(untagged)]
5385    Unknown(String),
5386}
5387
5388impl std::fmt::Display for ClickStackTableRawSqlChartConfigDisplaytype {
5389    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5390        match self {
5391            Self::Table => write!(f, "table"),
5392            Self::Unknown(s) => write!(f, "{s}"),
5393        }
5394    }
5395}
5396
5397/// Inline enum for `ClickStackTimeChartSeries.aggFn`.
5398#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5399pub enum ClickStackTimeChartSeriesAggfn {
5400    #[serde(rename = "avg")]
5401    #[default]
5402    Avg,
5403    #[serde(rename = "count")]
5404    Count,
5405    #[serde(rename = "count_distinct")]
5406    Count_distinct,
5407    #[serde(rename = "last_value")]
5408    Last_value,
5409    #[serde(rename = "max")]
5410    Max,
5411    #[serde(rename = "min")]
5412    Min,
5413    #[serde(rename = "quantile")]
5414    Quantile,
5415    #[serde(rename = "sum")]
5416    Sum,
5417    #[serde(rename = "any")]
5418    Any,
5419    #[serde(rename = "none")]
5420    None,
5421    /// Catch-all for unknown or newly-added values.
5422    #[serde(untagged)]
5423    Unknown(String),
5424}
5425
5426impl std::fmt::Display for ClickStackTimeChartSeriesAggfn {
5427    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5428        match self {
5429            Self::Avg => write!(f, "avg"),
5430            Self::Count => write!(f, "count"),
5431            Self::Count_distinct => write!(f, "count_distinct"),
5432            Self::Last_value => write!(f, "last_value"),
5433            Self::Max => write!(f, "max"),
5434            Self::Min => write!(f, "min"),
5435            Self::Quantile => write!(f, "quantile"),
5436            Self::Sum => write!(f, "sum"),
5437            Self::Any => write!(f, "any"),
5438            Self::None => write!(f, "none"),
5439            Self::Unknown(s) => write!(f, "{s}"),
5440        }
5441    }
5442}
5443
5444/// Inline enum for `ClickStackTimeChartSeries.displayType`.
5445#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5446pub enum ClickStackTimeChartSeriesDisplaytype {
5447    #[serde(rename = "stacked_bar")]
5448    #[default]
5449    Stacked_bar,
5450    #[serde(rename = "line")]
5451    Line,
5452    /// Catch-all for unknown or newly-added values.
5453    #[serde(untagged)]
5454    Unknown(String),
5455}
5456
5457impl std::fmt::Display for ClickStackTimeChartSeriesDisplaytype {
5458    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5459        match self {
5460            Self::Stacked_bar => write!(f, "stacked_bar"),
5461            Self::Line => write!(f, "line"),
5462            Self::Unknown(s) => write!(f, "{s}"),
5463        }
5464    }
5465}
5466
5467/// Inline enum for `ClickStackTimeChartSeries.metricDataType`.
5468#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5469pub enum ClickStackTimeChartSeriesMetricdatatype {
5470    #[serde(rename = "sum")]
5471    #[default]
5472    Sum,
5473    #[serde(rename = "gauge")]
5474    Gauge,
5475    #[serde(rename = "histogram")]
5476    Histogram,
5477    #[serde(rename = "summary")]
5478    Summary,
5479    #[serde(rename = "exponential histogram")]
5480    Exponential_histogram,
5481    /// Catch-all for unknown or newly-added values.
5482    #[serde(untagged)]
5483    Unknown(String),
5484}
5485
5486impl std::fmt::Display for ClickStackTimeChartSeriesMetricdatatype {
5487    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5488        match self {
5489            Self::Sum => write!(f, "sum"),
5490            Self::Gauge => write!(f, "gauge"),
5491            Self::Histogram => write!(f, "histogram"),
5492            Self::Summary => write!(f, "summary"),
5493            Self::Exponential_histogram => write!(f, "exponential histogram"),
5494            Self::Unknown(s) => write!(f, "{s}"),
5495        }
5496    }
5497}
5498
5499/// Inline enum for `ClickStackTimeChartSeries.type`.
5500#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5501pub enum ClickStackTimeChartSeriesType {
5502    #[serde(rename = "time")]
5503    #[default]
5504    Time,
5505    /// Catch-all for unknown or newly-added values.
5506    #[serde(untagged)]
5507    Unknown(String),
5508}
5509
5510impl std::fmt::Display for ClickStackTimeChartSeriesType {
5511    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5512        match self {
5513            Self::Time => write!(f, "time"),
5514            Self::Unknown(s) => write!(f, "{s}"),
5515        }
5516    }
5517}
5518
5519/// Inline enum for `ClickStackTimeChartSeries.whereLanguage`.
5520#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5521pub enum ClickStackTimeChartSeriesWherelanguage {
5522    #[serde(rename = "sql")]
5523    #[default]
5524    Sql,
5525    #[serde(rename = "lucene")]
5526    Lucene,
5527    /// Catch-all for unknown or newly-added values.
5528    #[serde(untagged)]
5529    Unknown(String),
5530}
5531
5532impl std::fmt::Display for ClickStackTimeChartSeriesWherelanguage {
5533    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5534        match self {
5535            Self::Sql => write!(f, "sql"),
5536            Self::Lucene => write!(f, "lucene"),
5537            Self::Unknown(s) => write!(f, "{s}"),
5538        }
5539    }
5540}
5541
5542/// Inline enum for `ClickStackTraceSource.kind`.
5543#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5544pub enum ClickStackTraceSourceKind {
5545    #[serde(rename = "trace")]
5546    #[default]
5547    Trace,
5548    /// Catch-all for unknown or newly-added values.
5549    #[serde(untagged)]
5550    Unknown(String),
5551}
5552
5553impl std::fmt::Display for ClickStackTraceSourceKind {
5554    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5555        match self {
5556            Self::Trace => write!(f, "trace"),
5557            Self::Unknown(s) => write!(f, "{s}"),
5558        }
5559    }
5560}
5561
5562/// Inline enum for `ClickStackTraceSource.useTextIndexForImplicitColumn`.
5563#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5564pub enum ClickStackTraceSourceUsetextindexforimplicitcolumn {
5565    #[serde(rename = "auto")]
5566    #[default]
5567    Auto,
5568    #[serde(rename = "enabled")]
5569    Enabled,
5570    #[serde(rename = "disabled")]
5571    Disabled,
5572    /// Catch-all for unknown or newly-added values.
5573    #[serde(untagged)]
5574    Unknown(String),
5575}
5576
5577impl std::fmt::Display for ClickStackTraceSourceUsetextindexforimplicitcolumn {
5578    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5579        match self {
5580            Self::Auto => write!(f, "auto"),
5581            Self::Enabled => write!(f, "enabled"),
5582            Self::Disabled => write!(f, "disabled"),
5583            Self::Unknown(s) => write!(f, "{s}"),
5584        }
5585    }
5586}
5587
5588/// Inline enum for `ClickStackUpdateAlertRequest.interval`.
5589#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5590pub enum ClickStackUpdateAlertRequestInterval {
5591    #[serde(rename = "1m")]
5592    #[default]
5593    _1m,
5594    #[serde(rename = "5m")]
5595    _5m,
5596    #[serde(rename = "15m")]
5597    _15m,
5598    #[serde(rename = "30m")]
5599    _30m,
5600    #[serde(rename = "1h")]
5601    _1h,
5602    #[serde(rename = "6h")]
5603    _6h,
5604    #[serde(rename = "12h")]
5605    _12h,
5606    #[serde(rename = "1d")]
5607    _1d,
5608    /// Catch-all for unknown or newly-added values.
5609    #[serde(untagged)]
5610    Unknown(String),
5611}
5612
5613impl std::fmt::Display for ClickStackUpdateAlertRequestInterval {
5614    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5615        match self {
5616            Self::_1m => write!(f, "1m"),
5617            Self::_5m => write!(f, "5m"),
5618            Self::_15m => write!(f, "15m"),
5619            Self::_30m => write!(f, "30m"),
5620            Self::_1h => write!(f, "1h"),
5621            Self::_6h => write!(f, "6h"),
5622            Self::_12h => write!(f, "12h"),
5623            Self::_1d => write!(f, "1d"),
5624            Self::Unknown(s) => write!(f, "{s}"),
5625        }
5626    }
5627}
5628
5629/// Inline enum for `ClickStackUpdateAlertRequest.source`.
5630#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5631pub enum ClickStackUpdateAlertRequestSource {
5632    #[serde(rename = "saved_search")]
5633    #[default]
5634    Saved_search,
5635    #[serde(rename = "tile")]
5636    Tile,
5637    /// Catch-all for unknown or newly-added values.
5638    #[serde(untagged)]
5639    Unknown(String),
5640}
5641
5642impl std::fmt::Display for ClickStackUpdateAlertRequestSource {
5643    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5644        match self {
5645            Self::Saved_search => write!(f, "saved_search"),
5646            Self::Tile => write!(f, "tile"),
5647            Self::Unknown(s) => write!(f, "{s}"),
5648        }
5649    }
5650}
5651
5652/// Inline enum for `ClickStackUpdateAlertRequest.thresholdType`.
5653#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5654pub enum ClickStackUpdateAlertRequestThresholdtype {
5655    #[serde(rename = "above")]
5656    #[default]
5657    Above,
5658    #[serde(rename = "below")]
5659    Below,
5660    #[serde(rename = "above_exclusive")]
5661    Above_exclusive,
5662    #[serde(rename = "below_or_equal")]
5663    Below_or_equal,
5664    #[serde(rename = "equal")]
5665    Equal,
5666    #[serde(rename = "not_equal")]
5667    Not_equal,
5668    #[serde(rename = "between")]
5669    Between,
5670    #[serde(rename = "not_between")]
5671    Not_between,
5672    /// Catch-all for unknown or newly-added values.
5673    #[serde(untagged)]
5674    Unknown(String),
5675}
5676
5677impl std::fmt::Display for ClickStackUpdateAlertRequestThresholdtype {
5678    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5679        match self {
5680            Self::Above => write!(f, "above"),
5681            Self::Below => write!(f, "below"),
5682            Self::Above_exclusive => write!(f, "above_exclusive"),
5683            Self::Below_or_equal => write!(f, "below_or_equal"),
5684            Self::Equal => write!(f, "equal"),
5685            Self::Not_equal => write!(f, "not_equal"),
5686            Self::Between => write!(f, "between"),
5687            Self::Not_between => write!(f, "not_between"),
5688            Self::Unknown(s) => write!(f, "{s}"),
5689        }
5690    }
5691}
5692
5693/// Inline enum for `ClickStackUpdateDashboardRequest.savedQueryLanguage`.
5694#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5695pub enum ClickStackUpdateDashboardRequestSavedquerylanguage {
5696    #[serde(rename = "sql")]
5697    #[default]
5698    Sql,
5699    #[serde(rename = "lucene")]
5700    Lucene,
5701    /// Catch-all for unknown or newly-added values.
5702    #[serde(untagged)]
5703    Unknown(String),
5704}
5705
5706impl std::fmt::Display for ClickStackUpdateDashboardRequestSavedquerylanguage {
5707    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5708        match self {
5709            Self::Sql => write!(f, "sql"),
5710            Self::Lucene => write!(f, "lucene"),
5711            Self::Unknown(s) => write!(f, "{s}"),
5712        }
5713    }
5714}
5715
5716/// Inline enum for `ClickStackWebhookInput.service`.
5717#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5718pub enum ClickStackWebhookInputService {
5719    #[serde(rename = "slack")]
5720    #[default]
5721    Slack,
5722    #[serde(rename = "incidentio")]
5723    Incidentio,
5724    #[serde(rename = "generic")]
5725    Generic,
5726    /// Catch-all for unknown or newly-added values.
5727    #[serde(untagged)]
5728    Unknown(String),
5729}
5730
5731impl std::fmt::Display for ClickStackWebhookInputService {
5732    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5733        match self {
5734            Self::Slack => write!(f, "slack"),
5735            Self::Incidentio => write!(f, "incidentio"),
5736            Self::Generic => write!(f, "generic"),
5737            Self::Unknown(s) => write!(f, "{s}"),
5738        }
5739    }
5740}
5741
5742/// Inline enum for `CreateReversePrivateEndpoint.mskAuthentication`.
5743#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5744pub enum CreateReversePrivateEndpointMskauthentication {
5745    #[default]
5746    SASL_IAM,
5747    SASL_SCRAM,
5748    /// Catch-all for unknown or newly-added values.
5749    #[serde(untagged)]
5750    Unknown(String),
5751}
5752
5753impl std::fmt::Display for CreateReversePrivateEndpointMskauthentication {
5754    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5755        match self {
5756            Self::SASL_IAM => write!(f, "SASL_IAM"),
5757            Self::SASL_SCRAM => write!(f, "SASL_SCRAM"),
5758            Self::Unknown(s) => write!(f, "{s}"),
5759        }
5760    }
5761}
5762
5763/// Inline enum for `CreateReversePrivateEndpoint.type`.
5764#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5765pub enum CreateReversePrivateEndpointType {
5766    #[default]
5767    VPC_ENDPOINT_SERVICE,
5768    VPC_RESOURCE,
5769    MSK_MULTI_VPC,
5770    GCP_PSC_SERVICE_ATTACHMENT,
5771    /// Catch-all for unknown or newly-added values.
5772    #[serde(untagged)]
5773    Unknown(String),
5774}
5775
5776impl std::fmt::Display for CreateReversePrivateEndpointType {
5777    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5778        match self {
5779            Self::VPC_ENDPOINT_SERVICE => write!(f, "VPC_ENDPOINT_SERVICE"),
5780            Self::VPC_RESOURCE => write!(f, "VPC_RESOURCE"),
5781            Self::MSK_MULTI_VPC => write!(f, "MSK_MULTI_VPC"),
5782            Self::GCP_PSC_SERVICE_ATTACHMENT => write!(f, "GCP_PSC_SERVICE_ATTACHMENT"),
5783            Self::Unknown(s) => write!(f, "{s}"),
5784        }
5785    }
5786}
5787
5788/// `autoscalingMode` enum from the ClickHouse Cloud API.
5789///
5790/// Used by `Service`, `ServicePostRequest`, `ServiceReplicaScalingPatchRequest`,
5791/// `ServiceScalingPatchResponse`, `ScalingScheduleBaseConfig`,
5792/// `ScalingScheduleEntry`, and `ScalingScheduleEntryRequest`.
5793#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5794pub enum AutoscalingMode {
5795    #[serde(rename = "vertical")]
5796    #[default]
5797    Vertical,
5798    #[serde(rename = "horizontal")]
5799    Horizontal,
5800    /// Catch-all for unknown or newly-added values.
5801    #[serde(untagged)]
5802    Unknown(String),
5803}
5804
5805impl std::fmt::Display for AutoscalingMode {
5806    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5807        match self {
5808            Self::Vertical => write!(f, "vertical"),
5809            Self::Horizontal => write!(f, "horizontal"),
5810            Self::Unknown(s) => write!(f, "{s}"),
5811        }
5812    }
5813}
5814
5815impl AutoscalingMode {
5816    /// Wire values accepted by the API, excluding the catch-all.
5817    pub const VALUES: &'static [&'static str] = &["vertical", "horizontal"];
5818}
5819
5820/// Inline enum for `CurrentScaling.effectiveAutoscalingMode`.
5821#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5822pub enum CurrentScalingEffectiveautoscalingmode {
5823    #[serde(rename = "vertical")]
5824    #[default]
5825    Vertical,
5826    #[serde(rename = "horizontal")]
5827    Horizontal,
5828    /// Catch-all for unknown or newly-added values.
5829    #[serde(untagged)]
5830    Unknown(String),
5831}
5832
5833impl std::fmt::Display for CurrentScalingEffectiveautoscalingmode {
5834    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5835        match self {
5836            Self::Vertical => write!(f, "vertical"),
5837            Self::Horizontal => write!(f, "horizontal"),
5838            Self::Unknown(s) => write!(f, "{s}"),
5839        }
5840    }
5841}
5842
5843/// Inline enum for `GcpBackupBucket.bucketProvider`.
5844#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5845pub enum GcpBackupBucketBucketprovider {
5846    #[default]
5847    GCP,
5848    /// Catch-all for unknown or newly-added values.
5849    #[serde(untagged)]
5850    Unknown(String),
5851}
5852
5853impl std::fmt::Display for GcpBackupBucketBucketprovider {
5854    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5855        match self {
5856            Self::GCP => write!(f, "GCP"),
5857            Self::Unknown(s) => write!(f, "{s}"),
5858        }
5859    }
5860}
5861
5862/// Inline enum for `GcpBackupBucketPatchRequestV1.bucketProvider`.
5863#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5864pub enum GcpBackupBucketPatchRequestV1Bucketprovider {
5865    #[default]
5866    GCP,
5867    /// Catch-all for unknown or newly-added values.
5868    #[serde(untagged)]
5869    Unknown(String),
5870}
5871
5872impl std::fmt::Display for GcpBackupBucketPatchRequestV1Bucketprovider {
5873    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5874        match self {
5875            Self::GCP => write!(f, "GCP"),
5876            Self::Unknown(s) => write!(f, "{s}"),
5877        }
5878    }
5879}
5880
5881/// Inline enum for `GcpBackupBucketPostRequestV1.bucketProvider`.
5882#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5883pub enum GcpBackupBucketPostRequestV1Bucketprovider {
5884    #[default]
5885    GCP,
5886    /// Catch-all for unknown or newly-added values.
5887    #[serde(untagged)]
5888    Unknown(String),
5889}
5890
5891impl std::fmt::Display for GcpBackupBucketPostRequestV1Bucketprovider {
5892    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5893        match self {
5894            Self::GCP => write!(f, "GCP"),
5895            Self::Unknown(s) => write!(f, "{s}"),
5896        }
5897    }
5898}
5899
5900/// Inline enum for `GcpBackupBucketProperties.bucketProvider`.
5901#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5902pub enum GcpBackupBucketPropertiesBucketprovider {
5903    #[default]
5904    GCP,
5905    /// Catch-all for unknown or newly-added values.
5906    #[serde(untagged)]
5907    Unknown(String),
5908}
5909
5910impl std::fmt::Display for GcpBackupBucketPropertiesBucketprovider {
5911    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5912        match self {
5913            Self::GCP => write!(f, "GCP"),
5914            Self::Unknown(s) => write!(f, "{s}"),
5915        }
5916    }
5917}
5918
5919/// Inline enum for `InstancePrivateEndpoint.cloudProvider`.
5920#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5921pub enum InstancePrivateEndpointCloudprovider {
5922    #[serde(rename = "gcp")]
5923    #[default]
5924    Gcp,
5925    #[serde(rename = "aws")]
5926    Aws,
5927    #[serde(rename = "azure")]
5928    Azure,
5929    /// Catch-all for unknown or newly-added values.
5930    #[serde(untagged)]
5931    Unknown(String),
5932}
5933
5934impl std::fmt::Display for InstancePrivateEndpointCloudprovider {
5935    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
5936        match self {
5937            Self::Gcp => write!(f, "gcp"),
5938            Self::Aws => write!(f, "aws"),
5939            Self::Azure => write!(f, "azure"),
5940            Self::Unknown(s) => write!(f, "{s}"),
5941        }
5942    }
5943}
5944
5945/// Inline enum for `InstancePrivateEndpoint.region`.
5946#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
5947pub enum InstancePrivateEndpointRegion {
5948    #[serde(rename = "ap-northeast-1")]
5949    #[default]
5950    Ap_northeast_1,
5951    #[serde(rename = "ap-northeast-2")]
5952    Ap_northeast_2,
5953    #[serde(rename = "ap-south-1")]
5954    Ap_south_1,
5955    #[serde(rename = "ap-southeast-1")]
5956    Ap_southeast_1,
5957    #[serde(rename = "ap-southeast-2")]
5958    Ap_southeast_2,
5959    #[serde(rename = "ca-central-1")]
5960    Ca_central_1,
5961    #[serde(rename = "eu-central-1")]
5962    Eu_central_1,
5963    #[serde(rename = "eu-west-1")]
5964    Eu_west_1,
5965    #[serde(rename = "eu-west-2")]
5966    Eu_west_2,
5967    #[serde(rename = "il-central-1")]
5968    Il_central_1,
5969    #[serde(rename = "us-east-1")]
5970    Us_east_1,
5971    #[serde(rename = "us-east-2")]
5972    Us_east_2,
5973    #[serde(rename = "us-west-2")]
5974    Us_west_2,
5975    #[serde(rename = "us-east1")]
5976    Us_east1,
5977    #[serde(rename = "us-central1")]
5978    Us_central1,
5979    #[serde(rename = "europe-west2")]
5980    Europe_west2,
5981    #[serde(rename = "europe-west4")]
5982    Europe_west4,
5983    #[serde(rename = "asia-southeast1")]
5984    Asia_southeast1,
5985    #[serde(rename = "asia-northeast1")]
5986    Asia_northeast1,
5987    #[serde(rename = "eastus")]
5988    Eastus,
5989    #[serde(rename = "eastus2")]
5990    Eastus2,
5991    #[serde(rename = "westus3")]
5992    Westus3,
5993    #[serde(rename = "germanywestcentral")]
5994    Germanywestcentral,
5995    #[serde(rename = "centralus")]
5996    Centralus,
5997    /// Catch-all for unknown or newly-added values.
5998    #[serde(untagged)]
5999    Unknown(String),
6000}
6001
6002impl std::fmt::Display for InstancePrivateEndpointRegion {
6003    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6004        match self {
6005            Self::Ap_northeast_1 => write!(f, "ap-northeast-1"),
6006            Self::Ap_northeast_2 => write!(f, "ap-northeast-2"),
6007            Self::Ap_south_1 => write!(f, "ap-south-1"),
6008            Self::Ap_southeast_1 => write!(f, "ap-southeast-1"),
6009            Self::Ap_southeast_2 => write!(f, "ap-southeast-2"),
6010            Self::Ca_central_1 => write!(f, "ca-central-1"),
6011            Self::Eu_central_1 => write!(f, "eu-central-1"),
6012            Self::Eu_west_1 => write!(f, "eu-west-1"),
6013            Self::Eu_west_2 => write!(f, "eu-west-2"),
6014            Self::Il_central_1 => write!(f, "il-central-1"),
6015            Self::Us_east_1 => write!(f, "us-east-1"),
6016            Self::Us_east_2 => write!(f, "us-east-2"),
6017            Self::Us_west_2 => write!(f, "us-west-2"),
6018            Self::Us_east1 => write!(f, "us-east1"),
6019            Self::Us_central1 => write!(f, "us-central1"),
6020            Self::Europe_west2 => write!(f, "europe-west2"),
6021            Self::Europe_west4 => write!(f, "europe-west4"),
6022            Self::Asia_southeast1 => write!(f, "asia-southeast1"),
6023            Self::Asia_northeast1 => write!(f, "asia-northeast1"),
6024            Self::Eastus => write!(f, "eastus"),
6025            Self::Eastus2 => write!(f, "eastus2"),
6026            Self::Westus3 => write!(f, "westus3"),
6027            Self::Germanywestcentral => write!(f, "germanywestcentral"),
6028            Self::Centralus => write!(f, "centralus"),
6029            Self::Unknown(s) => write!(f, "{s}"),
6030        }
6031    }
6032}
6033
6034/// Inline enum for `Invitation.role`.
6035#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6036pub enum InvitationRole {
6037    #[serde(rename = "admin")]
6038    #[default]
6039    Admin,
6040    #[serde(rename = "developer")]
6041    Developer,
6042    /// Catch-all for unknown or newly-added values.
6043    #[serde(untagged)]
6044    Unknown(String),
6045}
6046
6047impl std::fmt::Display for InvitationRole {
6048    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6049        match self {
6050            Self::Admin => write!(f, "admin"),
6051            Self::Developer => write!(f, "developer"),
6052            Self::Unknown(s) => write!(f, "{s}"),
6053        }
6054    }
6055}
6056
6057/// Inline enum for `InvitationPostRequest.role`.
6058#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6059pub enum InvitationPostRequestRole {
6060    #[serde(rename = "admin")]
6061    #[default]
6062    Admin,
6063    #[serde(rename = "developer")]
6064    Developer,
6065    /// Catch-all for unknown or newly-added values.
6066    #[serde(untagged)]
6067    Unknown(String),
6068}
6069
6070impl std::fmt::Display for InvitationPostRequestRole {
6071    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6072        match self {
6073            Self::Admin => write!(f, "admin"),
6074            Self::Developer => write!(f, "developer"),
6075            Self::Unknown(s) => write!(f, "{s}"),
6076        }
6077    }
6078}
6079
6080/// Inline enum for `Member.role`.
6081#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6082pub enum MemberRole {
6083    #[serde(rename = "admin")]
6084    #[default]
6085    Admin,
6086    #[serde(rename = "developer")]
6087    Developer,
6088    /// Catch-all for unknown or newly-added values.
6089    #[serde(untagged)]
6090    Unknown(String),
6091}
6092
6093impl std::fmt::Display for MemberRole {
6094    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6095        match self {
6096            Self::Admin => write!(f, "admin"),
6097            Self::Developer => write!(f, "developer"),
6098            Self::Unknown(s) => write!(f, "{s}"),
6099        }
6100    }
6101}
6102
6103/// Inline enum for `MemberPatchRequest.role`.
6104#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6105pub enum MemberPatchRequestRole {
6106    #[serde(rename = "admin")]
6107    #[default]
6108    Admin,
6109    #[serde(rename = "developer")]
6110    Developer,
6111    /// Catch-all for unknown or newly-added values.
6112    #[serde(untagged)]
6113    Unknown(String),
6114}
6115
6116impl std::fmt::Display for MemberPatchRequestRole {
6117    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6118        match self {
6119            Self::Admin => write!(f, "admin"),
6120            Self::Developer => write!(f, "developer"),
6121            Self::Unknown(s) => write!(f, "{s}"),
6122        }
6123    }
6124}
6125
6126/// Inline enum for `OrganizationPatchPrivateEndpoint.cloudProvider`.
6127#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6128pub enum OrganizationPatchPrivateEndpointCloudprovider {
6129    #[serde(rename = "gcp")]
6130    #[default]
6131    Gcp,
6132    #[serde(rename = "aws")]
6133    Aws,
6134    #[serde(rename = "azure")]
6135    Azure,
6136    /// Catch-all for unknown or newly-added values.
6137    #[serde(untagged)]
6138    Unknown(String),
6139}
6140
6141impl std::fmt::Display for OrganizationPatchPrivateEndpointCloudprovider {
6142    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6143        match self {
6144            Self::Gcp => write!(f, "gcp"),
6145            Self::Aws => write!(f, "aws"),
6146            Self::Azure => write!(f, "azure"),
6147            Self::Unknown(s) => write!(f, "{s}"),
6148        }
6149    }
6150}
6151
6152/// Inline enum for `OrganizationPatchPrivateEndpoint.region`.
6153#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6154pub enum OrganizationPatchPrivateEndpointRegion {
6155    #[serde(rename = "ap-northeast-1")]
6156    #[default]
6157    Ap_northeast_1,
6158    #[serde(rename = "ap-northeast-2")]
6159    Ap_northeast_2,
6160    #[serde(rename = "ap-south-1")]
6161    Ap_south_1,
6162    #[serde(rename = "ap-southeast-1")]
6163    Ap_southeast_1,
6164    #[serde(rename = "ap-southeast-2")]
6165    Ap_southeast_2,
6166    #[serde(rename = "ca-central-1")]
6167    Ca_central_1,
6168    #[serde(rename = "eu-central-1")]
6169    Eu_central_1,
6170    #[serde(rename = "eu-west-1")]
6171    Eu_west_1,
6172    #[serde(rename = "eu-west-2")]
6173    Eu_west_2,
6174    #[serde(rename = "il-central-1")]
6175    Il_central_1,
6176    #[serde(rename = "us-east-1")]
6177    Us_east_1,
6178    #[serde(rename = "us-east-2")]
6179    Us_east_2,
6180    #[serde(rename = "us-west-2")]
6181    Us_west_2,
6182    #[serde(rename = "us-east1")]
6183    Us_east1,
6184    #[serde(rename = "us-central1")]
6185    Us_central1,
6186    #[serde(rename = "europe-west2")]
6187    Europe_west2,
6188    #[serde(rename = "europe-west4")]
6189    Europe_west4,
6190    #[serde(rename = "asia-southeast1")]
6191    Asia_southeast1,
6192    #[serde(rename = "asia-northeast1")]
6193    Asia_northeast1,
6194    #[serde(rename = "eastus")]
6195    Eastus,
6196    #[serde(rename = "eastus2")]
6197    Eastus2,
6198    #[serde(rename = "westus3")]
6199    Westus3,
6200    #[serde(rename = "germanywestcentral")]
6201    Germanywestcentral,
6202    #[serde(rename = "centralus")]
6203    Centralus,
6204    /// Catch-all for unknown or newly-added values.
6205    #[serde(untagged)]
6206    Unknown(String),
6207}
6208
6209impl std::fmt::Display for OrganizationPatchPrivateEndpointRegion {
6210    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6211        match self {
6212            Self::Ap_northeast_1 => write!(f, "ap-northeast-1"),
6213            Self::Ap_northeast_2 => write!(f, "ap-northeast-2"),
6214            Self::Ap_south_1 => write!(f, "ap-south-1"),
6215            Self::Ap_southeast_1 => write!(f, "ap-southeast-1"),
6216            Self::Ap_southeast_2 => write!(f, "ap-southeast-2"),
6217            Self::Ca_central_1 => write!(f, "ca-central-1"),
6218            Self::Eu_central_1 => write!(f, "eu-central-1"),
6219            Self::Eu_west_1 => write!(f, "eu-west-1"),
6220            Self::Eu_west_2 => write!(f, "eu-west-2"),
6221            Self::Il_central_1 => write!(f, "il-central-1"),
6222            Self::Us_east_1 => write!(f, "us-east-1"),
6223            Self::Us_east_2 => write!(f, "us-east-2"),
6224            Self::Us_west_2 => write!(f, "us-west-2"),
6225            Self::Us_east1 => write!(f, "us-east1"),
6226            Self::Us_central1 => write!(f, "us-central1"),
6227            Self::Europe_west2 => write!(f, "europe-west2"),
6228            Self::Europe_west4 => write!(f, "europe-west4"),
6229            Self::Asia_southeast1 => write!(f, "asia-southeast1"),
6230            Self::Asia_northeast1 => write!(f, "asia-northeast1"),
6231            Self::Eastus => write!(f, "eastus"),
6232            Self::Eastus2 => write!(f, "eastus2"),
6233            Self::Westus3 => write!(f, "westus3"),
6234            Self::Germanywestcentral => write!(f, "germanywestcentral"),
6235            Self::Centralus => write!(f, "centralus"),
6236            Self::Unknown(s) => write!(f, "{s}"),
6237        }
6238    }
6239}
6240
6241/// Inline enum for `OrganizationPrivateEndpoint.cloudProvider`.
6242#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6243pub enum OrganizationPrivateEndpointCloudprovider {
6244    #[serde(rename = "gcp")]
6245    #[default]
6246    Gcp,
6247    #[serde(rename = "aws")]
6248    Aws,
6249    #[serde(rename = "azure")]
6250    Azure,
6251    /// Catch-all for unknown or newly-added values.
6252    #[serde(untagged)]
6253    Unknown(String),
6254}
6255
6256impl std::fmt::Display for OrganizationPrivateEndpointCloudprovider {
6257    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6258        match self {
6259            Self::Gcp => write!(f, "gcp"),
6260            Self::Aws => write!(f, "aws"),
6261            Self::Azure => write!(f, "azure"),
6262            Self::Unknown(s) => write!(f, "{s}"),
6263        }
6264    }
6265}
6266
6267/// Inline enum for `OrganizationPrivateEndpoint.region`.
6268#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6269pub enum OrganizationPrivateEndpointRegion {
6270    #[serde(rename = "ap-northeast-1")]
6271    #[default]
6272    Ap_northeast_1,
6273    #[serde(rename = "ap-northeast-2")]
6274    Ap_northeast_2,
6275    #[serde(rename = "ap-south-1")]
6276    Ap_south_1,
6277    #[serde(rename = "ap-southeast-1")]
6278    Ap_southeast_1,
6279    #[serde(rename = "ap-southeast-2")]
6280    Ap_southeast_2,
6281    #[serde(rename = "ca-central-1")]
6282    Ca_central_1,
6283    #[serde(rename = "eu-central-1")]
6284    Eu_central_1,
6285    #[serde(rename = "eu-west-1")]
6286    Eu_west_1,
6287    #[serde(rename = "eu-west-2")]
6288    Eu_west_2,
6289    #[serde(rename = "il-central-1")]
6290    Il_central_1,
6291    #[serde(rename = "us-east-1")]
6292    Us_east_1,
6293    #[serde(rename = "us-east-2")]
6294    Us_east_2,
6295    #[serde(rename = "us-west-2")]
6296    Us_west_2,
6297    #[serde(rename = "us-east1")]
6298    Us_east1,
6299    #[serde(rename = "us-central1")]
6300    Us_central1,
6301    #[serde(rename = "europe-west2")]
6302    Europe_west2,
6303    #[serde(rename = "europe-west4")]
6304    Europe_west4,
6305    #[serde(rename = "asia-southeast1")]
6306    Asia_southeast1,
6307    #[serde(rename = "asia-northeast1")]
6308    Asia_northeast1,
6309    #[serde(rename = "eastus")]
6310    Eastus,
6311    #[serde(rename = "eastus2")]
6312    Eastus2,
6313    #[serde(rename = "westus3")]
6314    Westus3,
6315    #[serde(rename = "germanywestcentral")]
6316    Germanywestcentral,
6317    #[serde(rename = "centralus")]
6318    Centralus,
6319    /// Catch-all for unknown or newly-added values.
6320    #[serde(untagged)]
6321    Unknown(String),
6322}
6323
6324impl std::fmt::Display for OrganizationPrivateEndpointRegion {
6325    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6326        match self {
6327            Self::Ap_northeast_1 => write!(f, "ap-northeast-1"),
6328            Self::Ap_northeast_2 => write!(f, "ap-northeast-2"),
6329            Self::Ap_south_1 => write!(f, "ap-south-1"),
6330            Self::Ap_southeast_1 => write!(f, "ap-southeast-1"),
6331            Self::Ap_southeast_2 => write!(f, "ap-southeast-2"),
6332            Self::Ca_central_1 => write!(f, "ca-central-1"),
6333            Self::Eu_central_1 => write!(f, "eu-central-1"),
6334            Self::Eu_west_1 => write!(f, "eu-west-1"),
6335            Self::Eu_west_2 => write!(f, "eu-west-2"),
6336            Self::Il_central_1 => write!(f, "il-central-1"),
6337            Self::Us_east_1 => write!(f, "us-east-1"),
6338            Self::Us_east_2 => write!(f, "us-east-2"),
6339            Self::Us_west_2 => write!(f, "us-west-2"),
6340            Self::Us_east1 => write!(f, "us-east1"),
6341            Self::Us_central1 => write!(f, "us-central1"),
6342            Self::Europe_west2 => write!(f, "europe-west2"),
6343            Self::Europe_west4 => write!(f, "europe-west4"),
6344            Self::Asia_southeast1 => write!(f, "asia-southeast1"),
6345            Self::Asia_northeast1 => write!(f, "asia-northeast1"),
6346            Self::Eastus => write!(f, "eastus"),
6347            Self::Eastus2 => write!(f, "eastus2"),
6348            Self::Westus3 => write!(f, "westus3"),
6349            Self::Germanywestcentral => write!(f, "germanywestcentral"),
6350            Self::Centralus => write!(f, "centralus"),
6351            Self::Unknown(s) => write!(f, "{s}"),
6352        }
6353    }
6354}
6355
6356/// Inline enum for `OrganizationQuota.quotaCode`.
6357#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6358pub enum OrganizationQuotaQuotacode {
6359    #[serde(rename = "services-per-organization")]
6360    #[default]
6361    Services_per_organization,
6362    #[serde(rename = "postgres-services-per-organization")]
6363    Postgres_services_per_organization,
6364    #[serde(rename = "replicas-per-warehouse")]
6365    Replicas_per_warehouse,
6366    /// Catch-all for unknown or newly-added values.
6367    #[serde(untagged)]
6368    Unknown(String),
6369}
6370
6371impl std::fmt::Display for OrganizationQuotaQuotacode {
6372    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6373        match self {
6374            Self::Services_per_organization => write!(f, "services-per-organization"),
6375            Self::Postgres_services_per_organization => {
6376                write!(f, "postgres-services-per-organization")
6377            }
6378            Self::Replicas_per_warehouse => write!(f, "replicas-per-warehouse"),
6379            Self::Unknown(s) => write!(f, "{s}"),
6380        }
6381    }
6382}
6383
6384/// Inline enum for `OrganizationQuota.scope`.
6385#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6386pub enum OrganizationQuotaScope {
6387    #[serde(rename = "organization")]
6388    #[default]
6389    Organization,
6390    #[serde(rename = "warehouse")]
6391    Warehouse,
6392    /// Catch-all for unknown or newly-added values.
6393    #[serde(untagged)]
6394    Unknown(String),
6395}
6396
6397impl std::fmt::Display for OrganizationQuotaScope {
6398    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6399        match self {
6400            Self::Organization => write!(f, "organization"),
6401            Self::Warehouse => write!(f, "warehouse"),
6402            Self::Unknown(s) => write!(f, "{s}"),
6403        }
6404    }
6405}
6406
6407/// Inline enum for `PostgresServiceSetState.command`.
6408#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6409pub enum PostgresServiceSetStateCommand {
6410    #[serde(rename = "restart")]
6411    #[default]
6412    Restart,
6413    #[serde(rename = "promote")]
6414    Promote,
6415    #[serde(rename = "switchover")]
6416    Switchover,
6417    /// Catch-all for unknown or newly-added values.
6418    #[serde(untagged)]
6419    Unknown(String),
6420}
6421
6422impl std::fmt::Display for PostgresServiceSetStateCommand {
6423    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6424        match self {
6425            Self::Restart => write!(f, "restart"),
6426            Self::Promote => write!(f, "promote"),
6427            Self::Switchover => write!(f, "switchover"),
6428            Self::Unknown(s) => write!(f, "{s}"),
6429        }
6430    }
6431}
6432
6433/// Inline enum for `RBACPolicy.allowDeny`.
6434#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6435pub enum RBACPolicyAllowdeny {
6436    #[default]
6437    ALLOW,
6438    DENY,
6439    /// Catch-all for unknown or newly-added values.
6440    #[serde(untagged)]
6441    Unknown(String),
6442}
6443
6444impl std::fmt::Display for RBACPolicyAllowdeny {
6445    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6446        match self {
6447            Self::ALLOW => write!(f, "ALLOW"),
6448            Self::DENY => write!(f, "DENY"),
6449            Self::Unknown(s) => write!(f, "{s}"),
6450        }
6451    }
6452}
6453
6454/// Inline enum for `RBACPolicyCreateRequest.allowDeny`.
6455#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6456pub enum RBACPolicyCreateRequestAllowdeny {
6457    #[default]
6458    ALLOW,
6459    DENY,
6460    /// Catch-all for unknown or newly-added values.
6461    #[serde(untagged)]
6462    Unknown(String),
6463}
6464
6465impl std::fmt::Display for RBACPolicyCreateRequestAllowdeny {
6466    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6467        match self {
6468            Self::ALLOW => write!(f, "ALLOW"),
6469            Self::DENY => write!(f, "DENY"),
6470            Self::Unknown(s) => write!(f, "{s}"),
6471        }
6472    }
6473}
6474
6475/// Inline enum for `RBACPolicyTags.roleV2`.
6476#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6477pub enum RBACPolicyTagsRolev2 {
6478    #[serde(rename = "sql-console-readonly")]
6479    #[default]
6480    Sql_console_readonly,
6481    #[serde(rename = "sql-console-admin")]
6482    Sql_console_admin,
6483    /// Catch-all for unknown or newly-added values.
6484    #[serde(untagged)]
6485    Unknown(String),
6486}
6487
6488impl std::fmt::Display for RBACPolicyTagsRolev2 {
6489    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6490        match self {
6491            Self::Sql_console_readonly => write!(f, "sql-console-readonly"),
6492            Self::Sql_console_admin => write!(f, "sql-console-admin"),
6493            Self::Unknown(s) => write!(f, "{s}"),
6494        }
6495    }
6496}
6497
6498/// Inline enum for `RBACRole.type`.
6499#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6500pub enum RBACRoleType {
6501    #[serde(rename = "system")]
6502    #[default]
6503    System,
6504    #[serde(rename = "custom")]
6505    Custom,
6506    /// Catch-all for unknown or newly-added values.
6507    #[serde(untagged)]
6508    Unknown(String),
6509}
6510
6511impl std::fmt::Display for RBACRoleType {
6512    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6513        match self {
6514            Self::System => write!(f, "system"),
6515            Self::Custom => write!(f, "custom"),
6516            Self::Unknown(s) => write!(f, "{s}"),
6517        }
6518    }
6519}
6520
6521/// Inline enum for `ReversePrivateEndpoint.mskAuthentication`.
6522#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6523pub enum ReversePrivateEndpointMskauthentication {
6524    #[default]
6525    SASL_IAM,
6526    SASL_SCRAM,
6527    /// Catch-all for unknown or newly-added values.
6528    #[serde(untagged)]
6529    Unknown(String),
6530}
6531
6532impl std::fmt::Display for ReversePrivateEndpointMskauthentication {
6533    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6534        match self {
6535            Self::SASL_IAM => write!(f, "SASL_IAM"),
6536            Self::SASL_SCRAM => write!(f, "SASL_SCRAM"),
6537            Self::Unknown(s) => write!(f, "{s}"),
6538        }
6539    }
6540}
6541
6542/// Inline enum for `ReversePrivateEndpoint.status`.
6543#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6544pub enum ReversePrivateEndpointStatus {
6545    #[default]
6546    Unknown,
6547    Provisioning,
6548    Deleting,
6549    Ready,
6550    Failed,
6551    PendingAcceptance,
6552    Rejected,
6553    Expired,
6554    /// Catch-all for unknown or newly-added values.
6555    #[serde(untagged)]
6556    Other(String),
6557}
6558
6559impl std::fmt::Display for ReversePrivateEndpointStatus {
6560    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6561        match self {
6562            Self::Unknown => write!(f, "Unknown"),
6563            Self::Provisioning => write!(f, "Provisioning"),
6564            Self::Deleting => write!(f, "Deleting"),
6565            Self::Ready => write!(f, "Ready"),
6566            Self::Failed => write!(f, "Failed"),
6567            Self::PendingAcceptance => write!(f, "PendingAcceptance"),
6568            Self::Rejected => write!(f, "Rejected"),
6569            Self::Expired => write!(f, "Expired"),
6570            Self::Other(s) => write!(f, "{s}"),
6571        }
6572    }
6573}
6574
6575/// Inline enum for `ReversePrivateEndpoint.type`.
6576#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6577pub enum ReversePrivateEndpointType {
6578    #[default]
6579    VPC_ENDPOINT_SERVICE,
6580    VPC_RESOURCE,
6581    MSK_MULTI_VPC,
6582    GCP_PSC_SERVICE_ATTACHMENT,
6583    /// Catch-all for unknown or newly-added values.
6584    #[serde(untagged)]
6585    Unknown(String),
6586}
6587
6588impl std::fmt::Display for ReversePrivateEndpointType {
6589    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6590        match self {
6591            Self::VPC_ENDPOINT_SERVICE => write!(f, "VPC_ENDPOINT_SERVICE"),
6592            Self::VPC_RESOURCE => write!(f, "VPC_RESOURCE"),
6593            Self::MSK_MULTI_VPC => write!(f, "MSK_MULTI_VPC"),
6594            Self::GCP_PSC_SERVICE_ATTACHMENT => write!(f, "GCP_PSC_SERVICE_ATTACHMENT"),
6595            Self::Unknown(s) => write!(f, "{s}"),
6596        }
6597    }
6598}
6599
6600/// Inline enum for `ScimPatchOperation.op`.
6601#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6602pub enum ScimPatchOperationOp {
6603    #[serde(rename = "add")]
6604    #[default]
6605    Add,
6606    #[serde(rename = "replace")]
6607    Replace,
6608    #[serde(rename = "remove")]
6609    Remove,
6610    /// Catch-all for unknown or newly-added values.
6611    #[serde(untagged)]
6612    Unknown(String),
6613}
6614
6615impl std::fmt::Display for ScimPatchOperationOp {
6616    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6617        match self {
6618            Self::Add => write!(f, "add"),
6619            Self::Replace => write!(f, "replace"),
6620            Self::Remove => write!(f, "remove"),
6621            Self::Unknown(s) => write!(f, "{s}"),
6622        }
6623    }
6624}
6625
6626/// Inline enum for `Service.complianceType`.
6627#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6628pub enum ServiceCompliancetype {
6629    #[serde(rename = "hipaa")]
6630    #[default]
6631    Hipaa,
6632    #[serde(rename = "pci")]
6633    Pci,
6634    /// Catch-all for unknown or newly-added values.
6635    #[serde(untagged)]
6636    Unknown(String),
6637}
6638
6639impl std::fmt::Display for ServiceCompliancetype {
6640    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6641        match self {
6642            Self::Hipaa => write!(f, "hipaa"),
6643            Self::Pci => write!(f, "pci"),
6644            Self::Unknown(s) => write!(f, "{s}"),
6645        }
6646    }
6647}
6648
6649/// Inline enum for `Service.profile`.
6650#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6651pub enum ServiceProfile {
6652    #[serde(rename = "v1-default")]
6653    #[default]
6654    V1_default,
6655    #[serde(rename = "v1-highmem-xs")]
6656    V1_highmem_xs,
6657    #[serde(rename = "v1-highmem-s")]
6658    V1_highmem_s,
6659    #[serde(rename = "v1-highmem-m")]
6660    V1_highmem_m,
6661    #[serde(rename = "v1-highmem-l")]
6662    V1_highmem_l,
6663    #[serde(rename = "v1-highmem-xl")]
6664    V1_highmem_xl,
6665    /// Catch-all for unknown or newly-added values.
6666    #[serde(untagged)]
6667    Unknown(String),
6668}
6669
6670impl std::fmt::Display for ServiceProfile {
6671    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6672        match self {
6673            Self::V1_default => write!(f, "v1-default"),
6674            Self::V1_highmem_xs => write!(f, "v1-highmem-xs"),
6675            Self::V1_highmem_s => write!(f, "v1-highmem-s"),
6676            Self::V1_highmem_m => write!(f, "v1-highmem-m"),
6677            Self::V1_highmem_l => write!(f, "v1-highmem-l"),
6678            Self::V1_highmem_xl => write!(f, "v1-highmem-xl"),
6679            Self::Unknown(s) => write!(f, "{s}"),
6680        }
6681    }
6682}
6683
6684/// Inline enum for `Service.provider`.
6685#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6686pub enum ServiceProvider {
6687    #[serde(rename = "aws")]
6688    #[default]
6689    Aws,
6690    #[serde(rename = "gcp")]
6691    Gcp,
6692    #[serde(rename = "azure")]
6693    Azure,
6694    /// Catch-all for unknown or newly-added values.
6695    #[serde(untagged)]
6696    Unknown(String),
6697}
6698
6699impl std::fmt::Display for ServiceProvider {
6700    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6701        match self {
6702            Self::Aws => write!(f, "aws"),
6703            Self::Gcp => write!(f, "gcp"),
6704            Self::Azure => write!(f, "azure"),
6705            Self::Unknown(s) => write!(f, "{s}"),
6706        }
6707    }
6708}
6709
6710/// Inline enum for `Service.region`.
6711#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6712pub enum ServiceRegion {
6713    #[serde(rename = "ap-northeast-1")]
6714    #[default]
6715    Ap_northeast_1,
6716    #[serde(rename = "ap-northeast-2")]
6717    Ap_northeast_2,
6718    #[serde(rename = "ap-south-1")]
6719    Ap_south_1,
6720    #[serde(rename = "ap-southeast-1")]
6721    Ap_southeast_1,
6722    #[serde(rename = "ap-southeast-2")]
6723    Ap_southeast_2,
6724    #[serde(rename = "ca-central-1")]
6725    Ca_central_1,
6726    #[serde(rename = "eu-central-1")]
6727    Eu_central_1,
6728    #[serde(rename = "eu-west-1")]
6729    Eu_west_1,
6730    #[serde(rename = "eu-west-2")]
6731    Eu_west_2,
6732    #[serde(rename = "il-central-1")]
6733    Il_central_1,
6734    #[serde(rename = "us-east-1")]
6735    Us_east_1,
6736    #[serde(rename = "us-east-2")]
6737    Us_east_2,
6738    #[serde(rename = "us-west-2")]
6739    Us_west_2,
6740    #[serde(rename = "us-east1")]
6741    Us_east1,
6742    #[serde(rename = "us-central1")]
6743    Us_central1,
6744    #[serde(rename = "europe-west2")]
6745    Europe_west2,
6746    #[serde(rename = "europe-west4")]
6747    Europe_west4,
6748    #[serde(rename = "asia-southeast1")]
6749    Asia_southeast1,
6750    #[serde(rename = "asia-northeast1")]
6751    Asia_northeast1,
6752    #[serde(rename = "eastus")]
6753    Eastus,
6754    #[serde(rename = "eastus2")]
6755    Eastus2,
6756    #[serde(rename = "westus3")]
6757    Westus3,
6758    #[serde(rename = "germanywestcentral")]
6759    Germanywestcentral,
6760    #[serde(rename = "centralus")]
6761    Centralus,
6762    /// Catch-all for unknown or newly-added values.
6763    #[serde(untagged)]
6764    Unknown(String),
6765}
6766
6767impl std::fmt::Display for ServiceRegion {
6768    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6769        match self {
6770            Self::Ap_northeast_1 => write!(f, "ap-northeast-1"),
6771            Self::Ap_northeast_2 => write!(f, "ap-northeast-2"),
6772            Self::Ap_south_1 => write!(f, "ap-south-1"),
6773            Self::Ap_southeast_1 => write!(f, "ap-southeast-1"),
6774            Self::Ap_southeast_2 => write!(f, "ap-southeast-2"),
6775            Self::Ca_central_1 => write!(f, "ca-central-1"),
6776            Self::Eu_central_1 => write!(f, "eu-central-1"),
6777            Self::Eu_west_1 => write!(f, "eu-west-1"),
6778            Self::Eu_west_2 => write!(f, "eu-west-2"),
6779            Self::Il_central_1 => write!(f, "il-central-1"),
6780            Self::Us_east_1 => write!(f, "us-east-1"),
6781            Self::Us_east_2 => write!(f, "us-east-2"),
6782            Self::Us_west_2 => write!(f, "us-west-2"),
6783            Self::Us_east1 => write!(f, "us-east1"),
6784            Self::Us_central1 => write!(f, "us-central1"),
6785            Self::Europe_west2 => write!(f, "europe-west2"),
6786            Self::Europe_west4 => write!(f, "europe-west4"),
6787            Self::Asia_southeast1 => write!(f, "asia-southeast1"),
6788            Self::Asia_northeast1 => write!(f, "asia-northeast1"),
6789            Self::Eastus => write!(f, "eastus"),
6790            Self::Eastus2 => write!(f, "eastus2"),
6791            Self::Westus3 => write!(f, "westus3"),
6792            Self::Germanywestcentral => write!(f, "germanywestcentral"),
6793            Self::Centralus => write!(f, "centralus"),
6794            Self::Unknown(s) => write!(f, "{s}"),
6795        }
6796    }
6797}
6798
6799/// Inline enum for `Service.releaseChannel`.
6800#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6801pub enum ServiceReleasechannel {
6802    #[serde(rename = "slow")]
6803    #[default]
6804    Slow,
6805    #[serde(rename = "default")]
6806    Default,
6807    #[serde(rename = "fast")]
6808    Fast,
6809    /// Catch-all for unknown or newly-added values.
6810    #[serde(untagged)]
6811    Unknown(String),
6812}
6813
6814impl std::fmt::Display for ServiceReleasechannel {
6815    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6816        match self {
6817            Self::Slow => write!(f, "slow"),
6818            Self::Default => write!(f, "default"),
6819            Self::Fast => write!(f, "fast"),
6820            Self::Unknown(s) => write!(f, "{s}"),
6821        }
6822    }
6823}
6824
6825/// Inline enum for `Service.state`.
6826#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6827pub enum ServiceState {
6828    #[serde(rename = "starting")]
6829    #[default]
6830    Starting,
6831    #[serde(rename = "stopping")]
6832    Stopping,
6833    #[serde(rename = "terminating")]
6834    Terminating,
6835    #[serde(rename = "softdeleting")]
6836    Softdeleting,
6837    #[serde(rename = "awaking")]
6838    Awaking,
6839    #[serde(rename = "partially_running")]
6840    Partially_running,
6841    #[serde(rename = "provisioning")]
6842    Provisioning,
6843    #[serde(rename = "running")]
6844    Running,
6845    #[serde(rename = "stopped")]
6846    Stopped,
6847    #[serde(rename = "terminated")]
6848    Terminated,
6849    #[serde(rename = "softdeleted")]
6850    Softdeleted,
6851    #[serde(rename = "degraded")]
6852    Degraded,
6853    #[serde(rename = "failed")]
6854    Failed,
6855    #[serde(rename = "idle")]
6856    Idle,
6857    /// Catch-all for unknown or newly-added values.
6858    #[serde(untagged)]
6859    Unknown(String),
6860}
6861
6862impl std::fmt::Display for ServiceState {
6863    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6864        match self {
6865            Self::Starting => write!(f, "starting"),
6866            Self::Stopping => write!(f, "stopping"),
6867            Self::Terminating => write!(f, "terminating"),
6868            Self::Softdeleting => write!(f, "softdeleting"),
6869            Self::Awaking => write!(f, "awaking"),
6870            Self::Partially_running => write!(f, "partially_running"),
6871            Self::Provisioning => write!(f, "provisioning"),
6872            Self::Running => write!(f, "running"),
6873            Self::Stopped => write!(f, "stopped"),
6874            Self::Terminated => write!(f, "terminated"),
6875            Self::Softdeleted => write!(f, "softdeleted"),
6876            Self::Degraded => write!(f, "degraded"),
6877            Self::Failed => write!(f, "failed"),
6878            Self::Idle => write!(f, "idle"),
6879            Self::Unknown(s) => write!(f, "{s}"),
6880        }
6881    }
6882}
6883
6884/// Inline enum for `Service.tier`.
6885#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6886pub enum ServiceTier {
6887    #[serde(rename = "development")]
6888    #[default]
6889    Development,
6890    #[serde(rename = "production")]
6891    Production,
6892    #[serde(rename = "dedicated_high_mem")]
6893    Dedicated_high_mem,
6894    #[serde(rename = "dedicated_high_cpu")]
6895    Dedicated_high_cpu,
6896    #[serde(rename = "dedicated_standard")]
6897    Dedicated_standard,
6898    #[serde(rename = "dedicated_standard_n2d_standard_4")]
6899    Dedicated_standard_n2d_standard_4,
6900    #[serde(rename = "dedicated_standard_n2d_standard_8")]
6901    Dedicated_standard_n2d_standard_8,
6902    #[serde(rename = "dedicated_standard_n2d_standard_32")]
6903    Dedicated_standard_n2d_standard_32,
6904    #[serde(rename = "dedicated_standard_n2d_standard_128")]
6905    Dedicated_standard_n2d_standard_128,
6906    #[serde(rename = "dedicated_standard_n2d_standard_32_16SSD")]
6907    Dedicated_standard_n2d_standard_32_16SSD,
6908    #[serde(rename = "dedicated_standard_n2d_standard_64_24SSD")]
6909    Dedicated_standard_n2d_standard_64_24SSD,
6910    /// Catch-all for unknown or newly-added values.
6911    #[serde(untagged)]
6912    Unknown(String),
6913}
6914
6915impl std::fmt::Display for ServiceTier {
6916    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6917        match self {
6918            Self::Development => write!(f, "development"),
6919            Self::Production => write!(f, "production"),
6920            Self::Dedicated_high_mem => write!(f, "dedicated_high_mem"),
6921            Self::Dedicated_high_cpu => write!(f, "dedicated_high_cpu"),
6922            Self::Dedicated_standard => write!(f, "dedicated_standard"),
6923            Self::Dedicated_standard_n2d_standard_4 => {
6924                write!(f, "dedicated_standard_n2d_standard_4")
6925            }
6926            Self::Dedicated_standard_n2d_standard_8 => {
6927                write!(f, "dedicated_standard_n2d_standard_8")
6928            }
6929            Self::Dedicated_standard_n2d_standard_32 => {
6930                write!(f, "dedicated_standard_n2d_standard_32")
6931            }
6932            Self::Dedicated_standard_n2d_standard_128 => {
6933                write!(f, "dedicated_standard_n2d_standard_128")
6934            }
6935            Self::Dedicated_standard_n2d_standard_32_16SSD => {
6936                write!(f, "dedicated_standard_n2d_standard_32_16SSD")
6937            }
6938            Self::Dedicated_standard_n2d_standard_64_24SSD => {
6939                write!(f, "dedicated_standard_n2d_standard_64_24SSD")
6940            }
6941            Self::Unknown(s) => write!(f, "{s}"),
6942        }
6943    }
6944}
6945
6946/// Inline enum for `ServiceEndpoint.protocol`.
6947#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6948pub enum ServiceEndpointProtocol {
6949    #[serde(rename = "https")]
6950    #[default]
6951    Https,
6952    #[serde(rename = "nativesecure")]
6953    Nativesecure,
6954    #[serde(rename = "mysql")]
6955    Mysql,
6956    /// Catch-all for unknown or newly-added values.
6957    #[serde(untagged)]
6958    Unknown(String),
6959}
6960
6961impl std::fmt::Display for ServiceEndpointProtocol {
6962    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6963        match self {
6964            Self::Https => write!(f, "https"),
6965            Self::Nativesecure => write!(f, "nativesecure"),
6966            Self::Mysql => write!(f, "mysql"),
6967            Self::Unknown(s) => write!(f, "{s}"),
6968        }
6969    }
6970}
6971
6972/// Inline enum for `ServiceEndpointChange.protocol`.
6973#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6974pub enum ServiceEndpointChangeProtocol {
6975    #[serde(rename = "mysql")]
6976    #[default]
6977    Mysql,
6978    /// Catch-all for unknown or newly-added values.
6979    #[serde(untagged)]
6980    Unknown(String),
6981}
6982
6983impl std::fmt::Display for ServiceEndpointChangeProtocol {
6984    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
6985        match self {
6986            Self::Mysql => write!(f, "mysql"),
6987            Self::Unknown(s) => write!(f, "{s}"),
6988        }
6989    }
6990}
6991
6992/// Inline enum for `ServicePatchRequest.releaseChannel`.
6993#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
6994pub enum ServicePatchRequestReleasechannel {
6995    #[serde(rename = "slow")]
6996    #[default]
6997    Slow,
6998    #[serde(rename = "default")]
6999    Default,
7000    #[serde(rename = "fast")]
7001    Fast,
7002    /// Catch-all for unknown or newly-added values.
7003    #[serde(untagged)]
7004    Unknown(String),
7005}
7006
7007impl std::fmt::Display for ServicePatchRequestReleasechannel {
7008    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7009        match self {
7010            Self::Slow => write!(f, "slow"),
7011            Self::Default => write!(f, "default"),
7012            Self::Fast => write!(f, "fast"),
7013            Self::Unknown(s) => write!(f, "{s}"),
7014        }
7015    }
7016}
7017
7018impl ServicePatchRequestReleasechannel {
7019    /// Wire values accepted by the API, excluding the catch-all.
7020    pub const VALUES: &'static [&'static str] = &["slow", "default", "fast"];
7021}
7022
7023/// Inline enum for `ServicePostRequest.complianceType`.
7024#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7025pub enum ServicePostRequestCompliancetype {
7026    #[serde(rename = "hipaa")]
7027    #[default]
7028    Hipaa,
7029    #[serde(rename = "pci")]
7030    Pci,
7031    /// Catch-all for unknown or newly-added values.
7032    #[serde(untagged)]
7033    Unknown(String),
7034}
7035
7036impl std::fmt::Display for ServicePostRequestCompliancetype {
7037    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7038        match self {
7039            Self::Hipaa => write!(f, "hipaa"),
7040            Self::Pci => write!(f, "pci"),
7041            Self::Unknown(s) => write!(f, "{s}"),
7042        }
7043    }
7044}
7045
7046impl ServicePostRequestCompliancetype {
7047    /// Wire values accepted by the API, excluding the catch-all.
7048    pub const VALUES: &'static [&'static str] = &["hipaa", "pci"];
7049}
7050
7051/// Inline enum for `ServicePostRequest.profile`.
7052#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7053pub enum ServicePostRequestProfile {
7054    #[serde(rename = "v1-default")]
7055    #[default]
7056    V1_default,
7057    #[serde(rename = "v1-highmem-xs")]
7058    V1_highmem_xs,
7059    #[serde(rename = "v1-highmem-s")]
7060    V1_highmem_s,
7061    #[serde(rename = "v1-highmem-m")]
7062    V1_highmem_m,
7063    #[serde(rename = "v1-highmem-l")]
7064    V1_highmem_l,
7065    #[serde(rename = "v1-highmem-xl")]
7066    V1_highmem_xl,
7067    /// Catch-all for unknown or newly-added values.
7068    #[serde(untagged)]
7069    Unknown(String),
7070}
7071
7072impl std::fmt::Display for ServicePostRequestProfile {
7073    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7074        match self {
7075            Self::V1_default => write!(f, "v1-default"),
7076            Self::V1_highmem_xs => write!(f, "v1-highmem-xs"),
7077            Self::V1_highmem_s => write!(f, "v1-highmem-s"),
7078            Self::V1_highmem_m => write!(f, "v1-highmem-m"),
7079            Self::V1_highmem_l => write!(f, "v1-highmem-l"),
7080            Self::V1_highmem_xl => write!(f, "v1-highmem-xl"),
7081            Self::Unknown(s) => write!(f, "{s}"),
7082        }
7083    }
7084}
7085
7086impl ServicePostRequestProfile {
7087    /// Wire values accepted by the API, excluding the catch-all.
7088    pub const VALUES: &'static [&'static str] = &[
7089        "v1-default",
7090        "v1-highmem-xs",
7091        "v1-highmem-s",
7092        "v1-highmem-m",
7093        "v1-highmem-l",
7094        "v1-highmem-xl",
7095    ];
7096}
7097
7098/// Inline enum for `ServicePostRequest.provider`.
7099#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7100pub enum ServicePostRequestProvider {
7101    #[serde(rename = "aws")]
7102    #[default]
7103    Aws,
7104    #[serde(rename = "gcp")]
7105    Gcp,
7106    #[serde(rename = "azure")]
7107    Azure,
7108    /// Catch-all for unknown or newly-added values.
7109    #[serde(untagged)]
7110    Unknown(String),
7111}
7112
7113impl std::fmt::Display for ServicePostRequestProvider {
7114    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7115        match self {
7116            Self::Aws => write!(f, "aws"),
7117            Self::Gcp => write!(f, "gcp"),
7118            Self::Azure => write!(f, "azure"),
7119            Self::Unknown(s) => write!(f, "{s}"),
7120        }
7121    }
7122}
7123
7124impl ServicePostRequestProvider {
7125    /// Wire values accepted by the API, excluding the catch-all.
7126    pub const VALUES: &'static [&'static str] = &["aws", "gcp", "azure"];
7127}
7128
7129/// Inline enum for `ServicePostRequest.region`.
7130#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7131pub enum ServicePostRequestRegion {
7132    #[serde(rename = "ap-northeast-1")]
7133    #[default]
7134    Ap_northeast_1,
7135    #[serde(rename = "ap-northeast-2")]
7136    Ap_northeast_2,
7137    #[serde(rename = "ap-south-1")]
7138    Ap_south_1,
7139    #[serde(rename = "ap-southeast-1")]
7140    Ap_southeast_1,
7141    #[serde(rename = "ap-southeast-2")]
7142    Ap_southeast_2,
7143    #[serde(rename = "ca-central-1")]
7144    Ca_central_1,
7145    #[serde(rename = "eu-central-1")]
7146    Eu_central_1,
7147    #[serde(rename = "eu-west-1")]
7148    Eu_west_1,
7149    #[serde(rename = "eu-west-2")]
7150    Eu_west_2,
7151    #[serde(rename = "il-central-1")]
7152    Il_central_1,
7153    #[serde(rename = "us-east-1")]
7154    Us_east_1,
7155    #[serde(rename = "us-east-2")]
7156    Us_east_2,
7157    #[serde(rename = "us-west-2")]
7158    Us_west_2,
7159    #[serde(rename = "us-east1")]
7160    Us_east1,
7161    #[serde(rename = "us-central1")]
7162    Us_central1,
7163    #[serde(rename = "europe-west2")]
7164    Europe_west2,
7165    #[serde(rename = "europe-west4")]
7166    Europe_west4,
7167    #[serde(rename = "asia-southeast1")]
7168    Asia_southeast1,
7169    #[serde(rename = "asia-northeast1")]
7170    Asia_northeast1,
7171    #[serde(rename = "eastus")]
7172    Eastus,
7173    #[serde(rename = "eastus2")]
7174    Eastus2,
7175    #[serde(rename = "westus3")]
7176    Westus3,
7177    #[serde(rename = "germanywestcentral")]
7178    Germanywestcentral,
7179    #[serde(rename = "centralus")]
7180    Centralus,
7181    /// Catch-all for unknown or newly-added values.
7182    #[serde(untagged)]
7183    Unknown(String),
7184}
7185
7186impl std::fmt::Display for ServicePostRequestRegion {
7187    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7188        match self {
7189            Self::Ap_northeast_1 => write!(f, "ap-northeast-1"),
7190            Self::Ap_northeast_2 => write!(f, "ap-northeast-2"),
7191            Self::Ap_south_1 => write!(f, "ap-south-1"),
7192            Self::Ap_southeast_1 => write!(f, "ap-southeast-1"),
7193            Self::Ap_southeast_2 => write!(f, "ap-southeast-2"),
7194            Self::Ca_central_1 => write!(f, "ca-central-1"),
7195            Self::Eu_central_1 => write!(f, "eu-central-1"),
7196            Self::Eu_west_1 => write!(f, "eu-west-1"),
7197            Self::Eu_west_2 => write!(f, "eu-west-2"),
7198            Self::Il_central_1 => write!(f, "il-central-1"),
7199            Self::Us_east_1 => write!(f, "us-east-1"),
7200            Self::Us_east_2 => write!(f, "us-east-2"),
7201            Self::Us_west_2 => write!(f, "us-west-2"),
7202            Self::Us_east1 => write!(f, "us-east1"),
7203            Self::Us_central1 => write!(f, "us-central1"),
7204            Self::Europe_west2 => write!(f, "europe-west2"),
7205            Self::Europe_west4 => write!(f, "europe-west4"),
7206            Self::Asia_southeast1 => write!(f, "asia-southeast1"),
7207            Self::Asia_northeast1 => write!(f, "asia-northeast1"),
7208            Self::Eastus => write!(f, "eastus"),
7209            Self::Eastus2 => write!(f, "eastus2"),
7210            Self::Westus3 => write!(f, "westus3"),
7211            Self::Germanywestcentral => write!(f, "germanywestcentral"),
7212            Self::Centralus => write!(f, "centralus"),
7213            Self::Unknown(s) => write!(f, "{s}"),
7214        }
7215    }
7216}
7217
7218impl ServicePostRequestRegion {
7219    /// Wire values accepted by the API, excluding the catch-all.
7220    pub const VALUES: &'static [&'static str] = &[
7221        "ap-northeast-1",
7222        "ap-northeast-2",
7223        "ap-south-1",
7224        "ap-southeast-1",
7225        "ap-southeast-2",
7226        "ca-central-1",
7227        "eu-central-1",
7228        "eu-west-1",
7229        "eu-west-2",
7230        "il-central-1",
7231        "us-east-1",
7232        "us-east-2",
7233        "us-west-2",
7234        "us-east1",
7235        "us-central1",
7236        "europe-west2",
7237        "europe-west4",
7238        "asia-southeast1",
7239        "asia-northeast1",
7240        "eastus",
7241        "eastus2",
7242        "westus3",
7243        "germanywestcentral",
7244        "centralus",
7245    ];
7246}
7247
7248/// Inline enum for `ServicePostRequest.releaseChannel`.
7249#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7250pub enum ServicePostRequestReleasechannel {
7251    #[serde(rename = "slow")]
7252    #[default]
7253    Slow,
7254    #[serde(rename = "default")]
7255    Default,
7256    #[serde(rename = "fast")]
7257    Fast,
7258    /// Catch-all for unknown or newly-added values.
7259    #[serde(untagged)]
7260    Unknown(String),
7261}
7262
7263impl std::fmt::Display for ServicePostRequestReleasechannel {
7264    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7265        match self {
7266            Self::Slow => write!(f, "slow"),
7267            Self::Default => write!(f, "default"),
7268            Self::Fast => write!(f, "fast"),
7269            Self::Unknown(s) => write!(f, "{s}"),
7270        }
7271    }
7272}
7273
7274impl ServicePostRequestReleasechannel {
7275    /// Wire values accepted by the API, excluding the catch-all.
7276    pub const VALUES: &'static [&'static str] = &["slow", "default", "fast"];
7277}
7278
7279/// Inline enum for `ServicePostRequest.tier`.
7280#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7281pub enum ServicePostRequestTier {
7282    #[serde(rename = "development")]
7283    #[default]
7284    Development,
7285    #[serde(rename = "production")]
7286    Production,
7287    #[serde(rename = "dedicated_high_mem")]
7288    Dedicated_high_mem,
7289    #[serde(rename = "dedicated_high_cpu")]
7290    Dedicated_high_cpu,
7291    #[serde(rename = "dedicated_standard")]
7292    Dedicated_standard,
7293    #[serde(rename = "dedicated_standard_n2d_standard_4")]
7294    Dedicated_standard_n2d_standard_4,
7295    #[serde(rename = "dedicated_standard_n2d_standard_8")]
7296    Dedicated_standard_n2d_standard_8,
7297    #[serde(rename = "dedicated_standard_n2d_standard_32")]
7298    Dedicated_standard_n2d_standard_32,
7299    #[serde(rename = "dedicated_standard_n2d_standard_128")]
7300    Dedicated_standard_n2d_standard_128,
7301    #[serde(rename = "dedicated_standard_n2d_standard_32_16SSD")]
7302    Dedicated_standard_n2d_standard_32_16SSD,
7303    #[serde(rename = "dedicated_standard_n2d_standard_64_24SSD")]
7304    Dedicated_standard_n2d_standard_64_24SSD,
7305    /// Catch-all for unknown or newly-added values.
7306    #[serde(untagged)]
7307    Unknown(String),
7308}
7309
7310impl std::fmt::Display for ServicePostRequestTier {
7311    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7312        match self {
7313            Self::Development => write!(f, "development"),
7314            Self::Production => write!(f, "production"),
7315            Self::Dedicated_high_mem => write!(f, "dedicated_high_mem"),
7316            Self::Dedicated_high_cpu => write!(f, "dedicated_high_cpu"),
7317            Self::Dedicated_standard => write!(f, "dedicated_standard"),
7318            Self::Dedicated_standard_n2d_standard_4 => {
7319                write!(f, "dedicated_standard_n2d_standard_4")
7320            }
7321            Self::Dedicated_standard_n2d_standard_8 => {
7322                write!(f, "dedicated_standard_n2d_standard_8")
7323            }
7324            Self::Dedicated_standard_n2d_standard_32 => {
7325                write!(f, "dedicated_standard_n2d_standard_32")
7326            }
7327            Self::Dedicated_standard_n2d_standard_128 => {
7328                write!(f, "dedicated_standard_n2d_standard_128")
7329            }
7330            Self::Dedicated_standard_n2d_standard_32_16SSD => {
7331                write!(f, "dedicated_standard_n2d_standard_32_16SSD")
7332            }
7333            Self::Dedicated_standard_n2d_standard_64_24SSD => {
7334                write!(f, "dedicated_standard_n2d_standard_64_24SSD")
7335            }
7336            Self::Unknown(s) => write!(f, "{s}"),
7337        }
7338    }
7339}
7340
7341/// Inline enum for `ServiceScalingPatchResponse.complianceType`.
7342#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7343pub enum ServiceScalingPatchResponseCompliancetype {
7344    #[serde(rename = "hipaa")]
7345    #[default]
7346    Hipaa,
7347    #[serde(rename = "pci")]
7348    Pci,
7349    /// Catch-all for unknown or newly-added values.
7350    #[serde(untagged)]
7351    Unknown(String),
7352}
7353
7354impl std::fmt::Display for ServiceScalingPatchResponseCompliancetype {
7355    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7356        match self {
7357            Self::Hipaa => write!(f, "hipaa"),
7358            Self::Pci => write!(f, "pci"),
7359            Self::Unknown(s) => write!(f, "{s}"),
7360        }
7361    }
7362}
7363
7364/// Inline enum for `ServiceScalingPatchResponse.profile`.
7365#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7366pub enum ServiceScalingPatchResponseProfile {
7367    #[serde(rename = "v1-default")]
7368    #[default]
7369    V1_default,
7370    #[serde(rename = "v1-highmem-xs")]
7371    V1_highmem_xs,
7372    #[serde(rename = "v1-highmem-s")]
7373    V1_highmem_s,
7374    #[serde(rename = "v1-highmem-m")]
7375    V1_highmem_m,
7376    #[serde(rename = "v1-highmem-l")]
7377    V1_highmem_l,
7378    #[serde(rename = "v1-highmem-xl")]
7379    V1_highmem_xl,
7380    /// Catch-all for unknown or newly-added values.
7381    #[serde(untagged)]
7382    Unknown(String),
7383}
7384
7385impl std::fmt::Display for ServiceScalingPatchResponseProfile {
7386    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7387        match self {
7388            Self::V1_default => write!(f, "v1-default"),
7389            Self::V1_highmem_xs => write!(f, "v1-highmem-xs"),
7390            Self::V1_highmem_s => write!(f, "v1-highmem-s"),
7391            Self::V1_highmem_m => write!(f, "v1-highmem-m"),
7392            Self::V1_highmem_l => write!(f, "v1-highmem-l"),
7393            Self::V1_highmem_xl => write!(f, "v1-highmem-xl"),
7394            Self::Unknown(s) => write!(f, "{s}"),
7395        }
7396    }
7397}
7398
7399/// Inline enum for `ServiceScalingPatchResponse.provider`.
7400#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7401pub enum ServiceScalingPatchResponseProvider {
7402    #[serde(rename = "aws")]
7403    #[default]
7404    Aws,
7405    #[serde(rename = "gcp")]
7406    Gcp,
7407    #[serde(rename = "azure")]
7408    Azure,
7409    /// Catch-all for unknown or newly-added values.
7410    #[serde(untagged)]
7411    Unknown(String),
7412}
7413
7414impl std::fmt::Display for ServiceScalingPatchResponseProvider {
7415    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7416        match self {
7417            Self::Aws => write!(f, "aws"),
7418            Self::Gcp => write!(f, "gcp"),
7419            Self::Azure => write!(f, "azure"),
7420            Self::Unknown(s) => write!(f, "{s}"),
7421        }
7422    }
7423}
7424
7425/// Inline enum for `ServiceScalingPatchResponse.region`.
7426#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7427pub enum ServiceScalingPatchResponseRegion {
7428    #[serde(rename = "ap-northeast-1")]
7429    #[default]
7430    Ap_northeast_1,
7431    #[serde(rename = "ap-northeast-2")]
7432    Ap_northeast_2,
7433    #[serde(rename = "ap-south-1")]
7434    Ap_south_1,
7435    #[serde(rename = "ap-southeast-1")]
7436    Ap_southeast_1,
7437    #[serde(rename = "ap-southeast-2")]
7438    Ap_southeast_2,
7439    #[serde(rename = "ca-central-1")]
7440    Ca_central_1,
7441    #[serde(rename = "eu-central-1")]
7442    Eu_central_1,
7443    #[serde(rename = "eu-west-1")]
7444    Eu_west_1,
7445    #[serde(rename = "eu-west-2")]
7446    Eu_west_2,
7447    #[serde(rename = "il-central-1")]
7448    Il_central_1,
7449    #[serde(rename = "us-east-1")]
7450    Us_east_1,
7451    #[serde(rename = "us-east-2")]
7452    Us_east_2,
7453    #[serde(rename = "us-west-2")]
7454    Us_west_2,
7455    #[serde(rename = "us-east1")]
7456    Us_east1,
7457    #[serde(rename = "us-central1")]
7458    Us_central1,
7459    #[serde(rename = "europe-west2")]
7460    Europe_west2,
7461    #[serde(rename = "europe-west4")]
7462    Europe_west4,
7463    #[serde(rename = "asia-southeast1")]
7464    Asia_southeast1,
7465    #[serde(rename = "asia-northeast1")]
7466    Asia_northeast1,
7467    #[serde(rename = "eastus")]
7468    Eastus,
7469    #[serde(rename = "eastus2")]
7470    Eastus2,
7471    #[serde(rename = "westus3")]
7472    Westus3,
7473    #[serde(rename = "germanywestcentral")]
7474    Germanywestcentral,
7475    #[serde(rename = "centralus")]
7476    Centralus,
7477    /// Catch-all for unknown or newly-added values.
7478    #[serde(untagged)]
7479    Unknown(String),
7480}
7481
7482impl std::fmt::Display for ServiceScalingPatchResponseRegion {
7483    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7484        match self {
7485            Self::Ap_northeast_1 => write!(f, "ap-northeast-1"),
7486            Self::Ap_northeast_2 => write!(f, "ap-northeast-2"),
7487            Self::Ap_south_1 => write!(f, "ap-south-1"),
7488            Self::Ap_southeast_1 => write!(f, "ap-southeast-1"),
7489            Self::Ap_southeast_2 => write!(f, "ap-southeast-2"),
7490            Self::Ca_central_1 => write!(f, "ca-central-1"),
7491            Self::Eu_central_1 => write!(f, "eu-central-1"),
7492            Self::Eu_west_1 => write!(f, "eu-west-1"),
7493            Self::Eu_west_2 => write!(f, "eu-west-2"),
7494            Self::Il_central_1 => write!(f, "il-central-1"),
7495            Self::Us_east_1 => write!(f, "us-east-1"),
7496            Self::Us_east_2 => write!(f, "us-east-2"),
7497            Self::Us_west_2 => write!(f, "us-west-2"),
7498            Self::Us_east1 => write!(f, "us-east1"),
7499            Self::Us_central1 => write!(f, "us-central1"),
7500            Self::Europe_west2 => write!(f, "europe-west2"),
7501            Self::Europe_west4 => write!(f, "europe-west4"),
7502            Self::Asia_southeast1 => write!(f, "asia-southeast1"),
7503            Self::Asia_northeast1 => write!(f, "asia-northeast1"),
7504            Self::Eastus => write!(f, "eastus"),
7505            Self::Eastus2 => write!(f, "eastus2"),
7506            Self::Westus3 => write!(f, "westus3"),
7507            Self::Germanywestcentral => write!(f, "germanywestcentral"),
7508            Self::Centralus => write!(f, "centralus"),
7509            Self::Unknown(s) => write!(f, "{s}"),
7510        }
7511    }
7512}
7513
7514/// Inline enum for `ServiceScalingPatchResponse.releaseChannel`.
7515#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7516pub enum ServiceScalingPatchResponseReleasechannel {
7517    #[serde(rename = "slow")]
7518    #[default]
7519    Slow,
7520    #[serde(rename = "default")]
7521    Default,
7522    #[serde(rename = "fast")]
7523    Fast,
7524    /// Catch-all for unknown or newly-added values.
7525    #[serde(untagged)]
7526    Unknown(String),
7527}
7528
7529impl std::fmt::Display for ServiceScalingPatchResponseReleasechannel {
7530    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7531        match self {
7532            Self::Slow => write!(f, "slow"),
7533            Self::Default => write!(f, "default"),
7534            Self::Fast => write!(f, "fast"),
7535            Self::Unknown(s) => write!(f, "{s}"),
7536        }
7537    }
7538}
7539
7540/// Inline enum for `ServiceScalingPatchResponse.state`.
7541#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7542pub enum ServiceScalingPatchResponseState {
7543    #[serde(rename = "starting")]
7544    #[default]
7545    Starting,
7546    #[serde(rename = "stopping")]
7547    Stopping,
7548    #[serde(rename = "terminating")]
7549    Terminating,
7550    #[serde(rename = "softdeleting")]
7551    Softdeleting,
7552    #[serde(rename = "awaking")]
7553    Awaking,
7554    #[serde(rename = "partially_running")]
7555    Partially_running,
7556    #[serde(rename = "provisioning")]
7557    Provisioning,
7558    #[serde(rename = "running")]
7559    Running,
7560    #[serde(rename = "stopped")]
7561    Stopped,
7562    #[serde(rename = "terminated")]
7563    Terminated,
7564    #[serde(rename = "softdeleted")]
7565    Softdeleted,
7566    #[serde(rename = "degraded")]
7567    Degraded,
7568    #[serde(rename = "failed")]
7569    Failed,
7570    #[serde(rename = "idle")]
7571    Idle,
7572    /// Catch-all for unknown or newly-added values.
7573    #[serde(untagged)]
7574    Unknown(String),
7575}
7576
7577impl std::fmt::Display for ServiceScalingPatchResponseState {
7578    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7579        match self {
7580            Self::Starting => write!(f, "starting"),
7581            Self::Stopping => write!(f, "stopping"),
7582            Self::Terminating => write!(f, "terminating"),
7583            Self::Softdeleting => write!(f, "softdeleting"),
7584            Self::Awaking => write!(f, "awaking"),
7585            Self::Partially_running => write!(f, "partially_running"),
7586            Self::Provisioning => write!(f, "provisioning"),
7587            Self::Running => write!(f, "running"),
7588            Self::Stopped => write!(f, "stopped"),
7589            Self::Terminated => write!(f, "terminated"),
7590            Self::Softdeleted => write!(f, "softdeleted"),
7591            Self::Degraded => write!(f, "degraded"),
7592            Self::Failed => write!(f, "failed"),
7593            Self::Idle => write!(f, "idle"),
7594            Self::Unknown(s) => write!(f, "{s}"),
7595        }
7596    }
7597}
7598
7599/// Inline enum for `ServiceScalingPatchResponse.tier`.
7600#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7601pub enum ServiceScalingPatchResponseTier {
7602    #[serde(rename = "development")]
7603    #[default]
7604    Development,
7605    #[serde(rename = "production")]
7606    Production,
7607    #[serde(rename = "dedicated_high_mem")]
7608    Dedicated_high_mem,
7609    #[serde(rename = "dedicated_high_cpu")]
7610    Dedicated_high_cpu,
7611    #[serde(rename = "dedicated_standard")]
7612    Dedicated_standard,
7613    #[serde(rename = "dedicated_standard_n2d_standard_4")]
7614    Dedicated_standard_n2d_standard_4,
7615    #[serde(rename = "dedicated_standard_n2d_standard_8")]
7616    Dedicated_standard_n2d_standard_8,
7617    #[serde(rename = "dedicated_standard_n2d_standard_32")]
7618    Dedicated_standard_n2d_standard_32,
7619    #[serde(rename = "dedicated_standard_n2d_standard_128")]
7620    Dedicated_standard_n2d_standard_128,
7621    #[serde(rename = "dedicated_standard_n2d_standard_32_16SSD")]
7622    Dedicated_standard_n2d_standard_32_16SSD,
7623    #[serde(rename = "dedicated_standard_n2d_standard_64_24SSD")]
7624    Dedicated_standard_n2d_standard_64_24SSD,
7625    /// Catch-all for unknown or newly-added values.
7626    #[serde(untagged)]
7627    Unknown(String),
7628}
7629
7630impl std::fmt::Display for ServiceScalingPatchResponseTier {
7631    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7632        match self {
7633            Self::Development => write!(f, "development"),
7634            Self::Production => write!(f, "production"),
7635            Self::Dedicated_high_mem => write!(f, "dedicated_high_mem"),
7636            Self::Dedicated_high_cpu => write!(f, "dedicated_high_cpu"),
7637            Self::Dedicated_standard => write!(f, "dedicated_standard"),
7638            Self::Dedicated_standard_n2d_standard_4 => {
7639                write!(f, "dedicated_standard_n2d_standard_4")
7640            }
7641            Self::Dedicated_standard_n2d_standard_8 => {
7642                write!(f, "dedicated_standard_n2d_standard_8")
7643            }
7644            Self::Dedicated_standard_n2d_standard_32 => {
7645                write!(f, "dedicated_standard_n2d_standard_32")
7646            }
7647            Self::Dedicated_standard_n2d_standard_128 => {
7648                write!(f, "dedicated_standard_n2d_standard_128")
7649            }
7650            Self::Dedicated_standard_n2d_standard_32_16SSD => {
7651                write!(f, "dedicated_standard_n2d_standard_32_16SSD")
7652            }
7653            Self::Dedicated_standard_n2d_standard_64_24SSD => {
7654                write!(f, "dedicated_standard_n2d_standard_64_24SSD")
7655            }
7656            Self::Unknown(s) => write!(f, "{s}"),
7657        }
7658    }
7659}
7660
7661/// Inline enum for `ServiceStatePatchRequest.command`.
7662#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7663pub enum ServiceStatePatchRequestCommand {
7664    #[serde(rename = "start")]
7665    #[default]
7666    Start,
7667    #[serde(rename = "stop")]
7668    Stop,
7669    #[serde(rename = "awake")]
7670    Awake,
7671    /// Catch-all for unknown or newly-added values.
7672    #[serde(untagged)]
7673    Unknown(String),
7674}
7675
7676impl std::fmt::Display for ServiceStatePatchRequestCommand {
7677    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7678        match self {
7679            Self::Start => write!(f, "start"),
7680            Self::Stop => write!(f, "stop"),
7681            Self::Awake => write!(f, "awake"),
7682            Self::Unknown(s) => write!(f, "{s}"),
7683        }
7684    }
7685}
7686
7687/// Inline enum for `UsageCostRecord.entityType`.
7688#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7689pub enum UsageCostRecordEntitytype {
7690    #[serde(rename = "datawarehouse")]
7691    #[default]
7692    Datawarehouse,
7693    #[serde(rename = "service")]
7694    Service,
7695    #[serde(rename = "clickpipe")]
7696    Clickpipe,
7697    /// Catch-all for unknown or newly-added values.
7698    #[serde(untagged)]
7699    Unknown(String),
7700}
7701
7702impl std::fmt::Display for UsageCostRecordEntitytype {
7703    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7704        match self {
7705            Self::Datawarehouse => write!(f, "datawarehouse"),
7706            Self::Service => write!(f, "service"),
7707            Self::Clickpipe => write!(f, "clickpipe"),
7708            Self::Unknown(s) => write!(f, "{s}"),
7709        }
7710    }
7711}
7712
7713/// Inline enum for `pgConfig.default_transaction_isolation`.
7714#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7715pub enum PgConfigDefaultTransactionIsolation {
7716    #[serde(rename = "read committed")]
7717    #[default]
7718    Read_committed,
7719    #[serde(rename = "repeatable read")]
7720    Repeatable_read,
7721    #[serde(rename = "serializable")]
7722    Serializable,
7723    /// Catch-all for unknown or newly-added values.
7724    #[serde(untagged)]
7725    Unknown(String),
7726}
7727
7728impl std::fmt::Display for PgConfigDefaultTransactionIsolation {
7729    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7730        match self {
7731            Self::Read_committed => write!(f, "read committed"),
7732            Self::Repeatable_read => write!(f, "repeatable read"),
7733            Self::Serializable => write!(f, "serializable"),
7734            Self::Unknown(s) => write!(f, "{s}"),
7735        }
7736    }
7737}
7738
7739/// Inline enum for `pgConfig.ssl_min_protocol_version`.
7740#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7741pub enum PgConfigSslMinProtocolVersion {
7742    #[serde(rename = "TLSv1")]
7743    #[default]
7744    TlsV1,
7745    #[serde(rename = "TLSv1.1")]
7746    TlsV1_1,
7747    #[serde(rename = "TLSv1.2")]
7748    TlsV1_2,
7749    #[serde(rename = "TLSv1.3")]
7750    TlsV1_3,
7751    /// Catch-all for unknown or newly-added values.
7752    #[serde(untagged)]
7753    Unknown(String),
7754}
7755
7756impl std::fmt::Display for PgConfigSslMinProtocolVersion {
7757    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7758        match self {
7759            Self::TlsV1 => write!(f, "TLSv1"),
7760            Self::TlsV1_1 => write!(f, "TLSv1.1"),
7761            Self::TlsV1_2 => write!(f, "TLSv1.2"),
7762            Self::TlsV1_3 => write!(f, "TLSv1.3"),
7763            Self::Unknown(s) => write!(f, "{s}"),
7764        }
7765    }
7766}
7767
7768/// Inline enum for `pgConfig.wal_compression`.
7769#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7770pub enum PgConfigWalCompression {
7771    #[serde(rename = "off")]
7772    #[default]
7773    Off,
7774    #[serde(rename = "on")]
7775    On,
7776    #[serde(rename = "lz4")]
7777    Lz4,
7778    #[serde(rename = "zstd")]
7779    Zstd,
7780    /// Catch-all for unknown or newly-added values.
7781    #[serde(untagged)]
7782    Unknown(String),
7783}
7784
7785impl std::fmt::Display for PgConfigWalCompression {
7786    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7787        match self {
7788            Self::Off => write!(f, "off"),
7789            Self::On => write!(f, "on"),
7790            Self::Lz4 => write!(f, "lz4"),
7791            Self::Zstd => write!(f, "zstd"),
7792            Self::Unknown(s) => write!(f, "{s}"),
7793        }
7794    }
7795}
7796
7797/// `BackupBucket` - one of multiple variants.
7798///
7799/// Dispatched on the `bucketProvider` field; see the `discriminated_union!`
7800/// invocation below for the wire values.
7801#[derive(Debug, Clone, PartialEq, Serialize)]
7802#[serde(untagged)]
7803pub enum BackupBucket {
7804    AwsBackupBucket(AwsBackupBucket),
7805    GcpBackupBucket(GcpBackupBucket),
7806    AzureBackupBucket(AzureBackupBucket),
7807    /// Catch-all for unknown or newly-added values.
7808    ///
7809    /// Holds the raw payload as `serde_json::Value` so it round-trips
7810    /// losslessly; its `Display` emits the payload as compact JSON.
7811    Unknown(serde_json::Value),
7812}
7813
7814discriminated_union! {
7815    BackupBucket, "bucketProvider" {
7816        "AWS" => AwsBackupBucket,
7817        "GCP" => GcpBackupBucket,
7818        "AZURE" => AzureBackupBucket,
7819    }
7820}
7821
7822impl std::fmt::Display for BackupBucket {
7823    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7824        match self {
7825            Self::AwsBackupBucket(_) => write!(f, "AwsBackupBucket"),
7826            Self::GcpBackupBucket(_) => write!(f, "GcpBackupBucket"),
7827            Self::AzureBackupBucket(_) => write!(f, "AzureBackupBucket"),
7828            Self::Unknown(s) => write!(f, "{s}"),
7829        }
7830    }
7831}
7832
7833/// `BackupBucketPatchRequest` - one of multiple variants.
7834///
7835/// Dispatched on the `bucketProvider` field; see the `discriminated_union!`
7836/// invocation below for the wire values.
7837#[derive(Debug, Clone, PartialEq, Serialize)]
7838#[serde(untagged)]
7839pub enum BackupBucketPatchRequest {
7840    AwsBackupBucketPatchRequestV1(AwsBackupBucketPatchRequestV1),
7841    GcpBackupBucketPatchRequestV1(GcpBackupBucketPatchRequestV1),
7842    AzureBackupBucketPatchRequestV1(AzureBackupBucketPatchRequestV1),
7843    /// Catch-all for unknown or newly-added values.
7844    ///
7845    /// Holds the raw payload as `serde_json::Value` so it round-trips
7846    /// losslessly; its `Display` emits the payload as compact JSON.
7847    Unknown(serde_json::Value),
7848}
7849
7850discriminated_union! {
7851    BackupBucketPatchRequest, "bucketProvider" {
7852        "AWS" => AwsBackupBucketPatchRequestV1,
7853        "GCP" => GcpBackupBucketPatchRequestV1,
7854        "AZURE" => AzureBackupBucketPatchRequestV1,
7855    }
7856}
7857
7858impl std::fmt::Display for BackupBucketPatchRequest {
7859    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7860        match self {
7861            Self::AwsBackupBucketPatchRequestV1(_) => write!(f, "AwsBackupBucketPatchRequestV1"),
7862            Self::GcpBackupBucketPatchRequestV1(_) => write!(f, "GcpBackupBucketPatchRequestV1"),
7863            Self::AzureBackupBucketPatchRequestV1(_) => {
7864                write!(f, "AzureBackupBucketPatchRequestV1")
7865            }
7866            Self::Unknown(s) => write!(f, "{s}"),
7867        }
7868    }
7869}
7870
7871/// `BackupBucketPostRequest` - one of multiple variants.
7872///
7873/// Dispatched on the `bucketProvider` field; see the `discriminated_union!`
7874/// invocation below for the wire values.
7875#[derive(Debug, Clone, PartialEq, Serialize)]
7876#[serde(untagged)]
7877pub enum BackupBucketPostRequest {
7878    AwsBackupBucketPostRequestV1(AwsBackupBucketPostRequestV1),
7879    GcpBackupBucketPostRequestV1(GcpBackupBucketPostRequestV1),
7880    AzureBackupBucketPostRequestV1(AzureBackupBucketPostRequestV1),
7881    /// Catch-all for unknown or newly-added values.
7882    ///
7883    /// Holds the raw payload as `serde_json::Value` so it round-trips
7884    /// losslessly; its `Display` emits the payload as compact JSON.
7885    Unknown(serde_json::Value),
7886}
7887
7888discriminated_union! {
7889    BackupBucketPostRequest, "bucketProvider" {
7890        "AWS" => AwsBackupBucketPostRequestV1,
7891        "GCP" => GcpBackupBucketPostRequestV1,
7892        "AZURE" => AzureBackupBucketPostRequestV1,
7893    }
7894}
7895
7896impl std::fmt::Display for BackupBucketPostRequest {
7897    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7898        match self {
7899            Self::AwsBackupBucketPostRequestV1(_) => write!(f, "AwsBackupBucketPostRequestV1"),
7900            Self::GcpBackupBucketPostRequestV1(_) => write!(f, "GcpBackupBucketPostRequestV1"),
7901            Self::AzureBackupBucketPostRequestV1(_) => write!(f, "AzureBackupBucketPostRequestV1"),
7902            Self::Unknown(s) => write!(f, "{s}"),
7903        }
7904    }
7905}
7906
7907/// `BackupBucketProperties` - one of multiple variants.
7908///
7909/// Dispatched on the `bucketProvider` field; see the `discriminated_union!`
7910/// invocation below for the wire values.
7911#[derive(Debug, Clone, PartialEq, Serialize)]
7912#[serde(untagged)]
7913pub enum BackupBucketProperties {
7914    AwsBackupBucketProperties(AwsBackupBucketProperties),
7915    GcpBackupBucketProperties(GcpBackupBucketProperties),
7916    AzureBackupBucketProperties(AzureBackupBucketProperties),
7917    /// Catch-all for unknown or newly-added values.
7918    ///
7919    /// Holds the raw payload as `serde_json::Value` so it round-trips
7920    /// losslessly; its `Display` emits the payload as compact JSON.
7921    Unknown(serde_json::Value),
7922}
7923
7924discriminated_union! {
7925    BackupBucketProperties, "bucketProvider" {
7926        "AWS" => AwsBackupBucketProperties,
7927        "GCP" => GcpBackupBucketProperties,
7928        "AZURE" => AzureBackupBucketProperties,
7929    }
7930}
7931
7932impl std::fmt::Display for BackupBucketProperties {
7933    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7934        match self {
7935            Self::AwsBackupBucketProperties(_) => write!(f, "AwsBackupBucketProperties"),
7936            Self::GcpBackupBucketProperties(_) => write!(f, "GcpBackupBucketProperties"),
7937            Self::AzureBackupBucketProperties(_) => write!(f, "AzureBackupBucketProperties"),
7938            Self::Unknown(s) => write!(f, "{s}"),
7939        }
7940    }
7941}
7942
7943/// `ClickStackAlertChannel` - one of multiple variants.
7944///
7945/// Dispatched on the `type` field; see the `discriminated_union!`
7946/// invocation below for the wire values.
7947#[derive(Debug, Clone, PartialEq, Serialize)]
7948#[serde(untagged)]
7949pub enum ClickStackAlertChannel {
7950    ClickStackAlertChannelEmail(ClickStackAlertChannelEmail),
7951    ClickStackAlertChannelWebhook(ClickStackAlertChannelWebhook),
7952    /// Catch-all for unknown or newly-added values.
7953    ///
7954    /// Holds the raw payload as `serde_json::Value` so it round-trips
7955    /// losslessly; its `Display` emits the payload as compact JSON.
7956    Unknown(serde_json::Value),
7957}
7958
7959discriminated_union! {
7960    ClickStackAlertChannel, "type" {
7961        "email" => ClickStackAlertChannelEmail,
7962        "webhook" => ClickStackAlertChannelWebhook,
7963    }
7964}
7965
7966impl std::fmt::Display for ClickStackAlertChannel {
7967    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
7968        match self {
7969            Self::ClickStackAlertChannelEmail(_) => write!(f, "ClickStackAlertChannelEmail"),
7970            Self::ClickStackAlertChannelWebhook(_) => write!(f, "ClickStackAlertChannelWebhook"),
7971            Self::Unknown(s) => write!(f, "{s}"),
7972        }
7973    }
7974}
7975
7976/// `ClickStackAlertChannel` - one of multiple variants, in response position.
7977///
7978/// Response variant of [`ClickStackAlertChannel`]: each arm is the all-`Option`
7979/// response variant of its request type, so a field the API drops or sends as
7980/// `null` deserializes to `None` instead of failing.
7981///
7982/// Dispatched on the `type` field, exactly as the request union is: dispatch
7983/// reads the raw JSON rather than trying each variant's shape, so all-`Option`
7984/// arms — which would match any object under `untagged` matching — cannot
7985/// misroute a payload. A `type` this crate does not know, or a payload that
7986/// does not fit the variant its `type` selects, lands in `Unknown` with the
7987/// raw JSON intact.
7988///
7989/// Deliberately has no `Default`: every arm's default would serialize to `{}`,
7990/// which carries no `type` and so would not deserialize back to the same
7991/// variant. Build a [`ClickStackAlertChannel`] instead when writing.
7992#[derive(Debug, Clone, PartialEq, Serialize)]
7993#[serde(untagged)]
7994pub enum ClickStackAlertChannelResponse {
7995    ClickStackAlertChannelEmail(ClickStackAlertChannelEmailResponse),
7996    ClickStackAlertChannelWebhook(ClickStackAlertChannelWebhookResponse),
7997    /// Catch-all for unknown or newly-added values.
7998    ///
7999    /// Holds the raw payload as `serde_json::Value` so it round-trips
8000    /// losslessly; its `Display` emits the payload as compact JSON.
8001    Unknown(serde_json::Value),
8002}
8003
8004discriminated_union! {
8005    ClickStackAlertChannelResponse, "type" {
8006        "email" => ClickStackAlertChannelEmail,
8007        "webhook" => ClickStackAlertChannelWebhook,
8008    }
8009}
8010
8011impl std::fmt::Display for ClickStackAlertChannelResponse {
8012    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8013        match self {
8014            Self::ClickStackAlertChannelEmail(_) => write!(f, "ClickStackAlertChannelEmail"),
8015            Self::ClickStackAlertChannelWebhook(_) => write!(f, "ClickStackAlertChannelWebhook"),
8016            Self::Unknown(s) => write!(f, "{s}"),
8017        }
8018    }
8019}
8020
8021/// `ClickStackBarChartConfig` - one of multiple variants.
8022///
8023/// Dispatched on the `configType` field (absent or non-string dispatches to the
8024/// builder variant, unless the payload carries a raw-SQL-only key); see the
8025/// `discriminated_union!` invocation below for the wire values.
8026#[derive(Debug, Clone, PartialEq, Serialize)]
8027#[serde(untagged)]
8028pub enum ClickStackBarChartConfig {
8029    ClickStackBarBuilderChartConfig(ClickStackBarBuilderChartConfig),
8030    ClickStackBarRawSqlChartConfig(ClickStackBarRawSqlChartConfig),
8031    /// Catch-all for unknown or newly-added values.
8032    ///
8033    /// Holds the raw payload as `serde_json::Value` so it round-trips
8034    /// losslessly; its `Display` emits the payload as compact JSON.
8035    Unknown(serde_json::Value),
8036}
8037
8038discriminated_union! {
8039    ClickStackBarChartConfig, "configType" {
8040        "sql" => ClickStackBarRawSqlChartConfig,
8041        none unless "connectionId" | "sqlTemplate" => ClickStackBarBuilderChartConfig,
8042    }
8043}
8044
8045impl std::fmt::Display for ClickStackBarChartConfig {
8046    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8047        match self {
8048            Self::ClickStackBarBuilderChartConfig(_) => {
8049                write!(f, "ClickStackBarBuilderChartConfig")
8050            }
8051            Self::ClickStackBarRawSqlChartConfig(_) => write!(f, "ClickStackBarRawSqlChartConfig"),
8052            Self::Unknown(s) => write!(f, "{s}"),
8053        }
8054    }
8055}
8056
8057/// `ClickStackBarChartConfig` - one of multiple variants, in response position.
8058///
8059/// Response variant of [`ClickStackBarChartConfig`]: each arm is the all-`Option`
8060/// response variant of its request type, so a field the API drops or sends as
8061/// `null` deserializes to `None` instead of failing.
8062///
8063/// Dispatched on the `configType` field exactly as the request union is (absent
8064/// or non-string dispatches to the builder variant, unless the payload carries
8065/// a raw-SQL-only key): dispatch reads the raw JSON rather than trying each
8066/// variant's shape, so all-`Option` arms — which would match any object under
8067/// `untagged` matching — cannot misroute a payload, and the `unless` guard
8068/// keeps a raw-SQL payload with a dropped discriminator out of the total
8069/// builder arm. A payload that does not fit the variant its discriminator
8070/// selects lands in `Unknown` with the raw JSON intact.
8071///
8072/// Deliberately has no `Default`: response values are produced by
8073/// deserialization, never constructed; build a [`ClickStackBarChartConfig`] instead when
8074/// writing.
8075#[derive(Debug, Clone, PartialEq, Serialize)]
8076#[serde(untagged)]
8077pub enum ClickStackBarChartConfigResponse {
8078    ClickStackBarRawSqlChartConfig(ClickStackBarRawSqlChartConfigResponse),
8079    ClickStackBarBuilderChartConfig(ClickStackBarBuilderChartConfigResponse),
8080    /// Catch-all for unknown or newly-added values.
8081    ///
8082    /// Holds the raw payload as `serde_json::Value` so it round-trips
8083    /// losslessly; its `Display` emits the payload as compact JSON.
8084    Unknown(serde_json::Value),
8085}
8086
8087discriminated_union! {
8088    ClickStackBarChartConfigResponse, "configType" {
8089        "sql" => ClickStackBarRawSqlChartConfig,
8090        none unless "connectionId" | "sqlTemplate" => ClickStackBarBuilderChartConfig,
8091    }
8092}
8093
8094impl std::fmt::Display for ClickStackBarChartConfigResponse {
8095    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8096        match self {
8097            Self::ClickStackBarRawSqlChartConfig(_) => write!(f, "ClickStackBarRawSqlChartConfig"),
8098            Self::ClickStackBarBuilderChartConfig(_) => {
8099                write!(f, "ClickStackBarBuilderChartConfig")
8100            }
8101            Self::Unknown(s) => write!(f, "{s}"),
8102        }
8103    }
8104}
8105
8106/// `ClickStackCategoricalBarChartConfig` - one of multiple variants.
8107///
8108/// Dispatched on the `configType` field (absent or non-string dispatches to the
8109/// builder variant, unless the payload carries a raw-SQL-only key); see the
8110/// `discriminated_union!` invocation below for the wire values.
8111#[derive(Debug, Clone, PartialEq, Serialize)]
8112#[serde(untagged)]
8113pub enum ClickStackCategoricalBarChartConfig {
8114    ClickStackCategoricalBarBuilderChartConfig(ClickStackCategoricalBarBuilderChartConfig),
8115    ClickStackCategoricalBarRawSqlChartConfig(ClickStackCategoricalBarRawSqlChartConfig),
8116    /// Catch-all for unknown or newly-added values.
8117    ///
8118    /// Holds the raw payload as `serde_json::Value` so it round-trips
8119    /// losslessly; its `Display` emits the payload as compact JSON.
8120    Unknown(serde_json::Value),
8121}
8122
8123discriminated_union! {
8124    ClickStackCategoricalBarChartConfig, "configType" {
8125        "sql" => ClickStackCategoricalBarRawSqlChartConfig,
8126        none unless "connectionId" | "sqlTemplate" => ClickStackCategoricalBarBuilderChartConfig,
8127    }
8128}
8129
8130impl Default for ClickStackCategoricalBarChartConfig {
8131    fn default() -> Self {
8132        Self::ClickStackCategoricalBarBuilderChartConfig(
8133            ClickStackCategoricalBarBuilderChartConfig::default(),
8134        )
8135    }
8136}
8137
8138impl std::fmt::Display for ClickStackCategoricalBarChartConfig {
8139    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8140        match self {
8141            Self::ClickStackCategoricalBarBuilderChartConfig(_) => {
8142                write!(f, "ClickStackCategoricalBarBuilderChartConfig")
8143            }
8144            Self::ClickStackCategoricalBarRawSqlChartConfig(_) => {
8145                write!(f, "ClickStackCategoricalBarRawSqlChartConfig")
8146            }
8147            Self::Unknown(s) => write!(f, "{s}"),
8148        }
8149    }
8150}
8151
8152/// `ClickStackCategoricalBarChartConfig` - one of multiple variants, in response position.
8153///
8154/// Response variant of [`ClickStackCategoricalBarChartConfig`]: each arm is the all-`Option`
8155/// response variant of its request type, so a field the API drops or sends as
8156/// `null` deserializes to `None` instead of failing.
8157///
8158/// Dispatched on the `configType` field exactly as the request union is (absent
8159/// or non-string dispatches to the builder variant, unless the payload carries
8160/// a raw-SQL-only key): dispatch reads the raw JSON rather than trying each
8161/// variant's shape, so all-`Option` arms — which would match any object under
8162/// `untagged` matching — cannot misroute a payload, and the `unless` guard
8163/// keeps a raw-SQL payload with a dropped discriminator out of the total
8164/// builder arm. A payload that does not fit the variant its discriminator
8165/// selects lands in `Unknown` with the raw JSON intact.
8166///
8167/// Deliberately has no `Default`: response values are produced by
8168/// deserialization, never constructed; build a [`ClickStackCategoricalBarChartConfig`] instead when
8169/// writing.
8170#[derive(Debug, Clone, PartialEq, Serialize)]
8171#[serde(untagged)]
8172pub enum ClickStackCategoricalBarChartConfigResponse {
8173    ClickStackCategoricalBarRawSqlChartConfig(ClickStackCategoricalBarRawSqlChartConfigResponse),
8174    ClickStackCategoricalBarBuilderChartConfig(ClickStackCategoricalBarBuilderChartConfigResponse),
8175    /// Catch-all for unknown or newly-added values.
8176    ///
8177    /// Holds the raw payload as `serde_json::Value` so it round-trips
8178    /// losslessly; its `Display` emits the payload as compact JSON.
8179    Unknown(serde_json::Value),
8180}
8181
8182discriminated_union! {
8183    ClickStackCategoricalBarChartConfigResponse, "configType" {
8184        "sql" => ClickStackCategoricalBarRawSqlChartConfig,
8185        none unless "connectionId" | "sqlTemplate" => ClickStackCategoricalBarBuilderChartConfig,
8186    }
8187}
8188
8189impl std::fmt::Display for ClickStackCategoricalBarChartConfigResponse {
8190    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8191        match self {
8192            Self::ClickStackCategoricalBarRawSqlChartConfig(_) => {
8193                write!(f, "ClickStackCategoricalBarRawSqlChartConfig")
8194            }
8195            Self::ClickStackCategoricalBarBuilderChartConfig(_) => {
8196                write!(f, "ClickStackCategoricalBarBuilderChartConfig")
8197            }
8198            Self::Unknown(s) => write!(f, "{s}"),
8199        }
8200    }
8201}
8202
8203/// `ClickStackDashboardChartSeries` - one of multiple variants.
8204///
8205/// Dispatched on the `type` field; see the `discriminated_union!`
8206/// invocation below for the wire values.
8207#[derive(Debug, Clone, PartialEq, Serialize)]
8208#[serde(untagged)]
8209pub enum ClickStackDashboardChartSeries {
8210    ClickStackTimeChartSeries(ClickStackTimeChartSeries),
8211    ClickStackTableChartSeries(ClickStackTableChartSeries),
8212    ClickStackNumberChartSeries(ClickStackNumberChartSeries),
8213    ClickStackSearchChartSeries(ClickStackSearchChartSeries),
8214    ClickStackMarkdownChartSeries(ClickStackMarkdownChartSeries),
8215    /// Catch-all for unknown or newly-added values.
8216    ///
8217    /// Holds the raw payload as `serde_json::Value` so it round-trips
8218    /// losslessly; its `Display` emits the payload as compact JSON.
8219    Unknown(serde_json::Value),
8220}
8221
8222discriminated_union! {
8223    ClickStackDashboardChartSeries, "type" {
8224        "time" => ClickStackTimeChartSeries,
8225        "table" => ClickStackTableChartSeries,
8226        "number" => ClickStackNumberChartSeries,
8227        "search" => ClickStackSearchChartSeries,
8228        "markdown" => ClickStackMarkdownChartSeries,
8229    }
8230}
8231
8232impl std::fmt::Display for ClickStackDashboardChartSeries {
8233    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8234        match self {
8235            Self::ClickStackTimeChartSeries(_) => write!(f, "ClickStackTimeChartSeries"),
8236            Self::ClickStackTableChartSeries(_) => write!(f, "ClickStackTableChartSeries"),
8237            Self::ClickStackNumberChartSeries(_) => write!(f, "ClickStackNumberChartSeries"),
8238            Self::ClickStackSearchChartSeries(_) => write!(f, "ClickStackSearchChartSeries"),
8239            Self::ClickStackMarkdownChartSeries(_) => write!(f, "ClickStackMarkdownChartSeries"),
8240            Self::Unknown(s) => write!(f, "{s}"),
8241        }
8242    }
8243}
8244
8245/// `ClickStackLineChartConfig` - one of multiple variants.
8246///
8247/// Dispatched on the `configType` field (absent or non-string dispatches to the
8248/// builder variant, unless the payload carries a raw-SQL-only key); see the
8249/// `discriminated_union!` invocation below for the wire values.
8250#[derive(Debug, Clone, PartialEq, Serialize)]
8251#[serde(untagged)]
8252pub enum ClickStackLineChartConfig {
8253    ClickStackLineBuilderChartConfig(ClickStackLineBuilderChartConfig),
8254    ClickStackLineRawSqlChartConfig(ClickStackLineRawSqlChartConfig),
8255    /// Catch-all for unknown or newly-added values.
8256    ///
8257    /// Holds the raw payload as `serde_json::Value` so it round-trips
8258    /// losslessly; its `Display` emits the payload as compact JSON.
8259    Unknown(serde_json::Value),
8260}
8261
8262discriminated_union! {
8263    ClickStackLineChartConfig, "configType" {
8264        "sql" => ClickStackLineRawSqlChartConfig,
8265        none unless "connectionId" | "sqlTemplate" => ClickStackLineBuilderChartConfig,
8266    }
8267}
8268
8269impl std::fmt::Display for ClickStackLineChartConfig {
8270    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8271        match self {
8272            Self::ClickStackLineBuilderChartConfig(_) => {
8273                write!(f, "ClickStackLineBuilderChartConfig")
8274            }
8275            Self::ClickStackLineRawSqlChartConfig(_) => {
8276                write!(f, "ClickStackLineRawSqlChartConfig")
8277            }
8278            Self::Unknown(s) => write!(f, "{s}"),
8279        }
8280    }
8281}
8282
8283/// `ClickStackLineChartConfig` - one of multiple variants, in response position.
8284///
8285/// Response variant of [`ClickStackLineChartConfig`]: each arm is the all-`Option`
8286/// response variant of its request type, so a field the API drops or sends as
8287/// `null` deserializes to `None` instead of failing.
8288///
8289/// Dispatched on the `configType` field exactly as the request union is (absent
8290/// or non-string dispatches to the builder variant, unless the payload carries
8291/// a raw-SQL-only key): dispatch reads the raw JSON rather than trying each
8292/// variant's shape, so all-`Option` arms — which would match any object under
8293/// `untagged` matching — cannot misroute a payload, and the `unless` guard
8294/// keeps a raw-SQL payload with a dropped discriminator out of the total
8295/// builder arm. A payload that does not fit the variant its discriminator
8296/// selects lands in `Unknown` with the raw JSON intact.
8297///
8298/// Deliberately has no `Default`: response values are produced by
8299/// deserialization, never constructed; build a [`ClickStackLineChartConfig`] instead when
8300/// writing.
8301#[derive(Debug, Clone, PartialEq, Serialize)]
8302#[serde(untagged)]
8303pub enum ClickStackLineChartConfigResponse {
8304    ClickStackLineRawSqlChartConfig(ClickStackLineRawSqlChartConfigResponse),
8305    ClickStackLineBuilderChartConfig(ClickStackLineBuilderChartConfigResponse),
8306    /// Catch-all for unknown or newly-added values.
8307    ///
8308    /// Holds the raw payload as `serde_json::Value` so it round-trips
8309    /// losslessly; its `Display` emits the payload as compact JSON.
8310    Unknown(serde_json::Value),
8311}
8312
8313discriminated_union! {
8314    ClickStackLineChartConfigResponse, "configType" {
8315        "sql" => ClickStackLineRawSqlChartConfig,
8316        none unless "connectionId" | "sqlTemplate" => ClickStackLineBuilderChartConfig,
8317    }
8318}
8319
8320impl std::fmt::Display for ClickStackLineChartConfigResponse {
8321    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8322        match self {
8323            Self::ClickStackLineRawSqlChartConfig(_) => {
8324                write!(f, "ClickStackLineRawSqlChartConfig")
8325            }
8326            Self::ClickStackLineBuilderChartConfig(_) => {
8327                write!(f, "ClickStackLineBuilderChartConfig")
8328            }
8329            Self::Unknown(s) => write!(f, "{s}"),
8330        }
8331    }
8332}
8333
8334/// `ClickStackNumberChartConfig` - one of multiple variants.
8335///
8336/// Dispatched on the `configType` field (absent or non-string dispatches to the
8337/// builder variant, unless the payload carries a raw-SQL-only key); see the
8338/// `discriminated_union!` invocation below for the wire values.
8339#[derive(Debug, Clone, PartialEq, Serialize)]
8340#[serde(untagged)]
8341pub enum ClickStackNumberChartConfig {
8342    ClickStackNumberBuilderChartConfig(ClickStackNumberBuilderChartConfig),
8343    ClickStackNumberRawSqlChartConfig(ClickStackNumberRawSqlChartConfig),
8344    /// Catch-all for unknown or newly-added values.
8345    ///
8346    /// Holds the raw payload as `serde_json::Value` so it round-trips
8347    /// losslessly; its `Display` emits the payload as compact JSON.
8348    Unknown(serde_json::Value),
8349}
8350
8351discriminated_union! {
8352    ClickStackNumberChartConfig, "configType" {
8353        "sql" => ClickStackNumberRawSqlChartConfig,
8354        none unless "connectionId" | "sqlTemplate" => ClickStackNumberBuilderChartConfig,
8355    }
8356}
8357
8358impl std::fmt::Display for ClickStackNumberChartConfig {
8359    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8360        match self {
8361            Self::ClickStackNumberBuilderChartConfig(_) => {
8362                write!(f, "ClickStackNumberBuilderChartConfig")
8363            }
8364            Self::ClickStackNumberRawSqlChartConfig(_) => {
8365                write!(f, "ClickStackNumberRawSqlChartConfig")
8366            }
8367            Self::Unknown(s) => write!(f, "{s}"),
8368        }
8369    }
8370}
8371
8372/// `ClickStackNumberChartConfig` - one of multiple variants, in response position.
8373///
8374/// Response variant of [`ClickStackNumberChartConfig`]: each arm is the all-`Option`
8375/// response variant of its request type, so a field the API drops or sends as
8376/// `null` deserializes to `None` instead of failing.
8377///
8378/// Dispatched on the `configType` field exactly as the request union is (absent
8379/// or non-string dispatches to the builder variant, unless the payload carries
8380/// a raw-SQL-only key): dispatch reads the raw JSON rather than trying each
8381/// variant's shape, so all-`Option` arms — which would match any object under
8382/// `untagged` matching — cannot misroute a payload, and the `unless` guard
8383/// keeps a raw-SQL payload with a dropped discriminator out of the total
8384/// builder arm. A payload that does not fit the variant its discriminator
8385/// selects lands in `Unknown` with the raw JSON intact.
8386///
8387/// Deliberately has no `Default`: response values are produced by
8388/// deserialization, never constructed; build a [`ClickStackNumberChartConfig`] instead when
8389/// writing.
8390#[derive(Debug, Clone, PartialEq, Serialize)]
8391#[serde(untagged)]
8392pub enum ClickStackNumberChartConfigResponse {
8393    ClickStackNumberRawSqlChartConfig(ClickStackNumberRawSqlChartConfigResponse),
8394    ClickStackNumberBuilderChartConfig(ClickStackNumberBuilderChartConfigResponse),
8395    /// Catch-all for unknown or newly-added values.
8396    ///
8397    /// Holds the raw payload as `serde_json::Value` so it round-trips
8398    /// losslessly; its `Display` emits the payload as compact JSON.
8399    Unknown(serde_json::Value),
8400}
8401
8402discriminated_union! {
8403    ClickStackNumberChartConfigResponse, "configType" {
8404        "sql" => ClickStackNumberRawSqlChartConfig,
8405        none unless "connectionId" | "sqlTemplate" => ClickStackNumberBuilderChartConfig,
8406    }
8407}
8408
8409impl std::fmt::Display for ClickStackNumberChartConfigResponse {
8410    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8411        match self {
8412            Self::ClickStackNumberRawSqlChartConfig(_) => {
8413                write!(f, "ClickStackNumberRawSqlChartConfig")
8414            }
8415            Self::ClickStackNumberBuilderChartConfig(_) => {
8416                write!(f, "ClickStackNumberBuilderChartConfig")
8417            }
8418            Self::Unknown(s) => write!(f, "{s}"),
8419        }
8420    }
8421}
8422
8423/// `ClickStackNumberTileColorCondition` - one of multiple variants.
8424///
8425/// Dispatched on the `operator` field; see the `discriminated_union!`
8426/// invocation below for the wire values.
8427#[derive(Debug, Clone, PartialEq, Serialize)]
8428#[serde(untagged)]
8429pub enum ClickStackNumberTileColorCondition {
8430    ClickStackNumericColorCondition(ClickStackNumericColorCondition),
8431    ClickStackBetweenColorCondition(ClickStackBetweenColorCondition),
8432    ClickStackEqualityColorCondition(ClickStackEqualityColorCondition),
8433    /// Catch-all for unknown or newly-added values.
8434    ///
8435    /// Holds the raw payload as `serde_json::Value` so it round-trips
8436    /// losslessly; its `Display` emits the payload as compact JSON.
8437    Unknown(serde_json::Value),
8438}
8439
8440discriminated_union! {
8441    ClickStackNumberTileColorCondition, "operator" {
8442        "gt" | "gte" | "lt" | "lte" => ClickStackNumericColorCondition,
8443        "between" => ClickStackBetweenColorCondition,
8444        "eq" | "neq" => ClickStackEqualityColorCondition,
8445    }
8446}
8447
8448impl std::fmt::Display for ClickStackNumberTileColorCondition {
8449    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8450        match self {
8451            Self::ClickStackNumericColorCondition(_) => {
8452                write!(f, "ClickStackNumericColorCondition")
8453            }
8454            Self::ClickStackBetweenColorCondition(_) => {
8455                write!(f, "ClickStackBetweenColorCondition")
8456            }
8457            Self::ClickStackEqualityColorCondition(_) => {
8458                write!(f, "ClickStackEqualityColorCondition")
8459            }
8460            Self::Unknown(s) => write!(f, "{s}"),
8461        }
8462    }
8463}
8464
8465/// `ClickStackNumberTileColorCondition` - one of multiple variants, in response position.
8466///
8467/// Response variant of [`ClickStackNumberTileColorCondition`]: each arm is the all-`Option`
8468/// response variant of its request type, so a field the API drops or sends as
8469/// `null` deserializes to `None` instead of failing.
8470///
8471/// Dispatched on the `operator` field, exactly as the request union is: dispatch
8472/// reads the raw JSON rather than trying each variant's shape, so all-`Option`
8473/// arms — which would match any object under `untagged` matching — cannot
8474/// misroute a payload. A `operator` this crate does not know, or a payload that
8475/// does not fit the variant its `operator` selects, lands in `Unknown` with the
8476/// raw JSON intact.
8477///
8478/// Deliberately has no `Default`: every arm's default would serialize to `{}`,
8479/// which carries no `operator` and so would not deserialize back to the same
8480/// variant. Build a [`ClickStackNumberTileColorCondition`] instead when writing.
8481#[derive(Debug, Clone, PartialEq, Serialize)]
8482#[serde(untagged)]
8483pub enum ClickStackNumberTileColorConditionResponse {
8484    ClickStackNumericColorCondition(ClickStackNumericColorConditionResponse),
8485    ClickStackBetweenColorCondition(ClickStackBetweenColorConditionResponse),
8486    ClickStackEqualityColorCondition(ClickStackEqualityColorConditionResponse),
8487    /// Catch-all for unknown or newly-added values.
8488    ///
8489    /// Holds the raw payload as `serde_json::Value` so it round-trips
8490    /// losslessly; its `Display` emits the payload as compact JSON.
8491    Unknown(serde_json::Value),
8492}
8493
8494discriminated_union! {
8495    ClickStackNumberTileColorConditionResponse, "operator" {
8496        "gt" | "gte" | "lt" | "lte" => ClickStackNumericColorCondition,
8497        "between" => ClickStackBetweenColorCondition,
8498        "eq" | "neq" => ClickStackEqualityColorCondition,
8499    }
8500}
8501
8502impl std::fmt::Display for ClickStackNumberTileColorConditionResponse {
8503    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8504        match self {
8505            Self::ClickStackNumericColorCondition(_) => {
8506                write!(f, "ClickStackNumericColorCondition")
8507            }
8508            Self::ClickStackBetweenColorCondition(_) => {
8509                write!(f, "ClickStackBetweenColorCondition")
8510            }
8511            Self::ClickStackEqualityColorCondition(_) => {
8512                write!(f, "ClickStackEqualityColorCondition")
8513            }
8514            Self::Unknown(s) => write!(f, "{s}"),
8515        }
8516    }
8517}
8518
8519/// `ClickStackOnClick` - one of multiple variants.
8520///
8521/// Dispatched on the `type` field; see the `discriminated_union!`
8522/// invocation below for the wire values.
8523#[derive(Debug, Clone, PartialEq, Serialize)]
8524#[serde(untagged)]
8525pub enum ClickStackOnClick {
8526    ClickStackOnClickSearch(ClickStackOnClickSearch),
8527    ClickStackOnClickDashboard(ClickStackOnClickDashboard),
8528    ClickStackOnClickExternal(ClickStackOnClickExternal),
8529    /// Catch-all for unknown or newly-added values.
8530    ///
8531    /// Holds the raw payload as `serde_json::Value` so it round-trips
8532    /// losslessly; its `Display` emits the payload as compact JSON.
8533    Unknown(serde_json::Value),
8534}
8535
8536discriminated_union! {
8537    ClickStackOnClick, "type" {
8538        "search" => ClickStackOnClickSearch,
8539        "dashboard" => ClickStackOnClickDashboard,
8540        "external" => ClickStackOnClickExternal,
8541    }
8542}
8543
8544impl Default for ClickStackOnClick {
8545    fn default() -> Self {
8546        Self::Unknown(serde_json::Value::Null)
8547    }
8548}
8549
8550impl std::fmt::Display for ClickStackOnClick {
8551    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8552        match self {
8553            Self::ClickStackOnClickSearch(_) => write!(f, "ClickStackOnClickSearch"),
8554            Self::ClickStackOnClickDashboard(_) => write!(f, "ClickStackOnClickDashboard"),
8555            Self::ClickStackOnClickExternal(_) => write!(f, "ClickStackOnClickExternal"),
8556            Self::Unknown(s) => write!(f, "{s}"),
8557        }
8558    }
8559}
8560
8561/// `ClickStackOnClick` - one of multiple variants, in response position.
8562///
8563/// Response variant of [`ClickStackOnClick`]: each arm is the all-`Option`
8564/// response variant of its request type, so a field the API drops or sends as
8565/// `null` deserializes to `None` instead of failing.
8566///
8567/// Dispatched on the `type` field, exactly as the request union is: dispatch
8568/// reads the raw JSON rather than trying each variant's shape, so all-`Option`
8569/// arms — which would match any object under `untagged` matching — cannot
8570/// misroute a payload. A `type` this crate does not know, or a payload that
8571/// does not fit the variant its `type` selects, lands in `Unknown` with the
8572/// raw JSON intact.
8573///
8574/// Deliberately has no `Default`: every arm's default would serialize to `{}`,
8575/// which carries no `type` and so would not deserialize back to the same
8576/// variant. Build a [`ClickStackOnClick`] instead when writing.
8577#[derive(Debug, Clone, PartialEq, Serialize)]
8578#[serde(untagged)]
8579pub enum ClickStackOnClickResponse {
8580    ClickStackOnClickSearch(ClickStackOnClickSearchResponse),
8581    ClickStackOnClickDashboard(ClickStackOnClickDashboardResponse),
8582    ClickStackOnClickExternal(ClickStackOnClickExternalResponse),
8583    /// Catch-all for unknown or newly-added values.
8584    ///
8585    /// Holds the raw payload as `serde_json::Value` so it round-trips
8586    /// losslessly; its `Display` emits the payload as compact JSON.
8587    Unknown(serde_json::Value),
8588}
8589
8590discriminated_union! {
8591    ClickStackOnClickResponse, "type" {
8592        "search" => ClickStackOnClickSearch,
8593        "dashboard" => ClickStackOnClickDashboard,
8594        "external" => ClickStackOnClickExternal,
8595    }
8596}
8597
8598impl std::fmt::Display for ClickStackOnClickResponse {
8599    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8600        match self {
8601            Self::ClickStackOnClickSearch(_) => write!(f, "ClickStackOnClickSearch"),
8602            Self::ClickStackOnClickDashboard(_) => write!(f, "ClickStackOnClickDashboard"),
8603            Self::ClickStackOnClickExternal(_) => write!(f, "ClickStackOnClickExternal"),
8604            Self::Unknown(s) => write!(f, "{s}"),
8605        }
8606    }
8607}
8608
8609/// `ClickStackOnClickTarget` - one of multiple variants.
8610///
8611/// Dispatched on the `mode` field; see the `discriminated_union!`
8612/// invocation below for the wire values.
8613#[derive(Debug, Clone, PartialEq, Serialize)]
8614#[serde(untagged)]
8615pub enum ClickStackOnClickTarget {
8616    ClickStackOnClickTargetIdVariant(ClickStackOnClickTargetIdVariant),
8617    ClickStackOnClickTargetTemplateVariant(ClickStackOnClickTargetTemplateVariant),
8618    /// Catch-all for unknown or newly-added values.
8619    ///
8620    /// Holds the raw payload as `serde_json::Value` so it round-trips
8621    /// losslessly; its `Display` emits the payload as compact JSON.
8622    Unknown(serde_json::Value),
8623}
8624
8625discriminated_union! {
8626    ClickStackOnClickTarget, "mode" {
8627        "id" => ClickStackOnClickTargetIdVariant,
8628        "template" => ClickStackOnClickTargetTemplateVariant,
8629    }
8630}
8631
8632impl Default for ClickStackOnClickTarget {
8633    fn default() -> Self {
8634        Self::Unknown(serde_json::Value::Null)
8635    }
8636}
8637
8638impl std::fmt::Display for ClickStackOnClickTarget {
8639    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8640        match self {
8641            Self::ClickStackOnClickTargetIdVariant(_) => {
8642                write!(f, "ClickStackOnClickTargetIdVariant")
8643            }
8644            Self::ClickStackOnClickTargetTemplateVariant(_) => {
8645                write!(f, "ClickStackOnClickTargetTemplateVariant")
8646            }
8647            Self::Unknown(s) => write!(f, "{s}"),
8648        }
8649    }
8650}
8651
8652/// `ClickStackOnClickTarget` - one of multiple variants, in response position.
8653///
8654/// Response variant of [`ClickStackOnClickTarget`]: each arm is the all-`Option`
8655/// response variant of its request type, so a field the API drops or sends as
8656/// `null` deserializes to `None` instead of failing.
8657///
8658/// Dispatched on the `mode` field, exactly as the request union is: dispatch
8659/// reads the raw JSON rather than trying each variant's shape, so all-`Option`
8660/// arms — which would match any object under `untagged` matching — cannot
8661/// misroute a payload. A `mode` this crate does not know, or a payload that
8662/// does not fit the variant its `mode` selects, lands in `Unknown` with the
8663/// raw JSON intact.
8664///
8665/// Deliberately has no `Default`: every arm's default would serialize to `{}`,
8666/// which carries no `mode` and so would not deserialize back to the same
8667/// variant. Build a [`ClickStackOnClickTarget`] instead when writing.
8668#[derive(Debug, Clone, PartialEq, Serialize)]
8669#[serde(untagged)]
8670pub enum ClickStackOnClickTargetResponse {
8671    ClickStackOnClickTargetIdVariant(ClickStackOnClickTargetIdVariantResponse),
8672    ClickStackOnClickTargetTemplateVariant(ClickStackOnClickTargetTemplateVariantResponse),
8673    /// Catch-all for unknown or newly-added values.
8674    ///
8675    /// Holds the raw payload as `serde_json::Value` so it round-trips
8676    /// losslessly; its `Display` emits the payload as compact JSON.
8677    Unknown(serde_json::Value),
8678}
8679
8680discriminated_union! {
8681    ClickStackOnClickTargetResponse, "mode" {
8682        "id" => ClickStackOnClickTargetIdVariant,
8683        "template" => ClickStackOnClickTargetTemplateVariant,
8684    }
8685}
8686
8687impl std::fmt::Display for ClickStackOnClickTargetResponse {
8688    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8689        match self {
8690            Self::ClickStackOnClickTargetIdVariant(_) => {
8691                write!(f, "ClickStackOnClickTargetIdVariant")
8692            }
8693            Self::ClickStackOnClickTargetTemplateVariant(_) => {
8694                write!(f, "ClickStackOnClickTargetTemplateVariant")
8695            }
8696            Self::Unknown(s) => write!(f, "{s}"),
8697        }
8698    }
8699}
8700
8701/// `ClickStackPieChartConfig` - one of multiple variants.
8702///
8703/// Dispatched on the `configType` field (absent or non-string dispatches to the
8704/// builder variant, unless the payload carries a raw-SQL-only key); see the
8705/// `discriminated_union!` invocation below for the wire values.
8706#[derive(Debug, Clone, PartialEq, Serialize)]
8707#[serde(untagged)]
8708pub enum ClickStackPieChartConfig {
8709    ClickStackPieBuilderChartConfig(ClickStackPieBuilderChartConfig),
8710    ClickStackPieRawSqlChartConfig(ClickStackPieRawSqlChartConfig),
8711    /// Catch-all for unknown or newly-added values.
8712    ///
8713    /// Holds the raw payload as `serde_json::Value` so it round-trips
8714    /// losslessly; its `Display` emits the payload as compact JSON.
8715    Unknown(serde_json::Value),
8716}
8717
8718discriminated_union! {
8719    ClickStackPieChartConfig, "configType" {
8720        "sql" => ClickStackPieRawSqlChartConfig,
8721        none unless "connectionId" | "sqlTemplate" => ClickStackPieBuilderChartConfig,
8722    }
8723}
8724
8725impl std::fmt::Display for ClickStackPieChartConfig {
8726    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8727        match self {
8728            Self::ClickStackPieBuilderChartConfig(_) => {
8729                write!(f, "ClickStackPieBuilderChartConfig")
8730            }
8731            Self::ClickStackPieRawSqlChartConfig(_) => write!(f, "ClickStackPieRawSqlChartConfig"),
8732            Self::Unknown(s) => write!(f, "{s}"),
8733        }
8734    }
8735}
8736
8737/// `ClickStackPieChartConfig` - one of multiple variants, in response position.
8738///
8739/// Response variant of [`ClickStackPieChartConfig`]: each arm is the all-`Option`
8740/// response variant of its request type, so a field the API drops or sends as
8741/// `null` deserializes to `None` instead of failing.
8742///
8743/// Dispatched on the `configType` field exactly as the request union is (absent
8744/// or non-string dispatches to the builder variant, unless the payload carries
8745/// a raw-SQL-only key): dispatch reads the raw JSON rather than trying each
8746/// variant's shape, so all-`Option` arms — which would match any object under
8747/// `untagged` matching — cannot misroute a payload, and the `unless` guard
8748/// keeps a raw-SQL payload with a dropped discriminator out of the total
8749/// builder arm. A payload that does not fit the variant its discriminator
8750/// selects lands in `Unknown` with the raw JSON intact.
8751///
8752/// Deliberately has no `Default`: response values are produced by
8753/// deserialization, never constructed; build a [`ClickStackPieChartConfig`] instead when
8754/// writing.
8755#[derive(Debug, Clone, PartialEq, Serialize)]
8756#[serde(untagged)]
8757pub enum ClickStackPieChartConfigResponse {
8758    ClickStackPieRawSqlChartConfig(ClickStackPieRawSqlChartConfigResponse),
8759    ClickStackPieBuilderChartConfig(ClickStackPieBuilderChartConfigResponse),
8760    /// Catch-all for unknown or newly-added values.
8761    ///
8762    /// Holds the raw payload as `serde_json::Value` so it round-trips
8763    /// losslessly; its `Display` emits the payload as compact JSON.
8764    Unknown(serde_json::Value),
8765}
8766
8767discriminated_union! {
8768    ClickStackPieChartConfigResponse, "configType" {
8769        "sql" => ClickStackPieRawSqlChartConfig,
8770        none unless "connectionId" | "sqlTemplate" => ClickStackPieBuilderChartConfig,
8771    }
8772}
8773
8774impl std::fmt::Display for ClickStackPieChartConfigResponse {
8775    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8776        match self {
8777            Self::ClickStackPieRawSqlChartConfig(_) => write!(f, "ClickStackPieRawSqlChartConfig"),
8778            Self::ClickStackPieBuilderChartConfig(_) => {
8779                write!(f, "ClickStackPieBuilderChartConfig")
8780            }
8781            Self::Unknown(s) => write!(f, "{s}"),
8782        }
8783    }
8784}
8785
8786/// `ClickStackSource` - one of multiple variants.
8787///
8788/// Dispatched on the `kind` field; see the `discriminated_union!`
8789/// invocation below for the wire values.
8790#[derive(Debug, Clone, PartialEq, Serialize)]
8791#[serde(untagged)]
8792pub enum ClickStackSource {
8793    ClickStackLogSource(ClickStackLogSource),
8794    ClickStackTraceSource(ClickStackTraceSource),
8795    ClickStackMetricSource(ClickStackMetricSource),
8796    ClickStackSessionSource(ClickStackSessionSource),
8797    ClickStackPromqlSource(ClickStackPromqlSource),
8798    /// Catch-all for unknown or newly-added values.
8799    ///
8800    /// Holds the raw payload as `serde_json::Value` so it round-trips
8801    /// losslessly; its `Display` emits the payload as compact JSON.
8802    Unknown(serde_json::Value),
8803}
8804
8805discriminated_union! {
8806    ClickStackSource, "kind" {
8807        "log" => ClickStackLogSource,
8808        "trace" => ClickStackTraceSource,
8809        "metric" => ClickStackMetricSource,
8810        "session" => ClickStackSessionSource,
8811        "promql" => ClickStackPromqlSource,
8812    }
8813}
8814
8815impl std::fmt::Display for ClickStackSource {
8816    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8817        match self {
8818            Self::ClickStackLogSource(_) => write!(f, "ClickStackLogSource"),
8819            Self::ClickStackTraceSource(_) => write!(f, "ClickStackTraceSource"),
8820            Self::ClickStackMetricSource(_) => write!(f, "ClickStackMetricSource"),
8821            Self::ClickStackSessionSource(_) => write!(f, "ClickStackSessionSource"),
8822            Self::ClickStackPromqlSource(_) => write!(f, "ClickStackPromqlSource"),
8823            Self::Unknown(s) => write!(f, "{s}"),
8824        }
8825    }
8826}
8827
8828/// `ClickStackSource` - one of multiple variants, in response position.
8829///
8830/// Response variant of [`ClickStackSource`]: each arm is the all-`Option`
8831/// response variant of its request struct, so a field the API drops or sends as
8832/// `null` deserializes to `None` instead of failing.
8833///
8834/// Dispatched on the `kind` field, exactly as the request union is: dispatch
8835/// reads the raw JSON rather than trying each variant's shape, so all-`Option`
8836/// arms — which would match any object under `untagged` matching — cannot
8837/// misroute a payload. A `kind` this crate does not know, or a payload that does
8838/// not fit the variant its `kind` selects, lands in `Unknown` with the raw JSON
8839/// intact.
8840///
8841/// Deliberately has no `Default`: every arm's default would serialize to `{}`,
8842/// which carries no `kind` and so would not deserialize back to the same
8843/// variant. Build a [`ClickStackSource`] instead when writing.
8844#[derive(Debug, Clone, PartialEq, Serialize)]
8845#[serde(untagged)]
8846pub enum ClickStackSourceResponse {
8847    ClickStackLogSource(ClickStackLogSourceResponse),
8848    ClickStackTraceSource(ClickStackTraceSourceResponse),
8849    ClickStackMetricSource(ClickStackMetricSourceResponse),
8850    ClickStackSessionSource(ClickStackSessionSourceResponse),
8851    ClickStackPromqlSource(ClickStackPromqlSourceResponse),
8852    /// Catch-all for unknown or newly-added values.
8853    ///
8854    /// Holds the raw payload as `serde_json::Value` so it round-trips
8855    /// losslessly; its `Display` emits the payload as compact JSON.
8856    Unknown(serde_json::Value),
8857}
8858
8859discriminated_union! {
8860    ClickStackSourceResponse, "kind" {
8861        "log" => ClickStackLogSource,
8862        "trace" => ClickStackTraceSource,
8863        "metric" => ClickStackMetricSource,
8864        "session" => ClickStackSessionSource,
8865        "promql" => ClickStackPromqlSource,
8866    }
8867}
8868
8869impl std::fmt::Display for ClickStackSourceResponse {
8870    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8871        match self {
8872            Self::ClickStackLogSource(_) => write!(f, "ClickStackLogSource"),
8873            Self::ClickStackTraceSource(_) => write!(f, "ClickStackTraceSource"),
8874            Self::ClickStackMetricSource(_) => write!(f, "ClickStackMetricSource"),
8875            Self::ClickStackSessionSource(_) => write!(f, "ClickStackSessionSource"),
8876            Self::ClickStackPromqlSource(_) => write!(f, "ClickStackPromqlSource"),
8877            Self::Unknown(s) => write!(f, "{s}"),
8878        }
8879    }
8880}
8881
8882/// `ClickStackTableChartConfig` - one of multiple variants.
8883///
8884/// Dispatched on the `configType` field (absent or non-string dispatches to the
8885/// builder variant, unless the payload carries a raw-SQL-only key); see the
8886/// `discriminated_union!` invocation below for the wire values.
8887#[derive(Debug, Clone, PartialEq, Serialize)]
8888#[serde(untagged)]
8889pub enum ClickStackTableChartConfig {
8890    ClickStackTableBuilderChartConfig(ClickStackTableBuilderChartConfig),
8891    ClickStackTableRawSqlChartConfig(ClickStackTableRawSqlChartConfig),
8892    /// Catch-all for unknown or newly-added values.
8893    ///
8894    /// Holds the raw payload as `serde_json::Value` so it round-trips
8895    /// losslessly; its `Display` emits the payload as compact JSON.
8896    Unknown(serde_json::Value),
8897}
8898
8899discriminated_union! {
8900    ClickStackTableChartConfig, "configType" {
8901        "sql" => ClickStackTableRawSqlChartConfig,
8902        none unless "connectionId" | "sqlTemplate" => ClickStackTableBuilderChartConfig,
8903    }
8904}
8905
8906impl std::fmt::Display for ClickStackTableChartConfig {
8907    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8908        match self {
8909            Self::ClickStackTableBuilderChartConfig(_) => {
8910                write!(f, "ClickStackTableBuilderChartConfig")
8911            }
8912            Self::ClickStackTableRawSqlChartConfig(_) => {
8913                write!(f, "ClickStackTableRawSqlChartConfig")
8914            }
8915            Self::Unknown(s) => write!(f, "{s}"),
8916        }
8917    }
8918}
8919
8920/// `ClickStackTableChartConfig` - one of multiple variants, in response position.
8921///
8922/// Response variant of [`ClickStackTableChartConfig`]: each arm is the all-`Option`
8923/// response variant of its request type, so a field the API drops or sends as
8924/// `null` deserializes to `None` instead of failing.
8925///
8926/// Dispatched on the `configType` field exactly as the request union is (absent
8927/// or non-string dispatches to the builder variant, unless the payload carries
8928/// a raw-SQL-only key): dispatch reads the raw JSON rather than trying each
8929/// variant's shape, so all-`Option` arms — which would match any object under
8930/// `untagged` matching — cannot misroute a payload, and the `unless` guard
8931/// keeps a raw-SQL payload with a dropped discriminator out of the total
8932/// builder arm. A payload that does not fit the variant its discriminator
8933/// selects lands in `Unknown` with the raw JSON intact.
8934///
8935/// Deliberately has no `Default`: response values are produced by
8936/// deserialization, never constructed; build a [`ClickStackTableChartConfig`] instead when
8937/// writing.
8938#[derive(Debug, Clone, PartialEq, Serialize)]
8939#[serde(untagged)]
8940pub enum ClickStackTableChartConfigResponse {
8941    ClickStackTableRawSqlChartConfig(ClickStackTableRawSqlChartConfigResponse),
8942    ClickStackTableBuilderChartConfig(ClickStackTableBuilderChartConfigResponse),
8943    /// Catch-all for unknown or newly-added values.
8944    ///
8945    /// Holds the raw payload as `serde_json::Value` so it round-trips
8946    /// losslessly; its `Display` emits the payload as compact JSON.
8947    Unknown(serde_json::Value),
8948}
8949
8950discriminated_union! {
8951    ClickStackTableChartConfigResponse, "configType" {
8952        "sql" => ClickStackTableRawSqlChartConfig,
8953        none unless "connectionId" | "sqlTemplate" => ClickStackTableBuilderChartConfig,
8954    }
8955}
8956
8957impl std::fmt::Display for ClickStackTableChartConfigResponse {
8958    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8959        match self {
8960            Self::ClickStackTableRawSqlChartConfig(_) => {
8961                write!(f, "ClickStackTableRawSqlChartConfig")
8962            }
8963            Self::ClickStackTableBuilderChartConfig(_) => {
8964                write!(f, "ClickStackTableBuilderChartConfig")
8965            }
8966            Self::Unknown(s) => write!(f, "{s}"),
8967        }
8968    }
8969}
8970
8971/// `ClickStackTileConfig` - one of multiple variants.
8972///
8973/// Dispatched on the `displayType` field; see the `discriminated_union!`
8974/// invocation below for the wire values.
8975#[derive(Debug, Clone, PartialEq, Serialize)]
8976#[serde(untagged)]
8977pub enum ClickStackTileConfig {
8978    ClickStackCategoricalBarChartConfig(ClickStackCategoricalBarChartConfig),
8979    ClickStackLineChartConfig(ClickStackLineChartConfig),
8980    ClickStackBarChartConfig(ClickStackBarChartConfig),
8981    ClickStackTableChartConfig(ClickStackTableChartConfig),
8982    ClickStackNumberChartConfig(ClickStackNumberChartConfig),
8983    ClickStackPieChartConfig(ClickStackPieChartConfig),
8984    ClickStackHeatmapChartConfig(ClickStackHeatmapChartConfig),
8985    ClickStackSearchChartConfig(ClickStackSearchChartConfig),
8986    ClickStackEventPatternsChartConfig(ClickStackEventPatternsChartConfig),
8987    ClickStackMarkdownChartConfig(ClickStackMarkdownChartConfig),
8988    /// Catch-all for unknown or newly-added values.
8989    ///
8990    /// Holds the raw payload as `serde_json::Value` so it round-trips
8991    /// losslessly; its `Display` emits the payload as compact JSON.
8992    Unknown(serde_json::Value),
8993}
8994
8995discriminated_union! {
8996    ClickStackTileConfig, "displayType" {
8997        "line" => ClickStackLineChartConfig,
8998        "stacked_bar" => ClickStackBarChartConfig,
8999        "bar" => ClickStackCategoricalBarChartConfig,
9000        "table" => ClickStackTableChartConfig,
9001        "number" => ClickStackNumberChartConfig,
9002        "pie" => ClickStackPieChartConfig,
9003        "heatmap" => ClickStackHeatmapChartConfig,
9004        "search" => ClickStackSearchChartConfig,
9005        "event_patterns" => ClickStackEventPatternsChartConfig,
9006        "markdown" => ClickStackMarkdownChartConfig,
9007    }
9008}
9009
9010impl std::fmt::Display for ClickStackTileConfig {
9011    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
9012        match self {
9013            Self::ClickStackCategoricalBarChartConfig(_) => {
9014                write!(f, "ClickStackCategoricalBarChartConfig")
9015            }
9016            Self::ClickStackLineChartConfig(_) => write!(f, "ClickStackLineChartConfig"),
9017            Self::ClickStackBarChartConfig(_) => write!(f, "ClickStackBarChartConfig"),
9018            Self::ClickStackTableChartConfig(_) => write!(f, "ClickStackTableChartConfig"),
9019            Self::ClickStackNumberChartConfig(_) => write!(f, "ClickStackNumberChartConfig"),
9020            Self::ClickStackPieChartConfig(_) => write!(f, "ClickStackPieChartConfig"),
9021            Self::ClickStackHeatmapChartConfig(_) => write!(f, "ClickStackHeatmapChartConfig"),
9022            Self::ClickStackSearchChartConfig(_) => write!(f, "ClickStackSearchChartConfig"),
9023            Self::ClickStackEventPatternsChartConfig(_) => {
9024                write!(f, "ClickStackEventPatternsChartConfig")
9025            }
9026            Self::ClickStackMarkdownChartConfig(_) => write!(f, "ClickStackMarkdownChartConfig"),
9027            Self::Unknown(s) => write!(f, "{s}"),
9028        }
9029    }
9030}
9031
9032/// `ClickStackTileConfig` - one of multiple variants, in response position.
9033///
9034/// Response variant of [`ClickStackTileConfig`]: each arm is the all-`Option`
9035/// response variant of its request type, so a field the API drops or sends as
9036/// `null` deserializes to `None` instead of failing.
9037///
9038/// Dispatched on the `displayType` field, exactly as the request union is: dispatch
9039/// reads the raw JSON rather than trying each variant's shape, so all-`Option`
9040/// arms — which would match any object under `untagged` matching — cannot
9041/// misroute a payload. A `displayType` this crate does not know, or a payload that
9042/// does not fit the variant its `displayType` selects, lands in `Unknown` with the
9043/// raw JSON intact.
9044///
9045/// Deliberately has no `Default`: every arm's default would serialize to `{}`,
9046/// which carries no `displayType` and so would not deserialize back to the same
9047/// variant. Build a [`ClickStackTileConfig`] instead when writing.
9048#[derive(Debug, Clone, PartialEq, Serialize)]
9049#[serde(untagged)]
9050pub enum ClickStackTileConfigResponse {
9051    ClickStackLineChartConfig(ClickStackLineChartConfigResponse),
9052    ClickStackBarChartConfig(ClickStackBarChartConfigResponse),
9053    ClickStackCategoricalBarChartConfig(ClickStackCategoricalBarChartConfigResponse),
9054    ClickStackTableChartConfig(ClickStackTableChartConfigResponse),
9055    ClickStackNumberChartConfig(ClickStackNumberChartConfigResponse),
9056    ClickStackPieChartConfig(ClickStackPieChartConfigResponse),
9057    ClickStackHeatmapChartConfig(ClickStackHeatmapChartConfigResponse),
9058    ClickStackSearchChartConfig(ClickStackSearchChartConfigResponse),
9059    ClickStackEventPatternsChartConfig(ClickStackEventPatternsChartConfigResponse),
9060    ClickStackMarkdownChartConfig(ClickStackMarkdownChartConfigResponse),
9061    /// Catch-all for unknown or newly-added values.
9062    ///
9063    /// Holds the raw payload as `serde_json::Value` so it round-trips
9064    /// losslessly; its `Display` emits the payload as compact JSON.
9065    Unknown(serde_json::Value),
9066}
9067
9068discriminated_union! {
9069    ClickStackTileConfigResponse, "displayType" {
9070        "line" => ClickStackLineChartConfig,
9071        "stacked_bar" => ClickStackBarChartConfig,
9072        "bar" => ClickStackCategoricalBarChartConfig,
9073        "table" => ClickStackTableChartConfig,
9074        "number" => ClickStackNumberChartConfig,
9075        "pie" => ClickStackPieChartConfig,
9076        "heatmap" => ClickStackHeatmapChartConfig,
9077        "search" => ClickStackSearchChartConfig,
9078        "event_patterns" => ClickStackEventPatternsChartConfig,
9079        "markdown" => ClickStackMarkdownChartConfig,
9080    }
9081}
9082
9083impl std::fmt::Display for ClickStackTileConfigResponse {
9084    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
9085        match self {
9086            Self::ClickStackLineChartConfig(_) => write!(f, "ClickStackLineChartConfig"),
9087            Self::ClickStackBarChartConfig(_) => write!(f, "ClickStackBarChartConfig"),
9088            Self::ClickStackCategoricalBarChartConfig(_) => {
9089                write!(f, "ClickStackCategoricalBarChartConfig")
9090            }
9091            Self::ClickStackTableChartConfig(_) => write!(f, "ClickStackTableChartConfig"),
9092            Self::ClickStackNumberChartConfig(_) => write!(f, "ClickStackNumberChartConfig"),
9093            Self::ClickStackPieChartConfig(_) => write!(f, "ClickStackPieChartConfig"),
9094            Self::ClickStackHeatmapChartConfig(_) => write!(f, "ClickStackHeatmapChartConfig"),
9095            Self::ClickStackSearchChartConfig(_) => write!(f, "ClickStackSearchChartConfig"),
9096            Self::ClickStackEventPatternsChartConfig(_) => {
9097                write!(f, "ClickStackEventPatternsChartConfig")
9098            }
9099            Self::ClickStackMarkdownChartConfig(_) => write!(f, "ClickStackMarkdownChartConfig"),
9100            Self::Unknown(s) => write!(f, "{s}"),
9101        }
9102    }
9103}
9104
9105/// `ClickStackWebhook` - one of multiple variants.
9106///
9107/// Dispatched on the `service` field; see the `discriminated_union!`
9108/// invocation below for the wire values.
9109#[derive(Debug, Clone, PartialEq, Serialize)]
9110#[serde(untagged)]
9111pub enum ClickStackWebhook {
9112    ClickStackSlackWebhook(ClickStackSlackWebhook),
9113    ClickStackIncidentIOWebhook(ClickStackIncidentIOWebhook),
9114    ClickStackGenericWebhook(ClickStackGenericWebhook),
9115    ClickStackSlackAPIWebhook(ClickStackSlackAPIWebhook),
9116    ClickStackPagerDutyAPIWebhook(ClickStackPagerDutyAPIWebhook),
9117    /// Catch-all for unknown or newly-added values.
9118    ///
9119    /// Holds the raw payload as `serde_json::Value` so it round-trips
9120    /// losslessly; its `Display` emits the payload as compact JSON.
9121    Unknown(serde_json::Value),
9122}
9123
9124discriminated_union! {
9125    ClickStackWebhook, "service" {
9126        "slack" => ClickStackSlackWebhook,
9127        "incidentio" => ClickStackIncidentIOWebhook,
9128        "generic" => ClickStackGenericWebhook,
9129        "slack_api" => ClickStackSlackAPIWebhook,
9130        "pagerduty_api" => ClickStackPagerDutyAPIWebhook,
9131    }
9132}
9133
9134impl std::fmt::Display for ClickStackWebhook {
9135    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
9136        match self {
9137            Self::ClickStackSlackWebhook(_) => write!(f, "ClickStackSlackWebhook"),
9138            Self::ClickStackIncidentIOWebhook(_) => write!(f, "ClickStackIncidentIOWebhook"),
9139            Self::ClickStackGenericWebhook(_) => write!(f, "ClickStackGenericWebhook"),
9140            Self::ClickStackSlackAPIWebhook(_) => write!(f, "ClickStackSlackAPIWebhook"),
9141            Self::ClickStackPagerDutyAPIWebhook(_) => write!(f, "ClickStackPagerDutyAPIWebhook"),
9142            Self::Unknown(s) => write!(f, "{s}"),
9143        }
9144    }
9145}
9146
9147/// Type alias for `ClickStackCASLPermissionConditions`.
9148pub type ClickStackCASLPermissionConditions = serde_json::Value;
9149
9150/// Type alias for `ClickStackValidateDashboardResponseNormalized`.
9151pub type ClickStackValidateDashboardResponseNormalized = serde_json::Value;
9152
9153/// Type alias for `ClickStackWebhookInputHeaders`.
9154pub type ClickStackWebhookInputHeaders = std::collections::BTreeMap<String, String>;
9155
9156/// Type alias for `ClickStackWebhookInputQueryParams`.
9157pub type ClickStackWebhookInputQueryParams = std::collections::BTreeMap<String, String>;
9158
9159/// Type alias for `pgCreatedAtProperty`.
9160pub type PgCreatedAtProperty = chrono::DateTime<chrono::Utc>;
9161
9162/// Type alias for `pgIdProperty`.
9163pub type PgIdProperty = uuid::Uuid;
9164
9165/// Type alias for `pgIsPrimaryProperty`.
9166pub type PgIsPrimaryProperty = bool;
9167
9168/// Type alias for `pgNameProperty`.
9169pub type PgNameProperty = String;
9170
9171/// Type alias for `pgPassword`.
9172pub type PgPassword = String;
9173
9174/// Type alias for `pgPitrRestoreTargetProperty`.
9175pub type PgPitrRestoreTargetProperty = chrono::DateTime<chrono::Utc>;
9176
9177/// Type alias for `pgRegion`.
9178pub type PgRegion = String;
9179
9180/// Type alias for `pgStorageSize`.
9181pub type PgStorageSize = i64;
9182
9183/// Type alias for `pgTags`.
9184pub type PgTags = Vec<ResourceTagsV1>;
9185
9186/// Type alias for `pgTags` in response position, over
9187/// [`ResourceTagsV1Response`].
9188pub type PgTagsResponse = Vec<ResourceTagsV1Response>;
9189
9190/// `Activity` from the ClickHouse Cloud API.
9191#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9192pub struct Activity {
9193    #[serde(rename = "actorDetails", skip_serializing_if = "Option::is_none")]
9194    pub actor_details: Option<String>,
9195    #[serde(rename = "actorId", skip_serializing_if = "Option::is_none")]
9196    pub actor_id: Option<String>,
9197    #[serde(rename = "actorIpAddress", skip_serializing_if = "Option::is_none")]
9198    pub actor_ip_address: Option<String>,
9199    #[serde(rename = "actorType", skip_serializing_if = "Option::is_none")]
9200    pub actor_type: Option<ActivityActortype>,
9201    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
9202    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9203    #[serde(skip_serializing_if = "Option::is_none")]
9204    pub id: Option<String>,
9205    #[serde(rename = "keyUpdateType", skip_serializing_if = "Option::is_none")]
9206    pub key_update_type: Option<ActivityKeyupdatetype>,
9207    #[serde(rename = "organizationId", skip_serializing_if = "Option::is_none")]
9208    pub organization_id: Option<String>,
9209    #[serde(rename = "serviceId", skip_serializing_if = "Option::is_none")]
9210    pub service_id: Option<String>,
9211    #[serde(rename = "targetKeyId", skip_serializing_if = "Option::is_none")]
9212    pub target_key_id: Option<String>,
9213    #[serde(skip_serializing_if = "Option::is_none")]
9214    pub r#type: Option<ActivityType>,
9215    #[serde(rename = "userAgent", skip_serializing_if = "Option::is_none")]
9216    pub user_agent: Option<String>,
9217}
9218
9219/// `ApiKey` from the ClickHouse Cloud API.
9220#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9221pub struct ApiKey {
9222    #[serde(rename = "assignedRoles", skip_serializing_if = "Option::is_none")]
9223    pub assigned_roles: Option<Vec<AssignedRole>>,
9224    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
9225    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9226    #[serde(rename = "expireAt", skip_serializing_if = "Option::is_none")]
9227    pub expire_at: Option<chrono::DateTime<chrono::Utc>>,
9228    #[serde(skip_serializing_if = "Option::is_none")]
9229    pub id: Option<uuid::Uuid>,
9230    #[serde(rename = "ipAccessList", skip_serializing_if = "Option::is_none")]
9231    pub ip_access_list: Option<Vec<IpAccessListEntryResponse>>,
9232    #[serde(rename = "keySuffix", skip_serializing_if = "Option::is_none")]
9233    pub key_suffix: Option<String>,
9234    #[serde(skip_serializing_if = "Option::is_none")]
9235    pub name: Option<String>,
9236    #[cfg(feature = "deprecated-fields")]
9237    #[serde(skip_serializing_if = "Option::is_none")]
9238    pub roles: Option<Vec<String>>,
9239    #[serde(skip_serializing_if = "Option::is_none")]
9240    pub state: Option<ApiKeyState>,
9241    #[serde(rename = "usedAt", skip_serializing_if = "Option::is_none")]
9242    pub used_at: Option<chrono::DateTime<chrono::Utc>>,
9243}
9244
9245/// `ApiKeyHashData` from the ClickHouse Cloud API.
9246#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9247pub struct ApiKeyHashData {
9248    #[serde(rename = "keyIdHash")]
9249    pub key_id_hash: String,
9250    #[serde(rename = "keyIdSuffix")]
9251    pub key_id_suffix: String,
9252    #[serde(rename = "keySecretHash")]
9253    pub key_secret_hash: String,
9254}
9255
9256/// `ApiKeyPatchRequest` from the ClickHouse Cloud API.
9257#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9258pub struct ApiKeyPatchRequest {
9259    #[serde(rename = "assignedRoleIds", skip_serializing_if = "Option::is_none")]
9260    pub assigned_role_ids: Option<Vec<uuid::Uuid>>,
9261    #[serde(rename = "expireAt", skip_serializing_if = "Option::is_none")]
9262    pub expire_at: Option<chrono::DateTime<chrono::Utc>>,
9263    #[serde(rename = "ipAccessList", skip_serializing_if = "Option::is_none")]
9264    pub ip_access_list: Option<Vec<IpAccessListEntry>>,
9265    #[serde(skip_serializing_if = "Option::is_none")]
9266    pub name: Option<String>,
9267    #[cfg(feature = "deprecated-fields")]
9268    #[serde(skip_serializing_if = "Option::is_none")]
9269    pub roles: Option<Vec<String>>,
9270    #[serde(skip_serializing_if = "Option::is_none")]
9271    pub state: Option<ApiKeyPatchRequestState>,
9272}
9273
9274/// `ApiKeyPostRequest` from the ClickHouse Cloud API.
9275#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9276pub struct ApiKeyPostRequest {
9277    #[serde(rename = "assignedRoleIds")]
9278    pub assigned_role_ids: Vec<uuid::Uuid>,
9279    #[serde(rename = "expireAt", skip_serializing_if = "Option::is_none")]
9280    pub expire_at: Option<chrono::DateTime<chrono::Utc>>,
9281    #[serde(rename = "hashData", skip_serializing_if = "Option::is_none")]
9282    pub hash_data: Option<ApiKeyHashData>,
9283    #[serde(rename = "ipAccessList")]
9284    pub ip_access_list: Vec<IpAccessListEntry>,
9285    pub name: String,
9286    #[cfg(feature = "deprecated-fields")]
9287    #[serde(skip_serializing_if = "Option::is_none")]
9288    pub roles: Option<Vec<String>>,
9289    pub state: ApiKeyPostRequestState,
9290}
9291
9292/// `ApiKeyPostResponse` from the ClickHouse Cloud API.
9293#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9294pub struct ApiKeyPostResponse {
9295    #[serde(skip_serializing_if = "Option::is_none")]
9296    pub key: Option<ApiKey>,
9297    #[serde(rename = "keyId", skip_serializing_if = "Option::is_none")]
9298    pub key_id: Option<String>,
9299    #[serde(rename = "keySecret", skip_serializing_if = "Option::is_none")]
9300    pub key_secret: Option<String>,
9301}
9302
9303/// `AssignedRole` from the ClickHouse Cloud API.
9304#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9305pub struct AssignedRole {
9306    #[serde(rename = "roleId", skip_serializing_if = "Option::is_none")]
9307    pub role_id: Option<uuid::Uuid>,
9308    #[serde(rename = "roleName", skip_serializing_if = "Option::is_none")]
9309    pub role_name: Option<String>,
9310    #[serde(rename = "roleType", skip_serializing_if = "Option::is_none")]
9311    pub role_type: Option<AssignedRoleRoletype>,
9312}
9313
9314/// `AwsBackupBucket` from the ClickHouse Cloud API.
9315#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9316pub struct AwsBackupBucket {
9317    #[serde(rename = "bucketPath", skip_serializing_if = "Option::is_none")]
9318    pub bucket_path: Option<String>,
9319    #[serde(rename = "bucketProvider", skip_serializing_if = "Option::is_none")]
9320    pub bucket_provider: Option<AwsBackupBucketBucketprovider>,
9321    #[serde(rename = "iamRoleArn", skip_serializing_if = "Option::is_none")]
9322    pub iam_role_arn: Option<String>,
9323    #[serde(rename = "iamRoleSessionName", skip_serializing_if = "Option::is_none")]
9324    pub iam_role_session_name: Option<String>,
9325    #[serde(skip_serializing_if = "Option::is_none")]
9326    pub id: Option<uuid::Uuid>,
9327}
9328
9329/// `AwsBackupBucketPatchRequestV1` from the ClickHouse Cloud API.
9330#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9331pub struct AwsBackupBucketPatchRequestV1 {
9332    #[serde(rename = "bucketPath")]
9333    pub bucket_path: String,
9334    #[serde(rename = "bucketProvider")]
9335    pub bucket_provider: AwsBackupBucketPatchRequestV1Bucketprovider,
9336    #[serde(rename = "iamRoleArn")]
9337    pub iam_role_arn: String,
9338    #[serde(rename = "iamRoleSessionName", skip_serializing_if = "Option::is_none")]
9339    pub iam_role_session_name: Option<String>,
9340}
9341
9342/// `AwsBackupBucketPostRequestV1` from the ClickHouse Cloud API.
9343#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9344pub struct AwsBackupBucketPostRequestV1 {
9345    #[serde(rename = "bucketPath")]
9346    pub bucket_path: String,
9347    #[serde(rename = "bucketProvider")]
9348    pub bucket_provider: AwsBackupBucketPostRequestV1Bucketprovider,
9349    #[serde(rename = "iamRoleArn")]
9350    pub iam_role_arn: String,
9351    #[serde(rename = "iamRoleSessionName")]
9352    pub iam_role_session_name: String,
9353}
9354
9355/// `AwsBackupBucketProperties` from the ClickHouse Cloud API.
9356#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9357pub struct AwsBackupBucketProperties {
9358    #[serde(rename = "bucketPath")]
9359    pub bucket_path: String,
9360    #[serde(rename = "bucketProvider")]
9361    pub bucket_provider: AwsBackupBucketPropertiesBucketprovider,
9362    #[serde(rename = "iamRoleArn")]
9363    pub iam_role_arn: String,
9364    #[serde(rename = "iamRoleSessionName")]
9365    pub iam_role_session_name: String,
9366}
9367
9368/// `AzureBackupBucket` from the ClickHouse Cloud API.
9369#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9370pub struct AzureBackupBucket {
9371    #[serde(rename = "bucketProvider", skip_serializing_if = "Option::is_none")]
9372    pub bucket_provider: Option<AzureBackupBucketBucketprovider>,
9373    #[serde(rename = "containerName", skip_serializing_if = "Option::is_none")]
9374    pub container_name: Option<String>,
9375    #[serde(skip_serializing_if = "Option::is_none")]
9376    pub id: Option<uuid::Uuid>,
9377}
9378
9379/// `AzureBackupBucketPatchRequestV1` from the ClickHouse Cloud API.
9380#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9381pub struct AzureBackupBucketPatchRequestV1 {
9382    #[serde(rename = "bucketProvider")]
9383    pub bucket_provider: AzureBackupBucketPatchRequestV1Bucketprovider,
9384    #[serde(rename = "connectionString")]
9385    pub connection_string: String,
9386    #[serde(rename = "containerName")]
9387    pub container_name: String,
9388}
9389
9390/// `AzureBackupBucketPostRequestV1` from the ClickHouse Cloud API.
9391#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9392pub struct AzureBackupBucketPostRequestV1 {
9393    #[serde(rename = "bucketProvider")]
9394    pub bucket_provider: AzureBackupBucketPostRequestV1Bucketprovider,
9395    #[serde(rename = "connectionString")]
9396    pub connection_string: String,
9397    #[serde(rename = "containerName")]
9398    pub container_name: String,
9399}
9400
9401/// `AzureBackupBucketProperties` from the ClickHouse Cloud API.
9402#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9403pub struct AzureBackupBucketProperties {
9404    #[serde(rename = "bucketProvider")]
9405    pub bucket_provider: AzureBackupBucketPropertiesBucketprovider,
9406    #[serde(rename = "containerName")]
9407    pub container_name: String,
9408}
9409
9410/// `AzureEventHub` from the ClickHouse Cloud API.
9411#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9412pub struct AzureEventHub {
9413    #[serde(rename = "connectionString")]
9414    pub connection_string: String,
9415}
9416
9417/// `Backup` from the ClickHouse Cloud API.
9418#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9419pub struct Backup {
9420    #[serde(rename = "backupName", skip_serializing_if = "Option::is_none")]
9421    pub backup_name: Option<String>,
9422    #[serde(skip_serializing_if = "Option::is_none")]
9423    pub bucket: Option<serde_json::Value>,
9424    #[serde(rename = "durationInSeconds", skip_serializing_if = "Option::is_none")]
9425    pub duration_in_seconds: Option<f64>,
9426    #[serde(rename = "finishedAt", skip_serializing_if = "Option::is_none")]
9427    pub finished_at: Option<chrono::DateTime<chrono::Utc>>,
9428    #[serde(skip_serializing_if = "Option::is_none")]
9429    pub id: Option<uuid::Uuid>,
9430    #[serde(rename = "serviceId", skip_serializing_if = "Option::is_none")]
9431    pub service_id: Option<String>,
9432    #[serde(rename = "sizeInBytes", skip_serializing_if = "Option::is_none")]
9433    pub size_in_bytes: Option<f64>,
9434    #[serde(rename = "startedAt", skip_serializing_if = "Option::is_none")]
9435    pub started_at: Option<chrono::DateTime<chrono::Utc>>,
9436    #[serde(skip_serializing_if = "Option::is_none")]
9437    pub status: Option<BackupStatus>,
9438    #[serde(skip_serializing_if = "Option::is_none")]
9439    pub r#type: Option<BackupType>,
9440}
9441
9442/// `BackupConfiguration` from the ClickHouse Cloud API.
9443#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9444pub struct BackupConfiguration {
9445    #[serde(
9446        rename = "backupPeriodInHours",
9447        skip_serializing_if = "Option::is_none"
9448    )]
9449    pub backup_period_in_hours: Option<f64>,
9450    #[serde(
9451        rename = "backupRetentionPeriodInHours",
9452        skip_serializing_if = "Option::is_none"
9453    )]
9454    pub backup_retention_period_in_hours: Option<f64>,
9455    #[serde(rename = "backupStartTime", skip_serializing_if = "Option::is_none")]
9456    pub backup_start_time: Option<String>,
9457}
9458
9459/// `BackupConfigurationPatchRequest` from the ClickHouse Cloud API.
9460#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9461pub struct BackupConfigurationPatchRequest {
9462    #[serde(
9463        rename = "backupPeriodInHours",
9464        skip_serializing_if = "Option::is_none"
9465    )]
9466    pub backup_period_in_hours: Option<f64>,
9467    #[serde(
9468        rename = "backupRetentionPeriodInHours",
9469        skip_serializing_if = "Option::is_none"
9470    )]
9471    pub backup_retention_period_in_hours: Option<f64>,
9472    #[serde(rename = "backupStartTime", skip_serializing_if = "Option::is_none")]
9473    pub backup_start_time: Option<String>,
9474}
9475
9476/// `BasePostgresService` from the ClickHouse Cloud API.
9477#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9478pub struct BasePostgresService {
9479    #[serde(rename = "haType")]
9480    pub ha_type: PgHaType,
9481    pub name: PgNameProperty,
9482    #[serde(rename = "postgresVersion")]
9483    pub postgres_version: PgVersion,
9484    pub provider: PgProvider,
9485    pub region: PgRegion,
9486    pub size: PgSize,
9487    pub tags: PgTags,
9488}
9489
9490/// `ByocConfig` from the ClickHouse Cloud API.
9491#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9492pub struct ByocConfig {
9493    #[serde(rename = "accountName", skip_serializing_if = "Option::is_none")]
9494    pub account_name: Option<String>,
9495    #[serde(rename = "cloudProvider", skip_serializing_if = "Option::is_none")]
9496    pub cloud_provider: Option<ByocConfigCloudprovider>,
9497    #[serde(rename = "displayName", skip_serializing_if = "Option::is_none")]
9498    pub display_name: Option<String>,
9499    #[serde(skip_serializing_if = "Option::is_none")]
9500    pub id: Option<String>,
9501    #[serde(rename = "regionId", skip_serializing_if = "Option::is_none")]
9502    pub region_id: Option<ByocConfigRegionid>,
9503    #[serde(skip_serializing_if = "Option::is_none")]
9504    pub state: Option<ByocConfigState>,
9505}
9506
9507/// `ByocInfrastructurePatchRequest` from the ClickHouse Cloud API.
9508#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9509pub struct ByocInfrastructurePatchRequest {
9510    #[serde(rename = "displayName", skip_serializing_if = "Option::is_none")]
9511    pub display_name: Option<String>,
9512}
9513
9514/// `ByocInfrastructurePostRequest` from the ClickHouse Cloud API.
9515#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9516pub struct ByocInfrastructurePostRequest {
9517    #[serde(rename = "accountId")]
9518    pub account_id: String,
9519    #[serde(rename = "availabilityZoneSuffixes")]
9520    pub availability_zone_suffixes: Vec<String>,
9521    #[serde(rename = "displayName")]
9522    pub display_name: String,
9523    #[serde(rename = "regionId")]
9524    pub region_id: ByocInfrastructurePostRequestRegionid,
9525    #[serde(rename = "vpcCidrRange")]
9526    pub vpc_cidr_range: String,
9527}
9528
9529/// `ClickPipe` from the ClickHouse Cloud API.
9530#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9531pub struct ClickPipe {
9532    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
9533    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
9534    #[serde(skip_serializing_if = "Option::is_none")]
9535    pub destination: Option<ClickPipeDestination>,
9536    #[serde(rename = "fieldMappings", skip_serializing_if = "Option::is_none")]
9537    pub field_mappings: Option<Vec<ClickPipeFieldMappingResponse>>,
9538    #[serde(skip_serializing_if = "Option::is_none")]
9539    pub id: Option<uuid::Uuid>,
9540    #[serde(skip_serializing_if = "Option::is_none")]
9541    pub name: Option<String>,
9542    #[serde(skip_serializing_if = "Option::is_none")]
9543    pub scaling: Option<ClickPipeScalingResponse>,
9544    #[serde(rename = "serviceId", skip_serializing_if = "Option::is_none")]
9545    pub service_id: Option<uuid::Uuid>,
9546    #[serde(skip_serializing_if = "Option::is_none")]
9547    pub settings: Option<ClickPipeSettingsResponse>,
9548    #[serde(skip_serializing_if = "Option::is_none")]
9549    pub source: Option<ClickPipeSource>,
9550    #[serde(skip_serializing_if = "Option::is_none")]
9551    pub state: Option<ClickPipeState>,
9552    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
9553    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
9554}
9555
9556/// `ClickPipeBigQueryPipeSettings` from the ClickHouse Cloud API.
9557#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9558pub struct ClickPipeBigQueryPipeSettings {
9559    #[serde(rename = "allowNullableColumns")]
9560    pub allow_nullable_columns: bool,
9561    #[serde(rename = "initialLoadParallelism")]
9562    pub initial_load_parallelism: f64,
9563    #[serde(rename = "replicationMode")]
9564    pub replication_mode: ClickPipeBigQueryPipeSettingsReplicationmode,
9565    #[serde(rename = "snapshotNumRowsPerPartition")]
9566    pub snapshot_num_rows_per_partition: f64,
9567    #[serde(rename = "snapshotNumberOfParallelTables")]
9568    pub snapshot_number_of_parallel_tables: f64,
9569}
9570
9571/// `ClickPipeBigQueryPipeSettings` from the ClickHouse Cloud API, in response
9572/// position.
9573///
9574/// Response variant of [`ClickPipeBigQueryPipeSettings`]: every field is
9575/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
9576/// `None` instead of failing.
9577#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9578pub struct ClickPipeBigQueryPipeSettingsResponse {
9579    #[serde(
9580        rename = "allowNullableColumns",
9581        skip_serializing_if = "Option::is_none"
9582    )]
9583    pub allow_nullable_columns: Option<bool>,
9584    #[serde(
9585        rename = "initialLoadParallelism",
9586        skip_serializing_if = "Option::is_none"
9587    )]
9588    pub initial_load_parallelism: Option<f64>,
9589    #[serde(rename = "replicationMode", skip_serializing_if = "Option::is_none")]
9590    pub replication_mode: Option<ClickPipeBigQueryPipeSettingsReplicationmode>,
9591    #[serde(
9592        rename = "snapshotNumRowsPerPartition",
9593        skip_serializing_if = "Option::is_none"
9594    )]
9595    pub snapshot_num_rows_per_partition: Option<f64>,
9596    #[serde(
9597        rename = "snapshotNumberOfParallelTables",
9598        skip_serializing_if = "Option::is_none"
9599    )]
9600    pub snapshot_number_of_parallel_tables: Option<f64>,
9601}
9602
9603/// `ClickPipeBigQueryPipeTableMapping` from the ClickHouse Cloud API.
9604#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9605pub struct ClickPipeBigQueryPipeTableMapping {
9606    #[serde(rename = "excludedColumns")]
9607    pub excluded_columns: Vec<String>,
9608    #[serde(rename = "sortingKeys")]
9609    pub sorting_keys: Vec<String>,
9610    #[serde(rename = "sourceDatasetName")]
9611    pub source_dataset_name: String,
9612    #[serde(rename = "sourceTable")]
9613    pub source_table: String,
9614    #[serde(rename = "tableEngine")]
9615    pub table_engine: ClickPipeBigQueryPipeTableMappingTableengine,
9616    #[serde(rename = "targetTable")]
9617    pub target_table: String,
9618    #[serde(rename = "useCustomSortingKey")]
9619    pub use_custom_sorting_key: bool,
9620}
9621
9622/// `ClickPipeBigQueryPipeTableMapping` from the ClickHouse Cloud API, in
9623/// response position.
9624///
9625/// Response variant of [`ClickPipeBigQueryPipeTableMapping`]: every field is
9626/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
9627/// `None` instead of failing.
9628#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9629pub struct ClickPipeBigQueryPipeTableMappingResponse {
9630    #[serde(rename = "excludedColumns", skip_serializing_if = "Option::is_none")]
9631    pub excluded_columns: Option<Vec<String>>,
9632    #[serde(rename = "sortingKeys", skip_serializing_if = "Option::is_none")]
9633    pub sorting_keys: Option<Vec<String>>,
9634    #[serde(rename = "sourceDatasetName", skip_serializing_if = "Option::is_none")]
9635    pub source_dataset_name: Option<String>,
9636    #[serde(rename = "sourceTable", skip_serializing_if = "Option::is_none")]
9637    pub source_table: Option<String>,
9638    #[serde(rename = "tableEngine", skip_serializing_if = "Option::is_none")]
9639    pub table_engine: Option<ClickPipeBigQueryPipeTableMappingTableengine>,
9640    #[serde(rename = "targetTable", skip_serializing_if = "Option::is_none")]
9641    pub target_table: Option<String>,
9642    #[serde(
9643        rename = "useCustomSortingKey",
9644        skip_serializing_if = "Option::is_none"
9645    )]
9646    pub use_custom_sorting_key: Option<bool>,
9647}
9648
9649/// `ClickPipeBigQuerySource` from the ClickHouse Cloud API.
9650#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9651pub struct ClickPipeBigQuerySource {
9652    #[serde(skip_serializing_if = "Option::is_none")]
9653    pub settings: Option<ClickPipeBigQueryPipeSettingsResponse>,
9654    #[serde(
9655        rename = "snapshotStagingPath",
9656        skip_serializing_if = "Option::is_none"
9657    )]
9658    pub snapshot_staging_path: Option<String>,
9659    #[serde(rename = "tableMappings", skip_serializing_if = "Option::is_none")]
9660    pub table_mappings: Option<Vec<ClickPipeBigQueryPipeTableMappingResponse>>,
9661}
9662
9663/// `ClickPipeDestination` from the ClickHouse Cloud API.
9664#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9665pub struct ClickPipeDestination {
9666    #[serde(skip_serializing_if = "Option::is_none")]
9667    pub columns: Option<Vec<ClickPipeDestinationColumnResponse>>,
9668    #[serde(skip_serializing_if = "Option::is_none")]
9669    pub database: Option<String>,
9670    #[serde(rename = "managedTable", skip_serializing_if = "Option::is_none")]
9671    pub managed_table: Option<bool>,
9672    #[serde(skip_serializing_if = "Option::is_none")]
9673    pub table: Option<String>,
9674    #[serde(rename = "tableDefinition", skip_serializing_if = "Option::is_none")]
9675    pub table_definition: Option<ClickPipeDestinationTableDefinitionResponse>,
9676}
9677
9678/// `ClickPipeDestinationColumn` from the ClickHouse Cloud API.
9679#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9680pub struct ClickPipeDestinationColumn {
9681    pub name: String,
9682    pub r#type: String,
9683}
9684
9685/// `ClickPipeDestinationColumn` from the ClickHouse Cloud API, in response
9686/// position.
9687///
9688/// Response variant of [`ClickPipeDestinationColumn`]: every field is
9689/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
9690/// `None` instead of failing.
9691#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9692pub struct ClickPipeDestinationColumnResponse {
9693    #[serde(skip_serializing_if = "Option::is_none")]
9694    pub name: Option<String>,
9695    #[serde(skip_serializing_if = "Option::is_none")]
9696    pub r#type: Option<String>,
9697}
9698
9699/// `ClickPipeDestinationTableDefinition` from the ClickHouse Cloud API.
9700#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9701pub struct ClickPipeDestinationTableDefinition {
9702    pub engine: ClickPipeDestinationTableEngine,
9703    // API rejects empty strings / empty arrays for these keys. Spec has no
9704    // `required` array so the description-heuristic treats them as required;
9705    // skip at serialize time when unset instead of modeling as Option<T>.
9706    #[serde(rename = "partitionBy", skip_serializing_if = "String::is_empty")]
9707    pub partition_by: String,
9708    #[serde(rename = "primaryKey", skip_serializing_if = "String::is_empty")]
9709    pub primary_key: String,
9710    #[serde(rename = "sortingKey", skip_serializing_if = "Vec::is_empty")]
9711    pub sorting_key: Vec<String>,
9712}
9713
9714/// `ClickPipeDestinationTableDefinition` from the ClickHouse Cloud API, in
9715/// response position.
9716///
9717/// Response variant of [`ClickPipeDestinationTableDefinition`]: every field is
9718/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
9719/// `None` instead of failing.
9720#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9721pub struct ClickPipeDestinationTableDefinitionResponse {
9722    #[serde(skip_serializing_if = "Option::is_none")]
9723    pub engine: Option<ClickPipeDestinationTableEngineResponse>,
9724    #[serde(rename = "partitionBy", skip_serializing_if = "Option::is_none")]
9725    pub partition_by: Option<String>,
9726    #[serde(rename = "primaryKey", skip_serializing_if = "Option::is_none")]
9727    pub primary_key: Option<String>,
9728    #[serde(rename = "sortingKey", skip_serializing_if = "Option::is_none")]
9729    pub sorting_key: Option<Vec<String>>,
9730}
9731
9732/// `ClickPipeDestinationTableEngine` from the ClickHouse Cloud API.
9733#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9734pub struct ClickPipeDestinationTableEngine {
9735    // columnIds only valid for SummingMergeTree. Skip when empty to avoid API
9736    // rejection for MergeTree/ReplacingMergeTree/Null engines. Spec has no
9737    // `required` array so the heuristic treats this as required; API rejects
9738    // empty values despite that.
9739    #[serde(rename = "columnIds", skip_serializing_if = "Vec::is_empty")]
9740    pub column_ids: Vec<String>,
9741    pub r#type: ClickPipeDestinationTableEngineType,
9742    #[serde(rename = "versionColumnId", skip_serializing_if = "Option::is_none")]
9743    pub version_column_id: Option<String>,
9744}
9745
9746/// `ClickPipeDestinationTableEngine` from the ClickHouse Cloud API, in response
9747/// position.
9748///
9749/// Response variant of [`ClickPipeDestinationTableEngine`]: every field is
9750/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
9751/// `None` instead of failing.
9752#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9753pub struct ClickPipeDestinationTableEngineResponse {
9754    #[serde(rename = "columnIds", skip_serializing_if = "Option::is_none")]
9755    pub column_ids: Option<Vec<String>>,
9756    #[serde(skip_serializing_if = "Option::is_none")]
9757    pub r#type: Option<ClickPipeDestinationTableEngineType>,
9758    #[serde(rename = "versionColumnId", skip_serializing_if = "Option::is_none")]
9759    pub version_column_id: Option<String>,
9760}
9761
9762/// `ClickPipeFieldMapping` from the ClickHouse Cloud API.
9763#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9764pub struct ClickPipeFieldMapping {
9765    #[serde(rename = "destinationField")]
9766    pub destination_field: String,
9767    #[serde(rename = "sourceField")]
9768    pub source_field: String,
9769}
9770
9771/// `ClickPipeFieldMapping` from the ClickHouse Cloud API, in response position.
9772///
9773/// Response variant of [`ClickPipeFieldMapping`]: every field is `Option<T>`,
9774/// so a field the API drops or sends as `null` deserializes to `None` instead
9775/// of failing.
9776#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9777pub struct ClickPipeFieldMappingResponse {
9778    #[serde(rename = "destinationField", skip_serializing_if = "Option::is_none")]
9779    pub destination_field: Option<String>,
9780    #[serde(rename = "sourceField", skip_serializing_if = "Option::is_none")]
9781    pub source_field: Option<String>,
9782}
9783
9784/// `ClickPipeKafkaOffset` from the ClickHouse Cloud API.
9785#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9786pub struct ClickPipeKafkaOffset {
9787    pub strategy: ClickPipeKafkaOffsetStrategy,
9788    #[serde(skip_serializing_if = "Option::is_none")]
9789    pub timestamp: Option<String>,
9790}
9791
9792/// `ClickPipeKafkaOffset` from the ClickHouse Cloud API, in response position.
9793///
9794/// Response variant of [`ClickPipeKafkaOffset`]: every field is `Option<T>`, so
9795/// a field the API drops or sends as `null` deserializes to `None` instead of
9796/// failing.
9797#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9798pub struct ClickPipeKafkaOffsetResponse {
9799    #[serde(skip_serializing_if = "Option::is_none")]
9800    pub strategy: Option<ClickPipeKafkaOffsetStrategy>,
9801    #[serde(skip_serializing_if = "Option::is_none")]
9802    pub timestamp: Option<String>,
9803}
9804
9805/// `ClickPipeKafkaSchemaRegistry` from the ClickHouse Cloud API.
9806#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9807pub struct ClickPipeKafkaSchemaRegistry {
9808    #[serde(skip_serializing_if = "Option::is_none")]
9809    pub authentication: Option<ClickPipeKafkaSchemaRegistryAuthentication>,
9810    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
9811    pub ca_certificate: Option<String>,
9812    #[serde(skip_serializing_if = "Option::is_none")]
9813    pub url: Option<String>,
9814}
9815
9816/// `ClickPipeKafkaSchemaRegistryCredentials` from the ClickHouse Cloud API.
9817#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9818pub struct ClickPipeKafkaSchemaRegistryCredentials {
9819    pub password: String,
9820    pub username: String,
9821}
9822
9823/// `ClickPipeKafkaSource` from the ClickHouse Cloud API.
9824#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9825pub struct ClickPipeKafkaSource {
9826    #[serde(skip_serializing_if = "Option::is_none")]
9827    pub authentication: Option<ClickPipeKafkaSourceAuthentication>,
9828    #[serde(skip_serializing_if = "Option::is_none")]
9829    pub brokers: Option<String>,
9830    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
9831    pub ca_certificate: Option<String>,
9832    #[serde(rename = "consumerGroup", skip_serializing_if = "Option::is_none")]
9833    pub consumer_group: Option<String>,
9834    #[serde(rename = "exactlyOnce", skip_serializing_if = "Option::is_none")]
9835    pub exactly_once: Option<bool>,
9836    #[serde(skip_serializing_if = "Option::is_none")]
9837    pub format: Option<ClickPipeKafkaSourceFormat>,
9838    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
9839    pub iam_role: Option<String>,
9840    #[serde(skip_serializing_if = "Option::is_none")]
9841    pub offset: Option<ClickPipeKafkaOffsetResponse>,
9842    #[serde(
9843        rename = "reversePrivateEndpointIds",
9844        skip_serializing_if = "Option::is_none"
9845    )]
9846    pub reverse_private_endpoint_ids: Option<Vec<String>>,
9847    #[serde(rename = "schemaRegistry", skip_serializing_if = "Option::is_none")]
9848    pub schema_registry: Option<ClickPipeKafkaSchemaRegistry>,
9849    #[serde(skip_serializing_if = "Option::is_none")]
9850    pub topics: Option<String>,
9851    #[serde(skip_serializing_if = "Option::is_none")]
9852    pub r#type: Option<ClickPipeKafkaSourceType>,
9853}
9854
9855/// `ClickPipeKinesisSource` from the ClickHouse Cloud API.
9856#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9857pub struct ClickPipeKinesisSource {
9858    #[serde(skip_serializing_if = "Option::is_none")]
9859    pub authentication: Option<ClickPipeKinesisSourceAuthentication>,
9860    #[serde(skip_serializing_if = "Option::is_none")]
9861    pub format: Option<ClickPipeKinesisSourceFormat>,
9862    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
9863    pub iam_role: Option<String>,
9864    #[serde(rename = "iteratorType", skip_serializing_if = "Option::is_none")]
9865    pub iterator_type: Option<ClickPipeKinesisSourceIteratortype>,
9866    #[serde(skip_serializing_if = "Option::is_none")]
9867    pub region: Option<String>,
9868    #[serde(rename = "streamName", skip_serializing_if = "Option::is_none")]
9869    pub stream_name: Option<String>,
9870    #[serde(skip_serializing_if = "Option::is_none")]
9871    pub timestamp: Option<i64>,
9872    #[serde(rename = "useEnhancedFanOut", skip_serializing_if = "Option::is_none")]
9873    pub use_enhanced_fan_out: Option<bool>,
9874}
9875
9876/// `ClickPipeMongoDBPipeSettings` from the ClickHouse Cloud API.
9877#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9878pub struct ClickPipeMongoDBPipeSettings {
9879    #[serde(rename = "deleteOnMerge", skip_serializing_if = "Option::is_none")]
9880    pub delete_on_merge: Option<bool>,
9881    #[serde(rename = "pullBatchSize", skip_serializing_if = "Option::is_none")]
9882    pub pull_batch_size: Option<i64>,
9883    #[serde(rename = "replicationMode")]
9884    pub replication_mode: ClickPipeMongoDBPipeSettingsReplicationmode,
9885    #[serde(
9886        rename = "snapshotNumRowsPerPartition",
9887        skip_serializing_if = "Option::is_none"
9888    )]
9889    pub snapshot_num_rows_per_partition: Option<i64>,
9890    #[serde(
9891        rename = "snapshotNumberOfParallelTables",
9892        skip_serializing_if = "Option::is_none"
9893    )]
9894    pub snapshot_number_of_parallel_tables: Option<i64>,
9895    #[serde(
9896        rename = "syncIntervalSeconds",
9897        skip_serializing_if = "Option::is_none"
9898    )]
9899    pub sync_interval_seconds: Option<i64>,
9900    #[serde(
9901        rename = "useJsonNativeFormat",
9902        skip_serializing_if = "Option::is_none"
9903    )]
9904    pub use_json_native_format: Option<bool>,
9905}
9906
9907/// `ClickPipeMongoDBPipeSettings` from the ClickHouse Cloud API, in response
9908/// position.
9909///
9910/// Response variant of [`ClickPipeMongoDBPipeSettings`]: every field is
9911/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
9912/// `None` instead of failing.
9913#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9914pub struct ClickPipeMongoDBPipeSettingsResponse {
9915    #[serde(rename = "deleteOnMerge", skip_serializing_if = "Option::is_none")]
9916    pub delete_on_merge: Option<bool>,
9917    #[serde(rename = "pullBatchSize", skip_serializing_if = "Option::is_none")]
9918    pub pull_batch_size: Option<i64>,
9919    #[serde(rename = "replicationMode", skip_serializing_if = "Option::is_none")]
9920    pub replication_mode: Option<ClickPipeMongoDBPipeSettingsReplicationmode>,
9921    #[serde(
9922        rename = "snapshotNumRowsPerPartition",
9923        skip_serializing_if = "Option::is_none"
9924    )]
9925    pub snapshot_num_rows_per_partition: Option<i64>,
9926    #[serde(
9927        rename = "snapshotNumberOfParallelTables",
9928        skip_serializing_if = "Option::is_none"
9929    )]
9930    pub snapshot_number_of_parallel_tables: Option<i64>,
9931    #[serde(
9932        rename = "syncIntervalSeconds",
9933        skip_serializing_if = "Option::is_none"
9934    )]
9935    pub sync_interval_seconds: Option<i64>,
9936    #[serde(
9937        rename = "useJsonNativeFormat",
9938        skip_serializing_if = "Option::is_none"
9939    )]
9940    pub use_json_native_format: Option<bool>,
9941}
9942
9943/// `ClickPipeMongoDBPipeTableMapping` from the ClickHouse Cloud API.
9944#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9945pub struct ClickPipeMongoDBPipeTableMapping {
9946    #[serde(rename = "sourceCollection")]
9947    pub source_collection: String,
9948    #[serde(rename = "sourceDatabaseName")]
9949    pub source_database_name: String,
9950    #[serde(rename = "tableEngine", skip_serializing_if = "Option::is_none")]
9951    pub table_engine: Option<ClickPipeMongoDBPipeTableMappingTableengine>,
9952    #[serde(rename = "targetTable")]
9953    pub target_table: String,
9954}
9955
9956/// `ClickPipeMongoDBPipeTableMapping` from the ClickHouse Cloud API, in
9957/// response position.
9958///
9959/// Response variant of [`ClickPipeMongoDBPipeTableMapping`]: every field is
9960/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
9961/// `None` instead of failing.
9962#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9963pub struct ClickPipeMongoDBPipeTableMappingResponse {
9964    #[serde(rename = "sourceCollection", skip_serializing_if = "Option::is_none")]
9965    pub source_collection: Option<String>,
9966    #[serde(rename = "sourceDatabaseName", skip_serializing_if = "Option::is_none")]
9967    pub source_database_name: Option<String>,
9968    #[serde(rename = "tableEngine", skip_serializing_if = "Option::is_none")]
9969    pub table_engine: Option<ClickPipeMongoDBPipeTableMappingTableengine>,
9970    #[serde(rename = "targetTable", skip_serializing_if = "Option::is_none")]
9971    pub target_table: Option<String>,
9972}
9973
9974/// `ClickPipeMongoDBSource` from the ClickHouse Cloud API.
9975#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9976pub struct ClickPipeMongoDBSource {
9977    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
9978    pub ca_certificate: Option<String>,
9979    #[serde(rename = "disableTls", skip_serializing_if = "Option::is_none")]
9980    pub disable_tls: Option<bool>,
9981    #[serde(rename = "readPreference", skip_serializing_if = "Option::is_none")]
9982    pub read_preference: Option<ClickPipeMongoDBSourceReadpreference>,
9983    #[serde(skip_serializing_if = "Option::is_none")]
9984    pub settings: Option<ClickPipeMongoDBPipeSettingsResponse>,
9985    #[serde(
9986        rename = "skipCertVerification",
9987        skip_serializing_if = "Option::is_none"
9988    )]
9989    pub skip_cert_verification: Option<bool>,
9990    #[serde(rename = "tableMappings", skip_serializing_if = "Option::is_none")]
9991    pub table_mappings: Option<Vec<ClickPipeMongoDBPipeTableMappingResponse>>,
9992    #[serde(rename = "tlsHost", skip_serializing_if = "Option::is_none")]
9993    pub tls_host: Option<String>,
9994    #[serde(skip_serializing_if = "Option::is_none")]
9995    pub uri: Option<String>,
9996}
9997
9998/// `ClickPipeMutateBigQuerySource` from the ClickHouse Cloud API.
9999#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10000pub struct ClickPipeMutateBigQuerySource {
10001    pub credentials: ServiceAccount,
10002    pub settings: ClickPipeBigQueryPipeSettings,
10003    #[serde(rename = "snapshotStagingPath")]
10004    pub snapshot_staging_path: String,
10005    #[serde(rename = "tableMappings")]
10006    pub table_mappings: Vec<ClickPipeBigQueryPipeTableMapping>,
10007}
10008
10009/// `ClickPipeMutateDestination` from the ClickHouse Cloud API.
10010#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10011pub struct ClickPipeMutateDestination {
10012    // The spec describes `columns`, `managedTable`, `table`, and
10013    // `tableDefinition` as "Required field for all pipe types except database
10014    // pipes (Postgres, MySQL, BigQuery)" — all four must be omitted entirely
10015    // for database pipes. Modeled with skip-when-empty / Option so callers can
10016    // build a single destination type and database pipes serialize cleanly.
10017    #[serde(skip_serializing_if = "Vec::is_empty")]
10018    pub columns: Vec<ClickPipeDestinationColumn>,
10019    pub database: String,
10020    #[serde(rename = "managedTable", skip_serializing_if = "Option::is_none")]
10021    pub managed_table: Option<bool>,
10022    #[serde(skip_serializing_if = "Option::is_none")]
10023    pub roles: Option<Vec<String>>,
10024    #[serde(skip_serializing_if = "Option::is_none")]
10025    pub table: Option<String>,
10026    #[serde(rename = "tableDefinition", skip_serializing_if = "Option::is_none")]
10027    pub table_definition: Option<ClickPipeDestinationTableDefinition>,
10028}
10029
10030/// `ClickPipeMutateKafkaSchemaRegistry` from the ClickHouse Cloud API.
10031#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10032pub struct ClickPipeMutateKafkaSchemaRegistry {
10033    pub authentication: ClickPipeMutateKafkaSchemaRegistryAuthentication,
10034    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
10035    pub ca_certificate: Option<String>,
10036    pub credentials: ClickPipeKafkaSchemaRegistryCredentials,
10037    pub url: String,
10038}
10039
10040/// `ClickPipeMutateMongoDBSource` from the ClickHouse Cloud API.
10041#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10042pub struct ClickPipeMutateMongoDBSource {
10043    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
10044    pub ca_certificate: Option<String>,
10045    #[serde(skip_serializing_if = "Option::is_none")]
10046    pub credentials: Option<PLAIN>,
10047    #[serde(rename = "disableTls", skip_serializing_if = "Option::is_none")]
10048    pub disable_tls: Option<bool>,
10049    #[serde(rename = "readPreference")]
10050    pub read_preference: ClickPipeMutateMongoDBSourceReadpreference,
10051    pub settings: ClickPipeMongoDBPipeSettings,
10052    #[serde(
10053        rename = "skipCertVerification",
10054        skip_serializing_if = "Option::is_none"
10055    )]
10056    pub skip_cert_verification: Option<bool>,
10057    #[serde(rename = "tableMappings")]
10058    pub table_mappings: Vec<ClickPipeMongoDBPipeTableMapping>,
10059    #[serde(rename = "tlsHost", skip_serializing_if = "Option::is_none")]
10060    pub tls_host: Option<String>,
10061    pub uri: String,
10062}
10063
10064/// `ClickPipeMutateMySQLSource` from the ClickHouse Cloud API.
10065#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10066pub struct ClickPipeMutateMySQLSource {
10067    #[serde(skip_serializing_if = "Option::is_none")]
10068    pub authentication: Option<ClickPipeMutateMySQLSourceAuthentication>,
10069    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
10070    pub ca_certificate: Option<String>,
10071    #[serde(skip_serializing_if = "Option::is_none")]
10072    pub credentials: Option<PLAIN>,
10073    #[serde(rename = "disableTls", skip_serializing_if = "Option::is_none")]
10074    pub disable_tls: Option<bool>,
10075    pub host: String,
10076    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10077    pub iam_role: Option<String>,
10078    pub port: i64,
10079    #[serde(rename = "serverId", skip_serializing_if = "Option::is_none")]
10080    pub server_id: Option<i64>,
10081    pub settings: ClickPipeMySQLPipeSettings,
10082    #[serde(
10083        rename = "skipCertVerification",
10084        skip_serializing_if = "Option::is_none"
10085    )]
10086    pub skip_cert_verification: Option<bool>,
10087    #[serde(rename = "tableMappings")]
10088    pub table_mappings: Vec<ClickPipeMySQLPipeTableMapping>,
10089    #[serde(rename = "tlsHost", skip_serializing_if = "Option::is_none")]
10090    pub tls_host: Option<String>,
10091    #[serde(skip_serializing_if = "Option::is_none")]
10092    pub r#type: Option<ClickPipeMutateMySQLSourceType>,
10093}
10094
10095/// `ClickPipeMutatePostgresSource` from the ClickHouse Cloud API.
10096#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10097pub struct ClickPipeMutatePostgresSource {
10098    pub authentication: ClickPipeMutatePostgresSourceAuthentication,
10099    // caCertificate is `undefinedOr(isValidPEMCertificate)` server-side — sending
10100    // `""` (the bare-String default) fails PEM validation. Modeled as
10101    // `Option<String>` so callers can omit it.
10102    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
10103    pub ca_certificate: Option<String>,
10104    pub credentials: PLAIN,
10105    pub database: String,
10106    #[serde(rename = "disableTls")]
10107    pub disable_tls: bool,
10108    pub host: String,
10109    // iamRole only applies to RDS-style Postgres + IAM_ROLE auth. Spec marks
10110    // it required but the server rejects "" for Basic-auth Postgres. Modeled
10111    // as Option<String> so callers can omit it; same pattern as ca_certificate.
10112    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10113    pub iam_role: Option<String>,
10114    pub port: i64,
10115    pub settings: ClickPipePostgresPipeSettings,
10116    #[serde(rename = "skipCertVerification")]
10117    pub skip_cert_verification: bool,
10118    #[serde(rename = "tableMappings")]
10119    pub table_mappings: Vec<ClickPipePostgresPipeTableMapping>,
10120    // tlsHost is only set when the broker cert SAN doesn't match `host`.
10121    // Optional in practice; server rejects "" with PEM-style validation.
10122    #[serde(rename = "tlsHost", skip_serializing_if = "Option::is_none")]
10123    pub tls_host: Option<String>,
10124    #[serde(skip_serializing_if = "Option::is_none")]
10125    pub r#type: Option<ClickPipeMutatePostgresSourceType>,
10126}
10127
10128/// `ClickPipeMySQLPipeSettings` from the ClickHouse Cloud API.
10129#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10130pub struct ClickPipeMySQLPipeSettings {
10131    #[serde(
10132        rename = "allowNullableColumns",
10133        skip_serializing_if = "Option::is_none"
10134    )]
10135    pub allow_nullable_columns: Option<bool>,
10136    #[serde(rename = "deleteOnMerge", skip_serializing_if = "Option::is_none")]
10137    pub delete_on_merge: Option<bool>,
10138    #[serde(
10139        rename = "initialLoadParallelism",
10140        skip_serializing_if = "Option::is_none"
10141    )]
10142    pub initial_load_parallelism: Option<i64>,
10143    #[serde(rename = "pullBatchSize", skip_serializing_if = "Option::is_none")]
10144    pub pull_batch_size: Option<i64>,
10145    #[serde(
10146        rename = "replicationMechanism",
10147        skip_serializing_if = "Option::is_none"
10148    )]
10149    pub replication_mechanism: Option<ClickPipeMySQLPipeSettingsReplicationmechanism>,
10150    #[serde(rename = "replicationMode")]
10151    pub replication_mode: ClickPipeMySQLPipeSettingsReplicationmode,
10152    #[serde(
10153        rename = "snapshotNumRowsPerPartition",
10154        skip_serializing_if = "Option::is_none"
10155    )]
10156    pub snapshot_num_rows_per_partition: Option<i64>,
10157    #[serde(
10158        rename = "snapshotNumberOfParallelTables",
10159        skip_serializing_if = "Option::is_none"
10160    )]
10161    pub snapshot_number_of_parallel_tables: Option<i64>,
10162    #[serde(
10163        rename = "syncIntervalSeconds",
10164        skip_serializing_if = "Option::is_none"
10165    )]
10166    pub sync_interval_seconds: Option<i64>,
10167    #[serde(rename = "useCompression", skip_serializing_if = "Option::is_none")]
10168    pub use_compression: Option<bool>,
10169}
10170
10171/// `ClickPipeMySQLPipeSettings` from the ClickHouse Cloud API, in response
10172/// position.
10173///
10174/// Response variant of [`ClickPipeMySQLPipeSettings`]: every field is
10175/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
10176/// `None` instead of failing.
10177#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10178pub struct ClickPipeMySQLPipeSettingsResponse {
10179    #[serde(
10180        rename = "allowNullableColumns",
10181        skip_serializing_if = "Option::is_none"
10182    )]
10183    pub allow_nullable_columns: Option<bool>,
10184    #[serde(rename = "deleteOnMerge", skip_serializing_if = "Option::is_none")]
10185    pub delete_on_merge: Option<bool>,
10186    #[serde(
10187        rename = "initialLoadParallelism",
10188        skip_serializing_if = "Option::is_none"
10189    )]
10190    pub initial_load_parallelism: Option<i64>,
10191    #[serde(rename = "pullBatchSize", skip_serializing_if = "Option::is_none")]
10192    pub pull_batch_size: Option<i64>,
10193    #[serde(
10194        rename = "replicationMechanism",
10195        skip_serializing_if = "Option::is_none"
10196    )]
10197    pub replication_mechanism: Option<ClickPipeMySQLPipeSettingsReplicationmechanism>,
10198    #[serde(rename = "replicationMode", skip_serializing_if = "Option::is_none")]
10199    pub replication_mode: Option<ClickPipeMySQLPipeSettingsReplicationmode>,
10200    #[serde(
10201        rename = "snapshotNumRowsPerPartition",
10202        skip_serializing_if = "Option::is_none"
10203    )]
10204    pub snapshot_num_rows_per_partition: Option<i64>,
10205    #[serde(
10206        rename = "snapshotNumberOfParallelTables",
10207        skip_serializing_if = "Option::is_none"
10208    )]
10209    pub snapshot_number_of_parallel_tables: Option<i64>,
10210    #[serde(
10211        rename = "syncIntervalSeconds",
10212        skip_serializing_if = "Option::is_none"
10213    )]
10214    pub sync_interval_seconds: Option<i64>,
10215    #[serde(rename = "useCompression", skip_serializing_if = "Option::is_none")]
10216    pub use_compression: Option<bool>,
10217}
10218
10219/// `ClickPipeMySQLPipeTableMapping` from the ClickHouse Cloud API.
10220#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10221pub struct ClickPipeMySQLPipeTableMapping {
10222    #[serde(rename = "excludedColumns", skip_serializing_if = "Option::is_none")]
10223    pub excluded_columns: Option<Vec<String>>,
10224    #[serde(rename = "partitionKey", skip_serializing_if = "Option::is_none")]
10225    pub partition_key: Option<String>,
10226    #[serde(rename = "sortingKeys", skip_serializing_if = "Option::is_none")]
10227    pub sorting_keys: Option<Vec<String>>,
10228    #[serde(rename = "sourceSchemaName")]
10229    pub source_schema_name: String,
10230    #[serde(rename = "sourceTable")]
10231    pub source_table: String,
10232    #[serde(rename = "tableEngine", skip_serializing_if = "Option::is_none")]
10233    pub table_engine: Option<ClickPipeMySQLPipeTableMappingTableengine>,
10234    #[serde(rename = "targetTable")]
10235    pub target_table: String,
10236    #[serde(
10237        rename = "useCustomSortingKey",
10238        skip_serializing_if = "Option::is_none"
10239    )]
10240    pub use_custom_sorting_key: Option<bool>,
10241}
10242
10243/// `ClickPipeMySQLPipeTableMapping` from the ClickHouse Cloud API, in response
10244/// position.
10245///
10246/// Response variant of [`ClickPipeMySQLPipeTableMapping`]: every field is
10247/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
10248/// `None` instead of failing.
10249#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10250pub struct ClickPipeMySQLPipeTableMappingResponse {
10251    #[serde(rename = "excludedColumns", skip_serializing_if = "Option::is_none")]
10252    pub excluded_columns: Option<Vec<String>>,
10253    #[serde(rename = "partitionKey", skip_serializing_if = "Option::is_none")]
10254    pub partition_key: Option<String>,
10255    #[serde(rename = "sortingKeys", skip_serializing_if = "Option::is_none")]
10256    pub sorting_keys: Option<Vec<String>>,
10257    #[serde(rename = "sourceSchemaName", skip_serializing_if = "Option::is_none")]
10258    pub source_schema_name: Option<String>,
10259    #[serde(rename = "sourceTable", skip_serializing_if = "Option::is_none")]
10260    pub source_table: Option<String>,
10261    #[serde(rename = "tableEngine", skip_serializing_if = "Option::is_none")]
10262    pub table_engine: Option<ClickPipeMySQLPipeTableMappingTableengine>,
10263    #[serde(rename = "targetTable", skip_serializing_if = "Option::is_none")]
10264    pub target_table: Option<String>,
10265    #[serde(
10266        rename = "useCustomSortingKey",
10267        skip_serializing_if = "Option::is_none"
10268    )]
10269    pub use_custom_sorting_key: Option<bool>,
10270}
10271
10272/// `ClickPipeMySQLSource` from the ClickHouse Cloud API.
10273#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10274pub struct ClickPipeMySQLSource {
10275    #[serde(skip_serializing_if = "Option::is_none")]
10276    pub authentication: Option<ClickPipeMySQLSourceAuthentication>,
10277    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
10278    pub ca_certificate: Option<String>,
10279    #[serde(rename = "disableTls", skip_serializing_if = "Option::is_none")]
10280    pub disable_tls: Option<bool>,
10281    #[serde(skip_serializing_if = "Option::is_none")]
10282    pub host: Option<String>,
10283    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10284    pub iam_role: Option<String>,
10285    #[serde(skip_serializing_if = "Option::is_none")]
10286    pub port: Option<i64>,
10287    #[serde(rename = "serverId", skip_serializing_if = "Option::is_none")]
10288    pub server_id: Option<i64>,
10289    #[serde(skip_serializing_if = "Option::is_none")]
10290    pub settings: Option<ClickPipeMySQLPipeSettingsResponse>,
10291    #[serde(
10292        rename = "skipCertVerification",
10293        skip_serializing_if = "Option::is_none"
10294    )]
10295    pub skip_cert_verification: Option<bool>,
10296    #[serde(rename = "tableMappings", skip_serializing_if = "Option::is_none")]
10297    pub table_mappings: Option<Vec<ClickPipeMySQLPipeTableMappingResponse>>,
10298    #[serde(rename = "tlsHost", skip_serializing_if = "Option::is_none")]
10299    pub tls_host: Option<String>,
10300    #[serde(skip_serializing_if = "Option::is_none")]
10301    pub r#type: Option<ClickPipeMySQLSourceType>,
10302}
10303
10304/// `ClickPipeObjectStorageSource` from the ClickHouse Cloud API.
10305#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10306pub struct ClickPipeObjectStorageSource {
10307    #[serde(skip_serializing_if = "Option::is_none")]
10308    pub authentication: Option<ClickPipeObjectStorageSourceAuthentication>,
10309    #[serde(rename = "azureContainerName", skip_serializing_if = "Option::is_none")]
10310    pub azure_container_name: Option<String>,
10311    #[serde(skip_serializing_if = "Option::is_none")]
10312    pub compression: Option<ClickPipeObjectStorageSourceCompression>,
10313    #[serde(rename = "connectionString", skip_serializing_if = "Option::is_none")]
10314    pub connection_string: Option<String>,
10315    #[serde(skip_serializing_if = "Option::is_none")]
10316    pub delimiter: Option<String>,
10317    #[serde(skip_serializing_if = "Option::is_none")]
10318    pub format: Option<ClickPipeObjectStorageSourceFormat>,
10319    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10320    pub iam_role: Option<String>,
10321    #[serde(rename = "isContinuous", skip_serializing_if = "Option::is_none")]
10322    pub is_continuous: Option<bool>,
10323    #[serde(skip_serializing_if = "Option::is_none")]
10324    pub path: Option<String>,
10325    #[serde(rename = "queueUrl", skip_serializing_if = "Option::is_none")]
10326    pub queue_url: Option<String>,
10327    #[serde(rename = "skipInitialLoad", skip_serializing_if = "Option::is_none")]
10328    pub skip_initial_load: Option<bool>,
10329    #[serde(rename = "startAfter", skip_serializing_if = "Option::is_none")]
10330    pub start_after: Option<String>,
10331    #[serde(skip_serializing_if = "Option::is_none")]
10332    pub r#type: Option<ClickPipeObjectStorageSourceType>,
10333    #[serde(skip_serializing_if = "Option::is_none")]
10334    pub url: Option<String>,
10335}
10336
10337/// `ClickPipePatchDestination` from the ClickHouse Cloud API.
10338#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10339pub struct ClickPipePatchDestination {
10340    pub columns: Vec<ClickPipeDestinationColumn>,
10341}
10342
10343/// `ClickPipePatchKafkaSource` from the ClickHouse Cloud API.
10344#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10345pub struct ClickPipePatchKafkaSource {
10346    #[serde(skip_serializing_if = "Option::is_none")]
10347    pub authentication: Option<ClickPipePatchKafkaSourceAuthentication>,
10348    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
10349    pub ca_certificate: Option<String>,
10350    pub credentials: serde_json::Value,
10351    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10352    pub iam_role: Option<String>,
10353    #[serde(rename = "reversePrivateEndpointIds")]
10354    pub reverse_private_endpoint_ids: Vec<String>,
10355}
10356
10357/// `ClickPipePatchKinesisSource` from the ClickHouse Cloud API.
10358#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10359pub struct ClickPipePatchKinesisSource {
10360    #[serde(rename = "accessKey", skip_serializing_if = "Option::is_none")]
10361    pub access_key: Option<MskIamUser>,
10362    #[serde(skip_serializing_if = "Option::is_none")]
10363    pub authentication: Option<ClickPipePatchKinesisSourceAuthentication>,
10364    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10365    pub iam_role: Option<String>,
10366}
10367
10368/// `ClickPipePatchMongoDBPipeRemoveTableMapping` from the ClickHouse Cloud API.
10369#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10370pub struct ClickPipePatchMongoDBPipeRemoveTableMapping {
10371    #[serde(rename = "sourceCollection")]
10372    pub source_collection: Option<String>,
10373    #[serde(rename = "sourceDatabaseName")]
10374    pub source_database_name: Option<String>,
10375    #[serde(rename = "tableEngine", skip_serializing_if = "Option::is_none")]
10376    pub table_engine: Option<ClickPipePatchMongoDBPipeRemoveTableMappingTableengine>,
10377    #[serde(rename = "targetTable")]
10378    pub target_table: Option<String>,
10379}
10380
10381/// `ClickPipePatchMongoDBPipeSettings` from the ClickHouse Cloud API.
10382#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10383pub struct ClickPipePatchMongoDBPipeSettings {
10384    #[serde(rename = "pullBatchSize", skip_serializing_if = "Option::is_none")]
10385    pub pull_batch_size: Option<i64>,
10386    #[serde(
10387        rename = "syncIntervalSeconds",
10388        skip_serializing_if = "Option::is_none"
10389    )]
10390    pub sync_interval_seconds: Option<i64>,
10391}
10392
10393/// `ClickPipePatchMongoDBSource` from the ClickHouse Cloud API.
10394#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10395pub struct ClickPipePatchMongoDBSource {
10396    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
10397    pub ca_certificate: Option<String>,
10398    #[serde(skip_serializing_if = "Option::is_none")]
10399    pub credentials: Option<PLAIN>,
10400    #[serde(rename = "disableTls", skip_serializing_if = "Option::is_none")]
10401    pub disable_tls: Option<bool>,
10402    #[serde(rename = "readPreference", skip_serializing_if = "Option::is_none")]
10403    pub read_preference: Option<ClickPipePatchMongoDBSourceReadpreference>,
10404    #[serde(skip_serializing_if = "Option::is_none")]
10405    pub settings: Option<ClickPipePatchMongoDBPipeSettings>,
10406    #[serde(
10407        rename = "skipCertVerification",
10408        skip_serializing_if = "Option::is_none"
10409    )]
10410    pub skip_cert_verification: Option<bool>,
10411    #[serde(rename = "tableMappingsToAdd", skip_serializing_if = "Option::is_none")]
10412    pub table_mappings_to_add: Option<Vec<ClickPipeMongoDBPipeTableMapping>>,
10413    #[serde(
10414        rename = "tableMappingsToRemove",
10415        skip_serializing_if = "Option::is_none"
10416    )]
10417    pub table_mappings_to_remove: Option<Vec<ClickPipePatchMongoDBPipeRemoveTableMapping>>,
10418    #[serde(rename = "tlsHost", skip_serializing_if = "Option::is_none")]
10419    pub tls_host: Option<String>,
10420    pub uri: Option<String>,
10421}
10422
10423/// `ClickPipePatchMySQLPipeRemoveTableMapping` from the ClickHouse Cloud API.
10424#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10425pub struct ClickPipePatchMySQLPipeRemoveTableMapping {
10426    #[serde(rename = "partitionKey", skip_serializing_if = "Option::is_none")]
10427    pub partition_key: Option<String>,
10428    #[serde(rename = "sourceSchemaName")]
10429    pub source_schema_name: Option<String>,
10430    #[serde(rename = "sourceTable")]
10431    pub source_table: Option<String>,
10432    #[serde(rename = "tableEngine", skip_serializing_if = "Option::is_none")]
10433    pub table_engine: Option<ClickPipePatchMySQLPipeRemoveTableMappingTableengine>,
10434    #[serde(rename = "targetTable")]
10435    pub target_table: Option<String>,
10436}
10437
10438/// `ClickPipePatchMySQLPipeSettings` from the ClickHouse Cloud API.
10439#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10440pub struct ClickPipePatchMySQLPipeSettings {
10441    #[serde(rename = "pullBatchSize", skip_serializing_if = "Option::is_none")]
10442    pub pull_batch_size: Option<i64>,
10443    #[serde(
10444        rename = "syncIntervalSeconds",
10445        skip_serializing_if = "Option::is_none"
10446    )]
10447    pub sync_interval_seconds: Option<i64>,
10448    #[serde(rename = "useCompression", skip_serializing_if = "Option::is_none")]
10449    pub use_compression: Option<bool>,
10450}
10451
10452/// `ClickPipePatchMySQLSource` from the ClickHouse Cloud API.
10453#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10454pub struct ClickPipePatchMySQLSource {
10455    #[serde(skip_serializing_if = "Option::is_none")]
10456    pub authentication: Option<ClickPipePatchMySQLSourceAuthentication>,
10457    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
10458    pub ca_certificate: Option<String>,
10459    #[serde(skip_serializing_if = "Option::is_none")]
10460    pub credentials: Option<PLAIN>,
10461    #[serde(rename = "disableTls", skip_serializing_if = "Option::is_none")]
10462    pub disable_tls: Option<bool>,
10463    pub host: Option<String>,
10464    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10465    pub iam_role: Option<String>,
10466    pub port: Option<i64>,
10467    #[serde(rename = "serverId", skip_serializing_if = "Option::is_none")]
10468    pub server_id: Option<i64>,
10469    #[serde(skip_serializing_if = "Option::is_none")]
10470    pub settings: Option<ClickPipePatchMySQLPipeSettings>,
10471    #[serde(
10472        rename = "skipCertVerification",
10473        skip_serializing_if = "Option::is_none"
10474    )]
10475    pub skip_cert_verification: Option<bool>,
10476    #[serde(rename = "tableMappingsToAdd", skip_serializing_if = "Option::is_none")]
10477    pub table_mappings_to_add: Option<Vec<ClickPipeMySQLPipeTableMapping>>,
10478    #[serde(
10479        rename = "tableMappingsToRemove",
10480        skip_serializing_if = "Option::is_none"
10481    )]
10482    pub table_mappings_to_remove: Option<Vec<ClickPipePatchMySQLPipeRemoveTableMapping>>,
10483    #[serde(rename = "tlsHost", skip_serializing_if = "Option::is_none")]
10484    pub tls_host: Option<String>,
10485}
10486
10487/// `ClickPipePatchObjectStorageSource` from the ClickHouse Cloud API.
10488#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10489pub struct ClickPipePatchObjectStorageSource {
10490    #[serde(rename = "accessKey", skip_serializing_if = "Option::is_none")]
10491    pub access_key: Option<MskIamUser>,
10492    #[serde(skip_serializing_if = "Option::is_none")]
10493    pub authentication: Option<ClickPipePatchObjectStorageSourceAuthentication>,
10494    #[serde(rename = "azureContainerName", skip_serializing_if = "Option::is_none")]
10495    pub azure_container_name: Option<String>,
10496    #[serde(rename = "connectionString", skip_serializing_if = "Option::is_none")]
10497    pub connection_string: Option<String>,
10498    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10499    pub iam_role: Option<String>,
10500    #[serde(skip_serializing_if = "Option::is_none")]
10501    pub path: Option<String>,
10502    #[serde(rename = "serviceAccountKey", skip_serializing_if = "Option::is_none")]
10503    pub service_account_key: Option<String>,
10504    #[serde(rename = "skipInitialLoad", skip_serializing_if = "Option::is_none")]
10505    pub skip_initial_load: Option<bool>,
10506    #[serde(rename = "startAfter", skip_serializing_if = "Option::is_none")]
10507    pub start_after: Option<String>,
10508}
10509
10510/// `ClickPipePatchPostgresPipeRemoveTableMapping` from the ClickHouse Cloud API.
10511#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10512pub struct ClickPipePatchPostgresPipeRemoveTableMapping {
10513    #[serde(rename = "partitionByExpr", skip_serializing_if = "Option::is_none")]
10514    pub partition_by_expr: Option<String>,
10515    #[serde(rename = "partitionKey", skip_serializing_if = "Option::is_none")]
10516    pub partition_key: Option<String>,
10517    #[serde(rename = "sourceSchemaName", skip_serializing_if = "Option::is_none")]
10518    pub source_schema_name: Option<String>,
10519    #[serde(rename = "sourceTable", skip_serializing_if = "Option::is_none")]
10520    pub source_table: Option<String>,
10521    #[serde(rename = "tableEngine", skip_serializing_if = "Option::is_none")]
10522    pub table_engine: Option<ClickPipePatchPostgresPipeRemoveTableMappingTableengine>,
10523    #[serde(rename = "targetTable", skip_serializing_if = "Option::is_none")]
10524    pub target_table: Option<String>,
10525}
10526
10527/// `ClickPipePatchPostgresPipeSettings` from the ClickHouse Cloud API.
10528#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10529pub struct ClickPipePatchPostgresPipeSettings {
10530    #[serde(rename = "pullBatchSize", skip_serializing_if = "Option::is_none")]
10531    pub pull_batch_size: Option<i64>,
10532    #[serde(
10533        rename = "syncIntervalSeconds",
10534        skip_serializing_if = "Option::is_none"
10535    )]
10536    pub sync_interval_seconds: Option<i64>,
10537}
10538
10539/// `ClickPipePatchPostgresSource` from the ClickHouse Cloud API.
10540#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10541pub struct ClickPipePatchPostgresSource {
10542    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
10543    pub ca_certificate: Option<String>,
10544    pub credentials: PLAIN,
10545    #[serde(skip_serializing_if = "Option::is_none")]
10546    pub database: Option<String>,
10547    #[serde(rename = "disableTls", skip_serializing_if = "Option::is_none")]
10548    pub disable_tls: Option<bool>,
10549    #[serde(skip_serializing_if = "Option::is_none")]
10550    pub host: Option<String>,
10551    #[serde(skip_serializing_if = "Option::is_none")]
10552    pub port: Option<i64>,
10553    pub settings: ClickPipePatchPostgresPipeSettings,
10554    #[serde(
10555        rename = "skipCertVerification",
10556        skip_serializing_if = "Option::is_none"
10557    )]
10558    pub skip_cert_verification: Option<bool>,
10559    #[serde(rename = "tableMappingsToAdd")]
10560    pub table_mappings_to_add: Vec<ClickPipePostgresPipeTableMapping>,
10561    #[serde(rename = "tableMappingsToRemove")]
10562    pub table_mappings_to_remove: Vec<ClickPipePatchPostgresPipeRemoveTableMapping>,
10563    #[serde(rename = "tlsHost", skip_serializing_if = "Option::is_none")]
10564    pub tls_host: Option<String>,
10565}
10566
10567/// `ClickPipePatchPubSubSource` from the ClickHouse Cloud API.
10568#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10569pub struct ClickPipePatchPubSubSource {
10570    #[serde(rename = "ackDeadline", skip_serializing_if = "Option::is_none")]
10571    pub ack_deadline: Option<i64>,
10572    pub authentication: Option<ClickPipePatchPubSubSourceAuthentication>,
10573    #[serde(rename = "serviceAccountKey")]
10574    pub service_account_key: Option<ServiceAccount>,
10575}
10576
10577/// `ClickPipePatchRequest` from the ClickHouse Cloud API.
10578#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10579pub struct ClickPipePatchRequest {
10580    #[serde(skip_serializing_if = "Option::is_none")]
10581    pub destination: Option<ClickPipePatchDestination>,
10582    #[serde(rename = "fieldMappings", skip_serializing_if = "Option::is_none")]
10583    pub field_mappings: Option<Vec<ClickPipeFieldMapping>>,
10584    #[serde(skip_serializing_if = "Option::is_none")]
10585    pub name: Option<String>,
10586    #[serde(skip_serializing_if = "Option::is_none")]
10587    pub settings: Option<ClickPipeSettings>,
10588    #[serde(skip_serializing_if = "Option::is_none")]
10589    pub source: Option<ClickPipePatchSource>,
10590}
10591
10592/// `ClickPipePatchSource` from the ClickHouse Cloud API.
10593#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10594pub struct ClickPipePatchSource {
10595    #[serde(skip_serializing_if = "Option::is_none")]
10596    pub kafka: Option<ClickPipePatchKafkaSource>,
10597    #[serde(skip_serializing_if = "Option::is_none")]
10598    pub kinesis: Option<ClickPipePatchKinesisSource>,
10599    #[serde(skip_serializing_if = "Option::is_none")]
10600    pub mongodb: Option<ClickPipePatchMongoDBSource>,
10601    #[serde(skip_serializing_if = "Option::is_none")]
10602    pub mysql: Option<ClickPipePatchMySQLSource>,
10603    #[serde(rename = "objectStorage", skip_serializing_if = "Option::is_none")]
10604    pub object_storage: Option<ClickPipePatchObjectStorageSource>,
10605    #[serde(skip_serializing_if = "Option::is_none")]
10606    pub postgres: Option<ClickPipePatchPostgresSource>,
10607    #[serde(skip_serializing_if = "Option::is_none")]
10608    pub pubsub: Option<ClickPipePatchPubSubSource>,
10609    #[serde(rename = "validateSamples")]
10610    pub validate_samples: bool,
10611}
10612
10613/// `ClickPipePostKafkaSource` from the ClickHouse Cloud API.
10614#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10615pub struct ClickPipePostKafkaSource {
10616    pub authentication: ClickPipePostKafkaSourceAuthentication,
10617    pub brokers: String,
10618    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
10619    pub ca_certificate: Option<String>,
10620    #[serde(rename = "consumerGroup", skip_serializing_if = "Option::is_none")]
10621    pub consumer_group: Option<String>,
10622    pub credentials: serde_json::Value,
10623    #[serde(rename = "exactlyOnce", skip_serializing_if = "Option::is_none")]
10624    pub exactly_once: Option<bool>,
10625    pub format: ClickPipePostKafkaSourceFormat,
10626    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10627    pub iam_role: Option<String>,
10628    #[serde(skip_serializing_if = "Option::is_none")]
10629    pub offset: Option<ClickPipeKafkaOffset>,
10630    #[serde(rename = "reversePrivateEndpointIds")]
10631    pub reverse_private_endpoint_ids: Vec<String>,
10632    #[serde(rename = "schemaRegistry", skip_serializing_if = "Option::is_none")]
10633    pub schema_registry: Option<ClickPipeMutateKafkaSchemaRegistry>,
10634    pub topics: String,
10635    pub r#type: ClickPipePostKafkaSourceType,
10636}
10637
10638/// `ClickPipePostKinesisSource` from the ClickHouse Cloud API.
10639#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10640pub struct ClickPipePostKinesisSource {
10641    #[serde(rename = "accessKey", skip_serializing_if = "Option::is_none")]
10642    pub access_key: Option<MskIamUser>,
10643    pub authentication: ClickPipePostKinesisSourceAuthentication,
10644    pub format: ClickPipePostKinesisSourceFormat,
10645    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10646    pub iam_role: Option<String>,
10647    #[serde(rename = "iteratorType")]
10648    pub iterator_type: ClickPipePostKinesisSourceIteratortype,
10649    pub region: String,
10650    #[serde(rename = "streamName")]
10651    pub stream_name: String,
10652    #[serde(skip_serializing_if = "Option::is_none")]
10653    pub timestamp: Option<i64>,
10654    #[serde(rename = "useEnhancedFanOut", skip_serializing_if = "Option::is_none")]
10655    pub use_enhanced_fan_out: Option<bool>,
10656}
10657
10658/// `ClickPipeSchemaDiscoveryField` from the ClickHouse Cloud API.
10659#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10660pub struct ClickPipeSchemaDiscoveryField {
10661    #[serde(skip_serializing_if = "Option::is_none")]
10662    pub name: Option<String>,
10663    #[serde(skip_serializing_if = "Option::is_none")]
10664    pub r#type: Option<String>,
10665    #[serde(skip_serializing_if = "Option::is_none")]
10666    pub optional: Option<bool>,
10667}
10668
10669/// `ClickPipeSchemaDiscoveryRequest` from the ClickHouse Cloud API.
10670#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10671pub struct ClickPipeSchemaDiscoveryRequest {
10672    pub source: ClickPipeSchemaDiscoverySource,
10673}
10674
10675/// `ClickPipeSchemaDiscoveryResponse` from the ClickHouse Cloud API.
10676#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10677pub struct ClickPipeSchemaDiscoveryResponse {
10678    #[serde(skip_serializing_if = "Option::is_none")]
10679    pub fields: Option<Vec<ClickPipeSchemaDiscoveryField>>,
10680}
10681
10682/// `ClickPipeSchemaDiscoverySource` from the ClickHouse Cloud API.
10683#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10684pub struct ClickPipeSchemaDiscoverySource {
10685    #[serde(skip_serializing_if = "Option::is_none")]
10686    pub kafka: Option<ClickPipePostKafkaSource>,
10687    #[serde(skip_serializing_if = "Option::is_none")]
10688    pub kinesis: Option<ClickPipePostKinesisSource>,
10689}
10690
10691/// `ClickPipePostObjectStorageSource` from the ClickHouse Cloud API.
10692#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10693pub struct ClickPipePostObjectStorageSource {
10694    #[serde(rename = "accessKey", skip_serializing_if = "Option::is_none")]
10695    pub access_key: Option<MskIamUser>,
10696    #[serde(skip_serializing_if = "Option::is_none")]
10697    pub authentication: Option<ClickPipePostObjectStorageSourceAuthentication>,
10698    #[serde(rename = "azureContainerName", skip_serializing_if = "Option::is_none")]
10699    pub azure_container_name: Option<String>,
10700    #[serde(skip_serializing_if = "Option::is_none")]
10701    pub compression: Option<ClickPipePostObjectStorageSourceCompression>,
10702    #[serde(rename = "connectionString", skip_serializing_if = "Option::is_none")]
10703    pub connection_string: Option<String>,
10704    #[serde(skip_serializing_if = "Option::is_none")]
10705    pub delimiter: Option<String>,
10706    pub format: ClickPipePostObjectStorageSourceFormat,
10707    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10708    pub iam_role: Option<String>,
10709    #[serde(rename = "isContinuous", skip_serializing_if = "Option::is_none")]
10710    pub is_continuous: Option<bool>,
10711    #[serde(skip_serializing_if = "Option::is_none")]
10712    pub path: Option<String>,
10713    #[serde(rename = "queueUrl", skip_serializing_if = "Option::is_none")]
10714    pub queue_url: Option<String>,
10715    #[serde(rename = "serviceAccountKey", skip_serializing_if = "Option::is_none")]
10716    pub service_account_key: Option<String>,
10717    #[serde(rename = "skipInitialLoad", skip_serializing_if = "Option::is_none")]
10718    pub skip_initial_load: Option<bool>,
10719    #[serde(rename = "startAfter", skip_serializing_if = "Option::is_none")]
10720    pub start_after: Option<String>,
10721    pub r#type: ClickPipePostObjectStorageSourceType,
10722    pub url: String,
10723}
10724
10725/// `ClickPipePostPubSubSource` from the ClickHouse Cloud API.
10726#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10727pub struct ClickPipePostPubSubSource {
10728    #[serde(rename = "ackDeadline", skip_serializing_if = "Option::is_none")]
10729    pub ack_deadline: Option<i64>,
10730    pub authentication: ClickPipePostPubSubSourceAuthentication,
10731    #[serde(rename = "enableOrdering", skip_serializing_if = "Option::is_none")]
10732    pub enable_ordering: Option<bool>,
10733    #[serde(skip_serializing_if = "Option::is_none")]
10734    pub filter: Option<String>,
10735    pub format: ClickPipePostPubSubSourceFormat,
10736    #[serde(rename = "projectId")]
10737    pub project_id: String,
10738    #[serde(rename = "seekTimestamp", skip_serializing_if = "Option::is_none")]
10739    pub seek_timestamp: Option<chrono::DateTime<chrono::Utc>>,
10740    #[serde(rename = "seekType")]
10741    pub seek_type: ClickPipePostPubSubSourceSeektype,
10742    #[serde(rename = "serviceAccountKey")]
10743    pub service_account_key: ServiceAccount,
10744    pub topic: String,
10745}
10746
10747/// `ClickPipePostRequest` from the ClickHouse Cloud API.
10748#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10749pub struct ClickPipePostRequest {
10750    pub destination: ClickPipeMutateDestination,
10751    // Empty arrays rejected by some API paths and never useful on create —
10752    // skip when empty. Non-Option to match the spec description heuristic.
10753    #[serde(rename = "fieldMappings", skip_serializing_if = "Vec::is_empty")]
10754    pub field_mappings: Vec<ClickPipeFieldMapping>,
10755    pub name: String,
10756    // scaling block default-serializes as {replicas: 0, ...} which the API
10757    // rejects ("replicas: Not between 1 and 40"). Modeled as Option so the
10758    // whole block is omitted when the caller doesn't set it.
10759    #[serde(skip_serializing_if = "Option::is_none")]
10760    pub scaling: Option<ClickPipeScaling>,
10761    // settings default-serializes as `{}` which the API also rejects.
10762    #[serde(skip_serializing_if = "Option::is_none")]
10763    pub settings: Option<ClickPipeSettings>,
10764    pub source: ClickPipePostSource,
10765}
10766
10767/// `ClickPipePostSource` from the ClickHouse Cloud API.
10768#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10769pub struct ClickPipePostSource {
10770    #[serde(skip_serializing_if = "Option::is_none")]
10771    pub bigquery: Option<ClickPipeMutateBigQuerySource>,
10772    #[serde(skip_serializing_if = "Option::is_none")]
10773    pub kafka: Option<ClickPipePostKafkaSource>,
10774    #[serde(skip_serializing_if = "Option::is_none")]
10775    pub kinesis: Option<ClickPipePostKinesisSource>,
10776    #[serde(skip_serializing_if = "Option::is_none")]
10777    pub mongodb: Option<ClickPipeMutateMongoDBSource>,
10778    #[serde(skip_serializing_if = "Option::is_none")]
10779    pub mysql: Option<ClickPipeMutateMySQLSource>,
10780    #[serde(rename = "objectStorage", skip_serializing_if = "Option::is_none")]
10781    pub object_storage: Option<ClickPipePostObjectStorageSource>,
10782    #[serde(skip_serializing_if = "Option::is_none")]
10783    pub postgres: Option<ClickPipeMutatePostgresSource>,
10784    #[serde(skip_serializing_if = "Option::is_none")]
10785    pub pubsub: Option<ClickPipePostPubSubSource>,
10786    #[serde(rename = "validateSamples")]
10787    pub validate_samples: bool,
10788}
10789
10790/// `ClickPipePostgresPipeSettings` from the ClickHouse Cloud API.
10791#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10792pub struct ClickPipePostgresPipeSettings {
10793    #[serde(rename = "allowNullableColumns")]
10794    pub allow_nullable_columns: bool,
10795    #[serde(rename = "deleteOnMerge")]
10796    pub delete_on_merge: bool,
10797    #[serde(rename = "enableFailoverSlots")]
10798    pub enable_failover_slots: bool,
10799    #[serde(
10800        rename = "initialLoadParallelism",
10801        skip_serializing_if = "Option::is_none"
10802    )]
10803    pub initial_load_parallelism: Option<i64>,
10804    #[serde(rename = "publicationName", skip_serializing_if = "Option::is_none")]
10805    pub publication_name: Option<String>,
10806    #[serde(rename = "pullBatchSize", skip_serializing_if = "Option::is_none")]
10807    pub pull_batch_size: Option<i64>,
10808    #[serde(rename = "replicationMode")]
10809    pub replication_mode: ClickPipePostgresPipeSettingsReplicationmode,
10810    #[serde(
10811        rename = "replicationSlotName",
10812        skip_serializing_if = "Option::is_none"
10813    )]
10814    pub replication_slot_name: Option<String>,
10815    #[serde(
10816        rename = "snapshotNumRowsPerPartition",
10817        skip_serializing_if = "Option::is_none"
10818    )]
10819    pub snapshot_num_rows_per_partition: Option<i64>,
10820    #[serde(
10821        rename = "snapshotNumberOfParallelTables",
10822        skip_serializing_if = "Option::is_none"
10823    )]
10824    pub snapshot_number_of_parallel_tables: Option<i64>,
10825    #[serde(
10826        rename = "syncIntervalSeconds",
10827        skip_serializing_if = "Option::is_none"
10828    )]
10829    pub sync_interval_seconds: Option<i64>,
10830}
10831
10832/// `ClickPipePostgresPipeSettings` from the ClickHouse Cloud API, in response
10833/// position.
10834///
10835/// Response variant of [`ClickPipePostgresPipeSettings`]: every field is
10836/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
10837/// `None` instead of failing.
10838#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10839pub struct ClickPipePostgresPipeSettingsResponse {
10840    #[serde(
10841        rename = "allowNullableColumns",
10842        skip_serializing_if = "Option::is_none"
10843    )]
10844    pub allow_nullable_columns: Option<bool>,
10845    #[serde(rename = "deleteOnMerge", skip_serializing_if = "Option::is_none")]
10846    pub delete_on_merge: Option<bool>,
10847    #[serde(
10848        rename = "enableFailoverSlots",
10849        skip_serializing_if = "Option::is_none"
10850    )]
10851    pub enable_failover_slots: Option<bool>,
10852    #[serde(
10853        rename = "initialLoadParallelism",
10854        skip_serializing_if = "Option::is_none"
10855    )]
10856    pub initial_load_parallelism: Option<i64>,
10857    #[serde(rename = "publicationName", skip_serializing_if = "Option::is_none")]
10858    pub publication_name: Option<String>,
10859    #[serde(rename = "pullBatchSize", skip_serializing_if = "Option::is_none")]
10860    pub pull_batch_size: Option<i64>,
10861    #[serde(rename = "replicationMode", skip_serializing_if = "Option::is_none")]
10862    pub replication_mode: Option<ClickPipePostgresPipeSettingsReplicationmode>,
10863    #[serde(
10864        rename = "replicationSlotName",
10865        skip_serializing_if = "Option::is_none"
10866    )]
10867    pub replication_slot_name: Option<String>,
10868    #[serde(
10869        rename = "snapshotNumRowsPerPartition",
10870        skip_serializing_if = "Option::is_none"
10871    )]
10872    pub snapshot_num_rows_per_partition: Option<i64>,
10873    #[serde(
10874        rename = "snapshotNumberOfParallelTables",
10875        skip_serializing_if = "Option::is_none"
10876    )]
10877    pub snapshot_number_of_parallel_tables: Option<i64>,
10878    #[serde(
10879        rename = "syncIntervalSeconds",
10880        skip_serializing_if = "Option::is_none"
10881    )]
10882    pub sync_interval_seconds: Option<i64>,
10883}
10884
10885/// `ClickPipePostgresPipeTableMapping` from the ClickHouse Cloud API.
10886#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10887pub struct ClickPipePostgresPipeTableMapping {
10888    #[serde(rename = "excludedColumns")]
10889    pub excluded_columns: Vec<String>,
10890    #[serde(rename = "partitionByExpr")]
10891    pub partition_by_expr: String,
10892    #[serde(rename = "partitionKey")]
10893    pub partition_key: String,
10894    #[serde(rename = "sortingKeys")]
10895    pub sorting_keys: Vec<String>,
10896    #[serde(rename = "sourceSchemaName")]
10897    pub source_schema_name: String,
10898    #[serde(rename = "sourceTable")]
10899    pub source_table: String,
10900    #[serde(rename = "tableEngine")]
10901    pub table_engine: ClickPipePostgresPipeTableMappingTableengine,
10902    #[serde(rename = "targetTable")]
10903    pub target_table: String,
10904    #[serde(rename = "useCustomSortingKey")]
10905    pub use_custom_sorting_key: bool,
10906}
10907
10908/// `ClickPipePostgresPipeTableMapping` from the ClickHouse Cloud API, in
10909/// response position.
10910///
10911/// Response variant of [`ClickPipePostgresPipeTableMapping`]: every field is
10912/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
10913/// `None` instead of failing.
10914#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10915pub struct ClickPipePostgresPipeTableMappingResponse {
10916    #[serde(rename = "excludedColumns", skip_serializing_if = "Option::is_none")]
10917    pub excluded_columns: Option<Vec<String>>,
10918    #[serde(rename = "partitionByExpr", skip_serializing_if = "Option::is_none")]
10919    pub partition_by_expr: Option<String>,
10920    #[serde(rename = "partitionKey", skip_serializing_if = "Option::is_none")]
10921    pub partition_key: Option<String>,
10922    #[serde(rename = "sortingKeys", skip_serializing_if = "Option::is_none")]
10923    pub sorting_keys: Option<Vec<String>>,
10924    #[serde(rename = "sourceSchemaName", skip_serializing_if = "Option::is_none")]
10925    pub source_schema_name: Option<String>,
10926    #[serde(rename = "sourceTable", skip_serializing_if = "Option::is_none")]
10927    pub source_table: Option<String>,
10928    #[serde(rename = "tableEngine", skip_serializing_if = "Option::is_none")]
10929    pub table_engine: Option<ClickPipePostgresPipeTableMappingTableengine>,
10930    #[serde(rename = "targetTable", skip_serializing_if = "Option::is_none")]
10931    pub target_table: Option<String>,
10932    #[serde(
10933        rename = "useCustomSortingKey",
10934        skip_serializing_if = "Option::is_none"
10935    )]
10936    pub use_custom_sorting_key: Option<bool>,
10937}
10938
10939/// `ClickPipePostgresSource` from the ClickHouse Cloud API.
10940#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10941pub struct ClickPipePostgresSource {
10942    #[serde(skip_serializing_if = "Option::is_none")]
10943    pub authentication: Option<ClickPipePostgresSourceAuthentication>,
10944    #[serde(rename = "caCertificate", skip_serializing_if = "Option::is_none")]
10945    pub ca_certificate: Option<String>,
10946    #[serde(skip_serializing_if = "Option::is_none")]
10947    pub database: Option<String>,
10948    #[serde(rename = "disableTls", skip_serializing_if = "Option::is_none")]
10949    pub disable_tls: Option<bool>,
10950    #[serde(skip_serializing_if = "Option::is_none")]
10951    pub host: Option<String>,
10952    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
10953    pub iam_role: Option<String>,
10954    #[serde(skip_serializing_if = "Option::is_none")]
10955    pub port: Option<i64>,
10956    #[serde(skip_serializing_if = "Option::is_none")]
10957    pub settings: Option<ClickPipePostgresPipeSettingsResponse>,
10958    #[serde(
10959        rename = "skipCertVerification",
10960        skip_serializing_if = "Option::is_none"
10961    )]
10962    pub skip_cert_verification: Option<bool>,
10963    #[serde(rename = "tableMappings", skip_serializing_if = "Option::is_none")]
10964    pub table_mappings: Option<Vec<ClickPipePostgresPipeTableMappingResponse>>,
10965    #[serde(rename = "tlsHost", skip_serializing_if = "Option::is_none")]
10966    pub tls_host: Option<String>,
10967    #[serde(skip_serializing_if = "Option::is_none")]
10968    pub r#type: Option<ClickPipePostgresSourceType>,
10969}
10970
10971/// `ClickPipePubSubSource` from the ClickHouse Cloud API.
10972#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10973pub struct ClickPipePubSubSource {
10974    #[serde(rename = "ackDeadline", skip_serializing_if = "Option::is_none")]
10975    pub ack_deadline: Option<i64>,
10976    #[serde(skip_serializing_if = "Option::is_none")]
10977    pub authentication: Option<ClickPipePubSubSourceAuthentication>,
10978    #[serde(rename = "enableOrdering", skip_serializing_if = "Option::is_none")]
10979    pub enable_ordering: Option<bool>,
10980    #[serde(skip_serializing_if = "Option::is_none")]
10981    pub filter: Option<String>,
10982    #[serde(skip_serializing_if = "Option::is_none")]
10983    pub format: Option<ClickPipePubSubSourceFormat>,
10984    #[serde(rename = "projectId", skip_serializing_if = "Option::is_none")]
10985    pub project_id: Option<String>,
10986    #[serde(rename = "seekTimestamp", skip_serializing_if = "Option::is_none")]
10987    pub seek_timestamp: Option<chrono::DateTime<chrono::Utc>>,
10988    #[serde(rename = "seekType", skip_serializing_if = "Option::is_none")]
10989    pub seek_type: Option<ClickPipePubSubSourceSeektype>,
10990    #[serde(skip_serializing_if = "Option::is_none")]
10991    pub topic: Option<String>,
10992}
10993
10994/// `ClickPipeScaling` from the ClickHouse Cloud API.
10995#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10996pub struct ClickPipeScaling {
10997    #[cfg(feature = "deprecated-fields")]
10998    pub concurrency: i64,
10999    #[serde(rename = "replicaCpuMillicores")]
11000    pub replica_cpu_millicores: i64,
11001    #[serde(rename = "replicaMemoryGb")]
11002    pub replica_memory_gb: f64,
11003    pub replicas: i64,
11004}
11005
11006/// `ClickPipeScaling` from the ClickHouse Cloud API, in response position.
11007///
11008/// Response variant of [`ClickPipeScaling`]: every field is `Option<T>`, so a
11009/// field the API drops or sends as `null` deserializes to `None` instead of
11010/// failing.
11011#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11012pub struct ClickPipeScalingResponse {
11013    #[cfg(feature = "deprecated-fields")]
11014    #[serde(skip_serializing_if = "Option::is_none")]
11015    pub concurrency: Option<i64>,
11016    #[serde(
11017        rename = "replicaCpuMillicores",
11018        skip_serializing_if = "Option::is_none"
11019    )]
11020    pub replica_cpu_millicores: Option<i64>,
11021    #[serde(rename = "replicaMemoryGb", skip_serializing_if = "Option::is_none")]
11022    pub replica_memory_gb: Option<f64>,
11023    #[serde(skip_serializing_if = "Option::is_none")]
11024    pub replicas: Option<i64>,
11025}
11026
11027/// `ClickPipeScalingPatchRequest` from the ClickHouse Cloud API.
11028#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11029pub struct ClickPipeScalingPatchRequest {
11030    #[cfg(feature = "deprecated-fields")]
11031    #[serde(skip_serializing_if = "Option::is_none")]
11032    pub concurrency: Option<i64>,
11033    #[serde(
11034        rename = "replicaCpuMillicores",
11035        skip_serializing_if = "Option::is_none"
11036    )]
11037    pub replica_cpu_millicores: Option<i64>,
11038    #[serde(rename = "replicaMemoryGb", skip_serializing_if = "Option::is_none")]
11039    pub replica_memory_gb: Option<f64>,
11040    #[serde(skip_serializing_if = "Option::is_none")]
11041    pub replicas: Option<i64>,
11042}
11043
11044/// `ClickPipeSettings` from the ClickHouse Cloud API.
11045#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11046pub struct ClickPipeSettings {
11047    #[serde(skip_serializing_if = "Option::is_none")]
11048    pub clickhouse_max_download_threads: Option<i64>,
11049    #[serde(skip_serializing_if = "Option::is_none")]
11050    pub clickhouse_max_insert_threads: Option<i64>,
11051    #[serde(skip_serializing_if = "Option::is_none")]
11052    pub clickhouse_max_threads: Option<i64>,
11053    #[serde(skip_serializing_if = "Option::is_none")]
11054    pub clickhouse_min_insert_block_size_bytes: Option<i64>,
11055    #[serde(skip_serializing_if = "Option::is_none")]
11056    pub clickhouse_parallel_distributed_insert_select: Option<i64>,
11057    #[serde(skip_serializing_if = "Option::is_none")]
11058    pub clickhouse_parallel_view_processing: Option<bool>,
11059    #[serde(skip_serializing_if = "Option::is_none")]
11060    pub object_storage_concurrency: Option<i64>,
11061    #[serde(skip_serializing_if = "Option::is_none")]
11062    pub object_storage_max_file_count: Option<i64>,
11063    #[serde(skip_serializing_if = "Option::is_none")]
11064    pub object_storage_max_insert_bytes: Option<i64>,
11065    #[serde(skip_serializing_if = "Option::is_none")]
11066    pub object_storage_polling_interval_ms: Option<i64>,
11067    #[serde(skip_serializing_if = "Option::is_none")]
11068    pub object_storage_use_cluster_function: Option<bool>,
11069    #[serde(skip_serializing_if = "Option::is_none")]
11070    pub streaming_max_insert_wait_ms: Option<i64>,
11071}
11072
11073/// `ClickPipeSettings` from the ClickHouse Cloud API, in response position.
11074///
11075/// Response variant of [`ClickPipeSettings`]: every field is `Option<T>`, so a
11076/// field the API drops or sends as `null` deserializes to `None` instead of
11077/// failing.
11078#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11079pub struct ClickPipeSettingsResponse {
11080    #[serde(skip_serializing_if = "Option::is_none")]
11081    pub clickhouse_max_download_threads: Option<i64>,
11082    #[serde(skip_serializing_if = "Option::is_none")]
11083    pub clickhouse_max_insert_threads: Option<i64>,
11084    #[serde(skip_serializing_if = "Option::is_none")]
11085    pub clickhouse_max_threads: Option<i64>,
11086    #[serde(skip_serializing_if = "Option::is_none")]
11087    pub clickhouse_min_insert_block_size_bytes: Option<i64>,
11088    #[serde(skip_serializing_if = "Option::is_none")]
11089    pub clickhouse_parallel_distributed_insert_select: Option<i64>,
11090    #[serde(skip_serializing_if = "Option::is_none")]
11091    pub clickhouse_parallel_view_processing: Option<bool>,
11092    #[serde(skip_serializing_if = "Option::is_none")]
11093    pub object_storage_concurrency: Option<i64>,
11094    #[serde(skip_serializing_if = "Option::is_none")]
11095    pub object_storage_max_file_count: Option<i64>,
11096    #[serde(skip_serializing_if = "Option::is_none")]
11097    pub object_storage_max_insert_bytes: Option<i64>,
11098    #[serde(skip_serializing_if = "Option::is_none")]
11099    pub object_storage_polling_interval_ms: Option<i64>,
11100    #[serde(skip_serializing_if = "Option::is_none")]
11101    pub object_storage_use_cluster_function: Option<bool>,
11102    #[serde(skip_serializing_if = "Option::is_none")]
11103    pub streaming_max_insert_wait_ms: Option<i64>,
11104}
11105
11106/// `ClickPipeSettingsPutRequest` from the ClickHouse Cloud API.
11107#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11108pub struct ClickPipeSettingsPutRequest {
11109    #[serde(skip_serializing_if = "Option::is_none")]
11110    pub clickhouse_max_download_threads: Option<i64>,
11111    #[serde(skip_serializing_if = "Option::is_none")]
11112    pub clickhouse_max_insert_threads: Option<i64>,
11113    #[serde(skip_serializing_if = "Option::is_none")]
11114    pub clickhouse_max_threads: Option<i64>,
11115    #[serde(skip_serializing_if = "Option::is_none")]
11116    pub clickhouse_min_insert_block_size_bytes: Option<i64>,
11117    #[serde(skip_serializing_if = "Option::is_none")]
11118    pub clickhouse_parallel_distributed_insert_select: Option<i64>,
11119    #[serde(skip_serializing_if = "Option::is_none")]
11120    pub clickhouse_parallel_view_processing: Option<bool>,
11121    #[serde(skip_serializing_if = "Option::is_none")]
11122    pub object_storage_concurrency: Option<i64>,
11123    #[serde(skip_serializing_if = "Option::is_none")]
11124    pub object_storage_max_file_count: Option<i64>,
11125    #[serde(skip_serializing_if = "Option::is_none")]
11126    pub object_storage_max_insert_bytes: Option<i64>,
11127    #[serde(skip_serializing_if = "Option::is_none")]
11128    pub object_storage_polling_interval_ms: Option<i64>,
11129    #[serde(skip_serializing_if = "Option::is_none")]
11130    pub object_storage_use_cluster_function: Option<bool>,
11131    #[serde(skip_serializing_if = "Option::is_none")]
11132    pub streaming_max_insert_wait_ms: Option<i64>,
11133}
11134
11135/// `ClickPipeSource` from the ClickHouse Cloud API.
11136#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11137pub struct ClickPipeSource {
11138    #[serde(skip_serializing_if = "Option::is_none")]
11139    pub bigquery: Option<ClickPipeBigQuerySource>,
11140    #[serde(skip_serializing_if = "Option::is_none")]
11141    pub kafka: Option<ClickPipeKafkaSource>,
11142    #[serde(skip_serializing_if = "Option::is_none")]
11143    pub kinesis: Option<ClickPipeKinesisSource>,
11144    #[serde(skip_serializing_if = "Option::is_none")]
11145    pub mongodb: Option<ClickPipeMongoDBSource>,
11146    #[serde(skip_serializing_if = "Option::is_none")]
11147    pub mysql: Option<ClickPipeMySQLSource>,
11148    #[serde(rename = "objectStorage", skip_serializing_if = "Option::is_none")]
11149    pub object_storage: Option<ClickPipeObjectStorageSource>,
11150    #[serde(skip_serializing_if = "Option::is_none")]
11151    pub postgres: Option<ClickPipePostgresSource>,
11152    #[serde(skip_serializing_if = "Option::is_none")]
11153    pub pubsub: Option<ClickPipePubSubSource>,
11154}
11155
11156/// `ClickPipeStatePatchRequest` from the ClickHouse Cloud API.
11157#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11158pub struct ClickPipeStatePatchRequest {
11159    #[serde(skip_serializing_if = "Option::is_none")]
11160    pub command: Option<ClickPipeStatePatchRequestCommand>,
11161}
11162
11163/// `ClickPipesCdcScaling` from the ClickHouse Cloud API.
11164#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11165pub struct ClickPipesCdcScaling {
11166    #[serde(
11167        rename = "replicaCpuMillicores",
11168        skip_serializing_if = "Option::is_none"
11169    )]
11170    pub replica_cpu_millicores: Option<i64>,
11171    #[serde(rename = "replicaMemoryGb", skip_serializing_if = "Option::is_none")]
11172    pub replica_memory_gb: Option<f64>,
11173}
11174
11175/// `ClickPipesCdcScalingPatchRequest` from the ClickHouse Cloud API.
11176#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11177pub struct ClickPipesCdcScalingPatchRequest {
11178    #[serde(
11179        rename = "replicaCpuMillicores",
11180        skip_serializing_if = "Option::is_none"
11181    )]
11182    pub replica_cpu_millicores: Option<i64>,
11183    #[serde(rename = "replicaMemoryGb", skip_serializing_if = "Option::is_none")]
11184    pub replica_memory_gb: Option<f64>,
11185}
11186
11187/// `ClickStackAggregatedColumn` from the ClickHouse Cloud API.
11188#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11189pub struct ClickStackAggregatedColumn {
11190    #[serde(rename = "aggFn")]
11191    pub agg_fn: String,
11192    #[serde(rename = "mvColumn")]
11193    pub mv_column: String,
11194    #[serde(rename = "sourceColumn", skip_serializing_if = "Option::is_none")]
11195    pub source_column: Option<String>,
11196}
11197
11198/// `ClickStackAggregatedColumn` from the ClickHouse Cloud API, in response position.
11199///
11200/// Response variant of [`ClickStackAggregatedColumn`]: every field is
11201/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
11202/// `None` instead of failing.
11203#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11204pub struct ClickStackAggregatedColumnResponse {
11205    #[serde(rename = "aggFn", skip_serializing_if = "Option::is_none")]
11206    pub agg_fn: Option<String>,
11207    #[serde(rename = "mvColumn", skip_serializing_if = "Option::is_none")]
11208    pub mv_column: Option<String>,
11209    #[serde(rename = "sourceColumn", skip_serializing_if = "Option::is_none")]
11210    pub source_column: Option<String>,
11211}
11212
11213/// `ClickStackAlertChannelEmail` from the ClickHouse Cloud API.
11214#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11215pub struct ClickStackAlertChannelEmail {
11216    #[serde(rename = "emailRecipients")]
11217    pub email_recipients: Vec<String>,
11218    pub r#type: ClickStackAlertChannelEmailType,
11219}
11220
11221/// `ClickStackAlertChannelEmail` from the ClickHouse Cloud API, in response position.
11222///
11223/// Response variant of [`ClickStackAlertChannelEmail`]: every field is `Option<T>`, so a field
11224/// the API drops or sends as `null` deserializes to `None` instead of
11225/// failing.
11226#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11227pub struct ClickStackAlertChannelEmailResponse {
11228    #[serde(rename = "emailRecipients", skip_serializing_if = "Option::is_none")]
11229    pub email_recipients: Option<Vec<String>>,
11230    #[serde(skip_serializing_if = "Option::is_none")]
11231    pub r#type: Option<ClickStackAlertChannelEmailType>,
11232}
11233
11234/// `ClickStackAlertChannelWebhook` from the ClickHouse Cloud API.
11235#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11236pub struct ClickStackAlertChannelWebhook {
11237    #[serde(skip_serializing_if = "Option::is_none")]
11238    pub severity: Option<ClickStackAlertChannelWebhookSeverity>,
11239    #[serde(rename = "slackChannelId", skip_serializing_if = "Option::is_none")]
11240    pub slack_channel_id: Option<String>,
11241    pub r#type: ClickStackAlertChannelWebhookType,
11242    #[serde(rename = "webhookId")]
11243    pub webhook_id: String,
11244    #[serde(rename = "webhookService", skip_serializing_if = "Option::is_none")]
11245    pub webhook_service: Option<String>,
11246}
11247
11248/// `ClickStackAlertChannelWebhook` from the ClickHouse Cloud API, in response position.
11249///
11250/// Response variant of [`ClickStackAlertChannelWebhook`]: every field is `Option<T>`, so a field
11251/// the API drops or sends as `null` deserializes to `None` instead of
11252/// failing.
11253#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11254pub struct ClickStackAlertChannelWebhookResponse {
11255    #[serde(skip_serializing_if = "Option::is_none")]
11256    pub severity: Option<ClickStackAlertChannelWebhookSeverity>,
11257    #[serde(rename = "slackChannelId", skip_serializing_if = "Option::is_none")]
11258    pub slack_channel_id: Option<String>,
11259    #[serde(skip_serializing_if = "Option::is_none")]
11260    pub r#type: Option<ClickStackAlertChannelWebhookType>,
11261    #[serde(rename = "webhookId", skip_serializing_if = "Option::is_none")]
11262    pub webhook_id: Option<String>,
11263    #[serde(rename = "webhookService", skip_serializing_if = "Option::is_none")]
11264    pub webhook_service: Option<String>,
11265}
11266
11267/// `ClickStackAlertExecutionError` from the ClickHouse Cloud API.
11268///
11269/// Used in response position only: every field is `Option<T>`, so a field the
11270/// API drops or sends as `null` deserializes to `None` instead of failing.
11271#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11272pub struct ClickStackAlertExecutionError {
11273    #[serde(skip_serializing_if = "Option::is_none")]
11274    pub message: Option<String>,
11275    #[serde(skip_serializing_if = "Option::is_none")]
11276    pub timestamp: Option<chrono::DateTime<chrono::Utc>>,
11277    #[serde(skip_serializing_if = "Option::is_none")]
11278    pub r#type: Option<ClickStackAlertExecutionErrorType>,
11279}
11280
11281/// `ClickStackAlertResponse` from the ClickHouse Cloud API.
11282///
11283/// Used in response position only: every field is `Option<T>`, so a field the
11284/// API drops or sends as `null` deserializes to `None` instead of failing.
11285#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11286pub struct ClickStackAlertResponse {
11287    #[serde(skip_serializing_if = "Option::is_none")]
11288    pub channel: Option<ClickStackAlertChannelResponse>,
11289    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
11290    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
11291    #[serde(rename = "dashboardId", skip_serializing_if = "Option::is_none")]
11292    pub dashboard_id: Option<String>,
11293    #[serde(rename = "executionErrors", skip_serializing_if = "Option::is_none")]
11294    pub execution_errors: Option<Vec<ClickStackAlertExecutionError>>,
11295    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
11296    pub group_by: Option<String>,
11297    #[serde(skip_serializing_if = "Option::is_none")]
11298    pub id: Option<String>,
11299    #[serde(skip_serializing_if = "Option::is_none")]
11300    pub interval: Option<ClickStackAlertResponseInterval>,
11301    #[serde(skip_serializing_if = "Option::is_none")]
11302    pub message: Option<String>,
11303    #[serde(skip_serializing_if = "Option::is_none")]
11304    pub name: Option<String>,
11305    #[serde(skip_serializing_if = "Option::is_none")]
11306    pub note: Option<String>,
11307    #[serde(
11308        rename = "numConsecutiveWindows",
11309        skip_serializing_if = "Option::is_none"
11310    )]
11311    pub num_consecutive_windows: Option<i64>,
11312    #[serde(rename = "savedSearchId", skip_serializing_if = "Option::is_none")]
11313    pub saved_search_id: Option<String>,
11314    #[serde(
11315        rename = "scheduleOffsetMinutes",
11316        skip_serializing_if = "Option::is_none"
11317    )]
11318    pub schedule_offset_minutes: Option<i64>,
11319    #[serde(rename = "scheduleStartAt", skip_serializing_if = "Option::is_none")]
11320    pub schedule_start_at: Option<chrono::DateTime<chrono::Utc>>,
11321    #[serde(skip_serializing_if = "Option::is_none")]
11322    pub silenced: Option<ClickStackAlertSilenced>,
11323    #[serde(skip_serializing_if = "Option::is_none")]
11324    pub source: Option<ClickStackAlertResponseSource>,
11325    #[serde(skip_serializing_if = "Option::is_none")]
11326    pub state: Option<ClickStackAlertResponseState>,
11327    #[serde(rename = "teamId", skip_serializing_if = "Option::is_none")]
11328    pub team_id: Option<String>,
11329    #[serde(skip_serializing_if = "Option::is_none")]
11330    pub threshold: Option<f64>,
11331    #[serde(rename = "thresholdMax", skip_serializing_if = "Option::is_none")]
11332    pub threshold_max: Option<f64>,
11333    #[serde(rename = "thresholdType", skip_serializing_if = "Option::is_none")]
11334    pub threshold_type: Option<ClickStackAlertResponseThresholdtype>,
11335    #[serde(rename = "tileId", skip_serializing_if = "Option::is_none")]
11336    pub tile_id: Option<String>,
11337    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
11338    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
11339}
11340
11341/// `ClickStackAlertSilenced` from the ClickHouse Cloud API.
11342///
11343/// Used in response position only: every field is `Option<T>`, so a field the
11344/// API drops or sends as `null` deserializes to `None` instead of failing.
11345#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11346pub struct ClickStackAlertSilenced {
11347    #[serde(skip_serializing_if = "Option::is_none")]
11348    pub at: Option<chrono::DateTime<chrono::Utc>>,
11349    #[serde(skip_serializing_if = "Option::is_none")]
11350    pub by: Option<String>,
11351    #[serde(skip_serializing_if = "Option::is_none")]
11352    pub until: Option<chrono::DateTime<chrono::Utc>>,
11353}
11354
11355/// `ClickStackBackgroundChart` from the ClickHouse Cloud API.
11356#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11357pub struct ClickStackBackgroundChart {
11358    #[serde(skip_serializing_if = "Option::is_none")]
11359    pub color: Option<ClickStackChartColor>,
11360    pub r#type: ClickStackBackgroundChartType,
11361}
11362
11363/// `ClickStackBackgroundChart` from the ClickHouse Cloud API, in response position.
11364///
11365/// Response variant of [`ClickStackBackgroundChart`]: every field is `Option<T>`, so a field
11366/// the API drops or sends as `null` deserializes to `None` instead of
11367/// failing.
11368#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11369pub struct ClickStackBackgroundChartResponse {
11370    #[serde(skip_serializing_if = "Option::is_none")]
11371    pub color: Option<ClickStackChartColor>,
11372    #[serde(skip_serializing_if = "Option::is_none")]
11373    pub r#type: Option<ClickStackBackgroundChartType>,
11374}
11375
11376/// `ClickStackBarBuilderChartConfig` from the ClickHouse Cloud API.
11377#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11378pub struct ClickStackBarBuilderChartConfig {
11379    #[serde(
11380        rename = "alignDateRangeToGranularity",
11381        skip_serializing_if = "Option::is_none"
11382    )]
11383    pub align_date_range_to_granularity: Option<bool>,
11384    #[serde(rename = "asRatio", skip_serializing_if = "Option::is_none")]
11385    pub as_ratio: Option<bool>,
11386    #[serde(rename = "displayType")]
11387    pub display_type: ClickStackBarBuilderChartConfigDisplaytype,
11388    #[serde(rename = "fillNulls", skip_serializing_if = "Option::is_none")]
11389    pub fill_nulls: Option<bool>,
11390    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
11391    pub group_by: Option<String>,
11392    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
11393    pub number_format: Option<ClickStackNumberFormat>,
11394    pub select: Vec<ClickStackSelectItem>,
11395    #[serde(rename = "sourceId")]
11396    pub source_id: String,
11397}
11398
11399/// `ClickStackBarBuilderChartConfig` from the ClickHouse Cloud API, in response position.
11400///
11401/// Response variant of [`ClickStackBarBuilderChartConfig`]: every field is `Option<T>`, so a field
11402/// the API drops or sends as `null` deserializes to `None` instead of
11403/// failing.
11404#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11405pub struct ClickStackBarBuilderChartConfigResponse {
11406    #[serde(
11407        rename = "alignDateRangeToGranularity",
11408        skip_serializing_if = "Option::is_none"
11409    )]
11410    pub align_date_range_to_granularity: Option<bool>,
11411    #[serde(rename = "asRatio", skip_serializing_if = "Option::is_none")]
11412    pub as_ratio: Option<bool>,
11413    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
11414    pub display_type: Option<ClickStackBarBuilderChartConfigDisplaytype>,
11415    #[serde(rename = "fillNulls", skip_serializing_if = "Option::is_none")]
11416    pub fill_nulls: Option<bool>,
11417    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
11418    pub group_by: Option<String>,
11419    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
11420    pub number_format: Option<ClickStackNumberFormatResponse>,
11421    #[serde(skip_serializing_if = "Option::is_none")]
11422    pub select: Option<Vec<ClickStackSelectItemResponse>>,
11423    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
11424    pub source_id: Option<String>,
11425}
11426
11427/// `ClickStackBarRawSqlChartConfig` from the ClickHouse Cloud API.
11428#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11429pub struct ClickStackBarRawSqlChartConfig {
11430    #[serde(
11431        rename = "alignDateRangeToGranularity",
11432        skip_serializing_if = "Option::is_none"
11433    )]
11434    pub align_date_range_to_granularity: Option<bool>,
11435    #[serde(rename = "configType")]
11436    pub config_type: ClickStackBarRawSqlChartConfigConfigtype,
11437    #[serde(rename = "connectionId")]
11438    pub connection_id: String,
11439    #[serde(rename = "displayType")]
11440    pub display_type: ClickStackBarRawSqlChartConfigDisplaytype,
11441    #[serde(rename = "fillNulls", skip_serializing_if = "Option::is_none")]
11442    pub fill_nulls: Option<bool>,
11443    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
11444    pub number_format: Option<ClickStackNumberFormat>,
11445    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
11446    pub source_id: Option<String>,
11447    #[serde(rename = "sqlTemplate")]
11448    pub sql_template: String,
11449}
11450
11451/// `ClickStackBarRawSqlChartConfig` from the ClickHouse Cloud API, in response position.
11452///
11453/// Response variant of [`ClickStackBarRawSqlChartConfig`]: every field is `Option<T>`, so a field
11454/// the API drops or sends as `null` deserializes to `None` instead of
11455/// failing.
11456#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11457pub struct ClickStackBarRawSqlChartConfigResponse {
11458    #[serde(
11459        rename = "alignDateRangeToGranularity",
11460        skip_serializing_if = "Option::is_none"
11461    )]
11462    pub align_date_range_to_granularity: Option<bool>,
11463    #[serde(rename = "configType", skip_serializing_if = "Option::is_none")]
11464    pub config_type: Option<ClickStackBarRawSqlChartConfigConfigtype>,
11465    #[serde(rename = "connectionId", skip_serializing_if = "Option::is_none")]
11466    pub connection_id: Option<String>,
11467    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
11468    pub display_type: Option<ClickStackBarRawSqlChartConfigDisplaytype>,
11469    #[serde(rename = "fillNulls", skip_serializing_if = "Option::is_none")]
11470    pub fill_nulls: Option<bool>,
11471    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
11472    pub number_format: Option<ClickStackNumberFormatResponse>,
11473    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
11474    pub source_id: Option<String>,
11475    #[serde(rename = "sqlTemplate", skip_serializing_if = "Option::is_none")]
11476    pub sql_template: Option<String>,
11477}
11478
11479/// `ClickStackBetweenColorCondition` from the ClickHouse Cloud API.
11480#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11481pub struct ClickStackBetweenColorCondition {
11482    pub color: ClickStackChartColor,
11483    #[serde(skip_serializing_if = "Option::is_none")]
11484    pub label: Option<String>,
11485    pub operator: ClickStackBetweenColorConditionOperator,
11486    pub value: Vec<f64>,
11487}
11488
11489/// `ClickStackBetweenColorCondition` from the ClickHouse Cloud API, in response position.
11490///
11491/// Response variant of [`ClickStackBetweenColorCondition`]: every field is `Option<T>`, so a field
11492/// the API drops or sends as `null` deserializes to `None` instead of
11493/// failing.
11494#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11495pub struct ClickStackBetweenColorConditionResponse {
11496    #[serde(skip_serializing_if = "Option::is_none")]
11497    pub color: Option<ClickStackChartColor>,
11498    #[serde(skip_serializing_if = "Option::is_none")]
11499    pub label: Option<String>,
11500    #[serde(skip_serializing_if = "Option::is_none")]
11501    pub operator: Option<ClickStackBetweenColorConditionOperator>,
11502    #[serde(skip_serializing_if = "Option::is_none")]
11503    pub value: Option<Vec<f64>>,
11504}
11505
11506/// `ClickStackCASLPermission` from the ClickHouse Cloud API.
11507#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11508pub struct ClickStackCASLPermission {
11509    pub action: String,
11510    #[serde(skip_serializing_if = "Option::is_none")]
11511    pub conditions: Option<ClickStackCASLPermissionConditions>,
11512    #[serde(skip_serializing_if = "Option::is_none")]
11513    pub integration: Option<String>,
11514    #[serde(skip_serializing_if = "Option::is_none")]
11515    pub inverted: Option<bool>,
11516    pub subject: String,
11517}
11518
11519/// `ClickStackCASLPermission` from the ClickHouse Cloud API, in response position.
11520///
11521/// Response variant of [`ClickStackCASLPermission`]: every field is
11522/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
11523/// `None` instead of failing.
11524#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11525pub struct ClickStackCASLPermissionResponse {
11526    #[serde(skip_serializing_if = "Option::is_none")]
11527    pub action: Option<String>,
11528    #[serde(skip_serializing_if = "Option::is_none")]
11529    pub conditions: Option<ClickStackCASLPermissionConditions>,
11530    #[serde(skip_serializing_if = "Option::is_none")]
11531    pub integration: Option<String>,
11532    #[serde(skip_serializing_if = "Option::is_none")]
11533    pub inverted: Option<bool>,
11534    #[serde(skip_serializing_if = "Option::is_none")]
11535    pub subject: Option<String>,
11536}
11537
11538/// `ClickStackCategoricalBarBuilderChartConfig` from the ClickHouse Cloud API.
11539#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11540pub struct ClickStackCategoricalBarBuilderChartConfig {
11541    #[serde(rename = "displayType")]
11542    pub display_type: ClickStackCategoricalBarBuilderChartConfigDisplaytype,
11543    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
11544    pub group_by: Option<String>,
11545    #[serde(skip_serializing_if = "Option::is_none")]
11546    pub limit: Option<i64>,
11547    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
11548    pub number_format: Option<ClickStackNumberFormat>,
11549    #[serde(rename = "orderBy", skip_serializing_if = "Option::is_none")]
11550    pub order_by: Option<String>,
11551    pub select: Vec<ClickStackSelectItem>,
11552    #[serde(rename = "sourceId")]
11553    pub source_id: String,
11554}
11555
11556/// `ClickStackCategoricalBarBuilderChartConfig` from the ClickHouse Cloud API, in response position.
11557///
11558/// Response variant of [`ClickStackCategoricalBarBuilderChartConfig`]: every field is `Option<T>`, so a field
11559/// the API drops or sends as `null` deserializes to `None` instead of
11560/// failing.
11561#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11562pub struct ClickStackCategoricalBarBuilderChartConfigResponse {
11563    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
11564    pub display_type: Option<ClickStackCategoricalBarBuilderChartConfigDisplaytype>,
11565    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
11566    pub group_by: Option<String>,
11567    #[serde(skip_serializing_if = "Option::is_none")]
11568    pub limit: Option<i64>,
11569    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
11570    pub number_format: Option<ClickStackNumberFormatResponse>,
11571    #[serde(rename = "orderBy", skip_serializing_if = "Option::is_none")]
11572    pub order_by: Option<String>,
11573    #[serde(skip_serializing_if = "Option::is_none")]
11574    pub select: Option<Vec<ClickStackSelectItemResponse>>,
11575    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
11576    pub source_id: Option<String>,
11577}
11578
11579/// `ClickStackCategoricalBarRawSqlChartConfig` from the ClickHouse Cloud API.
11580#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11581pub struct ClickStackCategoricalBarRawSqlChartConfig {
11582    #[serde(rename = "configType")]
11583    pub config_type: ClickStackCategoricalBarRawSqlChartConfigConfigtype,
11584    #[serde(rename = "connectionId")]
11585    pub connection_id: String,
11586    #[serde(rename = "displayType")]
11587    pub display_type: ClickStackCategoricalBarRawSqlChartConfigDisplaytype,
11588    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
11589    pub number_format: Option<ClickStackNumberFormat>,
11590    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
11591    pub source_id: Option<String>,
11592    #[serde(rename = "sqlTemplate")]
11593    pub sql_template: String,
11594}
11595
11596/// `ClickStackCategoricalBarRawSqlChartConfig` from the ClickHouse Cloud API, in response position.
11597///
11598/// Response variant of [`ClickStackCategoricalBarRawSqlChartConfig`]: every field is `Option<T>`, so a field
11599/// the API drops or sends as `null` deserializes to `None` instead of
11600/// failing.
11601#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11602pub struct ClickStackCategoricalBarRawSqlChartConfigResponse {
11603    #[serde(rename = "configType", skip_serializing_if = "Option::is_none")]
11604    pub config_type: Option<ClickStackCategoricalBarRawSqlChartConfigConfigtype>,
11605    #[serde(rename = "connectionId", skip_serializing_if = "Option::is_none")]
11606    pub connection_id: Option<String>,
11607    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
11608    pub display_type: Option<ClickStackCategoricalBarRawSqlChartConfigDisplaytype>,
11609    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
11610    pub number_format: Option<ClickStackNumberFormatResponse>,
11611    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
11612    pub source_id: Option<String>,
11613    #[serde(rename = "sqlTemplate", skip_serializing_if = "Option::is_none")]
11614    pub sql_template: Option<String>,
11615}
11616
11617/// `ClickStackConnection` from the ClickHouse Cloud API.
11618///
11619/// Used in response position only: every field is `Option<T>`, so a field the
11620/// API drops or sends as `null` deserializes to `None` instead of failing.
11621#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11622pub struct ClickStackConnection {
11623    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
11624    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
11625    #[serde(skip_serializing_if = "Option::is_none")]
11626    pub host: Option<String>,
11627    #[serde(
11628        rename = "hyperdxSettingPrefix",
11629        skip_serializing_if = "Option::is_none"
11630    )]
11631    pub hyperdx_setting_prefix: Option<String>,
11632    #[serde(skip_serializing_if = "Option::is_none")]
11633    pub id: Option<String>,
11634    #[serde(
11635        rename = "isPrometheusEndpoint",
11636        skip_serializing_if = "Option::is_none"
11637    )]
11638    pub is_prometheus_endpoint: Option<bool>,
11639    #[serde(skip_serializing_if = "Option::is_none")]
11640    pub name: Option<String>,
11641    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
11642    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
11643    #[serde(skip_serializing_if = "Option::is_none")]
11644    pub username: Option<String>,
11645}
11646
11647/// `ClickStackCreateAlertRequest` from the ClickHouse Cloud API.
11648#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11649pub struct ClickStackCreateAlertRequest {
11650    pub channel: ClickStackAlertChannel,
11651    #[serde(rename = "dashboardId", skip_serializing_if = "Option::is_none")]
11652    pub dashboard_id: Option<String>,
11653    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
11654    pub group_by: Option<String>,
11655    pub interval: ClickStackCreateAlertRequestInterval,
11656    #[serde(skip_serializing_if = "Option::is_none")]
11657    pub message: Option<String>,
11658    #[serde(skip_serializing_if = "Option::is_none")]
11659    pub name: Option<String>,
11660    #[serde(skip_serializing_if = "Option::is_none")]
11661    pub note: Option<String>,
11662    #[serde(
11663        rename = "numConsecutiveWindows",
11664        skip_serializing_if = "Option::is_none"
11665    )]
11666    pub num_consecutive_windows: Option<i64>,
11667    #[serde(rename = "savedSearchId", skip_serializing_if = "Option::is_none")]
11668    pub saved_search_id: Option<String>,
11669    #[serde(
11670        rename = "scheduleOffsetMinutes",
11671        skip_serializing_if = "Option::is_none"
11672    )]
11673    pub schedule_offset_minutes: Option<i64>,
11674    #[serde(rename = "scheduleStartAt", skip_serializing_if = "Option::is_none")]
11675    pub schedule_start_at: Option<chrono::DateTime<chrono::Utc>>,
11676    pub source: ClickStackCreateAlertRequestSource,
11677    pub threshold: f64,
11678    #[serde(rename = "thresholdMax", skip_serializing_if = "Option::is_none")]
11679    pub threshold_max: Option<f64>,
11680    #[serde(rename = "thresholdType")]
11681    pub threshold_type: ClickStackCreateAlertRequestThresholdtype,
11682    #[serde(rename = "tileId", skip_serializing_if = "Option::is_none")]
11683    pub tile_id: Option<String>,
11684}
11685
11686/// `ClickStackCreateConnectionRequest` from the ClickHouse Cloud API.
11687#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11688pub struct ClickStackCreateConnectionRequest {
11689    pub host: String,
11690    #[serde(
11691        rename = "hyperdxSettingPrefix",
11692        skip_serializing_if = "Option::is_none"
11693    )]
11694    pub hyperdx_setting_prefix: Option<String>,
11695    #[serde(
11696        rename = "isPrometheusEndpoint",
11697        skip_serializing_if = "Option::is_none"
11698    )]
11699    pub is_prometheus_endpoint: Option<bool>,
11700    pub name: String,
11701    #[serde(skip_serializing_if = "Option::is_none")]
11702    pub password: Option<String>,
11703    pub username: String,
11704}
11705
11706/// `ClickStackCreateDashboardRequest` from the ClickHouse Cloud API.
11707#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11708pub struct ClickStackCreateDashboardRequest {
11709    #[serde(skip_serializing_if = "Option::is_none")]
11710    pub containers: Option<Vec<ClickStackDashboardContainer>>,
11711    #[serde(skip_serializing_if = "Option::is_none")]
11712    pub filters: Option<Vec<ClickStackFilterInput>>,
11713    pub name: String,
11714    #[serde(rename = "savedFilterValues", skip_serializing_if = "Option::is_none")]
11715    pub saved_filter_values: Option<Vec<ClickStackSavedFilterValue>>,
11716    #[serde(rename = "savedQuery", skip_serializing_if = "Option::is_none")]
11717    pub saved_query: Option<String>,
11718    #[serde(rename = "savedQueryLanguage", skip_serializing_if = "Option::is_none")]
11719    pub saved_query_language: Option<ClickStackCreateDashboardRequestSavedquerylanguage>,
11720    #[serde(skip_serializing_if = "Option::is_none")]
11721    pub tags: Option<Vec<String>>,
11722    pub tiles: Vec<ClickStackTileInput>,
11723}
11724
11725/// `ClickStackCreateRoleRequest` from the ClickHouse Cloud API.
11726#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11727pub struct ClickStackCreateRoleRequest {
11728    #[serde(skip_serializing_if = "Option::is_none")]
11729    pub description: Option<String>,
11730    pub name: String,
11731    pub permissions: Vec<ClickStackCASLPermission>,
11732}
11733
11734/// `ClickStackDashboardContainer` from the ClickHouse Cloud API.
11735#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11736pub struct ClickStackDashboardContainer {
11737    #[serde(skip_serializing_if = "Option::is_none")]
11738    pub bordered: Option<bool>,
11739    pub collapsed: bool,
11740    #[serde(skip_serializing_if = "Option::is_none")]
11741    pub collapsible: Option<bool>,
11742    pub id: String,
11743    #[serde(skip_serializing_if = "Option::is_none")]
11744    pub tabs: Option<Vec<ClickStackDashboardContainerTab>>,
11745    pub title: String,
11746}
11747
11748/// `ClickStackDashboardContainer` from the ClickHouse Cloud API, in response position.
11749///
11750/// Response variant of [`ClickStackDashboardContainer`]: every field is `Option<T>`, so a field
11751/// the API drops or sends as `null` deserializes to `None` instead of
11752/// failing.
11753#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11754pub struct ClickStackDashboardContainerResponse {
11755    #[serde(skip_serializing_if = "Option::is_none")]
11756    pub bordered: Option<bool>,
11757    #[serde(skip_serializing_if = "Option::is_none")]
11758    pub collapsed: Option<bool>,
11759    #[serde(skip_serializing_if = "Option::is_none")]
11760    pub collapsible: Option<bool>,
11761    #[serde(skip_serializing_if = "Option::is_none")]
11762    pub id: Option<String>,
11763    #[serde(skip_serializing_if = "Option::is_none")]
11764    pub tabs: Option<Vec<ClickStackDashboardContainerTabResponse>>,
11765    #[serde(skip_serializing_if = "Option::is_none")]
11766    pub title: Option<String>,
11767}
11768
11769/// `ClickStackDashboardContainerTab` from the ClickHouse Cloud API.
11770#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11771pub struct ClickStackDashboardContainerTab {
11772    pub id: String,
11773    pub title: String,
11774}
11775
11776/// `ClickStackDashboardContainerTab` from the ClickHouse Cloud API, in response position.
11777///
11778/// Response variant of [`ClickStackDashboardContainerTab`]: every field is `Option<T>`, so a field
11779/// the API drops or sends as `null` deserializes to `None` instead of
11780/// failing.
11781#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11782pub struct ClickStackDashboardContainerTabResponse {
11783    #[serde(skip_serializing_if = "Option::is_none")]
11784    pub id: Option<String>,
11785    #[serde(skip_serializing_if = "Option::is_none")]
11786    pub title: Option<String>,
11787}
11788
11789/// `ClickStackDashboardResponse` from the ClickHouse Cloud API.
11790///
11791/// Used in response position only: every field is `Option<T>`, so a field the
11792/// API drops or sends as `null` deserializes to `None` instead of failing.
11793#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11794pub struct ClickStackDashboardResponse {
11795    #[serde(skip_serializing_if = "Option::is_none")]
11796    pub containers: Option<Vec<ClickStackDashboardContainerResponse>>,
11797    #[serde(skip_serializing_if = "Option::is_none")]
11798    pub filters: Option<Vec<ClickStackFilterResponse>>,
11799    #[serde(skip_serializing_if = "Option::is_none")]
11800    pub id: Option<String>,
11801    #[serde(skip_serializing_if = "Option::is_none")]
11802    pub name: Option<String>,
11803    #[serde(rename = "savedFilterValues", skip_serializing_if = "Option::is_none")]
11804    pub saved_filter_values: Option<Vec<ClickStackSavedFilterValueResponse>>,
11805    #[serde(rename = "savedQuery", skip_serializing_if = "Option::is_none")]
11806    pub saved_query: Option<String>,
11807    #[serde(rename = "savedQueryLanguage", skip_serializing_if = "Option::is_none")]
11808    pub saved_query_language: Option<ClickStackDashboardResponseSavedquerylanguage>,
11809    #[serde(skip_serializing_if = "Option::is_none")]
11810    pub tags: Option<Vec<String>>,
11811    #[serde(skip_serializing_if = "Option::is_none")]
11812    pub tiles: Option<Vec<ClickStackTileOutput>>,
11813}
11814
11815/// `ClickStackEqualityColorCondition` from the ClickHouse Cloud API.
11816#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11817pub struct ClickStackEqualityColorCondition {
11818    pub color: ClickStackChartColor,
11819    #[serde(skip_serializing_if = "Option::is_none")]
11820    pub label: Option<String>,
11821    pub operator: ClickStackEqualityColorConditionOperator,
11822    /// A finite number or a string; the spec models this as `oneOf number|string`.
11823    pub value: serde_json::Value,
11824}
11825
11826/// `ClickStackEqualityColorCondition` from the ClickHouse Cloud API, in response position.
11827///
11828/// Response variant of [`ClickStackEqualityColorCondition`]: every field is `Option<T>`, so a field
11829/// the API drops or sends as `null` deserializes to `None` instead of
11830/// failing.
11831#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11832pub struct ClickStackEqualityColorConditionResponse {
11833    #[serde(skip_serializing_if = "Option::is_none")]
11834    pub color: Option<ClickStackChartColor>,
11835    #[serde(skip_serializing_if = "Option::is_none")]
11836    pub label: Option<String>,
11837    #[serde(skip_serializing_if = "Option::is_none")]
11838    pub operator: Option<ClickStackEqualityColorConditionOperator>,
11839    /// A finite number or a string; the spec models this as `oneOf number|string`.
11840    #[serde(skip_serializing_if = "Option::is_none")]
11841    pub value: Option<serde_json::Value>,
11842}
11843
11844/// `ClickStackEventPatternsChartConfig` from the ClickHouse Cloud API.
11845#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11846pub struct ClickStackEventPatternsChartConfig {
11847    #[serde(rename = "displayType")]
11848    pub display_type: ClickStackEventPatternsChartConfigDisplaytype,
11849    #[serde(skip_serializing_if = "Option::is_none")]
11850    pub select: Option<String>,
11851    #[serde(rename = "sourceId")]
11852    pub source_id: String,
11853    #[serde(skip_serializing_if = "Option::is_none")]
11854    pub r#where: Option<String>,
11855    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
11856    pub where_language: Option<ClickStackEventPatternsChartConfigWherelanguage>,
11857}
11858
11859/// `ClickStackEventPatternsChartConfig` from the ClickHouse Cloud API, in response position.
11860///
11861/// Response variant of [`ClickStackEventPatternsChartConfig`]: every field is `Option<T>`, so a field
11862/// the API drops or sends as `null` deserializes to `None` instead of
11863/// failing.
11864#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11865pub struct ClickStackEventPatternsChartConfigResponse {
11866    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
11867    pub display_type: Option<ClickStackEventPatternsChartConfigDisplaytype>,
11868    #[serde(skip_serializing_if = "Option::is_none")]
11869    pub select: Option<String>,
11870    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
11871    pub source_id: Option<String>,
11872    #[serde(skip_serializing_if = "Option::is_none")]
11873    pub r#where: Option<String>,
11874    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
11875    pub where_language: Option<ClickStackEventPatternsChartConfigWherelanguage>,
11876}
11877
11878/// `ClickStackFilter` from the ClickHouse Cloud API.
11879#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11880pub struct ClickStackFilter {
11881    #[serde(rename = "appliesToSourceIds", skip_serializing_if = "Option::is_none")]
11882    pub applies_to_source_ids: Option<Vec<String>>,
11883    pub expression: String,
11884    pub id: String,
11885    pub name: String,
11886    #[serde(rename = "sourceId")]
11887    pub source_id: String,
11888    #[serde(rename = "sourceMetricType", skip_serializing_if = "Option::is_none")]
11889    pub source_metric_type: Option<ClickStackFilterSourcemetrictype>,
11890    pub r#type: ClickStackFilterType,
11891    #[serde(skip_serializing_if = "Option::is_none")]
11892    pub r#where: Option<String>,
11893    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
11894    pub where_language: Option<ClickStackFilterWherelanguage>,
11895}
11896
11897/// `ClickStackFilter` from the ClickHouse Cloud API, in response position.
11898///
11899/// Response variant of [`ClickStackFilter`]: every field is `Option<T>`, so a
11900/// field the API drops or sends as `null` deserializes to `None` instead of
11901/// failing.
11902#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11903pub struct ClickStackFilterResponse {
11904    #[serde(rename = "appliesToSourceIds", skip_serializing_if = "Option::is_none")]
11905    pub applies_to_source_ids: Option<Vec<String>>,
11906    #[serde(skip_serializing_if = "Option::is_none")]
11907    pub expression: Option<String>,
11908    #[serde(skip_serializing_if = "Option::is_none")]
11909    pub id: Option<String>,
11910    #[serde(skip_serializing_if = "Option::is_none")]
11911    pub name: Option<String>,
11912    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
11913    pub source_id: Option<String>,
11914    #[serde(rename = "sourceMetricType", skip_serializing_if = "Option::is_none")]
11915    pub source_metric_type: Option<ClickStackFilterSourcemetrictype>,
11916    #[serde(skip_serializing_if = "Option::is_none")]
11917    pub r#type: Option<ClickStackFilterType>,
11918    #[serde(skip_serializing_if = "Option::is_none")]
11919    pub r#where: Option<String>,
11920    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
11921    pub where_language: Option<ClickStackFilterWherelanguage>,
11922}
11923
11924/// `ClickStackFilterInput` from the ClickHouse Cloud API.
11925#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11926pub struct ClickStackFilterInput {
11927    #[serde(rename = "appliesToSourceIds", skip_serializing_if = "Option::is_none")]
11928    pub applies_to_source_ids: Option<Vec<String>>,
11929    pub expression: String,
11930    pub name: String,
11931    #[serde(rename = "sourceId")]
11932    pub source_id: String,
11933    #[serde(rename = "sourceMetricType", skip_serializing_if = "Option::is_none")]
11934    pub source_metric_type: Option<ClickStackFilterInputSourcemetrictype>,
11935    pub r#type: ClickStackFilterInputType,
11936    #[serde(skip_serializing_if = "Option::is_none")]
11937    pub r#where: Option<String>,
11938    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
11939    pub where_language: Option<ClickStackFilterInputWherelanguage>,
11940}
11941
11942/// `ClickStackFilterSettingsColumn` from the ClickHouse Cloud API.
11943#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11944pub struct ClickStackFilterSettingsColumn {
11945    pub label: String,
11946    pub name: String,
11947}
11948
11949/// `ClickStackFilterSettingsColumn` from the ClickHouse Cloud API, in response position.
11950///
11951/// Response variant of [`ClickStackFilterSettingsColumn`]: every field is
11952/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
11953/// `None` instead of failing.
11954#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11955pub struct ClickStackFilterSettingsColumnResponse {
11956    #[serde(skip_serializing_if = "Option::is_none")]
11957    pub label: Option<String>,
11958    #[serde(skip_serializing_if = "Option::is_none")]
11959    pub name: Option<String>,
11960}
11961
11962/// `ClickStackGenericWebhook` from the ClickHouse Cloud API.
11963///
11964/// Used in response position only: every field is `Option<T>`, so a field the
11965/// API drops or sends as `null` deserializes to `None` instead of failing.
11966#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11967pub struct ClickStackGenericWebhook {
11968    #[serde(skip_serializing_if = "Option::is_none")]
11969    pub body: Option<String>,
11970    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
11971    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
11972    #[serde(skip_serializing_if = "Option::is_none")]
11973    pub description: Option<String>,
11974    #[serde(skip_serializing_if = "Option::is_none")]
11975    pub id: Option<String>,
11976    #[serde(skip_serializing_if = "Option::is_none")]
11977    pub name: Option<String>,
11978    #[serde(skip_serializing_if = "Option::is_none")]
11979    pub service: Option<ClickStackGenericWebhookService>,
11980    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
11981    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
11982    #[serde(skip_serializing_if = "Option::is_none")]
11983    pub url: Option<String>,
11984}
11985
11986/// `ClickStackHeatmapChartConfig` from the ClickHouse Cloud API.
11987#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
11988pub struct ClickStackHeatmapChartConfig {
11989    #[serde(rename = "displayType")]
11990    pub display_type: ClickStackHeatmapChartConfigDisplaytype,
11991    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
11992    pub number_format: Option<ClickStackNumberFormat>,
11993    pub select: Vec<ClickStackHeatmapSelectItem>,
11994    #[serde(rename = "sourceId")]
11995    pub source_id: String,
11996    #[serde(rename = "where", skip_serializing_if = "Option::is_none")]
11997    pub r#where: Option<String>,
11998    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
11999    pub where_language: Option<ClickStackHeatmapChartConfigWherelanguage>,
12000}
12001
12002/// `ClickStackHeatmapChartConfig` from the ClickHouse Cloud API, in response position.
12003///
12004/// Response variant of [`ClickStackHeatmapChartConfig`]: every field is `Option<T>`, so a field
12005/// the API drops or sends as `null` deserializes to `None` instead of
12006/// failing.
12007#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12008pub struct ClickStackHeatmapChartConfigResponse {
12009    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
12010    pub display_type: Option<ClickStackHeatmapChartConfigDisplaytype>,
12011    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
12012    pub number_format: Option<ClickStackNumberFormatResponse>,
12013    #[serde(skip_serializing_if = "Option::is_none")]
12014    pub select: Option<Vec<ClickStackHeatmapSelectItemResponse>>,
12015    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
12016    pub source_id: Option<String>,
12017    #[serde(rename = "where", skip_serializing_if = "Option::is_none")]
12018    pub r#where: Option<String>,
12019    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
12020    pub where_language: Option<ClickStackHeatmapChartConfigWherelanguage>,
12021}
12022
12023/// `ClickStackHeatmapSelectItem` from the ClickHouse Cloud API.
12024#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12025pub struct ClickStackHeatmapSelectItem {
12026    #[serde(rename = "countExpression", skip_serializing_if = "Option::is_none")]
12027    pub count_expression: Option<String>,
12028    #[serde(rename = "heatmapScaleType", skip_serializing_if = "Option::is_none")]
12029    pub heatmap_scale_type: Option<ClickStackHeatmapSelectItemHeatmapscaletype>,
12030    #[serde(rename = "valueExpression")]
12031    pub value_expression: String,
12032}
12033
12034/// `ClickStackHeatmapSelectItem` from the ClickHouse Cloud API, in response position.
12035///
12036/// Response variant of [`ClickStackHeatmapSelectItem`]: every field is `Option<T>`, so a field
12037/// the API drops or sends as `null` deserializes to `None` instead of
12038/// failing.
12039#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12040pub struct ClickStackHeatmapSelectItemResponse {
12041    #[serde(rename = "countExpression", skip_serializing_if = "Option::is_none")]
12042    pub count_expression: Option<String>,
12043    #[serde(rename = "heatmapScaleType", skip_serializing_if = "Option::is_none")]
12044    pub heatmap_scale_type: Option<ClickStackHeatmapSelectItemHeatmapscaletype>,
12045    #[serde(rename = "valueExpression", skip_serializing_if = "Option::is_none")]
12046    pub value_expression: Option<String>,
12047}
12048
12049/// `ClickStackHighlightedAttributeExpression` from the ClickHouse Cloud API.
12050#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12051pub struct ClickStackHighlightedAttributeExpression {
12052    #[serde(skip_serializing_if = "Option::is_none")]
12053    pub alias: Option<String>,
12054    #[serde(rename = "luceneExpression", skip_serializing_if = "Option::is_none")]
12055    pub lucene_expression: Option<String>,
12056    #[serde(rename = "sqlExpression")]
12057    pub sql_expression: String,
12058}
12059
12060/// `ClickStackHighlightedAttributeExpression` from the ClickHouse Cloud API, in response position.
12061///
12062/// Response variant of [`ClickStackHighlightedAttributeExpression`]: every
12063/// field is `Option<T>`, so a field the API drops or sends as `null`
12064/// deserializes to `None` instead of failing.
12065#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12066pub struct ClickStackHighlightedAttributeExpressionResponse {
12067    #[serde(skip_serializing_if = "Option::is_none")]
12068    pub alias: Option<String>,
12069    #[serde(rename = "luceneExpression", skip_serializing_if = "Option::is_none")]
12070    pub lucene_expression: Option<String>,
12071    #[serde(rename = "sqlExpression", skip_serializing_if = "Option::is_none")]
12072    pub sql_expression: Option<String>,
12073}
12074
12075/// `ClickStackIncidentIOWebhook` from the ClickHouse Cloud API.
12076///
12077/// Used in response position only: every field is `Option<T>`, so a field the
12078/// API drops or sends as `null` deserializes to `None` instead of failing.
12079#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12080pub struct ClickStackIncidentIOWebhook {
12081    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
12082    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
12083    #[serde(skip_serializing_if = "Option::is_none")]
12084    pub description: Option<String>,
12085    #[serde(skip_serializing_if = "Option::is_none")]
12086    pub id: Option<String>,
12087    #[serde(skip_serializing_if = "Option::is_none")]
12088    pub name: Option<String>,
12089    #[serde(skip_serializing_if = "Option::is_none")]
12090    pub service: Option<ClickStackIncidentIOWebhookService>,
12091    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
12092    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
12093    #[serde(skip_serializing_if = "Option::is_none")]
12094    pub url: Option<String>,
12095}
12096
12097/// `ClickStackLineBuilderChartConfig` from the ClickHouse Cloud API.
12098#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12099pub struct ClickStackLineBuilderChartConfig {
12100    #[serde(
12101        rename = "alignDateRangeToGranularity",
12102        skip_serializing_if = "Option::is_none"
12103    )]
12104    pub align_date_range_to_granularity: Option<bool>,
12105    #[serde(rename = "asRatio", skip_serializing_if = "Option::is_none")]
12106    pub as_ratio: Option<bool>,
12107    #[serde(
12108        rename = "compareToPreviousPeriod",
12109        skip_serializing_if = "Option::is_none"
12110    )]
12111    pub compare_to_previous_period: Option<bool>,
12112    #[serde(rename = "displayType")]
12113    pub display_type: ClickStackLineBuilderChartConfigDisplaytype,
12114    #[serde(rename = "fillNulls", skip_serializing_if = "Option::is_none")]
12115    pub fill_nulls: Option<bool>,
12116    #[serde(rename = "fitYAxisToData", skip_serializing_if = "Option::is_none")]
12117    pub fit_y_axis_to_data: Option<bool>,
12118    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
12119    pub group_by: Option<String>,
12120    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
12121    pub number_format: Option<ClickStackNumberFormat>,
12122    pub select: Vec<ClickStackSelectItem>,
12123    #[serde(rename = "sourceId")]
12124    pub source_id: String,
12125}
12126
12127/// `ClickStackLineBuilderChartConfig` from the ClickHouse Cloud API, in response position.
12128///
12129/// Response variant of [`ClickStackLineBuilderChartConfig`]: every field is `Option<T>`, so a field
12130/// the API drops or sends as `null` deserializes to `None` instead of
12131/// failing.
12132#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12133pub struct ClickStackLineBuilderChartConfigResponse {
12134    #[serde(
12135        rename = "alignDateRangeToGranularity",
12136        skip_serializing_if = "Option::is_none"
12137    )]
12138    pub align_date_range_to_granularity: Option<bool>,
12139    #[serde(rename = "asRatio", skip_serializing_if = "Option::is_none")]
12140    pub as_ratio: Option<bool>,
12141    #[serde(
12142        rename = "compareToPreviousPeriod",
12143        skip_serializing_if = "Option::is_none"
12144    )]
12145    pub compare_to_previous_period: Option<bool>,
12146    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
12147    pub display_type: Option<ClickStackLineBuilderChartConfigDisplaytype>,
12148    #[serde(rename = "fillNulls", skip_serializing_if = "Option::is_none")]
12149    pub fill_nulls: Option<bool>,
12150    #[serde(rename = "fitYAxisToData", skip_serializing_if = "Option::is_none")]
12151    pub fit_y_axis_to_data: Option<bool>,
12152    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
12153    pub group_by: Option<String>,
12154    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
12155    pub number_format: Option<ClickStackNumberFormatResponse>,
12156    #[serde(skip_serializing_if = "Option::is_none")]
12157    pub select: Option<Vec<ClickStackSelectItemResponse>>,
12158    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
12159    pub source_id: Option<String>,
12160}
12161
12162/// `ClickStackLineRawSqlChartConfig` from the ClickHouse Cloud API.
12163#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12164pub struct ClickStackLineRawSqlChartConfig {
12165    #[serde(
12166        rename = "alignDateRangeToGranularity",
12167        skip_serializing_if = "Option::is_none"
12168    )]
12169    pub align_date_range_to_granularity: Option<bool>,
12170    #[serde(
12171        rename = "compareToPreviousPeriod",
12172        skip_serializing_if = "Option::is_none"
12173    )]
12174    pub compare_to_previous_period: Option<bool>,
12175    #[serde(rename = "configType")]
12176    pub config_type: ClickStackLineRawSqlChartConfigConfigtype,
12177    #[serde(rename = "connectionId")]
12178    pub connection_id: String,
12179    #[serde(rename = "displayType")]
12180    pub display_type: ClickStackLineRawSqlChartConfigDisplaytype,
12181    #[serde(rename = "fillNulls", skip_serializing_if = "Option::is_none")]
12182    pub fill_nulls: Option<bool>,
12183    #[serde(rename = "fitYAxisToData", skip_serializing_if = "Option::is_none")]
12184    pub fit_y_axis_to_data: Option<bool>,
12185    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
12186    pub number_format: Option<ClickStackNumberFormat>,
12187    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
12188    pub source_id: Option<String>,
12189    #[serde(rename = "sqlTemplate")]
12190    pub sql_template: String,
12191}
12192
12193/// `ClickStackLineRawSqlChartConfig` from the ClickHouse Cloud API, in response position.
12194///
12195/// Response variant of [`ClickStackLineRawSqlChartConfig`]: every field is `Option<T>`, so a field
12196/// the API drops or sends as `null` deserializes to `None` instead of
12197/// failing.
12198#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12199pub struct ClickStackLineRawSqlChartConfigResponse {
12200    #[serde(
12201        rename = "alignDateRangeToGranularity",
12202        skip_serializing_if = "Option::is_none"
12203    )]
12204    pub align_date_range_to_granularity: Option<bool>,
12205    #[serde(
12206        rename = "compareToPreviousPeriod",
12207        skip_serializing_if = "Option::is_none"
12208    )]
12209    pub compare_to_previous_period: Option<bool>,
12210    #[serde(rename = "configType", skip_serializing_if = "Option::is_none")]
12211    pub config_type: Option<ClickStackLineRawSqlChartConfigConfigtype>,
12212    #[serde(rename = "connectionId", skip_serializing_if = "Option::is_none")]
12213    pub connection_id: Option<String>,
12214    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
12215    pub display_type: Option<ClickStackLineRawSqlChartConfigDisplaytype>,
12216    #[serde(rename = "fillNulls", skip_serializing_if = "Option::is_none")]
12217    pub fill_nulls: Option<bool>,
12218    #[serde(rename = "fitYAxisToData", skip_serializing_if = "Option::is_none")]
12219    pub fit_y_axis_to_data: Option<bool>,
12220    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
12221    pub number_format: Option<ClickStackNumberFormatResponse>,
12222    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
12223    pub source_id: Option<String>,
12224    #[serde(rename = "sqlTemplate", skip_serializing_if = "Option::is_none")]
12225    pub sql_template: Option<String>,
12226}
12227
12228/// `ClickStackLogSource` from the ClickHouse Cloud API.
12229#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12230pub struct ClickStackLogSource {
12231    #[serde(rename = "bodyExpression", skip_serializing_if = "Option::is_none")]
12232    pub body_expression: Option<String>,
12233    pub connection: String,
12234    #[serde(rename = "defaultTableSelectExpression")]
12235    pub default_table_select_expression: String,
12236    #[serde(skip_serializing_if = "Option::is_none")]
12237    pub disabled: Option<bool>,
12238    #[serde(
12239        rename = "displayedTimestampValueExpression",
12240        skip_serializing_if = "Option::is_none"
12241    )]
12242    pub displayed_timestamp_value_expression: Option<String>,
12243    #[serde(
12244        rename = "eventAttributesExpression",
12245        skip_serializing_if = "Option::is_none"
12246    )]
12247    pub event_attributes_expression: Option<String>,
12248    #[serde(rename = "filterSettings", skip_serializing_if = "Option::is_none")]
12249    pub filter_settings: Option<ClickStackSourceFilterSettings>,
12250    pub from: ClickStackSourceFrom,
12251    #[serde(
12252        rename = "highlightedRowAttributeExpressions",
12253        skip_serializing_if = "Option::is_none"
12254    )]
12255    pub highlighted_row_attribute_expressions:
12256        Option<Vec<ClickStackHighlightedAttributeExpression>>,
12257    #[serde(
12258        rename = "highlightedTraceAttributeExpressions",
12259        skip_serializing_if = "Option::is_none"
12260    )]
12261    pub highlighted_trace_attribute_expressions:
12262        Option<Vec<ClickStackHighlightedAttributeExpression>>,
12263    #[serde(skip_serializing_if = "Option::is_none")]
12264    pub id: Option<String>,
12265    #[serde(
12266        rename = "implicitColumnExpression",
12267        skip_serializing_if = "Option::is_none"
12268    )]
12269    pub implicit_column_expression: Option<String>,
12270    pub kind: ClickStackLogSourceKind,
12271    #[serde(
12272        rename = "knownColumnsListExpression",
12273        skip_serializing_if = "Option::is_none"
12274    )]
12275    pub known_columns_list_expression: Option<String>,
12276    #[serde(rename = "materializedViews", skip_serializing_if = "Option::is_none")]
12277    pub materialized_views: Option<Vec<ClickStackMaterializedView>>,
12278    #[serde(
12279        rename = "metadataMaterializedViews",
12280        skip_serializing_if = "Option::is_none"
12281    )]
12282    pub metadata_materialized_views: Option<ClickStackLogSourceMetadataMaterializedViews>,
12283    #[serde(rename = "metricSourceId", skip_serializing_if = "Option::is_none")]
12284    pub metric_source_id: Option<String>,
12285    pub name: String,
12286    #[serde(rename = "querySettings", skip_serializing_if = "Option::is_none")]
12287    pub query_settings: Option<Vec<ClickStackQuerySetting>>,
12288    #[serde(
12289        rename = "resourceAttributesExpression",
12290        skip_serializing_if = "Option::is_none"
12291    )]
12292    pub resource_attributes_expression: Option<String>,
12293    #[serde(skip_serializing_if = "Option::is_none")]
12294    pub section: Option<String>,
12295    #[serde(
12296        rename = "serviceNameExpression",
12297        skip_serializing_if = "Option::is_none"
12298    )]
12299    pub service_name_expression: Option<String>,
12300    #[serde(
12301        rename = "severityTextExpression",
12302        skip_serializing_if = "Option::is_none"
12303    )]
12304    pub severity_text_expression: Option<String>,
12305    #[serde(rename = "spanIdExpression", skip_serializing_if = "Option::is_none")]
12306    pub span_id_expression: Option<String>,
12307    #[serde(rename = "timestampValueExpression")]
12308    pub timestamp_value_expression: String,
12309    #[serde(rename = "traceIdExpression", skip_serializing_if = "Option::is_none")]
12310    pub trace_id_expression: Option<String>,
12311    #[serde(rename = "traceSourceId", skip_serializing_if = "Option::is_none")]
12312    pub trace_source_id: Option<String>,
12313    #[serde(
12314        rename = "useTextIndexForImplicitColumn",
12315        skip_serializing_if = "Option::is_none"
12316    )]
12317    pub use_text_index_for_implicit_column:
12318        Option<ClickStackLogSourceUsetextindexforimplicitcolumn>,
12319}
12320
12321/// `ClickStackLogSource` from the ClickHouse Cloud API, in response position.
12322///
12323/// Response variant of [`ClickStackLogSource`]: every field is `Option<T>`, so
12324/// a field the API drops or sends as `null` deserializes to `None` instead of
12325/// failing.
12326#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12327pub struct ClickStackLogSourceResponse {
12328    #[serde(rename = "bodyExpression", skip_serializing_if = "Option::is_none")]
12329    pub body_expression: Option<String>,
12330    #[serde(skip_serializing_if = "Option::is_none")]
12331    pub connection: Option<String>,
12332    #[serde(
12333        rename = "defaultTableSelectExpression",
12334        skip_serializing_if = "Option::is_none"
12335    )]
12336    pub default_table_select_expression: Option<String>,
12337    #[serde(skip_serializing_if = "Option::is_none")]
12338    pub disabled: Option<bool>,
12339    #[serde(
12340        rename = "displayedTimestampValueExpression",
12341        skip_serializing_if = "Option::is_none"
12342    )]
12343    pub displayed_timestamp_value_expression: Option<String>,
12344    #[serde(
12345        rename = "eventAttributesExpression",
12346        skip_serializing_if = "Option::is_none"
12347    )]
12348    pub event_attributes_expression: Option<String>,
12349    #[serde(rename = "filterSettings", skip_serializing_if = "Option::is_none")]
12350    pub filter_settings: Option<ClickStackSourceFilterSettingsResponse>,
12351    #[serde(skip_serializing_if = "Option::is_none")]
12352    pub from: Option<ClickStackSourceFromResponse>,
12353    #[serde(
12354        rename = "highlightedRowAttributeExpressions",
12355        skip_serializing_if = "Option::is_none"
12356    )]
12357    pub highlighted_row_attribute_expressions:
12358        Option<Vec<ClickStackHighlightedAttributeExpressionResponse>>,
12359    #[serde(
12360        rename = "highlightedTraceAttributeExpressions",
12361        skip_serializing_if = "Option::is_none"
12362    )]
12363    pub highlighted_trace_attribute_expressions:
12364        Option<Vec<ClickStackHighlightedAttributeExpressionResponse>>,
12365    #[serde(skip_serializing_if = "Option::is_none")]
12366    pub id: Option<String>,
12367    #[serde(
12368        rename = "implicitColumnExpression",
12369        skip_serializing_if = "Option::is_none"
12370    )]
12371    pub implicit_column_expression: Option<String>,
12372    #[serde(skip_serializing_if = "Option::is_none")]
12373    pub kind: Option<ClickStackLogSourceKind>,
12374    #[serde(
12375        rename = "knownColumnsListExpression",
12376        skip_serializing_if = "Option::is_none"
12377    )]
12378    pub known_columns_list_expression: Option<String>,
12379    #[serde(rename = "materializedViews", skip_serializing_if = "Option::is_none")]
12380    pub materialized_views: Option<Vec<ClickStackMaterializedViewResponse>>,
12381    #[serde(
12382        rename = "metadataMaterializedViews",
12383        skip_serializing_if = "Option::is_none"
12384    )]
12385    pub metadata_materialized_views: Option<ClickStackLogSourceMetadataMaterializedViewsResponse>,
12386    #[serde(rename = "metricSourceId", skip_serializing_if = "Option::is_none")]
12387    pub metric_source_id: Option<String>,
12388    #[serde(skip_serializing_if = "Option::is_none")]
12389    pub name: Option<String>,
12390    #[serde(rename = "querySettings", skip_serializing_if = "Option::is_none")]
12391    pub query_settings: Option<Vec<ClickStackQuerySettingResponse>>,
12392    #[serde(
12393        rename = "resourceAttributesExpression",
12394        skip_serializing_if = "Option::is_none"
12395    )]
12396    pub resource_attributes_expression: Option<String>,
12397    #[serde(skip_serializing_if = "Option::is_none")]
12398    pub section: Option<String>,
12399    #[serde(
12400        rename = "serviceNameExpression",
12401        skip_serializing_if = "Option::is_none"
12402    )]
12403    pub service_name_expression: Option<String>,
12404    #[serde(
12405        rename = "severityTextExpression",
12406        skip_serializing_if = "Option::is_none"
12407    )]
12408    pub severity_text_expression: Option<String>,
12409    #[serde(rename = "spanIdExpression", skip_serializing_if = "Option::is_none")]
12410    pub span_id_expression: Option<String>,
12411    #[serde(
12412        rename = "timestampValueExpression",
12413        skip_serializing_if = "Option::is_none"
12414    )]
12415    pub timestamp_value_expression: Option<String>,
12416    #[serde(rename = "traceIdExpression", skip_serializing_if = "Option::is_none")]
12417    pub trace_id_expression: Option<String>,
12418    #[serde(rename = "traceSourceId", skip_serializing_if = "Option::is_none")]
12419    pub trace_source_id: Option<String>,
12420    #[serde(
12421        rename = "useTextIndexForImplicitColumn",
12422        skip_serializing_if = "Option::is_none"
12423    )]
12424    pub use_text_index_for_implicit_column:
12425        Option<ClickStackLogSourceUsetextindexforimplicitcolumn>,
12426}
12427
12428/// `ClickStackLogSourceMetadataMaterializedViews` from the ClickHouse Cloud API.
12429#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12430pub struct ClickStackLogSourceMetadataMaterializedViews {
12431    pub granularity: String,
12432    #[serde(rename = "keyRollupTable")]
12433    pub key_rollup_table: String,
12434    #[serde(rename = "kvRollupTable")]
12435    pub kv_rollup_table: String,
12436}
12437
12438/// `ClickStackLogSourceMetadataMaterializedViews` from the ClickHouse Cloud API, in response position.
12439///
12440/// Response variant of [`ClickStackLogSourceMetadataMaterializedViews`]: every
12441/// field is `Option<T>`, so a field the API drops or sends as `null`
12442/// deserializes to `None` instead of failing.
12443#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12444pub struct ClickStackLogSourceMetadataMaterializedViewsResponse {
12445    #[serde(skip_serializing_if = "Option::is_none")]
12446    pub granularity: Option<String>,
12447    #[serde(rename = "keyRollupTable", skip_serializing_if = "Option::is_none")]
12448    pub key_rollup_table: Option<String>,
12449    #[serde(rename = "kvRollupTable", skip_serializing_if = "Option::is_none")]
12450    pub kv_rollup_table: Option<String>,
12451}
12452
12453/// `ClickStackMarkdownChartConfig` from the ClickHouse Cloud API.
12454#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12455pub struct ClickStackMarkdownChartConfig {
12456    #[serde(rename = "displayType")]
12457    pub display_type: ClickStackMarkdownChartConfigDisplaytype,
12458    #[serde(skip_serializing_if = "Option::is_none")]
12459    pub markdown: Option<String>,
12460}
12461
12462/// `ClickStackMarkdownChartConfig` from the ClickHouse Cloud API, in response position.
12463///
12464/// Response variant of [`ClickStackMarkdownChartConfig`]: every field is `Option<T>`, so a field
12465/// the API drops or sends as `null` deserializes to `None` instead of
12466/// failing.
12467#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12468pub struct ClickStackMarkdownChartConfigResponse {
12469    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
12470    pub display_type: Option<ClickStackMarkdownChartConfigDisplaytype>,
12471    #[serde(skip_serializing_if = "Option::is_none")]
12472    pub markdown: Option<String>,
12473}
12474
12475/// `ClickStackMarkdownChartSeries` from the ClickHouse Cloud API.
12476#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12477pub struct ClickStackMarkdownChartSeries {
12478    pub content: String,
12479    pub r#type: ClickStackMarkdownChartSeriesType,
12480}
12481
12482/// `ClickStackMaterializedView` from the ClickHouse Cloud API.
12483#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12484pub struct ClickStackMaterializedView {
12485    #[serde(rename = "aggregatedColumns")]
12486    pub aggregated_columns: Vec<ClickStackAggregatedColumn>,
12487    #[serde(rename = "databaseName")]
12488    pub database_name: String,
12489    #[serde(rename = "dimensionColumns")]
12490    pub dimension_columns: String,
12491    #[serde(rename = "minDate", skip_serializing_if = "Option::is_none")]
12492    pub min_date: Option<chrono::DateTime<chrono::Utc>>,
12493    #[serde(rename = "minGranularity")]
12494    pub min_granularity: ClickStackMaterializedViewMingranularity,
12495    #[serde(rename = "tableName")]
12496    pub table_name: String,
12497    #[serde(rename = "timestampColumn")]
12498    pub timestamp_column: String,
12499}
12500
12501/// `ClickStackMaterializedView` from the ClickHouse Cloud API, in response position.
12502///
12503/// Response variant of [`ClickStackMaterializedView`]: every field is
12504/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
12505/// `None` instead of failing.
12506#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12507pub struct ClickStackMaterializedViewResponse {
12508    #[serde(rename = "aggregatedColumns", skip_serializing_if = "Option::is_none")]
12509    pub aggregated_columns: Option<Vec<ClickStackAggregatedColumnResponse>>,
12510    #[serde(rename = "databaseName", skip_serializing_if = "Option::is_none")]
12511    pub database_name: Option<String>,
12512    #[serde(rename = "dimensionColumns", skip_serializing_if = "Option::is_none")]
12513    pub dimension_columns: Option<String>,
12514    #[serde(rename = "minDate", skip_serializing_if = "Option::is_none")]
12515    pub min_date: Option<chrono::DateTime<chrono::Utc>>,
12516    #[serde(rename = "minGranularity", skip_serializing_if = "Option::is_none")]
12517    pub min_granularity: Option<ClickStackMaterializedViewMingranularity>,
12518    #[serde(rename = "tableName", skip_serializing_if = "Option::is_none")]
12519    pub table_name: Option<String>,
12520    #[serde(rename = "timestampColumn", skip_serializing_if = "Option::is_none")]
12521    pub timestamp_column: Option<String>,
12522}
12523
12524/// `ClickStackMetricSource` from the ClickHouse Cloud API.
12525#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12526pub struct ClickStackMetricSource {
12527    pub connection: String,
12528    #[serde(skip_serializing_if = "Option::is_none")]
12529    pub disabled: Option<bool>,
12530    pub from: ClickStackMetricSourceFrom,
12531    #[serde(skip_serializing_if = "Option::is_none")]
12532    pub id: Option<String>,
12533    pub kind: ClickStackMetricSourceKind,
12534    #[serde(rename = "logSourceId", skip_serializing_if = "Option::is_none")]
12535    pub log_source_id: Option<String>,
12536    #[serde(rename = "metricTables")]
12537    pub metric_tables: ClickStackMetricTables,
12538    pub name: String,
12539    #[serde(rename = "querySettings", skip_serializing_if = "Option::is_none")]
12540    pub query_settings: Option<Vec<ClickStackQuerySetting>>,
12541    #[serde(rename = "resourceAttributesExpression")]
12542    pub resource_attributes_expression: String,
12543    #[serde(skip_serializing_if = "Option::is_none")]
12544    pub section: Option<String>,
12545    #[serde(rename = "timestampValueExpression")]
12546    pub timestamp_value_expression: String,
12547}
12548
12549/// `ClickStackMetricSource` from the ClickHouse Cloud API, in response position.
12550///
12551/// Response variant of [`ClickStackMetricSource`]: every field is `Option<T>`,
12552/// so a field the API drops or sends as `null` deserializes to `None` instead
12553/// of failing.
12554#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12555pub struct ClickStackMetricSourceResponse {
12556    #[serde(skip_serializing_if = "Option::is_none")]
12557    pub connection: Option<String>,
12558    #[serde(skip_serializing_if = "Option::is_none")]
12559    pub disabled: Option<bool>,
12560    #[serde(skip_serializing_if = "Option::is_none")]
12561    pub from: Option<ClickStackMetricSourceFromResponse>,
12562    #[serde(skip_serializing_if = "Option::is_none")]
12563    pub id: Option<String>,
12564    #[serde(skip_serializing_if = "Option::is_none")]
12565    pub kind: Option<ClickStackMetricSourceKind>,
12566    #[serde(rename = "logSourceId", skip_serializing_if = "Option::is_none")]
12567    pub log_source_id: Option<String>,
12568    #[serde(rename = "metricTables", skip_serializing_if = "Option::is_none")]
12569    pub metric_tables: Option<ClickStackMetricTablesResponse>,
12570    #[serde(skip_serializing_if = "Option::is_none")]
12571    pub name: Option<String>,
12572    #[serde(rename = "querySettings", skip_serializing_if = "Option::is_none")]
12573    pub query_settings: Option<Vec<ClickStackQuerySettingResponse>>,
12574    #[serde(
12575        rename = "resourceAttributesExpression",
12576        skip_serializing_if = "Option::is_none"
12577    )]
12578    pub resource_attributes_expression: Option<String>,
12579    #[serde(skip_serializing_if = "Option::is_none")]
12580    pub section: Option<String>,
12581    #[serde(
12582        rename = "timestampValueExpression",
12583        skip_serializing_if = "Option::is_none"
12584    )]
12585    pub timestamp_value_expression: Option<String>,
12586}
12587
12588/// `ClickStackMetricSourceFrom` from the ClickHouse Cloud API.
12589#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12590pub struct ClickStackMetricSourceFrom {
12591    #[serde(rename = "databaseName")]
12592    pub database_name: String,
12593    #[serde(rename = "tableName", skip_serializing_if = "Option::is_none")]
12594    pub table_name: Option<String>,
12595}
12596
12597/// `ClickStackMetricSourceFrom` from the ClickHouse Cloud API, in response position.
12598///
12599/// Response variant of [`ClickStackMetricSourceFrom`]: every field is
12600/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
12601/// `None` instead of failing.
12602#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12603pub struct ClickStackMetricSourceFromResponse {
12604    #[serde(rename = "databaseName", skip_serializing_if = "Option::is_none")]
12605    pub database_name: Option<String>,
12606    #[serde(rename = "tableName", skip_serializing_if = "Option::is_none")]
12607    pub table_name: Option<String>,
12608}
12609
12610/// `ClickStackMetricTables` from the ClickHouse Cloud API.
12611#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12612pub struct ClickStackMetricTables {
12613    #[serde(rename = "exponential histogram")]
12614    pub exponential_histogram: String,
12615    pub gauge: String,
12616    pub histogram: String,
12617    pub sum: String,
12618    pub summary: String,
12619}
12620
12621/// `ClickStackMetricTables` from the ClickHouse Cloud API, in response position.
12622///
12623/// Response variant of [`ClickStackMetricTables`]: every field is `Option<T>`,
12624/// so a field the API drops or sends as `null` deserializes to `None` instead
12625/// of failing.
12626#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12627pub struct ClickStackMetricTablesResponse {
12628    #[serde(
12629        rename = "exponential histogram",
12630        skip_serializing_if = "Option::is_none"
12631    )]
12632    pub exponential_histogram: Option<String>,
12633    #[serde(skip_serializing_if = "Option::is_none")]
12634    pub gauge: Option<String>,
12635    #[serde(skip_serializing_if = "Option::is_none")]
12636    pub histogram: Option<String>,
12637    #[serde(skip_serializing_if = "Option::is_none")]
12638    pub sum: Option<String>,
12639    #[serde(skip_serializing_if = "Option::is_none")]
12640    pub summary: Option<String>,
12641}
12642
12643/// `ClickStackNumberBuilderChartConfig` from the ClickHouse Cloud API.
12644#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12645pub struct ClickStackNumberBuilderChartConfig {
12646    #[serde(rename = "backgroundChart", skip_serializing_if = "Option::is_none")]
12647    pub background_chart: Option<ClickStackBackgroundChart>,
12648    #[serde(skip_serializing_if = "Option::is_none")]
12649    pub color: Option<ClickStackChartColor>,
12650    #[serde(rename = "colorRules", skip_serializing_if = "Option::is_none")]
12651    pub color_rules: Option<Vec<ClickStackNumberTileColorCondition>>,
12652    #[serde(rename = "displayType")]
12653    pub display_type: ClickStackNumberBuilderChartConfigDisplaytype,
12654    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
12655    pub number_format: Option<ClickStackNumberFormat>,
12656    pub select: Vec<ClickStackSelectItem>,
12657    #[serde(rename = "sourceId")]
12658    pub source_id: String,
12659}
12660
12661/// `ClickStackNumberBuilderChartConfig` from the ClickHouse Cloud API, in response position.
12662///
12663/// Response variant of [`ClickStackNumberBuilderChartConfig`]: every field is `Option<T>`, so a field
12664/// the API drops or sends as `null` deserializes to `None` instead of
12665/// failing.
12666#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12667pub struct ClickStackNumberBuilderChartConfigResponse {
12668    #[serde(rename = "backgroundChart", skip_serializing_if = "Option::is_none")]
12669    pub background_chart: Option<ClickStackBackgroundChartResponse>,
12670    #[serde(skip_serializing_if = "Option::is_none")]
12671    pub color: Option<ClickStackChartColor>,
12672    #[serde(rename = "colorRules", skip_serializing_if = "Option::is_none")]
12673    pub color_rules: Option<Vec<ClickStackNumberTileColorConditionResponse>>,
12674    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
12675    pub display_type: Option<ClickStackNumberBuilderChartConfigDisplaytype>,
12676    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
12677    pub number_format: Option<ClickStackNumberFormatResponse>,
12678    #[serde(skip_serializing_if = "Option::is_none")]
12679    pub select: Option<Vec<ClickStackSelectItemResponse>>,
12680    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
12681    pub source_id: Option<String>,
12682}
12683
12684/// `ClickStackNumberChartSeries` from the ClickHouse Cloud API.
12685#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12686pub struct ClickStackNumberChartSeries {
12687    #[serde(rename = "aggFn")]
12688    pub agg_fn: ClickStackNumberChartSeriesAggfn,
12689    #[serde(skip_serializing_if = "Option::is_none")]
12690    pub alias: Option<String>,
12691    #[serde(skip_serializing_if = "Option::is_none")]
12692    pub field: Option<String>,
12693    #[serde(skip_serializing_if = "Option::is_none")]
12694    pub level: Option<f64>,
12695    #[serde(rename = "metricDataType", skip_serializing_if = "Option::is_none")]
12696    pub metric_data_type: Option<ClickStackNumberChartSeriesMetricdatatype>,
12697    #[serde(rename = "metricName", skip_serializing_if = "Option::is_none")]
12698    pub metric_name: Option<String>,
12699    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
12700    pub number_format: Option<ClickStackNumberFormat>,
12701    #[serde(rename = "sourceId")]
12702    pub source_id: String,
12703    pub r#type: ClickStackNumberChartSeriesType,
12704    pub r#where: String,
12705    #[serde(rename = "whereLanguage")]
12706    pub where_language: ClickStackNumberChartSeriesWherelanguage,
12707}
12708
12709/// `ClickStackNumberFormat` from the ClickHouse Cloud API.
12710#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12711pub struct ClickStackNumberFormat {
12712    pub average: bool,
12713    #[serde(rename = "currencySymbol")]
12714    pub currency_symbol: String,
12715    #[serde(rename = "decimalBytes")]
12716    pub decimal_bytes: bool,
12717    pub factor: f64,
12718    pub mantissa: i64,
12719    #[serde(rename = "numericUnit")]
12720    pub numeric_unit: ClickStackNumberFormatNumericunit,
12721    pub output: ClickStackNumberFormatOutput,
12722    #[serde(rename = "thousandSeparated")]
12723    pub thousand_separated: bool,
12724    pub unit: String,
12725}
12726
12727/// `ClickStackNumberFormat` from the ClickHouse Cloud API, in response position.
12728///
12729/// Response variant of [`ClickStackNumberFormat`]: every field is `Option<T>`, so a field
12730/// the API drops or sends as `null` deserializes to `None` instead of
12731/// failing.
12732#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12733pub struct ClickStackNumberFormatResponse {
12734    #[serde(skip_serializing_if = "Option::is_none")]
12735    pub average: Option<bool>,
12736    #[serde(rename = "currencySymbol", skip_serializing_if = "Option::is_none")]
12737    pub currency_symbol: Option<String>,
12738    #[serde(rename = "decimalBytes", skip_serializing_if = "Option::is_none")]
12739    pub decimal_bytes: Option<bool>,
12740    #[serde(skip_serializing_if = "Option::is_none")]
12741    pub factor: Option<f64>,
12742    #[serde(skip_serializing_if = "Option::is_none")]
12743    pub mantissa: Option<i64>,
12744    #[serde(rename = "numericUnit", skip_serializing_if = "Option::is_none")]
12745    pub numeric_unit: Option<ClickStackNumberFormatNumericunit>,
12746    #[serde(skip_serializing_if = "Option::is_none")]
12747    pub output: Option<ClickStackNumberFormatOutput>,
12748    #[serde(rename = "thousandSeparated", skip_serializing_if = "Option::is_none")]
12749    pub thousand_separated: Option<bool>,
12750    #[serde(skip_serializing_if = "Option::is_none")]
12751    pub unit: Option<String>,
12752}
12753
12754/// `ClickStackNumberRawSqlChartConfig` from the ClickHouse Cloud API.
12755#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12756pub struct ClickStackNumberRawSqlChartConfig {
12757    #[serde(skip_serializing_if = "Option::is_none")]
12758    pub color: Option<ClickStackChartColor>,
12759    #[serde(rename = "configType")]
12760    pub config_type: ClickStackNumberRawSqlChartConfigConfigtype,
12761    #[serde(rename = "connectionId")]
12762    pub connection_id: String,
12763    #[serde(rename = "displayType")]
12764    pub display_type: ClickStackNumberRawSqlChartConfigDisplaytype,
12765    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
12766    pub number_format: Option<ClickStackNumberFormat>,
12767    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
12768    pub source_id: Option<String>,
12769    #[serde(rename = "sqlTemplate")]
12770    pub sql_template: String,
12771}
12772
12773/// `ClickStackNumberRawSqlChartConfig` from the ClickHouse Cloud API, in response position.
12774///
12775/// Response variant of [`ClickStackNumberRawSqlChartConfig`]: every field is `Option<T>`, so a field
12776/// the API drops or sends as `null` deserializes to `None` instead of
12777/// failing.
12778#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12779pub struct ClickStackNumberRawSqlChartConfigResponse {
12780    #[serde(skip_serializing_if = "Option::is_none")]
12781    pub color: Option<ClickStackChartColor>,
12782    #[serde(rename = "configType", skip_serializing_if = "Option::is_none")]
12783    pub config_type: Option<ClickStackNumberRawSqlChartConfigConfigtype>,
12784    #[serde(rename = "connectionId", skip_serializing_if = "Option::is_none")]
12785    pub connection_id: Option<String>,
12786    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
12787    pub display_type: Option<ClickStackNumberRawSqlChartConfigDisplaytype>,
12788    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
12789    pub number_format: Option<ClickStackNumberFormatResponse>,
12790    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
12791    pub source_id: Option<String>,
12792    #[serde(rename = "sqlTemplate", skip_serializing_if = "Option::is_none")]
12793    pub sql_template: Option<String>,
12794}
12795
12796/// `ClickStackNumericColorCondition` from the ClickHouse Cloud API.
12797#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12798pub struct ClickStackNumericColorCondition {
12799    pub color: ClickStackChartColor,
12800    #[serde(skip_serializing_if = "Option::is_none")]
12801    pub label: Option<String>,
12802    pub operator: ClickStackNumericColorConditionOperator,
12803    pub value: f64,
12804}
12805
12806/// `ClickStackNumericColorCondition` from the ClickHouse Cloud API, in response position.
12807///
12808/// Response variant of [`ClickStackNumericColorCondition`]: every field is `Option<T>`, so a field
12809/// the API drops or sends as `null` deserializes to `None` instead of
12810/// failing.
12811#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12812pub struct ClickStackNumericColorConditionResponse {
12813    #[serde(skip_serializing_if = "Option::is_none")]
12814    pub color: Option<ClickStackChartColor>,
12815    #[serde(skip_serializing_if = "Option::is_none")]
12816    pub label: Option<String>,
12817    #[serde(skip_serializing_if = "Option::is_none")]
12818    pub operator: Option<ClickStackNumericColorConditionOperator>,
12819    #[serde(skip_serializing_if = "Option::is_none")]
12820    pub value: Option<f64>,
12821}
12822
12823/// `ClickStackOnClickDashboard` from the ClickHouse Cloud API.
12824#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12825pub struct ClickStackOnClickDashboard {
12826    #[serde(skip_serializing_if = "Option::is_none")]
12827    pub filters: Option<Vec<ClickStackOnClickFilterTemplate>>,
12828    pub target: ClickStackOnClickTarget,
12829    pub r#type: ClickStackOnClickDashboardType,
12830    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
12831    pub where_language: Option<ClickStackOnClickDashboardWherelanguage>,
12832    #[serde(rename = "whereTemplate", skip_serializing_if = "Option::is_none")]
12833    pub where_template: Option<String>,
12834}
12835
12836/// `ClickStackOnClickDashboard` from the ClickHouse Cloud API, in response position.
12837///
12838/// Response variant of [`ClickStackOnClickDashboard`]: every field is `Option<T>`, so a field
12839/// the API drops or sends as `null` deserializes to `None` instead of
12840/// failing.
12841#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12842pub struct ClickStackOnClickDashboardResponse {
12843    #[serde(skip_serializing_if = "Option::is_none")]
12844    pub filters: Option<Vec<ClickStackOnClickFilterTemplateResponse>>,
12845    #[serde(skip_serializing_if = "Option::is_none")]
12846    pub target: Option<ClickStackOnClickTargetResponse>,
12847    #[serde(skip_serializing_if = "Option::is_none")]
12848    pub r#type: Option<ClickStackOnClickDashboardType>,
12849    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
12850    pub where_language: Option<ClickStackOnClickDashboardWherelanguage>,
12851    #[serde(rename = "whereTemplate", skip_serializing_if = "Option::is_none")]
12852    pub where_template: Option<String>,
12853}
12854
12855/// `ClickStackOnClickExternal` from the ClickHouse Cloud API.
12856#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12857pub struct ClickStackOnClickExternal {
12858    pub r#type: ClickStackOnClickExternalType,
12859    #[serde(rename = "urlTemplate")]
12860    pub url_template: String,
12861}
12862
12863/// `ClickStackOnClickExternal` from the ClickHouse Cloud API, in response position.
12864///
12865/// Response variant of [`ClickStackOnClickExternal`]: every field is `Option<T>`, so a field
12866/// the API drops or sends as `null` deserializes to `None` instead of
12867/// failing.
12868#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12869pub struct ClickStackOnClickExternalResponse {
12870    #[serde(skip_serializing_if = "Option::is_none")]
12871    pub r#type: Option<ClickStackOnClickExternalType>,
12872    #[serde(rename = "urlTemplate", skip_serializing_if = "Option::is_none")]
12873    pub url_template: Option<String>,
12874}
12875
12876/// `ClickStackOnClickFilterTemplate` from the ClickHouse Cloud API.
12877#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12878pub struct ClickStackOnClickFilterTemplate {
12879    pub expression: String,
12880    pub kind: ClickStackOnClickFilterTemplateKind,
12881    pub template: String,
12882}
12883
12884/// `ClickStackOnClickFilterTemplate` from the ClickHouse Cloud API, in response position.
12885///
12886/// Response variant of [`ClickStackOnClickFilterTemplate`]: every field is `Option<T>`, so a field
12887/// the API drops or sends as `null` deserializes to `None` instead of
12888/// failing.
12889#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12890pub struct ClickStackOnClickFilterTemplateResponse {
12891    #[serde(skip_serializing_if = "Option::is_none")]
12892    pub expression: Option<String>,
12893    #[serde(skip_serializing_if = "Option::is_none")]
12894    pub kind: Option<ClickStackOnClickFilterTemplateKind>,
12895    #[serde(skip_serializing_if = "Option::is_none")]
12896    pub template: Option<String>,
12897}
12898
12899/// `ClickStackOnClickSearch` from the ClickHouse Cloud API.
12900#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12901pub struct ClickStackOnClickSearch {
12902    #[serde(skip_serializing_if = "Option::is_none")]
12903    pub filters: Option<Vec<ClickStackOnClickFilterTemplate>>,
12904    pub target: ClickStackOnClickTarget,
12905    pub r#type: ClickStackOnClickSearchType,
12906    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
12907    pub where_language: Option<ClickStackOnClickSearchWherelanguage>,
12908    #[serde(rename = "whereTemplate", skip_serializing_if = "Option::is_none")]
12909    pub where_template: Option<String>,
12910}
12911
12912/// `ClickStackOnClickSearch` from the ClickHouse Cloud API, in response position.
12913///
12914/// Response variant of [`ClickStackOnClickSearch`]: every field is `Option<T>`, so a field
12915/// the API drops or sends as `null` deserializes to `None` instead of
12916/// failing.
12917#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12918pub struct ClickStackOnClickSearchResponse {
12919    #[serde(skip_serializing_if = "Option::is_none")]
12920    pub filters: Option<Vec<ClickStackOnClickFilterTemplateResponse>>,
12921    #[serde(skip_serializing_if = "Option::is_none")]
12922    pub target: Option<ClickStackOnClickTargetResponse>,
12923    #[serde(skip_serializing_if = "Option::is_none")]
12924    pub r#type: Option<ClickStackOnClickSearchType>,
12925    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
12926    pub where_language: Option<ClickStackOnClickSearchWherelanguage>,
12927    #[serde(rename = "whereTemplate", skip_serializing_if = "Option::is_none")]
12928    pub where_template: Option<String>,
12929}
12930
12931/// `ClickStackOnClickTargetIdVariant` from the ClickHouse Cloud API.
12932#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12933pub struct ClickStackOnClickTargetIdVariant {
12934    pub id: String,
12935    pub mode: ClickStackOnClickTargetIdVariantMode,
12936}
12937
12938/// `ClickStackOnClickTargetIdVariant` from the ClickHouse Cloud API, in response position.
12939///
12940/// Response variant of [`ClickStackOnClickTargetIdVariant`]: every field is `Option<T>`, so a field
12941/// the API drops or sends as `null` deserializes to `None` instead of
12942/// failing.
12943#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12944pub struct ClickStackOnClickTargetIdVariantResponse {
12945    #[serde(skip_serializing_if = "Option::is_none")]
12946    pub id: Option<String>,
12947    #[serde(skip_serializing_if = "Option::is_none")]
12948    pub mode: Option<ClickStackOnClickTargetIdVariantMode>,
12949}
12950
12951/// `ClickStackOnClickTargetTemplateVariant` from the ClickHouse Cloud API.
12952#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12953pub struct ClickStackOnClickTargetTemplateVariant {
12954    pub mode: ClickStackOnClickTargetTemplateVariantMode,
12955    pub template: String,
12956}
12957
12958/// `ClickStackOnClickTargetTemplateVariant` from the ClickHouse Cloud API, in response position.
12959///
12960/// Response variant of [`ClickStackOnClickTargetTemplateVariant`]: every field is `Option<T>`, so a field
12961/// the API drops or sends as `null` deserializes to `None` instead of
12962/// failing.
12963#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12964pub struct ClickStackOnClickTargetTemplateVariantResponse {
12965    #[serde(skip_serializing_if = "Option::is_none")]
12966    pub mode: Option<ClickStackOnClickTargetTemplateVariantMode>,
12967    #[serde(skip_serializing_if = "Option::is_none")]
12968    pub template: Option<String>,
12969}
12970
12971/// `ClickStackPagerDutyAPIWebhook` from the ClickHouse Cloud API.
12972///
12973/// Used in response position only: every field is `Option<T>`, so a field the
12974/// API drops or sends as `null` deserializes to `None` instead of failing.
12975#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12976pub struct ClickStackPagerDutyAPIWebhook {
12977    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
12978    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
12979    #[serde(skip_serializing_if = "Option::is_none")]
12980    pub description: Option<String>,
12981    #[serde(skip_serializing_if = "Option::is_none")]
12982    pub id: Option<String>,
12983    #[serde(skip_serializing_if = "Option::is_none")]
12984    pub name: Option<String>,
12985    #[serde(skip_serializing_if = "Option::is_none")]
12986    pub service: Option<ClickStackPagerDutyAPIWebhookService>,
12987    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
12988    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
12989    #[serde(skip_serializing_if = "Option::is_none")]
12990    pub url: Option<String>,
12991}
12992
12993/// `ClickStackPieBuilderChartConfig` from the ClickHouse Cloud API.
12994#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
12995pub struct ClickStackPieBuilderChartConfig {
12996    #[serde(rename = "displayType")]
12997    pub display_type: ClickStackPieBuilderChartConfigDisplaytype,
12998    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
12999    pub group_by: Option<String>,
13000    #[serde(skip_serializing_if = "Option::is_none")]
13001    pub limit: Option<i64>,
13002    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13003    pub number_format: Option<ClickStackNumberFormat>,
13004    #[serde(rename = "orderBy", skip_serializing_if = "Option::is_none")]
13005    pub order_by: Option<String>,
13006    pub select: Vec<ClickStackSelectItem>,
13007    #[serde(rename = "sourceId")]
13008    pub source_id: String,
13009}
13010
13011/// `ClickStackPieBuilderChartConfig` from the ClickHouse Cloud API, in response position.
13012///
13013/// Response variant of [`ClickStackPieBuilderChartConfig`]: every field is `Option<T>`, so a field
13014/// the API drops or sends as `null` deserializes to `None` instead of
13015/// failing.
13016#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13017pub struct ClickStackPieBuilderChartConfigResponse {
13018    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
13019    pub display_type: Option<ClickStackPieBuilderChartConfigDisplaytype>,
13020    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
13021    pub group_by: Option<String>,
13022    #[serde(skip_serializing_if = "Option::is_none")]
13023    pub limit: Option<i64>,
13024    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13025    pub number_format: Option<ClickStackNumberFormatResponse>,
13026    #[serde(rename = "orderBy", skip_serializing_if = "Option::is_none")]
13027    pub order_by: Option<String>,
13028    #[serde(skip_serializing_if = "Option::is_none")]
13029    pub select: Option<Vec<ClickStackSelectItemResponse>>,
13030    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
13031    pub source_id: Option<String>,
13032}
13033
13034/// `ClickStackPieRawSqlChartConfig` from the ClickHouse Cloud API.
13035#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13036pub struct ClickStackPieRawSqlChartConfig {
13037    #[serde(rename = "configType")]
13038    pub config_type: ClickStackPieRawSqlChartConfigConfigtype,
13039    #[serde(rename = "connectionId")]
13040    pub connection_id: String,
13041    #[serde(rename = "displayType")]
13042    pub display_type: ClickStackPieRawSqlChartConfigDisplaytype,
13043    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13044    pub number_format: Option<ClickStackNumberFormat>,
13045    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
13046    pub source_id: Option<String>,
13047    #[serde(rename = "sqlTemplate")]
13048    pub sql_template: String,
13049}
13050
13051/// `ClickStackPieRawSqlChartConfig` from the ClickHouse Cloud API, in response position.
13052///
13053/// Response variant of [`ClickStackPieRawSqlChartConfig`]: every field is `Option<T>`, so a field
13054/// the API drops or sends as `null` deserializes to `None` instead of
13055/// failing.
13056#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13057pub struct ClickStackPieRawSqlChartConfigResponse {
13058    #[serde(rename = "configType", skip_serializing_if = "Option::is_none")]
13059    pub config_type: Option<ClickStackPieRawSqlChartConfigConfigtype>,
13060    #[serde(rename = "connectionId", skip_serializing_if = "Option::is_none")]
13061    pub connection_id: Option<String>,
13062    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
13063    pub display_type: Option<ClickStackPieRawSqlChartConfigDisplaytype>,
13064    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13065    pub number_format: Option<ClickStackNumberFormatResponse>,
13066    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
13067    pub source_id: Option<String>,
13068    #[serde(rename = "sqlTemplate", skip_serializing_if = "Option::is_none")]
13069    pub sql_template: Option<String>,
13070}
13071
13072/// `ClickStackPromqlSource` from the ClickHouse Cloud API.
13073#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13074pub struct ClickStackPromqlSource {
13075    pub connection: String,
13076    #[serde(skip_serializing_if = "Option::is_none")]
13077    pub disabled: Option<bool>,
13078    pub from: ClickStackSourceFrom,
13079    #[serde(skip_serializing_if = "Option::is_none")]
13080    pub id: Option<String>,
13081    pub kind: ClickStackPromqlSourceKind,
13082    pub name: String,
13083    #[serde(rename = "querySettings", skip_serializing_if = "Option::is_none")]
13084    pub query_settings: Option<Vec<ClickStackQuerySetting>>,
13085    #[serde(skip_serializing_if = "Option::is_none")]
13086    pub section: Option<String>,
13087    #[serde(rename = "timestampValueExpression")]
13088    pub timestamp_value_expression: String,
13089}
13090
13091/// `ClickStackPromqlSource` from the ClickHouse Cloud API, in response position.
13092///
13093/// Response variant of [`ClickStackPromqlSource`]: every field is `Option<T>`,
13094/// so a field the API drops or sends as `null` deserializes to `None` instead
13095/// of failing.
13096#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13097pub struct ClickStackPromqlSourceResponse {
13098    #[serde(skip_serializing_if = "Option::is_none")]
13099    pub connection: Option<String>,
13100    #[serde(skip_serializing_if = "Option::is_none")]
13101    pub disabled: Option<bool>,
13102    #[serde(skip_serializing_if = "Option::is_none")]
13103    pub from: Option<ClickStackSourceFromResponse>,
13104    #[serde(skip_serializing_if = "Option::is_none")]
13105    pub id: Option<String>,
13106    #[serde(skip_serializing_if = "Option::is_none")]
13107    pub kind: Option<ClickStackPromqlSourceKind>,
13108    #[serde(skip_serializing_if = "Option::is_none")]
13109    pub name: Option<String>,
13110    #[serde(rename = "querySettings", skip_serializing_if = "Option::is_none")]
13111    pub query_settings: Option<Vec<ClickStackQuerySettingResponse>>,
13112    #[serde(skip_serializing_if = "Option::is_none")]
13113    pub section: Option<String>,
13114    #[serde(
13115        rename = "timestampValueExpression",
13116        skip_serializing_if = "Option::is_none"
13117    )]
13118    pub timestamp_value_expression: Option<String>,
13119}
13120
13121/// `ClickStackQuerySetting` from the ClickHouse Cloud API.
13122#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13123pub struct ClickStackQuerySetting {
13124    pub setting: String,
13125    pub value: String,
13126}
13127
13128/// `ClickStackQuerySetting` from the ClickHouse Cloud API, in response position.
13129///
13130/// Response variant of [`ClickStackQuerySetting`]: every field is `Option<T>`,
13131/// so a field the API drops or sends as `null` deserializes to `None` instead
13132/// of failing.
13133#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13134pub struct ClickStackQuerySettingResponse {
13135    #[serde(skip_serializing_if = "Option::is_none")]
13136    pub setting: Option<String>,
13137    #[serde(skip_serializing_if = "Option::is_none")]
13138    pub value: Option<String>,
13139}
13140
13141/// `ClickStackRole` from the ClickHouse Cloud API.
13142///
13143/// Used in response position only: every field is `Option<T>`, so a field the
13144/// API drops or sends as `null` deserializes to `None` instead of failing.
13145#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13146pub struct ClickStackRole {
13147    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
13148    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
13149    #[serde(skip_serializing_if = "Option::is_none")]
13150    pub description: Option<String>,
13151    #[serde(skip_serializing_if = "Option::is_none")]
13152    pub id: Option<String>,
13153    #[serde(rename = "isPredefined", skip_serializing_if = "Option::is_none")]
13154    pub is_predefined: Option<bool>,
13155    #[serde(skip_serializing_if = "Option::is_none")]
13156    pub name: Option<String>,
13157    #[serde(skip_serializing_if = "Option::is_none")]
13158    pub permissions: Option<Vec<ClickStackCASLPermissionResponse>>,
13159    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
13160    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
13161}
13162
13163/// `ClickStackSavedFilterValue` from the ClickHouse Cloud API.
13164#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13165pub struct ClickStackSavedFilterValue {
13166    pub condition: String,
13167    #[serde(skip_serializing_if = "Option::is_none")]
13168    pub r#type: Option<ClickStackSavedFilterValueType>,
13169}
13170
13171/// `ClickStackSavedFilterValue` from the ClickHouse Cloud API, in response position.
13172///
13173/// Response variant of [`ClickStackSavedFilterValue`]: every field is
13174/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
13175/// `None` instead of failing.
13176#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13177pub struct ClickStackSavedFilterValueResponse {
13178    #[serde(skip_serializing_if = "Option::is_none")]
13179    pub condition: Option<String>,
13180    #[serde(skip_serializing_if = "Option::is_none")]
13181    pub r#type: Option<ClickStackSavedFilterValueType>,
13182}
13183
13184/// `ClickStackSavedSearch` from the ClickHouse Cloud API.
13185///
13186/// Used in response position only: every field is `Option<T>`, so a field the
13187/// API drops or sends as `null` deserializes to `None` instead of failing.
13188#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13189pub struct ClickStackSavedSearch {
13190    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
13191    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
13192    #[serde(skip_serializing_if = "Option::is_none")]
13193    pub filters: Option<Vec<ClickStackSavedSearchFilterResponse>>,
13194    #[serde(skip_serializing_if = "Option::is_none")]
13195    pub id: Option<String>,
13196    #[serde(skip_serializing_if = "Option::is_none")]
13197    pub name: Option<String>,
13198    #[serde(rename = "orderBy", skip_serializing_if = "Option::is_none")]
13199    pub order_by: Option<String>,
13200    #[serde(skip_serializing_if = "Option::is_none")]
13201    pub select: Option<String>,
13202    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
13203    pub source_id: Option<String>,
13204    #[serde(skip_serializing_if = "Option::is_none")]
13205    pub tags: Option<Vec<String>>,
13206    #[serde(rename = "teamId", skip_serializing_if = "Option::is_none")]
13207    pub team_id: Option<String>,
13208    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
13209    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
13210    #[serde(skip_serializing_if = "Option::is_none")]
13211    pub r#where: Option<String>,
13212    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
13213    pub where_language: Option<ClickStackSavedSearchWherelanguage>,
13214}
13215
13216/// `ClickStackSavedSearchFilter` from the ClickHouse Cloud API.
13217#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13218pub struct ClickStackSavedSearchFilter {
13219    pub condition: String,
13220    #[serde(skip_serializing_if = "Option::is_none")]
13221    pub r#type: Option<ClickStackSavedSearchFilterType>,
13222}
13223
13224/// `ClickStackSavedSearchFilter` from the ClickHouse Cloud API, in response position.
13225///
13226/// Response variant of [`ClickStackSavedSearchFilter`]: every field is
13227/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
13228/// `None` instead of failing.
13229#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13230pub struct ClickStackSavedSearchFilterResponse {
13231    #[serde(skip_serializing_if = "Option::is_none")]
13232    pub condition: Option<String>,
13233    #[serde(skip_serializing_if = "Option::is_none")]
13234    pub r#type: Option<ClickStackSavedSearchFilterType>,
13235}
13236
13237/// `ClickStackSavedSearchInput` from the ClickHouse Cloud API.
13238#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13239pub struct ClickStackSavedSearchInput {
13240    #[serde(skip_serializing_if = "Option::is_none")]
13241    pub filters: Option<Vec<ClickStackSavedSearchFilter>>,
13242    pub name: String,
13243    #[serde(rename = "orderBy", skip_serializing_if = "Option::is_none")]
13244    pub order_by: Option<String>,
13245    #[serde(skip_serializing_if = "Option::is_none")]
13246    pub select: Option<String>,
13247    #[serde(rename = "sourceId")]
13248    pub source_id: String,
13249    #[serde(skip_serializing_if = "Option::is_none")]
13250    pub tags: Option<Vec<String>>,
13251    #[serde(skip_serializing_if = "Option::is_none")]
13252    pub r#where: Option<String>,
13253    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
13254    pub where_language: Option<ClickStackSavedSearchInputWherelanguage>,
13255}
13256
13257/// `ClickStackSearchChartConfig` from the ClickHouse Cloud API.
13258#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13259pub struct ClickStackSearchChartConfig {
13260    #[serde(rename = "displayType")]
13261    pub display_type: ClickStackSearchChartConfigDisplaytype,
13262    pub select: String,
13263    #[serde(rename = "sourceId")]
13264    pub source_id: String,
13265    #[serde(skip_serializing_if = "Option::is_none")]
13266    pub r#where: Option<String>,
13267    #[serde(rename = "whereLanguage")]
13268    pub where_language: ClickStackSearchChartConfigWherelanguage,
13269}
13270
13271/// `ClickStackSearchChartConfig` from the ClickHouse Cloud API, in response position.
13272///
13273/// Response variant of [`ClickStackSearchChartConfig`]: every field is `Option<T>`, so a field
13274/// the API drops or sends as `null` deserializes to `None` instead of
13275/// failing.
13276#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13277pub struct ClickStackSearchChartConfigResponse {
13278    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
13279    pub display_type: Option<ClickStackSearchChartConfigDisplaytype>,
13280    #[serde(skip_serializing_if = "Option::is_none")]
13281    pub select: Option<String>,
13282    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
13283    pub source_id: Option<String>,
13284    #[serde(skip_serializing_if = "Option::is_none")]
13285    pub r#where: Option<String>,
13286    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
13287    pub where_language: Option<ClickStackSearchChartConfigWherelanguage>,
13288}
13289
13290/// `ClickStackSearchChartSeries` from the ClickHouse Cloud API.
13291#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13292pub struct ClickStackSearchChartSeries {
13293    pub fields: Vec<String>,
13294    #[serde(rename = "sourceId")]
13295    pub source_id: String,
13296    pub r#type: ClickStackSearchChartSeriesType,
13297    pub r#where: String,
13298    #[serde(rename = "whereLanguage")]
13299    pub where_language: ClickStackSearchChartSeriesWherelanguage,
13300}
13301
13302/// `ClickStackSelectItem` from the ClickHouse Cloud API.
13303#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13304pub struct ClickStackSelectItem {
13305    #[serde(rename = "aggFn")]
13306    pub agg_fn: ClickStackSelectItemAggfn,
13307    #[serde(skip_serializing_if = "Option::is_none")]
13308    pub alias: Option<String>,
13309    #[serde(skip_serializing_if = "Option::is_none")]
13310    pub level: Option<ClickStackSelectItemLevel>,
13311    #[serde(rename = "metricName", skip_serializing_if = "Option::is_none")]
13312    pub metric_name: Option<String>,
13313    #[serde(rename = "metricType", skip_serializing_if = "Option::is_none")]
13314    pub metric_type: Option<ClickStackSelectItemMetrictype>,
13315    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13316    pub number_format: Option<ClickStackNumberFormat>,
13317    #[serde(rename = "periodAggFn", skip_serializing_if = "Option::is_none")]
13318    pub period_agg_fn: Option<ClickStackSelectItemPeriodaggfn>,
13319    #[serde(rename = "valueExpression", skip_serializing_if = "Option::is_none")]
13320    pub value_expression: Option<String>,
13321    #[serde(skip_serializing_if = "Option::is_none")]
13322    pub r#where: Option<String>,
13323    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
13324    pub where_language: Option<ClickStackSelectItemWherelanguage>,
13325}
13326
13327/// `ClickStackSelectItem` from the ClickHouse Cloud API, in response position.
13328///
13329/// Response variant of [`ClickStackSelectItem`]: every field is `Option<T>`, so a field
13330/// the API drops or sends as `null` deserializes to `None` instead of
13331/// failing.
13332#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13333pub struct ClickStackSelectItemResponse {
13334    #[serde(rename = "aggFn", skip_serializing_if = "Option::is_none")]
13335    pub agg_fn: Option<ClickStackSelectItemAggfn>,
13336    #[serde(skip_serializing_if = "Option::is_none")]
13337    pub alias: Option<String>,
13338    #[serde(skip_serializing_if = "Option::is_none")]
13339    pub level: Option<ClickStackSelectItemLevel>,
13340    #[serde(rename = "metricName", skip_serializing_if = "Option::is_none")]
13341    pub metric_name: Option<String>,
13342    #[serde(rename = "metricType", skip_serializing_if = "Option::is_none")]
13343    pub metric_type: Option<ClickStackSelectItemMetrictype>,
13344    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13345    pub number_format: Option<ClickStackNumberFormatResponse>,
13346    #[serde(rename = "periodAggFn", skip_serializing_if = "Option::is_none")]
13347    pub period_agg_fn: Option<ClickStackSelectItemPeriodaggfn>,
13348    #[serde(rename = "valueExpression", skip_serializing_if = "Option::is_none")]
13349    pub value_expression: Option<String>,
13350    #[serde(skip_serializing_if = "Option::is_none")]
13351    pub r#where: Option<String>,
13352    #[serde(rename = "whereLanguage", skip_serializing_if = "Option::is_none")]
13353    pub where_language: Option<ClickStackSelectItemWherelanguage>,
13354}
13355
13356/// `ClickStackSessionSource` from the ClickHouse Cloud API.
13357#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13358pub struct ClickStackSessionSource {
13359    pub connection: String,
13360    #[serde(skip_serializing_if = "Option::is_none")]
13361    pub disabled: Option<bool>,
13362    pub from: ClickStackSourceFrom,
13363    #[serde(skip_serializing_if = "Option::is_none")]
13364    pub id: Option<String>,
13365    pub kind: ClickStackSessionSourceKind,
13366    pub name: String,
13367    #[serde(rename = "querySettings", skip_serializing_if = "Option::is_none")]
13368    pub query_settings: Option<Vec<ClickStackQuerySetting>>,
13369    #[serde(skip_serializing_if = "Option::is_none")]
13370    pub section: Option<String>,
13371    #[serde(
13372        rename = "timestampValueExpression",
13373        skip_serializing_if = "Option::is_none"
13374    )]
13375    pub timestamp_value_expression: Option<String>,
13376    #[serde(rename = "traceSourceId")]
13377    pub trace_source_id: String,
13378}
13379
13380/// `ClickStackSessionSource` from the ClickHouse Cloud API, in response position.
13381///
13382/// Response variant of [`ClickStackSessionSource`]: every field is `Option<T>`,
13383/// so a field the API drops or sends as `null` deserializes to `None` instead
13384/// of failing.
13385#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13386pub struct ClickStackSessionSourceResponse {
13387    #[serde(skip_serializing_if = "Option::is_none")]
13388    pub connection: Option<String>,
13389    #[serde(skip_serializing_if = "Option::is_none")]
13390    pub disabled: Option<bool>,
13391    #[serde(skip_serializing_if = "Option::is_none")]
13392    pub from: Option<ClickStackSourceFromResponse>,
13393    #[serde(skip_serializing_if = "Option::is_none")]
13394    pub id: Option<String>,
13395    #[serde(skip_serializing_if = "Option::is_none")]
13396    pub kind: Option<ClickStackSessionSourceKind>,
13397    #[serde(skip_serializing_if = "Option::is_none")]
13398    pub name: Option<String>,
13399    #[serde(rename = "querySettings", skip_serializing_if = "Option::is_none")]
13400    pub query_settings: Option<Vec<ClickStackQuerySettingResponse>>,
13401    #[serde(skip_serializing_if = "Option::is_none")]
13402    pub section: Option<String>,
13403    #[serde(
13404        rename = "timestampValueExpression",
13405        skip_serializing_if = "Option::is_none"
13406    )]
13407    pub timestamp_value_expression: Option<String>,
13408    #[serde(rename = "traceSourceId", skip_serializing_if = "Option::is_none")]
13409    pub trace_source_id: Option<String>,
13410}
13411
13412/// `ClickStackSlackAPIWebhook` from the ClickHouse Cloud API.
13413///
13414/// Used in response position only: every field is `Option<T>`, so a field the
13415/// API drops or sends as `null` deserializes to `None` instead of failing.
13416#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13417pub struct ClickStackSlackAPIWebhook {
13418    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
13419    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
13420    #[serde(skip_serializing_if = "Option::is_none")]
13421    pub description: Option<String>,
13422    #[serde(skip_serializing_if = "Option::is_none")]
13423    pub id: Option<String>,
13424    #[serde(skip_serializing_if = "Option::is_none")]
13425    pub name: Option<String>,
13426    #[serde(skip_serializing_if = "Option::is_none")]
13427    pub service: Option<ClickStackSlackAPIWebhookService>,
13428    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
13429    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
13430    #[serde(skip_serializing_if = "Option::is_none")]
13431    pub url: Option<String>,
13432}
13433
13434/// `ClickStackSlackWebhook` from the ClickHouse Cloud API.
13435///
13436/// Used in response position only: every field is `Option<T>`, so a field the
13437/// API drops or sends as `null` deserializes to `None` instead of failing.
13438#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13439pub struct ClickStackSlackWebhook {
13440    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
13441    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
13442    #[serde(skip_serializing_if = "Option::is_none")]
13443    pub description: Option<String>,
13444    #[serde(skip_serializing_if = "Option::is_none")]
13445    pub id: Option<String>,
13446    #[serde(skip_serializing_if = "Option::is_none")]
13447    pub name: Option<String>,
13448    #[serde(skip_serializing_if = "Option::is_none")]
13449    pub service: Option<ClickStackSlackWebhookService>,
13450    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
13451    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
13452    #[serde(skip_serializing_if = "Option::is_none")]
13453    pub url: Option<String>,
13454}
13455
13456/// `ClickStackSourceFilterSettings` from the ClickHouse Cloud API.
13457#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13458pub struct ClickStackSourceFilterSettings {
13459    pub columns: Vec<ClickStackFilterSettingsColumn>,
13460    #[serde(rename = "databaseName")]
13461    pub database_name: String,
13462    #[serde(rename = "tableName")]
13463    pub table_name: String,
13464}
13465
13466/// `ClickStackSourceFilterSettings` from the ClickHouse Cloud API, in response position.
13467///
13468/// Response variant of [`ClickStackSourceFilterSettings`]: every field is
13469/// `Option<T>`, so a field the API drops or sends as `null` deserializes to
13470/// `None` instead of failing.
13471#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13472pub struct ClickStackSourceFilterSettingsResponse {
13473    #[serde(skip_serializing_if = "Option::is_none")]
13474    pub columns: Option<Vec<ClickStackFilterSettingsColumnResponse>>,
13475    #[serde(rename = "databaseName", skip_serializing_if = "Option::is_none")]
13476    pub database_name: Option<String>,
13477    #[serde(rename = "tableName", skip_serializing_if = "Option::is_none")]
13478    pub table_name: Option<String>,
13479}
13480
13481/// `ClickStackSourceFrom` from the ClickHouse Cloud API.
13482#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13483pub struct ClickStackSourceFrom {
13484    #[serde(rename = "databaseName")]
13485    pub database_name: String,
13486    #[serde(rename = "tableName")]
13487    pub table_name: String,
13488}
13489
13490/// `ClickStackSourceFrom` from the ClickHouse Cloud API, in response position.
13491///
13492/// Response variant of [`ClickStackSourceFrom`]: every field is `Option<T>`, so
13493/// a field the API drops or sends as `null` deserializes to `None` instead of
13494/// failing.
13495#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13496pub struct ClickStackSourceFromResponse {
13497    #[serde(rename = "databaseName", skip_serializing_if = "Option::is_none")]
13498    pub database_name: Option<String>,
13499    #[serde(rename = "tableName", skip_serializing_if = "Option::is_none")]
13500    pub table_name: Option<String>,
13501}
13502
13503/// `ClickStackTableBuilderChartConfig` from the ClickHouse Cloud API.
13504#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13505pub struct ClickStackTableBuilderChartConfig {
13506    #[serde(rename = "asRatio", skip_serializing_if = "Option::is_none")]
13507    pub as_ratio: Option<bool>,
13508    #[serde(rename = "displayType")]
13509    pub display_type: ClickStackTableBuilderChartConfigDisplaytype,
13510    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
13511    pub group_by: Option<String>,
13512    #[serde(
13513        rename = "groupByColumnsOnLeft",
13514        skip_serializing_if = "Option::is_none"
13515    )]
13516    pub group_by_columns_on_left: Option<bool>,
13517    #[serde(skip_serializing_if = "Option::is_none")]
13518    pub having: Option<String>,
13519    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13520    pub number_format: Option<ClickStackNumberFormat>,
13521    #[serde(rename = "onClick", skip_serializing_if = "Option::is_none")]
13522    pub on_click: Option<ClickStackOnClick>,
13523    #[serde(rename = "orderBy", skip_serializing_if = "Option::is_none")]
13524    pub order_by: Option<String>,
13525    pub select: Vec<ClickStackSelectItem>,
13526    #[serde(rename = "sourceId")]
13527    pub source_id: String,
13528}
13529
13530/// `ClickStackTableBuilderChartConfig` from the ClickHouse Cloud API, in response position.
13531///
13532/// Response variant of [`ClickStackTableBuilderChartConfig`]: every field is `Option<T>`, so a field
13533/// the API drops or sends as `null` deserializes to `None` instead of
13534/// failing.
13535#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13536pub struct ClickStackTableBuilderChartConfigResponse {
13537    #[serde(rename = "asRatio", skip_serializing_if = "Option::is_none")]
13538    pub as_ratio: Option<bool>,
13539    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
13540    pub display_type: Option<ClickStackTableBuilderChartConfigDisplaytype>,
13541    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
13542    pub group_by: Option<String>,
13543    #[serde(
13544        rename = "groupByColumnsOnLeft",
13545        skip_serializing_if = "Option::is_none"
13546    )]
13547    pub group_by_columns_on_left: Option<bool>,
13548    #[serde(skip_serializing_if = "Option::is_none")]
13549    pub having: Option<String>,
13550    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13551    pub number_format: Option<ClickStackNumberFormatResponse>,
13552    #[serde(rename = "onClick", skip_serializing_if = "Option::is_none")]
13553    pub on_click: Option<ClickStackOnClickResponse>,
13554    #[serde(rename = "orderBy", skip_serializing_if = "Option::is_none")]
13555    pub order_by: Option<String>,
13556    #[serde(skip_serializing_if = "Option::is_none")]
13557    pub select: Option<Vec<ClickStackSelectItemResponse>>,
13558    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
13559    pub source_id: Option<String>,
13560}
13561
13562/// `ClickStackTableChartSeries` from the ClickHouse Cloud API.
13563#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13564pub struct ClickStackTableChartSeries {
13565    #[serde(rename = "aggFn")]
13566    pub agg_fn: ClickStackTableChartSeriesAggfn,
13567    #[serde(skip_serializing_if = "Option::is_none")]
13568    pub alias: Option<String>,
13569    #[serde(skip_serializing_if = "Option::is_none")]
13570    pub field: Option<String>,
13571    #[serde(rename = "groupBy")]
13572    pub group_by: Vec<String>,
13573    #[serde(skip_serializing_if = "Option::is_none")]
13574    pub level: Option<f64>,
13575    #[serde(rename = "metricDataType", skip_serializing_if = "Option::is_none")]
13576    pub metric_data_type: Option<ClickStackTableChartSeriesMetricdatatype>,
13577    #[serde(rename = "metricName", skip_serializing_if = "Option::is_none")]
13578    pub metric_name: Option<String>,
13579    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13580    pub number_format: Option<ClickStackNumberFormat>,
13581    #[serde(rename = "sortOrder", skip_serializing_if = "Option::is_none")]
13582    pub sort_order: Option<ClickStackTableChartSeriesSortorder>,
13583    #[serde(rename = "sourceId")]
13584    pub source_id: String,
13585    pub r#type: ClickStackTableChartSeriesType,
13586    pub r#where: String,
13587    #[serde(rename = "whereLanguage")]
13588    pub where_language: ClickStackTableChartSeriesWherelanguage,
13589}
13590
13591/// `ClickStackTableRawSqlChartConfig` from the ClickHouse Cloud API.
13592#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13593pub struct ClickStackTableRawSqlChartConfig {
13594    #[serde(rename = "configType")]
13595    pub config_type: ClickStackTableRawSqlChartConfigConfigtype,
13596    #[serde(rename = "connectionId")]
13597    pub connection_id: String,
13598    #[serde(rename = "displayType")]
13599    pub display_type: ClickStackTableRawSqlChartConfigDisplaytype,
13600    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13601    pub number_format: Option<ClickStackNumberFormat>,
13602    #[serde(rename = "onClick", skip_serializing_if = "Option::is_none")]
13603    pub on_click: Option<ClickStackOnClick>,
13604    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
13605    pub source_id: Option<String>,
13606    #[serde(rename = "sqlTemplate")]
13607    pub sql_template: String,
13608}
13609
13610/// `ClickStackTableRawSqlChartConfig` from the ClickHouse Cloud API, in response position.
13611///
13612/// Response variant of [`ClickStackTableRawSqlChartConfig`]: every field is `Option<T>`, so a field
13613/// the API drops or sends as `null` deserializes to `None` instead of
13614/// failing.
13615#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13616pub struct ClickStackTableRawSqlChartConfigResponse {
13617    #[serde(rename = "configType", skip_serializing_if = "Option::is_none")]
13618    pub config_type: Option<ClickStackTableRawSqlChartConfigConfigtype>,
13619    #[serde(rename = "connectionId", skip_serializing_if = "Option::is_none")]
13620    pub connection_id: Option<String>,
13621    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
13622    pub display_type: Option<ClickStackTableRawSqlChartConfigDisplaytype>,
13623    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13624    pub number_format: Option<ClickStackNumberFormatResponse>,
13625    #[serde(rename = "onClick", skip_serializing_if = "Option::is_none")]
13626    pub on_click: Option<ClickStackOnClickResponse>,
13627    #[serde(rename = "sourceId", skip_serializing_if = "Option::is_none")]
13628    pub source_id: Option<String>,
13629    #[serde(rename = "sqlTemplate", skip_serializing_if = "Option::is_none")]
13630    pub sql_template: Option<String>,
13631}
13632
13633/// `ClickStackTileInput` from the ClickHouse Cloud API.
13634#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13635pub struct ClickStackTileInput {
13636    #[cfg(feature = "deprecated-fields")]
13637    #[serde(rename = "asRatio", skip_serializing_if = "Option::is_none")]
13638    pub as_ratio: Option<bool>,
13639    #[serde(skip_serializing_if = "Option::is_none")]
13640    pub config: Option<ClickStackTileConfig>,
13641    #[serde(rename = "containerId", skip_serializing_if = "Option::is_none")]
13642    pub container_id: Option<String>,
13643    pub h: i64,
13644    #[serde(skip_serializing_if = "Option::is_none")]
13645    pub id: Option<String>,
13646    pub name: String,
13647    #[cfg(feature = "deprecated-fields")]
13648    #[serde(skip_serializing_if = "Option::is_none")]
13649    pub series: Option<Vec<ClickStackDashboardChartSeries>>,
13650    #[serde(rename = "tabId", skip_serializing_if = "Option::is_none")]
13651    pub tab_id: Option<String>,
13652    pub w: i64,
13653    pub x: i64,
13654    pub y: i64,
13655}
13656
13657/// `ClickStackTileOutput` from the ClickHouse Cloud API.
13658///
13659/// Used in response position only: every field is `Option<T>`, so a field the
13660/// API drops or sends as `null` deserializes to `None` instead of failing.
13661#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13662pub struct ClickStackTileOutput {
13663    #[serde(skip_serializing_if = "Option::is_none")]
13664    pub config: Option<ClickStackTileConfigResponse>,
13665    #[serde(rename = "containerId", skip_serializing_if = "Option::is_none")]
13666    pub container_id: Option<String>,
13667    #[serde(skip_serializing_if = "Option::is_none")]
13668    pub h: Option<i64>,
13669    #[serde(skip_serializing_if = "Option::is_none")]
13670    pub id: Option<String>,
13671    #[serde(skip_serializing_if = "Option::is_none")]
13672    pub name: Option<String>,
13673    #[serde(rename = "tabId", skip_serializing_if = "Option::is_none")]
13674    pub tab_id: Option<String>,
13675    #[serde(skip_serializing_if = "Option::is_none")]
13676    pub w: Option<i64>,
13677    #[serde(skip_serializing_if = "Option::is_none")]
13678    pub x: Option<i64>,
13679    #[serde(skip_serializing_if = "Option::is_none")]
13680    pub y: Option<i64>,
13681}
13682
13683/// `ClickStackTimeChartSeries` from the ClickHouse Cloud API.
13684#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13685pub struct ClickStackTimeChartSeries {
13686    #[serde(rename = "aggFn")]
13687    pub agg_fn: ClickStackTimeChartSeriesAggfn,
13688    #[serde(skip_serializing_if = "Option::is_none")]
13689    pub alias: Option<String>,
13690    #[serde(rename = "displayType", skip_serializing_if = "Option::is_none")]
13691    pub display_type: Option<ClickStackTimeChartSeriesDisplaytype>,
13692    #[serde(skip_serializing_if = "Option::is_none")]
13693    pub field: Option<String>,
13694    #[serde(rename = "groupBy")]
13695    pub group_by: Vec<String>,
13696    #[serde(skip_serializing_if = "Option::is_none")]
13697    pub level: Option<f64>,
13698    #[serde(rename = "metricDataType", skip_serializing_if = "Option::is_none")]
13699    pub metric_data_type: Option<ClickStackTimeChartSeriesMetricdatatype>,
13700    #[serde(rename = "metricName", skip_serializing_if = "Option::is_none")]
13701    pub metric_name: Option<String>,
13702    #[serde(rename = "numberFormat", skip_serializing_if = "Option::is_none")]
13703    pub number_format: Option<ClickStackNumberFormat>,
13704    #[serde(rename = "sourceId")]
13705    pub source_id: String,
13706    pub r#type: ClickStackTimeChartSeriesType,
13707    pub r#where: String,
13708    #[serde(rename = "whereLanguage")]
13709    pub where_language: ClickStackTimeChartSeriesWherelanguage,
13710}
13711
13712/// `ClickStackTraceSource` from the ClickHouse Cloud API.
13713#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13714pub struct ClickStackTraceSource {
13715    pub connection: String,
13716    #[serde(rename = "defaultTableSelectExpression")]
13717    pub default_table_select_expression: String,
13718    #[serde(skip_serializing_if = "Option::is_none")]
13719    pub disabled: Option<bool>,
13720    #[serde(rename = "durationExpression")]
13721    pub duration_expression: String,
13722    #[serde(rename = "durationPrecision")]
13723    pub duration_precision: i64,
13724    #[serde(
13725        rename = "eventAttributesExpression",
13726        skip_serializing_if = "Option::is_none"
13727    )]
13728    pub event_attributes_expression: Option<String>,
13729    #[serde(rename = "filterSettings", skip_serializing_if = "Option::is_none")]
13730    pub filter_settings: Option<ClickStackSourceFilterSettings>,
13731    pub from: ClickStackSourceFrom,
13732    #[serde(
13733        rename = "highlightedRowAttributeExpressions",
13734        skip_serializing_if = "Option::is_none"
13735    )]
13736    pub highlighted_row_attribute_expressions:
13737        Option<Vec<ClickStackHighlightedAttributeExpression>>,
13738    #[serde(
13739        rename = "highlightedTraceAttributeExpressions",
13740        skip_serializing_if = "Option::is_none"
13741    )]
13742    pub highlighted_trace_attribute_expressions:
13743        Option<Vec<ClickStackHighlightedAttributeExpression>>,
13744    #[serde(skip_serializing_if = "Option::is_none")]
13745    pub id: Option<String>,
13746    #[serde(
13747        rename = "implicitColumnExpression",
13748        skip_serializing_if = "Option::is_none"
13749    )]
13750    pub implicit_column_expression: Option<String>,
13751    pub kind: ClickStackTraceSourceKind,
13752    #[serde(
13753        rename = "knownColumnsListExpression",
13754        skip_serializing_if = "Option::is_none"
13755    )]
13756    pub known_columns_list_expression: Option<String>,
13757    #[serde(rename = "logSourceId", skip_serializing_if = "Option::is_none")]
13758    pub log_source_id: Option<String>,
13759    #[serde(rename = "materializedViews", skip_serializing_if = "Option::is_none")]
13760    pub materialized_views: Option<Vec<ClickStackMaterializedView>>,
13761    #[serde(
13762        rename = "metadataMaterializedViews",
13763        skip_serializing_if = "Option::is_none"
13764    )]
13765    pub metadata_materialized_views: Option<ClickStackTraceSourceMetadataMaterializedViews>,
13766    #[serde(rename = "metricSourceId", skip_serializing_if = "Option::is_none")]
13767    pub metric_source_id: Option<String>,
13768    pub name: String,
13769    #[serde(rename = "parentSpanIdExpression")]
13770    pub parent_span_id_expression: String,
13771    #[serde(rename = "querySettings", skip_serializing_if = "Option::is_none")]
13772    pub query_settings: Option<Vec<ClickStackQuerySetting>>,
13773    #[serde(
13774        rename = "resourceAttributesExpression",
13775        skip_serializing_if = "Option::is_none"
13776    )]
13777    pub resource_attributes_expression: Option<String>,
13778    #[serde(skip_serializing_if = "Option::is_none")]
13779    pub section: Option<String>,
13780    #[serde(
13781        rename = "serviceNameExpression",
13782        skip_serializing_if = "Option::is_none"
13783    )]
13784    pub service_name_expression: Option<String>,
13785    #[serde(rename = "sessionSourceId", skip_serializing_if = "Option::is_none")]
13786    pub session_source_id: Option<String>,
13787    #[serde(
13788        rename = "spanEventsValueExpression",
13789        skip_serializing_if = "Option::is_none"
13790    )]
13791    pub span_events_value_expression: Option<String>,
13792    #[serde(rename = "spanIdExpression")]
13793    pub span_id_expression: String,
13794    #[serde(rename = "spanKindExpression")]
13795    pub span_kind_expression: String,
13796    #[serde(rename = "spanNameExpression")]
13797    pub span_name_expression: String,
13798    #[serde(
13799        rename = "statusCodeExpression",
13800        skip_serializing_if = "Option::is_none"
13801    )]
13802    pub status_code_expression: Option<String>,
13803    #[serde(
13804        rename = "statusMessageExpression",
13805        skip_serializing_if = "Option::is_none"
13806    )]
13807    pub status_message_expression: Option<String>,
13808    #[serde(rename = "timestampValueExpression")]
13809    pub timestamp_value_expression: String,
13810    #[serde(rename = "traceIdExpression")]
13811    pub trace_id_expression: String,
13812    #[serde(
13813        rename = "useTextIndexForImplicitColumn",
13814        skip_serializing_if = "Option::is_none"
13815    )]
13816    pub use_text_index_for_implicit_column:
13817        Option<ClickStackTraceSourceUsetextindexforimplicitcolumn>,
13818}
13819
13820/// `ClickStackTraceSource` from the ClickHouse Cloud API, in response position.
13821///
13822/// Response variant of [`ClickStackTraceSource`]: every field is `Option<T>`,
13823/// so a field the API drops or sends as `null` deserializes to `None` instead
13824/// of failing.
13825#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13826pub struct ClickStackTraceSourceResponse {
13827    #[serde(skip_serializing_if = "Option::is_none")]
13828    pub connection: Option<String>,
13829    #[serde(
13830        rename = "defaultTableSelectExpression",
13831        skip_serializing_if = "Option::is_none"
13832    )]
13833    pub default_table_select_expression: Option<String>,
13834    #[serde(skip_serializing_if = "Option::is_none")]
13835    pub disabled: Option<bool>,
13836    #[serde(rename = "durationExpression", skip_serializing_if = "Option::is_none")]
13837    pub duration_expression: Option<String>,
13838    #[serde(rename = "durationPrecision", skip_serializing_if = "Option::is_none")]
13839    pub duration_precision: Option<i64>,
13840    #[serde(
13841        rename = "eventAttributesExpression",
13842        skip_serializing_if = "Option::is_none"
13843    )]
13844    pub event_attributes_expression: Option<String>,
13845    #[serde(rename = "filterSettings", skip_serializing_if = "Option::is_none")]
13846    pub filter_settings: Option<ClickStackSourceFilterSettingsResponse>,
13847    #[serde(skip_serializing_if = "Option::is_none")]
13848    pub from: Option<ClickStackSourceFromResponse>,
13849    #[serde(
13850        rename = "highlightedRowAttributeExpressions",
13851        skip_serializing_if = "Option::is_none"
13852    )]
13853    pub highlighted_row_attribute_expressions:
13854        Option<Vec<ClickStackHighlightedAttributeExpressionResponse>>,
13855    #[serde(
13856        rename = "highlightedTraceAttributeExpressions",
13857        skip_serializing_if = "Option::is_none"
13858    )]
13859    pub highlighted_trace_attribute_expressions:
13860        Option<Vec<ClickStackHighlightedAttributeExpressionResponse>>,
13861    #[serde(skip_serializing_if = "Option::is_none")]
13862    pub id: Option<String>,
13863    #[serde(
13864        rename = "implicitColumnExpression",
13865        skip_serializing_if = "Option::is_none"
13866    )]
13867    pub implicit_column_expression: Option<String>,
13868    #[serde(skip_serializing_if = "Option::is_none")]
13869    pub kind: Option<ClickStackTraceSourceKind>,
13870    #[serde(
13871        rename = "knownColumnsListExpression",
13872        skip_serializing_if = "Option::is_none"
13873    )]
13874    pub known_columns_list_expression: Option<String>,
13875    #[serde(rename = "logSourceId", skip_serializing_if = "Option::is_none")]
13876    pub log_source_id: Option<String>,
13877    #[serde(rename = "materializedViews", skip_serializing_if = "Option::is_none")]
13878    pub materialized_views: Option<Vec<ClickStackMaterializedViewResponse>>,
13879    #[serde(
13880        rename = "metadataMaterializedViews",
13881        skip_serializing_if = "Option::is_none"
13882    )]
13883    pub metadata_materialized_views: Option<ClickStackTraceSourceMetadataMaterializedViewsResponse>,
13884    #[serde(rename = "metricSourceId", skip_serializing_if = "Option::is_none")]
13885    pub metric_source_id: Option<String>,
13886    #[serde(skip_serializing_if = "Option::is_none")]
13887    pub name: Option<String>,
13888    #[serde(
13889        rename = "parentSpanIdExpression",
13890        skip_serializing_if = "Option::is_none"
13891    )]
13892    pub parent_span_id_expression: Option<String>,
13893    #[serde(rename = "querySettings", skip_serializing_if = "Option::is_none")]
13894    pub query_settings: Option<Vec<ClickStackQuerySettingResponse>>,
13895    #[serde(
13896        rename = "resourceAttributesExpression",
13897        skip_serializing_if = "Option::is_none"
13898    )]
13899    pub resource_attributes_expression: Option<String>,
13900    #[serde(skip_serializing_if = "Option::is_none")]
13901    pub section: Option<String>,
13902    #[serde(
13903        rename = "serviceNameExpression",
13904        skip_serializing_if = "Option::is_none"
13905    )]
13906    pub service_name_expression: Option<String>,
13907    #[serde(rename = "sessionSourceId", skip_serializing_if = "Option::is_none")]
13908    pub session_source_id: Option<String>,
13909    #[serde(
13910        rename = "spanEventsValueExpression",
13911        skip_serializing_if = "Option::is_none"
13912    )]
13913    pub span_events_value_expression: Option<String>,
13914    #[serde(rename = "spanIdExpression", skip_serializing_if = "Option::is_none")]
13915    pub span_id_expression: Option<String>,
13916    #[serde(rename = "spanKindExpression", skip_serializing_if = "Option::is_none")]
13917    pub span_kind_expression: Option<String>,
13918    #[serde(rename = "spanNameExpression", skip_serializing_if = "Option::is_none")]
13919    pub span_name_expression: Option<String>,
13920    #[serde(
13921        rename = "statusCodeExpression",
13922        skip_serializing_if = "Option::is_none"
13923    )]
13924    pub status_code_expression: Option<String>,
13925    #[serde(
13926        rename = "statusMessageExpression",
13927        skip_serializing_if = "Option::is_none"
13928    )]
13929    pub status_message_expression: Option<String>,
13930    #[serde(
13931        rename = "timestampValueExpression",
13932        skip_serializing_if = "Option::is_none"
13933    )]
13934    pub timestamp_value_expression: Option<String>,
13935    #[serde(rename = "traceIdExpression", skip_serializing_if = "Option::is_none")]
13936    pub trace_id_expression: Option<String>,
13937    #[serde(
13938        rename = "useTextIndexForImplicitColumn",
13939        skip_serializing_if = "Option::is_none"
13940    )]
13941    pub use_text_index_for_implicit_column:
13942        Option<ClickStackTraceSourceUsetextindexforimplicitcolumn>,
13943}
13944
13945/// `ClickStackTraceSourceMetadataMaterializedViews` from the ClickHouse Cloud API.
13946#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13947pub struct ClickStackTraceSourceMetadataMaterializedViews {
13948    pub granularity: String,
13949    #[serde(rename = "keyRollupTable")]
13950    pub key_rollup_table: String,
13951    #[serde(rename = "kvRollupTable")]
13952    pub kv_rollup_table: String,
13953}
13954
13955/// `ClickStackTraceSourceMetadataMaterializedViews` from the ClickHouse Cloud API, in response position.
13956///
13957/// Response variant of [`ClickStackTraceSourceMetadataMaterializedViews`]:
13958/// every field is `Option<T>`, so a field the API drops or sends as `null`
13959/// deserializes to `None` instead of failing.
13960#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13961pub struct ClickStackTraceSourceMetadataMaterializedViewsResponse {
13962    #[serde(skip_serializing_if = "Option::is_none")]
13963    pub granularity: Option<String>,
13964    #[serde(rename = "keyRollupTable", skip_serializing_if = "Option::is_none")]
13965    pub key_rollup_table: Option<String>,
13966    #[serde(rename = "kvRollupTable", skip_serializing_if = "Option::is_none")]
13967    pub kv_rollup_table: Option<String>,
13968}
13969
13970/// `ClickStackUpdateAlertRequest` from the ClickHouse Cloud API.
13971#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
13972pub struct ClickStackUpdateAlertRequest {
13973    pub channel: ClickStackAlertChannel,
13974    #[serde(rename = "dashboardId", skip_serializing_if = "Option::is_none")]
13975    pub dashboard_id: Option<String>,
13976    #[serde(rename = "groupBy", skip_serializing_if = "Option::is_none")]
13977    pub group_by: Option<String>,
13978    pub interval: ClickStackUpdateAlertRequestInterval,
13979    #[serde(skip_serializing_if = "Option::is_none")]
13980    pub message: Option<String>,
13981    #[serde(skip_serializing_if = "Option::is_none")]
13982    pub name: Option<String>,
13983    #[serde(skip_serializing_if = "Option::is_none")]
13984    pub note: Option<String>,
13985    #[serde(
13986        rename = "numConsecutiveWindows",
13987        skip_serializing_if = "Option::is_none"
13988    )]
13989    pub num_consecutive_windows: Option<i64>,
13990    #[serde(rename = "savedSearchId", skip_serializing_if = "Option::is_none")]
13991    pub saved_search_id: Option<String>,
13992    #[serde(
13993        rename = "scheduleOffsetMinutes",
13994        skip_serializing_if = "Option::is_none"
13995    )]
13996    pub schedule_offset_minutes: Option<i64>,
13997    #[serde(rename = "scheduleStartAt", skip_serializing_if = "Option::is_none")]
13998    pub schedule_start_at: Option<chrono::DateTime<chrono::Utc>>,
13999    pub source: ClickStackUpdateAlertRequestSource,
14000    pub threshold: f64,
14001    #[serde(rename = "thresholdMax", skip_serializing_if = "Option::is_none")]
14002    pub threshold_max: Option<f64>,
14003    #[serde(rename = "thresholdType")]
14004    pub threshold_type: ClickStackUpdateAlertRequestThresholdtype,
14005    #[serde(rename = "tileId", skip_serializing_if = "Option::is_none")]
14006    pub tile_id: Option<String>,
14007}
14008
14009/// `ClickStackUpdateConnectionRequest` from the ClickHouse Cloud API.
14010#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14011pub struct ClickStackUpdateConnectionRequest {
14012    pub host: String,
14013    #[serde(
14014        rename = "hyperdxSettingPrefix",
14015        skip_serializing_if = "Option::is_none"
14016    )]
14017    pub hyperdx_setting_prefix: Option<String>,
14018    #[serde(
14019        rename = "isPrometheusEndpoint",
14020        skip_serializing_if = "Option::is_none"
14021    )]
14022    pub is_prometheus_endpoint: Option<bool>,
14023    pub name: String,
14024    #[serde(skip_serializing_if = "Option::is_none")]
14025    pub password: Option<String>,
14026    pub username: String,
14027}
14028
14029/// `ClickStackUpdateDashboardRequest` from the ClickHouse Cloud API.
14030#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14031pub struct ClickStackUpdateDashboardRequest {
14032    #[serde(skip_serializing_if = "Option::is_none")]
14033    pub containers: Option<Vec<ClickStackDashboardContainer>>,
14034    #[serde(skip_serializing_if = "Option::is_none")]
14035    pub filters: Option<Vec<ClickStackFilter>>,
14036    pub name: String,
14037    #[serde(rename = "savedFilterValues", skip_serializing_if = "Option::is_none")]
14038    pub saved_filter_values: Option<Vec<ClickStackSavedFilterValue>>,
14039    #[serde(rename = "savedQuery", skip_serializing_if = "Option::is_none")]
14040    pub saved_query: Option<String>,
14041    #[serde(rename = "savedQueryLanguage", skip_serializing_if = "Option::is_none")]
14042    pub saved_query_language: Option<ClickStackUpdateDashboardRequestSavedquerylanguage>,
14043    #[serde(skip_serializing_if = "Option::is_none")]
14044    pub tags: Option<Vec<String>>,
14045    pub tiles: Vec<ClickStackTileInput>,
14046}
14047
14048/// `ClickStackUpdateRoleRequest` from the ClickHouse Cloud API.
14049#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14050pub struct ClickStackUpdateRoleRequest {
14051    #[serde(skip_serializing_if = "Option::is_none")]
14052    pub description: Option<String>,
14053    #[serde(skip_serializing_if = "Option::is_none")]
14054    pub name: Option<String>,
14055    pub permissions: Vec<ClickStackCASLPermission>,
14056}
14057
14058/// `ClickStackValidateDashboardError` from the ClickHouse Cloud API.
14059///
14060/// Used in response position only: every field is `Option<T>`, so a field the
14061/// API drops or sends as `null` deserializes to `None` instead of failing.
14062#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14063pub struct ClickStackValidateDashboardError {
14064    #[serde(skip_serializing_if = "Option::is_none")]
14065    pub message: Option<String>,
14066    #[serde(skip_serializing_if = "Option::is_none")]
14067    pub path: Option<String>,
14068}
14069
14070/// `ClickStackValidateDashboardResponse` from the ClickHouse Cloud API.
14071///
14072/// Used in response position only: every field is `Option<T>`, so a field the
14073/// API drops or sends as `null` deserializes to `None` instead of failing.
14074#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14075pub struct ClickStackValidateDashboardResponse {
14076    #[serde(skip_serializing_if = "Option::is_none")]
14077    pub errors: Option<Vec<ClickStackValidateDashboardError>>,
14078    #[serde(skip_serializing_if = "Option::is_none")]
14079    pub normalized: Option<ClickStackValidateDashboardResponseNormalized>,
14080    #[serde(skip_serializing_if = "Option::is_none")]
14081    pub valid: Option<bool>,
14082}
14083
14084/// `ClickStackWebhookInput` from the ClickHouse Cloud API.
14085#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14086pub struct ClickStackWebhookInput {
14087    #[serde(skip_serializing_if = "Option::is_none")]
14088    pub body: Option<String>,
14089    #[serde(skip_serializing_if = "Option::is_none")]
14090    pub description: Option<String>,
14091    #[serde(skip_serializing_if = "Option::is_none")]
14092    pub headers: Option<ClickStackWebhookInputHeaders>,
14093    pub name: String,
14094    #[serde(rename = "queryParams", skip_serializing_if = "Option::is_none")]
14095    pub query_params: Option<ClickStackWebhookInputQueryParams>,
14096    pub service: ClickStackWebhookInputService,
14097    pub url: String,
14098}
14099
14100/// `CreateReversePrivateEndpoint` from the ClickHouse Cloud API.
14101#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14102pub struct CreateReversePrivateEndpoint {
14103    #[serde(
14104        rename = "customPrivateDnsMappings",
14105        skip_serializing_if = "Option::is_none"
14106    )]
14107    pub custom_private_dns_mappings: Option<Vec<CustomPrivateDnsMapping>>,
14108    pub description: String,
14109    #[serde(
14110        rename = "gcpServiceAttachment",
14111        skip_serializing_if = "Option::is_none"
14112    )]
14113    pub gcp_service_attachment: Option<String>,
14114    #[serde(rename = "mskAuthentication", skip_serializing_if = "Option::is_none")]
14115    pub msk_authentication: Option<CreateReversePrivateEndpointMskauthentication>,
14116    #[serde(rename = "mskClusterArn", skip_serializing_if = "Option::is_none")]
14117    pub msk_cluster_arn: Option<String>,
14118    pub r#type: CreateReversePrivateEndpointType,
14119    #[serde(
14120        rename = "vpcEndpointServiceName",
14121        skip_serializing_if = "Option::is_none"
14122    )]
14123    pub vpc_endpoint_service_name: Option<String>,
14124    #[serde(
14125        rename = "vpcResourceConfigurationId",
14126        skip_serializing_if = "Option::is_none"
14127    )]
14128    pub vpc_resource_configuration_id: Option<String>,
14129    #[serde(
14130        rename = "vpcResourceShareArn",
14131        skip_serializing_if = "Option::is_none"
14132    )]
14133    pub vpc_resource_share_arn: Option<String>,
14134}
14135
14136/// `CurrentScaling` from the ClickHouse Cloud API.
14137#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14138pub struct CurrentScaling {
14139    #[serde(rename = "activeEntryId", skip_serializing_if = "Option::is_none")]
14140    pub active_entry_id: Option<uuid::Uuid>,
14141    #[serde(
14142        rename = "effectiveAutoscalingMode",
14143        skip_serializing_if = "Option::is_none"
14144    )]
14145    pub effective_autoscaling_mode: Option<CurrentScalingEffectiveautoscalingmode>,
14146    #[serde(
14147        rename = "effectiveIdleScaling",
14148        skip_serializing_if = "Option::is_none"
14149    )]
14150    pub effective_idle_scaling: Option<bool>,
14151    #[serde(
14152        rename = "effectiveIdleTimeoutMinutes",
14153        skip_serializing_if = "Option::is_none"
14154    )]
14155    pub effective_idle_timeout_minutes: Option<i64>,
14156    #[serde(
14157        rename = "effectiveMaxReplicaMemoryGb",
14158        skip_serializing_if = "Option::is_none"
14159    )]
14160    pub effective_max_replica_memory_gb: Option<f64>,
14161    #[serde(
14162        rename = "effectiveMaxReplicas",
14163        skip_serializing_if = "Option::is_none"
14164    )]
14165    pub effective_max_replicas: Option<i64>,
14166    #[serde(
14167        rename = "effectiveMinReplicaMemoryGb",
14168        skip_serializing_if = "Option::is_none"
14169    )]
14170    pub effective_min_replica_memory_gb: Option<f64>,
14171    #[serde(
14172        rename = "effectiveMinReplicas",
14173        skip_serializing_if = "Option::is_none"
14174    )]
14175    pub effective_min_replicas: Option<i64>,
14176}
14177
14178/// `CustomPrivateDnsMapping` from the ClickHouse Cloud API.
14179#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14180pub struct CustomPrivateDnsMapping {
14181    #[serde(rename = "privateDnsName", skip_serializing_if = "Option::is_none")]
14182    pub private_dns_name: Option<String>,
14183}
14184
14185/// `CustomPrivateDnsMapping` from the ClickHouse Cloud API, in response
14186/// position.
14187///
14188/// Response variant of [`CustomPrivateDnsMapping`]: every field is `Option<T>`,
14189/// so a field the API drops or sends as `null` deserializes to `None` instead
14190/// of failing.
14191#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14192pub struct CustomPrivateDnsMappingResponse {
14193    #[serde(rename = "privateDnsName", skip_serializing_if = "Option::is_none")]
14194    pub private_dns_name: Option<String>,
14195}
14196
14197/// `GcpBackupBucket` from the ClickHouse Cloud API.
14198#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14199pub struct GcpBackupBucket {
14200    #[serde(rename = "accessKeyId", skip_serializing_if = "Option::is_none")]
14201    pub access_key_id: Option<String>,
14202    #[serde(rename = "bucketPath", skip_serializing_if = "Option::is_none")]
14203    pub bucket_path: Option<String>,
14204    #[serde(rename = "bucketProvider", skip_serializing_if = "Option::is_none")]
14205    pub bucket_provider: Option<GcpBackupBucketBucketprovider>,
14206    #[serde(skip_serializing_if = "Option::is_none")]
14207    pub id: Option<uuid::Uuid>,
14208}
14209
14210/// `GcpBackupBucketPatchRequestV1` from the ClickHouse Cloud API.
14211#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14212pub struct GcpBackupBucketPatchRequestV1 {
14213    #[serde(rename = "accessKeyId")]
14214    pub access_key_id: String,
14215    #[serde(rename = "bucketPath")]
14216    pub bucket_path: String,
14217    #[serde(rename = "bucketProvider")]
14218    pub bucket_provider: GcpBackupBucketPatchRequestV1Bucketprovider,
14219    #[serde(rename = "secretAccessKey")]
14220    pub secret_access_key: String,
14221}
14222
14223/// `GcpBackupBucketPostRequestV1` from the ClickHouse Cloud API.
14224#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14225pub struct GcpBackupBucketPostRequestV1 {
14226    #[serde(rename = "accessKeyId")]
14227    pub access_key_id: String,
14228    #[serde(rename = "bucketPath")]
14229    pub bucket_path: String,
14230    #[serde(rename = "bucketProvider")]
14231    pub bucket_provider: GcpBackupBucketPostRequestV1Bucketprovider,
14232    #[serde(rename = "secretAccessKey")]
14233    pub secret_access_key: String,
14234}
14235
14236/// `GcpBackupBucketProperties` from the ClickHouse Cloud API.
14237#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14238pub struct GcpBackupBucketProperties {
14239    #[serde(rename = "accessKeyId")]
14240    pub access_key_id: String,
14241    #[serde(rename = "bucketPath")]
14242    pub bucket_path: String,
14243    #[serde(rename = "bucketProvider")]
14244    pub bucket_provider: GcpBackupBucketPropertiesBucketprovider,
14245}
14246
14247/// `InstancePrivateEndpoint` from the ClickHouse Cloud API.
14248#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14249pub struct InstancePrivateEndpoint {
14250    #[serde(rename = "cloudProvider", skip_serializing_if = "Option::is_none")]
14251    pub cloud_provider: Option<InstancePrivateEndpointCloudprovider>,
14252    #[serde(skip_serializing_if = "Option::is_none")]
14253    pub description: Option<String>,
14254    #[serde(skip_serializing_if = "Option::is_none")]
14255    pub id: Option<String>,
14256    #[serde(skip_serializing_if = "Option::is_none")]
14257    pub region: Option<InstancePrivateEndpointRegion>,
14258}
14259
14260/// `InstancePrivateEndpointsPatch` from the ClickHouse Cloud API.
14261#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14262pub struct InstancePrivateEndpointsPatch {
14263    pub add: Vec<String>,
14264    pub remove: Vec<String>,
14265}
14266
14267/// `InstanceServiceQueryApiEndpointsPostRequest` from the ClickHouse Cloud API.
14268#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14269pub struct InstanceServiceQueryApiEndpointsPostRequest {
14270    #[serde(rename = "allowedOrigins")]
14271    pub allowed_origins: String,
14272    #[serde(rename = "openApiKeys")]
14273    pub open_api_keys: Vec<String>,
14274    pub roles: Vec<String>,
14275}
14276
14277/// `InstanceTagsPatch` from the ClickHouse Cloud API.
14278#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14279pub struct InstanceTagsPatch {
14280    pub add: Vec<ResourceTagsV1>,
14281    pub remove: Vec<ResourceTagsV1>,
14282}
14283
14284/// `Invitation` from the ClickHouse Cloud API.
14285#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14286pub struct Invitation {
14287    #[serde(rename = "assignedRoles", skip_serializing_if = "Option::is_none")]
14288    pub assigned_roles: Option<Vec<AssignedRole>>,
14289    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
14290    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
14291    #[serde(skip_serializing_if = "Option::is_none")]
14292    pub email: Option<String>,
14293    #[serde(rename = "expireAt", skip_serializing_if = "Option::is_none")]
14294    pub expire_at: Option<chrono::DateTime<chrono::Utc>>,
14295    #[serde(skip_serializing_if = "Option::is_none")]
14296    pub id: Option<uuid::Uuid>,
14297    #[cfg(feature = "deprecated-fields")]
14298    #[serde(skip_serializing_if = "Option::is_none")]
14299    pub role: Option<InvitationRole>,
14300}
14301
14302/// `InvitationPostRequest` from the ClickHouse Cloud API.
14303#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14304pub struct InvitationPostRequest {
14305    #[serde(rename = "assignedRoleIds")]
14306    pub assigned_role_ids: Vec<String>,
14307    pub email: String,
14308    #[cfg(feature = "deprecated-fields")]
14309    #[serde(skip_serializing_if = "Option::is_none")]
14310    pub role: Option<InvitationPostRequestRole>,
14311}
14312
14313/// `IpAccessListEntry` from the ClickHouse Cloud API.
14314#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14315pub struct IpAccessListEntry {
14316    #[serde(skip_serializing_if = "Option::is_none")]
14317    pub description: Option<String>,
14318    pub source: String,
14319}
14320
14321/// `IpAccessListEntry` from the ClickHouse Cloud API, in response position.
14322///
14323/// Response variant of [`IpAccessListEntry`]: every field is `Option<T>`, so a
14324/// field the API drops or sends as `null` deserializes to `None` instead of
14325/// failing.
14326#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14327pub struct IpAccessListEntryResponse {
14328    #[serde(skip_serializing_if = "Option::is_none")]
14329    pub description: Option<String>,
14330    #[serde(skip_serializing_if = "Option::is_none")]
14331    pub source: Option<String>,
14332}
14333
14334/// `IpAccessListPatch` from the ClickHouse Cloud API.
14335#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14336pub struct IpAccessListPatch {
14337    pub add: Vec<IpAccessListEntry>,
14338    pub remove: Vec<IpAccessListEntry>,
14339}
14340
14341/// `License` from the ClickHouse Cloud API.
14342#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14343pub struct License {
14344    #[serde(rename = "environmentFingerprint")]
14345    pub environment_fingerprint: String,
14346    pub expiration: String,
14347    pub id: String,
14348    pub memory: String,
14349    pub name: String,
14350}
14351
14352/// `Member` from the ClickHouse Cloud API.
14353#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14354pub struct Member {
14355    #[serde(rename = "assignedRoles", skip_serializing_if = "Option::is_none")]
14356    pub assigned_roles: Option<Vec<AssignedRole>>,
14357    #[serde(skip_serializing_if = "Option::is_none")]
14358    pub email: Option<String>,
14359    #[serde(rename = "joinedAt", skip_serializing_if = "Option::is_none")]
14360    pub joined_at: Option<chrono::DateTime<chrono::Utc>>,
14361    #[serde(skip_serializing_if = "Option::is_none")]
14362    pub name: Option<String>,
14363    #[cfg(feature = "deprecated-fields")]
14364    #[serde(skip_serializing_if = "Option::is_none")]
14365    pub role: Option<MemberRole>,
14366    #[serde(rename = "userId", skip_serializing_if = "Option::is_none")]
14367    pub user_id: Option<String>,
14368}
14369
14370/// `MemberPatchRequest` from the ClickHouse Cloud API.
14371#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14372pub struct MemberPatchRequest {
14373    #[serde(rename = "assignedRoleIds", skip_serializing_if = "Option::is_none")]
14374    pub assigned_role_ids: Option<Vec<String>>,
14375    #[cfg(feature = "deprecated-fields")]
14376    #[serde(skip_serializing_if = "Option::is_none")]
14377    pub role: Option<MemberPatchRequestRole>,
14378}
14379
14380/// `MskIamUser` from the ClickHouse Cloud API.
14381#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14382pub struct MskIamUser {
14383    #[serde(rename = "accessKeyId")]
14384    pub access_key_id: String,
14385    #[serde(rename = "secretKey")]
14386    pub secret_key: String,
14387}
14388
14389/// `MutualTLS` from the ClickHouse Cloud API.
14390#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14391pub struct MutualTLS {
14392    pub certificate: String,
14393    #[serde(rename = "privateKey")]
14394    pub private_key: String,
14395}
14396
14397/// `Organization` from the ClickHouse Cloud API.
14398#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14399pub struct Organization {
14400    #[serde(rename = "byocConfig", skip_serializing_if = "Option::is_none")]
14401    pub byoc_config: Option<Vec<ByocConfig>>,
14402    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
14403    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
14404    #[serde(rename = "enableCoreDumps", skip_serializing_if = "Option::is_none")]
14405    pub enable_core_dumps: Option<bool>,
14406    #[serde(skip_serializing_if = "Option::is_none")]
14407    pub id: Option<uuid::Uuid>,
14408    #[serde(skip_serializing_if = "Option::is_none")]
14409    pub name: Option<String>,
14410    #[serde(rename = "privateEndpoints", skip_serializing_if = "Option::is_none")]
14411    pub private_endpoints: Option<Vec<OrganizationPrivateEndpoint>>,
14412}
14413
14414/// `OrganizationCloudRegionPrivateEndpointConfig` from the ClickHouse Cloud API.
14415#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14416pub struct OrganizationCloudRegionPrivateEndpointConfig {
14417    #[serde(rename = "endpointServiceId", skip_serializing_if = "Option::is_none")]
14418    pub endpoint_service_id: Option<String>,
14419}
14420
14421/// `OrganizationPatchPrivateEndpoint` from the ClickHouse Cloud API.
14422#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14423pub struct OrganizationPatchPrivateEndpoint {
14424    #[serde(rename = "cloudProvider")]
14425    pub cloud_provider: OrganizationPatchPrivateEndpointCloudprovider,
14426    #[serde(skip_serializing_if = "Option::is_none")]
14427    pub description: Option<String>,
14428    pub id: String,
14429    pub region: OrganizationPatchPrivateEndpointRegion,
14430}
14431
14432/// `OrganizationPatchRequest` from the ClickHouse Cloud API.
14433#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14434pub struct OrganizationPatchRequest {
14435    #[serde(rename = "enableCoreDumps", skip_serializing_if = "Option::is_none")]
14436    pub enable_core_dumps: Option<bool>,
14437    #[serde(skip_serializing_if = "Option::is_none")]
14438    pub name: Option<String>,
14439    #[serde(rename = "privateEndpoints", skip_serializing_if = "Option::is_none")]
14440    pub private_endpoints: Option<OrganizationPrivateEndpointsPatch>,
14441}
14442
14443/// `OrganizationPrivateEndpoint` from the ClickHouse Cloud API.
14444#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14445pub struct OrganizationPrivateEndpoint {
14446    #[serde(rename = "cloudProvider", skip_serializing_if = "Option::is_none")]
14447    pub cloud_provider: Option<OrganizationPrivateEndpointCloudprovider>,
14448    #[serde(skip_serializing_if = "Option::is_none")]
14449    pub description: Option<String>,
14450    #[serde(skip_serializing_if = "Option::is_none")]
14451    pub id: Option<String>,
14452    #[serde(skip_serializing_if = "Option::is_none")]
14453    pub region: Option<OrganizationPrivateEndpointRegion>,
14454}
14455
14456/// `OrganizationPrivateEndpointsPatch` from the ClickHouse Cloud API.
14457#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14458pub struct OrganizationPrivateEndpointsPatch {
14459    #[cfg(feature = "deprecated-fields")]
14460    #[serde(skip_serializing_if = "Option::is_none")]
14461    pub add: Option<Vec<OrganizationPatchPrivateEndpoint>>,
14462    pub remove: Vec<OrganizationPatchPrivateEndpoint>,
14463}
14464
14465/// `OrganizationQuota` from the ClickHouse Cloud API.
14466#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14467pub struct OrganizationQuota {
14468    #[serde(skip_serializing_if = "Option::is_none")]
14469    pub adjustable: Option<bool>,
14470    #[serde(skip_serializing_if = "Option::is_none")]
14471    pub description: Option<String>,
14472    #[serde(skip_serializing_if = "Option::is_none")]
14473    pub name: Option<String>,
14474    #[serde(rename = "quotaCode", skip_serializing_if = "Option::is_none")]
14475    pub quota_code: Option<OrganizationQuotaQuotacode>,
14476    #[serde(skip_serializing_if = "Option::is_none")]
14477    pub scope: Option<OrganizationQuotaScope>,
14478    #[serde(skip_serializing_if = "Option::is_none")]
14479    pub usage: Option<i64>,
14480    #[serde(skip_serializing_if = "Option::is_none")]
14481    pub value: Option<i64>,
14482}
14483
14484/// `PLAIN` from the ClickHouse Cloud API.
14485#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14486pub struct PLAIN {
14487    pub password: String,
14488    pub username: String,
14489}
14490
14491/// `PostgresService` from the ClickHouse Cloud API.
14492#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14493pub struct PostgresService {
14494    #[serde(rename = "connectionString", skip_serializing_if = "Option::is_none")]
14495    pub connection_string: Option<String>,
14496    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
14497    pub created_at: Option<PgCreatedAtProperty>,
14498    #[serde(rename = "haType", skip_serializing_if = "Option::is_none")]
14499    pub ha_type: Option<PgHaType>,
14500    #[serde(skip_serializing_if = "Option::is_none")]
14501    pub hostname: Option<String>,
14502    #[serde(skip_serializing_if = "Option::is_none")]
14503    pub id: Option<PgIdProperty>,
14504    #[serde(rename = "isPrimary", skip_serializing_if = "Option::is_none")]
14505    pub is_primary: Option<PgIsPrimaryProperty>,
14506    #[serde(skip_serializing_if = "Option::is_none")]
14507    pub name: Option<PgNameProperty>,
14508    #[serde(skip_serializing_if = "Option::is_none")]
14509    pub password: Option<String>,
14510    #[serde(rename = "postgresVersion", skip_serializing_if = "Option::is_none")]
14511    pub postgres_version: Option<PgVersion>,
14512    #[serde(skip_serializing_if = "Option::is_none")]
14513    pub provider: Option<PgProvider>,
14514    #[serde(skip_serializing_if = "Option::is_none")]
14515    pub region: Option<PgRegion>,
14516    #[serde(skip_serializing_if = "Option::is_none")]
14517    pub size: Option<PgSize>,
14518    #[serde(skip_serializing_if = "Option::is_none")]
14519    pub state: Option<PgStateProperty>,
14520    #[serde(rename = "storageSize", skip_serializing_if = "Option::is_none")]
14521    pub storage_size: Option<PgStorageSize>,
14522    #[serde(skip_serializing_if = "Option::is_none")]
14523    pub tags: Option<PgTagsResponse>,
14524    #[serde(skip_serializing_if = "Option::is_none")]
14525    pub username: Option<String>,
14526}
14527
14528/// `PostgresServiceListItem` from the ClickHouse Cloud API.
14529#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14530pub struct PostgresServiceListItem {
14531    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
14532    pub created_at: Option<PgCreatedAtProperty>,
14533    #[serde(rename = "haType", skip_serializing_if = "Option::is_none")]
14534    pub ha_type: Option<PgHaType>,
14535    #[serde(skip_serializing_if = "Option::is_none")]
14536    pub id: Option<PgIdProperty>,
14537    #[serde(rename = "isPrimary", skip_serializing_if = "Option::is_none")]
14538    pub is_primary: Option<PgIsPrimaryProperty>,
14539    #[serde(skip_serializing_if = "Option::is_none")]
14540    pub name: Option<PgNameProperty>,
14541    #[serde(rename = "postgresVersion", skip_serializing_if = "Option::is_none")]
14542    pub postgres_version: Option<PgVersion>,
14543    #[serde(skip_serializing_if = "Option::is_none")]
14544    pub provider: Option<PgProvider>,
14545    #[serde(skip_serializing_if = "Option::is_none")]
14546    pub region: Option<PgRegion>,
14547    #[serde(skip_serializing_if = "Option::is_none")]
14548    pub size: Option<PgSize>,
14549    #[serde(skip_serializing_if = "Option::is_none")]
14550    pub state: Option<PgStateProperty>,
14551    #[serde(skip_serializing_if = "Option::is_none")]
14552    pub tags: Option<PgTagsResponse>,
14553}
14554
14555/// `PostgresServicePasswordResource` from the ClickHouse Cloud API.
14556#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14557pub struct PostgresServicePasswordResource {
14558    #[serde(skip_serializing_if = "Option::is_none")]
14559    pub password: Option<String>,
14560}
14561
14562/// `PostgresServicePatchRequest` from the ClickHouse Cloud API.
14563#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14564pub struct PostgresServicePatchRequest {
14565    #[serde(rename = "haType", skip_serializing_if = "Option::is_none")]
14566    pub ha_type: Option<PgHaType>,
14567    #[serde(skip_serializing_if = "Option::is_none")]
14568    pub name: Option<PgNameProperty>,
14569    #[serde(skip_serializing_if = "Option::is_none")]
14570    pub size: Option<PgSize>,
14571    #[serde(skip_serializing_if = "Option::is_none")]
14572    pub tags: Option<PgTags>,
14573}
14574
14575/// `PostgresServicePostRequest` from the ClickHouse Cloud API.
14576#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14577pub struct PostgresServicePostRequest {
14578    #[serde(rename = "haType", skip_serializing_if = "Option::is_none")]
14579    pub ha_type: Option<PgHaType>,
14580    pub name: PgNameProperty,
14581    #[serde(rename = "pgBouncerConfig", skip_serializing_if = "Option::is_none")]
14582    pub pg_bouncer_config: Option<PgBouncerConfig>,
14583    #[serde(rename = "pgConfig", skip_serializing_if = "Option::is_none")]
14584    pub pg_config: Option<PgConfig>,
14585    #[serde(rename = "postgresVersion", skip_serializing_if = "Option::is_none")]
14586    pub postgres_version: Option<PgVersion>,
14587    pub provider: PgProvider,
14588    pub region: PgRegion,
14589    pub size: PgSize,
14590    #[serde(skip_serializing_if = "Option::is_none")]
14591    pub tags: Option<PgTags>,
14592}
14593
14594/// `PostgresServiceReadReplicaRequest` from the ClickHouse Cloud API.
14595#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14596pub struct PostgresServiceReadReplicaRequest {
14597    pub name: PgNameProperty,
14598    #[serde(rename = "pgBouncerConfig", skip_serializing_if = "Option::is_none")]
14599    pub pg_bouncer_config: Option<PgBouncerConfig>,
14600    #[serde(rename = "pgConfig", skip_serializing_if = "Option::is_none")]
14601    pub pg_config: Option<PgConfig>,
14602    #[serde(skip_serializing_if = "Option::is_none")]
14603    pub tags: Option<PgTags>,
14604}
14605
14606/// `PostgresServiceRestoreRequest` from the ClickHouse Cloud API.
14607#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14608pub struct PostgresServiceRestoreRequest {
14609    pub name: PgNameProperty,
14610    #[serde(rename = "pgBouncerConfig", skip_serializing_if = "Option::is_none")]
14611    pub pg_bouncer_config: Option<PgBouncerConfig>,
14612    #[serde(rename = "pgConfig", skip_serializing_if = "Option::is_none")]
14613    pub pg_config: Option<PgConfig>,
14614    #[serde(rename = "restoreTarget")]
14615    pub restore_target: PgPitrRestoreTargetProperty,
14616    #[serde(skip_serializing_if = "Option::is_none")]
14617    pub tags: Option<PgTags>,
14618}
14619
14620/// `PostgresServiceSetPassword` from the ClickHouse Cloud API.
14621#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14622pub struct PostgresServiceSetPassword {
14623    pub password: PgPassword,
14624}
14625
14626/// `PostgresServiceSetState` from the ClickHouse Cloud API.
14627#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14628pub struct PostgresServiceSetState {
14629    pub command: PostgresServiceSetStateCommand,
14630}
14631
14632/// `PostgresMetricDataPoint` from the ClickHouse Cloud API.
14633#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14634pub struct PostgresMetricDataPoint {
14635    #[serde(skip_serializing_if = "Option::is_none")]
14636    pub timestamp: Option<i64>,
14637    #[serde(skip_serializing_if = "Option::is_none")]
14638    pub value: Option<f64>,
14639}
14640
14641/// `PostgresMetricSeries` from the ClickHouse Cloud API.
14642#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14643pub struct PostgresMetricSeries {
14644    #[serde(rename = "dataPoints", skip_serializing_if = "Option::is_none")]
14645    pub data_points: Option<Vec<PostgresMetricDataPoint>>,
14646    #[serde(skip_serializing_if = "Option::is_none")]
14647    pub label: Option<String>,
14648}
14649
14650/// `PostgresMetric` from the ClickHouse Cloud API.
14651#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14652pub struct PostgresMetric {
14653    #[serde(skip_serializing_if = "Option::is_none")]
14654    pub description: Option<String>,
14655    #[serde(skip_serializing_if = "Option::is_none")]
14656    pub key: Option<String>,
14657    #[serde(skip_serializing_if = "Option::is_none")]
14658    pub name: Option<String>,
14659    #[serde(skip_serializing_if = "Option::is_none")]
14660    pub series: Option<Vec<PostgresMetricSeries>>,
14661    #[serde(skip_serializing_if = "Option::is_none")]
14662    pub unit: Option<String>,
14663}
14664
14665/// `PostgresMetrics` from the ClickHouse Cloud API.
14666#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14667pub struct PostgresMetrics {
14668    #[serde(skip_serializing_if = "Option::is_none")]
14669    pub metrics: Option<Vec<PostgresMetric>>,
14670}
14671
14672/// `PostgresQueryExecution` from the ClickHouse Cloud API.
14673#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14674pub struct PostgresQueryExecution {
14675    #[serde(skip_serializing_if = "Option::is_none")]
14676    pub app: Option<String>,
14677    #[serde(rename = "cpuSysTimeUs", skip_serializing_if = "Option::is_none")]
14678    pub cpu_sys_time_us: Option<i64>,
14679    #[serde(rename = "cpuUserTimeUs", skip_serializing_if = "Option::is_none")]
14680    pub cpu_user_time_us: Option<i64>,
14681    #[serde(rename = "dbName", skip_serializing_if = "Option::is_none")]
14682    pub db_name: Option<String>,
14683    #[serde(rename = "dbOperation", skip_serializing_if = "Option::is_none")]
14684    pub db_operation: Option<String>,
14685    #[serde(rename = "dbUser", skip_serializing_if = "Option::is_none")]
14686    pub db_user: Option<String>,
14687    #[serde(rename = "durationUs", skip_serializing_if = "Option::is_none")]
14688    pub duration_us: Option<i64>,
14689    #[serde(rename = "errElevel", skip_serializing_if = "Option::is_none")]
14690    pub err_elevel: Option<i64>,
14691    #[serde(rename = "errMessage", skip_serializing_if = "Option::is_none")]
14692    pub err_message: Option<String>,
14693    #[serde(rename = "errSqlstate", skip_serializing_if = "Option::is_none")]
14694    pub err_sqlstate: Option<String>,
14695    #[serde(rename = "jitDeformTimeUs", skip_serializing_if = "Option::is_none")]
14696    pub jit_deform_time_us: Option<i64>,
14697    #[serde(rename = "jitEmissionTimeUs", skip_serializing_if = "Option::is_none")]
14698    pub jit_emission_time_us: Option<i64>,
14699    #[serde(rename = "jitFunctions", skip_serializing_if = "Option::is_none")]
14700    pub jit_functions: Option<i64>,
14701    #[serde(
14702        rename = "jitGenerationTimeUs",
14703        skip_serializing_if = "Option::is_none"
14704    )]
14705    pub jit_generation_time_us: Option<i64>,
14706    #[serde(rename = "jitInliningTimeUs", skip_serializing_if = "Option::is_none")]
14707    pub jit_inlining_time_us: Option<i64>,
14708    #[serde(
14709        rename = "jitOptimizationTimeUs",
14710        skip_serializing_if = "Option::is_none"
14711    )]
14712    pub jit_optimization_time_us: Option<i64>,
14713    #[serde(rename = "localBlksDirtied", skip_serializing_if = "Option::is_none")]
14714    pub local_blks_dirtied: Option<i64>,
14715    #[serde(rename = "localBlksHit", skip_serializing_if = "Option::is_none")]
14716    pub local_blks_hit: Option<i64>,
14717    #[serde(rename = "localBlksRead", skip_serializing_if = "Option::is_none")]
14718    pub local_blks_read: Option<i64>,
14719    #[serde(rename = "localBlksWritten", skip_serializing_if = "Option::is_none")]
14720    pub local_blks_written: Option<i64>,
14721    #[serde(
14722        rename = "parallelWorkersLaunched",
14723        skip_serializing_if = "Option::is_none"
14724    )]
14725    pub parallel_workers_launched: Option<i64>,
14726    #[serde(
14727        rename = "parallelWorkersPlanned",
14728        skip_serializing_if = "Option::is_none"
14729    )]
14730    pub parallel_workers_planned: Option<i64>,
14731    #[serde(skip_serializing_if = "Option::is_none")]
14732    pub pid: Option<String>,
14733    #[serde(rename = "queryId", skip_serializing_if = "Option::is_none")]
14734    pub query_id: Option<String>,
14735    #[serde(rename = "queryText", skip_serializing_if = "Option::is_none")]
14736    pub query_text: Option<String>,
14737    #[serde(skip_serializing_if = "Option::is_none")]
14738    pub rows: Option<i64>,
14739    #[serde(rename = "serverRole", skip_serializing_if = "Option::is_none")]
14740    pub server_role: Option<String>,
14741    #[serde(
14742        rename = "sharedBlkReadTimeUs",
14743        skip_serializing_if = "Option::is_none"
14744    )]
14745    pub shared_blk_read_time_us: Option<i64>,
14746    #[serde(
14747        rename = "sharedBlkWriteTimeUs",
14748        skip_serializing_if = "Option::is_none"
14749    )]
14750    pub shared_blk_write_time_us: Option<i64>,
14751    #[serde(rename = "sharedBlksDirtied", skip_serializing_if = "Option::is_none")]
14752    pub shared_blks_dirtied: Option<i64>,
14753    #[serde(rename = "sharedBlksHit", skip_serializing_if = "Option::is_none")]
14754    pub shared_blks_hit: Option<i64>,
14755    #[serde(rename = "sharedBlksRead", skip_serializing_if = "Option::is_none")]
14756    pub shared_blks_read: Option<i64>,
14757    #[serde(rename = "sharedBlksWritten", skip_serializing_if = "Option::is_none")]
14758    pub shared_blks_written: Option<i64>,
14759    #[serde(rename = "spanId", skip_serializing_if = "Option::is_none")]
14760    pub span_id: Option<String>,
14761    #[serde(rename = "tempBlkReadTimeUs", skip_serializing_if = "Option::is_none")]
14762    pub temp_blk_read_time_us: Option<i64>,
14763    #[serde(rename = "tempBlkWriteTimeUs", skip_serializing_if = "Option::is_none")]
14764    pub temp_blk_write_time_us: Option<i64>,
14765    #[serde(rename = "tempBlksRead", skip_serializing_if = "Option::is_none")]
14766    pub temp_blks_read: Option<i64>,
14767    #[serde(rename = "tempBlksWritten", skip_serializing_if = "Option::is_none")]
14768    pub temp_blks_written: Option<i64>,
14769    #[serde(skip_serializing_if = "Option::is_none")]
14770    pub timestamp: Option<String>,
14771    #[serde(rename = "traceId", skip_serializing_if = "Option::is_none")]
14772    pub trace_id: Option<String>,
14773    #[serde(rename = "walBytes", skip_serializing_if = "Option::is_none")]
14774    pub wal_bytes: Option<i64>,
14775    #[serde(rename = "walFpi", skip_serializing_if = "Option::is_none")]
14776    pub wal_fpi: Option<i64>,
14777    #[serde(rename = "walRecords", skip_serializing_if = "Option::is_none")]
14778    pub wal_records: Option<i64>,
14779}
14780
14781/// `PostgresSlowQueryPattern` from the ClickHouse Cloud API.
14782#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14783pub struct PostgresSlowQueryPattern {
14784    #[serde(skip_serializing_if = "Option::is_none")]
14785    pub app: Option<String>,
14786    #[serde(rename = "avgDurationUs", skip_serializing_if = "Option::is_none")]
14787    pub avg_duration_us: Option<i64>,
14788    #[serde(rename = "callCount", skip_serializing_if = "Option::is_none")]
14789    pub call_count: Option<i64>,
14790    #[serde(rename = "dbName", skip_serializing_if = "Option::is_none")]
14791    pub db_name: Option<String>,
14792    #[serde(rename = "dbOperation", skip_serializing_if = "Option::is_none")]
14793    pub db_operation: Option<String>,
14794    #[serde(rename = "dbUser", skip_serializing_if = "Option::is_none")]
14795    pub db_user: Option<String>,
14796    #[serde(rename = "errorCount", skip_serializing_if = "Option::is_none")]
14797    pub error_count: Option<i64>,
14798    #[serde(rename = "maxDurationUs", skip_serializing_if = "Option::is_none")]
14799    pub max_duration_us: Option<i64>,
14800    #[serde(rename = "p50DurationUs", skip_serializing_if = "Option::is_none")]
14801    pub p50_duration_us: Option<i64>,
14802    #[serde(rename = "p95DurationUs", skip_serializing_if = "Option::is_none")]
14803    pub p95_duration_us: Option<i64>,
14804    #[serde(rename = "p99DurationUs", skip_serializing_if = "Option::is_none")]
14805    pub p99_duration_us: Option<i64>,
14806    #[serde(rename = "queryId", skip_serializing_if = "Option::is_none")]
14807    pub query_id: Option<String>,
14808    #[serde(rename = "queryText", skip_serializing_if = "Option::is_none")]
14809    pub query_text: Option<String>,
14810    #[serde(rename = "totalCpuTimeUs", skip_serializing_if = "Option::is_none")]
14811    pub total_cpu_time_us: Option<i64>,
14812    #[serde(rename = "totalDurationUs", skip_serializing_if = "Option::is_none")]
14813    pub total_duration_us: Option<i64>,
14814    #[serde(rename = "totalRows", skip_serializing_if = "Option::is_none")]
14815    pub total_rows: Option<i64>,
14816    #[serde(rename = "totalSharedBlksHit", skip_serializing_if = "Option::is_none")]
14817    pub total_shared_blks_hit: Option<i64>,
14818    #[serde(
14819        rename = "totalSharedBlksRead",
14820        skip_serializing_if = "Option::is_none"
14821    )]
14822    pub total_shared_blks_read: Option<i64>,
14823    #[serde(rename = "totalWalBytes", skip_serializing_if = "Option::is_none")]
14824    pub total_wal_bytes: Option<i64>,
14825}
14826
14827/// `PostgresSlowQueryPatternDetail` from the ClickHouse Cloud API.
14828#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14829pub struct PostgresSlowQueryPatternDetail {
14830    #[serde(skip_serializing_if = "Option::is_none")]
14831    pub aggregate: Option<PostgresSlowQueryPattern>,
14832    #[serde(rename = "recentExecutions", skip_serializing_if = "Option::is_none")]
14833    pub recent_executions: Option<Vec<PostgresQueryExecution>>,
14834}
14835
14836/// `PrivateEndpointConfig` from the ClickHouse Cloud API.
14837#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14838pub struct PrivateEndpointConfig {
14839    #[serde(rename = "endpointServiceId", skip_serializing_if = "Option::is_none")]
14840    pub endpoint_service_id: Option<String>,
14841    #[serde(rename = "privateDnsHostname", skip_serializing_if = "Option::is_none")]
14842    pub private_dns_hostname: Option<String>,
14843}
14844
14845/// `RBACPolicy` from the ClickHouse Cloud API.
14846#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14847pub struct RBACPolicy {
14848    #[serde(rename = "allowDeny", skip_serializing_if = "Option::is_none")]
14849    pub allow_deny: Option<RBACPolicyAllowdeny>,
14850    #[serde(skip_serializing_if = "Option::is_none")]
14851    pub id: Option<String>,
14852    #[serde(skip_serializing_if = "Option::is_none")]
14853    pub permissions: Option<Vec<String>>,
14854    #[serde(skip_serializing_if = "Option::is_none")]
14855    pub resources: Option<Vec<String>>,
14856    #[serde(rename = "roleId", skip_serializing_if = "Option::is_none")]
14857    pub role_id: Option<String>,
14858    #[serde(skip_serializing_if = "Option::is_none")]
14859    pub tags: Option<RBACPolicyTagsResponse>,
14860    #[serde(rename = "tenantId", skip_serializing_if = "Option::is_none")]
14861    pub tenant_id: Option<String>,
14862}
14863
14864/// `RBACPolicyCreateRequest` from the ClickHouse Cloud API.
14865#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14866pub struct RBACPolicyCreateRequest {
14867    #[serde(rename = "allowDeny")]
14868    pub allow_deny: RBACPolicyCreateRequestAllowdeny,
14869    pub permissions: Vec<String>,
14870    pub resources: Vec<String>,
14871    #[serde(skip_serializing_if = "Option::is_none")]
14872    pub tags: Option<RBACPolicyTags>,
14873}
14874
14875/// `RBACPolicyTags` from the ClickHouse Cloud API.
14876#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14877pub struct RBACPolicyTags {
14878    #[serde(skip_serializing_if = "Option::is_none")]
14879    pub grants: Option<Vec<String>>,
14880    #[serde(rename = "roleV2", skip_serializing_if = "Option::is_none")]
14881    pub role_v2: Option<RBACPolicyTagsRolev2>,
14882}
14883
14884/// `RBACPolicyTags` from the ClickHouse Cloud API, in response position.
14885///
14886/// Response variant of [`RBACPolicyTags`]: every field is `Option<T>`, so a
14887/// field the API drops or sends as `null` deserializes to `None` instead of
14888/// failing.
14889#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14890pub struct RBACPolicyTagsResponse {
14891    #[serde(skip_serializing_if = "Option::is_none")]
14892    pub grants: Option<Vec<String>>,
14893    #[serde(rename = "roleV2", skip_serializing_if = "Option::is_none")]
14894    pub role_v2: Option<RBACPolicyTagsRolev2>,
14895}
14896
14897/// `RBACRole` from the ClickHouse Cloud API.
14898#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14899pub struct RBACRole {
14900    #[serde(skip_serializing_if = "Option::is_none")]
14901    pub actors: Option<Vec<String>>,
14902    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
14903    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
14904    #[serde(skip_serializing_if = "Option::is_none")]
14905    pub id: Option<String>,
14906    #[serde(skip_serializing_if = "Option::is_none")]
14907    pub name: Option<String>,
14908    #[serde(rename = "ownerId", skip_serializing_if = "Option::is_none")]
14909    pub owner_id: Option<String>,
14910    #[serde(skip_serializing_if = "Option::is_none")]
14911    pub policies: Option<Vec<RBACPolicy>>,
14912    #[serde(rename = "tenantId", skip_serializing_if = "Option::is_none")]
14913    pub tenant_id: Option<String>,
14914    #[serde(skip_serializing_if = "Option::is_none")]
14915    pub r#type: Option<RBACRoleType>,
14916    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
14917    pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
14918}
14919
14920/// `ResourceTagsV1` from the ClickHouse Cloud API.
14921#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14922pub struct ResourceTagsV1 {
14923    pub key: String,
14924    #[serde(skip_serializing_if = "Option::is_none")]
14925    pub value: Option<String>,
14926}
14927
14928/// `ResourceTagsV1` from the ClickHouse Cloud API, in response position.
14929///
14930/// Response variant of [`ResourceTagsV1`]: every field is `Option<T>`, so a
14931/// field the API drops or sends as `null` deserializes to `None` instead of
14932/// failing. Writing a fetched tag back to the API goes through
14933/// `TryFrom<ResourceTagsV1Response>` (see [`crate::convert`]), because a tag
14934/// without a key cannot be sent.
14935#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14936pub struct ResourceTagsV1Response {
14937    #[serde(skip_serializing_if = "Option::is_none")]
14938    pub key: Option<String>,
14939    #[serde(skip_serializing_if = "Option::is_none")]
14940    pub value: Option<String>,
14941}
14942
14943/// `ReversePrivateEndpoint` from the ClickHouse Cloud API.
14944#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14945pub struct ReversePrivateEndpoint {
14946    #[serde(
14947        rename = "customPrivateDnsMappings",
14948        skip_serializing_if = "Option::is_none"
14949    )]
14950    pub custom_private_dns_mappings: Option<Vec<CustomPrivateDnsMappingResponse>>,
14951    #[serde(skip_serializing_if = "Option::is_none")]
14952    pub description: Option<String>,
14953    #[serde(rename = "dnsNames", skip_serializing_if = "Option::is_none")]
14954    pub dns_names: Option<Vec<String>>,
14955    #[serde(rename = "endpointId", skip_serializing_if = "Option::is_none")]
14956    pub endpoint_id: Option<String>,
14957    #[serde(
14958        rename = "gcpServiceAttachment",
14959        skip_serializing_if = "Option::is_none"
14960    )]
14961    pub gcp_service_attachment: Option<String>,
14962    #[serde(skip_serializing_if = "Option::is_none")]
14963    pub id: Option<uuid::Uuid>,
14964    #[serde(rename = "mskAuthentication", skip_serializing_if = "Option::is_none")]
14965    pub msk_authentication: Option<ReversePrivateEndpointMskauthentication>,
14966    #[serde(rename = "mskClusterArn", skip_serializing_if = "Option::is_none")]
14967    pub msk_cluster_arn: Option<String>,
14968    #[serde(rename = "privateDnsNames", skip_serializing_if = "Option::is_none")]
14969    pub private_dns_names: Option<Vec<String>>,
14970    #[serde(rename = "serviceId", skip_serializing_if = "Option::is_none")]
14971    pub service_id: Option<uuid::Uuid>,
14972    #[serde(skip_serializing_if = "Option::is_none")]
14973    pub status: Option<ReversePrivateEndpointStatus>,
14974    #[serde(skip_serializing_if = "Option::is_none")]
14975    pub r#type: Option<ReversePrivateEndpointType>,
14976    #[serde(
14977        rename = "vpcEndpointServiceName",
14978        skip_serializing_if = "Option::is_none"
14979    )]
14980    pub vpc_endpoint_service_name: Option<String>,
14981    #[serde(
14982        rename = "vpcResourceConfigurationId",
14983        skip_serializing_if = "Option::is_none"
14984    )]
14985    pub vpc_resource_configuration_id: Option<String>,
14986    #[serde(
14987        rename = "vpcResourceShareArn",
14988        skip_serializing_if = "Option::is_none"
14989    )]
14990    pub vpc_resource_share_arn: Option<String>,
14991}
14992
14993/// `RoleCreateRequest` from the ClickHouse Cloud API.
14994#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
14995pub struct RoleCreateRequest {
14996    pub actors: Vec<String>,
14997    pub name: String,
14998    pub policies: Vec<RBACPolicyCreateRequest>,
14999}
15000
15001/// `RoleUpdateRequest` from the ClickHouse Cloud API.
15002#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15003pub struct RoleUpdateRequest {
15004    pub actors: Vec<String>,
15005    pub name: String,
15006    pub policies: Vec<RBACPolicyCreateRequest>,
15007}
15008
15009/// `ScalingSchedule` from the ClickHouse Cloud API.
15010#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15011pub struct ScalingSchedule {
15012    #[serde(rename = "activeEntryId", skip_serializing_if = "Option::is_none")]
15013    pub active_entry_id: Option<uuid::Uuid>,
15014    #[serde(rename = "baseConfig", skip_serializing_if = "Option::is_none")]
15015    pub base_config: Option<ScalingScheduleBaseConfig>,
15016    #[serde(skip_serializing_if = "Option::is_none")]
15017    pub entries: Option<Vec<ScalingScheduleEntry>>,
15018}
15019
15020/// `ScalingScheduleBaseConfig` from the ClickHouse Cloud API.
15021#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15022pub struct ScalingScheduleBaseConfig {
15023    #[serde(rename = "autoscalingMode", skip_serializing_if = "Option::is_none")]
15024    pub autoscaling_mode: Option<AutoscalingMode>,
15025    #[serde(rename = "idleScaling", skip_serializing_if = "Option::is_none")]
15026    pub idle_scaling: Option<bool>,
15027    #[serde(rename = "idleTimeoutMinutes", skip_serializing_if = "Option::is_none")]
15028    pub idle_timeout_minutes: Option<i64>,
15029    #[serde(rename = "maxReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
15030    pub max_replica_memory_gb: Option<f64>,
15031    #[serde(rename = "maxReplicas", skip_serializing_if = "Option::is_none")]
15032    pub max_replicas: Option<i64>,
15033    #[serde(rename = "minReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
15034    pub min_replica_memory_gb: Option<f64>,
15035    #[serde(rename = "minReplicas", skip_serializing_if = "Option::is_none")]
15036    pub min_replicas: Option<i64>,
15037}
15038
15039/// `ScalingScheduleEntry` from the ClickHouse Cloud API.
15040#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15041pub struct ScalingScheduleEntry {
15042    #[serde(rename = "autoscalingMode", skip_serializing_if = "Option::is_none")]
15043    pub autoscaling_mode: Option<AutoscalingMode>,
15044    #[serde(rename = "endHourUtc", skip_serializing_if = "Option::is_none")]
15045    pub end_hour_utc: Option<i64>,
15046    #[serde(skip_serializing_if = "Option::is_none")]
15047    pub id: Option<uuid::Uuid>,
15048    #[serde(rename = "idleScaling", skip_serializing_if = "Option::is_none")]
15049    pub idle_scaling: Option<bool>,
15050    #[serde(rename = "idleTimeoutMinutes", skip_serializing_if = "Option::is_none")]
15051    pub idle_timeout_minutes: Option<i64>,
15052    #[serde(rename = "isActiveNow", skip_serializing_if = "Option::is_none")]
15053    pub is_active_now: Option<bool>,
15054    #[serde(rename = "maxReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
15055    pub max_replica_memory_gb: Option<f64>,
15056    #[serde(rename = "maxReplicas", skip_serializing_if = "Option::is_none")]
15057    pub max_replicas: Option<i64>,
15058    #[serde(rename = "minReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
15059    pub min_replica_memory_gb: Option<f64>,
15060    #[serde(rename = "minReplicas", skip_serializing_if = "Option::is_none")]
15061    pub min_replicas: Option<i64>,
15062    #[serde(skip_serializing_if = "Option::is_none")]
15063    pub name: Option<String>,
15064    #[serde(rename = "startHourUtc", skip_serializing_if = "Option::is_none")]
15065    pub start_hour_utc: Option<i64>,
15066    #[serde(skip_serializing_if = "Option::is_none")]
15067    pub weekdays: Option<Vec<i64>>,
15068}
15069
15070/// `ScalingScheduleEntryRequest` from the ClickHouse Cloud API.
15071#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15072pub struct ScalingScheduleEntryRequest {
15073    #[serde(rename = "autoscalingMode", skip_serializing_if = "Option::is_none")]
15074    pub autoscaling_mode: Option<AutoscalingMode>,
15075    #[serde(rename = "endHourUtc")]
15076    pub end_hour_utc: i64,
15077    #[serde(rename = "idleScaling", skip_serializing_if = "Option::is_none")]
15078    pub idle_scaling: Option<bool>,
15079    #[serde(rename = "idleTimeoutMinutes", skip_serializing_if = "Option::is_none")]
15080    pub idle_timeout_minutes: Option<i64>,
15081    #[serde(rename = "maxReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
15082    pub max_replica_memory_gb: Option<f64>,
15083    #[serde(rename = "maxReplicas", skip_serializing_if = "Option::is_none")]
15084    pub max_replicas: Option<i64>,
15085    #[serde(rename = "minReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
15086    pub min_replica_memory_gb: Option<f64>,
15087    #[serde(rename = "minReplicas", skip_serializing_if = "Option::is_none")]
15088    pub min_replicas: Option<i64>,
15089    pub name: String,
15090    #[serde(rename = "numReplicas", skip_serializing_if = "Option::is_none")]
15091    pub num_replicas: Option<i64>,
15092    #[serde(rename = "startHourUtc")]
15093    pub start_hour_utc: i64,
15094    pub weekdays: Vec<i64>,
15095}
15096
15097/// `ScalingSchedulePostRequest` from the ClickHouse Cloud API.
15098#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15099pub struct ScalingSchedulePostRequest {
15100    pub entries: Vec<ScalingScheduleEntryRequest>,
15101}
15102
15103// The `Scim*` family below is strict in both directions, deliberately. The spec
15104// defines the SCIM schemas but declares no SCIM path, so no `Client` method
15105// sends or returns one: the family is reachable from neither a request root nor
15106// a response root, and the analyzer resolves such operation-unreferenced schemas
15107// in request position. Making the SCIM list/response envelopes all-`Option`
15108// would therefore report `FieldOptionalityMismatch` drift while protecting no
15109// actual response. `scim_models_are_outside_the_response_tree` in
15110// `tests/spec_coverage_test.rs` pins that premise: if SCIM operations are ever
15111// added to `client.rs`, the envelopes they return must be split first.
15112
15113/// `ScimEnterpriseManager` from the ClickHouse Cloud API.
15114#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15115pub struct ScimEnterpriseManager {
15116    #[serde(rename = "displayName")]
15117    pub display_name: String,
15118    pub value: String,
15119}
15120
15121/// `ScimEnterpriseUser` from the ClickHouse Cloud API.
15122#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15123pub struct ScimEnterpriseUser {
15124    #[serde(rename = "costCenter")]
15125    pub cost_center: String,
15126    pub department: String,
15127    pub division: String,
15128    #[serde(rename = "employeeNumber")]
15129    pub employee_number: String,
15130    pub manager: ScimEnterpriseManager,
15131    pub organization: String,
15132}
15133
15134/// `ScimGroup` from the ClickHouse Cloud API.
15135#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15136pub struct ScimGroup {
15137    #[serde(rename = "displayName")]
15138    pub display_name: String,
15139    #[serde(rename = "externalId", skip_serializing_if = "Option::is_none")]
15140    pub external_id: Option<String>,
15141    pub id: uuid::Uuid,
15142    #[serde(skip_serializing_if = "Option::is_none")]
15143    pub members: Option<Vec<ScimGroupMember>>,
15144    pub meta: ScimGroupMeta,
15145    pub schemas: Vec<String>,
15146}
15147
15148/// `ScimGroupListResponse` from the ClickHouse Cloud API.
15149#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15150pub struct ScimGroupListResponse {
15151    #[serde(rename = "Resources")]
15152    pub resources: Vec<ScimGroup>,
15153    #[serde(rename = "itemsPerPage")]
15154    pub items_per_page: i64,
15155    pub schemas: Vec<String>,
15156    #[serde(rename = "startIndex")]
15157    pub start_index: i64,
15158    #[serde(rename = "totalResults")]
15159    pub total_results: i64,
15160}
15161
15162/// `ScimGroupMember` from the ClickHouse Cloud API.
15163#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15164pub struct ScimGroupMember {
15165    #[serde(skip_serializing_if = "Option::is_none")]
15166    pub display: Option<String>,
15167    #[serde(skip_serializing_if = "Option::is_none")]
15168    pub r#type: Option<String>,
15169    pub value: String,
15170}
15171
15172/// `ScimGroupMeta` from the ClickHouse Cloud API.
15173#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15174pub struct ScimGroupMeta {
15175    pub created: chrono::DateTime<chrono::Utc>,
15176    #[serde(rename = "lastModified")]
15177    pub last_modified: chrono::DateTime<chrono::Utc>,
15178    #[serde(skip_serializing_if = "Option::is_none")]
15179    pub location: Option<String>,
15180    #[serde(rename = "resourceType")]
15181    pub resource_type: String,
15182}
15183
15184/// `ScimGroupPostRequest` from the ClickHouse Cloud API.
15185#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15186pub struct ScimGroupPostRequest {
15187    #[serde(rename = "displayName")]
15188    pub display_name: String,
15189    #[serde(rename = "externalId", skip_serializing_if = "Option::is_none")]
15190    pub external_id: Option<String>,
15191    #[serde(skip_serializing_if = "Option::is_none")]
15192    pub members: Option<Vec<ScimGroupMember>>,
15193    pub schemas: Vec<String>,
15194}
15195
15196/// `ScimGroupPutRequest` from the ClickHouse Cloud API.
15197#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15198pub struct ScimGroupPutRequest {
15199    #[serde(rename = "displayName")]
15200    pub display_name: String,
15201    #[serde(rename = "externalId", skip_serializing_if = "Option::is_none")]
15202    pub external_id: Option<String>,
15203    #[serde(skip_serializing_if = "Option::is_none")]
15204    pub id: Option<String>,
15205    #[serde(skip_serializing_if = "Option::is_none")]
15206    pub members: Option<Vec<ScimGroupMember>>,
15207    #[serde(skip_serializing_if = "Option::is_none")]
15208    pub meta: Option<ScimGroupMeta>,
15209    pub schemas: Vec<String>,
15210}
15211
15212/// `ScimListResponse` from the ClickHouse Cloud API.
15213#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15214pub struct ScimListResponse {
15215    #[serde(rename = "Resources")]
15216    pub resources: Vec<ScimUser>,
15217    #[serde(rename = "itemsPerPage")]
15218    pub items_per_page: i64,
15219    pub schemas: Vec<String>,
15220    #[serde(rename = "startIndex")]
15221    pub start_index: i64,
15222    #[serde(rename = "totalResults")]
15223    pub total_results: i64,
15224}
15225
15226/// `ScimPatchOp` from the ClickHouse Cloud API.
15227#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15228pub struct ScimPatchOp {
15229    #[serde(rename = "Operations")]
15230    pub operations: Vec<ScimPatchOperation>,
15231    pub schemas: Vec<String>,
15232}
15233
15234/// `ScimPatchOperation` from the ClickHouse Cloud API.
15235#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15236pub struct ScimPatchOperation {
15237    pub op: ScimPatchOperationOp,
15238    #[serde(skip_serializing_if = "Option::is_none")]
15239    pub path: Option<String>,
15240    #[serde(skip_serializing_if = "Option::is_none")]
15241    pub value: Option<String>,
15242}
15243
15244/// `ScimUser` from the ClickHouse Cloud API.
15245#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15246pub struct ScimUser {
15247    pub active: bool,
15248    #[serde(skip_serializing_if = "Option::is_none")]
15249    pub addresses: Option<Vec<ScimUserAddress>>,
15250    #[serde(rename = "displayName", skip_serializing_if = "Option::is_none")]
15251    pub display_name: Option<String>,
15252    pub emails: Vec<ScimUserEmail>,
15253    #[serde(skip_serializing_if = "Option::is_none")]
15254    pub entitlements: Option<Vec<ScimUserEntitlement>>,
15255    #[serde(rename = "externalId", skip_serializing_if = "Option::is_none")]
15256    pub external_id: Option<String>,
15257    #[serde(skip_serializing_if = "Option::is_none")]
15258    pub groups: Option<Vec<ScimUserGroup>>,
15259    pub id: String,
15260    #[serde(skip_serializing_if = "Option::is_none")]
15261    pub ims: Option<Vec<ScimUserIm>>,
15262    #[serde(skip_serializing_if = "Option::is_none")]
15263    pub locale: Option<String>,
15264    pub meta: ScimUserMeta,
15265    pub name: ScimUserName,
15266    #[serde(rename = "nickName", skip_serializing_if = "Option::is_none")]
15267    pub nick_name: Option<String>,
15268    #[serde(rename = "phoneNumbers", skip_serializing_if = "Option::is_none")]
15269    pub phone_numbers: Option<Vec<ScimUserPhoneNumber>>,
15270    #[serde(skip_serializing_if = "Option::is_none")]
15271    pub photos: Option<Vec<ScimUserPhoto>>,
15272    #[serde(rename = "preferredLanguage", skip_serializing_if = "Option::is_none")]
15273    pub preferred_language: Option<String>,
15274    #[serde(rename = "profileUrl", skip_serializing_if = "Option::is_none")]
15275    pub profile_url: Option<String>,
15276    #[serde(skip_serializing_if = "Option::is_none")]
15277    pub roles: Option<Vec<ScimUserRole>>,
15278    pub schemas: Vec<String>,
15279    #[serde(skip_serializing_if = "Option::is_none")]
15280    pub timezone: Option<String>,
15281    #[serde(skip_serializing_if = "Option::is_none")]
15282    pub title: Option<String>,
15283    #[serde(rename = "userName")]
15284    pub user_name: String,
15285    #[serde(rename = "userType", skip_serializing_if = "Option::is_none")]
15286    pub user_type: Option<String>,
15287    #[serde(rename = "x509Certificates", skip_serializing_if = "Option::is_none")]
15288    pub x509_certificates: Option<Vec<ScimX509Certificate>>,
15289}
15290
15291/// `ScimUserAddress` from the ClickHouse Cloud API.
15292#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15293pub struct ScimUserAddress {
15294    pub country: String,
15295    pub formatted: String,
15296    pub locality: String,
15297    #[serde(rename = "postalCode")]
15298    pub postal_code: String,
15299    pub primary: bool,
15300    pub region: String,
15301    #[serde(rename = "streetAddress")]
15302    pub street_address: String,
15303    pub r#type: String,
15304}
15305
15306/// `ScimUserEmail` from the ClickHouse Cloud API.
15307#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15308pub struct ScimUserEmail {
15309    #[serde(skip_serializing_if = "Option::is_none")]
15310    pub primary: Option<bool>,
15311    #[serde(skip_serializing_if = "Option::is_none")]
15312    pub r#type: Option<String>,
15313    pub value: String,
15314}
15315
15316/// `ScimUserEntitlement` from the ClickHouse Cloud API.
15317#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15318pub struct ScimUserEntitlement {
15319    pub display: String,
15320    pub primary: bool,
15321    pub r#type: String,
15322    pub value: String,
15323}
15324
15325/// `ScimUserGroup` from the ClickHouse Cloud API.
15326#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15327pub struct ScimUserGroup {
15328    pub display: String,
15329    pub r#type: String,
15330    pub value: String,
15331}
15332
15333/// `ScimUserIm` from the ClickHouse Cloud API.
15334#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15335pub struct ScimUserIm {
15336    pub primary: bool,
15337    pub r#type: String,
15338    pub value: String,
15339}
15340
15341/// `ScimUserMeta` from the ClickHouse Cloud API.
15342#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15343pub struct ScimUserMeta {
15344    pub created: chrono::DateTime<chrono::Utc>,
15345    #[serde(rename = "lastModified")]
15346    pub last_modified: chrono::DateTime<chrono::Utc>,
15347    #[serde(skip_serializing_if = "Option::is_none")]
15348    pub location: Option<String>,
15349    #[serde(rename = "resourceType")]
15350    pub resource_type: String,
15351}
15352
15353/// `ScimUserName` from the ClickHouse Cloud API.
15354#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15355pub struct ScimUserName {
15356    #[serde(rename = "familyName")]
15357    pub family_name: String,
15358    pub formatted: String,
15359    #[serde(rename = "givenName")]
15360    pub given_name: String,
15361    #[serde(rename = "honorificPrefix")]
15362    pub honorific_prefix: String,
15363    #[serde(rename = "honorificSuffix")]
15364    pub honorific_suffix: String,
15365    #[serde(rename = "middleName")]
15366    pub middle_name: String,
15367}
15368
15369/// `ScimUserPhoneNumber` from the ClickHouse Cloud API.
15370#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15371pub struct ScimUserPhoneNumber {
15372    pub primary: bool,
15373    pub r#type: String,
15374    pub value: String,
15375}
15376
15377/// `ScimUserPhoto` from the ClickHouse Cloud API.
15378#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15379pub struct ScimUserPhoto {
15380    pub primary: bool,
15381    pub r#type: String,
15382    pub value: String,
15383}
15384
15385/// `ScimUserPostRequest` from the ClickHouse Cloud API.
15386#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15387pub struct ScimUserPostRequest {
15388    #[serde(skip_serializing_if = "Option::is_none")]
15389    pub active: Option<bool>,
15390    #[serde(skip_serializing_if = "Option::is_none")]
15391    pub addresses: Option<Vec<ScimUserAddress>>,
15392    #[serde(rename = "displayName", skip_serializing_if = "Option::is_none")]
15393    pub display_name: Option<String>,
15394    pub emails: Vec<ScimUserEmail>,
15395    #[serde(skip_serializing_if = "Option::is_none")]
15396    pub entitlements: Option<Vec<ScimUserEntitlement>>,
15397    #[serde(rename = "externalId", skip_serializing_if = "Option::is_none")]
15398    pub external_id: Option<String>,
15399    #[serde(skip_serializing_if = "Option::is_none")]
15400    pub groups: Option<Vec<ScimUserGroup>>,
15401    #[serde(skip_serializing_if = "Option::is_none")]
15402    pub ims: Option<Vec<ScimUserIm>>,
15403    #[serde(skip_serializing_if = "Option::is_none")]
15404    pub locale: Option<String>,
15405    #[serde(skip_serializing_if = "Option::is_none")]
15406    pub name: Option<ScimUserName>,
15407    #[serde(rename = "nickName", skip_serializing_if = "Option::is_none")]
15408    pub nick_name: Option<String>,
15409    #[serde(skip_serializing_if = "Option::is_none")]
15410    pub password: Option<String>,
15411    #[serde(rename = "phoneNumbers", skip_serializing_if = "Option::is_none")]
15412    pub phone_numbers: Option<Vec<ScimUserPhoneNumber>>,
15413    #[serde(skip_serializing_if = "Option::is_none")]
15414    pub photos: Option<Vec<ScimUserPhoto>>,
15415    #[serde(rename = "preferredLanguage", skip_serializing_if = "Option::is_none")]
15416    pub preferred_language: Option<String>,
15417    #[serde(rename = "profileUrl", skip_serializing_if = "Option::is_none")]
15418    pub profile_url: Option<String>,
15419    #[serde(skip_serializing_if = "Option::is_none")]
15420    pub roles: Option<Vec<ScimUserRole>>,
15421    pub schemas: Vec<String>,
15422    #[serde(skip_serializing_if = "Option::is_none")]
15423    pub timezone: Option<String>,
15424    #[serde(skip_serializing_if = "Option::is_none")]
15425    pub title: Option<String>,
15426    #[serde(
15427        rename = "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
15428        skip_serializing_if = "Option::is_none"
15429    )]
15430    pub urn_ietf_params_scim_schemas_extension_enterprise_2_0_user: Option<ScimEnterpriseUser>,
15431    #[serde(rename = "userName")]
15432    pub user_name: String,
15433    #[serde(rename = "userType", skip_serializing_if = "Option::is_none")]
15434    pub user_type: Option<String>,
15435    #[serde(rename = "x509Certificates", skip_serializing_if = "Option::is_none")]
15436    pub x509_certificates: Option<Vec<ScimX509Certificate>>,
15437}
15438
15439/// `ScimUserPutRequest` from the ClickHouse Cloud API.
15440#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15441pub struct ScimUserPutRequest {
15442    #[serde(skip_serializing_if = "Option::is_none")]
15443    pub active: Option<bool>,
15444    #[serde(skip_serializing_if = "Option::is_none")]
15445    pub addresses: Option<Vec<ScimUserAddress>>,
15446    #[serde(rename = "displayName", skip_serializing_if = "Option::is_none")]
15447    pub display_name: Option<String>,
15448    pub emails: Vec<ScimUserEmail>,
15449    #[serde(skip_serializing_if = "Option::is_none")]
15450    pub entitlements: Option<Vec<ScimUserEntitlement>>,
15451    #[serde(rename = "externalId", skip_serializing_if = "Option::is_none")]
15452    pub external_id: Option<String>,
15453    #[serde(skip_serializing_if = "Option::is_none")]
15454    pub groups: Option<Vec<ScimUserGroup>>,
15455    #[serde(skip_serializing_if = "Option::is_none")]
15456    pub id: Option<String>,
15457    #[serde(skip_serializing_if = "Option::is_none")]
15458    pub ims: Option<Vec<ScimUserIm>>,
15459    #[serde(skip_serializing_if = "Option::is_none")]
15460    pub locale: Option<String>,
15461    #[serde(skip_serializing_if = "Option::is_none")]
15462    pub meta: Option<ScimUserMeta>,
15463    #[serde(skip_serializing_if = "Option::is_none")]
15464    pub name: Option<ScimUserName>,
15465    #[serde(rename = "nickName", skip_serializing_if = "Option::is_none")]
15466    pub nick_name: Option<String>,
15467    #[serde(skip_serializing_if = "Option::is_none")]
15468    pub password: Option<String>,
15469    #[serde(rename = "phoneNumbers", skip_serializing_if = "Option::is_none")]
15470    pub phone_numbers: Option<Vec<ScimUserPhoneNumber>>,
15471    #[serde(skip_serializing_if = "Option::is_none")]
15472    pub photos: Option<Vec<ScimUserPhoto>>,
15473    #[serde(rename = "preferredLanguage", skip_serializing_if = "Option::is_none")]
15474    pub preferred_language: Option<String>,
15475    #[serde(rename = "profileUrl", skip_serializing_if = "Option::is_none")]
15476    pub profile_url: Option<String>,
15477    #[serde(skip_serializing_if = "Option::is_none")]
15478    pub roles: Option<Vec<ScimUserRole>>,
15479    pub schemas: Vec<String>,
15480    #[serde(skip_serializing_if = "Option::is_none")]
15481    pub timezone: Option<String>,
15482    #[serde(skip_serializing_if = "Option::is_none")]
15483    pub title: Option<String>,
15484    #[serde(
15485        rename = "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
15486        skip_serializing_if = "Option::is_none"
15487    )]
15488    pub urn_ietf_params_scim_schemas_extension_enterprise_2_0_user: Option<ScimEnterpriseUser>,
15489    #[serde(rename = "userName")]
15490    pub user_name: String,
15491    #[serde(rename = "userType", skip_serializing_if = "Option::is_none")]
15492    pub user_type: Option<String>,
15493    #[serde(rename = "x509Certificates", skip_serializing_if = "Option::is_none")]
15494    pub x509_certificates: Option<Vec<ScimX509Certificate>>,
15495}
15496
15497/// `ScimUserRole` from the ClickHouse Cloud API.
15498#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15499pub struct ScimUserRole {
15500    pub display: String,
15501    pub primary: bool,
15502    pub r#type: String,
15503    pub value: String,
15504}
15505
15506/// `ScimX509Certificate` from the ClickHouse Cloud API.
15507#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15508pub struct ScimX509Certificate {
15509    pub value: String,
15510}
15511
15512/// `ScimAuthenticationScheme` from the ClickHouse Cloud API.
15513#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15514pub struct ScimAuthenticationScheme {
15515    pub description: String,
15516    pub name: String,
15517    #[serde(skip_serializing_if = "Option::is_none")]
15518    pub primary: Option<bool>,
15519    #[serde(rename = "specUri", skip_serializing_if = "Option::is_none")]
15520    pub spec_uri: Option<String>,
15521    #[serde(rename = "type")]
15522    pub r#type: String,
15523}
15524
15525/// `ScimBooleanFeature` from the ClickHouse Cloud API.
15526#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15527pub struct ScimBooleanFeature {
15528    pub supported: bool,
15529}
15530
15531/// `ScimResourceType` from the ClickHouse Cloud API.
15532#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15533pub struct ScimResourceType {
15534    pub description: String,
15535    pub endpoint: String,
15536    pub id: String,
15537    pub meta: ScimResourceTypeMeta,
15538    pub name: String,
15539    pub schema: String,
15540    #[serde(rename = "schemaExtensions")]
15541    pub schema_extensions: Vec<ScimSchemaExtension>,
15542    pub schemas: Vec<String>,
15543}
15544
15545/// `ScimResourceTypeListResponse` from the ClickHouse Cloud API.
15546#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15547pub struct ScimResourceTypeListResponse {
15548    #[serde(rename = "Resources")]
15549    pub resources: Vec<ScimResourceType>,
15550    #[serde(rename = "itemsPerPage")]
15551    pub items_per_page: i64,
15552    pub schemas: Vec<String>,
15553    #[serde(rename = "startIndex")]
15554    pub start_index: i64,
15555    #[serde(rename = "totalResults")]
15556    pub total_results: i64,
15557}
15558
15559/// `ScimResourceTypeMeta` from the ClickHouse Cloud API.
15560#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15561pub struct ScimResourceTypeMeta {
15562    pub location: String,
15563    #[serde(rename = "resourceType")]
15564    pub resource_type: String,
15565}
15566
15567/// `ScimSchema` from the ClickHouse Cloud API.
15568#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15569pub struct ScimSchema {
15570    pub attributes: Vec<ScimSchemaAttribute>,
15571    pub description: String,
15572    pub id: String,
15573    pub meta: ScimSchemaMeta,
15574    pub name: String,
15575    pub schemas: Vec<String>,
15576}
15577
15578/// `ScimSchemaAttribute` from the ClickHouse Cloud API.
15579#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15580pub struct ScimSchemaAttribute {
15581    #[serde(rename = "canonicalValues", skip_serializing_if = "Option::is_none")]
15582    pub canonical_values: Option<Vec<String>>,
15583    #[serde(rename = "caseExact", skip_serializing_if = "Option::is_none")]
15584    pub case_exact: Option<bool>,
15585    pub description: String,
15586    #[serde(rename = "multiValued")]
15587    pub multi_valued: bool,
15588    pub mutability: String,
15589    pub name: String,
15590    #[serde(rename = "referenceTypes", skip_serializing_if = "Option::is_none")]
15591    pub reference_types: Option<Vec<String>>,
15592    pub required: bool,
15593    pub returned: String,
15594    #[serde(rename = "subAttributes", skip_serializing_if = "Option::is_none")]
15595    pub sub_attributes: Option<Vec<ScimSchemaAttribute>>,
15596    #[serde(rename = "type")]
15597    pub r#type: String,
15598    #[serde(skip_serializing_if = "Option::is_none")]
15599    pub uniqueness: Option<String>,
15600}
15601
15602/// `ScimSchemaExtension` from the ClickHouse Cloud API.
15603#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15604pub struct ScimSchemaExtension {
15605    pub required: bool,
15606    pub schema: String,
15607}
15608
15609/// `ScimSchemaListResponse` from the ClickHouse Cloud API.
15610#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15611pub struct ScimSchemaListResponse {
15612    #[serde(rename = "Resources")]
15613    pub resources: Vec<ScimSchema>,
15614    #[serde(rename = "itemsPerPage")]
15615    pub items_per_page: i64,
15616    pub schemas: Vec<String>,
15617    #[serde(rename = "startIndex")]
15618    pub start_index: i64,
15619    #[serde(rename = "totalResults")]
15620    pub total_results: i64,
15621}
15622
15623/// `ScimSchemaMeta` from the ClickHouse Cloud API.
15624#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15625pub struct ScimSchemaMeta {
15626    pub location: String,
15627    #[serde(rename = "resourceType")]
15628    pub resource_type: String,
15629}
15630
15631/// `ScimServiceProviderConfig` from the ClickHouse Cloud API.
15632#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15633pub struct ScimServiceProviderConfig {
15634    #[serde(rename = "authenticationSchemes")]
15635    pub authentication_schemes: Vec<ScimAuthenticationScheme>,
15636    pub bulk: ScimServiceProviderConfigBulk,
15637    #[serde(rename = "changePassword")]
15638    pub change_password: ScimBooleanFeature,
15639    #[serde(rename = "documentationUri", skip_serializing_if = "Option::is_none")]
15640    pub documentation_uri: Option<String>,
15641    pub etag: ScimBooleanFeature,
15642    pub filter: ScimServiceProviderConfigFilter,
15643    pub meta: ScimServiceProviderConfigMeta,
15644    pub patch: ScimServiceProviderConfigPatch,
15645    pub schemas: Vec<String>,
15646    pub sort: ScimBooleanFeature,
15647}
15648
15649/// `ScimServiceProviderConfigBulk` from the ClickHouse Cloud API.
15650#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15651pub struct ScimServiceProviderConfigBulk {
15652    #[serde(rename = "maxOperations")]
15653    pub max_operations: i64,
15654    #[serde(rename = "maxPayloadSize")]
15655    pub max_payload_size: i64,
15656    pub supported: bool,
15657}
15658
15659/// `ScimServiceProviderConfigFilter` from the ClickHouse Cloud API.
15660#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15661pub struct ScimServiceProviderConfigFilter {
15662    #[serde(rename = "maxResults")]
15663    pub max_results: i64,
15664    pub supported: bool,
15665}
15666
15667/// `ScimServiceProviderConfigMeta` from the ClickHouse Cloud API.
15668#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15669pub struct ScimServiceProviderConfigMeta {
15670    pub location: String,
15671    #[serde(rename = "resourceType")]
15672    pub resource_type: String,
15673}
15674
15675/// `ScimServiceProviderConfigPatch` from the ClickHouse Cloud API.
15676#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15677pub struct ScimServiceProviderConfigPatch {
15678    pub supported: bool,
15679}
15680
15681/// `ServicPrivateEndpointePostRequest` from the ClickHouse Cloud API.
15682#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15683pub struct ServicPrivateEndpointePostRequest {
15684    pub description: String,
15685    pub id: String,
15686}
15687
15688/// `Service` from the ClickHouse Cloud API.
15689#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15690pub struct Service {
15691    #[serde(
15692        rename = "availablePrivateEndpointIds",
15693        skip_serializing_if = "Option::is_none"
15694    )]
15695    pub available_private_endpoint_ids: Option<Vec<String>>,
15696    #[serde(rename = "autoscalingMode", skip_serializing_if = "Option::is_none")]
15697    pub autoscaling_mode: Option<AutoscalingMode>,
15698    #[serde(rename = "byocId", skip_serializing_if = "Option::is_none")]
15699    pub byoc_id: Option<String>,
15700    #[serde(rename = "clickhouseVersion", skip_serializing_if = "Option::is_none")]
15701    pub clickhouse_version: Option<String>,
15702    #[serde(rename = "complianceType", skip_serializing_if = "Option::is_none")]
15703    pub compliance_type: Option<ServiceCompliancetype>,
15704    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
15705    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
15706    #[serde(rename = "currentScaling", skip_serializing_if = "Option::is_none")]
15707    pub current_scaling: Option<CurrentScaling>,
15708    #[serde(rename = "dataWarehouseId", skip_serializing_if = "Option::is_none")]
15709    pub data_warehouse_id: Option<String>,
15710    #[serde(rename = "enableCoreDumps", skip_serializing_if = "Option::is_none")]
15711    pub enable_core_dumps: Option<bool>,
15712    #[serde(
15713        rename = "encryptionAssumedRoleIdentifier",
15714        skip_serializing_if = "Option::is_none"
15715    )]
15716    pub encryption_assumed_role_identifier: Option<String>,
15717    #[serde(rename = "encryptionKey", skip_serializing_if = "Option::is_none")]
15718    pub encryption_key: Option<String>,
15719    #[serde(rename = "encryptionRoleId", skip_serializing_if = "Option::is_none")]
15720    pub encryption_role_id: Option<String>,
15721    #[serde(skip_serializing_if = "Option::is_none")]
15722    pub endpoints: Option<Vec<ServiceEndpoint>>,
15723    #[serde(
15724        rename = "hasTransparentDataEncryption",
15725        skip_serializing_if = "Option::is_none"
15726    )]
15727    pub has_transparent_data_encryption: Option<bool>,
15728    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
15729    pub iam_role: Option<String>,
15730    #[serde(skip_serializing_if = "Option::is_none")]
15731    pub id: Option<uuid::Uuid>,
15732    #[serde(rename = "idleScaling", skip_serializing_if = "Option::is_none")]
15733    pub idle_scaling: Option<bool>,
15734    #[serde(rename = "idleTimeoutMinutes", skip_serializing_if = "Option::is_none")]
15735    pub idle_timeout_minutes: Option<f64>,
15736    #[serde(rename = "ipAccessList", skip_serializing_if = "Option::is_none")]
15737    pub ip_access_list: Option<Vec<IpAccessListEntryResponse>>,
15738    #[serde(rename = "isPrimary", skip_serializing_if = "Option::is_none")]
15739    pub is_primary: Option<bool>,
15740    #[serde(rename = "isReadonly", skip_serializing_if = "Option::is_none")]
15741    pub is_readonly: Option<bool>,
15742    #[serde(rename = "maxReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
15743    pub max_replica_memory_gb: Option<f64>,
15744    #[serde(rename = "maxReplicas", skip_serializing_if = "Option::is_none")]
15745    pub max_replicas: Option<f64>,
15746    #[cfg(feature = "deprecated-fields")]
15747    #[serde(rename = "maxTotalMemoryGb", skip_serializing_if = "Option::is_none")]
15748    pub max_total_memory_gb: Option<f64>,
15749    #[serde(rename = "minReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
15750    pub min_replica_memory_gb: Option<f64>,
15751    #[serde(rename = "minReplicas", skip_serializing_if = "Option::is_none")]
15752    pub min_replicas: Option<f64>,
15753    #[cfg(feature = "deprecated-fields")]
15754    #[serde(rename = "minTotalMemoryGb", skip_serializing_if = "Option::is_none")]
15755    pub min_total_memory_gb: Option<f64>,
15756    #[serde(skip_serializing_if = "Option::is_none")]
15757    pub name: Option<String>,
15758    #[serde(rename = "numReplicas", skip_serializing_if = "Option::is_none")]
15759    pub num_replicas: Option<f64>,
15760    #[serde(rename = "privateEndpointIds", skip_serializing_if = "Option::is_none")]
15761    pub private_endpoint_ids: Option<Vec<String>>,
15762    #[serde(skip_serializing_if = "Option::is_none")]
15763    pub profile: Option<ServiceProfile>,
15764    #[serde(skip_serializing_if = "Option::is_none")]
15765    pub provider: Option<ServiceProvider>,
15766    #[serde(skip_serializing_if = "Option::is_none")]
15767    pub region: Option<ServiceRegion>,
15768    #[serde(rename = "releaseChannel", skip_serializing_if = "Option::is_none")]
15769    pub release_channel: Option<ServiceReleasechannel>,
15770    #[serde(rename = "replicaMemoryGb", skip_serializing_if = "Option::is_none")]
15771    pub replica_memory_gb: Option<f64>,
15772    #[serde(rename = "scalingSchedule", skip_serializing_if = "Option::is_none")]
15773    pub scaling_schedule: Option<ScalingSchedule>,
15774    #[serde(skip_serializing_if = "Option::is_none")]
15775    pub state: Option<ServiceState>,
15776    #[serde(skip_serializing_if = "Option::is_none")]
15777    pub tags: Option<Vec<ResourceTagsV1Response>>,
15778    #[cfg(feature = "deprecated-fields")]
15779    #[serde(skip_serializing_if = "Option::is_none")]
15780    pub tier: Option<ServiceTier>,
15781    #[serde(
15782        rename = "transparentDataEncryptionKeyId",
15783        skip_serializing_if = "Option::is_none"
15784    )]
15785    pub transparent_data_encryption_key_id: Option<String>,
15786}
15787
15788/// `ServiceAccount` from the ClickHouse Cloud API.
15789#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15790pub struct ServiceAccount {
15791    #[serde(rename = "serviceAccountFile")]
15792    pub service_account_file: String,
15793}
15794
15795/// `ServiceClickhouseSetting` from the ClickHouse Cloud API.
15796#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15797pub struct ServiceClickhouseSetting {
15798    #[serde(skip_serializing_if = "Option::is_none")]
15799    pub name: Option<String>,
15800    #[serde(skip_serializing_if = "Option::is_none")]
15801    pub value: Option<String>,
15802}
15803
15804/// `ServiceClickhouseSettingSchemaEntry` from the ClickHouse Cloud API.
15805#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15806pub struct ServiceClickhouseSettingSchemaEntry {
15807    #[serde(rename = "deprecationNotice", skip_serializing_if = "Option::is_none")]
15808    pub deprecation_notice: Option<String>,
15809    #[serde(skip_serializing_if = "Option::is_none")]
15810    pub description: Option<String>,
15811    #[serde(skip_serializing_if = "Option::is_none")]
15812    pub r#enum: Option<Vec<i64>>,
15813    #[serde(skip_serializing_if = "Option::is_none")]
15814    pub example: Option<String>,
15815    #[serde(skip_serializing_if = "Option::is_none")]
15816    pub name: Option<String>,
15817    #[serde(skip_serializing_if = "Option::is_none")]
15818    pub r#type: Option<String>,
15819    #[serde(skip_serializing_if = "Option::is_none")]
15820    pub warning: Option<String>,
15821}
15822
15823/// `ServiceClickhouseSettingWarning` from the ClickHouse Cloud API.
15824#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15825pub struct ServiceClickhouseSettingWarning {
15826    #[serde(skip_serializing_if = "Option::is_none")]
15827    pub message: Option<String>,
15828    #[serde(skip_serializing_if = "Option::is_none")]
15829    pub name: Option<String>,
15830}
15831
15832/// `ServiceClickhouseSettingsList` from the ClickHouse Cloud API.
15833#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15834pub struct ServiceClickhouseSettingsList {
15835    #[serde(skip_serializing_if = "Option::is_none")]
15836    pub settings: Option<Vec<ServiceClickhouseSetting>>,
15837}
15838
15839/// `ServiceClickhouseSettingsPatchRequest` from the ClickHouse Cloud API.
15840#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15841pub struct ServiceClickhouseSettingsPatchRequest {
15842    #[serde(skip_serializing_if = "Option::is_none")]
15843    pub settings: Option<String>,
15844}
15845
15846/// `ServiceClickhouseSettingsPatchResponse` from the ClickHouse Cloud API.
15847#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15848pub struct ServiceClickhouseSettingsPatchResponse {
15849    #[serde(skip_serializing_if = "Option::is_none")]
15850    pub settings: Option<String>,
15851    #[serde(skip_serializing_if = "Option::is_none")]
15852    pub warnings: Option<Vec<ServiceClickhouseSettingWarning>>,
15853}
15854
15855/// `ServiceClickhouseSettingsSchema` from the ClickHouse Cloud API.
15856#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15857pub struct ServiceClickhouseSettingsSchema {
15858    #[serde(skip_serializing_if = "Option::is_none")]
15859    pub settings: Option<Vec<ServiceClickhouseSettingSchemaEntry>>,
15860}
15861
15862/// `ServiceEndpoint` from the ClickHouse Cloud API.
15863#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15864pub struct ServiceEndpoint {
15865    #[serde(skip_serializing_if = "Option::is_none")]
15866    pub host: Option<String>,
15867    #[serde(skip_serializing_if = "Option::is_none")]
15868    pub port: Option<f64>,
15869    #[serde(skip_serializing_if = "Option::is_none")]
15870    pub protocol: Option<ServiceEndpointProtocol>,
15871    #[serde(skip_serializing_if = "Option::is_none")]
15872    pub username: Option<String>,
15873}
15874
15875/// `ServiceEndpointChange` from the ClickHouse Cloud API.
15876#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15877pub struct ServiceEndpointChange {
15878    pub enabled: bool,
15879    pub protocol: ServiceEndpointChangeProtocol,
15880}
15881
15882/// `ServicePasswordPatchRequest` from the ClickHouse Cloud API.
15883#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15884pub struct ServicePasswordPatchRequest {
15885    #[serde(rename = "newDoubleSha1Hash", skip_serializing_if = "Option::is_none")]
15886    pub new_double_sha1_hash: Option<String>,
15887    #[serde(rename = "newPasswordHash", skip_serializing_if = "Option::is_none")]
15888    pub new_password_hash: Option<String>,
15889}
15890
15891/// `ServicePasswordPatchResponse` from the ClickHouse Cloud API.
15892#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15893pub struct ServicePasswordPatchResponse {
15894    #[serde(skip_serializing_if = "Option::is_none")]
15895    pub password: Option<String>,
15896}
15897
15898/// `ServicePatchRequest` from the ClickHouse Cloud API.
15899#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15900pub struct ServicePatchRequest {
15901    #[serde(rename = "enableCoreDumps", skip_serializing_if = "Option::is_none")]
15902    pub enable_core_dumps: Option<bool>,
15903    #[serde(skip_serializing_if = "Option::is_none")]
15904    pub endpoints: Option<Vec<ServiceEndpointChange>>,
15905    #[serde(rename = "ipAccessList", skip_serializing_if = "Option::is_none")]
15906    pub ip_access_list: Option<IpAccessListPatch>,
15907    #[serde(skip_serializing_if = "Option::is_none")]
15908    pub name: Option<String>,
15909    #[serde(rename = "privateEndpointIds", skip_serializing_if = "Option::is_none")]
15910    pub private_endpoint_ids: Option<InstancePrivateEndpointsPatch>,
15911    #[serde(rename = "releaseChannel", skip_serializing_if = "Option::is_none")]
15912    pub release_channel: Option<ServicePatchRequestReleasechannel>,
15913    #[serde(skip_serializing_if = "Option::is_none")]
15914    pub tags: Option<InstanceTagsPatch>,
15915    #[serde(
15916        rename = "transparentDataEncryptionKeyId",
15917        skip_serializing_if = "Option::is_none"
15918    )]
15919    pub transparent_data_encryption_key_id: Option<String>,
15920}
15921
15922/// `ServicePostRequest` from the ClickHouse Cloud API.
15923#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15924pub struct ServicePostRequest {
15925    #[serde(rename = "autoscalingMode", skip_serializing_if = "Option::is_none")]
15926    pub autoscaling_mode: Option<AutoscalingMode>,
15927    #[serde(rename = "backupId", skip_serializing_if = "Option::is_none")]
15928    pub backup_id: Option<uuid::Uuid>,
15929    #[serde(rename = "byocId", skip_serializing_if = "Option::is_none")]
15930    pub byoc_id: Option<String>,
15931    #[serde(rename = "complianceType", skip_serializing_if = "Option::is_none")]
15932    pub compliance_type: Option<ServicePostRequestCompliancetype>,
15933    #[serde(rename = "dataWarehouseId", skip_serializing_if = "Option::is_none")]
15934    pub data_warehouse_id: Option<String>,
15935    #[serde(rename = "enableCoreDumps", skip_serializing_if = "Option::is_none")]
15936    pub enable_core_dumps: Option<bool>,
15937    #[serde(
15938        rename = "encryptionAssumedRoleIdentifier",
15939        skip_serializing_if = "Option::is_none"
15940    )]
15941    pub encryption_assumed_role_identifier: Option<String>,
15942    #[serde(rename = "encryptionKey", skip_serializing_if = "Option::is_none")]
15943    pub encryption_key: Option<String>,
15944    #[serde(skip_serializing_if = "Option::is_none")]
15945    pub endpoints: Option<Vec<ServiceEndpointChange>>,
15946    #[serde(
15947        rename = "hasTransparentDataEncryption",
15948        skip_serializing_if = "Option::is_none"
15949    )]
15950    pub has_transparent_data_encryption: Option<bool>,
15951    #[serde(rename = "idleScaling", skip_serializing_if = "Option::is_none")]
15952    pub idle_scaling: Option<bool>,
15953    #[serde(rename = "idleTimeoutMinutes", skip_serializing_if = "Option::is_none")]
15954    pub idle_timeout_minutes: Option<f64>,
15955    #[serde(rename = "ipAccessList")]
15956    pub ip_access_list: Vec<IpAccessListEntry>,
15957    #[serde(rename = "isReadonly", skip_serializing_if = "Option::is_none")]
15958    pub is_readonly: Option<bool>,
15959    #[serde(rename = "maxReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
15960    pub max_replica_memory_gb: Option<f64>,
15961    #[serde(rename = "maxReplicas", skip_serializing_if = "Option::is_none")]
15962    pub max_replicas: Option<f64>,
15963    #[cfg(feature = "deprecated-fields")]
15964    #[serde(rename = "maxTotalMemoryGb", skip_serializing_if = "Option::is_none")]
15965    pub max_total_memory_gb: Option<f64>,
15966    #[serde(rename = "minReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
15967    pub min_replica_memory_gb: Option<f64>,
15968    #[serde(rename = "minReplicas", skip_serializing_if = "Option::is_none")]
15969    pub min_replicas: Option<f64>,
15970    #[cfg(feature = "deprecated-fields")]
15971    #[serde(rename = "minTotalMemoryGb", skip_serializing_if = "Option::is_none")]
15972    pub min_total_memory_gb: Option<f64>,
15973    pub name: String,
15974    #[serde(rename = "numReplicas", skip_serializing_if = "Option::is_none")]
15975    pub num_replicas: Option<f64>,
15976    #[cfg(feature = "deprecated-fields")]
15977    #[serde(rename = "privateEndpointIds", skip_serializing_if = "Option::is_none")]
15978    pub private_endpoint_ids: Option<Vec<String>>,
15979    #[serde(
15980        rename = "privatePreviewTermsChecked",
15981        skip_serializing_if = "Option::is_none"
15982    )]
15983    pub private_preview_terms_checked: Option<bool>,
15984    #[serde(skip_serializing_if = "Option::is_none")]
15985    pub profile: Option<ServicePostRequestProfile>,
15986    pub provider: ServicePostRequestProvider,
15987    pub region: ServicePostRequestRegion,
15988    #[serde(rename = "releaseChannel", skip_serializing_if = "Option::is_none")]
15989    pub release_channel: Option<ServicePostRequestReleasechannel>,
15990    #[serde(skip_serializing_if = "Option::is_none")]
15991    pub tags: Option<Vec<ResourceTagsV1>>,
15992    #[cfg(feature = "deprecated-fields")]
15993    #[serde(skip_serializing_if = "Option::is_none")]
15994    pub tier: Option<ServicePostRequestTier>,
15995}
15996
15997/// `ServicePostResponse` from the ClickHouse Cloud API.
15998#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
15999pub struct ServicePostResponse {
16000    #[serde(skip_serializing_if = "Option::is_none")]
16001    pub password: Option<String>,
16002    #[serde(skip_serializing_if = "Option::is_none")]
16003    pub service: Option<Service>,
16004}
16005
16006/// `ServiceQueryAPIEndpoint` from the ClickHouse Cloud API.
16007#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16008pub struct ServiceQueryAPIEndpoint {
16009    #[serde(rename = "allowedOrigins", skip_serializing_if = "Option::is_none")]
16010    pub allowed_origins: Option<String>,
16011    #[serde(skip_serializing_if = "Option::is_none")]
16012    pub id: Option<String>,
16013    #[serde(rename = "openApiKeys", skip_serializing_if = "Option::is_none")]
16014    pub open_api_keys: Option<Vec<String>>,
16015    #[serde(skip_serializing_if = "Option::is_none")]
16016    pub roles: Option<Vec<String>>,
16017}
16018
16019/// `ServiceReplicaScalingPatchRequest` from the ClickHouse Cloud API.
16020#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16021pub struct ServiceReplicaScalingPatchRequest {
16022    #[serde(rename = "autoscalingMode", skip_serializing_if = "Option::is_none")]
16023    pub autoscaling_mode: Option<AutoscalingMode>,
16024    #[serde(rename = "idleScaling", skip_serializing_if = "Option::is_none")]
16025    pub idle_scaling: Option<bool>,
16026    #[serde(rename = "idleTimeoutMinutes", skip_serializing_if = "Option::is_none")]
16027    pub idle_timeout_minutes: Option<f64>,
16028    #[serde(rename = "maxReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
16029    pub max_replica_memory_gb: Option<f64>,
16030    #[serde(rename = "maxReplicas", skip_serializing_if = "Option::is_none")]
16031    pub max_replicas: Option<f64>,
16032    #[serde(rename = "minReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
16033    pub min_replica_memory_gb: Option<f64>,
16034    #[serde(rename = "minReplicas", skip_serializing_if = "Option::is_none")]
16035    pub min_replicas: Option<f64>,
16036    #[serde(rename = "numReplicas", skip_serializing_if = "Option::is_none")]
16037    pub num_replicas: Option<f64>,
16038}
16039
16040/// `ServiceScalingPatchRequest` from the ClickHouse Cloud API.
16041#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16042pub struct ServiceScalingPatchRequest {
16043    #[serde(rename = "idleScaling", skip_serializing_if = "Option::is_none")]
16044    pub idle_scaling: Option<bool>,
16045    #[serde(rename = "idleTimeoutMinutes", skip_serializing_if = "Option::is_none")]
16046    pub idle_timeout_minutes: Option<f64>,
16047    #[cfg(feature = "deprecated-fields")]
16048    #[serde(rename = "maxTotalMemoryGb", skip_serializing_if = "Option::is_none")]
16049    pub max_total_memory_gb: Option<f64>,
16050    #[cfg(feature = "deprecated-fields")]
16051    #[serde(rename = "minTotalMemoryGb", skip_serializing_if = "Option::is_none")]
16052    pub min_total_memory_gb: Option<f64>,
16053    #[serde(rename = "numReplicas", skip_serializing_if = "Option::is_none")]
16054    pub num_replicas: Option<f64>,
16055}
16056
16057/// `ServiceScalingPatchResponse` from the ClickHouse Cloud API.
16058#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16059pub struct ServiceScalingPatchResponse {
16060    #[serde(
16061        rename = "availablePrivateEndpointIds",
16062        skip_serializing_if = "Option::is_none"
16063    )]
16064    pub available_private_endpoint_ids: Option<Vec<String>>,
16065    #[serde(rename = "autoscalingMode", skip_serializing_if = "Option::is_none")]
16066    pub autoscaling_mode: Option<AutoscalingMode>,
16067    #[serde(rename = "byocId", skip_serializing_if = "Option::is_none")]
16068    pub byoc_id: Option<String>,
16069    #[serde(rename = "clickhouseVersion", skip_serializing_if = "Option::is_none")]
16070    pub clickhouse_version: Option<String>,
16071    #[serde(rename = "complianceType", skip_serializing_if = "Option::is_none")]
16072    pub compliance_type: Option<ServiceScalingPatchResponseCompliancetype>,
16073    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
16074    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
16075    #[serde(rename = "currentScaling", skip_serializing_if = "Option::is_none")]
16076    pub current_scaling: Option<CurrentScaling>,
16077    #[serde(rename = "dataWarehouseId", skip_serializing_if = "Option::is_none")]
16078    pub data_warehouse_id: Option<String>,
16079    #[serde(rename = "enableCoreDumps", skip_serializing_if = "Option::is_none")]
16080    pub enable_core_dumps: Option<bool>,
16081    #[serde(
16082        rename = "encryptionAssumedRoleIdentifier",
16083        skip_serializing_if = "Option::is_none"
16084    )]
16085    pub encryption_assumed_role_identifier: Option<String>,
16086    #[serde(rename = "encryptionKey", skip_serializing_if = "Option::is_none")]
16087    pub encryption_key: Option<String>,
16088    #[serde(rename = "encryptionRoleId", skip_serializing_if = "Option::is_none")]
16089    pub encryption_role_id: Option<String>,
16090    #[serde(skip_serializing_if = "Option::is_none")]
16091    pub endpoints: Option<Vec<ServiceEndpoint>>,
16092    #[serde(
16093        rename = "hasTransparentDataEncryption",
16094        skip_serializing_if = "Option::is_none"
16095    )]
16096    pub has_transparent_data_encryption: Option<bool>,
16097    #[serde(rename = "iamRole", skip_serializing_if = "Option::is_none")]
16098    pub iam_role: Option<String>,
16099    #[serde(skip_serializing_if = "Option::is_none")]
16100    pub id: Option<uuid::Uuid>,
16101    #[serde(rename = "idleScaling", skip_serializing_if = "Option::is_none")]
16102    pub idle_scaling: Option<bool>,
16103    #[serde(rename = "idleTimeoutMinutes", skip_serializing_if = "Option::is_none")]
16104    pub idle_timeout_minutes: Option<f64>,
16105    #[serde(rename = "ipAccessList", skip_serializing_if = "Option::is_none")]
16106    pub ip_access_list: Option<Vec<IpAccessListEntryResponse>>,
16107    #[serde(rename = "isPrimary", skip_serializing_if = "Option::is_none")]
16108    pub is_primary: Option<bool>,
16109    #[serde(rename = "isReadonly", skip_serializing_if = "Option::is_none")]
16110    pub is_readonly: Option<bool>,
16111    #[serde(rename = "maxReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
16112    pub max_replica_memory_gb: Option<f64>,
16113    #[serde(rename = "maxReplicas", skip_serializing_if = "Option::is_none")]
16114    pub max_replicas: Option<f64>,
16115    #[cfg(feature = "deprecated-fields")]
16116    #[serde(rename = "maxTotalMemoryGb", skip_serializing_if = "Option::is_none")]
16117    pub max_total_memory_gb: Option<f64>,
16118    #[serde(rename = "minReplicaMemoryGb", skip_serializing_if = "Option::is_none")]
16119    pub min_replica_memory_gb: Option<f64>,
16120    #[serde(rename = "minReplicas", skip_serializing_if = "Option::is_none")]
16121    pub min_replicas: Option<f64>,
16122    #[cfg(feature = "deprecated-fields")]
16123    #[serde(rename = "minTotalMemoryGb", skip_serializing_if = "Option::is_none")]
16124    pub min_total_memory_gb: Option<f64>,
16125    #[serde(skip_serializing_if = "Option::is_none")]
16126    pub name: Option<String>,
16127    #[serde(rename = "numReplicas", skip_serializing_if = "Option::is_none")]
16128    pub num_replicas: Option<f64>,
16129    #[serde(rename = "privateEndpointIds", skip_serializing_if = "Option::is_none")]
16130    pub private_endpoint_ids: Option<Vec<String>>,
16131    #[serde(skip_serializing_if = "Option::is_none")]
16132    pub profile: Option<ServiceScalingPatchResponseProfile>,
16133    #[serde(skip_serializing_if = "Option::is_none")]
16134    pub provider: Option<ServiceScalingPatchResponseProvider>,
16135    #[serde(skip_serializing_if = "Option::is_none")]
16136    pub region: Option<ServiceScalingPatchResponseRegion>,
16137    #[serde(rename = "releaseChannel", skip_serializing_if = "Option::is_none")]
16138    pub release_channel: Option<ServiceScalingPatchResponseReleasechannel>,
16139    #[serde(rename = "replicaMemoryGb", skip_serializing_if = "Option::is_none")]
16140    pub replica_memory_gb: Option<f64>,
16141    #[serde(rename = "scalingSchedule", skip_serializing_if = "Option::is_none")]
16142    pub scaling_schedule: Option<ScalingSchedule>,
16143    #[serde(skip_serializing_if = "Option::is_none")]
16144    pub state: Option<ServiceScalingPatchResponseState>,
16145    #[serde(skip_serializing_if = "Option::is_none")]
16146    pub tags: Option<Vec<ResourceTagsV1Response>>,
16147    #[cfg(feature = "deprecated-fields")]
16148    #[serde(skip_serializing_if = "Option::is_none")]
16149    pub tier: Option<ServiceScalingPatchResponseTier>,
16150    #[serde(
16151        rename = "transparentDataEncryptionKeyId",
16152        skip_serializing_if = "Option::is_none"
16153    )]
16154    pub transparent_data_encryption_key_id: Option<String>,
16155}
16156
16157/// `ServiceStatePatchRequest` from the ClickHouse Cloud API.
16158#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16159pub struct ServiceStatePatchRequest {
16160    #[serde(skip_serializing_if = "Option::is_none")]
16161    pub command: Option<ServiceStatePatchRequestCommand>,
16162}
16163
16164/// `UpgradeWindow` from the ClickHouse Cloud API.
16165#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16166pub struct UpgradeWindow {
16167    #[serde(skip_serializing_if = "Option::is_none")]
16168    pub duration: Option<i64>,
16169    #[serde(rename = "startHourUtc", skip_serializing_if = "Option::is_none")]
16170    pub start_hour_utc: Option<i64>,
16171    #[serde(skip_serializing_if = "Option::is_none")]
16172    pub weekday: Option<i64>,
16173}
16174
16175/// `UpgradeWindowPutRequest` from the ClickHouse Cloud API.
16176#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16177pub struct UpgradeWindowPutRequest {
16178    #[serde(rename = "startHourUtc")]
16179    pub start_hour_utc: i64,
16180    pub weekday: i64,
16181}
16182
16183/// `UpdateReversePrivateEndpoint` from the ClickHouse Cloud API.
16184#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16185pub struct UpdateReversePrivateEndpoint {
16186    #[serde(
16187        rename = "customPrivateDnsMappings",
16188        skip_serializing_if = "Option::is_none"
16189    )]
16190    pub custom_private_dns_mappings: Option<Vec<CustomPrivateDnsMapping>>,
16191}
16192
16193/// `UsageCost` from the ClickHouse Cloud API.
16194#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16195pub struct UsageCost {
16196    #[serde(skip_serializing_if = "Option::is_none")]
16197    pub costs: Option<Vec<UsageCostRecord>>,
16198    #[serde(rename = "grandTotalCHC", skip_serializing_if = "Option::is_none")]
16199    pub grand_total_chc: Option<f64>,
16200}
16201
16202/// `UsageCostMetrics` from the ClickHouse Cloud API.
16203#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16204pub struct UsageCostMetrics {
16205    #[serde(rename = "backupCHC", skip_serializing_if = "Option::is_none")]
16206    pub backup_chc: Option<f64>,
16207    #[serde(rename = "computeCHC", skip_serializing_if = "Option::is_none")]
16208    pub compute_chc: Option<f64>,
16209    #[serde(rename = "dataTransferCHC", skip_serializing_if = "Option::is_none")]
16210    pub data_transfer_chc: Option<f64>,
16211    #[serde(rename = "initialLoadCHC", skip_serializing_if = "Option::is_none")]
16212    pub initial_load_chc: Option<f64>,
16213    #[serde(
16214        rename = "interRegionTier1DataTransferCHC",
16215        skip_serializing_if = "Option::is_none"
16216    )]
16217    pub inter_region_tier1_data_transfer_chc: Option<f64>,
16218    #[serde(
16219        rename = "interRegionTier2DataTransferCHC",
16220        skip_serializing_if = "Option::is_none"
16221    )]
16222    pub inter_region_tier2_data_transfer_chc: Option<f64>,
16223    #[serde(
16224        rename = "interRegionTier3DataTransferCHC",
16225        skip_serializing_if = "Option::is_none"
16226    )]
16227    pub inter_region_tier3_data_transfer_chc: Option<f64>,
16228    #[serde(
16229        rename = "interRegionTier4DataTransferCHC",
16230        skip_serializing_if = "Option::is_none"
16231    )]
16232    pub inter_region_tier4_data_transfer_chc: Option<f64>,
16233    #[serde(
16234        rename = "publicDataTransferCHC",
16235        skip_serializing_if = "Option::is_none"
16236    )]
16237    pub public_data_transfer_chc: Option<f64>,
16238    #[serde(rename = "storageCHC", skip_serializing_if = "Option::is_none")]
16239    pub storage_chc: Option<f64>,
16240}
16241
16242/// `UsageCostRecord` from the ClickHouse Cloud API.
16243#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16244pub struct UsageCostRecord {
16245    #[serde(rename = "dataWarehouseId", skip_serializing_if = "Option::is_none")]
16246    pub data_warehouse_id: Option<uuid::Uuid>,
16247    #[serde(skip_serializing_if = "Option::is_none")]
16248    pub date: Option<String>,
16249    #[serde(rename = "entityId", skip_serializing_if = "Option::is_none")]
16250    pub entity_id: Option<uuid::Uuid>,
16251    #[serde(rename = "entityName", skip_serializing_if = "Option::is_none")]
16252    pub entity_name: Option<String>,
16253    #[serde(rename = "entityType", skip_serializing_if = "Option::is_none")]
16254    pub entity_type: Option<UsageCostRecordEntitytype>,
16255    #[serde(skip_serializing_if = "Option::is_none")]
16256    pub locked: Option<bool>,
16257    #[serde(skip_serializing_if = "Option::is_none")]
16258    pub metrics: Option<UsageCostMetrics>,
16259    #[serde(rename = "serviceId", skip_serializing_if = "Option::is_none")]
16260    pub service_id: Option<uuid::Uuid>,
16261    #[serde(rename = "totalCHC", skip_serializing_if = "Option::is_none")]
16262    pub total_chc: Option<f64>,
16263}
16264
16265/// `pgBouncerConfig` from the ClickHouse Cloud API.
16266#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16267pub struct PgBouncerConfig {}
16268
16269/// `pgBouncerConfig` from the ClickHouse Cloud API, in response position.
16270///
16271/// Response variant of [`PgBouncerConfig`]: every field is `Option<T>`, so a
16272/// field the API drops or sends as `null` deserializes to `None` instead of
16273/// failing. The schema currently declares no properties.
16274#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16275pub struct PgBouncerConfigResponse {}
16276
16277/// `pgConfig` from the ClickHouse Cloud API.
16278#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16279pub struct PgConfig {
16280    #[serde(skip_serializing_if = "Option::is_none")]
16281    pub autovacuum_analyze_scale_factor: Option<serde_json::Value>,
16282    #[serde(skip_serializing_if = "Option::is_none")]
16283    pub autovacuum_max_workers: Option<serde_json::Value>,
16284    #[serde(skip_serializing_if = "Option::is_none")]
16285    pub autovacuum_naptime: Option<serde_json::Value>,
16286    #[serde(skip_serializing_if = "Option::is_none")]
16287    pub autovacuum_vacuum_cost_delay: Option<serde_json::Value>,
16288    #[serde(skip_serializing_if = "Option::is_none")]
16289    pub autovacuum_vacuum_cost_limit: Option<serde_json::Value>,
16290    #[serde(skip_serializing_if = "Option::is_none")]
16291    pub autovacuum_vacuum_insert_scale_factor: Option<serde_json::Value>,
16292    #[serde(skip_serializing_if = "Option::is_none")]
16293    pub autovacuum_vacuum_scale_factor: Option<serde_json::Value>,
16294    #[serde(skip_serializing_if = "Option::is_none")]
16295    pub autovacuum_work_mem: Option<serde_json::Value>,
16296    #[serde(skip_serializing_if = "Option::is_none")]
16297    pub default_transaction_isolation: Option<PgConfigDefaultTransactionIsolation>,
16298    #[serde(skip_serializing_if = "Option::is_none")]
16299    pub effective_cache_size: Option<serde_json::Value>,
16300    #[serde(skip_serializing_if = "Option::is_none")]
16301    pub effective_io_concurrency: Option<serde_json::Value>,
16302    #[serde(skip_serializing_if = "Option::is_none")]
16303    pub idle_in_transaction_session_timeout: Option<serde_json::Value>,
16304    #[serde(skip_serializing_if = "Option::is_none")]
16305    pub idle_session_timeout: Option<serde_json::Value>,
16306    #[serde(skip_serializing_if = "Option::is_none")]
16307    pub lock_timeout: Option<serde_json::Value>,
16308    #[serde(skip_serializing_if = "Option::is_none")]
16309    pub maintenance_work_mem: Option<serde_json::Value>,
16310    #[serde(skip_serializing_if = "Option::is_none")]
16311    pub max_connections: Option<serde_json::Value>,
16312    #[serde(skip_serializing_if = "Option::is_none")]
16313    pub max_parallel_maintenance_workers: Option<serde_json::Value>,
16314    #[serde(skip_serializing_if = "Option::is_none")]
16315    pub max_parallel_workers: Option<serde_json::Value>,
16316    #[serde(skip_serializing_if = "Option::is_none")]
16317    pub max_parallel_workers_per_gather: Option<serde_json::Value>,
16318    #[serde(skip_serializing_if = "Option::is_none")]
16319    pub max_slot_wal_keep_size: Option<serde_json::Value>,
16320    #[serde(skip_serializing_if = "Option::is_none")]
16321    pub max_wal_size: Option<serde_json::Value>,
16322    #[serde(skip_serializing_if = "Option::is_none")]
16323    pub max_worker_processes: Option<serde_json::Value>,
16324    #[serde(skip_serializing_if = "Option::is_none")]
16325    pub min_wal_size: Option<serde_json::Value>,
16326    #[serde(skip_serializing_if = "Option::is_none")]
16327    pub random_page_cost: Option<serde_json::Value>,
16328    #[serde(skip_serializing_if = "Option::is_none")]
16329    pub ssl_min_protocol_version: Option<PgConfigSslMinProtocolVersion>,
16330    #[serde(skip_serializing_if = "Option::is_none")]
16331    pub statement_timeout: Option<serde_json::Value>,
16332    #[serde(skip_serializing_if = "Option::is_none")]
16333    pub transaction_timeout: Option<serde_json::Value>,
16334    #[serde(skip_serializing_if = "Option::is_none")]
16335    pub wal_compression: Option<PgConfigWalCompression>,
16336    #[serde(skip_serializing_if = "Option::is_none")]
16337    pub wal_keep_size: Option<serde_json::Value>,
16338    #[serde(skip_serializing_if = "Option::is_none")]
16339    pub wal_sender_timeout: Option<serde_json::Value>,
16340    #[serde(skip_serializing_if = "Option::is_none")]
16341    pub work_mem: Option<serde_json::Value>,
16342}
16343
16344/// `pgConfig` from the ClickHouse Cloud API, in response position.
16345///
16346/// Response variant of [`PgConfig`]: every field is `Option<T>`, so a field the
16347/// API drops or sends as `null` deserializes to `None` instead of failing.
16348#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16349pub struct PgConfigResponse {
16350    #[serde(skip_serializing_if = "Option::is_none")]
16351    pub autovacuum_analyze_scale_factor: Option<serde_json::Value>,
16352    #[serde(skip_serializing_if = "Option::is_none")]
16353    pub autovacuum_max_workers: Option<serde_json::Value>,
16354    #[serde(skip_serializing_if = "Option::is_none")]
16355    pub autovacuum_naptime: Option<serde_json::Value>,
16356    #[serde(skip_serializing_if = "Option::is_none")]
16357    pub autovacuum_vacuum_cost_delay: Option<serde_json::Value>,
16358    #[serde(skip_serializing_if = "Option::is_none")]
16359    pub autovacuum_vacuum_cost_limit: Option<serde_json::Value>,
16360    #[serde(skip_serializing_if = "Option::is_none")]
16361    pub autovacuum_vacuum_insert_scale_factor: Option<serde_json::Value>,
16362    #[serde(skip_serializing_if = "Option::is_none")]
16363    pub autovacuum_vacuum_scale_factor: Option<serde_json::Value>,
16364    #[serde(skip_serializing_if = "Option::is_none")]
16365    pub autovacuum_work_mem: Option<serde_json::Value>,
16366    #[serde(skip_serializing_if = "Option::is_none")]
16367    pub default_transaction_isolation: Option<PgConfigDefaultTransactionIsolation>,
16368    #[serde(skip_serializing_if = "Option::is_none")]
16369    pub effective_cache_size: Option<serde_json::Value>,
16370    #[serde(skip_serializing_if = "Option::is_none")]
16371    pub effective_io_concurrency: Option<serde_json::Value>,
16372    #[serde(skip_serializing_if = "Option::is_none")]
16373    pub idle_in_transaction_session_timeout: Option<serde_json::Value>,
16374    #[serde(skip_serializing_if = "Option::is_none")]
16375    pub idle_session_timeout: Option<serde_json::Value>,
16376    #[serde(skip_serializing_if = "Option::is_none")]
16377    pub lock_timeout: Option<serde_json::Value>,
16378    #[serde(skip_serializing_if = "Option::is_none")]
16379    pub maintenance_work_mem: Option<serde_json::Value>,
16380    #[serde(skip_serializing_if = "Option::is_none")]
16381    pub max_connections: Option<serde_json::Value>,
16382    #[serde(skip_serializing_if = "Option::is_none")]
16383    pub max_parallel_maintenance_workers: Option<serde_json::Value>,
16384    #[serde(skip_serializing_if = "Option::is_none")]
16385    pub max_parallel_workers: Option<serde_json::Value>,
16386    #[serde(skip_serializing_if = "Option::is_none")]
16387    pub max_parallel_workers_per_gather: Option<serde_json::Value>,
16388    #[serde(skip_serializing_if = "Option::is_none")]
16389    pub max_slot_wal_keep_size: Option<serde_json::Value>,
16390    #[serde(skip_serializing_if = "Option::is_none")]
16391    pub max_wal_size: Option<serde_json::Value>,
16392    #[serde(skip_serializing_if = "Option::is_none")]
16393    pub max_worker_processes: Option<serde_json::Value>,
16394    #[serde(skip_serializing_if = "Option::is_none")]
16395    pub min_wal_size: Option<serde_json::Value>,
16396    #[serde(skip_serializing_if = "Option::is_none")]
16397    pub random_page_cost: Option<serde_json::Value>,
16398    #[serde(skip_serializing_if = "Option::is_none")]
16399    pub ssl_min_protocol_version: Option<PgConfigSslMinProtocolVersion>,
16400    #[serde(skip_serializing_if = "Option::is_none")]
16401    pub statement_timeout: Option<serde_json::Value>,
16402    #[serde(skip_serializing_if = "Option::is_none")]
16403    pub transaction_timeout: Option<serde_json::Value>,
16404    #[serde(skip_serializing_if = "Option::is_none")]
16405    pub wal_compression: Option<PgConfigWalCompression>,
16406    #[serde(skip_serializing_if = "Option::is_none")]
16407    pub wal_keep_size: Option<serde_json::Value>,
16408    #[serde(skip_serializing_if = "Option::is_none")]
16409    pub wal_sender_timeout: Option<serde_json::Value>,
16410    #[serde(skip_serializing_if = "Option::is_none")]
16411    pub work_mem: Option<serde_json::Value>,
16412}
16413
16414/// `postgresInstanceConfig` from the ClickHouse Cloud API.
16415#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16416pub struct PostgresInstanceConfig {
16417    #[serde(rename = "pgBouncerConfig")]
16418    pub pg_bouncer_config: PgBouncerConfig,
16419    #[serde(rename = "pgConfig")]
16420    pub pg_config: PgConfig,
16421}
16422
16423/// `postgresInstanceConfig` from the ClickHouse Cloud API, in response
16424/// position.
16425///
16426/// Response variant of [`PostgresInstanceConfig`]: every field is `Option<T>`,
16427/// so a field the API drops or sends as `null` deserializes to `None` instead
16428/// of failing. Writing a fetched configuration back to the API goes through
16429/// `TryFrom<PostgresInstanceConfigResponse>` (see [`crate::convert`]), which
16430/// forces every absent required field to be resolved explicitly.
16431#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16432pub struct PostgresInstanceConfigResponse {
16433    #[serde(rename = "pgBouncerConfig", skip_serializing_if = "Option::is_none")]
16434    pub pg_bouncer_config: Option<PgBouncerConfigResponse>,
16435    #[serde(rename = "pgConfig", skip_serializing_if = "Option::is_none")]
16436    pub pg_config: Option<PgConfigResponse>,
16437}
16438
16439/// `postgresInstanceUpdateConfigResponse` from the ClickHouse Cloud API.
16440#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16441pub struct PostgresInstanceUpdateConfigResponse {
16442    #[serde(skip_serializing_if = "Option::is_none")]
16443    pub message: Option<String>,
16444    #[serde(rename = "pgBouncerConfig", skip_serializing_if = "Option::is_none")]
16445    pub pg_bouncer_config: Option<PgBouncerConfigResponse>,
16446    #[serde(rename = "pgConfig", skip_serializing_if = "Option::is_none")]
16447    pub pg_config: Option<PgConfigResponse>,
16448}
16449
16450/// Standard API response wrapper.
16451#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
16452pub struct ApiResponse<T> {
16453    #[serde(skip_serializing_if = "Option::is_none")]
16454    pub status: Option<f64>,
16455    #[serde(skip_serializing_if = "Option::is_none", rename = "requestId")]
16456    pub request_id: Option<String>,
16457    #[serde(skip_serializing_if = "Option::is_none")]
16458    pub result: Option<T>,
16459    #[serde(skip_serializing_if = "Option::is_none")]
16460    pub error: Option<String>,
16461}
16462
16463impl Default for BackupBucket {
16464    fn default() -> Self {
16465        // Every field of a response variant is `Option<T>`, so the derived
16466        // `AwsBackupBucket::default()` leaves `bucketProvider` absent and
16467        // serializes to `{}` — which deserializes back through the
16468        // discriminator dispatch as `Unknown`, not as this variant. Naming the
16469        // variant's own wire value keeps the default round-tripping.
16470        Self::AwsBackupBucket(AwsBackupBucket {
16471            bucket_provider: Some(AwsBackupBucketBucketprovider::default()),
16472            ..AwsBackupBucket::default()
16473        })
16474    }
16475}
16476
16477impl Default for BackupBucketPatchRequest {
16478    fn default() -> Self {
16479        Self::AwsBackupBucketPatchRequestV1(AwsBackupBucketPatchRequestV1::default())
16480    }
16481}
16482
16483impl Default for BackupBucketPostRequest {
16484    fn default() -> Self {
16485        Self::AwsBackupBucketPostRequestV1(AwsBackupBucketPostRequestV1::default())
16486    }
16487}
16488
16489impl Default for BackupBucketProperties {
16490    fn default() -> Self {
16491        Self::AwsBackupBucketProperties(AwsBackupBucketProperties::default())
16492    }
16493}
16494
16495impl Default for ClickStackAlertChannel {
16496    fn default() -> Self {
16497        Self::ClickStackAlertChannelEmail(ClickStackAlertChannelEmail::default())
16498    }
16499}
16500
16501impl Default for ClickStackBarChartConfig {
16502    fn default() -> Self {
16503        Self::ClickStackBarBuilderChartConfig(ClickStackBarBuilderChartConfig::default())
16504    }
16505}
16506
16507impl Default for ClickStackDashboardChartSeries {
16508    fn default() -> Self {
16509        Self::ClickStackTimeChartSeries(ClickStackTimeChartSeries::default())
16510    }
16511}
16512
16513impl Default for ClickStackLineChartConfig {
16514    fn default() -> Self {
16515        Self::ClickStackLineBuilderChartConfig(ClickStackLineBuilderChartConfig::default())
16516    }
16517}
16518
16519impl Default for ClickStackNumberChartConfig {
16520    fn default() -> Self {
16521        Self::ClickStackNumberBuilderChartConfig(ClickStackNumberBuilderChartConfig::default())
16522    }
16523}
16524
16525impl Default for ClickStackPieChartConfig {
16526    fn default() -> Self {
16527        Self::ClickStackPieBuilderChartConfig(ClickStackPieBuilderChartConfig::default())
16528    }
16529}
16530
16531impl Default for ClickStackSource {
16532    fn default() -> Self {
16533        Self::ClickStackLogSource(ClickStackLogSource::default())
16534    }
16535}
16536
16537impl Default for ClickStackTableChartConfig {
16538    fn default() -> Self {
16539        Self::ClickStackTableBuilderChartConfig(ClickStackTableBuilderChartConfig::default())
16540    }
16541}
16542
16543impl Default for ClickStackTileConfig {
16544    fn default() -> Self {
16545        Self::ClickStackLineChartConfig(ClickStackLineChartConfig::default())
16546    }
16547}
16548
16549impl Default for ClickStackWebhook {
16550    fn default() -> Self {
16551        // Every field of this response-only union's variants is `Option<T>`,
16552        // so the derived `ClickStackSlackWebhook::default()` leaves `service`
16553        // absent and serializes to `{}` — which deserializes back through the
16554        // discriminator dispatch as `Unknown`, not as this variant. Naming the
16555        // variant's own wire value keeps the default round-tripping.
16556        Self::ClickStackSlackWebhook(ClickStackSlackWebhook {
16557            service: Some(ClickStackSlackWebhookService::default()),
16558            ..ClickStackSlackWebhook::default()
16559        })
16560    }
16561}