airbyte-agent-amazon-ads 0.1.12__tar.gz → 0.1.17__tar.gz
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-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/AUTH.md +19 -4
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/CHANGELOG.md +25 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/PKG-INFO +12 -9
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/README.md +11 -8
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/REFERENCE.md +0 -1
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/connector_model_loader.py +0 -8
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http_client.py +1 -1
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/introspection.py +12 -5
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/security.py +0 -1
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/connector.py +7 -2
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/connector_model.py +1 -4
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/pyproject.toml +1 -1
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/.gitignore +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/auth_strategies.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/auth_template.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/client.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/constants.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/exceptions.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/hosted_executor.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/local_executor.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/models.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/extensions.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/adapters/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/adapters/httpx_adapter.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/config.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/exceptions.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/protocols.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/response.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/logger.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/types.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/config.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/models.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/redactor.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/session.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/instrumentation.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/metrics.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/base.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/components.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/connector.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/extensions.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/operations.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/secrets.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/config.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/events.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/tracker.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/types.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/utils.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/_vendored/connector_sdk/validation.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/models.py +0 -0
- {airbyte_agent_amazon_ads-0.1.12 → airbyte_agent_amazon_ads-0.1.17}/airbyte_agent_amazon_ads/types.py +0 -0
|
@@ -10,12 +10,17 @@ In open source mode, you provide API credentials directly to the connector.
|
|
|
10
10
|
|
|
11
11
|
#### OAuth
|
|
12
12
|
|
|
13
|
+
`credentials` fields you need:
|
|
14
|
+
|
|
15
|
+
|
|
13
16
|
| Field Name | Type | Required | Description |
|
|
14
17
|
|------------|------|----------|-------------|
|
|
15
18
|
| `client_id` | `str` | Yes | The client ID of your Amazon Ads API application |
|
|
16
19
|
| `client_secret` | `str` | Yes | The client secret of your Amazon Ads API application |
|
|
17
20
|
| `refresh_token` | `str` | Yes | The refresh token obtained from the OAuth authorization flow |
|
|
18
21
|
|
|
22
|
+
Example request:
|
|
23
|
+
|
|
19
24
|
```python
|
|
20
25
|
from airbyte_agent_amazon-ads import AmazonAdsConnector
|
|
21
26
|
from airbyte_agent_amazon-ads.models import AmazonAdsAuthConfig
|
|
@@ -37,13 +42,23 @@ This authentication method isn't available for this connector.
|
|
|
37
42
|
In hosted mode, you first create a connector via the Airbyte API (providing your OAuth or Token credentials), then execute operations using either the Python SDK or API. If you need a step-by-step guide, see the [hosted execution tutorial](https://docs.airbyte.com/ai-agents/quickstarts/tutorial-hosted).
|
|
38
43
|
|
|
39
44
|
#### OAuth
|
|
45
|
+
Create a connector with OAuth credentials.
|
|
46
|
+
|
|
47
|
+
`credentials` fields you need:
|
|
40
48
|
|
|
41
|
-
|
|
49
|
+
|
|
50
|
+
| Field Name | Type | Required | Description |
|
|
51
|
+
|------------|------|----------|-------------|
|
|
52
|
+
| `client_id` | `str` | Yes | The client ID of your Amazon Ads API application |
|
|
53
|
+
| `client_secret` | `str` | Yes | The client secret of your Amazon Ads API application |
|
|
54
|
+
| `refresh_token` | `str` | Yes | The refresh token obtained from the OAuth authorization flow |
|
|
55
|
+
|
|
56
|
+
Example request:
|
|
42
57
|
|
|
43
58
|
```bash
|
|
44
|
-
curl -X POST
|
|
45
|
-
-H
|
|
46
|
-
-H
|
|
59
|
+
curl -X POST "https://api.airbyte.ai/v1/integrations/connectors" \
|
|
60
|
+
-H "Authorization: Bearer <SCOPED_TOKEN>" \
|
|
61
|
+
-H "Content-Type: application/json" \
|
|
47
62
|
-d '{
|
|
48
63
|
"external_user_id": "<EXTERNAL_USER_ID>",
|
|
49
64
|
"connector_type": "Amazon-Ads",
|
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Amazon Ads changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.17] - 2026-01-28
|
|
4
|
+
- Updated connector definition (YAML version 1.0.4)
|
|
5
|
+
- Source commit: f6c6fca2
|
|
6
|
+
- SDK version: 0.1.0
|
|
7
|
+
|
|
8
|
+
## [0.1.16] - 2026-01-28
|
|
9
|
+
- Updated connector definition (YAML version 1.0.4)
|
|
10
|
+
- Source commit: 71f48c10
|
|
11
|
+
- SDK version: 0.1.0
|
|
12
|
+
|
|
13
|
+
## [0.1.15] - 2026-01-27
|
|
14
|
+
- Updated connector definition (YAML version 1.0.4)
|
|
15
|
+
- Source commit: 0f5e1914
|
|
16
|
+
- SDK version: 0.1.0
|
|
17
|
+
|
|
18
|
+
## [0.1.14] - 2026-01-27
|
|
19
|
+
- Updated connector definition (YAML version 1.0.4)
|
|
20
|
+
- Source commit: a01f6b16
|
|
21
|
+
- SDK version: 0.1.0
|
|
22
|
+
|
|
23
|
+
## [0.1.13] - 2026-01-27
|
|
24
|
+
- Updated connector definition (YAML version 1.0.4)
|
|
25
|
+
- Source commit: c9b05509
|
|
26
|
+
- SDK version: 0.1.0
|
|
27
|
+
|
|
3
28
|
## [0.1.12] - 2026-01-27
|
|
4
29
|
- Updated connector definition (YAML version 1.0.3)
|
|
5
30
|
- Source commit: 4bded58d
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: airbyte-agent-amazon-ads
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.17
|
|
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/
|
|
@@ -112,10 +112,11 @@ async def amazon-ads_execute(entity: str, action: str, params: dict | None = Non
|
|
|
112
112
|
return await connector.execute(entity, action, params or {})
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
-
|
|
116
115
|
## Full documentation
|
|
117
116
|
|
|
118
|
-
|
|
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).
|
|
119
120
|
|
|
120
121
|
| Entity | Actions |
|
|
121
122
|
|--------|---------|
|
|
@@ -124,14 +125,16 @@ This connector supports the following entities and actions.
|
|
|
124
125
|
| Sponsored Product Campaigns | [List](./REFERENCE.md#sponsored-product-campaigns-list), [Get](./REFERENCE.md#sponsored-product-campaigns-get) |
|
|
125
126
|
|
|
126
127
|
|
|
127
|
-
|
|
128
|
+
### Authentication and configuration
|
|
129
|
+
|
|
130
|
+
For all authentication and configuration options, see the connector's [authentication documentation](AUTH.md).
|
|
128
131
|
|
|
129
|
-
|
|
132
|
+
### Amazon-Ads API docs
|
|
130
133
|
|
|
131
|
-
|
|
134
|
+
See the official [Amazon-Ads API reference](https://advertising.amazon.com/API/docs/en-us).
|
|
132
135
|
|
|
133
136
|
## Version information
|
|
134
137
|
|
|
135
|
-
- **Package version:** 0.1.
|
|
136
|
-
- **Connector version:** 1.0.
|
|
137
|
-
- **Generated with Connector SDK commit SHA:**
|
|
138
|
+
- **Package version:** 0.1.17
|
|
139
|
+
- **Connector version:** 1.0.4
|
|
140
|
+
- **Generated with Connector SDK commit SHA:** f6c6fca292b291b200b31e4056856465129ae703
|
|
@@ -79,10 +79,11 @@ async def amazon-ads_execute(entity: str, action: str, params: dict | None = Non
|
|
|
79
79
|
return await connector.execute(entity, action, params or {})
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
|
|
83
82
|
## Full documentation
|
|
84
83
|
|
|
85
|
-
|
|
84
|
+
### Entities and actions
|
|
85
|
+
|
|
86
|
+
This connector supports the following entities and actions. For more details, see this connector's [full reference documentation](REFERENCE.md).
|
|
86
87
|
|
|
87
88
|
| Entity | Actions |
|
|
88
89
|
|--------|---------|
|
|
@@ -91,14 +92,16 @@ This connector supports the following entities and actions.
|
|
|
91
92
|
| Sponsored Product Campaigns | [List](./REFERENCE.md#sponsored-product-campaigns-list), [Get](./REFERENCE.md#sponsored-product-campaigns-get) |
|
|
92
93
|
|
|
93
94
|
|
|
94
|
-
|
|
95
|
+
### Authentication and configuration
|
|
96
|
+
|
|
97
|
+
For all authentication and configuration options, see the connector's [authentication documentation](AUTH.md).
|
|
95
98
|
|
|
96
|
-
|
|
99
|
+
### Amazon-Ads API docs
|
|
97
100
|
|
|
98
|
-
|
|
101
|
+
See the official [Amazon-Ads API reference](https://advertising.amazon.com/API/docs/en-us).
|
|
99
102
|
|
|
100
103
|
## Version information
|
|
101
104
|
|
|
102
|
-
- **Package version:** 0.1.
|
|
103
|
-
- **Connector version:** 1.0.
|
|
104
|
-
- **Generated with Connector SDK commit SHA:**
|
|
105
|
+
- **Package version:** 0.1.17
|
|
106
|
+
- **Connector version:** 1.0.4
|
|
107
|
+
- **Generated with Connector SDK commit SHA:** f6c6fca292b291b200b31e4056856465129ae703
|
|
@@ -758,7 +758,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
|
|
|
758
758
|
description="Authentication bearer token",
|
|
759
759
|
format=None,
|
|
760
760
|
pattern=None,
|
|
761
|
-
airbyte_secret=False,
|
|
762
761
|
default=None,
|
|
763
762
|
)
|
|
764
763
|
},
|
|
@@ -778,7 +777,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
|
|
|
778
777
|
description="Authentication username",
|
|
779
778
|
format=None,
|
|
780
779
|
pattern=None,
|
|
781
|
-
airbyte_secret=False,
|
|
782
780
|
default=None,
|
|
783
781
|
),
|
|
784
782
|
"password": AuthConfigFieldSpec(
|
|
@@ -787,7 +785,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
|
|
|
787
785
|
description="Authentication password",
|
|
788
786
|
format=None,
|
|
789
787
|
pattern=None,
|
|
790
|
-
airbyte_secret=False,
|
|
791
788
|
default=None,
|
|
792
789
|
),
|
|
793
790
|
},
|
|
@@ -807,7 +804,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
|
|
|
807
804
|
description="API authentication key",
|
|
808
805
|
format=None,
|
|
809
806
|
pattern=None,
|
|
810
|
-
airbyte_secret=False,
|
|
811
807
|
default=None,
|
|
812
808
|
)
|
|
813
809
|
},
|
|
@@ -832,7 +828,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
|
|
|
832
828
|
description="OAuth2 access token",
|
|
833
829
|
format=None,
|
|
834
830
|
pattern=None,
|
|
835
|
-
airbyte_secret=False,
|
|
836
831
|
default=None,
|
|
837
832
|
),
|
|
838
833
|
"refresh_token": AuthConfigFieldSpec(
|
|
@@ -841,7 +836,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
|
|
|
841
836
|
description="OAuth2 refresh token (optional)",
|
|
842
837
|
format=None,
|
|
843
838
|
pattern=None,
|
|
844
|
-
airbyte_secret=False,
|
|
845
839
|
default=None,
|
|
846
840
|
),
|
|
847
841
|
"client_id": AuthConfigFieldSpec(
|
|
@@ -850,7 +844,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
|
|
|
850
844
|
description="OAuth2 client ID (optional)",
|
|
851
845
|
format=None,
|
|
852
846
|
pattern=None,
|
|
853
|
-
airbyte_secret=False,
|
|
854
847
|
default=None,
|
|
855
848
|
),
|
|
856
849
|
"client_secret": AuthConfigFieldSpec(
|
|
@@ -859,7 +852,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
|
|
|
859
852
|
description="OAuth2 client secret (optional)",
|
|
860
853
|
format=None,
|
|
861
854
|
pattern=None,
|
|
862
|
-
airbyte_secret=False,
|
|
863
855
|
default=None,
|
|
864
856
|
),
|
|
865
857
|
},
|
|
@@ -490,7 +490,7 @@ class HTTPClient:
|
|
|
490
490
|
|
|
491
491
|
if not response_text.strip():
|
|
492
492
|
response_data = {}
|
|
493
|
-
elif "application/json" in content_type or not content_type:
|
|
493
|
+
elif "application/json" in content_type or "+json" in content_type or not content_type:
|
|
494
494
|
response_data = await response.json()
|
|
495
495
|
else:
|
|
496
496
|
error_msg = f"Expected JSON response for {method.upper()} {url}, got content-type: {content_type}"
|
|
@@ -380,7 +380,11 @@ def describe_entities(model: ConnectorModelProtocol) -> list[dict[str, Any]]:
|
|
|
380
380
|
return entities
|
|
381
381
|
|
|
382
382
|
|
|
383
|
-
def generate_tool_description(
|
|
383
|
+
def generate_tool_description(
|
|
384
|
+
model: ConnectorModelProtocol,
|
|
385
|
+
*,
|
|
386
|
+
enable_hosted_mode_features: bool = True,
|
|
387
|
+
) -> str:
|
|
384
388
|
"""Generate AI tool description from connector metadata.
|
|
385
389
|
|
|
386
390
|
Produces a detailed description that includes:
|
|
@@ -393,6 +397,7 @@ def generate_tool_description(model: ConnectorModelProtocol) -> str:
|
|
|
393
397
|
|
|
394
398
|
Args:
|
|
395
399
|
model: Object conforming to ConnectorModelProtocol (e.g., ConnectorModel)
|
|
400
|
+
enable_hosted_mode_features: When False, omit hosted-mode search guidance from the docstring.
|
|
396
401
|
|
|
397
402
|
Returns:
|
|
398
403
|
Formatted description string suitable for AI tool documentation
|
|
@@ -402,8 +407,9 @@ def generate_tool_description(model: ConnectorModelProtocol) -> str:
|
|
|
402
407
|
# at the first empty line and only keeps the initial section.
|
|
403
408
|
|
|
404
409
|
# Entity/action parameter details (including pagination params like limit, starting_after)
|
|
405
|
-
search_field_paths = _collect_search_field_paths(model)
|
|
406
|
-
|
|
410
|
+
search_field_paths = _collect_search_field_paths(model) if enable_hosted_mode_features else {}
|
|
411
|
+
# Avoid a "PARAMETERS:" header because some docstring parsers treat it as a params section marker.
|
|
412
|
+
lines.append("ENTITIES (ACTIONS + PARAMS):")
|
|
407
413
|
for entity in model.entities:
|
|
408
414
|
lines.append(f" {entity.name}:")
|
|
409
415
|
actions = getattr(entity, "actions", []) or []
|
|
@@ -427,8 +433,9 @@ def generate_tool_description(model: ConnectorModelProtocol) -> str:
|
|
|
427
433
|
lines.append(" To paginate: pass starting_after=<last_id> while has_more is true")
|
|
428
434
|
|
|
429
435
|
lines.append("GUIDELINES:")
|
|
430
|
-
|
|
431
|
-
|
|
436
|
+
if enable_hosted_mode_features:
|
|
437
|
+
lines.append(' - Prefer cached search over direct API calls when using execute(): action="search" whenever possible.')
|
|
438
|
+
lines.append(" - Direct API actions (list/get/download) are slower and should be used only if search cannot answer the query.")
|
|
432
439
|
lines.append(" - Keep results small: use params.fields, params.query.filter, small params.limit, and cursor pagination.")
|
|
433
440
|
lines.append(" - If output is too large, refine the query with tighter filters/fields/limit.")
|
|
434
441
|
|
|
@@ -55,7 +55,6 @@ class AuthConfigFieldSpec(BaseModel):
|
|
|
55
55
|
description: str | None = None
|
|
56
56
|
format: str | None = None # e.g., "email", "uri"
|
|
57
57
|
pattern: str | None = None # Regex validation
|
|
58
|
-
airbyte_secret: bool = Field(False, alias="airbyte_secret")
|
|
59
58
|
default: Any | None = None
|
|
60
59
|
|
|
61
60
|
|
|
@@ -91,7 +91,7 @@ class AmazonAdsConnector:
|
|
|
91
91
|
"""
|
|
92
92
|
|
|
93
93
|
connector_name = "amazon-ads"
|
|
94
|
-
connector_version = "1.0.
|
|
94
|
+
connector_version = "1.0.4"
|
|
95
95
|
vendored_sdk_version = "0.1.0" # Version of vendored connector-sdk
|
|
96
96
|
|
|
97
97
|
# Map of (entity, action) -> needs_envelope for envelope wrapping decision
|
|
@@ -338,6 +338,7 @@ class AmazonAdsConnector:
|
|
|
338
338
|
func: _F | None = None,
|
|
339
339
|
*,
|
|
340
340
|
update_docstring: bool = True,
|
|
341
|
+
enable_hosted_mode_features: bool = True,
|
|
341
342
|
max_output_chars: int | None = DEFAULT_MAX_OUTPUT_CHARS,
|
|
342
343
|
) -> _F | Callable[[_F], _F]:
|
|
343
344
|
"""
|
|
@@ -356,12 +357,16 @@ class AmazonAdsConnector:
|
|
|
356
357
|
|
|
357
358
|
Args:
|
|
358
359
|
update_docstring: When True, append connector capabilities to __doc__.
|
|
360
|
+
enable_hosted_mode_features: When False, omit hosted-mode search sections from docstrings.
|
|
359
361
|
max_output_chars: Max serialized output size before raising. Use None to disable.
|
|
360
362
|
"""
|
|
361
363
|
|
|
362
364
|
def decorate(inner: _F) -> _F:
|
|
363
365
|
if update_docstring:
|
|
364
|
-
description = generate_tool_description(
|
|
366
|
+
description = generate_tool_description(
|
|
367
|
+
AmazonAdsConnectorModel,
|
|
368
|
+
enable_hosted_mode_features=enable_hosted_mode_features,
|
|
369
|
+
)
|
|
365
370
|
original_doc = inner.__doc__ or ""
|
|
366
371
|
if original_doc.strip():
|
|
367
372
|
full_doc = f"{original_doc.strip()}\n{description}"
|
|
@@ -26,7 +26,7 @@ from uuid import (
|
|
|
26
26
|
AmazonAdsConnectorModel: ConnectorModel = ConnectorModel(
|
|
27
27
|
id=UUID('c6b0a29e-1da9-4512-9002-7bfd0cba2246'),
|
|
28
28
|
name='amazon-ads',
|
|
29
|
-
version='1.0.
|
|
29
|
+
version='1.0.4',
|
|
30
30
|
base_url='{region}',
|
|
31
31
|
auth=AuthConfig(
|
|
32
32
|
type=AuthType.OAUTH2,
|
|
@@ -44,17 +44,14 @@ AmazonAdsConnectorModel: ConnectorModel = ConnectorModel(
|
|
|
44
44
|
'client_id': AuthConfigFieldSpec(
|
|
45
45
|
title='Client ID',
|
|
46
46
|
description='The client ID of your Amazon Ads API application',
|
|
47
|
-
airbyte_secret=True,
|
|
48
47
|
),
|
|
49
48
|
'client_secret': AuthConfigFieldSpec(
|
|
50
49
|
title='Client Secret',
|
|
51
50
|
description='The client secret of your Amazon Ads API application',
|
|
52
|
-
airbyte_secret=True,
|
|
53
51
|
),
|
|
54
52
|
'refresh_token': AuthConfigFieldSpec(
|
|
55
53
|
title='Refresh Token',
|
|
56
54
|
description='The refresh token obtained from the OAuth authorization flow',
|
|
57
|
-
airbyte_secret=True,
|
|
58
55
|
),
|
|
59
56
|
},
|
|
60
57
|
auth_mapping={
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|