airbyte-agent-amazon-ads 0.1.27__tar.gz → 0.1.28__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.
Files changed (62) hide show
  1. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/CHANGELOG.md +5 -0
  2. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/PKG-INFO +3 -3
  3. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/README.md +2 -2
  4. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/connector_model_loader.py +0 -5
  5. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/local_executor.py +1 -10
  6. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/__init__.py +0 -2
  7. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/extensions.py +22 -2
  8. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/security.py +11 -56
  9. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/pyproject.toml +1 -1
  10. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/.gitignore +0 -0
  11. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/AUTH.md +0 -0
  12. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/REFERENCE.md +0 -0
  13. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/__init__.py +0 -0
  14. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/__init__.py +0 -0
  15. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/__init__.py +0 -0
  16. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/auth_strategies.py +0 -0
  17. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/auth_template.py +0 -0
  18. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/__init__.py +0 -0
  19. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/client.py +0 -0
  20. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/constants.py +0 -0
  21. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/exceptions.py +0 -0
  22. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/__init__.py +0 -0
  23. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/hosted_executor.py +0 -0
  24. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/models.py +0 -0
  25. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/extensions.py +0 -0
  26. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/__init__.py +0 -0
  27. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/adapters/__init__.py +0 -0
  28. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/adapters/httpx_adapter.py +0 -0
  29. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/config.py +0 -0
  30. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/exceptions.py +0 -0
  31. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/protocols.py +0 -0
  32. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/response.py +0 -0
  33. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http_client.py +0 -0
  34. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/introspection.py +0 -0
  35. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/__init__.py +0 -0
  36. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/logger.py +0 -0
  37. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/types.py +0 -0
  38. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/__init__.py +0 -0
  39. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/config.py +0 -0
  40. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/models.py +0 -0
  41. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/redactor.py +0 -0
  42. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/session.py +0 -0
  43. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/__init__.py +0 -0
  44. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/instrumentation.py +0 -0
  45. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/metrics.py +0 -0
  46. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/base.py +0 -0
  47. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/components.py +0 -0
  48. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/connector.py +0 -0
  49. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/operations.py +0 -0
  50. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/secrets.py +0 -0
  51. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/__init__.py +0 -0
  52. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/config.py +0 -0
  53. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/events.py +0 -0
  54. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/tracker.py +0 -0
  55. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/types.py +0 -0
  56. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/utils.py +0 -0
  57. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/validation.py +0 -0
  58. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/_vendored/connector_sdk/validation_replication.py +0 -0
  59. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/connector.py +0 -0
  60. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/connector_model.py +0 -0
  61. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/models.py +0 -0
  62. {airbyte_agent_amazon_ads-0.1.27 → airbyte_agent_amazon_ads-0.1.28}/airbyte_agent_amazon_ads/types.py +0 -0
@@ -1,5 +1,10 @@
1
1
  # Amazon Ads changelog
2
2
 
3
+ ## [0.1.28] - 2026-02-03
4
+ - Updated connector definition (YAML version 1.0.6)
5
+ - Source commit: 5c6dbf88
6
+ - SDK version: 0.1.0
7
+
3
8
  ## [0.1.27] - 2026-02-03
4
9
  - Updated connector definition (YAML version 1.0.6)
5
10
  - Source commit: 888d0538
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-agent-amazon-ads
3
- Version: 0.1.27
3
+ Version: 0.1.28
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/
@@ -135,7 +135,7 @@ See the official [Amazon-Ads API reference](https://advertising.amazon.com/API/d
135
135
 
136
136
  ## Version information
137
137
 
138
- - **Package version:** 0.1.27
138
+ - **Package version:** 0.1.28
139
139
  - **Connector version:** 1.0.6
140
- - **Generated with Connector SDK commit SHA:** 888d0538a17d95c6769f63dbad90e713de97c89b
140
+ - **Generated with Connector SDK commit SHA:** 5c6dbf883d3b057550333775bd83a78777527017
141
141
  - **Changelog:** [View changelog](https://github.com/airbytehq/airbyte-agent-connectors/blob/main/connectors/amazon-ads/CHANGELOG.md)
@@ -102,7 +102,7 @@ See the official [Amazon-Ads API reference](https://advertising.amazon.com/API/d
102
102
 
103
103
  ## Version information
104
104
 
105
- - **Package version:** 0.1.27
105
+ - **Package version:** 0.1.28
106
106
  - **Connector version:** 1.0.6
107
- - **Generated with Connector SDK commit SHA:** 888d0538a17d95c6769f63dbad90e713de97c89b
107
+ - **Generated with Connector SDK commit SHA:** 5c6dbf883d3b057550333775bd83a78777527017
108
108
  - **Changelog:** [View changelog](https://github.com/airbytehq/airbyte-agent-connectors/blob/main/connectors/amazon-ads/CHANGELOG.md)
@@ -766,7 +766,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
766
766
  )
767
767
  },
768
768
  auth_mapping={"token": "${token}"},
769
- oneOf=None,
770
769
  )
771
770
  elif auth_type == AuthType.BASIC:
772
771
  return AirbyteAuthConfig(
@@ -793,7 +792,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
793
792
  ),
794
793
  },
