|
| 1 | +# Copyright (c) 2025 Airbyte, Inc., all rights reserved. |
| 2 | + |
1 | 3 | # generated by datamodel-codegen:
|
2 | 4 | # filename: declarative_component_schema.yaml
|
3 | 5 |
|
@@ -49,7 +51,7 @@ class DynamicStreamCheckConfig(BaseModel):
|
49 | 51 | )
|
50 | 52 | stream_count: Optional[int] = Field(
|
51 | 53 | 0,
|
52 |
| - description="Numbers of the streams to try reading from when running a check operation.", |
| 54 | + description="The number of streams to attempt reading from during a check operation. If `stream_count` exceeds the total number of available streams, the minimum of the two values will be used.", |
53 | 55 | title="Stream Count",
|
54 | 56 | )
|
55 | 57 |
|
@@ -718,6 +720,17 @@ class ExponentialBackoffStrategy(BaseModel):
|
718 | 720 | parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
719 | 721 |
|
720 | 722 |
|
| 723 | +class GroupByKeyMergeStrategy(BaseModel): |
| 724 | + type: Literal["GroupByKeyMergeStrategy"] |
| 725 | + key: Union[str, List[str]] = Field( |
| 726 | + ..., |
| 727 | + description="The name of the field on the record whose value will be used to group properties that were retrieved through multiple API requests.", |
| 728 | + examples=["id", ["parent_id", "end_date"]], |
| 729 | + title="Key", |
| 730 | + ) |
| 731 | + parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") |
| 732 | + |
| 733 | + |
721 | 734 | class SessionTokenRequestBearerAuthenticator(BaseModel):
|
722 | 735 | type: Literal["Bearer"]
|
723 | 736 |
|
@@ -1189,6 +1202,31 @@ class PrimaryKey(BaseModel):
|
1189 | 1202 | )
|
1190 | 1203 |
|
1191 | 1204 |
|
| 1205 | +class PropertyLimitType(Enum): |
| 1206 | + characters = "characters" |
| 1207 | + property_count = "property_count" |
| 1208 | + |
| 1209 | + |
| 1210 | +class PropertyChunking(BaseModel): |
| 1211 | + type: Literal["PropertyChunking"] |
| 1212 | + property_limit_type: PropertyLimitType = Field( |
| 1213 | + ..., |
| 1214 | + description="The type used to determine the maximum number of properties per chunk", |
| 1215 | + title="Property Limit Type", |
| 1216 | + ) |
| 1217 | + property_limit: Optional[int] = Field( |
| 1218 | + None, |
| 1219 | + description="The maximum amount of properties that can be retrieved per request according to the limit type.", |
| 1220 | + title="Property Limit", |
| 1221 | + ) |
| 1222 | + record_merge_strategy: Optional[GroupByKeyMergeStrategy] = Field( |
| 1223 | + None, |
| 1224 | + description="Dictates how to records that require multiple requests to get all properties should be emitted to the destination", |
| 1225 | + title="Record Merge Strategy", |
| 1226 | + ) |
| 1227 | + parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") |
| 1228 | + |
| 1229 | + |
1192 | 1230 | class RecordFilter(BaseModel):
|
1193 | 1231 | type: Literal["RecordFilter"]
|
1194 | 1232 | condition: Optional[str] = Field(
|
@@ -2187,7 +2225,7 @@ class HttpRequester(BaseModel):
|
2187 | 2225 | examples=[{"Output-Format": "JSON"}, {"Version": "{{ config['version'] }}"}],
|
2188 | 2226 | title="Request Headers",
|
2189 | 2227 | )
|
2190 |
| - request_parameters: Optional[Union[str, Dict[str, str]]] = Field( |
| 2228 | + request_parameters: Optional[Union[str, Dict[str, Union[str, Any]]]] = Field( |
2191 | 2229 | None,
|
2192 | 2230 | description="Specifies the query parameters that should be set on an outgoing HTTP request given the inputs.",
|
2193 | 2231 | examples=[
|
@@ -2277,6 +2315,40 @@ class ParentStreamConfig(BaseModel):
|
2277 | 2315 | parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2278 | 2316 |
|
2279 | 2317 |
|
| 2318 | +class PropertiesFromEndpoint(BaseModel): |
| 2319 | + type: Literal["PropertiesFromEndpoint"] |
| 2320 | + property_field_path: List[str] = Field( |
| 2321 | + ..., |
| 2322 | + description="Describes the path to the field that should be extracted", |
| 2323 | + examples=[["name"]], |
| 2324 | + ) |
| 2325 | + retriever: Union[CustomRetriever, SimpleRetriever] = Field( |
| 2326 | + ..., |
| 2327 | + description="Requester component that describes how to fetch the properties to query from a remote API endpoint.", |
| 2328 | + ) |
| 2329 | + parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") |
| 2330 | + |
| 2331 | + |
| 2332 | +class QueryProperties(BaseModel): |
| 2333 | + type: Literal["QueryProperties"] |
| 2334 | + property_list: Union[List[str], PropertiesFromEndpoint] = Field( |
| 2335 | + ..., |
| 2336 | + description="The set of properties that will be queried for in the outbound request. This can either be statically defined or dynamic based on an API endpoint", |
| 2337 | + title="Property List", |
| 2338 | + ) |
| 2339 | + always_include_properties: Optional[List[str]] = Field( |
| 2340 | + None, |
| 2341 | + description="The list of properties that should be included in every set of properties when multiple chunks of properties are being requested.", |
| 2342 | + title="Always Include Properties", |
| 2343 | + ) |
| 2344 | + property_chunking: Optional[PropertyChunking] = Field( |
| 2345 | + None, |
| 2346 | + description="Defines how query properties will be grouped into smaller sets for APIs with limitations on the number of properties fetched per API request.", |
| 2347 | + title="Property Chunking", |
| 2348 | + ) |
| 2349 | + parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") |
| 2350 | + |
| 2351 | + |
2280 | 2352 | class StateDelegatingStream(BaseModel):
|
2281 | 2353 | type: Literal["StateDelegatingStream"]
|
2282 | 2354 | name: str = Field(..., description="The stream name.", example=["Users"], title="Name")
|
@@ -2525,5 +2597,6 @@ class DynamicDeclarativeStream(BaseModel):
|
2525 | 2597 | SessionTokenAuthenticator.update_forward_refs()
|
2526 | 2598 | DynamicSchemaLoader.update_forward_refs()
|
2527 | 2599 | ParentStreamConfig.update_forward_refs()
|
| 2600 | +PropertiesFromEndpoint.update_forward_refs() |
2528 | 2601 | SimpleRetriever.update_forward_refs()
|
2529 | 2602 | AsyncRetriever.update_forward_refs()
|
0 commit comments