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/main/content/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}