pub struct RestStreamConfig {Show 24 fields
pub base_url: String,
pub path: String,
pub method: Method,
pub auth: Auth,
pub headers: HeaderMap,
pub query_params: HashMap<String, String>,
pub body: Option<Value>,
pub pagination: PaginationStyle,
pub records_path: Option<String>,
pub max_pages: Option<usize>,
pub request_delay: Option<Duration>,
pub timeout: Option<Duration>,
pub max_retries: u32,
pub retry_backoff: Duration,
pub tolerated_http_errors: Vec<u16>,
pub replication_method: ReplicationMethod,
pub replication_key: Option<String>,
pub start_replication_value: Option<Value>,
pub name: Option<String>,
pub primary_keys: Vec<String>,
pub schema: Option<Value>,
pub schema_sample_size: usize,
pub partitions: Vec<HashMap<String, Value>>,
pub transforms: Vec<RecordTransform>,
}Expand description
Configuration for a RestStream.
Fields§
§base_url: String§path: StringURL path, relative to base_url. May contain {key} placeholders that
are substituted per-partition (e.g. "/orgs/{org_id}/users").
method: Method§auth: Auth§headers: HeaderMap§query_params: HashMap<String, String>§body: Option<Value>§pagination: PaginationStyle§records_path: Option<String>§max_pages: Option<usize>§request_delay: Option<Duration>§timeout: Option<Duration>§max_retries: u32§retry_backoff: Duration§tolerated_http_errors: Vec<u16>HTTP status codes that should not cause an error. Responses with these codes are treated as empty pages (no records, no further pages).
replication_method: ReplicationMethod§replication_key: Option<String>Field name (not a JSONPath) used for incremental replication bookmarking.
start_replication_value: Option<Value>Bookmark value: records where record[replication_key] <= start_replication_value
are filtered out when replication_method is Incremental.
name: Option<String>Human-readable stream name (used in logging and Singer SCHEMA messages).
primary_keys: Vec<String>Field names that uniquely identify a record (Singer key_properties).
schema: Option<Value>JSON Schema describing the structure of each record.
schema_sample_size: usizeMaximum number of records to sample when inferring the schema via
crate::stream::RestStream::infer_schema. 0 means sample all
available records (up to max_pages). Defaults to 100.
partitions: Vec<HashMap<String, Value>>Each entry is a context map whose values are substituted into path
placeholders. The stream is executed once per partition and results are
concatenated. Empty means run once with no substitution.
transforms: Vec<RecordTransform>Transformations applied to every record in order.
See RecordTransform for available options.
Implementations§
Source§impl RestStreamConfig
impl RestStreamConfig
pub fn new(base_url: &str, path: &str) -> Self
pub fn method(self, m: Method) -> Self
pub fn auth(self, a: Auth) -> Self
pub fn header(self, k: &str, v: &str) -> Self
pub fn query(self, k: &str, v: &str) -> Self
pub fn body(self, b: Value) -> Self
pub fn pagination(self, p: PaginationStyle) -> Self
pub fn records_path(self, p: &str) -> Self
pub fn max_pages(self, n: usize) -> Self
pub fn request_delay(self, d: Duration) -> Self
pub fn timeout(self, d: Duration) -> Self
pub fn max_retries(self, n: u32) -> Self
pub fn retry_backoff(self, d: Duration) -> Self
Sourcepub fn tolerate_http_error(self, status: u16) -> Self
pub fn tolerate_http_error(self, status: u16) -> Self
HTTP status codes that should be silently ignored (treated as empty pages).
pub fn replication_method(self, m: ReplicationMethod) -> Self
Sourcepub fn replication_key(self, key: &str) -> Self
pub fn replication_key(self, key: &str) -> Self
Field name (not JSONPath) used as the incremental replication bookmark.
Sourcepub fn start_replication_value(self, v: Value) -> Self
pub fn start_replication_value(self, v: Value) -> Self
Bookmark start value: records at or before this value are filtered out
when using ReplicationMethod::Incremental.
Sourcepub fn primary_keys(self, keys: Vec<String>) -> Self
pub fn primary_keys(self, keys: Vec<String>) -> Self
Field names that uniquely identify a record (Singer key_properties).
Sourcepub fn schema_sample_size(self, n: usize) -> Self
pub fn schema_sample_size(self, n: usize) -> Self
Maximum records to sample for schema inference (0 = unlimited).
Sourcepub fn add_partition(self, ctx: HashMap<String, Value>) -> Self
pub fn add_partition(self, ctx: HashMap<String, Value>) -> Self
Add a partition context. The stream will execute once for each partition,
substituting {key} placeholders in path with values from the context.
Sourcepub fn add_transform(self, t: RecordTransform) -> Self
pub fn add_transform(self, t: RecordTransform) -> Self
Append a RecordTransform to the pipeline.
Transforms are applied in the order they are added.
Trait Implementations§
Source§impl Clone for RestStreamConfig
impl Clone for RestStreamConfig
Source§fn clone(&self) -> RestStreamConfig
fn clone(&self) -> RestStreamConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more