Skip to content

Commit 4af68d3

Browse files
chore: sync unified package v0.1.29
Source: airbyte-embedded@da34f6ce1
1 parent 90a1d60 commit 4af68d3

File tree

152 files changed

+4762
-3196
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

152 files changed

+4762
-3196
lines changed

airbyte_agent_sdk/connector_model_loader.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,9 @@ def convert_openapi_to_connector_model(spec: OpenAPIConnector) -> ConnectorModel
502502
# Extract untested flag
503503
untested = getattr(operation, "x_airbyte_untested", None) or False
504504

505+
# Extract x-airbyte-no-pagination justification (list-action opt-out)
506+
no_pagination = getattr(operation, "x_airbyte_no_pagination", None)
507+
505508
# Extract preferred_for_check flag
506509
preferred_for_check = getattr(operation, "x_airbyte_preferred_for_check", None) or False
507510

@@ -532,14 +535,11 @@ def convert_openapi_to_connector_model(spec: OpenAPIConnector) -> ConnectorModel
532535
graphql_body=graphql_body,
533536
file_field=file_field,
534537
untested=untested,
538+
no_pagination=no_pagination,
535539
preferred_for_check=preferred_for_check,
536540
upload_file_param=upload_file_param,
537541
no_content_response=has_no_content_response,
538-
ai_hints=(
539-
operation.x_airbyte_ai_hints.model_dump(by_alias=True)
540-
if operation.x_airbyte_ai_hints is not None
541-
else None
542-
),
542+
ai_hints=(operation.x_airbyte_ai_hints.model_dump(by_alias=True) if operation.x_airbyte_ai_hints is not None else None),
543543
)
544544

545545
# Add to entities map

airbyte_agent_sdk/connectors/airtable/connector.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class AirtableConnector:
9797

9898
connector_name = "airtable"
9999
connector_version = "1.0.8"
100-
sdk_version = "0.1.28"
100+
sdk_version = "0.1.29"
101101

