stately_arrow/request.rs
1//! Request types for stately-arrow API endpoints.
2
3use std::collections::HashMap;
4
5use serde::{Deserialize, Serialize};
6
7/// Query parameters for searching connection contents.
8#[derive(Debug, Clone, Serialize, Deserialize, utoipa::IntoParams, utoipa::ToSchema)]
9pub struct ConnectionSearchQuery {
10 /// Optional search term to filter results.
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub search: Option<String>,
13}
14
15/// Type alias for search term strings.
16pub type ConnectionSearchTerm = String;
17
18/// Request to execute a SQL query.
19#[derive(Debug, Clone, Serialize, Deserialize, utoipa::ToSchema)]
20pub struct QueryRequest {
21 /// ID of the connector to use. If not provided, the query runs against
22 /// the session's default catalog (if supported).
23 pub connector_id: Option<String>,
24
25 /// SQL query to execute. Supports URL tables like `s3://bucket/path/*.parquet`.
26 pub sql: String,
27}
28
29/// Request for fetching details from multiple connectors.
30#[derive(Debug, Clone, Serialize, Deserialize, utoipa::ToSchema)]
31pub struct ConnectionDetailsRequest {
32 /// Map of connector IDs to their search parameters.
33 pub connectors: HashMap<String, ConnectionSearchQuery>,
34
35 /// If true, a failure in any connector fails the entire request.
36 /// If false (default), failures are skipped and successful results returned.
37 #[serde(default)]
38 #[schema(default)]
39 pub fail_on_error: bool,
40}