feldera_types/transport/http.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
use serde::{Deserialize, Serialize};
use serde_json::Value as JsonValue;
use utoipa::ToSchema;
/// Configuration for reading data via HTTP.
///
/// HTTP input adapters cannot be usefully configured as part of pipeline
/// configuration. Instead, instantiate them through the REST API as
/// `/pipelines/{pipeline_name}/ingress/{table_name}`.
#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize, ToSchema)]
pub struct HttpInputConfig {
/// Autogenerated name.
pub name: String,
/// If `true`, pushes data to the pipeline even if the pipeline is paused.
pub force: bool,
}
/// A set of updates to a SQL table or view.
///
/// The `sequence_number` field stores the offset of the chunk relative to the
/// start of the stream and can be used to implement reliable delivery.
/// The payload is stored in the `bin_data`, `text_data`, or `json_data` field
/// depending on the data format used.
#[derive(Deserialize, ToSchema)]
pub struct Chunk {
pub sequence_number: u64,
// Exactly one of the following fields must be set.
// This should be an enum inlined with `#[serde(flatten)]`, but `utoipa`
// struggles to generate a schema for that.
/// Base64 encoded binary payload, e.g., bincode.
pub bin_data: Option<Vec<u8>>,
/// Text payload, e.g., CSV.
pub text_data: Option<String>,
/// JSON payload.
#[schema(value_type = Option<Object>)]
pub json_data: Option<JsonValue>,
}
// This file indicates the port used by the server
pub const SERVER_PORT_FILE: &str = "port";