airbyte-agent-amazon-ads 0.1.18__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.
- airbyte_agent_amazon_ads/__init__.py +75 -0
- airbyte_agent_amazon_ads/_vendored/__init__.py +1 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/__init__.py +82 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/auth_strategies.py +1171 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/auth_template.py +135 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/__init__.py +5 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/client.py +213 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/connector_model_loader.py +1116 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/constants.py +78 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/exceptions.py +23 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/__init__.py +31 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/hosted_executor.py +196 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/local_executor.py +1773 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/models.py +190 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/extensions.py +693 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/http/__init__.py +37 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/http/adapters/__init__.py +9 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/http/adapters/httpx_adapter.py +251 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/http/config.py +98 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/http/exceptions.py +119 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/http/protocols.py +114 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/http/response.py +104 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/http_client.py +693 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/introspection.py +481 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/__init__.py +11 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/logger.py +273 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/types.py +93 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/__init__.py +11 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/config.py +179 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/models.py +19 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/redactor.py +81 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/session.py +103 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/__init__.py +6 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/instrumentation.py +57 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/metrics.py +93 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/__init__.py +75 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/base.py +201 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/components.py +244 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/connector.py +120 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/extensions.py +301 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/operations.py +146 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/security.py +236 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/secrets.py +182 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/__init__.py +10 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/config.py +32 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/events.py +59 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/tracker.py +155 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/types.py +255 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/utils.py +60 -0
- airbyte_agent_amazon_ads/_vendored/connector_sdk/validation.py +828 -0
- airbyte_agent_amazon_ads/connector.py +711 -0
- airbyte_agent_amazon_ads/connector_model.py +2213 -0
- airbyte_agent_amazon_ads/models.py +225 -0
- airbyte_agent_amazon_ads/types.py +238 -0
- airbyte_agent_amazon_ads-0.1.18.dist-info/METADATA +140 -0
- airbyte_agent_amazon_ads-0.1.18.dist-info/RECORD +57 -0
- airbyte_agent_amazon_ads-0.1.18.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Pydantic models for amazon-ads connector.
|
|
3
|
+
|
|
4
|
+
This module contains Pydantic models used for authentication configuration
|
|
5
|
+
and response envelope types.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
11
|
+
from typing import TypeVar, Generic, Union, Any
|
|
12
|
+
|
|
13
|
+
# Authentication configuration
|
|
14
|
+
|
|
15
|
+
class AmazonAdsAuthConfig(BaseModel):
|
|
16
|
+
"""OAuth2 Authentication"""
|
|
17
|
+
|
|
18
|
+
model_config = ConfigDict(extra="forbid")
|
|
19
|
+
|
|
20
|
+
client_id: str
|
|
21
|
+
"""The client ID of your Amazon Ads API application"""
|
|
22
|
+
client_secret: str
|
|
23
|
+
"""The client secret of your Amazon Ads API application"""
|
|
24
|
+
refresh_token: str
|
|
25
|
+
"""The refresh token obtained from the OAuth authorization flow"""
|
|
26
|
+
|
|
27
|
+
# ===== RESPONSE TYPE DEFINITIONS (PYDANTIC) =====
|
|
28
|
+
|
|
29
|
+
class Profile(BaseModel):
|
|
30
|
+
"""An advertising profile represents an advertiser's account in a specific marketplace.
|
|
31
|
+
Profiles are used to scope API calls and manage advertising campaigns.
|
|
32
|
+
"""
|
|
33
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
34
|
+
|
|
35
|
+
profile_id: Union[int, Any] = Field(default=None, alias="profileId")
|
|
36
|
+
country_code: Union[str | None, Any] = Field(default=None, alias="countryCode")
|
|
37
|
+
currency_code: Union[str | None, Any] = Field(default=None, alias="currencyCode")
|
|
38
|
+
daily_budget: Union[float | None, Any] = Field(default=None, alias="dailyBudget")
|
|
39
|
+
timezone: Union[str | None, Any] = Field(default=None)
|
|
40
|
+
account_info: Union[Any, Any] = Field(default=None, alias="accountInfo")
|
|
41
|
+
|
|
42
|
+
class AccountInfo(BaseModel):
|
|
43
|
+
"""Information about the advertiser's account associated with a profile"""
|
|
44
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
45
|
+
|
|
46
|
+
marketplace_string_id: Union[str | None, Any] = Field(default=None, alias="marketplaceStringId")
|
|
47
|
+
id: Union[str | None, Any] = Field(default=None)
|
|
48
|
+
type: Union[str | None, Any] = Field(default=None)
|
|
49
|
+
name: Union[str | None, Any] = Field(default=None)
|
|
50
|
+
sub_type: Union[str | None, Any] = Field(default=None, alias="subType")
|
|
51
|
+
valid_payment_method: Union[bool | None, Any] = Field(default=None, alias="validPaymentMethod")
|
|
52
|
+
|
|
53
|
+
class Portfolio(BaseModel):
|
|
54
|
+
"""A portfolio is a container for grouping campaigns together for organizational
|
|
55
|
+
and budget management purposes.
|
|
56
|
+
"""
|
|
57
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
58
|
+
|
|
59
|
+
portfolio_id: Union[Any, Any] = Field(default=None, alias="portfolioId")
|
|
60
|
+
name: Union[str | None, Any] = Field(default=None)
|
|
61
|
+
budget: Union[Any, Any] = Field(default=None)
|
|
62
|
+
in_budget: Union[bool | None, Any] = Field(default=None, alias="inBudget")
|
|
63
|
+
state: Union[str | None, Any] = Field(default=None)
|
|
64
|
+
creation_date: Union[int | None, Any] = Field(default=None, alias="creationDate")
|
|
65
|
+
last_updated_date: Union[int | None, Any] = Field(default=None, alias="lastUpdatedDate")
|
|
66
|
+
serving_status: Union[str | None, Any] = Field(default=None, alias="servingStatus")
|
|
67
|
+
|
|
68
|
+
class PortfolioBudget(BaseModel):
|
|
69
|
+
"""Budget configuration for a portfolio"""
|
|
70
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
71
|
+
|
|
72
|
+
amount: Union[float | None, Any] = Field(default=None)
|
|
73
|
+
currency_code: Union[str | None, Any] = Field(default=None, alias="currencyCode")
|
|
74
|
+
policy: Union[str | None, Any] = Field(default=None)
|
|
75
|
+
start_date: Union[str | None, Any] = Field(default=None, alias="startDate")
|
|
76
|
+
end_date: Union[str | None, Any] = Field(default=None, alias="endDate")
|
|
77
|
+
|
|
78
|
+
class SponsoredProductCampaign(BaseModel):
|
|
79
|
+
"""A Sponsored Products campaign promotes individual product listings on Amazon.
|
|
80
|
+
Campaigns contain ad groups, which contain ads and targeting settings.
|
|
81
|
+
Note: The list endpoint (v3) and get endpoint (v2) return slightly different field formats.
|
|
82
|
+
"""
|
|
83
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
84
|
+
|
|
85
|
+
campaign_id: Union[Any, Any] = Field(default=None, alias="campaignId")
|
|
86
|
+
portfolio_id: Union[Any, Any] = Field(default=None, alias="portfolioId")
|
|
87
|
+
name: Union[str | None, Any] = Field(default=None)
|
|
88
|
+
campaign_type: Union[str | None, Any] = Field(default=None, alias="campaignType")
|
|
89
|
+
tags: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
90
|
+
targeting_type: Union[str | None, Any] = Field(default=None, alias="targetingType")
|
|
91
|
+
premium_bid_adjustment: Union[bool | None, Any] = Field(default=None, alias="premiumBidAdjustment")
|
|
92
|
+
state: Union[str | None, Any] = Field(default=None)
|
|
93
|
+
dynamic_bidding: Union[Any, Any] = Field(default=None, alias="dynamicBidding")
|
|
94
|
+
bidding: Union[Any, Any] = Field(default=None)
|
|
95
|
+
start_date: Union[str | None, Any] = Field(default=None, alias="startDate")
|
|
96
|
+
end_date: Union[str | None, Any] = Field(default=None, alias="endDate")
|
|
97
|
+
daily_budget: Union[float | None, Any] = Field(default=None, alias="dailyBudget")
|
|
98
|
+
budget: Union[Any, Any] = Field(default=None)
|
|
99
|
+
extended_data: Union[dict[str, Any] | None, Any] = Field(default=None, alias="extendedData")
|
|
100
|
+
marketplace_budget_allocation: Union[str | None, Any] = Field(default=None, alias="marketplaceBudgetAllocation")
|
|
101
|
+
off_amazon_settings: Union[dict[str, Any] | None, Any] = Field(default=None, alias="offAmazonSettings")
|
|
102
|
+
|
|
103
|
+
class DynamicBiddingPlacementbiddingItem(BaseModel):
|
|
104
|
+
"""Nested schema for DynamicBidding.placementBidding_item"""
|
|
105
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
106
|
+
|
|
107
|
+
placement: Union[str | None, Any] = Field(default=None, description="The placement type")
|
|
108
|
+
"""The placement type"""
|
|
109
|
+
percentage: Union[int | None, Any] = Field(default=None, description="The bid adjustment percentage")
|
|
110
|
+
"""The bid adjustment percentage"""
|
|
111
|
+
|
|
112
|
+
class DynamicBidding(BaseModel):
|
|
113
|
+
"""Dynamic bidding settings for a campaign"""
|
|
114
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
115
|
+
|
|
116
|
+
placement_bidding: Union[list[DynamicBiddingPlacementbiddingItem] | None, Any] = Field(default=None, alias="placementBidding")
|
|
117
|
+
strategy: Union[str | None, Any] = Field(default=None)
|
|
118
|
+
|
|
119
|
+
class CampaignBudget(BaseModel):
|
|
120
|
+
"""Budget configuration for a campaign"""
|
|
121
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
122
|
+
|
|
123
|
+
budget_type: Union[str | None, Any] = Field(default=None, alias="budgetType")
|
|
124
|
+
budget: Union[float | None, Any] = Field(default=None)
|
|
125
|
+
|
|
126
|
+
# ===== METADATA TYPE DEFINITIONS (PYDANTIC) =====
|
|
127
|
+
# Meta types for operations that extract metadata (e.g., pagination info)
|
|
128
|
+
|
|
129
|
+
# ===== RESPONSE ENVELOPE MODELS =====
|
|
130
|
+
|
|
131
|
+
# Type variables for generic envelope models
|
|
132
|
+
T = TypeVar('T')
|
|
133
|
+
S = TypeVar('S')
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class AmazonAdsExecuteResult(BaseModel, Generic[T]):
|
|
137
|
+
"""Response envelope with data only.
|
|
138
|
+
|
|
139
|
+
Used for actions that return data without metadata.
|
|
140
|
+
"""
|
|
141
|
+
model_config = ConfigDict(extra="forbid")
|
|
142
|
+
|
|
143
|
+
data: T
|
|
144
|
+
"""Response data containing the result of the action."""
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
class AmazonAdsExecuteResultWithMeta(AmazonAdsExecuteResult[T], Generic[T, S]):
|
|
148
|
+
"""Response envelope with data and metadata.
|
|
149
|
+
|
|
150
|
+
Used for actions that return both data and metadata (e.g., pagination info).
|
|
151
|
+
"""
|
|
152
|
+
meta: S
|
|
153
|
+
"""Metadata about the response (e.g., pagination cursors, record counts)."""
|
|
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
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
# ===== OPERATION RESULT TYPE ALIASES =====
|
|
213
|
+
|
|
214
|
+
# Concrete type aliases for each operation result.
|
|
215
|
+
# These provide simpler, more readable type annotations than using the generic forms.
|
|
216
|
+
|
|
217
|
+
ProfilesListResult = AmazonAdsExecuteResult[list[Profile]]
|
|
218
|
+
"""Result type for profiles.list operation."""
|
|
219
|
+
|
|
220
|
+
PortfoliosListResult = AmazonAdsExecuteResult[dict[str, Any]]
|
|
221
|
+
"""Result type for portfolios.list operation."""
|
|
222
|
+
|
|
223
|
+
SponsoredProductCampaignsListResult = AmazonAdsExecuteResult[dict[str, Any]]
|
|
224
|
+
"""Result type for sponsored_product_campaigns.list operation."""
|
|
225
|
+
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Type definitions for amazon-ads connector.
|
|
3
|
+
"""
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
# Use typing_extensions.TypedDict for Pydantic compatibility
|
|
7
|
+
try:
|
|
8
|
+
from typing_extensions import TypedDict, NotRequired
|
|
9
|
+
except ImportError:
|
|
10
|
+
from typing import TypedDict, NotRequired # type: ignore[attr-defined]
|
|
11
|
+
|
|
12
|
+
from typing import Any, Literal
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# ===== NESTED PARAM TYPE DEFINITIONS =====
|
|
16
|
+
# Nested parameter schemas discovered during parameter extraction
|
|
17
|
+
|
|
18
|
+
class SponsoredProductCampaignsListParamsStatefilter(TypedDict):
|
|
19
|
+
"""Nested schema for SponsoredProductCampaignsListParams.stateFilter"""
|
|
20
|
+
include: NotRequired[str]
|
|
21
|
+
|
|
22
|
+
# ===== OPERATION PARAMS TYPE DEFINITIONS =====
|
|
23
|
+
|
|
24
|
+
class ProfilesListParams(TypedDict):
|
|
25
|
+
"""Parameters for profiles.list operation"""
|
|
26
|
+
profile_type_filter: NotRequired[str]
|
|
27
|
+
|
|
28
|
+
class ProfilesGetParams(TypedDict):
|
|
29
|
+
"""Parameters for profiles.get operation"""
|
|
30
|
+
profile_id: str
|
|
31
|
+
|
|
32
|
+
class PortfoliosListParams(TypedDict):
|
|
33
|
+
"""Parameters for portfolios.list operation"""
|
|
34
|
+
include_extended_data_fields: NotRequired[str]
|
|
35
|
+
|
|
36
|
+
class PortfoliosGetParams(TypedDict):
|
|
37
|
+
"""Parameters for portfolios.get operation"""
|
|
38
|
+
portfolio_id: str
|
|
39
|
+
|
|
40
|
+
class SponsoredProductCampaignsListParams(TypedDict):
|
|
41
|
+
"""Parameters for sponsored_product_campaigns.list operation"""
|
|
42
|
+
state_filter: NotRequired[SponsoredProductCampaignsListParamsStatefilter]
|
|
43
|
+
max_results: NotRequired[int]
|
|
44
|
+
next_token: NotRequired[str]
|
|
45
|
+
|
|
46
|
+
class SponsoredProductCampaignsGetParams(TypedDict):
|
|
47
|
+
"""Parameters for sponsored_product_campaigns.get operation"""
|
|
48
|
+
campaign_id: str
|
|
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]]
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: airbyte-agent-amazon-ads
|
|
3
|
+
Version: 0.1.18
|
|
4
|
+
Summary: Airbyte Amazon-Ads Connector for AI platforms
|
|
5
|
+
Project-URL: Homepage, https://github.com/airbytehq/airbyte-agent-connectors
|
|
6
|
+
Project-URL: Documentation, https://docs.airbyte.com/ai-agents/
|
|
7
|
+
Project-URL: Repository, https://github.com/airbytehq/airbyte-agent-connectors
|
|
8
|
+
Project-URL: Issues, https://github.com/airbytehq/airbyte-agent-connectors/issues
|
|
9
|
+
Author-email: Airbyte <contact@airbyte.io>
|
|
10
|
+
License: Elastic-2.0
|
|
11
|
+
Keywords: agent,ai,airbyte,amazon-ads,api,connector,data-integration,llm,mcp
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: Other/Proprietary License
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Classifier: Typing :: Typed
|
|
21
|
+
Requires-Python: >=3.13
|
|
22
|
+
Requires-Dist: httpx>=0.24.0
|
|
23
|
+
Requires-Dist: jinja2>=3.0.0
|
|
24
|
+
Requires-Dist: jsonpath-ng>=1.6.1
|
|
25
|
+
Requires-Dist: jsonref>=1.1.0
|
|
26
|
+
Requires-Dist: opentelemetry-api>=1.37.0
|
|
27
|
+
Requires-Dist: opentelemetry-sdk>=1.37.0
|
|
28
|
+
Requires-Dist: pydantic>=2.0.0
|
|
29
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
30
|
+
Requires-Dist: pyyaml>=6.0
|
|
31
|
+
Requires-Dist: segment-analytics-python>=2.2.0
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
|
|
34
|
+
# Amazon-Ads agent connector
|
|
35
|
+
|
|
36
|
+
Amazon Ads is Amazon's advertising platform that enables sellers and vendors to promote their
|
|
37
|
+
products across Amazon's marketplace. This connector provides access to advertising profiles
|
|
38
|
+
for managing and analyzing advertising campaigns across different marketplaces.
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Example questions
|
|
42
|
+
|
|
43
|
+
The Amazon-Ads connector is optimized to handle prompts like these.
|
|
44
|
+
|
|
45
|
+
- List all my advertising profiles across marketplaces
|
|
46
|
+
- Show me the profiles for my seller accounts
|
|
47
|
+
- What marketplaces do I have advertising profiles in?
|
|
48
|
+
- List all portfolios for a specific profile
|
|
49
|
+
- Show me all sponsored product campaigns
|
|
50
|
+
- What campaigns are currently enabled?
|
|
51
|
+
- Find campaigns with a specific targeting type
|
|
52
|
+
|
|
53
|
+
## Unsupported questions
|
|
54
|
+
|
|
55
|
+
The Amazon-Ads connector isn't currently able to handle prompts like these.
|
|
56
|
+
|
|
57
|
+
- Create a new advertising campaign
|
|
58
|
+
- Update my campaign budget
|
|
59
|
+
- Delete an ad group
|
|
60
|
+
- Generate a performance report
|
|
61
|
+
|
|
62
|
+
## Installation
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
uv pip install airbyte-agent-amazon-ads
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Usage
|
|
69
|
+
|
|
70
|
+
Connectors can run in open source or hosted mode.
|
|
71
|
+
|
|
72
|
+
### Open source
|
|
73
|
+
|
|
74
|
+
In open source mode, you provide API credentials directly to the connector.
|
|
75
|
+
|
|
76
|
+
```python
|
|
77
|
+
from airbyte_agent_amazon-ads import AmazonAdsConnector
|
|
78
|
+
from airbyte_agent_amazon_ads.models import AmazonAdsAuthConfig
|
|
79
|
+
|
|
80
|
+
connector = AmazonAdsConnector(
|
|
81
|
+
auth_config=AmazonAdsAuthConfig(
|
|
82
|
+
client_id="<The client ID of your Amazon Ads API application>",
|
|
83
|
+
client_secret="<The client secret of your Amazon Ads API application>",
|
|
84
|
+
refresh_token="<The refresh token obtained from the OAuth authorization flow>"
|
|
85
|
+
)
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
@agent.tool_plain # assumes you're using Pydantic AI
|
|
89
|
+
@AmazonAdsConnector.tool_utils
|
|
90
|
+
async def amazon-ads_execute(entity: str, action: str, params: dict | None = None):
|
|
91
|
+
return await connector.execute(entity, action, params or {})
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Hosted
|
|
95
|
+
|
|
96
|
+
In hosted mode, API credentials are stored securely in Airbyte Cloud. You provide your Airbyte credentials instead.
|
|
97
|
+
|
|
98
|
+
This example assumes you've already authenticated your connector with Airbyte. See [Authentication](AUTH.md) to learn more about authenticating. If you need a step-by-step guide, see the [hosted execution tutorial](https://docs.airbyte.com/ai-agents/quickstarts/tutorial-hosted).
|
|
99
|
+
|
|
100
|
+
```python
|
|
101
|
+
from airbyte_agent_amazon-ads import AmazonAdsConnector
|
|
102
|
+
|
|
103
|
+
connector = AmazonAdsConnector(
|
|
104
|
+
external_user_id="<your_external_user_id>",
|
|
105
|
+
airbyte_client_id="<your-client-id>",
|
|
106
|
+
airbyte_client_secret="<your-client-secret>"
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
@agent.tool_plain # assumes you're using Pydantic AI
|
|
110
|
+
@AmazonAdsConnector.tool_utils
|
|
111
|
+
async def amazon-ads_execute(entity: str, action: str, params: dict | None = None):
|
|
112
|
+
return await connector.execute(entity, action, params or {})
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Full documentation
|
|
116
|
+
|
|
117
|
+
### Entities and actions
|
|
118
|
+
|
|
119
|
+
This connector supports the following entities and actions. For more details, see this connector's [full reference documentation](REFERENCE.md).
|
|
120
|
+
|
|
121
|
+
| Entity | Actions |
|
|
122
|
+
|--------|---------|
|
|
123
|
+
| Profiles | [List](./REFERENCE.md#profiles-list), [Get](./REFERENCE.md#profiles-get) |
|
|
124
|
+
| Portfolios | [List](./REFERENCE.md#portfolios-list), [Get](./REFERENCE.md#portfolios-get) |
|
|
125
|
+
| Sponsored Product Campaigns | [List](./REFERENCE.md#sponsored-product-campaigns-list), [Get](./REFERENCE.md#sponsored-product-campaigns-get) |
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
### Authentication and configuration
|
|
129
|
+
|
|
130
|
+
For all authentication and configuration options, see the connector's [authentication documentation](AUTH.md).
|
|
131
|
+
|
|
132
|
+
### Amazon-Ads API docs
|
|
133
|
+
|
|
134
|
+
See the official [Amazon-Ads API reference](https://advertising.amazon.com/API/docs/en-us).
|
|
135
|
+
|
|
136
|
+
## Version information
|
|
137
|
+
|
|
138
|
+
- **Package version:** 0.1.18
|
|
139
|
+
- **Connector version:** 1.0.4
|
|
140
|
+
- **Generated with Connector SDK commit SHA:** 97007bbdad3a6ac982ee2c0cdd667acdb5c12d3c
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
airbyte_agent_amazon_ads/__init__.py,sha256=f883U_4eSRjMLgjqpi5rGcKZ0U44ME_Z0IY-XZhwlPc,1896
|
|
2
|
+
airbyte_agent_amazon_ads/connector.py,sha256=iN7jP_VemUPoTbpWcpgggUyl8S9ZZvzFYFeGNQ3UhQw,24164
|
|
3
|
+
airbyte_agent_amazon_ads/connector_model.py,sha256=EBw-dpn0Vf5NpZCxGI-pHxaB52h4e1ApHfOXKGPPuCQ,97995
|
|
4
|
+
airbyte_agent_amazon_ads/models.py,sha256=TOHCY0p3cE0rWVv3YfYvyvL-lmdYBcoGRTXtFNNBztc,9182
|
|
5
|
+
airbyte_agent_amazon_ads/types.py,sha256=EW-jvOmXyJQqe2ESiDCs7nCIIsFreDCIZBlA6aplxpA,6728
|
|
6
|
+
airbyte_agent_amazon_ads/_vendored/__init__.py,sha256=ILl7AHXMui__swyrjxrh9yRa4dLiwBvV6axPWFWty80,38
|
|
7
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/__init__.py,sha256=T5o7roU6NSpH-lCAGZ338sE5dlh4ZU6i6IkeG1zpems,1949
|
|
8
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/auth_strategies.py,sha256=5Sb9moUp623o67Q2wMa8iZldJH08y4gQdoutoO_75Iw,42088
|
|
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=AW9bsdggzuc3ydy2bYYF33L6LxLKLQer9Wm47IOuQw0,41492
|
|
11
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/constants.py,sha256=AtzOvhDMWbRJgpsQNWl5tkogHD6mWgEY668PgRmgtOY,2737
|
|
12
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/exceptions.py,sha256=ss5MGv9eVPmsbLcLWetuu3sDmvturwfo6Pw3M37Oq5k,481
|
|
13
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/extensions.py,sha256=XWRRoJOOrwUHSKbuQt5DU7CCu8ePzhd_HuP7c_uD77w,21376
|
|
14
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/http_client.py,sha256=09Fclbq4wrg38EM2Yh2kHiykQVXqdAGby024elcEz8E,28027
|
|
15
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/introspection.py,sha256=e9uWn2ofpeehoBbzNgts_bjlKLn8ayA1Y3OpDC3b7ZA,19517
|
|
16
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/secrets.py,sha256=J9ezMu4xNnLW11xY5RCre6DHP7YMKZCqwGJfk7ufHAM,6855
|
|
17
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/types.py,sha256=in8gHsn5nsScujOfHZmkOgNmqmJKiPyNNjg59m5fGWc,8807
|
|
18
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/utils.py,sha256=G4LUXOC2HzPoND2v4tQW68R9uuPX9NQyCjaGxb7Kpl0,1958
|
|
19
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/validation.py,sha256=4MPrxYmQh8TbCU0KdvvRKe35Lg1YYLEBd0u4aKySl_E,32122
|
|
20
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/__init__.py,sha256=4799Hv9f2zxDVj1aLyQ8JpTEuFTp_oOZMRz-NZCdBJg,134
|
|
21
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/client.py,sha256=YxdRpQr9XjDzih6csSseBVGn9kfMtaqbOCXP0TPuzFY,7189
|
|
22
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/__init__.py,sha256=EmG9YQNAjSuYCVB4D5VoLm4qpD1KfeiiOf7bpALj8p8,702
|
|
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=tVbfstxOrm5qJt1NawTwjhIIpDgPCC4wSrKM5eALPSQ,74064
|
|
25
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/models.py,sha256=lYVT_bNcw-PoIks4WHNyl2VY-lJVf2FntzINSOBIheE,5845
|
|
26
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/http/__init__.py,sha256=y8fbzZn-3yV9OxtYz8Dy6FFGI5v6TOqADd1G3xHH3Hw,911
|
|
27
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/http/config.py,sha256=6J7YIIwHC6sRu9i-yKa5XvArwK2KU60rlnmxzDZq3lw,3283
|
|
28
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/http/exceptions.py,sha256=eYdYmxqcwA6pgrSoRXNfR6_nRBGRH6upp2-r1jcKaZo,3586
|
|
29
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/http/protocols.py,sha256=eV7NbBIQOcPLw-iu8mtkV2zCVgScDwP0ek1SbPNQo0g,3323
|
|
30
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/http/response.py,sha256=Q-RyM5D0D05ZhmZVJk4hVpmoS8YtyXNOTM5hqBt7rWI,3475
|
|
31
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/http/adapters/__init__.py,sha256=gjbWdU4LfzUG2PETI0TkfkukdzoCAhpL6FZtIEnkO-s,209
|
|
32
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/http/adapters/httpx_adapter.py,sha256=dkYhzBWiKBmzWZlc-cRTx50Hb6fy3OI8kOQvXRfS1CQ,8465
|
|
33
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/__init__.py,sha256=IZoE5yXhwSA0m3xQqh0FiCifjp1sB3S8jnnFPuJLYf8,227
|
|
34
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/logger.py,sha256=rUdKDEQe3pOODmBLEcvhgZeEZi48BvrgKXKq1xvCXu0,8387
|
|
35
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/types.py,sha256=ONb9xKNXUkrR2lojSBMF7ruof7S2r92WjrO_kEZic84,3239
|
|
36
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/__init__.py,sha256=ojx1n9vaWCXFFvb3-90Pwtg845trFdV2v6wcCoO75Ko,269
|
|
37
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/config.py,sha256=uWvRAPHnEusVKviQQncqcpnHKNhoZ4ZoFK6nUOSVClY,5372
|
|
38
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/models.py,sha256=IRGjlJia28_IU7BMSBb5RHWs47yAOLvE20JIIXHazLY,448
|
|
39
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/redactor.py,sha256=HRbSwGxsfQYbYlG4QBVvv8Qnw0d4SMowMv0dTFHsHqQ,2361
|
|
40
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/session.py,sha256=WYRIB3bVz9HhpElkUO9CILCRIrWs9p2MR2hmf8uJm3E,3086
|
|
41
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/__init__.py,sha256=Sp5fSd1LvtIQkv-fnrKqPsM7-6IWp0sSZSK0mhzal_A,200
|
|
42
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/instrumentation.py,sha256=_dXvNiqdndIBwDjeDKNViWzn_M5FkSUsMmJtFldrmsM,1504
|
|
43
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/metrics.py,sha256=FRff7dKt4iwt_A7pxV5n9kAGBR756PC7q8-weWygPSM,2817
|
|
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=IoAucZQ0j0xTdm4VWotB636R4jsrkYnppMQhXE0uoyU,6541
|
|
46
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/components.py,sha256=nJIPieavwX3o3ODvdtLHPk84d_V229xmg6LDfwEHjzc,8119
|
|
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=5hgpFHK7fzpzegCkJk882DeIP79bCx_qairKJhvPMZ8,9590
|
|
49
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/operations.py,sha256=RpzGtAI4yvAtMHAfMUMcUwgHv_qJojnKlNb75_agUF8,5729
|
|
50
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/security.py,sha256=1CVCavrPdHHyk7B6JtUD75yRS_hWLCemZF1zwGbdqxg,9036
|
|
51
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/__init__.py,sha256=RaLgkBU4dfxn1LC5Y0Q9rr2PJbrwjxvPgBLmq8_WafE,211
|
|
52
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/config.py,sha256=tLmQwAFD0kP1WyBGWBS3ysaudN9H3e-3EopKZi6cGKg,885
|
|
53
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/events.py,sha256=8Y1NbXiwISX-V_wRofY7PqcwEXD0dLMnntKkY6XFU2s,1328
|
|
54
|
+
airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/tracker.py,sha256=Ftrk0_ddfM7dZG8hF9xBuPwhbc9D6JZ7Q9qs5o3LEyA,5579
|
|
55
|
+
airbyte_agent_amazon_ads-0.1.18.dist-info/METADATA,sha256=PfE1O17uqZ97g8e1YNX7zAon367Q0q00h_10uK_uHHs,5192
|
|
56
|
+
airbyte_agent_amazon_ads-0.1.18.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
57
|
+
airbyte_agent_amazon_ads-0.1.18.dist-info/RECORD,,
|