airbyte-agent-amazon-ads 0.1.6__py3-none-any.whl → 0.1.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -152,6 +152,61 @@ class AmazonAdsExecuteResultWithMeta(AmazonAdsExecuteResult[T], Generic[T, S]):
152
152
  meta: S
153
153
  """Metadata about the response (e.g., pagination cursors, record counts)."""
154
154
 
155
+ # ===== SEARCH DATA MODELS =====
156
+ # Entity-specific Pydantic models for search result data
157
+
158
+ # Type variable for search data generic
159
+ D = TypeVar('D')
160
+
161
+ class ProfilesSearchData(BaseModel):
162
+ """Search result data for profiles entity."""
163
+ model_config = ConfigDict(extra="allow")
164
+
165
+ account_info: dict[str, Any] | None = None
166
+ """"""
167
+ country_code: str | None = None
168
+ """"""
169
+ currency_code: str | None = None
170
+ """"""
171
+ daily_budget: float | None = None
172
+ """"""
173
+ profile_id: int | None = None
174
+ """"""
175
+ timezone: str | None = None
176
+ """"""
177
+
178
+
179
+ # ===== GENERIC SEARCH RESULT TYPES =====
180
+
181
+ class AirbyteSearchHit(BaseModel, Generic[D]):
182
+ """A single search result with typed data."""
183
+ model_config = ConfigDict(extra="allow")
184
+
185
+ id: str | None = None
186
+ """Unique identifier for the record."""
187
+ score: float | None = None
188
+ """Relevance score for the match."""
189
+ data: D
190
+ """The matched record data."""
191
+
192
+
193
+ class AirbyteSearchResult(BaseModel, Generic[D]):
194
+ """Result from Airbyte cache search operations with typed hits."""
195
+ model_config = ConfigDict(extra="allow")
196
+
197
+ hits: list[AirbyteSearchHit[D]] = Field(default_factory=list)
198
+ """List of matching records."""
199
+ next_cursor: str | None = None
200
+ """Cursor for fetching the next page of results."""
201
+ took_ms: int | None = None
202
+ """Time taken to execute the search in milliseconds."""
203
+
204
+
205
+ # ===== ENTITY-SPECIFIC SEARCH RESULT TYPE ALIASES =====
206
+
207
+ ProfilesSearchResult = AirbyteSearchResult[ProfilesSearchData]
208
+ """Search result type for profiles entity."""
209
+
155
210
 
156
211
 
157
212
  # ===== OPERATION RESULT TYPE ALIASES =====
@@ -9,6 +9,7 @@ try:
9
9
  except ImportError:
10
10
  from typing import TypedDict, NotRequired # type: ignore[attr-defined]
11
11
 
12
+ from typing import Any, Literal
12
13
 
13
14
 
14
15
  # ===== NESTED PARAM TYPE DEFINITIONS =====
@@ -46,3 +47,192 @@ class SponsoredProductCampaignsGetParams(TypedDict):
46
47
  """Parameters for sponsored_product_campaigns.get operation"""
47
48
  campaign_id: str
48
49
 
