airbyte-agent-facebook-marketing 0.1.2__py3-none-any.whl → 0.1.6__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.
@@ -48,6 +48,7 @@ from .types import (
48
48
  )
49
49
  if TYPE_CHECKING:
50
50
  from .models import FacebookMarketingAuthConfig
51
+
51
52
  # Import response models and envelope models at runtime
52
53
  from .models import (
53
54
  FacebookMarketingCheckResult,
@@ -134,7 +135,7 @@ class FacebookMarketingConnector:
134
135
  """
135
136
 
136
137
  connector_name = "facebook-marketing"
137
- connector_version = "1.0.1"
138
+ connector_version = "1.0.3"
138
139
  vendored_sdk_version = "0.1.0" # Version of vendored connector-sdk
139
140
 
140
141
  # Map of (entity, action) -> needs_envelope for envelope wrapping decision
@@ -174,26 +175,35 @@ class FacebookMarketingConnector:
174
175
  external_user_id: str | None = None,
175
176
  airbyte_client_id: str | None = None,
176
177
  airbyte_client_secret: str | None = None,
178
+ connector_id: str | None = None,
177
179
  on_token_refresh: Any | None = None ):
178
180
  """
179
181
  Initialize a new facebook-marketing connector instance.
180
182
 
181
183
  Supports both local and hosted execution modes:
182
184
  - Local mode: Provide `auth_config` for direct API calls
183
- - Hosted mode: Provide `external_user_id`, `airbyte_client_id`, and `airbyte_client_secret` for hosted execution
185
+ - Hosted mode: Provide Airbyte credentials with either `connector_id` or `external_user_id`
184
186
 
185
187
  Args:
186
188
  auth_config: Typed authentication configuration (required for local mode)
187
- external_user_id: External user ID (required for hosted mode)
189
+ external_user_id: External user ID (for hosted mode lookup)
188
190
  airbyte_client_id: Airbyte OAuth client ID (required for hosted mode)
189
191
  airbyte_client_secret: Airbyte OAuth client secret (required for hosted mode)
192
+ connector_id: Specific connector/source ID (for hosted mode, skips lookup)
190
193
  on_token_refresh: Optional callback for OAuth2 token refresh persistence.
191
194
  Called with new_tokens dict when tokens are refreshed. Can be sync or async.
192
195
  Example: lambda tokens: save_to_database(tokens)
193
196
  Examples:
194
197
  # Local mode (direct API calls)
195
- connector = FacebookMarketingConnector(auth_config=FacebookMarketingAuthConfig(access_token="...", account_id="..."))
196
- # Hosted mode (executed on Airbyte cloud)
198
+ connector = FacebookMarketingConnector(auth_config=FacebookMarketingAuthConfig(access_token="...", client_id="...", client_secret="...", account_id="..."))
199
+ # Hosted mode with explicit connector_id (no lookup needed)
200
+ connector = FacebookMarketingConnector(
201
+ airbyte_client_id="client_abc123",
202
+ airbyte_client_secret="secret_xyz789",
203
+ connector_id="existing-source-uuid"
204
+ )
205
+
206
+ # Hosted mode with lookup by external_user_id
197
207
  connector = FacebookMarketingConnector(
198
208
  external_user_id="user-123",
199
209
  airbyte_client_id="client_abc123",
@@ -211,21 +221,24 @@ class FacebookMarketingConnector:
211
221
  on_token_refresh=save_tokens
212
222
  )
213
223
  """
214
- # Hosted mode: external_user_id, airbyte_client_id, and airbyte_client_secret provided
215
- if external_user_id and airbyte_client_id and airbyte_client_secret:
224
+ # Hosted mode: Airbyte credentials + either connector_id OR external_user_id
225
+ is_hosted = airbyte_client_id and airbyte_client_secret and (connector_id or external_user_id)
226
+
227
+ if is_hosted:
216
228
  from ._vendored.connector_sdk.executor import HostedExecutor
217
229
  self._executor = HostedExecutor(
218
- external_user_id=external_user_id,
219
230
  airbyte_client_id=airbyte_client_id,
220
231
  airbyte_client_secret=airbyte_client_secret,
221
- connector_definition_id=str(FacebookMarketingConnectorModel.id),
232
+ connector_id=connector_id,
233
+ external_user_id=external_user_id,
234
+ connector_definition_id=str(FacebookMarketingConnectorModel.id) if not connector_id else None,
222
235
  )
223
236
  else:
224
237
  # Local mode: auth_config required
225
238
  if not auth_config:
226
239
  raise ValueError(
227
- "Either provide (external_user_id, airbyte_client_id, airbyte_client_secret) for hosted mode "
228
- "or auth_config for local mode"
240
+ "Either provide Airbyte credentials (airbyte_client_id, airbyte_client_secret) with "
241
+ "connector_id or external_user_id for hosted mode, or auth_config for local mode"
229
242
  )
230
243
 
231
244
  from ._vendored.connector_sdk.executor import LocalExecutor
@@ -564,6 +577,183 @@ class FacebookMarketingConnector:
564
577
  )
565
578
  return entity_def.entity_schema if entity_def else None
566
579
 
580
+ @property
581
+ def connector_id(self) -> str | None:
582
+ """Get the connector/source ID (only available in hosted mode).
583
+
584
+ Returns:
585
+ The connector ID if in hosted mode, None if in local mode.
586
+
587
+ Example:
588
+ connector = await FacebookMarketingConnector.create_hosted(...)
589
+ print(f"Created connector: {connector.connector_id}")
590
+ """
591
+ if hasattr(self, '_executor') and hasattr(self._executor, '_connector_id'):
592
+ return self._executor._connector_id
593
+ return None
594
+
595
+ # ===== HOSTED MODE FACTORY =====
596
+
597
+ @classmethod
598
+ async def initiate_oauth(
599
+ cls,
600
+ *,
601
+ external_user_id: str,
602
+ redirect_url: str,
603
+ airbyte_client_id: str,
604
+ airbyte_client_secret: str,
605
+ ) -> str:
606
+ """
607
+ Initiate server-side OAuth flow for this connector.
608
+
609
+ Returns a consent URL where the end user should be redirected to grant access.
610
+ After completing consent, they'll be redirected to your redirect_url with a
611
+ `server_side_oauth_secret_id` query parameter that can be used with `create_hosted()`.
612
+
613
+ Args:
614
+ external_user_id: Workspace identifier in Airbyte Cloud
615
+ redirect_url: URL where users will be redirected after OAuth consent
616
+ airbyte_client_id: Airbyte OAuth client ID
617
+ airbyte_client_secret: Airbyte OAuth client secret
618
+
619
+ Returns:
620
+ The OAuth consent URL
621
+
622
+ Example:
623
+ consent_url = await FacebookMarketingConnector.initiate_oauth(
624
+ external_user_id="my-workspace",
625
+ redirect_url="https://myapp.com/oauth/callback",
626
+ airbyte_client_id="client_abc",
627
+ airbyte_client_secret="secret_xyz",
628
+ )
629
+ # Redirect user to: consent_url
630
+ # After consent, user arrives at: https://myapp.com/oauth/callback?server_side_oauth_secret_id=...
631
+ """
632
+ from ._vendored.connector_sdk.cloud_utils import AirbyteCloudClient
633
+
634
+ client = AirbyteCloudClient(
635
+ client_id=airbyte_client_id,
636
+ client_secret=airbyte_client_secret,
637
+ )
638
+
639
+ try:
640
+ consent_url = await client.initiate_oauth(
641
+ definition_id=str(FacebookMarketingConnectorModel.id),
642
+ external_user_id=external_user_id,
643
+ redirect_url=redirect_url,
644
+ )
645
+ finally:
646
+ await client.close()
647
+
648
+ return consent_url
649
+
650
+ @classmethod
651
+ async def create_hosted(
652
+ cls,
653
+ *,
654
+ external_user_id: str,
655
+ airbyte_client_id: str,
656
+ airbyte_client_secret: str,
657
+ auth_config: "FacebookMarketingAuthConfig" | None = None,
658
+ server_side_oauth_secret_id: str | None = None,
659
+ name: str | None = None,
660
+ replication_config: dict[str, Any] | None = None,
661
+ source_template_id: str | None = None,
662
+ ) -> "FacebookMarketingConnector":
663
+ """
664
+ Create a new hosted connector on Airbyte Cloud.
665
+
666
+ This factory method:
667
+ 1. Creates a source on Airbyte Cloud with the provided credentials
668
+ 2. Returns a connector configured with the new connector_id
669
+
670
+ Supports two authentication modes:
671
+ 1. Direct credentials: Provide `auth_config` with typed credentials
672
+ 2. Server-side OAuth: Provide `server_side_oauth_secret_id` from OAuth flow
673
+
674
+ Args:
675
+ external_user_id: Workspace identifier in Airbyte Cloud
676
+ airbyte_client_id: Airbyte OAuth client ID
677
+ airbyte_client_secret: Airbyte OAuth client secret
678
+ auth_config: Typed auth config. Required unless using server_side_oauth_secret_id.
679
+ server_side_oauth_secret_id: OAuth secret ID from initiate_oauth redirect.
680
+ When provided, auth_config is not required.
681
+ name: Optional source name (defaults to connector name + external_user_id)
682
+ replication_config: Optional replication settings dict.
683
+ Required for connectors with x-airbyte-replication-config (REPLICATION mode sources).
684
+ source_template_id: Source template ID. Required when organization has
685
+ multiple source templates for this connector type.
686
+
687
+ Returns:
688
+ A FacebookMarketingConnector instance configured in hosted mode
689
+
690
+ Raises:
691
+ ValueError: If neither or both auth_config and server_side_oauth_secret_id provided
692
+
693
+ Example:
694
+ # Create a new hosted connector with API key auth
695
+ connector = await FacebookMarketingConnector.create_hosted(
696
+ external_user_id="my-workspace",
697
+ airbyte_client_id="client_abc",
698
+ airbyte_client_secret="secret_xyz",
699
+ auth_config=FacebookMarketingAuthConfig(access_token="...", client_id="...", client_secret="...", account_id="..."),
700
+ )
701
+
702
+ # With server-side OAuth:
703
+ connector = await FacebookMarketingConnector.create_hosted(
704
+ external_user_id="my-workspace",
705
+ airbyte_client_id="client_abc",
706
+ airbyte_client_secret="secret_xyz",
707
+ server_side_oauth_secret_id="airbyte_oauth_..._secret_...",
708
+ )
709
+
710
+ # Use the connector
711
+ result = await connector.execute("entity", "list", {})
712
+ """
713
+ # Validate: exactly one of auth_config or server_side_oauth_secret_id required
714
+ if auth_config is None and server_side_oauth_secret_id is None:
715
+ raise ValueError(
716
+ "Either auth_config or server_side_oauth_secret_id must be provided"
717
+ )
718
+ if auth_config is not None and server_side_oauth_secret_id is not None:
719
+ raise ValueError(
720
+ "Cannot provide both auth_config and server_side_oauth_secret_id"
721
+ )
722
+
723
+ from ._vendored.connector_sdk.cloud_utils import AirbyteCloudClient
724
+
725
+ client = AirbyteCloudClient(
726
+ client_id=airbyte_client_id,
727
+ client_secret=airbyte_client_secret,
728
+ )
729
+
730
+ try:
731
+ # Build credentials from auth_config (if provided)
732
+ credentials = auth_config.model_dump(exclude_none=True) if auth_config else None
733
+ replication_config_dict = replication_config.model_dump(exclude_none=True) if replication_config else None
734
+
735
+ # Create source on Airbyte Cloud
736
+ source_name = name or f"{cls.connector_name} - {external_user_id}"
737
+ source_id = await client.create_source(
738
+ name=source_name,
739
+ connector_definition_id=str(FacebookMarketingConnectorModel.id),
740
+ external_user_id=external_user_id,
741
+ credentials=credentials,
742
+ replication_config=replication_config_dict,
743
+ server_side_oauth_secret_id=server_side_oauth_secret_id,
744
+ source_template_id=source_template_id,
745
+ )
746
+ finally:
747
+ await client.close()
748
+
749
+ # Return connector configured with the new connector_id
750
+ return cls(
751
+ airbyte_client_id=airbyte_client_id,
752
+ airbyte_client_secret=airbyte_client_secret,
753
+ connector_id=source_id,
754
+ )
755
+
756
+
567
757
 
568
758
 
569
759
  class CampaignsQuery:
@@ -26,26 +26,40 @@ from uuid import (
26
26
  FacebookMarketingConnectorModel: ConnectorModel = ConnectorModel(
27
27
  id=UUID('e7778cfc-e97c-4458-9ecb-b4f2bba8946c'),
28
28
  name='facebook-marketing',
29
- version='1.0.1',
29
+ version='1.0.3',
30
30
  base_url='https://graph.facebook.com/v24.0',
31
31
  auth=AuthConfig(
32
- type=AuthType.BEARER,
32
+ type=AuthType.OAUTH2,
33
33
  config={'header': 'Authorization', 'prefix': 'Bearer'},
34
34
  user_config_spec=AirbyteAuthConfig(
35
- title='Facebook Marketing Authentication',
35
+ title='OAuth 2.0 Authentication',
36
36
  type='object',
37
- required=['access_token', 'account_id'],
37
+ required=['client_id', 'client_secret', 'account_id'],
38
38
  properties={
39
39
  'access_token': AuthConfigFieldSpec(
40
40
  title='Access Token',
41
- description='Facebook Marketing API access token',
41
+ description='Facebook OAuth2 Access Token',
42
+ ),
43
+ 'client_id': AuthConfigFieldSpec(
44
+ title='Client ID',
45
+ description='Facebook App Client ID',
46
+ ),
47
+ 'client_secret': AuthConfigFieldSpec(
48
+ title='Client Secret',
49
+ description='Facebook App Client Secret',
42
50
  ),
43
51
  'account_id': AuthConfigFieldSpec(
44
52
  title='Ad Account ID',
45
- description='Facebook Ad Account ID (without the act_ prefix)',
53
+ description='Facebook Ad Account ID (without act_ prefix)',
46
54
  ),
47
55
  },
48
- auth_mapping={'token': '${access_token}'},
56
+ auth_mapping={
57
+ 'access_token': '${access_token}',
58
+ 'client_id': '${client_id}',
59
+ 'client_secret': '${client_secret}',
60
+ },
61
+ replication_auth_key_mapping={'credentials.client_id': 'client_id', 'credentials.client_secret': 'client_secret'},
62
+ replication_auth_key_constants={'credentials.auth_type': 'oauth2.0'},
49
63
  ),
50
64
  ),
51
65
  entities=[
@@ -9,18 +9,23 @@ from __future__ import annotations
9
9
 
10
10
  from pydantic import BaseModel, ConfigDict, Field
11
11
  from typing import TypeVar, Generic, Union, Any
12
+ from typing import Optional
12
13
 
13
14
  # Authentication configuration
14
15
 
15
16
  class FacebookMarketingAuthConfig(BaseModel):
16
- """Facebook Marketing Authentication"""
17
+ """OAuth 2.0 Authentication"""
17
18
 
18
19
  model_config = ConfigDict(extra="forbid")
19
20
 
20
- access_token: str
21
- """Facebook Marketing API access token"""
21
+ access_token: Optional[str] = None
22
+ """Facebook OAuth2 Access Token"""
23
+ client_id: str
24
+ """Facebook App Client ID"""
25
+ client_secret: str
26
+ """Facebook App Client Secret"""
22
27
  account_id: str
23
- """Facebook Ad Account ID (without the act_ prefix)"""
28
+ """Facebook Ad Account ID (without act_ prefix)"""
24
29
 
25
30
  # ===== RESPONSE TYPE DEFINITIONS (PYDANTIC) =====
26
31
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-agent-facebook-marketing
3
- Version: 0.1.2
3
+ Version: 0.1.6
4
4
  Summary: Airbyte Facebook-Marketing 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/
@@ -83,8 +83,10 @@ from airbyte_agent_facebook_marketing.models import FacebookMarketingAuthConfig
83
83
 
84
84
  connector = FacebookMarketingConnector(
85
85
  auth_config=FacebookMarketingAuthConfig(
86
- access_token="<Facebook Marketing API access token>",
87
- account_id="<Facebook Ad Account ID (without the act_ prefix)>"
86
+ access_token="<Facebook OAuth2 Access Token>",
87
+ client_id="<Facebook App Client ID>",
88
+ client_secret="<Facebook App Client Secret>",
89
+ account_id="<Facebook Ad Account ID (without act_ prefix)>"
88
90
  )
89
91
  )
90
92
 
@@ -143,7 +145,7 @@ See the official [Facebook-Marketing API reference](https://developers.facebook.
143
145
 
144
146
  ## Version information
145
147
 
146
- - **Package version:** 0.1.2
147
- - **Connector version:** 1.0.1
148
- - **Generated with Connector SDK commit SHA:** 5b20f488dec0e8f29410823753106603c23a4b65
148
+ - **Package version:** 0.1.6
149
+ - **Connector version:** 1.0.3
150
+ - **Generated with Connector SDK commit SHA:** 9d9866b0aae8c3494d04d34e193b9bd860bfc1c6
149
151
  - **Changelog:** [View changelog](https://github.com/airbytehq/airbyte-agent-connectors/blob/main/connectors/facebook-marketing/CHANGELOG.md)
@@ -1,27 +1,28 @@
1
1
  airbyte_agent_facebook_marketing/__init__.py,sha256=8nipoZG1cTNNSPdOG8oXpRs1p7oGeaEgn4r2bYfiW9g,5274
2
- airbyte_agent_facebook_marketing/connector.py,sha256=XnXz1e-BzYhR8KuCRvG0sd9zNNRH43ItekF6jW-mnuI,52854
3
- airbyte_agent_facebook_marketing/connector_model.py,sha256=pAXm4lNgJZYYuv6zqD_QZPL4RvkKnBbrZiO_PJj2KL0,165400
4
- airbyte_agent_facebook_marketing/models.py,sha256=mc6Wd4oWLe5mEW57DbGERAOJlH8xFuMqanNM-XqjKTM,32120
2
+ airbyte_agent_facebook_marketing/connector.py,sha256=4vSm90TJw2kWoyRQrZuOAlvTgW4FOgMtx4nyuEsLk5o,60699
3
+ airbyte_agent_facebook_marketing/connector_model.py,sha256=b4R4czaAbnqXLDF5zZVbf6Ly4QwfSwzhoLgtOO1xyl0,166083
4
+ airbyte_agent_facebook_marketing/models.py,sha256=RlFrDdlgY2Pa8dXejROV1luthPWpvsCypBxxiGOq6UQ,32257
5
5
  airbyte_agent_facebook_marketing/types.py,sha256=0-HIDX4q69W1eDUvTdxMhzHRsTpBUJlFvLKW4HmstJ4,55642
6
6
  airbyte_agent_facebook_marketing/_vendored/__init__.py,sha256=ILl7AHXMui__swyrjxrh9yRa4dLiwBvV6axPWFWty80,38
7
7
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/__init__.py,sha256=T5o7roU6NSpH-lCAGZ338sE5dlh4ZU6i6IkeG1zpems,1949
8
8
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/auth_strategies.py,sha256=5Sb9moUp623o67Q2wMa8iZldJH08y4gQdoutoO_75Iw,42088
9
9
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/auth_template.py,sha256=nju4jqlFC_KI82ILNumNIyiUtRJcy7J94INIZ0QraI4,4454
10
- airbyte_agent_facebook_marketing/_vendored/connector_sdk/connector_model_loader.py,sha256=ecm0Cdj1SyhDOpEi2wUzzrJNkgt0wViB0Q-YTrDPsjU,41698
10
+ airbyte_agent_facebook_marketing/_vendored/connector_sdk/connector_model_loader.py,sha256=1AAvSvjxM9Nuto6w7D6skN5VXGb4e6na0lMFcFmmVkI,41761
11
11
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/constants.py,sha256=AtzOvhDMWbRJgpsQNWl5tkogHD6mWgEY668PgRmgtOY,2737
12
12
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/exceptions.py,sha256=ss5MGv9eVPmsbLcLWetuu3sDmvturwfo6Pw3M37Oq5k,481
13
13
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/extensions.py,sha256=XWRRoJOOrwUHSKbuQt5DU7CCu8ePzhd_HuP7c_uD77w,21376
14
14
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/http_client.py,sha256=09Fclbq4wrg38EM2Yh2kHiykQVXqdAGby024elcEz8E,28027
15
15
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/introspection.py,sha256=e9uWn2ofpeehoBbzNgts_bjlKLn8ayA1Y3OpDC3b7ZA,19517
16
16
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/secrets.py,sha256=J9ezMu4xNnLW11xY5RCre6DHP7YMKZCqwGJfk7ufHAM,6855
17
- airbyte_agent_facebook_marketing/_vendored/connector_sdk/types.py,sha256=sRZ4rRkJXGfqdjfF3qb0kzrw_tu1cn-CmFSZKMMgF7o,9269
18
- airbyte_agent_facebook_marketing/_vendored/connector_sdk/utils.py,sha256=G4LUXOC2HzPoND2v4tQW68R9uuPX9NQyCjaGxb7Kpl0,1958
19
- airbyte_agent_facebook_marketing/_vendored/connector_sdk/validation.py,sha256=2Qof3QiOEEupTsT6F1MvMDCZTPl4IuzkeUUvn_IYFjg,32905
17
+ airbyte_agent_facebook_marketing/_vendored/connector_sdk/types.py,sha256=MsWJsQy779r7Mqiqf_gh_4Vs6VDqieoMjLPyWt7qhu8,9412
18
+ airbyte_agent_facebook_marketing/_vendored/connector_sdk/utils.py,sha256=UYwYuSLhsDD-4C0dBs7Qy0E0gIcFZXb6VWadJORhQQU,4080
19
+ airbyte_agent_facebook_marketing/_vendored/connector_sdk/validation.py,sha256=w5WGnmILkdBslpXhAXhKhE-c8ANBc_OZQxr_fUeAgtc,39666
20
+ airbyte_agent_facebook_marketing/_vendored/connector_sdk/validation_replication.py,sha256=v7F5YWd5m4diIF7_4m4nOkC9crg97vqRUUkt9ka9HZ4,36043
20
21
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/cloud_utils/__init__.py,sha256=4799Hv9f2zxDVj1aLyQ8JpTEuFTp_oOZMRz-NZCdBJg,134
21
- airbyte_agent_facebook_marketing/_vendored/connector_sdk/cloud_utils/client.py,sha256=YxdRpQr9XjDzih6csSseBVGn9kfMtaqbOCXP0TPuzFY,7189
22
+ airbyte_agent_facebook_marketing/_vendored/connector_sdk/cloud_utils/client.py,sha256=e0VLNCmesGGfo2uD0GiICgXsXTeTkh0GYiVgx_e4VEc,12296
22
23
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/executor/__init__.py,sha256=EmG9YQNAjSuYCVB4D5VoLm4qpD1KfeiiOf7bpALj8p8,702
23
- airbyte_agent_facebook_marketing/_vendored/connector_sdk/executor/hosted_executor.py,sha256=AC5aJtdcMPQfRuam0ZGE4QdhUBu2oGEmNZ6oVQLHTE8,7212
24
- airbyte_agent_facebook_marketing/_vendored/connector_sdk/executor/local_executor.py,sha256=l2b0VILgtOlUNyG19J0UkbCa6rJXkU8g1uzLot8BJjQ,77008
24
+ airbyte_agent_facebook_marketing/_vendored/connector_sdk/executor/hosted_executor.py,sha256=tv0njAdy-gdHBg4izgcxhEWYbrNiBifEYEca9AWzaL0,8693
25
+ airbyte_agent_facebook_marketing/_vendored/connector_sdk/executor/local_executor.py,sha256=RtdTXFzfoJz5Coz9nwQi81Df1402BRgO1Mgd3ZzTkfw,76581
25
26
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/executor/models.py,sha256=mUUBnuShKXxVIfsTOhMiI2rn2a-50jJG7SFGKT_P6Jk,6281
26
27
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/http/__init__.py,sha256=y8fbzZn-3yV9OxtYz8Dy6FFGI5v6TOqADd1G3xHH3Hw,911
27
28
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/http/config.py,sha256=6J7YIIwHC6sRu9i-yKa5XvArwK2KU60rlnmxzDZq3lw,3283
@@ -42,16 +43,16 @@ airbyte_agent_facebook_marketing/_vendored/connector_sdk/performance/__init__.py
42
43
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/performance/instrumentation.py,sha256=_dXvNiqdndIBwDjeDKNViWzn_M5FkSUsMmJtFldrmsM,1504
43
44
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/performance/metrics.py,sha256=FRff7dKt4iwt_A7pxV5n9kAGBR756PC7q8-weWygPSM,2817
44
45
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/schema/__init__.py,sha256=Uymu-QuzGJuMxexBagIvUxpVAigIuIhz3KeBl_Vu4Ko,1638
45
- airbyte_agent_facebook_marketing/_vendored/connector_sdk/schema/base.py,sha256=IoAucZQ0j0xTdm4VWotB636R4jsrkYnppMQhXE0uoyU,6541
46
+ airbyte_agent_facebook_marketing/_vendored/connector_sdk/schema/base.py,sha256=mOO5eZSK-FB7S-ZXpt5HFG5YBg8x-oM6RZRLPOEGxZM,7115
46
47
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/schema/components.py,sha256=nJIPieavwX3o3ODvdtLHPk84d_V229xmg6LDfwEHjzc,8119
47
48
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/schema/connector.py,sha256=mSZk1wr2YSdRj9tTRsPAuIlCzd_xZLw-Bzl1sMwE0rE,3731
48
49
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/schema/extensions.py,sha256=5hgpFHK7fzpzegCkJk882DeIP79bCx_qairKJhvPMZ8,9590
49
50
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/schema/operations.py,sha256=St-A75m6sZUZlsoM6WcoPaShYu_X1K19pdyPvJbabOE,6214
50
- airbyte_agent_facebook_marketing/_vendored/connector_sdk/schema/security.py,sha256=1CVCavrPdHHyk7B6JtUD75yRS_hWLCemZF1zwGbdqxg,9036
51
+ airbyte_agent_facebook_marketing/_vendored/connector_sdk/schema/security.py,sha256=R-21DLnp-ANIRO1Dzqo53TYFJL6lCp0aO8GSuxa_bDI,9225
51
52
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/telemetry/__init__.py,sha256=RaLgkBU4dfxn1LC5Y0Q9rr2PJbrwjxvPgBLmq8_WafE,211
52
53
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/telemetry/config.py,sha256=tLmQwAFD0kP1WyBGWBS3ysaudN9H3e-3EopKZi6cGKg,885
53
54
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/telemetry/events.py,sha256=8Y1NbXiwISX-V_wRofY7PqcwEXD0dLMnntKkY6XFU2s,1328
54
55
  airbyte_agent_facebook_marketing/_vendored/connector_sdk/telemetry/tracker.py,sha256=SginFQbHqVUVYG82NnNzG34O-tAQ_wZYjGDcuo0q4Kk,5584
55
- airbyte_agent_facebook_marketing-0.1.2.dist-info/METADATA,sha256=RhsHTqYigYUZm9JSMg2SbZWc2DRC_1WjlTfiLuc_P2c,5773
56
- airbyte_agent_facebook_marketing-0.1.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
57
- airbyte_agent_facebook_marketing-0.1.2.dist-info/RECORD,,
56
+ airbyte_agent_facebook_marketing-0.1.6.dist-info/METADATA,sha256=mcxcWF8-VdLmFyEFcoOrP9wORvhQ3YCzcG-YYT7qeGk,5862
57
+ airbyte_agent_facebook_marketing-0.1.6.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
58
+ airbyte_agent_facebook_marketing-0.1.6.dist-info/RECORD,,