airbyte-agent-hubspot 0.15.20__py3-none-any.whl → 0.15.28__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.
@@ -21,9 +21,9 @@ from .models import (
21
21
  TicketProperties,
22
22
  Ticket,
23
23
  TicketsList,
24
+ SchemaAssociationsItem,
24
25
  SchemaPropertiesItemModificationmetadata,
25
26
  SchemaPropertiesItem,
26
- SchemaAssociationsItem,
27
27
  SchemaLabels,
28
28
  Schema,
29
29
  SchemasList,
@@ -83,4 +83,4 @@ from .types import (
83
83
  ObjectsGetParams
84
84
  )
85
85
 
86
- __all__ = ["HubspotConnector", "HubspotAuthConfig", "ContactProperties", "Contact", "PagingNext", "Paging", "ContactsList", "CompanyProperties", "Company", "CompaniesList", "DealProperties", "Deal", "DealsList", "TicketProperties", "Ticket", "TicketsList", "SchemaPropertiesItemModificationmetadata", "SchemaPropertiesItem", "SchemaAssociationsItem", "SchemaLabels", "Schema", "SchemasList", "CRMObjectProperties", "CRMObject", "ObjectsList", "ContactsListResultMeta", "ContactsSearchResultMeta", "CompaniesListResultMeta", "CompaniesSearchResultMeta", "DealsListResultMeta", "DealsSearchResultMeta", "TicketsListResultMeta", "TicketsSearchResultMeta", "ObjectsListResultMeta", "HubspotExecuteResult", "HubspotExecuteResultWithMeta", "ContactsListResult", "ContactsSearchResult", "CompaniesListResult", "CompaniesSearchResult", "DealsListResult", "DealsSearchResult", "TicketsListResult", "TicketsSearchResult", "SchemasListResult", "ObjectsListResult", "ContactsSearchParamsFiltergroupsItemFiltersItem", "ContactsSearchParamsFiltergroupsItem", "ContactsSearchParamsSortsItem", "CompaniesSearchParamsFiltergroupsItemFiltersItem", "CompaniesSearchParamsFiltergroupsItem", "CompaniesSearchParamsSortsItem", "DealsSearchParamsFiltergroupsItemFiltersItem", "DealsSearchParamsFiltergroupsItem", "DealsSearchParamsSortsItem", "TicketsSearchParamsFiltergroupsItemFiltersItem", "TicketsSearchParamsFiltergroupsItem", "TicketsSearchParamsSortsItem", "ContactsListParams", "ContactsGetParams", "ContactsSearchParams", "CompaniesListParams", "CompaniesGetParams", "CompaniesSearchParams", "DealsListParams", "DealsGetParams", "DealsSearchParams", "TicketsListParams", "TicketsGetParams", "TicketsSearchParams", "SchemasListParams", "SchemasGetParams", "ObjectsListParams", "ObjectsGetParams"]
86
+ __all__ = ["HubspotConnector", "HubspotAuthConfig", "ContactProperties", "Contact", "PagingNext", "Paging", "ContactsList", "CompanyProperties", "Company", "CompaniesList", "DealProperties", "Deal", "DealsList", "TicketProperties", "Ticket", "TicketsList", "SchemaAssociationsItem", "SchemaPropertiesItemModificationmetadata", "SchemaPropertiesItem", "SchemaLabels", "Schema", "SchemasList", "CRMObjectProperties", "CRMObject", "ObjectsList", "ContactsListResultMeta", "ContactsSearchResultMeta", "CompaniesListResultMeta", "CompaniesSearchResultMeta", "DealsListResultMeta", "DealsSearchResultMeta", "TicketsListResultMeta", "TicketsSearchResultMeta", "ObjectsListResultMeta", "HubspotExecuteResult", "HubspotExecuteResultWithMeta", "ContactsListResult", "ContactsSearchResult", "CompaniesListResult", "CompaniesSearchResult", "DealsListResult", "DealsSearchResult", "TicketsListResult", "TicketsSearchResult", "SchemasListResult", "ObjectsListResult", "ContactsSearchParamsFiltergroupsItemFiltersItem", "ContactsSearchParamsFiltergroupsItem", "ContactsSearchParamsSortsItem", "CompaniesSearchParamsFiltergroupsItemFiltersItem", "CompaniesSearchParamsFiltergroupsItem", "CompaniesSearchParamsSortsItem", "DealsSearchParamsFiltergroupsItemFiltersItem", "DealsSearchParamsFiltergroupsItem", "DealsSearchParamsSortsItem", "TicketsSearchParamsFiltergroupsItemFiltersItem", "TicketsSearchParamsFiltergroupsItem", "TicketsSearchParamsSortsItem", "ContactsListParams", "ContactsGetParams", "ContactsSearchParams", "CompaniesListParams", "CompaniesGetParams", "CompaniesSearchParams", "DealsListParams", "DealsGetParams", "DealsSearchParams", "TicketsListParams", "TicketsGetParams", "TicketsSearchParams", "SchemasListParams", "SchemasGetParams", "ObjectsListParams", "ObjectsGetParams"]
@@ -674,16 +674,16 @@ class LocalExecutor:
674
674
  return {key: value for key, value in params.items() if key in allowed_params}
675
675
 
676
676
  def _extract_body(self, allowed_fields: list[str], params: dict[str, Any]) -> dict[str, Any]:
677
- """Extract body fields from params.
677
+ """Extract body fields from params, filtering out None values.
678
678
 
679
679
  Args:
680
680
  allowed_fields: List of allowed body field names
681
681
  params: All parameters
682
682
 
683
683
  Returns:
684
- Dictionary of body fields
684
+ Dictionary of body fields with None values filtered out
685
685
  """
686
- return {key: value for key, value in params.items() if key in allowed_fields}
686
+ return {key: value for key, value in params.items() if key in allowed_fields and value is not None}
687
687
 
688
688
  def _serialize_deep_object_params(self, params: dict[str, Any], deep_object_param_names: list[str]) -> dict[str, Any]:
689
689
  """Serialize deepObject parameters to bracket notation format.
@@ -837,7 +837,9 @@ class LocalExecutor:
837
837
  Request body dict or None if no body needed
838
838
  """
839
839
  if endpoint.graphql_body:
840
- return self._build_graphql_body(endpoint.graphql_body, params)
840
+ # Extract defaults from query_params_schema for GraphQL variable interpolation
841
+ param_defaults = {name: schema.get("default") for name, schema in endpoint.query_params_schema.items() if "default" in schema}
842
+ return self._build_graphql_body(endpoint.graphql_body, params, param_defaults)
841
843
  elif endpoint.body_fields:
842
844
  return self._extract_body(endpoint.body_fields, params)
843
845
  return None
@@ -903,12 +905,18 @@ class LocalExecutor:
903
905
 
904
906
  return query
905
907
 
906
- def _build_graphql_body(self, graphql_config: dict[str, Any], params: dict[str, Any]) -> dict[str, Any]:
908
+ def _build_graphql_body(
909
+ self,
910
+ graphql_config: dict[str, Any],
911
+ params: dict[str, Any],
912
+ param_defaults: dict[str, Any] | None = None,
913
+ ) -> dict[str, Any]:
907
914
  """Build GraphQL request body with variable substitution and field selection.
908
915
 
909
916
  Args:
910
917
  graphql_config: GraphQL configuration from x-airbyte-body-type extension
911
918
  params: Parameters from execute() call
919
+ param_defaults: Default values for params from query_params_schema
912
920
 
913
921
  Returns:
914
922
  GraphQL request body: {"query": "...", "variables": {...}}
@@ -922,7 +930,7 @@ class LocalExecutor:
922
930
 
923
931
  # Substitute variables from params
924
932
  if "variables" in graphql_config and graphql_config["variables"]:
925
- body["variables"] = self._interpolate_variables(graphql_config["variables"], params)
933
+ body["variables"] = self._interpolate_variables(graphql_config["variables"], params, param_defaults)
926
934
 
927
935
  # Add operation name if specified
928
936
  if "operationName" in graphql_config:
@@ -981,7 +989,12 @@ class LocalExecutor:
981
989
  fields_str = " ".join(graphql_fields)
982
990
  return query.replace("{{ fields }}", fields_str)
983
991
 
984
- def _interpolate_variables(self, variables: dict[str, Any], params: dict[str, Any]) -> dict[str, Any]:
992
+ def _interpolate_variables(
993
+ self,
994
+ variables: dict[str, Any],
995
+ params: dict[str, Any],
996
+ param_defaults: dict[str, Any] | None = None,
997
+ ) -> dict[str, Any]:
985
998
  """Recursively interpolate variables using params.
986
999
 
987
1000
  Preserves types (doesn't stringify everything).
@@ -990,15 +1003,18 @@ class LocalExecutor:
990
1003
  - Direct replacement: "{{ owner }}" → params["owner"] (preserves type)
991
1004
  - Nested objects: {"input": {"name": "{{ name }}"}}
992
1005
  - Arrays: [{"id": "{{ id }}"}]
993
- - Unsubstituted placeholders: "{{ states }}" → None (for optional params)
1006
+ - Default values: "{{ per_page }}" → param_defaults["per_page"] if not in params
1007
+ - Unsubstituted placeholders: "{{ states }}" → None (for optional params without defaults)
994
1008
 
995
1009
  Args:
996
1010
  variables: Variables dict with template placeholders
997
1011
  params: Parameters to substitute
1012
+ param_defaults: Default values for params from query_params_schema
998
1013
 
999
1014
  Returns:
1000
1015
  Interpolated variables dict with types preserved
1001
1016
  """
1017
+ defaults = param_defaults or {}
1002
1018
 
1003
1019
  def interpolate_value(value: Any) -> Any:
1004
1020
  if isinstance(value, str):
@@ -1012,8 +1028,15 @@ class LocalExecutor:
1012
1028
  value = value.replace(placeholder, str(param_value))
1013
1029
 
1014
1030
  # Check if any unsubstituted placeholders remain
1015
- # If so, return None (treats as "not provided" for optional params)
1016
1031
  if re.search(r"\{\{\s*\w+\s*\}\}", value):
1032
+ # Extract placeholder name and check for default value
1033
+ match = re.search(r"\{\{\s*(\w+)\s*\}\}", value)
1034
+ if match:
1035
+ param_name = match.group(1)
1036
+ if param_name in defaults:
1037
+ # Use default value (preserves type)
1038
+ return defaults[param_name]
1039
+ # No default found - return None (for optional params)
1017
1040
  return None
1018
1041
 
1019
1042
  return value
@@ -1151,21 +1174,18 @@ class LocalExecutor:
1151
1174
  if action not in (Action.CREATE, Action.UPDATE):
1152
1175
  return
1153
1176
 
1154
- # Check if endpoint has body fields defined
1155
- if not endpoint.body_fields:
1177
+ # Get the request schema to find truly required fields
1178
+ request_schema = endpoint.request_schema
1179
+ if not request_schema:
1156
1180
  return
1157
1181
 
1158
- # For now, we treat all body_fields as potentially required for CREATE/UPDATE
1159
- # In a more advanced implementation, we could parse the request schema
1160
- # to identify truly required fields
1161
- missing_fields = []
1162
- for field in endpoint.body_fields:
1163
- if field not in params:
1164
- missing_fields.append(field)
1182
+ # Only validate fields explicitly marked as required in the schema
1183
+ required_fields = request_schema.get("required", [])
1184
+ missing_fields = [field for field in required_fields if field not in params]
1165
1185
 
1166
1186
  if missing_fields:
1167
1187
  raise MissingParameterError(
1168
- f"Missing required body fields for {entity}.{action.value}: {missing_fields}. Provided parameters: {list(params.keys())}"
1188
+ f"Missing required body fields for {entity}.{action.value}: {missing_fields}. " f"Provided parameters: {list(params.keys())}"
1169
1189
  )
1170
1190
 
1171
1191
  async def close(self):
@@ -147,6 +147,9 @@ class HTTPClient:
147
147
  self.base_url = self.base_url.replace(f"{{{var_name}}}", var_value)
148
148
 
149
149
  self.auth_config = auth_config
150
+ assert (
151
+ self.auth_config.type is not None
152
+ ), "auth_config.type cannot be None" # Should never be None when instantiated via the local executor flow
150
153
  self.secrets = secrets
151
154
  self.logger = logger or NullLogger()
152
155
  self.metrics = HTTPMetrics()
@@ -296,12 +299,12 @@ class HTTPClient:
296
299
 
297
300
  # Support both sync and async callbacks
298
301
  callback_result = self.on_token_refresh(callback_data)
299
- if hasattr(callback_result, "__await__"):
302
+ if callback_result is not None and hasattr(callback_result, "__await__"):
300
303
  await callback_result
301
304
  except Exception as callback_error:
302
305
  self.logger.log_error(
303
306
  request_id=None,
304
- error=("Token refresh callback failed during initialization: " f"{callback_error!s}"),
307
+ error=(f"Token refresh callback failed during initialization: {callback_error!s}"),
305
308
  status_code=None,
306
309
  )
307
310
 
@@ -485,7 +488,7 @@ class HTTPClient:
485
488
  elif "application/json" in content_type or not content_type:
486
489
  response_data = await response.json()
487
490
  else:
488
- error_msg = f"Expected JSON response for {method.upper()} {url}, " f"got content-type: {content_type}"
491
+ error_msg = f"Expected JSON response for {method.upper()} {url}, got content-type: {content_type}"
489
492
  raise HTTPClientError(error_msg)
490
493
 
491
494
  except ValueError as e:
@@ -556,6 +559,7 @@ class HTTPClient:
556
559
  current_token = self.secrets.get("access_token")
557
560
  strategy = AuthStrategyFactory.get_strategy(self.auth_config.type)
558
561
 
562
+ # Try to refresh credentials
559
563
  try:
560
564
  result = await strategy.handle_auth_error(
561
565
  status_code=status_code,
@@ -564,53 +568,56 @@ class HTTPClient:
564
568
  config_values=self.config_values,
565
569
  http_client=None, # Let strategy create its own client
566
570
  )
567
-
568
- if result:
569
- # Notify callback if provided (for persistence)
570
- # Include both tokens AND extracted values for full persistence
571
- if self.on_token_refresh is not None:
572
- try:
573
- # Build callback data with both tokens and extracted values
574
- callback_data = dict(result.tokens)
575
- if result.extracted_values:
576
- callback_data.update(result.extracted_values)
577
-
578
- # Support both sync and async callbacks
579
- callback_result = self.on_token_refresh(callback_data)
580
- if hasattr(callback_result, "__await__"):
581
- await callback_result
582
- except Exception as callback_error:
583
- self.logger.log_error(
584
- request_id=request_id,
585
- error=f"Token refresh callback failed: {str(callback_error)}",
586
- status_code=status_code,
587
- )
588
-
589
- # Update secrets with new tokens (in-memory)
590
- self.secrets.update(result.tokens)
591
-
592
- # Update config_values and re-render base_url with extracted values
593
- if result.extracted_values:
594
- self._apply_token_extract(result.extracted_values)
595
-
596
- if self.secrets.get("access_token") != current_token:
597
- # Retry with new token - this will go through full retry logic
598
- return await self.request(
599
- method=method,
600
- path=path,
601
- params=params,
602
- json=json,
603
- data=data,
604
- headers=headers,
605
- )
606
-
607
571
  except Exception as refresh_error:
608
572
  self.logger.log_error(
609
573
  request_id=request_id,
610
574
  error=f"Credential refresh failed: {str(refresh_error)}",
611
575
  status_code=status_code,
612
576
  )
577
+ result = None
578
+
579
+ # If refresh succeeded, update tokens and retry
580
+ if result:
581
+ # Notify callback if provided (for persistence)
582
+ # Include both tokens AND extracted values for full persistence
583
+ if self.on_token_refresh is not None:
584
+ try:
585
+ # Build callback data with both tokens and extracted values
586
+ callback_data = dict(result.tokens)
587
+ if result.extracted_values:
588
+ callback_data.update(result.extracted_values)
589
+
590
+ # Support both sync and async callbacks
591
+ callback_result = self.on_token_refresh(callback_data)
592
+ if callback_result is not None and hasattr(callback_result, "__await__"):
593
+ await callback_result
594
+ except Exception as callback_error:
595
+ self.logger.log_error(
596
+ request_id=request_id,
597
+ error=f"Token refresh callback failed: {str(callback_error)}",
598
+ status_code=status_code,
599
+ )
600
+
601
+ # Update secrets with new tokens (in-memory)
602
+ self.secrets.update(result.tokens)
603
+
604
+ # Update config_values and re-render base_url with extracted values
605
+ if result.extracted_values:
606
+ self._apply_token_extract(result.extracted_values)
613
607
 
608
+ if self.secrets.get("access_token") != current_token:
609
+ # Retry with new token - this will go through full retry logic
610
+ # Any errors from this retry will propagate to the caller
611
+ return await self.request(
612
+ method=method,
613
+ path=path,
614
+ params=params,
615
+ json=json,
616
+ data=data,
617
+ headers=headers,
618
+ )
619
+
620
+ # Refresh failed or token didn't change, log and let original error propagate
614
621
  self.logger.log_error(request_id=request_id, error=str(error), status_code=status_code)
615
622
 
616
623
  async def request(
@@ -72,7 +72,7 @@ class HubspotConnector:
72
72
  """
73
73
 
74
74
  connector_name = "hubspot"
75
- connector_version = "0.1.2"
75
+ connector_version = "0.1.3"
76
76
  vendored_sdk_version = "0.1.0" # Version of vendored connector-sdk
77
77
 
78
78
  # Map of (entity, action) -> has_extractors for envelope wrapping decision
@@ -26,7 +26,7 @@ from uuid import (
26
26
  HubspotConnectorModel: ConnectorModel = ConnectorModel(
27
27
  id=UUID('36c891d9-4bd9-43ac-bad2-10e12756272c'),
28
28
  name='hubspot',
29
- version='0.1.2',
29
+ version='0.1.3',
30
30
  base_url='https://api.hubapi.com',
31
31
  auth=AuthConfig(
32
32
  type=AuthType.OAUTH2,
@@ -183,6 +183,23 @@ class TicketsList(BaseModel):
183
183
  paging: Union[Paging, Any] = Field(default=None)
184
184
  total: Union[int, Any] = Field(default=None)
185
185
 
186
+ class SchemaAssociationsItem(BaseModel):
187
+ """Nested schema for Schema.associations_item"""
188
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
189
+
190
+ from_object_type_id: Union[str, Any] = Field(default=None, alias="fromObjectTypeId")
191
+ to_object_type_id: Union[str, Any] = Field(default=None, alias="toObjectTypeId")
192
+ name: Union[str, Any] = Field(default=None)
193
+ cardinality: Union[str, Any] = Field(default=None)
194
+ id: Union[str, Any] = Field(default=None)
195
+ inverse_cardinality: Union[str, Any] = Field(default=None, alias="inverseCardinality")
196
+ has_user_enforced_max_to_object_ids: Union[bool, Any] = Field(default=None, alias="hasUserEnforcedMaxToObjectIds")
197
+ has_user_enforced_max_from_object_ids: Union[bool, Any] = Field(default=None, alias="hasUserEnforcedMaxFromObjectIds")
198
+ max_to_object_ids: Union[int, Any] = Field(default=None, alias="maxToObjectIds")
199
+ max_from_object_ids: Union[int, Any] = Field(default=None, alias="maxFromObjectIds")
200
+ created_at: Union[str | None, Any] = Field(default=None, alias="createdAt")
201
+ updated_at: Union[str | None, Any] = Field(default=None, alias="updatedAt")
202
+
186
203
  class SchemaPropertiesItemModificationmetadata(BaseModel):
187
204
  """Nested schema for SchemaPropertiesItem.modificationMetadata"""
188
205
  model_config = ConfigDict(extra="allow", populate_by_name=True)
@@ -219,23 +236,6 @@ class SchemaPropertiesItem(BaseModel):
219
236
  show_currency_symbol: Union[bool, Any] = Field(default=None, alias="showCurrencySymbol")
220
237
  modification_metadata: Union[SchemaPropertiesItemModificationmetadata, Any] = Field(default=None, alias="modificationMetadata")
221
238
 
222
- class SchemaAssociationsItem(BaseModel):
223
- """Nested schema for Schema.associations_item"""
224
- model_config = ConfigDict(extra="allow", populate_by_name=True)
225
-
226
- from_object_type_id: Union[str, Any] = Field(default=None, alias="fromObjectTypeId")
227
- to_object_type_id: Union[str, Any] = Field(default=None, alias="toObjectTypeId")
228
- name: Union[str, Any] = Field(default=None)
229
- cardinality: Union[str, Any] = Field(default=None)
230
- id: Union[str, Any] = Field(default=None)
231
- inverse_cardinality: Union[str, Any] = Field(default=None, alias="inverseCardinality")
232
- has_user_enforced_max_to_object_ids: Union[bool, Any] = Field(default=None, alias="hasUserEnforcedMaxToObjectIds")
233
- has_user_enforced_max_from_object_ids: Union[bool, Any] = Field(default=None, alias="hasUserEnforcedMaxFromObjectIds")
234
- max_to_object_ids: Union[int, Any] = Field(default=None, alias="maxToObjectIds")
235
- max_from_object_ids: Union[int, Any] = Field(default=None, alias="maxFromObjectIds")
236
- created_at: Union[str | None, Any] = Field(default=None, alias="createdAt")
237
- updated_at: Union[str | None, Any] = Field(default=None, alias="updatedAt")
238
-
239
239
  class SchemaLabels(BaseModel):
240
240
  """Display labels"""
241
241
  model_config = ConfigDict(extra="allow", populate_by_name=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-agent-hubspot
3
- Version: 0.15.20
3
+ Version: 0.15.28
4
4
  Summary: Airbyte Hubspot Connector for AI platforms
5
5
  Project-URL: Homepage, https://github.com/airbytehq/airbyte-embedded
6
6
  Project-URL: Documentation, https://github.com/airbytehq/airbyte-embedded/tree/main/integrations
@@ -41,10 +41,12 @@ tickets, and custom objects for customer relationship management and sales analy
41
41
 
42
42
  ## Example questions
43
43
 
44
- - Show me all deals from [Company] this quarter
44
+ The Hubspot connector is optimized to handle prompts like these.
45
+
46
+ - Show me all deals from \{company\} this quarter
45
47
  - What are the top 5 most valuable deals in my pipeline right now?
46
- - List recent tickets from [customerX] and analyze their support trends
47
- - Search for contacts in the marketing department at [Company]
48
+ - List recent tickets from \{customer\} and analyze their support trends
49
+ - Search for contacts in the marketing department at \{company\}
48
50
  - Give me an overview of my sales team's deals in the last 30 days
49
51
  - Identify the most active companies in our CRM this month
50
52
  - Compare the number of deals closed by different sales representatives
@@ -52,8 +54,10 @@ tickets, and custom objects for customer relationship management and sales analy
52
54
 
53
55
  ## Unsupported questions
54
56
 
55
- - Create a new contact record for [personX]
56
- - Update the contact information for [customerY]
57
+ The Hubspot connector isn't currently able to handle prompts like these.
58
+
59
+ - Create a new contact record for \{person\}
60
+ - Update the contact information for \{customer\}
57
61
  - Delete the ticket from last week's support case
58
62
  - Schedule a follow-up task for this deal
59
63
  - Send an email to all contacts in the sales pipeline
@@ -80,6 +84,7 @@ connector = HubspotConnector(
80
84
  result = await connector.contacts.list()
81
85
  ```
82
86
 
87
+
83
88
  ## Full documentation
84
89
 
85
90
  This connector supports the following entities and actions.
@@ -100,6 +105,6 @@ For the service's official API docs, see the [Hubspot API reference](https://dev
100
105
 
101
106
  ## Version information
102
107
 
103
- - **Package version:** 0.15.20
104
- - **Connector version:** 0.1.2
105
- - **Generated with Connector SDK commit SHA:** af45652142962c8574c427e5e2e6eb2db22445eb
108
+ - **Package version:** 0.15.28
109
+ - **Connector version:** 0.1.3
110
+ - **Generated with Connector SDK commit SHA:** 0580c7278394ff52ee3bec5d5192905ac3b15878
@@ -1,7 +1,7 @@
1
- airbyte_agent_hubspot/__init__.py,sha256=lkQsg1pCcCOqDW44J1iJJpIsLHiI5xDLPe86TathTuo,3861
2
- airbyte_agent_hubspot/connector.py,sha256=LoWCrxEZiH0trs70U_GwXrsqJMmdpEq7rM9ykSY_2Tc,43498
3
- airbyte_agent_hubspot/connector_model.py,sha256=I47hW_rc_bTJ7-CjOpDlQsko6KIPxcYE5KBpap4e1Jw,148176
4
- airbyte_agent_hubspot/models.py,sha256=XB_rFV6j-DM4nLlBgIv6Qb9TVWiU0LB2m89QAPOsUXY,20452
1
+ airbyte_agent_hubspot/__init__.py,sha256=4x_auxNYOqSh44LecxxBfCRXPj9lbAbVEwQoOoM3fn4,3861
2
+ airbyte_agent_hubspot/connector.py,sha256=SRJ9EUfM9xrnj4H5KtEmu_TMU60eXKlCCGMygWBxw9w,43498
3
+ airbyte_agent_hubspot/connector_model.py,sha256=BH4zHfe9M8HNNdhdz0v3eiMpKTHua9Vn675uAKJnbIY,148176
4
+ airbyte_agent_hubspot/models.py,sha256=7FqeeCTwWtWhyk8xs21wkhWZvv7m9xmkgOckKWyDj2o,20452
5
5
  airbyte_agent_hubspot/types.py,sha256=SraBhiq24dhJwB0nh8jysVFJ7UyCI8zSimb78yhel1c,7569
6
6
  airbyte_agent_hubspot/_vendored/__init__.py,sha256=ILl7AHXMui__swyrjxrh9yRa4dLiwBvV6axPWFWty80,38
7
7
  airbyte_agent_hubspot/_vendored/connector_sdk/__init__.py,sha256=T5o7roU6NSpH-lCAGZ338sE5dlh4ZU6i6IkeG1zpems,1949
@@ -11,7 +11,7 @@ airbyte_agent_hubspot/_vendored/connector_sdk/connector_model_loader.py,sha256=B
11
11
  airbyte_agent_hubspot/_vendored/connector_sdk/constants.py,sha256=uH4rjBX6WsBP8M0jt7AUJI9w5Adn4wvJwib7Gdfkr1M,2736
12
12
  airbyte_agent_hubspot/_vendored/connector_sdk/exceptions.py,sha256=ss5MGv9eVPmsbLcLWetuu3sDmvturwfo6Pw3M37Oq5k,481
13
13
  airbyte_agent_hubspot/_vendored/connector_sdk/extensions.py,sha256=iWA2i0kiiGZY84H8P25A6QmfbuZwu7euMcj4-Vx2DOQ,20185
14
- airbyte_agent_hubspot/_vendored/connector_sdk/http_client.py,sha256=Uv86Hye3uIs2F4TbXXFWnB4E6BHfvJQLBwak7J1_0kw,27073
14
+ airbyte_agent_hubspot/_vendored/connector_sdk/http_client.py,sha256=NdccrrBHI5rW56XnXcP54arCwywIVKnMeSQPas6KlOM,27466
15
15
  airbyte_agent_hubspot/_vendored/connector_sdk/secrets.py,sha256=UWcO9fP-vZwcfkAuvlZahlOCTOwdNN860BIwe8X4jxw,6868
16
16
  airbyte_agent_hubspot/_vendored/connector_sdk/types.py,sha256=sS9olOyT-kVemHmcFll2ePFRhTdGMbWcz7bSgV-MuSw,8114
17
17
  airbyte_agent_hubspot/_vendored/connector_sdk/utils.py,sha256=G4LUXOC2HzPoND2v4tQW68R9uuPX9NQyCjaGxb7Kpl0,1958
@@ -20,7 +20,7 @@ airbyte_agent_hubspot/_vendored/connector_sdk/cloud_utils/__init__.py,sha256=479
20
20
  airbyte_agent_hubspot/_vendored/connector_sdk/cloud_utils/client.py,sha256=HoDgZuEgGHj78P-BGwUf6HGPVWynbdKjGOmjb-JDk58,7188
21
21
  airbyte_agent_hubspot/_vendored/connector_sdk/executor/__init__.py,sha256=EmG9YQNAjSuYCVB4D5VoLm4qpD1KfeiiOf7bpALj8p8,702
22
22
  airbyte_agent_hubspot/_vendored/connector_sdk/executor/hosted_executor.py,sha256=YQ-qfT7PZh9izNFHHe7SAcETiZOKrWjTU-okVb0_VL8,7079
23
- airbyte_agent_hubspot/_vendored/connector_sdk/executor/local_executor.py,sha256=hHlBTtvykrUcfypzyW0e61fU4e3vlxc90mypCFzgSl0,61879
23
+ airbyte_agent_hubspot/_vendored/connector_sdk/executor/local_executor.py,sha256=Y79sYM63U_hmWKG6v-gFg24lfasafkJqzRK2U80tHOE,63003
24
24
  airbyte_agent_hubspot/_vendored/connector_sdk/executor/models.py,sha256=lYVT_bNcw-PoIks4WHNyl2VY-lJVf2FntzINSOBIheE,5845
25
25
  airbyte_agent_hubspot/_vendored/connector_sdk/http/__init__.py,sha256=y8fbzZn-3yV9OxtYz8Dy6FFGI5v6TOqADd1G3xHH3Hw,911
26
26
  airbyte_agent_hubspot/_vendored/connector_sdk/http/config.py,sha256=6J7YIIwHC6sRu9i-yKa5XvArwK2KU60rlnmxzDZq3lw,3283
@@ -50,6 +50,6 @@ airbyte_agent_hubspot/_vendored/connector_sdk/telemetry/__init__.py,sha256=RaLgk
50
50
  airbyte_agent_hubspot/_vendored/connector_sdk/telemetry/config.py,sha256=tLmQwAFD0kP1WyBGWBS3ysaudN9H3e-3EopKZi6cGKg,885
51
51
  airbyte_agent_hubspot/_vendored/connector_sdk/telemetry/events.py,sha256=NvqjlUbkm6cbGh4ffKxYxtjdwwgzfPF4MKJ2GfgWeFg,1285
52
52
  airbyte_agent_hubspot/_vendored/connector_sdk/telemetry/tracker.py,sha256=KacNdbHatvPPhnNrycp5YUuD5xpkp56AFcHd-zguBgk,5247
53
- airbyte_agent_hubspot-0.15.20.dist-info/METADATA,sha256=JPNdP_4FNHIFHcY0gyZcBLK5BMImsO8Xqdx3wjewvdY,4179
54
- airbyte_agent_hubspot-0.15.20.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
55
- airbyte_agent_hubspot-0.15.20.dist-info/RECORD,,
53
+ airbyte_agent_hubspot-0.15.28.dist-info/METADATA,sha256=guaeouPgdAp3VStJVxaFWwC5uK9qBxjw54zxC7ADw_w,4327
54
+ airbyte_agent_hubspot-0.15.28.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
55
+ airbyte_agent_hubspot-0.15.28.dist-info/RECORD,,