50
+ # ===== SEARCH TYPES =====
51
+
52
+ # Sort specification
53
+ AirbyteSortOrder = Literal["asc", "desc"]
54
+
55
+ # ===== PROFILES SEARCH TYPES =====
56
+
57
+ class ProfilesSearchFilter(TypedDict, total=False):
58
+ """Available fields for filtering profiles search queries."""
59
+ account_info: dict[str, Any] | None
60
+ """"""
61
+ country_code: str | None
62
+ """"""
63
+ currency_code: str | None
64
+ """"""
65
+ daily_budget: float | None
66
+ """"""
67
+ profile_id: int | None
68
+ """"""
69
+ timezone: str | None
70
+ """"""
71
+
72
+
73
+ class ProfilesInFilter(TypedDict, total=False):
74
+ """Available fields for 'in' condition (values are lists)."""
75
+ account_info: list[dict[str, Any]]
76
+ """"""
77
+ country_code: list[str]
78
+ """"""
79
+ currency_code: list[str]
80
+ """"""
81
+ daily_budget: list[float]
82
+ """"""
83
+ profile_id: list[int]
84
+ """"""
85
+ timezone: list[str]
86
+ """"""
87
+
88
+
89
+ class ProfilesAnyValueFilter(TypedDict, total=False):
90
+ """Available fields with Any value type. Used for 'contains' and 'any' conditions."""
91
+ account_info: Any
92
+ """"""
93
+ country_code: Any
94
+ """"""
95
+ currency_code: Any
96
+ """"""
97
+ daily_budget: Any
98
+ """"""
99
+ profile_id: Any
100
+ """"""
101
+ timezone: Any
102
+ """"""
103
+
104
+
105
+ class ProfilesStringFilter(TypedDict, total=False):
106
+ """String fields for text search conditions (like, fuzzy, keyword)."""
107
+ account_info: str
108
+ """"""
109
+ country_code: str
110
+ """"""
111
+ currency_code: str
112
+ """"""
113
+ daily_budget: str
114
+ """"""
115
+ profile_id: str
116
+ """"""
117
+ timezone: str
118
+ """"""
119
+
120
+
121
+ class ProfilesSortFilter(TypedDict, total=False):
122
+ """Available fields for sorting profiles search results."""
123
+ account_info: AirbyteSortOrder
124
+ """"""
125
+ country_code: AirbyteSortOrder
126
+ """"""
127
+ currency_code: AirbyteSortOrder
128
+ """"""
129
+ daily_budget: AirbyteSortOrder
130
+ """"""
131
+ profile_id: AirbyteSortOrder
132
+ """"""
133
+ timezone: AirbyteSortOrder
134
+ """"""
135
+
136
+
137
+ # Entity-specific condition types for profiles
138
+ class ProfilesEqCondition(TypedDict, total=False):
139
+ """Equal to: field equals value."""
140
+ eq: ProfilesSearchFilter
141
+
142
+
143
+ class ProfilesNeqCondition(TypedDict, total=False):
144
+ """Not equal to: field does not equal value."""
145
+ neq: ProfilesSearchFilter
146
+
147
+
148
+ class ProfilesGtCondition(TypedDict, total=False):
149
+ """Greater than: field > value."""
150
+ gt: ProfilesSearchFilter
151
+
152
+
153
+ class ProfilesGteCondition(TypedDict, total=False):
154
+ """Greater than or equal: field >= value."""
155
+ gte: ProfilesSearchFilter
156
+
157
+
158
+ class ProfilesLtCondition(TypedDict, total=False):
159
+ """Less than: field < value."""
160
+ lt: ProfilesSearchFilter
161
+
162
+
163
+ class ProfilesLteCondition(TypedDict, total=False):
164
+ """Less than or equal: field <= value."""
165
+ lte: ProfilesSearchFilter
166
+
167
+
168
+ class ProfilesLikeCondition(TypedDict, total=False):
169
+ """Partial string match with % wildcards."""
170
+ like: ProfilesStringFilter
171
+
172
+
173
+ class ProfilesFuzzyCondition(TypedDict, total=False):
174
+ """Ordered word text match (case-insensitive)."""
175
+ fuzzy: ProfilesStringFilter
176
+
177
+
178
+ class ProfilesKeywordCondition(TypedDict, total=False):
179
+ """Keyword text match (any word present)."""
180
+ keyword: ProfilesStringFilter
181
+
182
+
183
+ class ProfilesContainsCondition(TypedDict, total=False):
184
+ """Check if value exists in array field. Example: {"contains": {"tags": "premium"}}"""
185
+ contains: ProfilesAnyValueFilter
186
+
187
+
188
+ # Reserved keyword conditions using functional TypedDict syntax
189
+ ProfilesInCondition = TypedDict("ProfilesInCondition", {"in": ProfilesInFilter}, total=False)
190
+ """In list: field value is in list. Example: {"in": {"status": ["active", "pending"]}}"""
191
+
192
+ ProfilesNotCondition = TypedDict("ProfilesNotCondition", {"not": "ProfilesCondition"}, total=False)
193
+ """Negates the nested condition."""
194
+
195
+ ProfilesAndCondition = TypedDict("ProfilesAndCondition", {"and": "list[ProfilesCondition]"}, total=False)
196
+ """True if all nested conditions are true."""
197
+
198
+ ProfilesOrCondition = TypedDict("ProfilesOrCondition", {"or": "list[ProfilesCondition]"}, total=False)
199
+ """True if any nested condition is true."""
200
+
201
+ ProfilesAnyCondition = TypedDict("ProfilesAnyCondition", {"any": ProfilesAnyValueFilter}, total=False)
202
+ """Match if ANY element in array field matches nested condition. Example: {"any": {"addresses": {"eq": {"state": "CA"}}}}"""
203
+
204
+ # Union of all profiles condition types
205
+ ProfilesCondition = (
206
+ ProfilesEqCondition
207
+ | ProfilesNeqCondition
208
+ | ProfilesGtCondition
209
+ | ProfilesGteCondition
210
+ | ProfilesLtCondition
211
+ | ProfilesLteCondition
212
+ | ProfilesInCondition
213
+ | ProfilesLikeCondition
214
+ | ProfilesFuzzyCondition
215
+ | ProfilesKeywordCondition
216
+ | ProfilesContainsCondition
217
+ | ProfilesNotCondition
218
+ | ProfilesAndCondition
219
+ | ProfilesOrCondition
220
+ | ProfilesAnyCondition
221
+ )
222
+
223
+
224
+ class ProfilesSearchQuery(TypedDict, total=False):
225
+ """Search query for profiles entity."""
226
+ filter: ProfilesCondition
227
+ sort: list[ProfilesSortFilter]
228
+
229
+
230
+
231
+ # ===== SEARCH PARAMS =====
232
+
233
+ class AirbyteSearchParams(TypedDict, total=False):
234
+ """Parameters for Airbyte cache search operations (generic, use entity-specific query types for better type hints)."""
235
+ query: dict[str, Any]
236
+ limit: int
237
+ cursor: str
238
+ fields: list[list[str]]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-agent-amazon-ads
3
- Version: 0.1.6
3
+ Version: 0.1.9
4
4
  Summary: Airbyte Amazon-Ads Connector for AI platforms