795
794
  auth_mapping={"username": "${username}", "password": "${password}"},
796
- oneOf=None,
797
795
  )
798
796
  elif auth_type == AuthType.API_KEY:
799
797
  return AirbyteAuthConfig(
@@ -812,7 +810,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
812
810
  )
813
811
  },
814
812
  auth_mapping={"api_key": "${api_key}"},
815
- oneOf=None,
816
813
  )
817
814
  elif auth_type == AuthType.OAUTH2:
818
815
  # OAuth2: No fields are strictly required to support both modes:
@@ -865,7 +862,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
865
862
  "client_id": "${client_id}",
866
863
  "client_secret": "${client_secret}",
867
864
  },
868
- oneOf=None,
869
865
  )
870
866
  else:
871
867
  # Unknown auth type - return minimal config
@@ -876,7 +872,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
876
872
  required=None,
877
873
  properties={},
878
874
  auth_mapping={},
879
- oneOf=None,
880
875
  )
881
876
 
882
877
 
@@ -261,19 +261,10 @@ class LocalExecutor:
261
261
  auth_mapping = None
262
262
  required_fields: list[str] | None = None
263
263
 
264
- # Check for single option (direct auth_mapping)
264
+ # Get auth_mapping from the config
265
265
  if user_config_spec.auth_mapping:
266
266
  auth_mapping = user_config_spec.auth_mapping
267
267
  required_fields = user_config_spec.required
268
- # Check for oneOf (multiple auth options)
269
- elif user_config_spec.one_of:
270
- # Find the matching option based on which required fields are present
271
- for option in user_config_spec.one_of:
272
- option_required = option.required or []
273
- if all(field in user_secrets for field in option_required):
274
- auth_mapping = option.auth_mapping
275
- required_fields = option_required
276
- break
277
268
 
278
269
  if not auth_mapping:
279
270
  # No matching auth_mapping found, use secrets as-is
