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}