5
5
  Project-URL: Homepage, https://github.com/airbytehq/airbyte-agent-connectors
6
6
  Project-URL: Documentation, https://docs.airbyte.com/ai-agents/
@@ -86,7 +86,7 @@ connector = AmazonAdsConnector(
86
86
  )
87
87
 
88
88
  @agent.tool_plain # assumes you're using Pydantic AI
89
- @AmazonAdsConnector.describe
89
+ @AmazonAdsConnector.tool_utils
90
90
  async def amazon-ads_execute(entity: str, action: str, params: dict | None = None):
91
91
  return await connector.execute(entity, action, params or {})
92
92
  ```
@@ -107,11 +107,12 @@ connector = AmazonAdsConnector(
107
107
  )
108
108
 
109
109
  @agent.tool_plain # assumes you're using Pydantic AI
110
- @AmazonAdsConnector.describe
110
+ @AmazonAdsConnector.tool_utils
111
111
  async def amazon-ads_execute(entity: str, action: str, params: dict | None = None):
112
112
  return await connector.execute(entity, action, params or {})
113
113
  ```
114
114
 
115
+
115
116
  ## Full documentation
116
117
 
117
118
  This connector supports the following entities and actions.
@@ -131,6 +132,6 @@ For the service's official API docs, see the [Amazon-Ads API reference](https://
131
132
 
132
133
  ## Version information
133
134
 
134
- - **Package version:** 0.1.6
135
- - **Connector version:** 1.0.1
136
- - **Generated with Connector SDK commit SHA:** 416466da4970ae5fd6c7f2c658a68e047e51efd9
135
+ - **Package version:** 0.1.9
136
+ - **Connector version:** 1.0.3
137
+ - **Generated with Connector SDK commit SHA:** 609c1d86c76b36ff699b57123a5a8c2050d958c3
@@ -1,27 +1,27 @@
1
- airbyte_agent_amazon_ads/__init__.py,sha256=q1HEHSqUrBKHSJDrjl6DpmKQ7BLgfV8-Ct_07h9yWoU,1442
2
- airbyte_agent_amazon_ads/connector.py,sha256=_xaQg0CzkAHAZLoWoP7zIwYN4Uvge-jYlQyP5A2hrF0,19290
3
- airbyte_agent_amazon_ads/connector_model.py,sha256=JaflXe0x3R1neowZ8dQ4kTX-6lmQMmAJO9xP1nRFNoc,61939
4
- airbyte_agent_amazon_ads/models.py,sha256=373Eq2tb4mroZNrkWCpt-oFY1bZgOZd2sDfaNVDZ0rc,7610
5
- airbyte_agent_amazon_ads/types.py,sha256=qe9zmgsEV06BQKQ68In9fwZji2tDqCB2JJXU_6dNwxA,1538
1
+ airbyte_agent_amazon_ads/__init__.py,sha256=f883U_4eSRjMLgjqpi5rGcKZ0U44ME_Z0IY-XZhwlPc,1896
2
+ airbyte_agent_amazon_ads/connector.py,sha256=LUhUhLTmj2oF8J7-0jO4I8KfPK4L082yTzwUyz_DKL0,23895
3
+ airbyte_agent_amazon_ads/connector_model.py,sha256=lOTUqeFdrTtnW2GLh5hBwxp9Xwg0lTPTAE5EcOaQteE,98118
4
+ airbyte_agent_amazon_ads/models.py,sha256=TOHCY0p3cE0rWVv3YfYvyvL-lmdYBcoGRTXtFNNBztc,9182
5
+ airbyte_agent_amazon_ads/types.py,sha256=EW-jvOmXyJQqe2ESiDCs7nCIIsFreDCIZBlA6aplxpA,6728
6
6
  airbyte_agent_amazon_ads/_vendored/__init__.py,sha256=ILl7AHXMui__swyrjxrh9yRa4dLiwBvV6axPWFWty80,38