102102
# Map of (entity, action) -> needs_envelope for envelope wrapping decision
103103
_ENVELOPE_MAP = {
@@ -618,7 +618,8 @@ async def list(
618618
result = await self._connector.execute("bases", "list", params)
619619
# Cast generic envelope to concrete typed result
620620
return BasesListResult(
621-
data=result.data
621+
data=result.data,
622+
meta=result.meta
622623
)
623624

624625

@@ -826,7 +827,8 @@ async def list(
826827
result = await self._connector.execute("records", "list", params)
827828
# Cast generic envelope to concrete typed result
828829
return RecordsListResult(
829-
data=result.data
830+
data=result.data,
831+
meta=result.meta
830832
)
831833

832834

airbyte_agent_sdk/connectors/airtable/connector_model.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
},
100100
},
101101
record_extractor='$.bases',
102+
meta_extractor={'offset': '$.offset'},
102103
),
103104
},
104105
entity_schema={
@@ -211,6 +212,7 @@
211212
},
212213
},
213214
record_extractor='$.tables',
215+
no_pagination='Airtable Metadata API returns all tables for a base in a single response with no pagination support.',
214216
),
215217
},
216218
entity_schema={
@@ -311,6 +313,7 @@
311313
},
312314
},
313315
record_extractor='$.records',
316+
meta_extractor={'offset': '$.offset'},
314317
),
315318
Action.GET: EndpointDefinition(
316319
method='GET',

airbyte_agent_sdk/connectors/airtable/models.py

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,22 +37,22 @@ class BasesList(BaseModel):
3737
bases: Union[list[Base], Any] = Field(default=None)
3838
offset: Union[str | None, Any] = Field(default=None)
3939

40-
class View(BaseModel):
41-
"""A view in a table"""
40+
class TableField(BaseModel):
41+
"""A field (column) in a table"""
4242
model_config = ConfigDict(extra="allow", populate_by_name=True)
4343

4444
id: Union[str | None, Any] = Field(default=None)
4545
name: Union[str | None, Any] = Field(default=None)
4646
type_: Union[str | None, Any] = Field(default=None, alias="type")
47+
options: Union[dict[str, Any] | None, Any] = Field(default=None)
4748

48-
class TableField(BaseModel):
49-
"""A field (column) in a table"""
49+
class View(BaseModel):
50+
"""A view in a table"""
5051
model_config = ConfigDict(extra="allow", populate_by_name=True)
5152

5253
id: Union[str | None, Any] = Field(default=None)
5354
name: Union[str | None, Any] = Field(default=None)
5455
type_: Union[str | None, Any] = Field(default=None, alias="type")
55-
options: Union[dict[str, Any] | None, Any] = Field(default=None)
5656

5757
class Table(BaseModel):
5858
"""A table within an Airtable base"""
@@ -88,6 +88,18 @@ class RecordsList(BaseModel):
8888
# ===== METADATA TYPE DEFINITIONS (PYDANTIC) =====
8989
# Meta types for operations that extract metadata (e.g., pagination info)
9090

91+
class BasesListResultMeta(BaseModel):
92+
"""Metadata for bases.Action.LIST operation"""
93+
model_config = ConfigDict(extra="allow", populate_by_name=True)
94+
95+
offset: Union[str | None, Any] = Field(default=None)
96+
97+
class RecordsListResultMeta(BaseModel):
98+
"""Metadata for records.Action.LIST operation"""
99+
model_config = ConfigDict(extra="allow", populate_by_name=True)
100+
101+
offset: Union[str | None, Any] = Field(default=None)
102+
91103
# ===== CHECK RESULT MODEL =====
92104

93105
class AirtableCheckResult(BaseModel):
@@ -206,12 +218,12 @@ class AirbyteSearchResult(BaseModel, Generic[D]):
206218
# Concrete type aliases for each operation result.
207219
# These provide simpler, more readable type annotations than using the generic forms.
208220

209-
BasesListResult = AirtableExecuteResult[list[Base]]
210-
"""Result type for bases.list operation."""
221+
BasesListResult = AirtableExecuteResultWithMeta[list[Base], BasesListResultMeta]
222+
"""Result type for bases.list operation with data and metadata."""
211223

212224
TablesListResult = AirtableExecuteResult[list[Table]]
213225
"""Result type for tables.list operation."""
214226

215-
RecordsListResult = AirtableExecuteResult[list[Record]]
216-
"""Result type for records.list operation."""
227+
RecordsListResult = AirtableExecuteResultWithMeta[list[Record], RecordsListResultMeta]
228+
"""Result type for records.list operation with data and metadata."""
217229

airbyte_agent_sdk/connectors/amazon_ads/connector.py

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ class AmazonAdsConnector:
120120

121121
connector_name = "amazon-ads"
122122
connector_version = "1.0.10"
123-
sdk_version = "0.1.28"
123+
sdk_version = "0.1.29"
124124

125125
# Map of (entity, action) -> needs_envelope for envelope wrapping decision
126126
_ENVELOPE_MAP = {
@@ -994,7 +994,8 @@ async def list(
994994
result = await self._connector.execute("portfolios", "list", params)
995995
# Cast generic envelope to concrete typed result
996996
return PortfoliosListResult(
997-
data=result.data
997+
data=result.data,
998+
meta=result.meta
998999
)
9991000

10001001

@@ -1065,7 +1066,8 @@ async def list(
10651066
result = await self._connector.execute("sponsored_product_campaigns", "list", params)
10661067
# Cast generic envelope to concrete typed result
10671068
return SponsoredProductCampaignsListResult(
1068-
data=result.data
1069+
data=result.data,
1070+
meta=result.meta
10691071
)
10701072

10711073

@@ -1136,7 +1138,8 @@ async def list(
11361138
result = await self._connector.execute("sponsored_product_ad_groups", "list", params)
11371139
# Cast generic envelope to concrete typed result
11381140
return SponsoredProductAdGroupsListResult(
1139-
data=result.data
1141+
data=result.data,
1142+
meta=result.meta
11401143
)
11411144

11421145

@@ -1181,7 +1184,8 @@ async def list(
11811184
result = await self._connector.execute("sponsored_product_keywords", "list", params)
11821185
# Cast generic envelope to concrete typed result
11831186
return SponsoredProductKeywordsListResult(
1184-
data=result.data
1187+
data=result.data,
1188+
meta=result.meta
11851189
)
11861190

11871191

@@ -1226,7 +1230,8 @@ async def list(
12261230
result = await self._connector.execute("sponsored_product_product_ads", "list", params)
12271231
# Cast generic envelope to concrete typed result
12281232
return SponsoredProductProductAdsListResult(
1229-
data=result.data
1233+
data=result.data,
1234+
meta=result.meta
12301235
)
12311236

12321237

@@ -1271,7 +1276,8 @@ async def list(
12711276
result = await self._connector.execute("sponsored_product_targets", "list", params)
12721277
# Cast generic envelope to concrete typed result
12731278
return SponsoredProductTargetsListResult(
1274-
data=result.data
1279+
data=result.data,
1280+
meta=result.meta
12751281
)
12761282

12771283

@@ -1316,7 +1322,8 @@ async def list(
13161322
result = await self._connector.execute("sponsored_product_negative_keywords", "list", params)
13171323
# Cast generic envelope to concrete typed result
13181324
return SponsoredProductNegativeKeywordsListResult(
1319-
data=result.data
1325+
data=result.data,
1326+
meta=result.meta
13201327
)
13211328

13221329

@@ -1361,7 +1368,8 @@ async def list(
13611368
result = await self._connector.execute("sponsored_product_negative_targets", "list", params)
13621369
# Cast generic envelope to concrete typed result
13631370
return SponsoredProductNegativeTargetsListResult(
1364-
data=result.data
1371+
data=result.data,
1372+
meta=result.meta
13651373
)
13661374

13671375

@@ -1406,7 +1414,8 @@ async def list(
14061414
result = await self._connector.execute("sponsored_brands_campaigns", "list", params)
14071415
# Cast generic envelope to concrete typed result
14081416
return SponsoredBrandsCampaignsListResult(
1409-
data=result.data
1417+
data=result.data,
1418+
meta=result.meta
14101419
)
14111420

14121421

@@ -1451,7 +1460,8 @@ async def list(
14511460
result = await self._connector.execute("sponsored_brands_ad_groups", "list", params)
14521461
# Cast generic envelope to concrete typed result
14531462
return SponsoredBrandsAdGroupsListResult(
1454-
data=result.data
1463+
data=result.data,
1464+
meta=result.meta
14551465
)
14561466

14571467

airbyte_agent_sdk/connectors/amazon_ads/connector_model.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@
174174
},
175175
},
176176
},
177+
no_pagination='The Amazon Ads /v2/profiles endpoint returns the full list of advertising profiles associated with the authenticated user as a single JSON array; there is no pagination cursor.',
177178
preferred_for_check=True,
178179
),
179180
Action.GET: EndpointDefinition(
@@ -465,6 +466,7 @@
465466
},
466467
},
467468
},
469+
meta_extractor={'next_token': '$.nextToken'},
468470
),
469471
Action.GET: EndpointDefinition(
470472
method='GET',
@@ -900,6 +902,7 @@
900902
},
901903
},
902904
},
905+
meta_extractor={'next_token': '$.nextToken'},
903906
),
904907
Action.GET: EndpointDefinition(
905908
method='GET',
@@ -1354,6 +1357,7 @@
13541357
},
13551358
},
13561359
},
1360+
meta_extractor={'next_token': '$.nextToken'},
13571361
),
13581362
},
13591363
entity_schema={
@@ -1568,6 +1572,7 @@
15681572
},
15691573
},
15701574
},
1575+
meta_extractor={'next_token': '$.nextToken'},
15711576
),
15721577
},
15731578
entity_schema={
@@ -1789,6 +1794,7 @@
17891794
},
17901795
},
17911796
},
1797+
meta_extractor={'next_token': '$.nextToken'},
17921798
),
17931799
},
17941800
entity_schema={
@@ -2032,6 +2038,7 @@
20322038
},
20332039
},
20342040
},
2041+
meta_extractor={'next_token': '$.nextToken'},
20352042
),
20362043
},
20372044
entity_schema={
@@ -2280,6 +2287,7 @@
22802287
},
22812288
},
22822289
},
2290+
meta_extractor={'next_token': '$.nextToken'},
22832291
),
22842292
},
22852293
entity_schema={
@@ -2523,6 +2531,7 @@
25232531
},
25242532
},
25252533
},
2534+
meta_extractor={'next_token': '$.nextToken'},
25262535
),
25272536
},
25282537
entity_schema={
@@ -2793,6 +2802,7 @@
27932802
},
27942803
},
27952804
},
2805+
meta_extractor={'next_token': '$.nextToken'},
27962806
),
27972807
},
27982808
entity_schema={
@@ -3019,6 +3029,7 @@
30193029
},
30203030
},
30213031
},
3032+
meta_extractor={'next_token': '$.nextToken'},
30223033
),
30233034
},
30243035
entity_schema={

0 commit comments

Comments
 (0)