|
| 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 |
|
@@ -343,6 +345,10 @@ class Clamping(BaseModel): |
343 | 345 | target_details: Optional[Dict[str, Any]] = None |
344 | 346 |
|
345 | 347 |
|
| 348 | +class EmitPartialRecordMergeStrategy(BaseModel): |
| 349 | + type: Literal["EmitPartialRecordMergeStrategy"] |
| 350 | + |
| 351 | + |
346 | 352 | class Algorithm(Enum): |
347 | 353 | HS256 = "HS256" |
348 | 354 | HS384 = "HS384" |
@@ -716,6 +722,17 @@ class ExponentialBackoffStrategy(BaseModel): |
716 | 722 | parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") |
717 | 723 |
|
718 | 724 |
|
| 725 | +class GroupByKeyMergeStrategy(BaseModel): |
| 726 | + type: Literal["GroupByKeyMergeStrategy"] |
| 727 | + key: Union[str, List[str]] = Field( |
| 728 | + ..., |
| 729 | + description="The name of the field on the record whose value will be used to group properties that were retrieved through multiple API requests.", |
| 730 | + examples=["id", ["parent_id", "end_date"]], |
| 731 | + title="Key", |
| 732 | + ) |
| 733 | + parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") |
| 734 | + |
| 735 | + |
719 | 736 | class SessionTokenRequestBearerAuthenticator(BaseModel): |
720 | 737 | type: Literal["Bearer"] |
721 | 738 |
|
@@ -1187,6 +1204,33 @@ class PrimaryKey(BaseModel): |
1187 | 1204 | ) |
1188 | 1205 |
|
1189 | 1206 |
|
| 1207 | +class PropertyLimitType(Enum): |
| 1208 | + characters = "characters" |
| 1209 | + property_count = "property_count" |
| 1210 | + |
| 1211 | + |
| 1212 | +class PropertyChunking(BaseModel): |
| 1213 | + type: Literal["PropertyChunking"] |
| 1214 | + property_limit_type: PropertyLimitType = Field( |
| 1215 | + ..., |
| 1216 | + description="The type used to determine the maximum number of properties per chunk", |
| 1217 | + title="Property Limit Type", |
| 1218 | + ) |
| 1219 | + property_limit: Optional[int] = Field( |
| 1220 | + None, |
| 1221 | + description="The maximum amount of properties that can be retrieved per request according to the limit type.", |
| 1222 | + title="Property Limit", |
| 1223 | + ) |
| 1224 | + record_merge_strategy: Optional[ |
| 1225 | + Union[EmitPartialRecordMergeStrategy, GroupByKeyMergeStrategy] |
| 1226 | + ] = Field( |
| 1227 | + None, |
| 1228 | + description="Dictates how to records that require multiple requests to get all properties should be emitted to the destination", |
| 1229 | + title="Record Merge Strategy", |
| 1230 | + ) |
| 1231 | + parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") |
| 1232 | + |
| 1233 | + |
1190 | 1234 | class RecordFilter(BaseModel): |
1191 | 1235 | type: Literal["RecordFilter"] |
1192 | 1236 | condition: Optional[str] = Field( |
@@ -2174,7 +2218,7 @@ class HttpRequester(BaseModel): |
2174 | 2218 | examples=[{"Output-Format": "JSON"}, {"Version": "{{ config['version'] }}"}], |
2175 | 2219 | title="Request Headers", |
2176 | 2220 | ) |
2177 | | - request_parameters: Optional[Union[str, Dict[str, str]]] = Field( |
| 2221 | + request_parameters: Optional[Union[str, Dict[str, Union[str, Any]]]] = Field( |
2178 | 2222 | None, |
2179 | 2223 | description="Specifies the query parameters that should be set on an outgoing HTTP request given the inputs.", |
2180 | 2224 | examples=[ |
@@ -2264,6 +2308,40 @@ class ParentStreamConfig(BaseModel): |
2264 | 2308 | parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") |
2265 | 2309 |
|
2266 | 2310 |
|
| 2311 | +class PropertiesFromEndpoint(BaseModel): |
| 2312 | + type: Literal["PropertiesFromEndpoint"] |
| 2313 | + property_field_path: List[str] = Field( |
| 2314 | + ..., |
| 2315 | + description="Describes the path to the field that should be extracted", |
| 2316 | + examples=[["name"]], |
| 2317 | + ) |
| 2318 | + retriever: Union[CustomRetriever, SimpleRetriever] = Field( |
| 2319 | + ..., |
| 2320 | + description="Requester component that describes how to fetch the properties to query from a remote API endpoint.", |
| 2321 | + ) |
| 2322 | + parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") |
| 2323 | + |
| 2324 | + |
| 2325 | +class QueryProperties(BaseModel): |
| 2326 | + type: Literal["QueryProperties"] |
| 2327 | + property_list: Union[List[str], PropertiesFromEndpoint] = Field( |
| 2328 | + ..., |
| 2329 | + 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", |
| 2330 | + title="Property List", |
| 2331 | + ) |
| 2332 | + always_include_properties: Optional[List[str]] = Field( |
| 2333 | + None, |
| 2334 | + description="The list of properties that should be included in every set of properties when multiple chunks of properties are being requested.", |
| 2335 | + title="Always Include Properties", |
| 2336 | + ) |
| 2337 | + property_chunking: Optional[PropertyChunking] = Field( |
| 2338 | + None, |
| 2339 | + description="Defines how query properties will be grouped into smaller sets for APIs with limitations on the number of properties fetched per API request.", |
| 2340 | + title="Property Chunking", |
| 2341 | + ) |
| 2342 | + parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters") |
| 2343 | + |
| 2344 | + |
2267 | 2345 | class StateDelegatingStream(BaseModel): |
2268 | 2346 | type: Literal["StateDelegatingStream"] |
2269 | 2347 | name: str = Field(..., description="The stream name.", example=["Users"], title="Name") |
@@ -2512,5 +2590,6 @@ class DynamicDeclarativeStream(BaseModel): |
2512 | 2590 | SessionTokenAuthenticator.update_forward_refs() |
2513 | 2591 | DynamicSchemaLoader.update_forward_refs() |
2514 | 2592 | ParentStreamConfig.update_forward_refs() |
| 2593 | +PropertiesFromEndpoint.update_forward_refs() |
2515 | 2594 | SimpleRetriever.update_forward_refs() |
2516 | 2595 | AsyncRetriever.update_forward_refs() |
0 commit comments