7
7
  airbyte_agent_amazon_ads/_vendored/connector_sdk/__init__.py,sha256=T5o7roU6NSpH-lCAGZ338sE5dlh4ZU6i6IkeG1zpems,1949
8
8
  airbyte_agent_amazon_ads/_vendored/connector_sdk/auth_strategies.py,sha256=5Sb9moUp623o67Q2wMa8iZldJH08y4gQdoutoO_75Iw,42088
9
9
  airbyte_agent_amazon_ads/_vendored/connector_sdk/auth_template.py,sha256=nju4jqlFC_KI82ILNumNIyiUtRJcy7J94INIZ0QraI4,4454
10
- airbyte_agent_amazon_ads/_vendored/connector_sdk/connector_model_loader.py,sha256=SY_Juqw-cap156MsdgrMfe5MAuFdX0vUcSbH5LUYNK0,36295
10
+ airbyte_agent_amazon_ads/_vendored/connector_sdk/connector_model_loader.py,sha256=nCu6oym6LoKrS94NTivU1vyQE_qnU-rhx8ExpuOX_LU,39544
11
11
  airbyte_agent_amazon_ads/_vendored/connector_sdk/constants.py,sha256=AtzOvhDMWbRJgpsQNWl5tkogHD6mWgEY668PgRmgtOY,2737
12
12
  airbyte_agent_amazon_ads/_vendored/connector_sdk/exceptions.py,sha256=ss5MGv9eVPmsbLcLWetuu3sDmvturwfo6Pw3M37Oq5k,481
13
13
  airbyte_agent_amazon_ads/_vendored/connector_sdk/extensions.py,sha256=XWRRoJOOrwUHSKbuQt5DU7CCu8ePzhd_HuP7c_uD77w,21376
14
14
  airbyte_agent_amazon_ads/_vendored/connector_sdk/http_client.py,sha256=yucwu3OvJh5wLQa1mk-gTKjtqjKKucMw5ltmlE7mk1c,28000
15
- airbyte_agent_amazon_ads/_vendored/connector_sdk/introspection.py,sha256=2CyKXZHT74-1Id97uw1RLeyOi6TV24_hoNbQ6-6y7uI,10335
15
+ airbyte_agent_amazon_ads/_vendored/connector_sdk/introspection.py,sha256=kRVI4TDQDLdcCnTBUML8ycAtdqAQufVh-027sMkb4i8,19165
16
16
  airbyte_agent_amazon_ads/_vendored/connector_sdk/secrets.py,sha256=J9ezMu4xNnLW11xY5RCre6DHP7YMKZCqwGJfk7ufHAM,6855
17
- airbyte_agent_amazon_ads/_vendored/connector_sdk/types.py,sha256=d8PidSD5nzhSSgFwUeYtRKw8pTm0Gft_IHsGeELifuk,8748
17
+ airbyte_agent_amazon_ads/_vendored/connector_sdk/types.py,sha256=in8gHsn5nsScujOfHZmkOgNmqmJKiPyNNjg59m5fGWc,8807
18
18
  airbyte_agent_amazon_ads/_vendored/connector_sdk/utils.py,sha256=G4LUXOC2HzPoND2v4tQW68R9uuPX9NQyCjaGxb7Kpl0,1958
19
19
  airbyte_agent_amazon_ads/_vendored/connector_sdk/validation.py,sha256=4MPrxYmQh8TbCU0KdvvRKe35Lg1YYLEBd0u4aKySl_E,32122
20
20
  airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/__init__.py,sha256=4799Hv9f2zxDVj1aLyQ8JpTEuFTp_oOZMRz-NZCdBJg,134
21
21
  airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/client.py,sha256=YxdRpQr9XjDzih6csSseBVGn9kfMtaqbOCXP0TPuzFY,7189
