pub struct RestStreamConfig {Show 25 fields
pub base_url: String,
pub path: String,
pub method: Method,
pub auth: AuthSpec<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 state_key: Option<String>,
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 partition_concurrency: Option<usize>,
}source-rest only.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: AuthSpec<Auth>Authentication: either inline ({ type, config }) or a { ref: <name> }
pointer to a shared provider in the CLI’s top-level auth: catalog.
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.
state_key: Option<String>Opt-in identifier used by Pipeline::with_state_store
to persist this stream’s bookmark across runs. When set, the pipeline
will load any previously-stored bookmark before fetching and write the
new bookmark only after the sink confirms the batch.
Keys must satisfy faucet_core::state::validate_state_key.
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.
partition_concurrency: Option<usize>Maximum number of partitions to fetch concurrently.
None means sequential processing (backward compatible default).
Implementations§
Source§impl RestStreamConfig
impl RestStreamConfig
pub fn new(base_url: &str, path: &str) -> RestStreamConfig
pub fn method(self, m: Method) -> RestStreamConfig
pub fn auth(self, a: Auth) -> RestStreamConfig
pub fn header(self, k: &str, v: &str) -> RestStreamConfig
pub fn query(self, k: &str, v: &str) -> RestStreamConfig
pub fn body(self, b: Value) -> RestStreamConfig
pub fn pagination(self, p: PaginationStyle) -> RestStreamConfig
pub fn records_path(self, p: &str) -> RestStreamConfig
pub fn max_pages(self, n: usize) -> RestStreamConfig
pub fn request_delay(self, d: Duration) -> RestStreamConfig
pub fn timeout(self, d: Duration) -> RestStreamConfig
pub fn max_retries(self, n: u32) -> RestStreamConfig
pub fn retry_backoff(self, d: Duration) -> RestStreamConfig
Sourcepub fn tolerate_http_error(self, status: u16) -> RestStreamConfig
pub fn tolerate_http_error(self, status: u16) -> RestStreamConfig
HTTP status codes that should be silently ignored (treated as empty pages).
pub fn replication_method(self, m: ReplicationMethod) -> RestStreamConfig
Sourcepub fn replication_key(self, key: &str) -> RestStreamConfig
pub fn replication_key(self, key: &str) -> RestStreamConfig
Field name (not JSONPath) used as the incremental replication bookmark.
Sourcepub fn start_replication_value(self, v: Value) -> RestStreamConfig
pub fn start_replication_value(self, v: Value) -> RestStreamConfig
Bookmark start value: records at or before this value are filtered out
when using ReplicationMethod::Incremental.
Sourcepub fn state_key(self, key: &str) -> RestStreamConfig
pub fn state_key(self, key: &str) -> RestStreamConfig
Opt the stream into resumable runs by giving it a stable state key.
When this is set and the Pipeline is
configured with a state store, the previously persisted bookmark is
applied to the stream before fetching.
Sourcepub fn name(self, n: &str) -> RestStreamConfig
pub fn name(self, n: &str) -> RestStreamConfig
Human-readable stream name.
Sourcepub fn primary_keys(self, keys: Vec<String>) -> RestStreamConfig
pub fn primary_keys(self, keys: Vec<String>) -> RestStreamConfig
Field names that uniquely identify a record (Singer key_properties).
Sourcepub fn schema(self, s: Value) -> RestStreamConfig
pub fn schema(self, s: Value) -> RestStreamConfig
JSON Schema for the stream’s records.
Sourcepub fn schema_sample_size(self, n: usize) -> RestStreamConfig
pub fn schema_sample_size(self, n: usize) -> RestStreamConfig
Maximum records to sample for schema inference (0 = unlimited).
Sourcepub fn add_partition(self, ctx: HashMap<String, Value>) -> RestStreamConfig
pub fn add_partition(self, ctx: HashMap<String, Value>) -> RestStreamConfig
Add a partition context. The stream will execute once for each partition,
substituting {key} placeholders in path with values from the context.
Sourcepub fn partition_concurrency(
self,
concurrency: Option<usize>,
) -> RestStreamConfig
pub fn partition_concurrency( self, concurrency: Option<usize>, ) -> RestStreamConfig
Set the maximum number of partitions to fetch concurrently.
None (default) means sequential processing.
Trait Implementations§
Source§impl Clone for RestStreamConfig
impl Clone for RestStreamConfig
Source§fn clone(&self) -> RestStreamConfig
fn clone(&self) -> RestStreamConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RestStreamConfig
impl Debug for RestStreamConfig
Source§impl Default for RestStreamConfig
impl Default for RestStreamConfig
Source§fn default() -> RestStreamConfig
fn default() -> RestStreamConfig
Source§impl<'de> Deserialize<'de> for RestStreamConfig
impl<'de> Deserialize<'de> for RestStreamConfig
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<RestStreamConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<RestStreamConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for RestStreamConfig
impl JsonSchema for RestStreamConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl Serialize for RestStreamConfig
impl Serialize for RestStreamConfig
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for RestStreamConfig
impl !RefUnwindSafe for RestStreamConfig
impl Send for RestStreamConfig
impl Sync for RestStreamConfig
impl Unpin for RestStreamConfig
impl UnsafeUnpin for RestStreamConfig
impl !UnwindSafe for RestStreamConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.