feldera_types/
query_params.rs

1//! Types for the query parameters of the pipeline endpoints.
2
3use serde::Deserialize;
4use utoipa::{IntoParams, ToSchema};
5
6/// Circuit metrics output format.
7/// - `prometheus`: [format](https://github.com/prometheus/docs/blob/4b1b80f5f660a2f8dc25a54f52a65a502f31879a/docs/instrumenting/exposition_formats.md) expected by Prometheus
8/// - `json`: JSON format
9#[derive(Debug, Deserialize, ToSchema)]
10#[serde(rename_all = "snake_case")]
11pub enum MetricsFormat {
12    Prometheus,
13    Json,
14}
15
16/// Returns default metrics format.
17fn default_metrics_format() -> MetricsFormat {
18    MetricsFormat::Prometheus
19}
20
21/// Query parameters to retrieve pipeline circuit metrics.
22#[derive(Debug, Deserialize, IntoParams, ToSchema)]
23pub struct MetricsParameters {
24    #[serde(default = "default_metrics_format")]
25    pub format: MetricsFormat,
26}
27
28/// Default for the `initial` query parameter when POST a pipeline activate.
29fn default_pipeline_activate_initial() -> String {
30    "running".to_string()
31}
32
33#[derive(Debug, Deserialize, IntoParams, ToSchema)]
34pub struct ActivateParams {
35    #[serde(default = "default_pipeline_activate_initial")]
36    pub initial: String,
37}