22
22
  airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/__init__.py,sha256=EmG9YQNAjSuYCVB4D5VoLm4qpD1KfeiiOf7bpALj8p8,702
23
23
  airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/hosted_executor.py,sha256=ydHcG-biRS1ITT5ELwPShdJW-KYpvK--Fos1ipNgHho,6995
24
- airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/local_executor.py,sha256=Vg4rPk0sbgXEdYLx2n2Spgj9XrDUWykD2E2o7sWloRM,73849
24
+ airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/local_executor.py,sha256=tVbfstxOrm5qJt1NawTwjhIIpDgPCC4wSrKM5eALPSQ,74064
25
25
  airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/models.py,sha256=lYVT_bNcw-PoIks4WHNyl2VY-lJVf2FntzINSOBIheE,5845
26
26
  airbyte_agent_amazon_ads/_vendored/connector_sdk/http/__init__.py,sha256=y8fbzZn-3yV9OxtYz8Dy6FFGI5v6TOqADd1G3xHH3Hw,911
27
27
  airbyte_agent_amazon_ads/_vendored/connector_sdk/http/config.py,sha256=6J7YIIwHC6sRu9i-yKa5XvArwK2KU60rlnmxzDZq3lw,3283
@@ -42,16 +42,16 @@ airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/__init__.py,sha256=
42
42
  airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/instrumentation.py,sha256=_dXvNiqdndIBwDjeDKNViWzn_M5FkSUsMmJtFldrmsM,1504
43
43
  airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/metrics.py,sha256=FRff7dKt4iwt_A7pxV5n9kAGBR756PC7q8-weWygPSM,2817
44
44
  airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/__init__.py,sha256=Uymu-QuzGJuMxexBagIvUxpVAigIuIhz3KeBl_Vu4Ko,1638
45
- airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/base.py,sha256=KX3OUSnWu_M6yq-IMTH4dI420x-VRSvKc7uery6gFUU,6303
46
- airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/components.py,sha256=x3YCM1p2n_xHi50fMeOX0mXUiPqjGlLHs3Go8jXokb0,7895
45
+ airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/base.py,sha256=IoAucZQ0j0xTdm4VWotB636R4jsrkYnppMQhXE0uoyU,6541
46
+ airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/components.py,sha256=nJIPieavwX3o3ODvdtLHPk84d_V229xmg6LDfwEHjzc,8119
47
47
  airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/connector.py,sha256=mSZk1wr2YSdRj9tTRsPAuIlCzd_xZLw-Bzl1sMwE0rE,3731
48
- airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/extensions.py,sha256=f7VhHrcIYxaPOJHMc4g0lpy04pZTbx5nlroNzAu5B9Q,7135
48
+ airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/extensions.py,sha256=5hgpFHK7fzpzegCkJk882DeIP79bCx_qairKJhvPMZ8,9590
49
49
  airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/operations.py,sha256=RpzGtAI4yvAtMHAfMUMcUwgHv_qJojnKlNb75_agUF8,5729
50
50
  airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/security.py,sha256=6ljzf_JHs4amnQX9AhePcEsT8P3ZnTSC4xeg7-cvsNQ,9100
51
51
  airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/__init__.py,sha256=RaLgkBU4dfxn1LC5Y0Q9rr2PJbrwjxvPgBLmq8_WafE,211
52
52
  airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/config.py,sha256=tLmQwAFD0kP1WyBGWBS3ysaudN9H3e-3EopKZi6cGKg,885
53
53
  airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/events.py,sha256=8Y1NbXiwISX-V_wRofY7PqcwEXD0dLMnntKkY6XFU2s,1328
54
54
  airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/tracker.py,sha256=Ftrk0_ddfM7dZG8hF9xBuPwhbc9D6JZ7Q9qs5o3LEyA,5579
55
- airbyte_agent_amazon_ads-0.1.6.dist-info/METADATA,sha256=1fIq0thyfKkVulSJkgVW5tqo4YgoSr5YwFK82aAUt4c,5152
56
- airbyte_agent_amazon_ads-0.1.6.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
57
- airbyte_agent_amazon_ads-0.1.6.dist-info/RECORD,,
55
+ airbyte_agent_amazon_ads-0.1.9.dist-info/METADATA,sha256=_RbZLdC2MqkaarpWQu6NQfNnfDXX2PhXwCFm6dxsf-0,5157
56
+ airbyte_agent_amazon_ads-0.1.9.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
57
+ airbyte_agent_amazon_ads-0.1.9.dist-info/RECORD,,