@@ -31,7 +31,6 @@ from .operations import Operation, PathItem
31
31
  from .security import (
32
32
  AirbyteAuthConfig,
33
33
  AuthConfigFieldSpec,
34
- AuthConfigOption,
35
34
  OAuth2Flow,
36
35
  OAuth2Flows,
37
36
  SecurityRequirement,
@@ -55,7 +54,6 @@ __all__ = [
55
54
  "OAuth2Flow",
56
55
  "OAuth2Flows",
57
56
  "AirbyteAuthConfig",
58
- "AuthConfigOption",
59
57
  "AuthConfigFieldSpec",
60
58
  # Component models
61
59
  "Components",
@@ -182,12 +182,25 @@ class CacheEntityConfig(BaseModel):
182
182
  return self.x_airbyte_name or self.entity
183
183
 
184
184
 
185
+ class ReplicationConfigPropertyItems(BaseModel):
186
+ """
187
+ Items definition for array-type replication configuration fields.
188
+
189
+ Defines the schema for items in an array-type replication config property.
190
+ """
191
+
192
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
193
+
194
+ type: str
195
+
196
+
185
197
  class ReplicationConfigProperty(BaseModel):
186
198
  """
187
199
  Property definition for replication configuration fields.
188
200
 
189
201
  Defines a single field in the replication configuration with its type,
190
- description, and optional default value.
202
+ description, and optional default value. Supports both simple types
203
+ (string, integer, boolean) and array types.
191
204
 
192
205
  Example YAML usage:
193
206
  x-airbyte-replication-config:
@@ -197,6 +210,12 @@ class ReplicationConfigProperty(BaseModel):
197
210
  title: Start Date
198
211
  description: UTC date and time from which to replicate data
199
212
  format: date-time
213
+ account_ids:
214
+ type: array
215
+ title: Account IDs
216
+ description: List of account IDs to replicate
217
+ items:
218
+ type: string
200
219
  """
201
220
 
202
221
  model_config = ConfigDict(populate_by_name=True, extra="forbid")
@@ -205,8 +224,9 @@ class ReplicationConfigProperty(BaseModel):
205
224
  title: str | None = None
206
225
  description: str | None = None
207
226
  format: str | None = None
208
- default: str | int | float | bool | None = None
227
+ default: str | int | float | bool | list | None = None
209
228
  enum: list[str] | None = None
229
+ items: ReplicationConfigPropertyItems | None = None
210
230
 
211
231
 
212
232
  class ReplicationConfig(BaseModel):
@@ -58,45 +58,6 @@ class AuthConfigFieldSpec(BaseModel):
58
58
  default: Any | None = None
59
59
 
60
60
 
61
- class AuthConfigOption(BaseModel):
62
- """
63
- A single authentication configuration option.
64
-
65
- Defines user-facing fields and how they map to auth parameters.
66
- """
67
-
68
- model_config = ConfigDict(populate_by_name=True, extra="forbid")
69
-
70
- title: str | None = None
71
- description: str | None = None
72
- type: Literal["object"] = "object"
73
- required: List[str] = Field(default_factory=list)
74
- properties: Dict[str, AuthConfigFieldSpec] = Field(default_factory=dict)
75
- auth_mapping: Dict[str, str] = Field(
76
- default_factory=dict,
77
- description="Mapping from auth parameters (e.g., 'username', 'password', 'token') to template strings using ${field} syntax",
78
- )
79
- replication_auth_key_mapping: Dict[str, str] | None = Field(
80
- None,
81
- description="Mapping from source config paths (e.g., 'credentials.api_key') to auth config keys for direct connectors",
82
- )
83
-
84
- @model_validator(mode="after")
85
- def validate_replication_auth_key_mapping(self) -> "AuthConfigOption":
86
- """Validate that replication_auth_key_mapping target keys exist in properties."""
87
- if self.replication_auth_key_mapping and self.properties:
88
- property_names = set(self.properties.keys())
89
- for airbyte_path, our_key in self.replication_auth_key_mapping.items():
90
- if our_key not in property_names:
91
- option_context = f"oneOf option '{self.title}'" if self.title else "oneOf option"
92
- available = ", ".join(sorted(property_names)) if property_names else "(none)"
93
- raise ValueError(
94
- f"replication_auth_key_mapping in {option_context}: target key '{our_key}' "
95
- f"(mapped from '{airbyte_path}') not found in properties. Available: {available}"
96
- )
97
- return self
98
-
99
-
100
61
  class AirbyteAuthConfig(BaseModel):
101
62
  """
102
63
  Airbyte auth configuration extension (x-airbyte-auth-config).
@@ -104,12 +65,12 @@ class AirbyteAuthConfig(BaseModel):
104
65
  Defines user-facing authentication configuration and how it maps to
105
66
  the underlying OpenAPI security scheme.
106
67
 
107
- Either a single auth option or multiple options via oneOf.
68
+ For multiple authentication methods, define separate security schemes
69
+ rather than using oneOf within a single scheme.
108
70
  """
109
71
 
110
72
  model_config = ConfigDict(populate_by_name=True, extra="forbid")
111
73
 
112
- # Single option fields
113
74
  title: str | None = None
114
75
  description: str | None = None
115
76
  type: Literal["object"] | None = None
@@ -137,29 +98,23 @@ class AirbyteAuthConfig(BaseModel):
137
98
  None,
138
99
  description="Constant values to always inject at source config paths (e.g., 'credentials.auth_type': 'OAuth2.0')",
139
100
  )
140
- # Multiple options (oneOf)
141
- one_of: List[AuthConfigOption] | None = Field(None, alias="oneOf")
142
101
 
143
102
  @model_validator(mode="after")
144
103
  def validate_config_structure(self) -> "AirbyteAuthConfig":
145
- """Validate that either single option or oneOf is provided, not both."""
146
- has_single = self.type is not None or self.properties is not None or self.auth_mapping is not None
147
- has_one_of = self.one_of is not None and len(self.one_of) > 0
148
-
149
- if not has_single and not has_one_of:
150
- raise ValueError("Either single auth option (type/properties/auth_mapping) or oneOf must be provided")
104
+ """Validate that required fields are provided for auth config."""
105
+ has_config = self.type is not None or self.properties is not None or self.auth_mapping is not None
151
106
 
152
- if has_single and has_one_of:
153
- raise ValueError("Cannot have both single auth option and oneOf")
107
+ if not has_config:
108
+ raise ValueError("Auth config must have type, properties, and auth_mapping")
154
109
 
155
- if has_single:
156
- # Validate single option has required fields
110
+ if has_config:
111
+ # Validate required fields
157
112
  if self.type != "object":
158
- raise ValueError("Single auth option must have type='object'")
113
+ raise ValueError("Auth config must have type='object'")
159
114
  if not self.properties:
160
- raise ValueError("Single auth option must have properties")
115
+ raise ValueError("Auth config must have properties")
161
116
  if not self.auth_mapping:
162
- raise ValueError("Single auth option must have auth_mapping")
117
+ raise ValueError("Auth config must have auth_mapping")
163
118
 
164
119
  # Validate replication_auth_key_mapping targets exist in properties
165
120
  if self.replication_auth_key_mapping and self.properties:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "airbyte-agent-amazon-ads"
3
- version = "0.1.27"
3
+ version = "0.1.28"
4
4
  description = "Airbyte Amazon-Ads Connector for AI platforms"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13"