From 0f0df74c9af568d475eff57d87fdf8d03187d957 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 18:51:02 +0000 Subject: [PATCH 1/6] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index f8df0707..82327df8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 971 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hubspot%2Fhubspot-sdk-b0d8bc008db9e485496b486b6fb770a256d16caf430e7c8696cb5e2f61cb42ef.yml openapi_spec_hash: 73818ecf3b80406f1ff2729a9f1b2c97 -config_hash: b00859c0731e231e20f63b0a02182b30 +config_hash: 6feaec581cf8ab6cebc46bc62247bbab From 0e4825a0cd36e380c76e99d9dde488f0b06213cd Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 19:02:00 +0000 Subject: [PATCH 2/6] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 82327df8..d50e9bda 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 971 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hubspot%2Fhubspot-sdk-b0d8bc008db9e485496b486b6fb770a256d16caf430e7c8696cb5e2f61cb42ef.yml openapi_spec_hash: 73818ecf3b80406f1ff2729a9f1b2c97 -config_hash: 6feaec581cf8ab6cebc46bc62247bbab +config_hash: 189e9ba952e6b9155cf855b24832ae88 From cd3bbd9b5dab9158bb3b0bd6dfb744ae1af51898 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 19:47:40 +0000 Subject: [PATCH 3/6] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index d50e9bda..9e97092d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 971 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hubspot%2Fhubspot-sdk-b0d8bc008db9e485496b486b6fb770a256d16caf430e7c8696cb5e2f61cb42ef.yml openapi_spec_hash: 73818ecf3b80406f1ff2729a9f1b2c97 -config_hash: 189e9ba952e6b9155cf855b24832ae88 +config_hash: 47e0085f306c26287941a8b8d90cfa4c From f411b71a7e58d911fcfd8c88809cb69dec17da70 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 12:51:57 +0000 Subject: [PATCH 4/6] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 9e97092d..bfcf5e5e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 971 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hubspot%2Fhubspot-sdk-b0d8bc008db9e485496b486b6fb770a256d16caf430e7c8696cb5e2f61cb42ef.yml openapi_spec_hash: 73818ecf3b80406f1ff2729a9f1b2c97 -config_hash: 47e0085f306c26287941a8b8d90cfa4c +config_hash: 359e962cfe06d012301bf47065ab2903 From 0da4fad7676006ac24fb405a50413c61b4dc484e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 13:18:34 +0000 Subject: [PATCH 5/6] feat(api): manual updates --- .stats.yml | 8 +- api.md | 3 + src/hubspot_sdk/resources/auth/api.md | 7 +- src/hubspot_sdk/resources/auth/oauth.py | 67 +- src/hubspot_sdk/resources/cms/api.md | 3 +- .../resources/cms/media_bridge/batch.py | 6 +- .../cms/media_bridge/media_bridge.py | 28 + src/hubspot_sdk/resources/cms/url_mappings.py | 4 + .../communication_preferences.py | 54 + .../communication_preferences/definitions.py | 12 + .../statuses/batch.py | 40 + src/hubspot_sdk/resources/crm/api.md | 9 +- .../resources/crm/extensions/cards_dev.py | 4 + .../resources/crm/properties/batch.py | 6 +- .../resources/crm/properties/properties.py | 90 +- src/hubspot_sdk/resources/events/api.md | 5 +- .../resources/events/definitions.py | 2 +- src/hubspot_sdk/resources/webhooks/api.md | 42 +- .../resources/webhooks/webhooks.py | 1934 +++++++++++------ src/hubspot_sdk/types/__init__.py | 3 + src/hubspot_sdk/types/auth/__init__.py | 3 - .../auth/public_access_token_info_response.py | 39 - .../public_refresh_token_info_response.py | 32 - .../types/auth/signed_access_token.py | 39 - .../types/auth/token_info_response_base_if.py | 10 +- src/hubspot_sdk/types/cms/__init__.py | 2 +- src/hubspot_sdk/types/cms/absolute_value.py | 3 + src/hubspot_sdk/types/cms/add_numbers.py | 3 + src/hubspot_sdk/types/cms/add_time.py | 5 + src/hubspot_sdk/types/cms/and_.py | 3 + src/hubspot_sdk/types/cms/begins_with.py | 5 + src/hubspot_sdk/types/cms/concat_strings.py | 3 + src/hubspot_sdk/types/cms/contains.py | 5 + src/hubspot_sdk/types/cms/date.py | 3 + .../types/cms/dated_exchange_rate.py | 3 + src/hubspot_sdk/types/cms/divide_numbers.py | 3 + .../extract_most_recent_email_reply_html.py | 3 + .../extract_most_recent_email_reply_text.py | 3 + ...ract_most_recent_plain_text_email_reply.py | 3 + .../cms/fetch_currency_decimal_places.py | 3 + .../types/cms/fetch_exchange_rate.py | 3 + src/hubspot_sdk/types/cms/format_full_name.py | 3 + .../types/cms/format_phone_number.py | 3 + .../cms/format_searchable_phone_number.py | 3 + src/hubspot_sdk/types/cms/has_email_reply.py | 3 + .../types/cms/has_plain_text_email_reply.py | 3 + src/hubspot_sdk/types/cms/if_boolean.py | 7 + src/hubspot_sdk/types/cms/if_number.py | 7 + src/hubspot_sdk/types/cms/if_string.py | 7 + .../types/cms/inbound_db_object_type.py | 2 + src/hubspot_sdk/types/cms/is_blank.py | 256 +++ .../types/cms/is_pipeline_stage_closed.py | 3 + src/hubspot_sdk/types/cms/is_present.py | 3 + src/hubspot_sdk/types/cms/less_than.py | 3 + .../types/cms/less_than_or_equal.py | 3 + src/hubspot_sdk/types/cms/lower_case.py | 3 + src/hubspot_sdk/types/cms/max_numbers.py | 3 + .../cms/media_bridge/batch_create_params.py | 4 +- .../media_bridge_create_property_params.py | 9 + .../media_bridge_update_property_params.py | 9 + src/hubspot_sdk/types/cms/min_numbers.py | 3 + src/hubspot_sdk/types/cms/month.py | 3 + src/hubspot_sdk/types/cms/more_than.py | 3 + .../types/cms/more_than_or_equal.py | 3 + src/hubspot_sdk/types/cms/multiply_numbers.py | 3 + src/hubspot_sdk/types/cms/not_.py | 3 + src/hubspot_sdk/types/cms/number_equals.py | 3 + src/hubspot_sdk/types/cms/number_to_string.py | 3 + src/hubspot_sdk/types/cms/or_.py | 3 + src/hubspot_sdk/types/cms/parse_number.py | 3 + src/hubspot_sdk/types/cms/period_to_months.py | 3 + src/hubspot_sdk/types/cms/period_to_weeks.py | 3 + .../types/cms/pipeline_probability.py | 3 + src/hubspot_sdk/types/cms/power.py | 3 + src/hubspot_sdk/types/cms/property_1.py | 6 + .../types/cms/property_definition.py | 2 + .../types/cms/rollup_expression.py | 2 + .../types/cms/round_down_numbers.py | 3 + .../types/cms/round_nearest_numbers.py | 3 + src/hubspot_sdk/types/cms/round_up_numbers.py | 3 + .../types/cms/set_contains_string.py | 5 + src/hubspot_sdk/types/cms/square_root.py | 3 + src/hubspot_sdk/types/cms/string_equals.py | 3 + src/hubspot_sdk/types/cms/string_length.py | 3 + src/hubspot_sdk/types/cms/substring.py | 5 + src/hubspot_sdk/types/cms/subtract_numbers.py | 3 + src/hubspot_sdk/types/cms/subtract_time.py | 5 + src/hubspot_sdk/types/cms/time_between.py | 3 + .../types/cms/time_between_skip_weekends.py | 3 + src/hubspot_sdk/types/cms/upper_case.py | 3 + .../types/cms/url_mapping_create_params.py | 2 + src/hubspot_sdk/types/cms/xor.py | 3 + src/hubspot_sdk/types/cms/year.py | 3 + ...cation_preference_generate_links_params.py | 2 + ...nication_preference_get_statuses_params.py | 8 + ...rence_get_unsubscribe_all_status_params.py | 12 + ...ation_preference_unsubscribe_all_params.py | 9 + .../definition_list_params.py | 8 + ...tch_get_unsubscribe_all_statuses_params.py | 8 + .../statuses/batch_read_params.py | 5 + .../statuses/batch_unsubscribe_all_params.py | 12 + src/hubspot_sdk/types/crm/__init__.py | 2 - .../types/crm/batch_response_property.py | 2 +- .../collection_response_property_no_paging.py | 2 +- .../cards_dev_migrate_views_params.py | 2 + src/hubspot_sdk/types/crm/object_schema.py | 2 +- .../crm/properties/batch_create_params.py | 4 +- .../types/crm/property_create_param.py | 105 - .../types/crm/property_create_params.py | 43 +- .../types/crm/property_update_params.py | 5 + .../types/crm/simple_public_object.py | 2 +- .../simple_public_object_with_associations.py | 2 +- src/hubspot_sdk/types/events/__init__.py | 1 - ...ternal_behavioral_event_type_definition.py | 2 +- src/hubspot_sdk/types/events/property.py | 119 - ...endar_meeting_event_response_properties.py | 2 + src/hubspot_sdk/types/shared/__init__.py | 3 + .../shared/batch_input_property_create.py | 12 + .../types/{crm => shared}/property.py | 13 +- .../types/shared/property_create.py | 66 + .../types/shared/property_value.py | 2 + .../types/shared_params/__init__.py | 1 + .../property_create.py} | 15 +- .../types/shared_params/property_value.py | 2 + src/hubspot_sdk/types/webhooks/__init__.py | 69 +- .../types/webhooks/action_override_request.py | 16 + ...event_subscription_upsert_request_param.py | 4 +- ...ation_subscription_upsert_request_param.py | 5 +- .../batch_response_journal_fetch_response.py | 15 + .../batch_response_subscription_response.py | 22 +- ...esponse_subscription_response_no_paging.py | 4 + src/hubspot_sdk/types/webhooks/condition.py | 15 + .../types/webhooks/condition_param.py | 15 + .../crm_object_snapshot_batch_response.py | 4 + .../crm_object_snapshot_request_param.py | 10 + .../webhooks/crm_object_snapshot_response.py | 4 + src/hubspot_sdk/types/webhooks/filter.py | 5 + .../types/webhooks/filter_create_response.py | 4 + .../types/webhooks/filter_param.py | 5 + .../types/webhooks/filter_response.py | 5 + ...etion_subscription_upsert_request_param.py | 45 + .../types/webhooks/journal_fetch_response.py | 6 + ...rship_subscription_upsert_request_param.py | 5 +- ...bject_subscription_upsert_request_param.py | 5 +- .../types/webhooks/settings_response.py | 17 +- .../webhooks/snapshot_status_response.py | 23 + ...subscription_batch_update_request_param.py | 8 +- .../webhooks/subscription_list_response.py | 4 +- .../types/webhooks/subscription_response.py | 43 +- .../types/webhooks/subscription_response_1.py | 68 +- .../subscription_upsert_request_param.py | 2 + .../types/webhooks/throttling_settings.py | 5 +- .../webhooks/throttling_settings_param.py | 5 +- ...reate_batch_event_subscriptions_params.py} | 8 +- ...=> webhook_create_crm_snapshots_params.py} | 8 +- ...bhook_create_event_subscription_params.py} | 30 +- ...bhook_create_subscription_filter_params.py | 4 + ...bhook_get_earliest_journal_batch_params.py | 4 + ...hook_get_earliest_journal_entry_params.py} | 8 +- ...get_earliest_local_journal_batch_params.py | 4 + ...get_earliest_local_journal_entry_params.py | 17 + ...ok_get_journal_batch_by_request_params.py} | 8 +- ...k_get_journal_batch_from_offset_params.py} | 9 +- ...webhook_get_latest_journal_batch_params.py | 5 + ...ebhook_get_latest_journal_entry_params.py} | 8 +- ...k_get_latest_local_journal_batch_params.py | 4 + ..._get_latest_local_journal_entry_params.py} | 8 +- ..._local_journal_batch_by_request_params.py} | 9 +- ...local_journal_batch_from_offset_params.py} | 8 +- ...ok_get_next_journal_after_offset_params.py | 13 - ...ebhook_get_next_journal_entries_params.py} | 8 +- ..._next_local_journal_after_offset_params.py | 13 - ...k_get_next_local_journal_entries_params.py | 17 + ...ook_list_subscription_filters_response.py} | 4 +- ...bhook_update_event_subscription_params.py} | 4 +- tests/api_resources/cms/test_media_bridge.py | 12 + tests/api_resources/cms/test_url_mappings.py | 6 + .../crm/extensions/test_cards_dev.py | 8 + tests/api_resources/crm/test_properties.py | 6 +- .../api_resources/events/test_definitions.py | 2 +- tests/api_resources/test_webhooks.py | 1526 +++++++------ 181 files changed, 3466 insertions(+), 2148 deletions(-) delete mode 100644 src/hubspot_sdk/types/auth/public_access_token_info_response.py delete mode 100644 src/hubspot_sdk/types/auth/public_refresh_token_info_response.py delete mode 100644 src/hubspot_sdk/types/auth/signed_access_token.py create mode 100644 src/hubspot_sdk/types/cms/is_blank.py delete mode 100644 src/hubspot_sdk/types/crm/property_create_param.py delete mode 100644 src/hubspot_sdk/types/events/property.py create mode 100644 src/hubspot_sdk/types/shared/batch_input_property_create.py rename src/hubspot_sdk/types/{crm => shared}/property.py (91%) create mode 100644 src/hubspot_sdk/types/shared/property_create.py rename src/hubspot_sdk/types/{cms/property_create_param.py => shared_params/property_create.py} (77%) create mode 100644 src/hubspot_sdk/types/webhooks/gdpr_privacy_deletion_subscription_upsert_request_param.py rename src/hubspot_sdk/types/webhooks/{webhook_create_subscriptions_batch_params.py => webhook_create_batch_event_subscriptions_params.py} (56%) rename src/hubspot_sdk/types/webhooks/{webhook_create_crm_snapshot_params.py => webhook_create_crm_snapshots_params.py} (62%) rename src/hubspot_sdk/types/webhooks/{webhook_create_subscription_params.py => webhook_create_event_subscription_params.py} (75%) rename src/hubspot_sdk/types/webhooks/{webhook_get_earliest_local_journal_params.py => webhook_get_earliest_journal_entry_params.py} (56%) create mode 100644 src/hubspot_sdk/types/webhooks/webhook_get_earliest_local_journal_entry_params.py rename src/hubspot_sdk/types/webhooks/{webhook_get_local_journal_batch_params.py => webhook_get_journal_batch_by_request_params.py} (63%) rename src/hubspot_sdk/types/webhooks/{webhook_get_journal_batch_after_offset_params.py => webhook_get_journal_batch_from_offset_params.py} (51%) rename src/hubspot_sdk/types/webhooks/{webhook_get_earliest_journal_params.py => webhook_get_latest_journal_entry_params.py} (55%) rename src/hubspot_sdk/types/webhooks/{webhook_get_latest_journal_params.py => webhook_get_latest_local_journal_entry_params.py} (55%) rename src/hubspot_sdk/types/webhooks/{webhook_get_journal_batch_params.py => webhook_get_local_journal_batch_by_request_params.py} (57%) rename src/hubspot_sdk/types/webhooks/{webhook_get_local_journal_batch_after_offset_params.py => webhook_get_local_journal_batch_from_offset_params.py} (58%) delete mode 100644 src/hubspot_sdk/types/webhooks/webhook_get_next_journal_after_offset_params.py rename src/hubspot_sdk/types/webhooks/{webhook_get_latest_local_journal_params.py => webhook_get_next_journal_entries_params.py} (57%) delete mode 100644 src/hubspot_sdk/types/webhooks/webhook_get_next_local_journal_after_offset_params.py create mode 100644 src/hubspot_sdk/types/webhooks/webhook_get_next_local_journal_entries_params.py rename src/hubspot_sdk/types/webhooks/{webhook_get_subscription_filters_response.py => webhook_list_subscription_filters_response.py} (61%) rename src/hubspot_sdk/types/webhooks/{webhook_update_subscription_params.py => webhook_update_event_subscription_params.py} (81%) diff --git a/.stats.yml b/.stats.yml index bfcf5e5e..91054144 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 971 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hubspot%2Fhubspot-sdk-b0d8bc008db9e485496b486b6fb770a256d16caf430e7c8696cb5e2f61cb42ef.yml -openapi_spec_hash: 73818ecf3b80406f1ff2729a9f1b2c97 -config_hash: 359e962cfe06d012301bf47065ab2903 +configured_endpoints: 972 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hubspot%2Fhubspot-sdk-10919d69a6e90c90609c258a2f5e28439f1330d7219f2febee724d1beb81ba53.yml +openapi_spec_hash: 797d5ce41890b09309e124e9f74fad45 +config_hash: 5f3ac65868b9b42b135beebc978b43b1 diff --git a/api.md b/api.md index 855059e7..8800e756 100644 --- a/api.md +++ b/api.md @@ -8,6 +8,7 @@ from hubspot_sdk.types import ( AssociationDefinitionEgg, AssociationSpec, AutomationActionsOption, + BatchInputPropertyCreate, BatchInputPropertyName, BatchInputPublicObjectID, BatchInputString, @@ -24,6 +25,8 @@ from hubspot_sdk.types import ( OptionInput, Paging, PreviousPage, + Property, + PropertyCreate, PropertyGroup, PropertyGroupCreate, PropertyGroupUpdate, diff --git a/src/hubspot_sdk/resources/auth/api.md b/src/hubspot_sdk/resources/auth/api.md index b1bda6f9..7bfc5740 100644 --- a/src/hubspot_sdk/resources/auth/api.md +++ b/src/hubspot_sdk/resources/auth/api.md @@ -5,12 +5,7 @@ Types: ```python -from hubspot_sdk.types.auth import ( - PublicAccessTokenInfoResponse, - PublicRefreshTokenInfoResponse, - SignedAccessToken, - TokenInfoResponseBaseIf, -) +from hubspot_sdk.types.auth import TokenInfoResponseBaseIf ``` Methods: diff --git a/src/hubspot_sdk/resources/auth/oauth.py b/src/hubspot_sdk/resources/auth/oauth.py index 939a4b53..5694b63c 100644 --- a/src/hubspot_sdk/resources/auth/oauth.py +++ b/src/hubspot_sdk/resources/auth/oauth.py @@ -2,7 +2,6 @@ from __future__ import annotations -from typing import Any, cast from typing_extensions import Literal import httpx @@ -130,26 +129,21 @@ def introspect_token( timeout: Override the client-level default timeout for this request, in seconds """ - return cast( - TokenInfoResponseBaseIf, - self._post( - "/oauth/2026-03/token/introspect", - body=maybe_transform( - { - "token": token, - "client_id": client_id, - "client_secret": client_secret, - "token_type_hint": token_type_hint, - }, - oauth_introspect_token_params.OAuthIntrospectTokenParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=cast( - Any, TokenInfoResponseBaseIf - ), # Union types cannot be passed in as arguments in the type system + return self._post( + "/oauth/2026-03/token/introspect", + body=maybe_transform( + { + "token": token, + "client_id": client_id, + "client_secret": client_secret, + "token_type_hint": token_type_hint, + }, + oauth_introspect_token_params.OAuthIntrospectTokenParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), + cast_to=TokenInfoResponseBaseIf, ) def revoke_token( @@ -295,26 +289,21 @@ async def introspect_token( timeout: Override the client-level default timeout for this request, in seconds """ - return cast( - TokenInfoResponseBaseIf, - await self._post( - "/oauth/2026-03/token/introspect", - body=await async_maybe_transform( - { - "token": token, - "client_id": client_id, - "client_secret": client_secret, - "token_type_hint": token_type_hint, - }, - oauth_introspect_token_params.OAuthIntrospectTokenParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=cast( - Any, TokenInfoResponseBaseIf - ), # Union types cannot be passed in as arguments in the type system + return await self._post( + "/oauth/2026-03/token/introspect", + body=await async_maybe_transform( + { + "token": token, + "client_id": client_id, + "client_secret": client_secret, + "token_type_hint": token_type_hint, + }, + oauth_introspect_token_params.OAuthIntrospectTokenParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), + cast_to=TokenInfoResponseBaseIf, ) async def revoke_token( diff --git a/src/hubspot_sdk/resources/cms/api.md b/src/hubspot_sdk/resources/cms/api.md index 4c9f2013..c18ee091 100644 --- a/src/hubspot_sdk/resources/cms/api.md +++ b/src/hubspot_sdk/resources/cms/api.md @@ -343,7 +343,6 @@ from hubspot_sdk.types.cms import ( AttentionSpanCalculatedValues, AttentionSpanEvent, AttentionSpanEventRequest, - BatchInputPropertyCreate, BatchResponseProperty, BatchResponsePropertyWithErrors, BeginsWith, @@ -392,6 +391,7 @@ from hubspot_sdk.types.cms import ( IntegratorOEmbedDomainRequest, IntegratorObjectCreationRequest, IntegratorObjectCreationResponse, + IsBlank, IsEngagementType, IsPipelineStageClosed, IsPresent, @@ -432,7 +432,6 @@ from hubspot_sdk.types.cms import ( Power, Property, Property1, - PropertyCreate, PropertyDefinition, PropertyDefinitionSource, RequiredPropertiesExtensionData, diff --git a/src/hubspot_sdk/resources/cms/media_bridge/batch.py b/src/hubspot_sdk/resources/cms/media_bridge/batch.py index 3ad27db4..8bb73e47 100644 --- a/src/hubspot_sdk/resources/cms/media_bridge/batch.py +++ b/src/hubspot_sdk/resources/cms/media_bridge/batch.py @@ -19,9 +19,9 @@ ) from ...._base_client import make_request_options from ....types.cms.media_bridge import batch_get_params, batch_create_params, batch_delete_params -from ....types.cms.property_create_param import PropertyCreateParam from ....types.cms.batch_response_property import BatchResponseProperty from ....types.shared_params.property_name import PropertyName +from ....types.shared_params.property_create import PropertyCreate __all__ = ["BatchResource", "AsyncBatchResource"] @@ -51,7 +51,7 @@ def create( object_type: str, *, app_id: int, - inputs: Iterable[PropertyCreateParam], + inputs: Iterable[PropertyCreate], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -202,7 +202,7 @@ async def create( object_type: str, *, app_id: int, - inputs: Iterable[PropertyCreateParam], + inputs: Iterable[PropertyCreate], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, diff --git a/src/hubspot_sdk/resources/cms/media_bridge/media_bridge.py b/src/hubspot_sdk/resources/cms/media_bridge/media_bridge.py index 02de9cfd..39dbf75f 100644 --- a/src/hubspot_sdk/resources/cms/media_bridge/media_bridge.py +++ b/src/hubspot_sdk/resources/cms/media_bridge/media_bridge.py @@ -450,6 +450,7 @@ def create_property( name: str, type: Literal["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"], calculation_formula: str | Omit = omit, + currency_property_name: str | Omit = omit, data_sensitivity: Literal["highly_sensitive", "non_sensitive", "sensitive"] | Omit = omit, description: str | Omit = omit, display_order: int | Omit = omit, @@ -457,8 +458,11 @@ def create_property( form_field: bool | Omit = omit, has_unique_value: bool | Omit = omit, hidden: bool | Omit = omit, + number_display_hint: Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"] + | Omit = omit, options: Iterable[OptionInput] | Omit = omit, referenced_object_type: str | Omit = omit, + show_currency_symbol: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -492,6 +496,7 @@ def create_property( "name": name, "type": type, "calculation_formula": calculation_formula, + "currency_property_name": currency_property_name, "data_sensitivity": data_sensitivity, "description": description, "display_order": display_order, @@ -499,8 +504,10 @@ def create_property( "form_field": form_field, "has_unique_value": has_unique_value, "hidden": hidden, + "number_display_hint": number_display_hint, "options": options, "referenced_object_type": referenced_object_type, + "show_currency_symbol": show_currency_symbol, }, media_bridge_create_property_params.MediaBridgeCreatePropertyParams, ), @@ -1319,6 +1326,7 @@ def update_property( app_id: int, object_type: str, calculation_formula: str | Omit = omit, + currency_property_name: str | Omit = omit, description: str | Omit = omit, display_order: int | Omit = omit, field_type: Literal[ @@ -1341,7 +1349,10 @@ def update_property( has_unique_value: bool | Omit = omit, hidden: bool | Omit = omit, label: str | Omit = omit, + number_display_hint: Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"] + | Omit = omit, options: Iterable[OptionInput] | Omit = omit, + show_currency_symbol: bool | Omit = omit, type: Literal["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -1376,6 +1387,7 @@ def update_property( body=maybe_transform( { "calculation_formula": calculation_formula, + "currency_property_name": currency_property_name, "description": description, "display_order": display_order, "field_type": field_type, @@ -1384,7 +1396,9 @@ def update_property( "has_unique_value": has_unique_value, "hidden": hidden, "label": label, + "number_display_hint": number_display_hint, "options": options, + "show_currency_symbol": show_currency_symbol, "type": type, }, media_bridge_update_property_params.MediaBridgeUpdatePropertyParams, @@ -1925,6 +1939,7 @@ async def create_property( name: str, type: Literal["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"], calculation_formula: str | Omit = omit, + currency_property_name: str | Omit = omit, data_sensitivity: Literal["highly_sensitive", "non_sensitive", "sensitive"] | Omit = omit, description: str | Omit = omit, display_order: int | Omit = omit, @@ -1932,8 +1947,11 @@ async def create_property( form_field: bool | Omit = omit, has_unique_value: bool | Omit = omit, hidden: bool | Omit = omit, + number_display_hint: Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"] + | Omit = omit, options: Iterable[OptionInput] | Omit = omit, referenced_object_type: str | Omit = omit, + show_currency_symbol: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1967,6 +1985,7 @@ async def create_property( "name": name, "type": type, "calculation_formula": calculation_formula, + "currency_property_name": currency_property_name, "data_sensitivity": data_sensitivity, "description": description, "display_order": display_order, @@ -1974,8 +1993,10 @@ async def create_property( "form_field": form_field, "has_unique_value": has_unique_value, "hidden": hidden, + "number_display_hint": number_display_hint, "options": options, "referenced_object_type": referenced_object_type, + "show_currency_symbol": show_currency_symbol, }, media_bridge_create_property_params.MediaBridgeCreatePropertyParams, ), @@ -2794,6 +2815,7 @@ async def update_property( app_id: int, object_type: str, calculation_formula: str | Omit = omit, + currency_property_name: str | Omit = omit, description: str | Omit = omit, display_order: int | Omit = omit, field_type: Literal[ @@ -2816,7 +2838,10 @@ async def update_property( has_unique_value: bool | Omit = omit, hidden: bool | Omit = omit, label: str | Omit = omit, + number_display_hint: Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"] + | Omit = omit, options: Iterable[OptionInput] | Omit = omit, + show_currency_symbol: bool | Omit = omit, type: Literal["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -2851,6 +2876,7 @@ async def update_property( body=await async_maybe_transform( { "calculation_formula": calculation_formula, + "currency_property_name": currency_property_name, "description": description, "display_order": display_order, "field_type": field_type, @@ -2859,7 +2885,9 @@ async def update_property( "has_unique_value": has_unique_value, "hidden": hidden, "label": label, + "number_display_hint": number_display_hint, "options": options, + "show_currency_symbol": show_currency_symbol, "type": type, }, media_bridge_update_property_params.MediaBridgeUpdatePropertyParams, diff --git a/src/hubspot_sdk/resources/cms/url_mappings.py b/src/hubspot_sdk/resources/cms/url_mappings.py index 679522c8..a2227919 100644 --- a/src/hubspot_sdk/resources/cms/url_mappings.py +++ b/src/hubspot_sdk/resources/cms/url_mappings.py @@ -133,6 +133,7 @@ def create( is_regex: bool, is_trailing_slash_optional: bool, label: str, + last_used_at: int, name: str, note: str, portal_id: int, @@ -246,6 +247,7 @@ def create( "is_regex": is_regex, "is_trailing_slash_optional": is_trailing_slash_optional, "label": label, + "last_used_at": last_used_at, "name": name, "note": note, "portal_id": portal_id, @@ -462,6 +464,7 @@ async def create( is_regex: bool, is_trailing_slash_optional: bool, label: str, + last_used_at: int, name: str, note: str, portal_id: int, @@ -575,6 +578,7 @@ async def create( "is_regex": is_regex, "is_trailing_slash_optional": is_trailing_slash_optional, "label": label, + "last_used_at": last_used_at, "name": name, "note": note, "portal_id": portal_id, diff --git a/src/hubspot_sdk/resources/communication_preferences/communication_preferences.py b/src/hubspot_sdk/resources/communication_preferences/communication_preferences.py index a458d818..9dbecad2 100644 --- a/src/hubspot_sdk/resources/communication_preferences/communication_preferences.py +++ b/src/hubspot_sdk/resources/communication_preferences/communication_preferences.py @@ -102,9 +102,13 @@ def generate_links( management into your applications. Args: + channel: The communication channel for which the links are generated. Must be 'EMAIL'. + subscriber_id_string: A string representing the unique identifier of the subscriber. This property is required. + business_unit_id: The identifier of the business unit. Defaults to 0 if not specified. + language: The language in which the generated link should be presented, represented as a string. @@ -162,6 +166,12 @@ def get_statuses( Retrieve a contact's current email subscription preferences. Args: + channel: The communication channel for which the subscription status is being retrieved. + This parameter is required and currently supports only 'EMAIL'. + + business_unit_id: The ID of the business unit to filter the subscription status by. This is an + optional parameter. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -216,6 +226,15 @@ def get_unsubscribe_all_status( will be empty. Args: + channel: The communication channel from which to unsubscribe the subscriber. This is a + required parameter and must be 'EMAIL'. + + business_unit_id: The ID of the business unit to which the subscriber belongs. This is an optional + parameter. + + verbose: A boolean indicating whether to include detailed information in the response. + Defaults to false. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -268,6 +287,14 @@ def unsubscribe_all( Unsubscribe a contact from all email subscriptions. Args: + channel: The communication channel to unsubscribe from. Must be 'EMAIL'. + + business_unit_id: The ID of the business unit associated with the request. This is an optional + integer parameter. + + verbose: A boolean indicating whether to include detailed information in the response. + Defaults to false. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -430,9 +457,13 @@ async def generate_links( management into your applications. Args: + channel: The communication channel for which the links are generated. Must be 'EMAIL'. + subscriber_id_string: A string representing the unique identifier of the subscriber. This property is required. + business_unit_id: The identifier of the business unit. Defaults to 0 if not specified. + language: The language in which the generated link should be presented, represented as a string. @@ -490,6 +521,12 @@ async def get_statuses( Retrieve a contact's current email subscription preferences. Args: + channel: The communication channel for which the subscription status is being retrieved. + This parameter is required and currently supports only 'EMAIL'. + + business_unit_id: The ID of the business unit to filter the subscription status by. This is an + optional parameter. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -544,6 +581,15 @@ async def get_unsubscribe_all_status( will be empty. Args: + channel: The communication channel from which to unsubscribe the subscriber. This is a + required parameter and must be 'EMAIL'. + + business_unit_id: The ID of the business unit to which the subscriber belongs. This is an optional + parameter. + + verbose: A boolean indicating whether to include detailed information in the response. + Defaults to false. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -596,6 +642,14 @@ async def unsubscribe_all( Unsubscribe a contact from all email subscriptions. Args: + channel: The communication channel to unsubscribe from. Must be 'EMAIL'. + + business_unit_id: The ID of the business unit associated with the request. This is an optional + integer parameter. + + verbose: A boolean indicating whether to include detailed information in the response. + Defaults to false. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/hubspot_sdk/resources/communication_preferences/definitions.py b/src/hubspot_sdk/resources/communication_preferences/definitions.py index d3e1fc80..646eb6f3 100644 --- a/src/hubspot_sdk/resources/communication_preferences/definitions.py +++ b/src/hubspot_sdk/resources/communication_preferences/definitions.py @@ -59,6 +59,12 @@ def list( Get a list of subscription status definitions from the account. Args: + business_unit_id: An integer representing the ID of the business unit for which to retrieve + subscription definitions. + + include_translations: A boolean indicating whether to include translations of the communication + preferences definitions in the response. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -122,6 +128,12 @@ async def list( Get a list of subscription status definitions from the account. Args: + business_unit_id: An integer representing the ID of the business unit for which to retrieve + subscription definitions. + + include_translations: A boolean indicating whether to include translations of the communication + preferences definitions in the response. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/hubspot_sdk/resources/communication_preferences/statuses/batch.py b/src/hubspot_sdk/resources/communication_preferences/statuses/batch.py index bf7d830f..bfccf73e 100644 --- a/src/hubspot_sdk/resources/communication_preferences/statuses/batch.py +++ b/src/hubspot_sdk/resources/communication_preferences/statuses/batch.py @@ -76,8 +76,14 @@ def get_unsubscribe_all_statuses( Checks whether a set of contacts have opted out of all communications. Args: + channel: The communication channel to filter the unsubscribe statuses. This parameter is + required and currently supports 'EMAIL' as a valid value. + inputs: Strings to input. + business_unit_id: The ID of the business unit to filter the results. This is an optional + parameter. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -124,8 +130,13 @@ def read( Batch retrieve subscription statuses for a set of contacts. Args: + channel: The communication channel to filter the subscription statuses. Must be 'EMAIL'. + inputs: Strings to input. + business_unit_id: An optional integer representing the business unit ID. This parameter helps to + filter the results based on the specific business unit. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -171,8 +182,17 @@ def unsubscribe_all( Unsubscribe a set of contacts from all email subscriptions. Args: + channel: The communication channel from which subscribers will be unsubscribed. This + parameter is required and currently supports only 'EMAIL'. + inputs: Strings to input. + business_unit_id: An optional integer representing the business unit ID for which the operation is + being performed. + + verbose: A boolean indicating whether to include detailed information in the response. + Defaults to false. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -274,8 +294,14 @@ async def get_unsubscribe_all_statuses( Checks whether a set of contacts have opted out of all communications. Args: + channel: The communication channel to filter the unsubscribe statuses. This parameter is + required and currently supports 'EMAIL' as a valid value. + inputs: Strings to input. + business_unit_id: The ID of the business unit to filter the results. This is an optional + parameter. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -322,8 +348,13 @@ async def read( Batch retrieve subscription statuses for a set of contacts. Args: + channel: The communication channel to filter the subscription statuses. Must be 'EMAIL'. + inputs: Strings to input. + business_unit_id: An optional integer representing the business unit ID. This parameter helps to + filter the results based on the specific business unit. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -369,8 +400,17 @@ async def unsubscribe_all( Unsubscribe a set of contacts from all email subscriptions. Args: + channel: The communication channel from which subscribers will be unsubscribed. This + parameter is required and currently supports only 'EMAIL'. + inputs: Strings to input. + business_unit_id: An optional integer representing the business unit ID for which the operation is + being performed. + + verbose: A boolean indicating whether to include detailed information in the response. + Defaults to false. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/hubspot_sdk/resources/crm/api.md b/src/hubspot_sdk/resources/crm/api.md index 1d3cd622..90db82c3 100644 --- a/src/hubspot_sdk/resources/crm/api.md +++ b/src/hubspot_sdk/resources/crm/api.md @@ -12,7 +12,6 @@ from hubspot_sdk.types.crm import ( FilterGroup, LabelsBetweenObjectPair, MultiAssociatedObjectWithLabel, - Property, PublicDefaultAssociation, PublicObjectSearchRequest, SimplePublicObject, @@ -1393,22 +1392,20 @@ Types: ```python from hubspot_sdk.types.crm import ( - BatchInputPropertyCreate, BatchResponseProperty, BatchResponsePropertyWithErrors, CollectionResponsePropertyNoPaging, - PropertyCreate, PropertyUpdate, ) ``` Methods: -- client.crm.properties.create(object_type, \*\*params) -> Property -- client.crm.properties.update(property_name, \*, object_type, \*\*params) -> Property +- client.crm.properties.create(object_type, \*\*params) -> Property +- client.crm.properties.update(property_name, \*, object_type, \*\*params) -> Property - client.crm.properties.list(object_type, \*\*params) -> CollectionResponsePropertyNoPaging - client.crm.properties.delete(property_name, \*, object_type) -> None -- client.crm.properties.get(property_name, \*, object_type, \*\*params) -> Property +- client.crm.properties.get(property_name, \*, object_type, \*\*params) -> Property ### Batch diff --git a/src/hubspot_sdk/resources/crm/extensions/cards_dev.py b/src/hubspot_sdk/resources/crm/extensions/cards_dev.py index b24e8f0f..a19dfbc9 100644 --- a/src/hubspot_sdk/resources/crm/extensions/cards_dev.py +++ b/src/hubspot_sdk/resources/crm/extensions/cards_dev.py @@ -279,6 +279,7 @@ def migrate_views( self, app_id: int, *, + allow_duplicate_app_card_ids: bool, app_card_id: int, legacy_crm_card_id: int, helpdesk_app_card_id: int | Omit = omit, @@ -303,6 +304,7 @@ def migrate_views( path_template("/crm/extensions/cards-dev/2026-03/{app_id}/views/migrate", app_id=app_id), body=maybe_transform( { + "allow_duplicate_app_card_ids": allow_duplicate_app_card_ids, "app_card_id": app_card_id, "legacy_crm_card_id": legacy_crm_card_id, "helpdesk_app_card_id": helpdesk_app_card_id, @@ -563,6 +565,7 @@ async def migrate_views( self, app_id: int, *, + allow_duplicate_app_card_ids: bool, app_card_id: int, legacy_crm_card_id: int, helpdesk_app_card_id: int | Omit = omit, @@ -587,6 +590,7 @@ async def migrate_views( path_template("/crm/extensions/cards-dev/2026-03/{app_id}/views/migrate", app_id=app_id), body=await async_maybe_transform( { + "allow_duplicate_app_card_ids": allow_duplicate_app_card_ids, "app_card_id": app_card_id, "legacy_crm_card_id": legacy_crm_card_id, "helpdesk_app_card_id": helpdesk_app_card_id, diff --git a/src/hubspot_sdk/resources/crm/properties/batch.py b/src/hubspot_sdk/resources/crm/properties/batch.py index 8f010fba..58bff514 100644 --- a/src/hubspot_sdk/resources/crm/properties/batch.py +++ b/src/hubspot_sdk/resources/crm/properties/batch.py @@ -19,9 +19,9 @@ ) from ...._base_client import make_request_options from ....types.crm.properties import batch_get_params, batch_create_params, batch_delete_params -from ....types.crm.property_create_param import PropertyCreateParam from ....types.crm.batch_response_property import BatchResponseProperty from ....types.shared_params.property_name import PropertyName +from ....types.shared_params.property_create import PropertyCreate __all__ = ["BatchResource", "AsyncBatchResource"] @@ -50,7 +50,7 @@ def create( self, object_type: str, *, - inputs: Iterable[PropertyCreateParam], + inputs: Iterable[PropertyCreate], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -195,7 +195,7 @@ async def create( self, object_type: str, *, - inputs: Iterable[PropertyCreateParam], + inputs: Iterable[PropertyCreate], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, diff --git a/src/hubspot_sdk/resources/crm/properties/properties.py b/src/hubspot_sdk/resources/crm/properties/properties.py index d57cfb2f..dd6513ae 100644 --- a/src/hubspot_sdk/resources/crm/properties/properties.py +++ b/src/hubspot_sdk/resources/crm/properties/properties.py @@ -35,7 +35,7 @@ ) from ....types.crm import property_get_params, property_list_params, property_create_params, property_update_params from ...._base_client import make_request_options -from ....types.crm.property import Property +from ....types.shared.property import Property from ....types.shared_params.option_input import OptionInput from ....types.crm.collection_response_property_no_paging import CollectionResponsePropertyNoPaging @@ -101,6 +101,8 @@ def create( form_field: bool | Omit = omit, has_unique_value: bool | Omit = omit, hidden: bool | Omit = omit, + number_display_hint: Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"] + | Omit = omit, options: Iterable[OptionInput] | Omit = omit, referenced_object_type: str | Omit = omit, show_currency_symbol: bool | Omit = omit, @@ -115,44 +117,6 @@ def create( Create and return a copy of a new property for the specified object type. Args: - field_type: Controls how the property appears in HubSpot. - - group_name: The name of the property group the property belongs to. - - label: A human-readable property label that will be shown in HubSpot. - - name: The internal property name, which must be used when referencing the property via - the API. - - type: The data type of the property. - - calculation_formula: Represents a formula that is used to compute a calculated property. - - data_sensitivity: Indicates the sensitivity level of the property, with options: highly_sensitive, - non_sensitive, or sensitive. - - description: A description of the property that will be shown as help text in HubSpot. - - display_order: Properties are displayed in order starting with the lowest positive integer - value. Values of -1 will cause the property to be displayed after any positive - values. - - external_options: Applicable only for 'enumeration' type properties. Should be set to true in - conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false. - - form_field: Whether or not the property can be used in a HubSpot form. - - has_unique_value: Whether or not the property's value must be unique. Once set, this can't be - changed. - - hidden: If true, the property won't be visible and can't be used in HubSpot. - - options: A list of valid options for the property. This field is required for enumerated - properties. - - referenced_object_type: Should be set to 'OWNER' when 'externalOptions' is true, which causes the - property to dynamically pull option values from the current HubSpot users. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -181,6 +145,7 @@ def create( "form_field": form_field, "has_unique_value": has_unique_value, "hidden": hidden, + "number_display_hint": number_display_hint, "options": options, "referenced_object_type": referenced_object_type, "show_currency_symbol": show_currency_symbol, @@ -221,6 +186,8 @@ def update( group_name: str | Omit = omit, hidden: bool | Omit = omit, label: str | Omit = omit, + number_display_hint: Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"] + | Omit = omit, options: Iterable[OptionInput] | Omit = omit, show_currency_symbol: bool | Omit = omit, type: Literal["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"] | Omit = omit, @@ -288,6 +255,7 @@ def update( "group_name": group_name, "hidden": hidden, "label": label, + "number_display_hint": number_display_hint, "options": options, "show_currency_symbol": show_currency_symbol, "type": type, @@ -510,6 +478,8 @@ async def create( form_field: bool | Omit = omit, has_unique_value: bool | Omit = omit, hidden: bool | Omit = omit, + number_display_hint: Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"] + | Omit = omit, options: Iterable[OptionInput] | Omit = omit, referenced_object_type: str | Omit = omit, show_currency_symbol: bool | Omit = omit, @@ -524,44 +494,6 @@ async def create( Create and return a copy of a new property for the specified object type. Args: - field_type: Controls how the property appears in HubSpot. - - group_name: The name of the property group the property belongs to. - - label: A human-readable property label that will be shown in HubSpot. - - name: The internal property name, which must be used when referencing the property via - the API. - - type: The data type of the property. - - calculation_formula: Represents a formula that is used to compute a calculated property. - - data_sensitivity: Indicates the sensitivity level of the property, with options: highly_sensitive, - non_sensitive, or sensitive. - - description: A description of the property that will be shown as help text in HubSpot. - - display_order: Properties are displayed in order starting with the lowest positive integer - value. Values of -1 will cause the property to be displayed after any positive - values. - - external_options: Applicable only for 'enumeration' type properties. Should be set to true in - conjunction with a 'referencedObjectType' of 'OWNER'. Otherwise false. - - form_field: Whether or not the property can be used in a HubSpot form. - - has_unique_value: Whether or not the property's value must be unique. Once set, this can't be - changed. - - hidden: If true, the property won't be visible and can't be used in HubSpot. - - options: A list of valid options for the property. This field is required for enumerated - properties. - - referenced_object_type: Should be set to 'OWNER' when 'externalOptions' is true, which causes the - property to dynamically pull option values from the current HubSpot users. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -590,6 +522,7 @@ async def create( "form_field": form_field, "has_unique_value": has_unique_value, "hidden": hidden, + "number_display_hint": number_display_hint, "options": options, "referenced_object_type": referenced_object_type, "show_currency_symbol": show_currency_symbol, @@ -630,6 +563,8 @@ async def update( group_name: str | Omit = omit, hidden: bool | Omit = omit, label: str | Omit = omit, + number_display_hint: Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"] + | Omit = omit, options: Iterable[OptionInput] | Omit = omit, show_currency_symbol: bool | Omit = omit, type: Literal["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"] | Omit = omit, @@ -697,6 +632,7 @@ async def update( "group_name": group_name, "hidden": hidden, "label": label, + "number_display_hint": number_display_hint, "options": options, "show_currency_symbol": show_currency_symbol, "type": type, diff --git a/src/hubspot_sdk/resources/events/api.md b/src/hubspot_sdk/resources/events/api.md index fe3953c9..9fa7e639 100644 --- a/src/hubspot_sdk/resources/events/api.md +++ b/src/hubspot_sdk/resources/events/api.md @@ -52,7 +52,6 @@ from hubspot_sdk.types.events import ( NowReference, NumOccurrencesRefineBy, NumberPropertyOperation, - Property, PropertyFilter, PropertyFilterContext, PropertyReferencedTime, @@ -81,11 +80,11 @@ Methods: - client.events.definitions.update(event_name, \*\*params) -> ExternalBehavioralEventTypeDefinition - client.events.definitions.list(\*\*params) -> SyncPage[ExternalBehavioralEventTypeDefinition] - client.events.definitions.delete(event_name) -> None -- client.events.definitions.create_property(event_name, \*\*params) -> Property +- client.events.definitions.create_property(event_name, \*\*params) -> Property - client.events.definitions.delete_property(property_name, \*, event_name) -> None - client.events.definitions.get(event_name) -> ExternalBehavioralEventTypeDefinition - client.events.definitions.send_batch(\*\*params) -> None -- client.events.definitions.update_property(property_name, \*, event_name, \*\*params) -> Property +- client.events.definitions.update_property(property_name, \*, event_name, \*\*params) -> Property ## Occurrences diff --git a/src/hubspot_sdk/resources/events/definitions.py b/src/hubspot_sdk/resources/events/definitions.py index 31b1750d..686ab4d3 100644 --- a/src/hubspot_sdk/resources/events/definitions.py +++ b/src/hubspot_sdk/resources/events/definitions.py @@ -26,7 +26,7 @@ definition_create_property_params, definition_update_property_params, ) -from ...types.events.property import Property +from ...types.shared.property import Property from ...types.shared_params.option_input import OptionInput from ...types.events.external_behavioral_event_type_definition import ExternalBehavioralEventTypeDefinition from ...types.events.behavioral_event_http_completion_request_param import BehavioralEventHTTPCompletionRequestParam diff --git a/src/hubspot_sdk/resources/webhooks/api.md b/src/hubspot_sdk/resources/webhooks/api.md index f1cfa89b..03b072c6 100644 --- a/src/hubspot_sdk/resources/webhooks/api.md +++ b/src/hubspot_sdk/resources/webhooks/api.md @@ -22,6 +22,7 @@ from hubspot_sdk.types.webhooks import ( FilterCreateRequest, FilterCreateResponse, FilterResponse, + GdprPrivacyDeletionSubscriptionUpsertRequest, JournalFetchResponse, ListMembershipSubscriptionUpsertRequest, ObjectSubscriptionUpsertRequest, @@ -36,43 +37,44 @@ from hubspot_sdk.types.webhooks import ( SubscriptionResponse1, SubscriptionUpsertRequest, ThrottlingSettings, - WebhookGetSubscriptionFiltersResponse, + WebhookListSubscriptionFiltersResponse, ) ``` Methods: -- client.webhooks.create_crm_snapshot(\*\*params) -> CrmObjectSnapshotBatchResponse +- client.webhooks.create_batch_event_subscriptions(app_id, \*\*params) -> BatchResponseSubscriptionResponse +- client.webhooks.create_crm_snapshots(\*\*params) -> CrmObjectSnapshotBatchResponse +- client.webhooks.create_event_subscription(app_id, \*\*params) -> SubscriptionResponse - client.webhooks.create_journal_subscription() -> SubscriptionResponse1 -- client.webhooks.create_subscription(app_id, \*\*params) -> SubscriptionResponse - client.webhooks.create_subscription_filter(\*\*params) -> FilterCreateResponse -- client.webhooks.create_subscriptions_batch(app_id, \*\*params) -> BatchResponseSubscriptionResponse +- client.webhooks.delete_event_subscription(subscription_id, \*, app_id) -> None - client.webhooks.delete_journal_subscription(subscription_id) -> None -- client.webhooks.delete_portal_subscriptions(portal_id) -> None +- client.webhooks.delete_journal_subscription_for_portal(portal_id) -> None - client.webhooks.delete_settings(app_id) -> None -- client.webhooks.delete_subscription(subscription_id, \*, app_id) -> None - client.webhooks.delete_subscription_filter(filter_id) -> None -- client.webhooks.get_earliest_journal(\*\*params) -> BinaryAPIResponse - client.webhooks.get_earliest_journal_batch(count, \*\*params) -> BatchResponseJournalFetchResponse -- client.webhooks.get_earliest_local_journal(\*\*params) -> BinaryAPIResponse +- client.webhooks.get_earliest_journal_entry(\*\*params) -> BinaryAPIResponse - client.webhooks.get_earliest_local_journal_batch(count, \*\*params) -> BatchResponseJournalFetchResponse -- client.webhooks.get_journal_batch(\*\*params) -> BatchResponseJournalFetchResponse -- client.webhooks.get_journal_batch_after_offset(count, \*, offset, \*\*params) -> BatchResponseJournalFetchResponse +- client.webhooks.get_earliest_local_journal_entry(\*\*params) -> BinaryAPIResponse +- client.webhooks.get_event_subscription(subscription_id, \*, app_id) -> SubscriptionResponse +- client.webhooks.get_journal_batch_by_request(\*\*params) -> BatchResponseJournalFetchResponse +- client.webhooks.get_journal_batch_from_offset(count, \*, offset, \*\*params) -> BatchResponseJournalFetchResponse - client.webhooks.get_journal_status(status_id) -> SnapshotStatusResponse -- client.webhooks.get_latest_journal(\*\*params) -> BinaryAPIResponse +- client.webhooks.get_journal_subscription(subscription_id) -> SubscriptionResponse1 - client.webhooks.get_latest_journal_batch(count, \*\*params) -> BatchResponseJournalFetchResponse -- client.webhooks.get_latest_local_journal(\*\*params) -> BinaryAPIResponse +- client.webhooks.get_latest_journal_entry(\*\*params) -> BinaryAPIResponse - client.webhooks.get_latest_local_journal_batch(count, \*\*params) -> BatchResponseJournalFetchResponse -- client.webhooks.get_local_journal_batch(\*\*params) -> BatchResponseJournalFetchResponse -- client.webhooks.get_local_journal_batch_after_offset(count, \*, offset, \*\*params) -> BatchResponseJournalFetchResponse +- client.webhooks.get_latest_local_journal_entry(\*\*params) -> BinaryAPIResponse +- client.webhooks.get_local_journal_batch_by_request(\*\*params) -> BatchResponseJournalFetchResponse +- client.webhooks.get_local_journal_batch_from_offset(count, \*, offset, \*\*params) -> BatchResponseJournalFetchResponse - client.webhooks.get_local_journal_status(status_id) -> SnapshotStatusResponse -- client.webhooks.get_next_journal_after_offset(offset, \*\*params) -> BinaryAPIResponse -- client.webhooks.get_next_local_journal_after_offset(offset, \*\*params) -> BinaryAPIResponse +- client.webhooks.get_next_journal_entries(offset, \*\*params) -> BinaryAPIResponse +- client.webhooks.get_next_local_journal_entries(offset, \*\*params) -> BinaryAPIResponse - client.webhooks.get_settings(app_id) -> SettingsResponse -- client.webhooks.get_subscription(subscription_id, \*, app_id) -> SubscriptionResponse - client.webhooks.get_subscription_filter(filter_id) -> FilterResponse -- client.webhooks.get_subscription_filters(subscription_id) -> WebhookGetSubscriptionFiltersResponse +- client.webhooks.list_event_subscriptions(app_id) -> SubscriptionListResponse - client.webhooks.list_journal_subscriptions() -> CollectionResponseSubscriptionResponseNoPaging -- client.webhooks.list_subscriptions(app_id) -> SubscriptionListResponse +- client.webhooks.list_subscription_filters(subscription_id) -> WebhookListSubscriptionFiltersResponse +- client.webhooks.update_event_subscription(subscription_id, \*, app_id, \*\*params) -> SubscriptionResponse - client.webhooks.update_settings(app_id, \*\*params) -> SettingsResponse -- client.webhooks.update_subscription(subscription_id, \*, app_id, \*\*params) -> SubscriptionResponse diff --git a/src/hubspot_sdk/resources/webhooks/webhooks.py b/src/hubspot_sdk/resources/webhooks/webhooks.py index 0c2032ec..a7a5e824 100644 --- a/src/hubspot_sdk/resources/webhooks/webhooks.py +++ b/src/hubspot_sdk/resources/webhooks/webhooks.py @@ -28,25 +28,25 @@ from ..._base_client import make_request_options from ...types.webhooks import ( webhook_update_settings_params, - webhook_get_journal_batch_params, - webhook_get_latest_journal_params, - webhook_create_crm_snapshot_params, - webhook_create_subscription_params, - webhook_update_subscription_params, - webhook_get_earliest_journal_params, - webhook_get_local_journal_batch_params, + webhook_create_crm_snapshots_params, webhook_get_latest_journal_batch_params, - webhook_get_latest_local_journal_params, + webhook_get_latest_journal_entry_params, + webhook_get_next_journal_entries_params, + webhook_create_event_subscription_params, + webhook_update_event_subscription_params, webhook_create_subscription_filter_params, - webhook_create_subscriptions_batch_params, webhook_get_earliest_journal_batch_params, - webhook_get_earliest_local_journal_params, - webhook_get_next_journal_after_offset_params, - webhook_get_journal_batch_after_offset_params, + webhook_get_earliest_journal_entry_params, + webhook_get_journal_batch_by_request_params, + webhook_get_journal_batch_from_offset_params, webhook_get_latest_local_journal_batch_params, + webhook_get_latest_local_journal_entry_params, + webhook_get_next_local_journal_entries_params, + webhook_create_batch_event_subscriptions_params, webhook_get_earliest_local_journal_batch_params, - webhook_get_next_local_journal_after_offset_params, - webhook_get_local_journal_batch_after_offset_params, + webhook_get_earliest_local_journal_entry_params, + webhook_get_local_journal_batch_by_request_params, + webhook_get_local_journal_batch_from_offset_params, ) from ...types.webhooks.filter_param import FilterParam from ...types.webhooks.filter_response import FilterResponse @@ -62,7 +62,7 @@ from ...types.webhooks.batch_response_subscription_response import BatchResponseSubscriptionResponse from ...types.webhooks.batch_response_journal_fetch_response import BatchResponseJournalFetchResponse from ...types.webhooks.subscription_batch_update_request_param import SubscriptionBatchUpdateRequestParam -from ...types.webhooks.webhook_get_subscription_filters_response import WebhookGetSubscriptionFiltersResponse +from ...types.webhooks.webhook_list_subscription_filters_response import WebhookListSubscriptionFiltersResponse from ...types.webhooks.collection_response_subscription_response_no_paging import ( CollectionResponseSubscriptionResponseNoPaging, ) @@ -90,19 +90,25 @@ def with_streaming_response(self) -> WebhooksResourceWithStreamingResponse: """ return WebhooksResourceWithStreamingResponse(self) - def create_crm_snapshot( + def create_batch_event_subscriptions( self, + app_id: int, *, - snapshot_requests: Iterable[CrmObjectSnapshotRequestParam], + inputs: Iterable[SubscriptionBatchUpdateRequestParam], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> CrmObjectSnapshotBatchResponse: + ) -> BatchResponseSubscriptionResponse: """ + Batch create event subscriptions for the specified app. + Args: + inputs: An array of SubscriptionBatchUpdateRequest objects, each representing a + subscription to be updated. This property is required. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -112,80 +118,60 @@ def create_crm_snapshot( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/webhooks-journal/snapshots/2026-03/crm", + path_template("/webhooks/2026-03/{app_id}/subscriptions/batch/update", app_id=app_id), body=maybe_transform( - {"snapshot_requests": snapshot_requests}, - webhook_create_crm_snapshot_params.WebhookCreateCrmSnapshotParams, + {"inputs": inputs}, + webhook_create_batch_event_subscriptions_params.WebhookCreateBatchEventSubscriptionsParams, ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=CrmObjectSnapshotBatchResponse, + cast_to=BatchResponseSubscriptionResponse, ) - @overload - def create_journal_subscription( - self, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse1: ... - @overload - def create_journal_subscription( - self, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse1: ... - @overload - def create_journal_subscription( - self, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse1: ... - @overload - def create_journal_subscription( - self, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse1: ... - def create_journal_subscription( + def create_crm_snapshots( self, *, + snapshot_requests: Iterable[CrmObjectSnapshotRequestParam], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse1: + ) -> CrmObjectSnapshotBatchResponse: + """Create a batch of CRM object snapshots for a specified portal. + + This endpoint + allows you to capture the current state of CRM objects by submitting a batch + request with the necessary object details. It is useful for tracking changes or + maintaining historical records of CRM data. + + Args: + snapshot_requests: An array of CrmObjectSnapshotRequest objects, each representing a request to + capture a snapshot of a specific CRM object. This property is required. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ return self._post( - "/webhooks-journal/subscriptions/2026-03", + "/webhooks-journal/snapshots/2026-03/crm", + body=maybe_transform( + {"snapshot_requests": snapshot_requests}, + webhook_create_crm_snapshots_params.WebhookCreateCrmSnapshotsParams, + ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=SubscriptionResponse1, + cast_to=CrmObjectSnapshotBatchResponse, ) - def create_subscription( + def create_event_subscription( self, app_id: int, *, @@ -254,20 +240,20 @@ def create_subscription( Create new event subscription for the specified app. Args: - active: Determines if the subscription is active or paused. Defaults to false. + active: A boolean indicating whether the subscription is active. This field is required. - event_type: Type of event to listen for. Can be one of `create`, `delete`, - `deletedForPrivacy`, or `propertyChange`. + event_type: A string representing the type of event to subscribe to. Valid values include + various object changes such as 'contact.propertyChange', 'deal.creation', and + 'conversation.newMessage'. - event_type_name: The name of the event to listen for. This is used with custom objects to specify - custom event types beyond the standard eventType enum values. + event_type_name: A string that provides a human-readable name for the event type. This is + optional. - object_type_id: The ID of the object type for the subscription. This can be a standard CRM - object (e.g., 'contact', 'company', 'deal') or a custom object ID for custom - object subscriptions. + object_type_id: A string representing the identifier of the object type for which the + subscription is being created. This is optional. - property_name: The internal name of the property to monitor for changes. Only applies when - `eventType` is `propertyChange`. + property_name: A string indicating the name of the property that triggers the event. This is + optional and used when subscribing to property change events. extra_headers: Send extra headers @@ -287,7 +273,7 @@ def create_subscription( "object_type_id": object_type_id, "property_name": property_name, }, - webhook_create_subscription_params.WebhookCreateSubscriptionParams, + webhook_create_event_subscription_params.WebhookCreateEventSubscriptionParams, ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -295,6 +281,119 @@ def create_subscription( cast_to=SubscriptionResponse, ) + @overload + def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + """ + Create a new subscription in the webhooks journal for the specified version. + This endpoint allows you to define the subscription details, including actions + and object types, to manage webhook events effectively. It requires a valid + request body with the subscription details. + """ + ... + + @overload + def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + """ + Create a new subscription in the webhooks journal for the specified version. + This endpoint allows you to define the subscription details, including actions + and object types, to manage webhook events effectively. It requires a valid + request body with the subscription details. + """ + ... + + @overload + def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + """ + Create a new subscription in the webhooks journal for the specified version. + This endpoint allows you to define the subscription details, including actions + and object types, to manage webhook events effectively. It requires a valid + request body with the subscription details. + """ + ... + + @overload + def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + """ + Create a new subscription in the webhooks journal for the specified version. + This endpoint allows you to define the subscription details, including actions + and object types, to manage webhook events effectively. It requires a valid + request body with the subscription details. + """ + ... + + @overload + def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + """ + Create a new subscription in the webhooks journal for the specified version. + This endpoint allows you to define the subscription details, including actions + and object types, to manage webhook events effectively. It requires a valid + request body with the subscription details. + """ + ... + + def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + return self._post( + "/webhooks-journal/subscriptions/2026-03", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=SubscriptionResponse1, + ) + def create_subscription_filter( self, *, @@ -307,12 +406,21 @@ def create_subscription_filter( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> FilterCreateResponse: - """ + """Create a new filter for a webhook subscription in the HubSpot account. + + This + endpoint allows you to define conditions that determine when a webhook event + should be triggered for a specific subscription. The request body must include + the subscription ID and the filter details. + Args: filter: Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. + subscription_id: The unique identifier of the subscription to which the filter will be applied. + It is an integer in int64 format. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -336,20 +444,20 @@ def create_subscription_filter( cast_to=FilterCreateResponse, ) - def create_subscriptions_batch( + def delete_event_subscription( self, - app_id: int, + subscription_id: int, *, - inputs: Iterable[SubscriptionBatchUpdateRequestParam], + app_id: int, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> BatchResponseSubscriptionResponse: + ) -> None: """ - Batch create event subscriptions for the specified app. + Delete an existing event subscription by ID. Args: extra_headers: Send extra headers @@ -360,15 +468,17 @@ def create_subscriptions_batch( timeout: Override the client-level default timeout for this request, in seconds """ - return self._post( - path_template("/webhooks/2026-03/{app_id}/subscriptions/batch/update", app_id=app_id), - body=maybe_transform( - {"inputs": inputs}, webhook_create_subscriptions_batch_params.WebhookCreateSubscriptionsBatchParams + extra_headers = {"Accept": "*/*", **(extra_headers or {})} + return self._delete( + path_template( + "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", + app_id=app_id, + subscription_id=subscription_id, ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=BatchResponseSubscriptionResponse, + cast_to=NoneType, ) def delete_journal_subscription( @@ -382,7 +492,12 @@ def delete_journal_subscription( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> None: - """ + """Delete a specific webhook journal subscription using its unique identifier. + + This + operation is useful for managing and cleaning up subscriptions that are no + longer needed. + Args: extra_headers: Send extra headers @@ -401,7 +516,7 @@ def delete_journal_subscription( cast_to=NoneType, ) - def delete_portal_subscriptions( + def delete_journal_subscription_for_portal( self, portal_id: int, *, @@ -412,7 +527,12 @@ def delete_portal_subscriptions( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> None: - """ + """Delete a webhook journal subscription for a specific portal. + + This operation + removes the subscription associated with the given portalId, effectively + stopping any webhook events from being sent to the portal. + Args: extra_headers: Send extra headers @@ -465,11 +585,10 @@ def delete_settings( cast_to=NoneType, ) - def delete_subscription( + def delete_subscription_filter( self, - subscription_id: int, + filter_id: int, *, - app_id: int, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -477,8 +596,12 @@ def delete_subscription( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> None: - """ - Delete an existing event subscription by ID. + """Remove a specific filter from your webhook journal subscriptions. + + This operation + is useful when you need to clean up or modify the filters applied to your + webhook subscriptions. The filter identified by the filterId will be permanently + deleted. Args: extra_headers: Send extra headers @@ -491,30 +614,35 @@ def delete_subscription( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - path_template( - "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", - app_id=app_id, - subscription_id=subscription_id, - ), + path_template("/webhooks-journal/subscriptions/2026-03/filters/{filter_id}", filter_id=filter_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), cast_to=NoneType, ) - def delete_subscription_filter( + def get_earliest_journal_batch( self, - filter_id: int, + count: int, *, + install_portal_id: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> None: - """ + ) -> BatchResponseJournalFetchResponse: + """Retrieve the earliest batch of webhook journal entries up to the specified + count. + + This endpoint is useful for fetching historical webhook data in batches, + allowing you to process or analyze them as needed. + Args: + install_portal_id: The ID of the portal installation for which to fetch the journal entries. This + is an optional parameter. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -523,16 +651,22 @@ def delete_subscription_filter( timeout: Override the client-level default timeout for this request, in seconds """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return self._delete( - path_template("/webhooks-journal/subscriptions/2026-03/filters/{filter_id}", filter_id=filter_id), + return self._get( + path_template("/webhooks-journal/journal/2026-03/batch/earliest/{count}", count=count), options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + {"install_portal_id": install_portal_id}, + webhook_get_earliest_journal_batch_params.WebhookGetEarliestJournalBatchParams, + ), ), - cast_to=NoneType, + cast_to=BatchResponseJournalFetchResponse, ) - def get_earliest_journal( + def get_earliest_journal_entry( self, *, install_portal_id: int | Omit = omit, @@ -544,7 +678,14 @@ def get_earliest_journal( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BinaryAPIResponse: """ + Retrieve the earliest entry from the webhooks journal for the specified portal. + This endpoint is useful for accessing the initial entries in the journal, which + can be helpful for debugging or auditing purposes. + Args: + install_portal_id: The ID of the portal installation to filter the journal entries. This is an + integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -563,13 +704,13 @@ def get_earliest_journal( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_earliest_journal_params.WebhookGetEarliestJournalParams, + webhook_get_earliest_journal_entry_params.WebhookGetEarliestJournalEntryParams, ), ), cast_to=BinaryAPIResponse, ) - def get_earliest_journal_batch( + def get_earliest_local_journal_batch( self, count: int, *, @@ -582,7 +723,14 @@ def get_earliest_journal_batch( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BatchResponseJournalFetchResponse: """ + Retrieve the earliest batch of webhook journal entries up to a specified count. + This endpoint is useful for accessing the oldest records available in the + webhook journal, allowing you to process or analyze historical webhook data. + Args: + install_portal_id: The ID of the portal installation to filter the webhook journal entries. It is + an integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -592,7 +740,7 @@ def get_earliest_journal_batch( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - path_template("/webhooks-journal/journal/2026-03/batch/earliest/{count}", count=count), + path_template("/webhooks-journal/journal-local/2026-03/batch/earliest/{count}", count=count), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -600,13 +748,13 @@ def get_earliest_journal_batch( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_earliest_journal_batch_params.WebhookGetEarliestJournalBatchParams, + webhook_get_earliest_local_journal_batch_params.WebhookGetEarliestLocalJournalBatchParams, ), ), cast_to=BatchResponseJournalFetchResponse, ) - def get_earliest_local_journal( + def get_earliest_local_journal_entry( self, *, install_portal_id: int | Omit = omit, @@ -618,7 +766,14 @@ def get_earliest_local_journal( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BinaryAPIResponse: """ + Retrieve the earliest entry from the webhooks journal for the specified portal. + This endpoint is useful for accessing the oldest available data in the journal, + which can be used for historical analysis or troubleshooting. + Args: + install_portal_id: The ID of the portal for which to retrieve the earliest journal entry. This + parameter is optional and should be an integer. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -637,25 +792,27 @@ def get_earliest_local_journal( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_earliest_local_journal_params.WebhookGetEarliestLocalJournalParams, + webhook_get_earliest_local_journal_entry_params.WebhookGetEarliestLocalJournalEntryParams, ), ), cast_to=BinaryAPIResponse, ) - def get_earliest_local_journal_batch( + def get_event_subscription( self, - count: int, + subscription_id: int, *, - install_portal_id: int | Omit = omit, + app_id: int, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> BatchResponseJournalFetchResponse: + ) -> SubscriptionResponse: """ + Retrieve a specific event subscription by ID. + Args: extra_headers: Send extra headers @@ -666,21 +823,18 @@ def get_earliest_local_journal_batch( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - path_template("/webhooks-journal/journal-local/2026-03/batch/earliest/{count}", count=count), + path_template( + "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", + app_id=app_id, + subscription_id=subscription_id, + ), options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - query=maybe_transform( - {"install_portal_id": install_portal_id}, - webhook_get_earliest_local_journal_batch_params.WebhookGetEarliestLocalJournalBatchParams, - ), + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=BatchResponseJournalFetchResponse, + cast_to=SubscriptionResponse, ) - def get_journal_batch( + def get_journal_batch_by_request( self, *, inputs: SequenceNotStr[str], @@ -692,10 +846,18 @@ def get_journal_batch( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BatchResponseJournalFetchResponse: - """ + """Read a batch of webhook journal entries for the specified portal. + + This endpoint + allows you to retrieve detailed information about webhook events processed by + your HubSpot account. It is useful for auditing and tracking webhook activity. + Args: inputs: Strings to input. + install_portal_id: The ID of the portal from which to retrieve webhook journal entries. This is an + integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -706,7 +868,9 @@ def get_journal_batch( """ return self._post( "/webhooks-journal/journal/2026-03/batch/read", - body=maybe_transform({"inputs": inputs}, webhook_get_journal_batch_params.WebhookGetJournalBatchParams), + body=maybe_transform( + {"inputs": inputs}, webhook_get_journal_batch_by_request_params.WebhookGetJournalBatchByRequestParams + ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -714,13 +878,13 @@ def get_journal_batch( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_journal_batch_params.WebhookGetJournalBatchParams, + webhook_get_journal_batch_by_request_params.WebhookGetJournalBatchByRequestParams, ), ), cast_to=BatchResponseJournalFetchResponse, ) - def get_journal_batch_after_offset( + def get_journal_batch_from_offset( self, count: int, *, @@ -734,7 +898,14 @@ def get_journal_batch_after_offset( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BatchResponseJournalFetchResponse: """ + Retrieve a batch of webhook journal entries starting from a specified offset. + This endpoint allows you to specify the number of entries to retrieve, helping + you manage and paginate through large sets of webhook data efficiently. + Args: + install_portal_id: The ID of the portal installation to filter the webhook journal entries. This + parameter is optional and is used to specify which portal's data to retrieve. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -754,7 +925,7 @@ def get_journal_batch_after_offset( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_journal_batch_after_offset_params.WebhookGetJournalBatchAfterOffsetParams, + webhook_get_journal_batch_from_offset_params.WebhookGetJournalBatchFromOffsetParams, ), ), cast_to=BatchResponseJournalFetchResponse, @@ -762,7 +933,43 @@ def get_journal_batch_after_offset( def get_journal_status( self, - status_id: str, + status_id: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SnapshotStatusResponse: + """ + Retrieve the status of a specific webhook journal entry using its unique status + ID. This endpoint is useful for monitoring the progress or outcome of a webhook + operation, providing insights into whether it is pending, in progress, + completed, failed, or expired. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not status_id: + raise ValueError(f"Expected a non-empty value for `status_id` but received {status_id!r}") + return self._get( + path_template("/webhooks-journal/journal/2026-03/status/{status_id}", status_id=status_id), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=SnapshotStatusResponse, + ) + + def get_journal_subscription( + self, + subscription_id: int, *, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -770,8 +977,12 @@ def get_journal_status( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SnapshotStatusResponse: + ) -> SubscriptionResponse1: """ + Retrieve details of a specific webhook journal subscription using its unique + identifier. This endpoint is useful for obtaining information about a particular + subscription, such as its actions, object types, and associated properties. + Args: extra_headers: Send extra headers @@ -781,18 +992,17 @@ def get_journal_status( timeout: Override the client-level default timeout for this request, in seconds """ - if not status_id: - raise ValueError(f"Expected a non-empty value for `status_id` but received {status_id!r}") return self._get( - path_template("/webhooks-journal/journal/2026-03/status/{status_id}", status_id=status_id), + path_template("/webhooks-journal/subscriptions/2026-03/{subscription_id}", subscription_id=subscription_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=SnapshotStatusResponse, + cast_to=SubscriptionResponse1, ) - def get_latest_journal( + def get_latest_journal_batch( self, + count: int, *, install_portal_id: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -801,9 +1011,17 @@ def get_latest_journal( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> BinaryAPIResponse: + ) -> BatchResponseJournalFetchResponse: """ + Retrieve the latest batch of webhook journal entries up to a specified count. + This endpoint is useful for fetching the most recent webhook events processed by + your HubSpot account. The response includes details about each event, and you + can specify the number of entries to retrieve. + Args: + install_portal_id: The ID of the portal installation. This parameter is optional and can be used to + filter results by a specific portal. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -812,9 +1030,8 @@ def get_latest_journal( timeout: Override the client-level default timeout for this request, in seconds """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._get( - "/webhooks-journal/journal/2026-03/latest", + path_template("/webhooks-journal/journal/2026-03/batch/latest/{count}", count=count), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -822,15 +1039,14 @@ def get_latest_journal( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_latest_journal_params.WebhookGetLatestJournalParams, + webhook_get_latest_journal_batch_params.WebhookGetLatestJournalBatchParams, ), ), - cast_to=BinaryAPIResponse, + cast_to=BatchResponseJournalFetchResponse, ) - def get_latest_journal_batch( + def get_latest_journal_entry( self, - count: int, *, install_portal_id: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -839,9 +1055,16 @@ def get_latest_journal_batch( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> BatchResponseJournalFetchResponse: + ) -> BinaryAPIResponse: """ + Retrieve the latest entry from the webhooks journal for the specified portal. + This endpoint is useful for accessing the most recent webhook data available in + the journal. + Args: + install_portal_id: The ID of the portal for which to retrieve the latest journal entry. It is an + integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -850,8 +1073,9 @@ def get_latest_journal_batch( timeout: Override the client-level default timeout for this request, in seconds """ + extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._get( - path_template("/webhooks-journal/journal/2026-03/batch/latest/{count}", count=count), + "/webhooks-journal/journal/2026-03/latest", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -859,14 +1083,15 @@ def get_latest_journal_batch( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_latest_journal_batch_params.WebhookGetLatestJournalBatchParams, + webhook_get_latest_journal_entry_params.WebhookGetLatestJournalEntryParams, ), ), - cast_to=BatchResponseJournalFetchResponse, + cast_to=BinaryAPIResponse, ) - def get_latest_local_journal( + def get_latest_local_journal_batch( self, + count: int, *, install_portal_id: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -875,9 +1100,16 @@ def get_latest_local_journal( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> BinaryAPIResponse: + ) -> BatchResponseJournalFetchResponse: """ + Retrieve the latest batch of webhook journal entries up to a specified count. + This endpoint is useful for fetching the most recent webhook events processed by + the system. It requires authentication and supports various security schemes. + Args: + install_portal_id: The ID of the portal installation to filter the webhook journal entries. It is + an optional integer parameter. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -886,9 +1118,8 @@ def get_latest_local_journal( timeout: Override the client-level default timeout for this request, in seconds """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._get( - "/webhooks-journal/journal-local/2026-03/latest", + path_template("/webhooks-journal/journal-local/2026-03/batch/latest/{count}", count=count), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -896,15 +1127,14 @@ def get_latest_local_journal( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_latest_local_journal_params.WebhookGetLatestLocalJournalParams, + webhook_get_latest_local_journal_batch_params.WebhookGetLatestLocalJournalBatchParams, ), ), - cast_to=BinaryAPIResponse, + cast_to=BatchResponseJournalFetchResponse, ) - def get_latest_local_journal_batch( + def get_latest_local_journal_entry( self, - count: int, *, install_portal_id: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -913,9 +1143,18 @@ def get_latest_local_journal_batch( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> BatchResponseJournalFetchResponse: - """ + ) -> BinaryAPIResponse: + """Retrieve the latest entries from the webhooks journal. + + This endpoint is useful + for accessing the most recent webhook data for analysis or troubleshooting. It + supports filtering by the installPortalId to narrow down results to a specific + portal. + Args: + install_portal_id: An integer representing the ID of the portal to filter the webhook journal + entries. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -924,8 +1163,9 @@ def get_latest_local_journal_batch( timeout: Override the client-level default timeout for this request, in seconds """ + extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._get( - path_template("/webhooks-journal/journal-local/2026-03/batch/latest/{count}", count=count), + "/webhooks-journal/journal-local/2026-03/latest", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -933,13 +1173,13 @@ def get_latest_local_journal_batch( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_latest_local_journal_batch_params.WebhookGetLatestLocalJournalBatchParams, + webhook_get_latest_local_journal_entry_params.WebhookGetLatestLocalJournalEntryParams, ), ), - cast_to=BatchResponseJournalFetchResponse, + cast_to=BinaryAPIResponse, ) - def get_local_journal_batch( + def get_local_journal_batch_by_request( self, *, inputs: SequenceNotStr[str], @@ -951,10 +1191,18 @@ def get_local_journal_batch( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BatchResponseJournalFetchResponse: - """ + """Perform a batch read operation on the webhooks journal. + + This endpoint allows you + to retrieve a batch of journal entries by providing the necessary input data. It + is useful for processing large volumes of webhook data efficiently. + Args: inputs: Strings to input. + install_portal_id: The ID of the portal where the webhook is installed. This parameter is optional + and is used to specify the portal context for the operation. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -966,7 +1214,8 @@ def get_local_journal_batch( return self._post( "/webhooks-journal/journal-local/2026-03/batch/read", body=maybe_transform( - {"inputs": inputs}, webhook_get_local_journal_batch_params.WebhookGetLocalJournalBatchParams + {"inputs": inputs}, + webhook_get_local_journal_batch_by_request_params.WebhookGetLocalJournalBatchByRequestParams, ), options=make_request_options( extra_headers=extra_headers, @@ -975,13 +1224,13 @@ def get_local_journal_batch( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_local_journal_batch_params.WebhookGetLocalJournalBatchParams, + webhook_get_local_journal_batch_by_request_params.WebhookGetLocalJournalBatchByRequestParams, ), ), cast_to=BatchResponseJournalFetchResponse, ) - def get_local_journal_batch_after_offset( + def get_local_journal_batch_from_offset( self, count: int, *, @@ -995,7 +1244,13 @@ def get_local_journal_batch_after_offset( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BatchResponseJournalFetchResponse: """ + Retrieve a batch of webhook journal entries starting from a specified offset. + This endpoint is useful for fetching sequential batches of data, allowing you to + paginate through large sets of webhook journal entries efficiently. + Args: + install_portal_id: The ID of the portal where the webhooks are installed. This is an integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1017,7 +1272,7 @@ def get_local_journal_batch_after_offset( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_local_journal_batch_after_offset_params.WebhookGetLocalJournalBatchAfterOffsetParams, + webhook_get_local_journal_batch_from_offset_params.WebhookGetLocalJournalBatchFromOffsetParams, ), ), cast_to=BatchResponseJournalFetchResponse, @@ -1035,6 +1290,11 @@ def get_local_journal_status( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> SnapshotStatusResponse: """ + Retrieve the status of a specific webhook journal entry using its unique status + ID. This endpoint is useful for checking the progress or result of a webhook + operation, such as whether it is pending, in progress, completed, failed, or + expired. + Args: extra_headers: Send extra headers @@ -1054,7 +1314,7 @@ def get_local_journal_status( cast_to=SnapshotStatusResponse, ) - def get_next_journal_after_offset( + def get_next_journal_entries( self, offset: str, *, @@ -1067,7 +1327,14 @@ def get_next_journal_after_offset( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BinaryAPIResponse: """ + Retrieve the next set of webhook journal entries starting from a specified + offset. This endpoint is useful for paginating through webhook journal entries + in a HubSpot account. It allows you to continue fetching entries from where the + last request left off, using the offset parameter. + Args: + install_portal_id: The ID of the portal where the webhooks are installed. This is an integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1088,13 +1355,13 @@ def get_next_journal_after_offset( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_next_journal_after_offset_params.WebhookGetNextJournalAfterOffsetParams, + webhook_get_next_journal_entries_params.WebhookGetNextJournalEntriesParams, ), ), cast_to=BinaryAPIResponse, ) - def get_next_local_journal_after_offset( + def get_next_local_journal_entries( self, offset: str, *, @@ -1106,8 +1373,17 @@ def get_next_local_journal_after_offset( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BinaryAPIResponse: - """ + """Retrieve the next set of journal entries starting from a specified offset. + + This + endpoint is useful for paginating through webhook journal entries in a + sequential manner. It requires specifying the offset from which the next entries + should be fetched. + Args: + install_portal_id: The ID of the portal installation to filter the journal entries by. This is an + optional parameter. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1128,7 +1404,7 @@ def get_next_local_journal_after_offset( timeout=timeout, query=maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_next_local_journal_after_offset_params.WebhookGetNextLocalJournalAfterOffsetParams, + webhook_get_next_local_journal_entries_params.WebhookGetNextLocalJournalEntriesParams, ), ), cast_to=BinaryAPIResponse, @@ -1166,42 +1442,6 @@ def get_settings( cast_to=SettingsResponse, ) - def get_subscription( - self, - subscription_id: int, - *, - app_id: int, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse: - """ - Retrieve a specific event subscription by ID. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - return self._get( - path_template( - "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", - app_id=app_id, - subscription_id=subscription_id, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=SubscriptionResponse, - ) - def get_subscription_filter( self, filter_id: int, @@ -1213,7 +1453,13 @@ def get_subscription_filter( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> FilterResponse: - """ + """Retrieve a specific filter associated with a webhook journal subscription. + + This + endpoint allows you to access detailed information about the filter identified + by the filterId path parameter. It is useful for managing and reviewing filter + configurations within your webhook subscriptions. + Args: extra_headers: Send extra headers @@ -1231,9 +1477,9 @@ def get_subscription_filter( cast_to=FilterResponse, ) - def get_subscription_filters( + def list_event_subscriptions( self, - subscription_id: int, + app_id: int, *, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -1241,8 +1487,10 @@ def get_subscription_filters( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> WebhookGetSubscriptionFiltersResponse: + ) -> SubscriptionListResponse: """ + Retrieve event subscriptions for the specified app. + Args: extra_headers: Send extra headers @@ -1253,14 +1501,11 @@ def get_subscription_filters( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - path_template( - "/webhooks-journal/subscriptions/2026-03/filters/subscription/{subscription_id}", - subscription_id=subscription_id, - ), + path_template("/webhooks/2026-03/{app_id}/subscriptions", app_id=app_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=WebhookGetSubscriptionFiltersResponse, + cast_to=SubscriptionListResponse, ) def list_journal_subscriptions( @@ -1273,6 +1518,12 @@ def list_journal_subscriptions( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CollectionResponseSubscriptionResponseNoPaging: + """Retrieve a list of webhook journal subscriptions for the specified version. + + This + endpoint allows you to view all active subscriptions without pagination. It is + useful for managing and auditing webhook subscriptions in your HubSpot account. + """ return self._get( "/webhooks-journal/subscriptions/2026-03", options=make_request_options( @@ -1281,9 +1532,9 @@ def list_journal_subscriptions( cast_to=CollectionResponseSubscriptionResponseNoPaging, ) - def list_subscriptions( + def list_subscription_filters( self, - app_id: int, + subscription_id: int, *, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -1291,9 +1542,13 @@ def list_subscriptions( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionListResponse: - """ - Retrieve event subscriptions for the specified app. + ) -> WebhookListSubscriptionFiltersResponse: + """Retrieve the filters associated with a specific webhook subscription. + + This + endpoint is useful for obtaining detailed information about the filters applied + to a subscription, which can help in managing and understanding the data flow + through your webhook integrations. Args: extra_headers: Send extra headers @@ -1305,33 +1560,36 @@ def list_subscriptions( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - path_template("/webhooks/2026-03/{app_id}/subscriptions", app_id=app_id), + path_template( + "/webhooks-journal/subscriptions/2026-03/filters/subscription/{subscription_id}", + subscription_id=subscription_id, + ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=SubscriptionListResponse, + cast_to=WebhookListSubscriptionFiltersResponse, ) - def update_settings( + def update_event_subscription( self, - app_id: int, + subscription_id: int, *, - target_url: str, - throttling: ThrottlingSettingsParam, + app_id: int, + active: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SettingsResponse: + ) -> SubscriptionResponse: """ - Update webhook settings for the specified app. + Update an existing event subscription by ID. Args: - target_url: A publicly available URL for Hubspot to call where event payloads will be - delivered. See [link-so-some-doc](#) for details about the format of these event - payloads. + active: Whether to activate or pause the webhook subscription. If true, the subscription + will send webhook notifications. If false, the subscription is paused and will + not send notifications. extra_headers: Send extra headers @@ -1341,41 +1599,41 @@ def update_settings( timeout: Override the client-level default timeout for this request, in seconds """ - return self._put( - path_template("/webhooks/2026-03/{app_id}/settings", app_id=app_id), + return self._patch( + path_template( + "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", + app_id=app_id, + subscription_id=subscription_id, + ), body=maybe_transform( - { - "target_url": target_url, - "throttling": throttling, - }, - webhook_update_settings_params.WebhookUpdateSettingsParams, + {"active": active}, webhook_update_event_subscription_params.WebhookUpdateEventSubscriptionParams ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=SettingsResponse, + cast_to=SubscriptionResponse, ) - def update_subscription( + def update_settings( self, - subscription_id: int, - *, app_id: int, - active: bool | Omit = omit, + *, + target_url: str, + throttling: ThrottlingSettingsParam, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse: + ) -> SettingsResponse: """ - Update an existing event subscription by ID. + Update webhook settings for the specified app. Args: - active: Whether to activate or pause the webhook subscription. If true, the subscription - will send webhook notifications. If false, the subscription is paused and will - not send notifications. + target_url: A publicly available URL for Hubspot to call where event payloads will be + delivered. See [link-so-some-doc](#) for details about the format of these event + payloads. extra_headers: Send extra headers @@ -1385,19 +1643,19 @@ def update_subscription( timeout: Override the client-level default timeout for this request, in seconds """ - return self._patch( - path_template( - "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", - app_id=app_id, - subscription_id=subscription_id, - ), + return self._put( + path_template("/webhooks/2026-03/{app_id}/settings", app_id=app_id), body=maybe_transform( - {"active": active}, webhook_update_subscription_params.WebhookUpdateSubscriptionParams + { + "target_url": target_url, + "throttling": throttling, + }, + webhook_update_settings_params.WebhookUpdateSettingsParams, ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=SubscriptionResponse, + cast_to=SettingsResponse, ) @@ -1421,19 +1679,25 @@ def with_streaming_response(self) -> AsyncWebhooksResourceWithStreamingResponse: """ return AsyncWebhooksResourceWithStreamingResponse(self) - async def create_crm_snapshot( + async def create_batch_event_subscriptions( self, + app_id: int, *, - snapshot_requests: Iterable[CrmObjectSnapshotRequestParam], + inputs: Iterable[SubscriptionBatchUpdateRequestParam], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> CrmObjectSnapshotBatchResponse: + ) -> BatchResponseSubscriptionResponse: """ + Batch create event subscriptions for the specified app. + Args: + inputs: An array of SubscriptionBatchUpdateRequest objects, each representing a + subscription to be updated. This property is required. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1443,80 +1707,60 @@ async def create_crm_snapshot( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/webhooks-journal/snapshots/2026-03/crm", + path_template("/webhooks/2026-03/{app_id}/subscriptions/batch/update", app_id=app_id), body=await async_maybe_transform( - {"snapshot_requests": snapshot_requests}, - webhook_create_crm_snapshot_params.WebhookCreateCrmSnapshotParams, + {"inputs": inputs}, + webhook_create_batch_event_subscriptions_params.WebhookCreateBatchEventSubscriptionsParams, ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=CrmObjectSnapshotBatchResponse, + cast_to=BatchResponseSubscriptionResponse, ) - - @overload - async def create_journal_subscription( - self, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse1: ... - @overload - async def create_journal_subscription( - self, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse1: ... - @overload - async def create_journal_subscription( - self, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse1: ... - @overload - async def create_journal_subscription( - self, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse1: ... - async def create_journal_subscription( + + async def create_crm_snapshots( self, *, + snapshot_requests: Iterable[CrmObjectSnapshotRequestParam], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse1: + ) -> CrmObjectSnapshotBatchResponse: + """Create a batch of CRM object snapshots for a specified portal. + + This endpoint + allows you to capture the current state of CRM objects by submitting a batch + request with the necessary object details. It is useful for tracking changes or + maintaining historical records of CRM data. + + Args: + snapshot_requests: An array of CrmObjectSnapshotRequest objects, each representing a request to + capture a snapshot of a specific CRM object. This property is required. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ return await self._post( - "/webhooks-journal/subscriptions/2026-03", + "/webhooks-journal/snapshots/2026-03/crm", + body=await async_maybe_transform( + {"snapshot_requests": snapshot_requests}, + webhook_create_crm_snapshots_params.WebhookCreateCrmSnapshotsParams, + ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=SubscriptionResponse1, + cast_to=CrmObjectSnapshotBatchResponse, ) - async def create_subscription( + async def create_event_subscription( self, app_id: int, *, @@ -1585,20 +1829,20 @@ async def create_subscription( Create new event subscription for the specified app. Args: - active: Determines if the subscription is active or paused. Defaults to false. + active: A boolean indicating whether the subscription is active. This field is required. - event_type: Type of event to listen for. Can be one of `create`, `delete`, - `deletedForPrivacy`, or `propertyChange`. + event_type: A string representing the type of event to subscribe to. Valid values include + various object changes such as 'contact.propertyChange', 'deal.creation', and + 'conversation.newMessage'. - event_type_name: The name of the event to listen for. This is used with custom objects to specify - custom event types beyond the standard eventType enum values. + event_type_name: A string that provides a human-readable name for the event type. This is + optional. - object_type_id: The ID of the object type for the subscription. This can be a standard CRM - object (e.g., 'contact', 'company', 'deal') or a custom object ID for custom - object subscriptions. + object_type_id: A string representing the identifier of the object type for which the + subscription is being created. This is optional. - property_name: The internal name of the property to monitor for changes. Only applies when - `eventType` is `propertyChange`. + property_name: A string indicating the name of the property that triggers the event. This is + optional and used when subscribing to property change events. extra_headers: Send extra headers @@ -1618,7 +1862,7 @@ async def create_subscription( "object_type_id": object_type_id, "property_name": property_name, }, - webhook_create_subscription_params.WebhookCreateSubscriptionParams, + webhook_create_event_subscription_params.WebhookCreateEventSubscriptionParams, ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -1626,6 +1870,119 @@ async def create_subscription( cast_to=SubscriptionResponse, ) + @overload + async def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + """ + Create a new subscription in the webhooks journal for the specified version. + This endpoint allows you to define the subscription details, including actions + and object types, to manage webhook events effectively. It requires a valid + request body with the subscription details. + """ + ... + + @overload + async def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + """ + Create a new subscription in the webhooks journal for the specified version. + This endpoint allows you to define the subscription details, including actions + and object types, to manage webhook events effectively. It requires a valid + request body with the subscription details. + """ + ... + + @overload + async def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + """ + Create a new subscription in the webhooks journal for the specified version. + This endpoint allows you to define the subscription details, including actions + and object types, to manage webhook events effectively. It requires a valid + request body with the subscription details. + """ + ... + + @overload + async def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + """ + Create a new subscription in the webhooks journal for the specified version. + This endpoint allows you to define the subscription details, including actions + and object types, to manage webhook events effectively. It requires a valid + request body with the subscription details. + """ + ... + + @overload + async def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + """ + Create a new subscription in the webhooks journal for the specified version. + This endpoint allows you to define the subscription details, including actions + and object types, to manage webhook events effectively. It requires a valid + request body with the subscription details. + """ + ... + + async def create_journal_subscription( + self, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + return await self._post( + "/webhooks-journal/subscriptions/2026-03", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=SubscriptionResponse1, + ) + async def create_subscription_filter( self, *, @@ -1638,12 +1995,21 @@ async def create_subscription_filter( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> FilterCreateResponse: - """ + """Create a new filter for a webhook subscription in the HubSpot account. + + This + endpoint allows you to define conditions that determine when a webhook event + should be triggered for a specific subscription. The request body must include + the subscription ID and the filter details. + Args: filter: Defines a single condition for searching CRM objects, specifying the property to filter on, the operator to use (such as equals, greater than, or contains), and the value(s) to compare against. + subscription_id: The unique identifier of the subscription to which the filter will be applied. + It is an integer in int64 format. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1667,20 +2033,20 @@ async def create_subscription_filter( cast_to=FilterCreateResponse, ) - async def create_subscriptions_batch( + async def delete_event_subscription( self, - app_id: int, + subscription_id: int, *, - inputs: Iterable[SubscriptionBatchUpdateRequestParam], + app_id: int, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> BatchResponseSubscriptionResponse: + ) -> None: """ - Batch create event subscriptions for the specified app. + Delete an existing event subscription by ID. Args: extra_headers: Send extra headers @@ -1691,15 +2057,17 @@ async def create_subscriptions_batch( timeout: Override the client-level default timeout for this request, in seconds """ - return await self._post( - path_template("/webhooks/2026-03/{app_id}/subscriptions/batch/update", app_id=app_id), - body=await async_maybe_transform( - {"inputs": inputs}, webhook_create_subscriptions_batch_params.WebhookCreateSubscriptionsBatchParams + extra_headers = {"Accept": "*/*", **(extra_headers or {})} + return await self._delete( + path_template( + "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", + app_id=app_id, + subscription_id=subscription_id, ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=BatchResponseSubscriptionResponse, + cast_to=NoneType, ) async def delete_journal_subscription( @@ -1713,7 +2081,12 @@ async def delete_journal_subscription( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> None: - """ + """Delete a specific webhook journal subscription using its unique identifier. + + This + operation is useful for managing and cleaning up subscriptions that are no + longer needed. + Args: extra_headers: Send extra headers @@ -1732,7 +2105,7 @@ async def delete_journal_subscription( cast_to=NoneType, ) - async def delete_portal_subscriptions( + async def delete_journal_subscription_for_portal( self, portal_id: int, *, @@ -1743,7 +2116,12 @@ async def delete_portal_subscriptions( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> None: - """ + """Delete a webhook journal subscription for a specific portal. + + This operation + removes the subscription associated with the given portalId, effectively + stopping any webhook events from being sent to the portal. + Args: extra_headers: Send extra headers @@ -1796,11 +2174,10 @@ async def delete_settings( cast_to=NoneType, ) - async def delete_subscription( + async def delete_subscription_filter( self, - subscription_id: int, + filter_id: int, *, - app_id: int, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1808,8 +2185,12 @@ async def delete_subscription( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> None: - """ - Delete an existing event subscription by ID. + """Remove a specific filter from your webhook journal subscriptions. + + This operation + is useful when you need to clean up or modify the filters applied to your + webhook subscriptions. The filter identified by the filterId will be permanently + deleted. Args: extra_headers: Send extra headers @@ -1822,30 +2203,35 @@ async def delete_subscription( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - path_template( - "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", - app_id=app_id, - subscription_id=subscription_id, - ), + path_template("/webhooks-journal/subscriptions/2026-03/filters/{filter_id}", filter_id=filter_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), cast_to=NoneType, ) - async def delete_subscription_filter( + async def get_earliest_journal_batch( self, - filter_id: int, + count: int, *, + install_portal_id: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> None: - """ + ) -> BatchResponseJournalFetchResponse: + """Retrieve the earliest batch of webhook journal entries up to the specified + count. + + This endpoint is useful for fetching historical webhook data in batches, + allowing you to process or analyze them as needed. + Args: + install_portal_id: The ID of the portal installation for which to fetch the journal entries. This + is an optional parameter. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1854,16 +2240,22 @@ async def delete_subscription_filter( timeout: Override the client-level default timeout for this request, in seconds """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return await self._delete( - path_template("/webhooks-journal/subscriptions/2026-03/filters/{filter_id}", filter_id=filter_id), + return await self._get( + path_template("/webhooks-journal/journal/2026-03/batch/earliest/{count}", count=count), options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=await async_maybe_transform( + {"install_portal_id": install_portal_id}, + webhook_get_earliest_journal_batch_params.WebhookGetEarliestJournalBatchParams, + ), ), - cast_to=NoneType, + cast_to=BatchResponseJournalFetchResponse, ) - async def get_earliest_journal( + async def get_earliest_journal_entry( self, *, install_portal_id: int | Omit = omit, @@ -1875,7 +2267,14 @@ async def get_earliest_journal( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> AsyncBinaryAPIResponse: """ + Retrieve the earliest entry from the webhooks journal for the specified portal. + This endpoint is useful for accessing the initial entries in the journal, which + can be helpful for debugging or auditing purposes. + Args: + install_portal_id: The ID of the portal installation to filter the journal entries. This is an + integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1894,13 +2293,13 @@ async def get_earliest_journal( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_earliest_journal_params.WebhookGetEarliestJournalParams, + webhook_get_earliest_journal_entry_params.WebhookGetEarliestJournalEntryParams, ), ), cast_to=AsyncBinaryAPIResponse, ) - async def get_earliest_journal_batch( + async def get_earliest_local_journal_batch( self, count: int, *, @@ -1913,7 +2312,14 @@ async def get_earliest_journal_batch( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BatchResponseJournalFetchResponse: """ + Retrieve the earliest batch of webhook journal entries up to a specified count. + This endpoint is useful for accessing the oldest records available in the + webhook journal, allowing you to process or analyze historical webhook data. + Args: + install_portal_id: The ID of the portal installation to filter the webhook journal entries. It is + an integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1923,7 +2329,7 @@ async def get_earliest_journal_batch( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - path_template("/webhooks-journal/journal/2026-03/batch/earliest/{count}", count=count), + path_template("/webhooks-journal/journal-local/2026-03/batch/earliest/{count}", count=count), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1931,13 +2337,13 @@ async def get_earliest_journal_batch( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_earliest_journal_batch_params.WebhookGetEarliestJournalBatchParams, + webhook_get_earliest_local_journal_batch_params.WebhookGetEarliestLocalJournalBatchParams, ), ), cast_to=BatchResponseJournalFetchResponse, ) - async def get_earliest_local_journal( + async def get_earliest_local_journal_entry( self, *, install_portal_id: int | Omit = omit, @@ -1949,7 +2355,14 @@ async def get_earliest_local_journal( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> AsyncBinaryAPIResponse: """ + Retrieve the earliest entry from the webhooks journal for the specified portal. + This endpoint is useful for accessing the oldest available data in the journal, + which can be used for historical analysis or troubleshooting. + Args: + install_portal_id: The ID of the portal for which to retrieve the earliest journal entry. This + parameter is optional and should be an integer. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1968,25 +2381,27 @@ async def get_earliest_local_journal( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_earliest_local_journal_params.WebhookGetEarliestLocalJournalParams, + webhook_get_earliest_local_journal_entry_params.WebhookGetEarliestLocalJournalEntryParams, ), ), cast_to=AsyncBinaryAPIResponse, ) - async def get_earliest_local_journal_batch( + async def get_event_subscription( self, - count: int, + subscription_id: int, *, - install_portal_id: int | Omit = omit, + app_id: int, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> BatchResponseJournalFetchResponse: + ) -> SubscriptionResponse: """ + Retrieve a specific event subscription by ID. + Args: extra_headers: Send extra headers @@ -1997,21 +2412,18 @@ async def get_earliest_local_journal_batch( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - path_template("/webhooks-journal/journal-local/2026-03/batch/earliest/{count}", count=count), + path_template( + "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", + app_id=app_id, + subscription_id=subscription_id, + ), options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - query=await async_maybe_transform( - {"install_portal_id": install_portal_id}, - webhook_get_earliest_local_journal_batch_params.WebhookGetEarliestLocalJournalBatchParams, - ), + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=BatchResponseJournalFetchResponse, + cast_to=SubscriptionResponse, ) - async def get_journal_batch( + async def get_journal_batch_by_request( self, *, inputs: SequenceNotStr[str], @@ -2023,10 +2435,18 @@ async def get_journal_batch( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BatchResponseJournalFetchResponse: - """ + """Read a batch of webhook journal entries for the specified portal. + + This endpoint + allows you to retrieve detailed information about webhook events processed by + your HubSpot account. It is useful for auditing and tracking webhook activity. + Args: inputs: Strings to input. + install_portal_id: The ID of the portal from which to retrieve webhook journal entries. This is an + integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2038,7 +2458,7 @@ async def get_journal_batch( return await self._post( "/webhooks-journal/journal/2026-03/batch/read", body=await async_maybe_transform( - {"inputs": inputs}, webhook_get_journal_batch_params.WebhookGetJournalBatchParams + {"inputs": inputs}, webhook_get_journal_batch_by_request_params.WebhookGetJournalBatchByRequestParams ), options=make_request_options( extra_headers=extra_headers, @@ -2047,13 +2467,13 @@ async def get_journal_batch( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_journal_batch_params.WebhookGetJournalBatchParams, + webhook_get_journal_batch_by_request_params.WebhookGetJournalBatchByRequestParams, ), ), cast_to=BatchResponseJournalFetchResponse, ) - async def get_journal_batch_after_offset( + async def get_journal_batch_from_offset( self, count: int, *, @@ -2067,7 +2487,14 @@ async def get_journal_batch_after_offset( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BatchResponseJournalFetchResponse: """ + Retrieve a batch of webhook journal entries starting from a specified offset. + This endpoint allows you to specify the number of entries to retrieve, helping + you manage and paginate through large sets of webhook data efficiently. + Args: + install_portal_id: The ID of the portal installation to filter the webhook journal entries. This + parameter is optional and is used to specify which portal's data to retrieve. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2087,7 +2514,7 @@ async def get_journal_batch_after_offset( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_journal_batch_after_offset_params.WebhookGetJournalBatchAfterOffsetParams, + webhook_get_journal_batch_from_offset_params.WebhookGetJournalBatchFromOffsetParams, ), ), cast_to=BatchResponseJournalFetchResponse, @@ -2105,6 +2532,46 @@ async def get_journal_status( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> SnapshotStatusResponse: """ + Retrieve the status of a specific webhook journal entry using its unique status + ID. This endpoint is useful for monitoring the progress or outcome of a webhook + operation, providing insights into whether it is pending, in progress, + completed, failed, or expired. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not status_id: + raise ValueError(f"Expected a non-empty value for `status_id` but received {status_id!r}") + return await self._get( + path_template("/webhooks-journal/journal/2026-03/status/{status_id}", status_id=status_id), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=SnapshotStatusResponse, + ) + + async def get_journal_subscription( + self, + subscription_id: int, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> SubscriptionResponse1: + """ + Retrieve details of a specific webhook journal subscription using its unique + identifier. This endpoint is useful for obtaining information about a particular + subscription, such as its actions, object types, and associated properties. + Args: extra_headers: Send extra headers @@ -2114,18 +2581,17 @@ async def get_journal_status( timeout: Override the client-level default timeout for this request, in seconds """ - if not status_id: - raise ValueError(f"Expected a non-empty value for `status_id` but received {status_id!r}") return await self._get( - path_template("/webhooks-journal/journal/2026-03/status/{status_id}", status_id=status_id), + path_template("/webhooks-journal/subscriptions/2026-03/{subscription_id}", subscription_id=subscription_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=SnapshotStatusResponse, + cast_to=SubscriptionResponse1, ) - async def get_latest_journal( + async def get_latest_journal_batch( self, + count: int, *, install_portal_id: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -2134,9 +2600,17 @@ async def get_latest_journal( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> AsyncBinaryAPIResponse: + ) -> BatchResponseJournalFetchResponse: """ + Retrieve the latest batch of webhook journal entries up to a specified count. + This endpoint is useful for fetching the most recent webhook events processed by + your HubSpot account. The response includes details about each event, and you + can specify the number of entries to retrieve. + Args: + install_portal_id: The ID of the portal installation. This parameter is optional and can be used to + filter results by a specific portal. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2145,9 +2619,8 @@ async def get_latest_journal( timeout: Override the client-level default timeout for this request, in seconds """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._get( - "/webhooks-journal/journal/2026-03/latest", + path_template("/webhooks-journal/journal/2026-03/batch/latest/{count}", count=count), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2155,15 +2628,14 @@ async def get_latest_journal( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_latest_journal_params.WebhookGetLatestJournalParams, + webhook_get_latest_journal_batch_params.WebhookGetLatestJournalBatchParams, ), ), - cast_to=AsyncBinaryAPIResponse, + cast_to=BatchResponseJournalFetchResponse, ) - async def get_latest_journal_batch( + async def get_latest_journal_entry( self, - count: int, *, install_portal_id: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -2172,9 +2644,16 @@ async def get_latest_journal_batch( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> BatchResponseJournalFetchResponse: + ) -> AsyncBinaryAPIResponse: """ + Retrieve the latest entry from the webhooks journal for the specified portal. + This endpoint is useful for accessing the most recent webhook data available in + the journal. + Args: + install_portal_id: The ID of the portal for which to retrieve the latest journal entry. It is an + integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2183,8 +2662,9 @@ async def get_latest_journal_batch( timeout: Override the client-level default timeout for this request, in seconds """ + extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._get( - path_template("/webhooks-journal/journal/2026-03/batch/latest/{count}", count=count), + "/webhooks-journal/journal/2026-03/latest", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2192,14 +2672,15 @@ async def get_latest_journal_batch( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_latest_journal_batch_params.WebhookGetLatestJournalBatchParams, + webhook_get_latest_journal_entry_params.WebhookGetLatestJournalEntryParams, ), ), - cast_to=BatchResponseJournalFetchResponse, + cast_to=AsyncBinaryAPIResponse, ) - async def get_latest_local_journal( + async def get_latest_local_journal_batch( self, + count: int, *, install_portal_id: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -2208,9 +2689,16 @@ async def get_latest_local_journal( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> AsyncBinaryAPIResponse: + ) -> BatchResponseJournalFetchResponse: """ + Retrieve the latest batch of webhook journal entries up to a specified count. + This endpoint is useful for fetching the most recent webhook events processed by + the system. It requires authentication and supports various security schemes. + Args: + install_portal_id: The ID of the portal installation to filter the webhook journal entries. It is + an optional integer parameter. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2219,9 +2707,8 @@ async def get_latest_local_journal( timeout: Override the client-level default timeout for this request, in seconds """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._get( - "/webhooks-journal/journal-local/2026-03/latest", + path_template("/webhooks-journal/journal-local/2026-03/batch/latest/{count}", count=count), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2229,15 +2716,14 @@ async def get_latest_local_journal( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_latest_local_journal_params.WebhookGetLatestLocalJournalParams, + webhook_get_latest_local_journal_batch_params.WebhookGetLatestLocalJournalBatchParams, ), ), - cast_to=AsyncBinaryAPIResponse, + cast_to=BatchResponseJournalFetchResponse, ) - async def get_latest_local_journal_batch( + async def get_latest_local_journal_entry( self, - count: int, *, install_portal_id: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -2246,9 +2732,18 @@ async def get_latest_local_journal_batch( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> BatchResponseJournalFetchResponse: - """ + ) -> AsyncBinaryAPIResponse: + """Retrieve the latest entries from the webhooks journal. + + This endpoint is useful + for accessing the most recent webhook data for analysis or troubleshooting. It + supports filtering by the installPortalId to narrow down results to a specific + portal. + Args: + install_portal_id: An integer representing the ID of the portal to filter the webhook journal + entries. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2257,8 +2752,9 @@ async def get_latest_local_journal_batch( timeout: Override the client-level default timeout for this request, in seconds """ + extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._get( - path_template("/webhooks-journal/journal-local/2026-03/batch/latest/{count}", count=count), + "/webhooks-journal/journal-local/2026-03/latest", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2266,13 +2762,13 @@ async def get_latest_local_journal_batch( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_latest_local_journal_batch_params.WebhookGetLatestLocalJournalBatchParams, + webhook_get_latest_local_journal_entry_params.WebhookGetLatestLocalJournalEntryParams, ), ), - cast_to=BatchResponseJournalFetchResponse, + cast_to=AsyncBinaryAPIResponse, ) - async def get_local_journal_batch( + async def get_local_journal_batch_by_request( self, *, inputs: SequenceNotStr[str], @@ -2284,10 +2780,18 @@ async def get_local_journal_batch( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BatchResponseJournalFetchResponse: - """ + """Perform a batch read operation on the webhooks journal. + + This endpoint allows you + to retrieve a batch of journal entries by providing the necessary input data. It + is useful for processing large volumes of webhook data efficiently. + Args: inputs: Strings to input. + install_portal_id: The ID of the portal where the webhook is installed. This parameter is optional + and is used to specify the portal context for the operation. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2299,7 +2803,8 @@ async def get_local_journal_batch( return await self._post( "/webhooks-journal/journal-local/2026-03/batch/read", body=await async_maybe_transform( - {"inputs": inputs}, webhook_get_local_journal_batch_params.WebhookGetLocalJournalBatchParams + {"inputs": inputs}, + webhook_get_local_journal_batch_by_request_params.WebhookGetLocalJournalBatchByRequestParams, ), options=make_request_options( extra_headers=extra_headers, @@ -2308,13 +2813,13 @@ async def get_local_journal_batch( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_local_journal_batch_params.WebhookGetLocalJournalBatchParams, + webhook_get_local_journal_batch_by_request_params.WebhookGetLocalJournalBatchByRequestParams, ), ), cast_to=BatchResponseJournalFetchResponse, ) - async def get_local_journal_batch_after_offset( + async def get_local_journal_batch_from_offset( self, count: int, *, @@ -2328,7 +2833,13 @@ async def get_local_journal_batch_after_offset( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> BatchResponseJournalFetchResponse: """ + Retrieve a batch of webhook journal entries starting from a specified offset. + This endpoint is useful for fetching sequential batches of data, allowing you to + paginate through large sets of webhook journal entries efficiently. + Args: + install_portal_id: The ID of the portal where the webhooks are installed. This is an integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2350,7 +2861,7 @@ async def get_local_journal_batch_after_offset( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_local_journal_batch_after_offset_params.WebhookGetLocalJournalBatchAfterOffsetParams, + webhook_get_local_journal_batch_from_offset_params.WebhookGetLocalJournalBatchFromOffsetParams, ), ), cast_to=BatchResponseJournalFetchResponse, @@ -2368,6 +2879,11 @@ async def get_local_journal_status( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> SnapshotStatusResponse: """ + Retrieve the status of a specific webhook journal entry using its unique status + ID. This endpoint is useful for checking the progress or result of a webhook + operation, such as whether it is pending, in progress, completed, failed, or + expired. + Args: extra_headers: Send extra headers @@ -2387,7 +2903,7 @@ async def get_local_journal_status( cast_to=SnapshotStatusResponse, ) - async def get_next_journal_after_offset( + async def get_next_journal_entries( self, offset: str, *, @@ -2400,7 +2916,14 @@ async def get_next_journal_after_offset( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> AsyncBinaryAPIResponse: """ + Retrieve the next set of webhook journal entries starting from a specified + offset. This endpoint is useful for paginating through webhook journal entries + in a HubSpot account. It allows you to continue fetching entries from where the + last request left off, using the offset parameter. + Args: + install_portal_id: The ID of the portal where the webhooks are installed. This is an integer value. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2421,13 +2944,13 @@ async def get_next_journal_after_offset( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_next_journal_after_offset_params.WebhookGetNextJournalAfterOffsetParams, + webhook_get_next_journal_entries_params.WebhookGetNextJournalEntriesParams, ), ), cast_to=AsyncBinaryAPIResponse, ) - async def get_next_local_journal_after_offset( + async def get_next_local_journal_entries( self, offset: str, *, @@ -2439,8 +2962,17 @@ async def get_next_local_journal_after_offset( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> AsyncBinaryAPIResponse: - """ + """Retrieve the next set of journal entries starting from a specified offset. + + This + endpoint is useful for paginating through webhook journal entries in a + sequential manner. It requires specifying the offset from which the next entries + should be fetched. + Args: + install_portal_id: The ID of the portal installation to filter the journal entries by. This is an + optional parameter. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2461,7 +2993,7 @@ async def get_next_local_journal_after_offset( timeout=timeout, query=await async_maybe_transform( {"install_portal_id": install_portal_id}, - webhook_get_next_local_journal_after_offset_params.WebhookGetNextLocalJournalAfterOffsetParams, + webhook_get_next_local_journal_entries_params.WebhookGetNextLocalJournalEntriesParams, ), ), cast_to=AsyncBinaryAPIResponse, @@ -2499,42 +3031,6 @@ async def get_settings( cast_to=SettingsResponse, ) - async def get_subscription( - self, - subscription_id: int, - *, - app_id: int, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse: - """ - Retrieve a specific event subscription by ID. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - return await self._get( - path_template( - "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", - app_id=app_id, - subscription_id=subscription_id, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=SubscriptionResponse, - ) - async def get_subscription_filter( self, filter_id: int, @@ -2546,7 +3042,13 @@ async def get_subscription_filter( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> FilterResponse: - """ + """Retrieve a specific filter associated with a webhook journal subscription. + + This + endpoint allows you to access detailed information about the filter identified + by the filterId path parameter. It is useful for managing and reviewing filter + configurations within your webhook subscriptions. + Args: extra_headers: Send extra headers @@ -2564,9 +3066,9 @@ async def get_subscription_filter( cast_to=FilterResponse, ) - async def get_subscription_filters( + async def list_event_subscriptions( self, - subscription_id: int, + app_id: int, *, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -2574,8 +3076,10 @@ async def get_subscription_filters( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> WebhookGetSubscriptionFiltersResponse: + ) -> SubscriptionListResponse: """ + Retrieve event subscriptions for the specified app. + Args: extra_headers: Send extra headers @@ -2586,14 +3090,11 @@ async def get_subscription_filters( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - path_template( - "/webhooks-journal/subscriptions/2026-03/filters/subscription/{subscription_id}", - subscription_id=subscription_id, - ), + path_template("/webhooks/2026-03/{app_id}/subscriptions", app_id=app_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=WebhookGetSubscriptionFiltersResponse, + cast_to=SubscriptionListResponse, ) async def list_journal_subscriptions( @@ -2606,6 +3107,12 @@ async def list_journal_subscriptions( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CollectionResponseSubscriptionResponseNoPaging: + """Retrieve a list of webhook journal subscriptions for the specified version. + + This + endpoint allows you to view all active subscriptions without pagination. It is + useful for managing and auditing webhook subscriptions in your HubSpot account. + """ return await self._get( "/webhooks-journal/subscriptions/2026-03", options=make_request_options( @@ -2614,9 +3121,9 @@ async def list_journal_subscriptions( cast_to=CollectionResponseSubscriptionResponseNoPaging, ) - async def list_subscriptions( + async def list_subscription_filters( self, - app_id: int, + subscription_id: int, *, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -2624,9 +3131,13 @@ async def list_subscriptions( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionListResponse: - """ - Retrieve event subscriptions for the specified app. + ) -> WebhookListSubscriptionFiltersResponse: + """Retrieve the filters associated with a specific webhook subscription. + + This + endpoint is useful for obtaining detailed information about the filters applied + to a subscription, which can help in managing and understanding the data flow + through your webhook integrations. Args: extra_headers: Send extra headers @@ -2638,33 +3149,36 @@ async def list_subscriptions( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - path_template("/webhooks/2026-03/{app_id}/subscriptions", app_id=app_id), + path_template( + "/webhooks-journal/subscriptions/2026-03/filters/subscription/{subscription_id}", + subscription_id=subscription_id, + ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=SubscriptionListResponse, + cast_to=WebhookListSubscriptionFiltersResponse, ) - async def update_settings( + async def update_event_subscription( self, - app_id: int, + subscription_id: int, *, - target_url: str, - throttling: ThrottlingSettingsParam, + app_id: int, + active: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SettingsResponse: + ) -> SubscriptionResponse: """ - Update webhook settings for the specified app. + Update an existing event subscription by ID. Args: - target_url: A publicly available URL for Hubspot to call where event payloads will be - delivered. See [link-so-some-doc](#) for details about the format of these event - payloads. + active: Whether to activate or pause the webhook subscription. If true, the subscription + will send webhook notifications. If false, the subscription is paused and will + not send notifications. extra_headers: Send extra headers @@ -2674,41 +3188,41 @@ async def update_settings( timeout: Override the client-level default timeout for this request, in seconds """ - return await self._put( - path_template("/webhooks/2026-03/{app_id}/settings", app_id=app_id), + return await self._patch( + path_template( + "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", + app_id=app_id, + subscription_id=subscription_id, + ), body=await async_maybe_transform( - { - "target_url": target_url, - "throttling": throttling, - }, - webhook_update_settings_params.WebhookUpdateSettingsParams, + {"active": active}, webhook_update_event_subscription_params.WebhookUpdateEventSubscriptionParams ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=SettingsResponse, + cast_to=SubscriptionResponse, ) - async def update_subscription( + async def update_settings( self, - subscription_id: int, - *, app_id: int, - active: bool | Omit = omit, + *, + target_url: str, + throttling: ThrottlingSettingsParam, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SubscriptionResponse: + ) -> SettingsResponse: """ - Update an existing event subscription by ID. + Update webhook settings for the specified app. Args: - active: Whether to activate or pause the webhook subscription. If true, the subscription - will send webhook notifications. If false, the subscription is paused and will - not send notifications. + target_url: A publicly available URL for Hubspot to call where event payloads will be + delivered. See [link-so-some-doc](#) for details about the format of these event + payloads. extra_headers: Send extra headers @@ -2718,19 +3232,19 @@ async def update_subscription( timeout: Override the client-level default timeout for this request, in seconds """ - return await self._patch( - path_template( - "/webhooks/2026-03/{app_id}/subscriptions/{subscription_id}", - app_id=app_id, - subscription_id=subscription_id, - ), + return await self._put( + path_template("/webhooks/2026-03/{app_id}/settings", app_id=app_id), body=await async_maybe_transform( - {"active": active}, webhook_update_subscription_params.WebhookUpdateSubscriptionParams + { + "target_url": target_url, + "throttling": throttling, + }, + webhook_update_settings_params.WebhookUpdateSettingsParams, ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=SubscriptionResponse, + cast_to=SettingsResponse, ) @@ -2738,453 +3252,465 @@ class WebhooksResourceWithRawResponse: def __init__(self, webhooks: WebhooksResource) -> None: self._webhooks = webhooks - self.create_crm_snapshot = to_raw_response_wrapper( - webhooks.create_crm_snapshot, + self.create_batch_event_subscriptions = to_raw_response_wrapper( + webhooks.create_batch_event_subscriptions, + ) + self.create_crm_snapshots = to_raw_response_wrapper( + webhooks.create_crm_snapshots, + ) + self.create_event_subscription = to_raw_response_wrapper( + webhooks.create_event_subscription, ) self.create_journal_subscription = to_raw_response_wrapper( webhooks.create_journal_subscription, ) - self.create_subscription = to_raw_response_wrapper( - webhooks.create_subscription, - ) self.create_subscription_filter = to_raw_response_wrapper( webhooks.create_subscription_filter, ) - self.create_subscriptions_batch = to_raw_response_wrapper( - webhooks.create_subscriptions_batch, + self.delete_event_subscription = to_raw_response_wrapper( + webhooks.delete_event_subscription, ) self.delete_journal_subscription = to_raw_response_wrapper( webhooks.delete_journal_subscription, ) - self.delete_portal_subscriptions = to_raw_response_wrapper( - webhooks.delete_portal_subscriptions, + self.delete_journal_subscription_for_portal = to_raw_response_wrapper( + webhooks.delete_journal_subscription_for_portal, ) self.delete_settings = to_raw_response_wrapper( webhooks.delete_settings, ) - self.delete_subscription = to_raw_response_wrapper( - webhooks.delete_subscription, - ) self.delete_subscription_filter = to_raw_response_wrapper( webhooks.delete_subscription_filter, ) - self.get_earliest_journal = to_custom_raw_response_wrapper( - webhooks.get_earliest_journal, - BinaryAPIResponse, - ) self.get_earliest_journal_batch = to_raw_response_wrapper( webhooks.get_earliest_journal_batch, ) - self.get_earliest_local_journal = to_custom_raw_response_wrapper( - webhooks.get_earliest_local_journal, + self.get_earliest_journal_entry = to_custom_raw_response_wrapper( + webhooks.get_earliest_journal_entry, BinaryAPIResponse, ) self.get_earliest_local_journal_batch = to_raw_response_wrapper( webhooks.get_earliest_local_journal_batch, ) - self.get_journal_batch = to_raw_response_wrapper( - webhooks.get_journal_batch, + self.get_earliest_local_journal_entry = to_custom_raw_response_wrapper( + webhooks.get_earliest_local_journal_entry, + BinaryAPIResponse, + ) + self.get_event_subscription = to_raw_response_wrapper( + webhooks.get_event_subscription, ) - self.get_journal_batch_after_offset = to_raw_response_wrapper( - webhooks.get_journal_batch_after_offset, + self.get_journal_batch_by_request = to_raw_response_wrapper( + webhooks.get_journal_batch_by_request, + ) + self.get_journal_batch_from_offset = to_raw_response_wrapper( + webhooks.get_journal_batch_from_offset, ) self.get_journal_status = to_raw_response_wrapper( webhooks.get_journal_status, ) - self.get_latest_journal = to_custom_raw_response_wrapper( - webhooks.get_latest_journal, - BinaryAPIResponse, + self.get_journal_subscription = to_raw_response_wrapper( + webhooks.get_journal_subscription, ) self.get_latest_journal_batch = to_raw_response_wrapper( webhooks.get_latest_journal_batch, ) - self.get_latest_local_journal = to_custom_raw_response_wrapper( - webhooks.get_latest_local_journal, + self.get_latest_journal_entry = to_custom_raw_response_wrapper( + webhooks.get_latest_journal_entry, BinaryAPIResponse, ) self.get_latest_local_journal_batch = to_raw_response_wrapper( webhooks.get_latest_local_journal_batch, ) - self.get_local_journal_batch = to_raw_response_wrapper( - webhooks.get_local_journal_batch, + self.get_latest_local_journal_entry = to_custom_raw_response_wrapper( + webhooks.get_latest_local_journal_entry, + BinaryAPIResponse, + ) + self.get_local_journal_batch_by_request = to_raw_response_wrapper( + webhooks.get_local_journal_batch_by_request, ) - self.get_local_journal_batch_after_offset = to_raw_response_wrapper( - webhooks.get_local_journal_batch_after_offset, + self.get_local_journal_batch_from_offset = to_raw_response_wrapper( + webhooks.get_local_journal_batch_from_offset, ) self.get_local_journal_status = to_raw_response_wrapper( webhooks.get_local_journal_status, ) - self.get_next_journal_after_offset = to_custom_raw_response_wrapper( - webhooks.get_next_journal_after_offset, + self.get_next_journal_entries = to_custom_raw_response_wrapper( + webhooks.get_next_journal_entries, BinaryAPIResponse, ) - self.get_next_local_journal_after_offset = to_custom_raw_response_wrapper( - webhooks.get_next_local_journal_after_offset, + self.get_next_local_journal_entries = to_custom_raw_response_wrapper( + webhooks.get_next_local_journal_entries, BinaryAPIResponse, ) self.get_settings = to_raw_response_wrapper( webhooks.get_settings, ) - self.get_subscription = to_raw_response_wrapper( - webhooks.get_subscription, - ) self.get_subscription_filter = to_raw_response_wrapper( webhooks.get_subscription_filter, ) - self.get_subscription_filters = to_raw_response_wrapper( - webhooks.get_subscription_filters, + self.list_event_subscriptions = to_raw_response_wrapper( + webhooks.list_event_subscriptions, ) self.list_journal_subscriptions = to_raw_response_wrapper( webhooks.list_journal_subscriptions, ) - self.list_subscriptions = to_raw_response_wrapper( - webhooks.list_subscriptions, + self.list_subscription_filters = to_raw_response_wrapper( + webhooks.list_subscription_filters, + ) + self.update_event_subscription = to_raw_response_wrapper( + webhooks.update_event_subscription, ) self.update_settings = to_raw_response_wrapper( webhooks.update_settings, ) - self.update_subscription = to_raw_response_wrapper( - webhooks.update_subscription, - ) class AsyncWebhooksResourceWithRawResponse: def __init__(self, webhooks: AsyncWebhooksResource) -> None: self._webhooks = webhooks - self.create_crm_snapshot = async_to_raw_response_wrapper( - webhooks.create_crm_snapshot, + self.create_batch_event_subscriptions = async_to_raw_response_wrapper( + webhooks.create_batch_event_subscriptions, + ) + self.create_crm_snapshots = async_to_raw_response_wrapper( + webhooks.create_crm_snapshots, + ) + self.create_event_subscription = async_to_raw_response_wrapper( + webhooks.create_event_subscription, ) self.create_journal_subscription = async_to_raw_response_wrapper( webhooks.create_journal_subscription, ) - self.create_subscription = async_to_raw_response_wrapper( - webhooks.create_subscription, - ) self.create_subscription_filter = async_to_raw_response_wrapper( webhooks.create_subscription_filter, ) - self.create_subscriptions_batch = async_to_raw_response_wrapper( - webhooks.create_subscriptions_batch, + self.delete_event_subscription = async_to_raw_response_wrapper( + webhooks.delete_event_subscription, ) self.delete_journal_subscription = async_to_raw_response_wrapper( webhooks.delete_journal_subscription, ) - self.delete_portal_subscriptions = async_to_raw_response_wrapper( - webhooks.delete_portal_subscriptions, + self.delete_journal_subscription_for_portal = async_to_raw_response_wrapper( + webhooks.delete_journal_subscription_for_portal, ) self.delete_settings = async_to_raw_response_wrapper( webhooks.delete_settings, ) - self.delete_subscription = async_to_raw_response_wrapper( - webhooks.delete_subscription, - ) self.delete_subscription_filter = async_to_raw_response_wrapper( webhooks.delete_subscription_filter, ) - self.get_earliest_journal = async_to_custom_raw_response_wrapper( - webhooks.get_earliest_journal, - AsyncBinaryAPIResponse, - ) self.get_earliest_journal_batch = async_to_raw_response_wrapper( webhooks.get_earliest_journal_batch, ) - self.get_earliest_local_journal = async_to_custom_raw_response_wrapper( - webhooks.get_earliest_local_journal, + self.get_earliest_journal_entry = async_to_custom_raw_response_wrapper( + webhooks.get_earliest_journal_entry, AsyncBinaryAPIResponse, ) self.get_earliest_local_journal_batch = async_to_raw_response_wrapper( webhooks.get_earliest_local_journal_batch, ) - self.get_journal_batch = async_to_raw_response_wrapper( - webhooks.get_journal_batch, + self.get_earliest_local_journal_entry = async_to_custom_raw_response_wrapper( + webhooks.get_earliest_local_journal_entry, + AsyncBinaryAPIResponse, + ) + self.get_event_subscription = async_to_raw_response_wrapper( + webhooks.get_event_subscription, + ) + self.get_journal_batch_by_request = async_to_raw_response_wrapper( + webhooks.get_journal_batch_by_request, ) - self.get_journal_batch_after_offset = async_to_raw_response_wrapper( - webhooks.get_journal_batch_after_offset, + self.get_journal_batch_from_offset = async_to_raw_response_wrapper( + webhooks.get_journal_batch_from_offset, ) self.get_journal_status = async_to_raw_response_wrapper( webhooks.get_journal_status, ) - self.get_latest_journal = async_to_custom_raw_response_wrapper( - webhooks.get_latest_journal, - AsyncBinaryAPIResponse, + self.get_journal_subscription = async_to_raw_response_wrapper( + webhooks.get_journal_subscription, ) self.get_latest_journal_batch = async_to_raw_response_wrapper( webhooks.get_latest_journal_batch, ) - self.get_latest_local_journal = async_to_custom_raw_response_wrapper( - webhooks.get_latest_local_journal, + self.get_latest_journal_entry = async_to_custom_raw_response_wrapper( + webhooks.get_latest_journal_entry, AsyncBinaryAPIResponse, ) self.get_latest_local_journal_batch = async_to_raw_response_wrapper( webhooks.get_latest_local_journal_batch, ) - self.get_local_journal_batch = async_to_raw_response_wrapper( - webhooks.get_local_journal_batch, + self.get_latest_local_journal_entry = async_to_custom_raw_response_wrapper( + webhooks.get_latest_local_journal_entry, + AsyncBinaryAPIResponse, + ) + self.get_local_journal_batch_by_request = async_to_raw_response_wrapper( + webhooks.get_local_journal_batch_by_request, ) - self.get_local_journal_batch_after_offset = async_to_raw_response_wrapper( - webhooks.get_local_journal_batch_after_offset, + self.get_local_journal_batch_from_offset = async_to_raw_response_wrapper( + webhooks.get_local_journal_batch_from_offset, ) self.get_local_journal_status = async_to_raw_response_wrapper( webhooks.get_local_journal_status, ) - self.get_next_journal_after_offset = async_to_custom_raw_response_wrapper( - webhooks.get_next_journal_after_offset, + self.get_next_journal_entries = async_to_custom_raw_response_wrapper( + webhooks.get_next_journal_entries, AsyncBinaryAPIResponse, ) - self.get_next_local_journal_after_offset = async_to_custom_raw_response_wrapper( - webhooks.get_next_local_journal_after_offset, + self.get_next_local_journal_entries = async_to_custom_raw_response_wrapper( + webhooks.get_next_local_journal_entries, AsyncBinaryAPIResponse, ) self.get_settings = async_to_raw_response_wrapper( webhooks.get_settings, ) - self.get_subscription = async_to_raw_response_wrapper( - webhooks.get_subscription, - ) self.get_subscription_filter = async_to_raw_response_wrapper( webhooks.get_subscription_filter, ) - self.get_subscription_filters = async_to_raw_response_wrapper( - webhooks.get_subscription_filters, + self.list_event_subscriptions = async_to_raw_response_wrapper( + webhooks.list_event_subscriptions, ) self.list_journal_subscriptions = async_to_raw_response_wrapper( webhooks.list_journal_subscriptions, ) - self.list_subscriptions = async_to_raw_response_wrapper( - webhooks.list_subscriptions, + self.list_subscription_filters = async_to_raw_response_wrapper( + webhooks.list_subscription_filters, + ) + self.update_event_subscription = async_to_raw_response_wrapper( + webhooks.update_event_subscription, ) self.update_settings = async_to_raw_response_wrapper( webhooks.update_settings, ) - self.update_subscription = async_to_raw_response_wrapper( - webhooks.update_subscription, - ) class WebhooksResourceWithStreamingResponse: def __init__(self, webhooks: WebhooksResource) -> None: self._webhooks = webhooks - self.create_crm_snapshot = to_streamed_response_wrapper( - webhooks.create_crm_snapshot, + self.create_batch_event_subscriptions = to_streamed_response_wrapper( + webhooks.create_batch_event_subscriptions, + ) + self.create_crm_snapshots = to_streamed_response_wrapper( + webhooks.create_crm_snapshots, + ) + self.create_event_subscription = to_streamed_response_wrapper( + webhooks.create_event_subscription, ) self.create_journal_subscription = to_streamed_response_wrapper( webhooks.create_journal_subscription, ) - self.create_subscription = to_streamed_response_wrapper( - webhooks.create_subscription, - ) self.create_subscription_filter = to_streamed_response_wrapper( webhooks.create_subscription_filter, ) - self.create_subscriptions_batch = to_streamed_response_wrapper( - webhooks.create_subscriptions_batch, + self.delete_event_subscription = to_streamed_response_wrapper( + webhooks.delete_event_subscription, ) self.delete_journal_subscription = to_streamed_response_wrapper( webhooks.delete_journal_subscription, ) - self.delete_portal_subscriptions = to_streamed_response_wrapper( - webhooks.delete_portal_subscriptions, + self.delete_journal_subscription_for_portal = to_streamed_response_wrapper( + webhooks.delete_journal_subscription_for_portal, ) self.delete_settings = to_streamed_response_wrapper( webhooks.delete_settings, ) - self.delete_subscription = to_streamed_response_wrapper( - webhooks.delete_subscription, - ) self.delete_subscription_filter = to_streamed_response_wrapper( webhooks.delete_subscription_filter, ) - self.get_earliest_journal = to_custom_streamed_response_wrapper( - webhooks.get_earliest_journal, - StreamedBinaryAPIResponse, - ) self.get_earliest_journal_batch = to_streamed_response_wrapper( webhooks.get_earliest_journal_batch, ) - self.get_earliest_local_journal = to_custom_streamed_response_wrapper( - webhooks.get_earliest_local_journal, + self.get_earliest_journal_entry = to_custom_streamed_response_wrapper( + webhooks.get_earliest_journal_entry, StreamedBinaryAPIResponse, ) self.get_earliest_local_journal_batch = to_streamed_response_wrapper( webhooks.get_earliest_local_journal_batch, ) - self.get_journal_batch = to_streamed_response_wrapper( - webhooks.get_journal_batch, + self.get_earliest_local_journal_entry = to_custom_streamed_response_wrapper( + webhooks.get_earliest_local_journal_entry, + StreamedBinaryAPIResponse, + ) + self.get_event_subscription = to_streamed_response_wrapper( + webhooks.get_event_subscription, ) - self.get_journal_batch_after_offset = to_streamed_response_wrapper( - webhooks.get_journal_batch_after_offset, + self.get_journal_batch_by_request = to_streamed_response_wrapper( + webhooks.get_journal_batch_by_request, + ) + self.get_journal_batch_from_offset = to_streamed_response_wrapper( + webhooks.get_journal_batch_from_offset, ) self.get_journal_status = to_streamed_response_wrapper( webhooks.get_journal_status, ) - self.get_latest_journal = to_custom_streamed_response_wrapper( - webhooks.get_latest_journal, - StreamedBinaryAPIResponse, + self.get_journal_subscription = to_streamed_response_wrapper( + webhooks.get_journal_subscription, ) self.get_latest_journal_batch = to_streamed_response_wrapper( webhooks.get_latest_journal_batch, ) - self.get_latest_local_journal = to_custom_streamed_response_wrapper( - webhooks.get_latest_local_journal, + self.get_latest_journal_entry = to_custom_streamed_response_wrapper( + webhooks.get_latest_journal_entry, StreamedBinaryAPIResponse, ) self.get_latest_local_journal_batch = to_streamed_response_wrapper( webhooks.get_latest_local_journal_batch, ) - self.get_local_journal_batch = to_streamed_response_wrapper( - webhooks.get_local_journal_batch, + self.get_latest_local_journal_entry = to_custom_streamed_response_wrapper( + webhooks.get_latest_local_journal_entry, + StreamedBinaryAPIResponse, + ) + self.get_local_journal_batch_by_request = to_streamed_response_wrapper( + webhooks.get_local_journal_batch_by_request, ) - self.get_local_journal_batch_after_offset = to_streamed_response_wrapper( - webhooks.get_local_journal_batch_after_offset, + self.get_local_journal_batch_from_offset = to_streamed_response_wrapper( + webhooks.get_local_journal_batch_from_offset, ) self.get_local_journal_status = to_streamed_response_wrapper( webhooks.get_local_journal_status, ) - self.get_next_journal_after_offset = to_custom_streamed_response_wrapper( - webhooks.get_next_journal_after_offset, + self.get_next_journal_entries = to_custom_streamed_response_wrapper( + webhooks.get_next_journal_entries, StreamedBinaryAPIResponse, ) - self.get_next_local_journal_after_offset = to_custom_streamed_response_wrapper( - webhooks.get_next_local_journal_after_offset, + self.get_next_local_journal_entries = to_custom_streamed_response_wrapper( + webhooks.get_next_local_journal_entries, StreamedBinaryAPIResponse, ) self.get_settings = to_streamed_response_wrapper( webhooks.get_settings, ) - self.get_subscription = to_streamed_response_wrapper( - webhooks.get_subscription, - ) self.get_subscription_filter = to_streamed_response_wrapper( webhooks.get_subscription_filter, ) - self.get_subscription_filters = to_streamed_response_wrapper( - webhooks.get_subscription_filters, + self.list_event_subscriptions = to_streamed_response_wrapper( + webhooks.list_event_subscriptions, ) self.list_journal_subscriptions = to_streamed_response_wrapper( webhooks.list_journal_subscriptions, ) - self.list_subscriptions = to_streamed_response_wrapper( - webhooks.list_subscriptions, + self.list_subscription_filters = to_streamed_response_wrapper( + webhooks.list_subscription_filters, + ) + self.update_event_subscription = to_streamed_response_wrapper( + webhooks.update_event_subscription, ) self.update_settings = to_streamed_response_wrapper( webhooks.update_settings, ) - self.update_subscription = to_streamed_response_wrapper( - webhooks.update_subscription, - ) class AsyncWebhooksResourceWithStreamingResponse: def __init__(self, webhooks: AsyncWebhooksResource) -> None: self._webhooks = webhooks - self.create_crm_snapshot = async_to_streamed_response_wrapper( - webhooks.create_crm_snapshot, + self.create_batch_event_subscriptions = async_to_streamed_response_wrapper( + webhooks.create_batch_event_subscriptions, + ) + self.create_crm_snapshots = async_to_streamed_response_wrapper( + webhooks.create_crm_snapshots, + ) + self.create_event_subscription = async_to_streamed_response_wrapper( + webhooks.create_event_subscription, ) self.create_journal_subscription = async_to_streamed_response_wrapper( webhooks.create_journal_subscription, ) - self.create_subscription = async_to_streamed_response_wrapper( - webhooks.create_subscription, - ) self.create_subscription_filter = async_to_streamed_response_wrapper( webhooks.create_subscription_filter, ) - self.create_subscriptions_batch = async_to_streamed_response_wrapper( - webhooks.create_subscriptions_batch, + self.delete_event_subscription = async_to_streamed_response_wrapper( + webhooks.delete_event_subscription, ) self.delete_journal_subscription = async_to_streamed_response_wrapper( webhooks.delete_journal_subscription, ) - self.delete_portal_subscriptions = async_to_streamed_response_wrapper( - webhooks.delete_portal_subscriptions, + self.delete_journal_subscription_for_portal = async_to_streamed_response_wrapper( + webhooks.delete_journal_subscription_for_portal, ) self.delete_settings = async_to_streamed_response_wrapper( webhooks.delete_settings, ) - self.delete_subscription = async_to_streamed_response_wrapper( - webhooks.delete_subscription, - ) self.delete_subscription_filter = async_to_streamed_response_wrapper( webhooks.delete_subscription_filter, ) - self.get_earliest_journal = async_to_custom_streamed_response_wrapper( - webhooks.get_earliest_journal, - AsyncStreamedBinaryAPIResponse, - ) self.get_earliest_journal_batch = async_to_streamed_response_wrapper( webhooks.get_earliest_journal_batch, ) - self.get_earliest_local_journal = async_to_custom_streamed_response_wrapper( - webhooks.get_earliest_local_journal, + self.get_earliest_journal_entry = async_to_custom_streamed_response_wrapper( + webhooks.get_earliest_journal_entry, AsyncStreamedBinaryAPIResponse, ) self.get_earliest_local_journal_batch = async_to_streamed_response_wrapper( webhooks.get_earliest_local_journal_batch, ) - self.get_journal_batch = async_to_streamed_response_wrapper( - webhooks.get_journal_batch, + self.get_earliest_local_journal_entry = async_to_custom_streamed_response_wrapper( + webhooks.get_earliest_local_journal_entry, + AsyncStreamedBinaryAPIResponse, + ) + self.get_event_subscription = async_to_streamed_response_wrapper( + webhooks.get_event_subscription, + ) + self.get_journal_batch_by_request = async_to_streamed_response_wrapper( + webhooks.get_journal_batch_by_request, ) - self.get_journal_batch_after_offset = async_to_streamed_response_wrapper( - webhooks.get_journal_batch_after_offset, + self.get_journal_batch_from_offset = async_to_streamed_response_wrapper( + webhooks.get_journal_batch_from_offset, ) self.get_journal_status = async_to_streamed_response_wrapper( webhooks.get_journal_status, ) - self.get_latest_journal = async_to_custom_streamed_response_wrapper( - webhooks.get_latest_journal, - AsyncStreamedBinaryAPIResponse, + self.get_journal_subscription = async_to_streamed_response_wrapper( + webhooks.get_journal_subscription, ) self.get_latest_journal_batch = async_to_streamed_response_wrapper( webhooks.get_latest_journal_batch, ) - self.get_latest_local_journal = async_to_custom_streamed_response_wrapper( - webhooks.get_latest_local_journal, + self.get_latest_journal_entry = async_to_custom_streamed_response_wrapper( + webhooks.get_latest_journal_entry, AsyncStreamedBinaryAPIResponse, ) self.get_latest_local_journal_batch = async_to_streamed_response_wrapper( webhooks.get_latest_local_journal_batch, ) - self.get_local_journal_batch = async_to_streamed_response_wrapper( - webhooks.get_local_journal_batch, + self.get_latest_local_journal_entry = async_to_custom_streamed_response_wrapper( + webhooks.get_latest_local_journal_entry, + AsyncStreamedBinaryAPIResponse, + ) + self.get_local_journal_batch_by_request = async_to_streamed_response_wrapper( + webhooks.get_local_journal_batch_by_request, ) - self.get_local_journal_batch_after_offset = async_to_streamed_response_wrapper( - webhooks.get_local_journal_batch_after_offset, + self.get_local_journal_batch_from_offset = async_to_streamed_response_wrapper( + webhooks.get_local_journal_batch_from_offset, ) self.get_local_journal_status = async_to_streamed_response_wrapper( webhooks.get_local_journal_status, ) - self.get_next_journal_after_offset = async_to_custom_streamed_response_wrapper( - webhooks.get_next_journal_after_offset, + self.get_next_journal_entries = async_to_custom_streamed_response_wrapper( + webhooks.get_next_journal_entries, AsyncStreamedBinaryAPIResponse, ) - self.get_next_local_journal_after_offset = async_to_custom_streamed_response_wrapper( - webhooks.get_next_local_journal_after_offset, + self.get_next_local_journal_entries = async_to_custom_streamed_response_wrapper( + webhooks.get_next_local_journal_entries, AsyncStreamedBinaryAPIResponse, ) self.get_settings = async_to_streamed_response_wrapper( webhooks.get_settings, ) - self.get_subscription = async_to_streamed_response_wrapper( - webhooks.get_subscription, - ) self.get_subscription_filter = async_to_streamed_response_wrapper( webhooks.get_subscription_filter, ) - self.get_subscription_filters = async_to_streamed_response_wrapper( - webhooks.get_subscription_filters, + self.list_event_subscriptions = async_to_streamed_response_wrapper( + webhooks.list_event_subscriptions, ) self.list_journal_subscriptions = async_to_streamed_response_wrapper( webhooks.list_journal_subscriptions, ) - self.list_subscriptions = async_to_streamed_response_wrapper( - webhooks.list_subscriptions, + self.list_subscription_filters = async_to_streamed_response_wrapper( + webhooks.list_subscription_filters, + ) + self.update_event_subscription = async_to_streamed_response_wrapper( + webhooks.update_event_subscription, ) self.update_settings = async_to_streamed_response_wrapper( webhooks.update_settings, ) - self.update_subscription = async_to_streamed_response_wrapper( - webhooks.update_subscription, - ) diff --git a/src/hubspot_sdk/types/__init__.py b/src/hubspot_sdk/types/__init__.py index 2aece12d..22e8f4af 100644 --- a/src/hubspot_sdk/types/__init__.py +++ b/src/hubspot_sdk/types/__init__.py @@ -7,6 +7,7 @@ Option as Option, Paging as Paging, NextPage as NextPage, + Property as Property, ErrorDetail as ErrorDetail, OptionInput as OptionInput, TaskLocator as TaskLocator, @@ -18,6 +19,7 @@ PropertyValue as PropertyValue, StandardError as StandardError, ActionResponse as ActionResponse, + PropertyCreate as PropertyCreate, PublicObjectID as PublicObjectID, AssociationSpec as AssociationSpec, BatchInputString as BatchInputString, @@ -29,6 +31,7 @@ AutomationActionsOption as AutomationActionsOption, AbTestCreateRequestVNext as AbTestCreateRequestVNext, AssociationDefinitionEgg as AssociationDefinitionEgg, + BatchInputPropertyCreate as BatchInputPropertyCreate, BatchInputPublicObjectID as BatchInputPublicObjectID, ObjectTypeDefinitionPatch as ObjectTypeDefinitionPatch, BatchReadInputPropertyName as BatchReadInputPropertyName, diff --git a/src/hubspot_sdk/types/auth/__init__.py b/src/hubspot_sdk/types/auth/__init__.py index cfe6ba55..cf4a01fa 100644 --- a/src/hubspot_sdk/types/auth/__init__.py +++ b/src/hubspot_sdk/types/auth/__init__.py @@ -2,10 +2,7 @@ from __future__ import annotations -from .signed_access_token import SignedAccessToken as SignedAccessToken from .oauth_create_token_params import OAuthCreateTokenParams as OAuthCreateTokenParams from .oauth_revoke_token_params import OAuthRevokeTokenParams as OAuthRevokeTokenParams from .token_info_response_base_if import TokenInfoResponseBaseIf as TokenInfoResponseBaseIf from .oauth_introspect_token_params import OAuthIntrospectTokenParams as OAuthIntrospectTokenParams -from .public_access_token_info_response import PublicAccessTokenInfoResponse as PublicAccessTokenInfoResponse -from .public_refresh_token_info_response import PublicRefreshTokenInfoResponse as PublicRefreshTokenInfoResponse diff --git a/src/hubspot_sdk/types/auth/public_access_token_info_response.py b/src/hubspot_sdk/types/auth/public_access_token_info_response.py deleted file mode 100644 index ec950721..00000000 --- a/src/hubspot_sdk/types/auth/public_access_token_info_response.py +++ /dev/null @@ -1,39 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List, Optional -from typing_extensions import Literal - -from ..._models import BaseModel -from .signed_access_token import SignedAccessToken - -__all__ = ["PublicAccessTokenInfoResponse"] - - -class PublicAccessTokenInfoResponse(BaseModel): - token: str - - active: bool - - app_id: int - - client_id: str - - expires_in: int - - hub_id: int - - is_private_distribution: bool - - scopes: List[str] - - signed_access_token: SignedAccessToken - - token_type: str - - token_use: Literal["access_token"] - - user_id: int - - hub_domain: Optional[str] = None - - user: Optional[str] = None diff --git a/src/hubspot_sdk/types/auth/public_refresh_token_info_response.py b/src/hubspot_sdk/types/auth/public_refresh_token_info_response.py deleted file mode 100644 index 0d090bab..00000000 --- a/src/hubspot_sdk/types/auth/public_refresh_token_info_response.py +++ /dev/null @@ -1,32 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List, Optional -from typing_extensions import Literal - -from ..._models import BaseModel - -__all__ = ["PublicRefreshTokenInfoResponse"] - - -class PublicRefreshTokenInfoResponse(BaseModel): - token: str - - active: bool - - app_id: int - - client_id: str - - hub_id: int - - scopes: List[str] - - token_type: str - - token_use: Literal["refresh_token"] - - user_id: int - - hub_domain: Optional[str] = None - - user: Optional[str] = None diff --git a/src/hubspot_sdk/types/auth/signed_access_token.py b/src/hubspot_sdk/types/auth/signed_access_token.py deleted file mode 100644 index 623548ec..00000000 --- a/src/hubspot_sdk/types/auth/signed_access_token.py +++ /dev/null @@ -1,39 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from pydantic import Field as FieldInfo - -from ..._models import BaseModel - -__all__ = ["SignedAccessToken"] - - -class SignedAccessToken(BaseModel): - app_id: int = FieldInfo(alias="appId") - - expires_at: int = FieldInfo(alias="expiresAt") - - hub_id: int = FieldInfo(alias="hubId") - - hublet: str - - installing_user_id: int = FieldInfo(alias="installingUserId") - - is_private_distribution: bool = FieldInfo(alias="isPrivateDistribution") - - is_service_account: bool = FieldInfo(alias="isServiceAccount") - - is_user_level: bool = FieldInfo(alias="isUserLevel") - - new_signature: str = FieldInfo(alias="newSignature") - - scopes: str - - scope_to_scope_group_pks: str = FieldInfo(alias="scopeToScopeGroupPks") - - signature: str - - trial_scopes: str = FieldInfo(alias="trialScopes") - - trial_scope_to_scope_group_pks: str = FieldInfo(alias="trialScopeToScopeGroupPks") - - user_id: int = FieldInfo(alias="userId") diff --git a/src/hubspot_sdk/types/auth/token_info_response_base_if.py b/src/hubspot_sdk/types/auth/token_info_response_base_if.py index bbedcbfc..b71ca03b 100644 --- a/src/hubspot_sdk/types/auth/token_info_response_base_if.py +++ b/src/hubspot_sdk/types/auth/token_info_response_base_if.py @@ -1,11 +1,9 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import Union -from typing_extensions import TypeAlias - -from .public_access_token_info_response import PublicAccessTokenInfoResponse -from .public_refresh_token_info_response import PublicRefreshTokenInfoResponse +from ..._models import BaseModel __all__ = ["TokenInfoResponseBaseIf"] -TokenInfoResponseBaseIf: TypeAlias = Union[PublicAccessTokenInfoResponse, PublicRefreshTokenInfoResponse] + +class TokenInfoResponseBaseIf(BaseModel): + active: bool diff --git a/src/hubspot_sdk/types/cms/__init__.py b/src/hubspot_sdk/types/cms/__init__.py index d6edf710..18b1af3b 100644 --- a/src/hubspot_sdk/types/cms/__init__.py +++ b/src/hubspot_sdk/types/cms/__init__.py @@ -24,6 +24,7 @@ from .add_time import AddTime as AddTime from .contains import Contains as Contains from .gradient import Gradient as Gradient +from .is_blank import IsBlank as IsBlank from .option_1 import Option1 as Option1 from .property import Property as Property from .endpoints import Endpoints as Endpoints @@ -128,7 +129,6 @@ from .side_or_corner_param import SideOrCornerParam as SideOrCornerParam from .audit_log_list_params import AuditLogListParams as AuditLogListParams from .content_search_result import ContentSearchResult as ContentSearchResult -from .property_create_param import PropertyCreateParam as PropertyCreateParam from .public_search_results import PublicSearchResults as PublicSearchResults from .round_nearest_numbers import RoundNearestNumbers as RoundNearestNumbers from .background_image_param import BackgroundImageParam as BackgroundImageParam diff --git a/src/hubspot_sdk/types/cms/absolute_value.py b/src/hubspot_sdk/types/cms/absolute_value.py index 4fd8394b..b40d194a 100644 --- a/src/hubspot_sdk/types/cms/absolute_value.py +++ b/src/hubspot_sdk/types/cms/absolute_value.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class AbsoluteValue(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/add_numbers.py b/src/hubspot_sdk/types/cms/add_numbers.py index 9d42294e..963631f4 100644 --- a/src/hubspot_sdk/types/cms/add_numbers.py +++ b/src/hubspot_sdk/types/cms/add_numbers.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -206,6 +208,7 @@ class AddNumbers(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/add_time.py b/src/hubspot_sdk/types/cms/add_time.py index ceb9cf2b..437a7c2c 100644 --- a/src/hubspot_sdk/types/cms/add_time.py +++ b/src/hubspot_sdk/types/cms/add_time.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -258,6 +260,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -335,6 +338,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -361,6 +365,7 @@ class AddTime(BaseModel): from .month import Month from .power import Power from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/and_.py b/src/hubspot_sdk/types/cms/and_.py index f1acc574..33dcb5c9 100644 --- a/src/hubspot_sdk/types/cms/and_.py +++ b/src/hubspot_sdk/types/cms/and_.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -205,6 +207,7 @@ class And(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/begins_with.py b/src/hubspot_sdk/types/cms/begins_with.py index dc1c5135..612c9cc4 100644 --- a/src/hubspot_sdk/types/cms/begins_with.py +++ b/src/hubspot_sdk/types/cms/begins_with.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -258,6 +260,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -335,6 +338,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -362,6 +366,7 @@ class BeginsWith(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/concat_strings.py b/src/hubspot_sdk/types/cms/concat_strings.py index a64823ef..81dc0735 100644 --- a/src/hubspot_sdk/types/cms/concat_strings.py +++ b/src/hubspot_sdk/types/cms/concat_strings.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class ConcatStrings(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/contains.py b/src/hubspot_sdk/types/cms/contains.py index 7e50b359..7328e0c0 100644 --- a/src/hubspot_sdk/types/cms/contains.py +++ b/src/hubspot_sdk/types/cms/contains.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -258,6 +260,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -335,6 +338,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -361,6 +365,7 @@ class Contains(BaseModel): from .month import Month from .power import Power from .add_time import AddTime +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/date.py b/src/hubspot_sdk/types/cms/date.py index ec00a95c..8957ec55 100644 --- a/src/hubspot_sdk/types/cms/date.py +++ b/src/hubspot_sdk/types/cms/date.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -203,6 +205,7 @@ class Date(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/dated_exchange_rate.py b/src/hubspot_sdk/types/cms/dated_exchange_rate.py index a9c4d0b3..3771911a 100644 --- a/src/hubspot_sdk/types/cms/dated_exchange_rate.py +++ b/src/hubspot_sdk/types/cms/dated_exchange_rate.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class DatedExchangeRate(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/divide_numbers.py b/src/hubspot_sdk/types/cms/divide_numbers.py index 149d4e11..f196713e 100644 --- a/src/hubspot_sdk/types/cms/divide_numbers.py +++ b/src/hubspot_sdk/types/cms/divide_numbers.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -206,6 +208,7 @@ class DivideNumbers(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/extract_most_recent_email_reply_html.py b/src/hubspot_sdk/types/cms/extract_most_recent_email_reply_html.py index 636668f5..d887b86b 100644 --- a/src/hubspot_sdk/types/cms/extract_most_recent_email_reply_html.py +++ b/src/hubspot_sdk/types/cms/extract_most_recent_email_reply_html.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class ExtractMostRecentEmailReplyHTML(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/extract_most_recent_email_reply_text.py b/src/hubspot_sdk/types/cms/extract_most_recent_email_reply_text.py index ce076a5a..2e2597a7 100644 --- a/src/hubspot_sdk/types/cms/extract_most_recent_email_reply_text.py +++ b/src/hubspot_sdk/types/cms/extract_most_recent_email_reply_text.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class ExtractMostRecentEmailReplyText(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/extract_most_recent_plain_text_email_reply.py b/src/hubspot_sdk/types/cms/extract_most_recent_plain_text_email_reply.py index 34f9c5e8..d7e7b717 100644 --- a/src/hubspot_sdk/types/cms/extract_most_recent_plain_text_email_reply.py +++ b/src/hubspot_sdk/types/cms/extract_most_recent_plain_text_email_reply.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class ExtractMostRecentPlainTextEmailReply(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/fetch_currency_decimal_places.py b/src/hubspot_sdk/types/cms/fetch_currency_decimal_places.py index c6362f48..736ce2e7 100644 --- a/src/hubspot_sdk/types/cms/fetch_currency_decimal_places.py +++ b/src/hubspot_sdk/types/cms/fetch_currency_decimal_places.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class FetchCurrencyDecimalPlaces(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/fetch_exchange_rate.py b/src/hubspot_sdk/types/cms/fetch_exchange_rate.py index d4dda62a..1421dffc 100644 --- a/src/hubspot_sdk/types/cms/fetch_exchange_rate.py +++ b/src/hubspot_sdk/types/cms/fetch_exchange_rate.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class FetchExchangeRate(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/format_full_name.py b/src/hubspot_sdk/types/cms/format_full_name.py index 51d67964..eeeb830e 100644 --- a/src/hubspot_sdk/types/cms/format_full_name.py +++ b/src/hubspot_sdk/types/cms/format_full_name.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class FormatFullName(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/format_phone_number.py b/src/hubspot_sdk/types/cms/format_phone_number.py index 155c6052..747c1a3a 100644 --- a/src/hubspot_sdk/types/cms/format_phone_number.py +++ b/src/hubspot_sdk/types/cms/format_phone_number.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class FormatPhoneNumber(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/format_searchable_phone_number.py b/src/hubspot_sdk/types/cms/format_searchable_phone_number.py index 7c2d8d54..b0d2dcf3 100644 --- a/src/hubspot_sdk/types/cms/format_searchable_phone_number.py +++ b/src/hubspot_sdk/types/cms/format_searchable_phone_number.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class FormatSearchablePhoneNumber(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/has_email_reply.py b/src/hubspot_sdk/types/cms/has_email_reply.py index aaa00c63..f24e9c97 100644 --- a/src/hubspot_sdk/types/cms/has_email_reply.py +++ b/src/hubspot_sdk/types/cms/has_email_reply.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class HasEmailReply(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/has_plain_text_email_reply.py b/src/hubspot_sdk/types/cms/has_plain_text_email_reply.py index f1114666..1dca386f 100644 --- a/src/hubspot_sdk/types/cms/has_plain_text_email_reply.py +++ b/src/hubspot_sdk/types/cms/has_plain_text_email_reply.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class HasPlainTextEmailReply(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/if_boolean.py b/src/hubspot_sdk/types/cms/if_boolean.py index 481a61f7..c761b31b 100644 --- a/src/hubspot_sdk/types/cms/if_boolean.py +++ b/src/hubspot_sdk/types/cms/if_boolean.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -258,6 +260,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -335,6 +338,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -414,6 +418,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -491,6 +496,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -522,6 +528,7 @@ class IfBoolean(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/if_number.py b/src/hubspot_sdk/types/cms/if_number.py index 89c00da7..dacab41d 100644 --- a/src/hubspot_sdk/types/cms/if_number.py +++ b/src/hubspot_sdk/types/cms/if_number.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -258,6 +260,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -335,6 +338,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -414,6 +418,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -491,6 +496,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -522,6 +528,7 @@ class IfNumber(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_string import IfString from .less_than import LessThan from .more_than import MoreThan diff --git a/src/hubspot_sdk/types/cms/if_string.py b/src/hubspot_sdk/types/cms/if_string.py index a93da5da..c6f56dd3 100644 --- a/src/hubspot_sdk/types/cms/if_string.py +++ b/src/hubspot_sdk/types/cms/if_string.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -258,6 +260,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -335,6 +338,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -414,6 +418,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -491,6 +496,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -522,6 +528,7 @@ class IfString(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .less_than import LessThan from .more_than import MoreThan diff --git a/src/hubspot_sdk/types/cms/inbound_db_object_type.py b/src/hubspot_sdk/types/cms/inbound_db_object_type.py index e47a11d7..8823e5f8 100644 --- a/src/hubspot_sdk/types/cms/inbound_db_object_type.py +++ b/src/hubspot_sdk/types/cms/inbound_db_object_type.py @@ -56,6 +56,8 @@ class InboundDBObjectType(BaseModel): object_type_id: str = FieldInfo(alias="objectTypeId") + object_type_id_string: str = FieldInfo(alias="objectTypeIdString") + permissioning_type: Literal["ALL_OR_NONE", "DO_NOT_CHECK_PERMISSIONS", "EXPLICIT", "OWNER_BASED", "TEAM_BASED"] = ( FieldInfo(alias="permissioningType") ) diff --git a/src/hubspot_sdk/types/cms/is_blank.py b/src/hubspot_sdk/types/cms/is_blank.py new file mode 100644 index 00000000..7eb37e07 --- /dev/null +++ b/src/hubspot_sdk/types/cms/is_blank.py @@ -0,0 +1,256 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import TYPE_CHECKING, List, Union, Optional +from typing_extensions import Literal, TypeAlias, TypeAliasType + +from pydantic import Field as FieldInfo + +from .now import Now +from .euler import Euler +from ..._compat import PYDANTIC_V1 +from ..._models import BaseModel +from .constant_number import ConstantNumber +from .constant_string import ConstantString +from .constant_boolean import ConstantBoolean +from .is_engagement_type import IsEngagementType +from .number_property_variable import NumberPropertyVariable +from .string_property_variable import StringPropertyVariable +from .boolean_property_variable import BooleanPropertyVariable +from .timestamp_of_property_variable import TimestampOfPropertyVariable +from .number_target_property_variable import NumberTargetPropertyVariable +from .string_target_property_variable import StringTargetPropertyVariable +from .boolean_target_property_variable import BooleanTargetPropertyVariable +from .fetch_single_currency_portal_currency import FetchSingleCurrencyPortalCurrency +from .timestamp_of_target_property_variable import TimestampOfTargetPropertyVariable + +__all__ = ["IsBlank", "Input"] + +if TYPE_CHECKING or not PYDANTIC_V1: + Input = TypeAliasType( + "Input", + Union[ + ConstantBoolean, + ConstantNumber, + ConstantString, + BooleanPropertyVariable, + StringPropertyVariable, + NumberPropertyVariable, + TimestampOfPropertyVariable, + BooleanTargetPropertyVariable, + StringTargetPropertyVariable, + NumberTargetPropertyVariable, + TimestampOfTargetPropertyVariable, + "AddNumbers", + "SubtractNumbers", + "MultiplyNumbers", + "DivideNumbers", + "RoundDownNumbers", + "RoundUpNumbers", + "RoundNearestNumbers", + "UpperCase", + "LowerCase", + "ConcatStrings", + "Contains", + "BeginsWith", + "NumberToString", + "ParseNumber", + "FetchExchangeRate", + "FetchCurrencyDecimalPlaces", + FetchSingleCurrencyPortalCurrency, + "DatedExchangeRate", + "PipelineProbability", + "MaxNumbers", + "MinNumbers", + "LessThan", + "LessThanOrEqual", + "MoreThan", + "MoreThanOrEqual", + "NumberEquals", + "StringEquals", + "IsPipelineStageClosed", + "Not", + "Date", + "Month", + "Year", + Now, + "TimeBetween", + "TimeBetweenSkipWeekends", + "PeriodToMonths", + "PeriodToWeeks", + "And", + "Or", + "Xor", + "IfString", + "IfNumber", + "IfBoolean", + "IsPresent", + "HasEmailReply", + "HasPlainTextEmailReply", + "ExtractMostRecentEmailReplyHTML", + "ExtractMostRecentEmailReplyText", + "ExtractMostRecentPlainTextEmailReply", + "SetContainsString", + IsEngagementType, + "FormatFullName", + "FormatPhoneNumber", + "FormatSearchablePhoneNumber", + "AbsoluteValue", + "SquareRoot", + "Power", + "Substring", + Euler, + "StringLength", + "IsBlank", + "AddTime", + "SubtractTime", + ], + ) +else: + Input: TypeAlias = Union[ + ConstantBoolean, + ConstantNumber, + ConstantString, + BooleanPropertyVariable, + StringPropertyVariable, + NumberPropertyVariable, + TimestampOfPropertyVariable, + BooleanTargetPropertyVariable, + StringTargetPropertyVariable, + NumberTargetPropertyVariable, + TimestampOfTargetPropertyVariable, + "AddNumbers", + "SubtractNumbers", + "MultiplyNumbers", + "DivideNumbers", + "RoundDownNumbers", + "RoundUpNumbers", + "RoundNearestNumbers", + "UpperCase", + "LowerCase", + "ConcatStrings", + "Contains", + "BeginsWith", + "NumberToString", + "ParseNumber", + "FetchExchangeRate", + "FetchCurrencyDecimalPlaces", + FetchSingleCurrencyPortalCurrency, + "DatedExchangeRate", + "PipelineProbability", + "MaxNumbers", + "MinNumbers", + "LessThan", + "LessThanOrEqual", + "MoreThan", + "MoreThanOrEqual", + "NumberEquals", + "StringEquals", + "IsPipelineStageClosed", + "Not", + "Date", + "Month", + "Year", + Now, + "TimeBetween", + "TimeBetweenSkipWeekends", + "PeriodToMonths", + "PeriodToWeeks", + "And", + "Or", + "Xor", + "IfString", + "IfNumber", + "IfBoolean", + "IsPresent", + "HasEmailReply", + "HasPlainTextEmailReply", + "ExtractMostRecentEmailReplyHTML", + "ExtractMostRecentEmailReplyText", + "ExtractMostRecentPlainTextEmailReply", + "SetContainsString", + IsEngagementType, + "FormatFullName", + "FormatPhoneNumber", + "FormatSearchablePhoneNumber", + "AbsoluteValue", + "SquareRoot", + "Power", + "Substring", + Euler, + "StringLength", + "IsBlank", + "AddTime", + "SubtractTime", + ] + + +class IsBlank(BaseModel): + operator: Literal["IS_BLANK"] + + inputs: Optional[List[Input]] = None + + property_name: Optional[str] = FieldInfo(alias="propertyName", default=None) + + value: Optional[bool] = None + + +from .or_ import Or +from .xor import Xor +from .and_ import And +from .date import Date +from .not_ import Not +from .year import Year +from .month import Month +from .power import Power +from .add_time import AddTime +from .contains import Contains +from .if_number import IfNumber +from .if_string import IfString +from .less_than import LessThan +from .more_than import MoreThan +from .substring import Substring +from .if_boolean import IfBoolean +from .is_present import IsPresent +from .lower_case import LowerCase +from .upper_case import UpperCase +from .add_numbers import AddNumbers +from .begins_with import BeginsWith +from .max_numbers import MaxNumbers +from .min_numbers import MinNumbers +from .square_root import SquareRoot +from .parse_number import ParseNumber +from .time_between import TimeBetween +from .number_equals import NumberEquals +from .string_equals import StringEquals +from .string_length import StringLength +from .subtract_time import SubtractTime +from .absolute_value import AbsoluteValue +from .concat_strings import ConcatStrings +from .divide_numbers import DivideNumbers +from .has_email_reply import HasEmailReply +from .period_to_weeks import PeriodToWeeks +from .format_full_name import FormatFullName +from .multiply_numbers import MultiplyNumbers +from .number_to_string import NumberToString +from .period_to_months import PeriodToMonths +from .round_up_numbers import RoundUpNumbers +from .subtract_numbers import SubtractNumbers +from .less_than_or_equal import LessThanOrEqual +from .more_than_or_equal import MoreThanOrEqual +from .round_down_numbers import RoundDownNumbers +from .dated_exchange_rate import DatedExchangeRate +from .fetch_exchange_rate import FetchExchangeRate +from .format_phone_number import FormatPhoneNumber +from .set_contains_string import SetContainsString +from .pipeline_probability import PipelineProbability +from .round_nearest_numbers import RoundNearestNumbers +from .is_pipeline_stage_closed import IsPipelineStageClosed +from .has_plain_text_email_reply import HasPlainTextEmailReply +from .time_between_skip_weekends import TimeBetweenSkipWeekends +from .fetch_currency_decimal_places import FetchCurrencyDecimalPlaces +from .format_searchable_phone_number import FormatSearchablePhoneNumber +from .extract_most_recent_email_reply_html import ExtractMostRecentEmailReplyHTML +from .extract_most_recent_email_reply_text import ExtractMostRecentEmailReplyText +from .extract_most_recent_plain_text_email_reply import ExtractMostRecentPlainTextEmailReply diff --git a/src/hubspot_sdk/types/cms/is_pipeline_stage_closed.py b/src/hubspot_sdk/types/cms/is_pipeline_stage_closed.py index 0015a3c4..54034919 100644 --- a/src/hubspot_sdk/types/cms/is_pipeline_stage_closed.py +++ b/src/hubspot_sdk/types/cms/is_pipeline_stage_closed.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class IsPipelineStageClosed(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/is_present.py b/src/hubspot_sdk/types/cms/is_present.py index 02921418..99020baa 100644 --- a/src/hubspot_sdk/types/cms/is_present.py +++ b/src/hubspot_sdk/types/cms/is_present.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class IsPresent(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/less_than.py b/src/hubspot_sdk/types/cms/less_than.py index 375db0b4..31999a4e 100644 --- a/src/hubspot_sdk/types/cms/less_than.py +++ b/src/hubspot_sdk/types/cms/less_than.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class LessThan(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .more_than import MoreThan diff --git a/src/hubspot_sdk/types/cms/less_than_or_equal.py b/src/hubspot_sdk/types/cms/less_than_or_equal.py index f3702899..f41610f7 100644 --- a/src/hubspot_sdk/types/cms/less_than_or_equal.py +++ b/src/hubspot_sdk/types/cms/less_than_or_equal.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class LessThanOrEqual(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/lower_case.py b/src/hubspot_sdk/types/cms/lower_case.py index b56db0bf..e3dcdac0 100644 --- a/src/hubspot_sdk/types/cms/lower_case.py +++ b/src/hubspot_sdk/types/cms/lower_case.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class LowerCase(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/max_numbers.py b/src/hubspot_sdk/types/cms/max_numbers.py index e36fe592..327df09c 100644 --- a/src/hubspot_sdk/types/cms/max_numbers.py +++ b/src/hubspot_sdk/types/cms/max_numbers.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class MaxNumbers(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/media_bridge/batch_create_params.py b/src/hubspot_sdk/types/cms/media_bridge/batch_create_params.py index c87481f9..5485ca24 100644 --- a/src/hubspot_sdk/types/cms/media_bridge/batch_create_params.py +++ b/src/hubspot_sdk/types/cms/media_bridge/batch_create_params.py @@ -6,7 +6,7 @@ from typing_extensions import Required, Annotated, TypedDict from ...._utils import PropertyInfo -from ..property_create_param import PropertyCreateParam +from ...shared_params.property_create import PropertyCreate __all__ = ["BatchCreateParams"] @@ -14,4 +14,4 @@ class BatchCreateParams(TypedDict, total=False): app_id: Required[Annotated[int, PropertyInfo(alias="appId")]] - inputs: Required[Iterable[PropertyCreateParam]] + inputs: Required[Iterable[PropertyCreate]] diff --git a/src/hubspot_sdk/types/cms/media_bridge_create_property_params.py b/src/hubspot_sdk/types/cms/media_bridge_create_property_params.py index 4734a347..65d92086 100644 --- a/src/hubspot_sdk/types/cms/media_bridge_create_property_params.py +++ b/src/hubspot_sdk/types/cms/media_bridge_create_property_params.py @@ -44,6 +44,8 @@ class MediaBridgeCreatePropertyParams(TypedDict, total=False): calculation_formula: Annotated[str, PropertyInfo(alias="calculationFormula")] + currency_property_name: Annotated[str, PropertyInfo(alias="currencyPropertyName")] + data_sensitivity: Annotated[ Literal["highly_sensitive", "non_sensitive", "sensitive"], PropertyInfo(alias="dataSensitivity") ] @@ -60,6 +62,13 @@ class MediaBridgeCreatePropertyParams(TypedDict, total=False): hidden: bool + number_display_hint: Annotated[ + Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"], + PropertyInfo(alias="numberDisplayHint"), + ] + options: Iterable[OptionInput] referenced_object_type: Annotated[str, PropertyInfo(alias="referencedObjectType")] + + show_currency_symbol: Annotated[bool, PropertyInfo(alias="showCurrencySymbol")] diff --git a/src/hubspot_sdk/types/cms/media_bridge_update_property_params.py b/src/hubspot_sdk/types/cms/media_bridge_update_property_params.py index 041c9eaa..ef3033d4 100644 --- a/src/hubspot_sdk/types/cms/media_bridge_update_property_params.py +++ b/src/hubspot_sdk/types/cms/media_bridge_update_property_params.py @@ -18,6 +18,8 @@ class MediaBridgeUpdatePropertyParams(TypedDict, total=False): calculation_formula: Annotated[str, PropertyInfo(alias="calculationFormula")] + currency_property_name: Annotated[str, PropertyInfo(alias="currencyPropertyName")] + description: str display_order: Annotated[int, PropertyInfo(alias="displayOrder")] @@ -50,6 +52,13 @@ class MediaBridgeUpdatePropertyParams(TypedDict, total=False): label: str + number_display_hint: Annotated[ + Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"], + PropertyInfo(alias="numberDisplayHint"), + ] + options: Iterable[OptionInput] + show_currency_symbol: Annotated[bool, PropertyInfo(alias="showCurrencySymbol")] + type: Literal["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"] diff --git a/src/hubspot_sdk/types/cms/min_numbers.py b/src/hubspot_sdk/types/cms/min_numbers.py index 16ba8165..eb598d5c 100644 --- a/src/hubspot_sdk/types/cms/min_numbers.py +++ b/src/hubspot_sdk/types/cms/min_numbers.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class MinNumbers(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/month.py b/src/hubspot_sdk/types/cms/month.py index 979c7914..371d71e9 100644 --- a/src/hubspot_sdk/types/cms/month.py +++ b/src/hubspot_sdk/types/cms/month.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -203,6 +205,7 @@ class Month(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/more_than.py b/src/hubspot_sdk/types/cms/more_than.py index 8f4d6450..90ed905a 100644 --- a/src/hubspot_sdk/types/cms/more_than.py +++ b/src/hubspot_sdk/types/cms/more_than.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class MoreThan(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/more_than_or_equal.py b/src/hubspot_sdk/types/cms/more_than_or_equal.py index 5552e5db..d7d254c3 100644 --- a/src/hubspot_sdk/types/cms/more_than_or_equal.py +++ b/src/hubspot_sdk/types/cms/more_than_or_equal.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class MoreThanOrEqual(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/multiply_numbers.py b/src/hubspot_sdk/types/cms/multiply_numbers.py index 61cc2f4d..ef46bdb5 100644 --- a/src/hubspot_sdk/types/cms/multiply_numbers.py +++ b/src/hubspot_sdk/types/cms/multiply_numbers.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -206,6 +208,7 @@ class MultiplyNumbers(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/not_.py b/src/hubspot_sdk/types/cms/not_.py index d15678df..e39a1d79 100644 --- a/src/hubspot_sdk/types/cms/not_.py +++ b/src/hubspot_sdk/types/cms/not_.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -203,6 +205,7 @@ class Not(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/number_equals.py b/src/hubspot_sdk/types/cms/number_equals.py index 02f3a2ff..4b8d8815 100644 --- a/src/hubspot_sdk/types/cms/number_equals.py +++ b/src/hubspot_sdk/types/cms/number_equals.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class NumberEquals(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/number_to_string.py b/src/hubspot_sdk/types/cms/number_to_string.py index dd06d651..e47eed5e 100644 --- a/src/hubspot_sdk/types/cms/number_to_string.py +++ b/src/hubspot_sdk/types/cms/number_to_string.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class NumberToString(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/or_.py b/src/hubspot_sdk/types/cms/or_.py index e20dba33..09f26664 100644 --- a/src/hubspot_sdk/types/cms/or_.py +++ b/src/hubspot_sdk/types/cms/or_.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -205,6 +207,7 @@ class Or(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/parse_number.py b/src/hubspot_sdk/types/cms/parse_number.py index 71054fc1..d1ff77df 100644 --- a/src/hubspot_sdk/types/cms/parse_number.py +++ b/src/hubspot_sdk/types/cms/parse_number.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class ParseNumber(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/period_to_months.py b/src/hubspot_sdk/types/cms/period_to_months.py index 4132168c..2cb3560d 100644 --- a/src/hubspot_sdk/types/cms/period_to_months.py +++ b/src/hubspot_sdk/types/cms/period_to_months.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class PeriodToMonths(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/period_to_weeks.py b/src/hubspot_sdk/types/cms/period_to_weeks.py index 762bf4c7..e5914d13 100644 --- a/src/hubspot_sdk/types/cms/period_to_weeks.py +++ b/src/hubspot_sdk/types/cms/period_to_weeks.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class PeriodToWeeks(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/pipeline_probability.py b/src/hubspot_sdk/types/cms/pipeline_probability.py index 98035904..44b0e712 100644 --- a/src/hubspot_sdk/types/cms/pipeline_probability.py +++ b/src/hubspot_sdk/types/cms/pipeline_probability.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class PipelineProbability(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/power.py b/src/hubspot_sdk/types/cms/power.py index a74d6511..9d013df9 100644 --- a/src/hubspot_sdk/types/cms/power.py +++ b/src/hubspot_sdk/types/cms/power.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -203,6 +205,7 @@ class Power(BaseModel): from .month import Month from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/property_1.py b/src/hubspot_sdk/types/cms/property_1.py index 0f3d178c..7aefce50 100644 --- a/src/hubspot_sdk/types/cms/property_1.py +++ b/src/hubspot_sdk/types/cms/property_1.py @@ -40,6 +40,8 @@ class Property1(BaseModel): created_user_id: Optional[str] = FieldInfo(alias="createdUserId", default=None) + currency_property_name: Optional[str] = FieldInfo(alias="currencyPropertyName", default=None) + data_sensitivity: Optional[Literal["highly_sensitive", "non_sensitive", "sensitive"]] = FieldInfo( alias="dataSensitivity", default=None ) @@ -64,6 +66,10 @@ class Property1(BaseModel): alias="modificationMetadata", default=None ) + number_display_hint: Optional[ + Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"] + ] = FieldInfo(alias="numberDisplayHint", default=None) + referenced_object_type: Optional[str] = FieldInfo(alias="referencedObjectType", default=None) sensitive_data_categories: Optional[List[str]] = FieldInfo(alias="sensitiveDataCategories", default=None) diff --git a/src/hubspot_sdk/types/cms/property_definition.py b/src/hubspot_sdk/types/cms/property_definition.py index be40c683..e0e3df29 100644 --- a/src/hubspot_sdk/types/cms/property_definition.py +++ b/src/hubspot_sdk/types/cms/property_definition.py @@ -105,6 +105,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -153,6 +154,7 @@ class PropertyDefinition(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/rollup_expression.py b/src/hubspot_sdk/types/cms/rollup_expression.py index 038dc558..3b4e83b9 100644 --- a/src/hubspot_sdk/types/cms/rollup_expression.py +++ b/src/hubspot_sdk/types/cms/rollup_expression.py @@ -99,6 +99,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -149,6 +150,7 @@ class RollupExpression(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/round_down_numbers.py b/src/hubspot_sdk/types/cms/round_down_numbers.py index 7118b683..b03b874e 100644 --- a/src/hubspot_sdk/types/cms/round_down_numbers.py +++ b/src/hubspot_sdk/types/cms/round_down_numbers.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class RoundDownNumbers(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/round_nearest_numbers.py b/src/hubspot_sdk/types/cms/round_nearest_numbers.py index b8c08b08..e809ee36 100644 --- a/src/hubspot_sdk/types/cms/round_nearest_numbers.py +++ b/src/hubspot_sdk/types/cms/round_nearest_numbers.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class RoundNearestNumbers(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/round_up_numbers.py b/src/hubspot_sdk/types/cms/round_up_numbers.py index 053c10e7..f30a67f6 100644 --- a/src/hubspot_sdk/types/cms/round_up_numbers.py +++ b/src/hubspot_sdk/types/cms/round_up_numbers.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class RoundUpNumbers(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/set_contains_string.py b/src/hubspot_sdk/types/cms/set_contains_string.py index 7db8692c..88be2fab 100644 --- a/src/hubspot_sdk/types/cms/set_contains_string.py +++ b/src/hubspot_sdk/types/cms/set_contains_string.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -258,6 +260,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -335,6 +338,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -362,6 +366,7 @@ class SetContainsString(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/square_root.py b/src/hubspot_sdk/types/cms/square_root.py index 26bb58c1..f4721e0a 100644 --- a/src/hubspot_sdk/types/cms/square_root.py +++ b/src/hubspot_sdk/types/cms/square_root.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class SquareRoot(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/string_equals.py b/src/hubspot_sdk/types/cms/string_equals.py index d889eae6..fda3d938 100644 --- a/src/hubspot_sdk/types/cms/string_equals.py +++ b/src/hubspot_sdk/types/cms/string_equals.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class StringEquals(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/string_length.py b/src/hubspot_sdk/types/cms/string_length.py index 988924ec..bfe9efa4 100644 --- a/src/hubspot_sdk/types/cms/string_length.py +++ b/src/hubspot_sdk/types/cms/string_length.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class StringLength(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/substring.py b/src/hubspot_sdk/types/cms/substring.py index ac30229b..fa4bb747 100644 --- a/src/hubspot_sdk/types/cms/substring.py +++ b/src/hubspot_sdk/types/cms/substring.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -258,6 +260,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -335,6 +338,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -362,6 +366,7 @@ class Substring(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/subtract_numbers.py b/src/hubspot_sdk/types/cms/subtract_numbers.py index 85cf3fd0..5a35d724 100644 --- a/src/hubspot_sdk/types/cms/subtract_numbers.py +++ b/src/hubspot_sdk/types/cms/subtract_numbers.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -206,6 +208,7 @@ class SubtractNumbers(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/subtract_time.py b/src/hubspot_sdk/types/cms/subtract_time.py index 7cc16468..b546822b 100644 --- a/src/hubspot_sdk/types/cms/subtract_time.py +++ b/src/hubspot_sdk/types/cms/subtract_time.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -258,6 +260,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -335,6 +338,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -362,6 +366,7 @@ class SubtractTime(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/time_between.py b/src/hubspot_sdk/types/cms/time_between.py index f79de638..0514c474 100644 --- a/src/hubspot_sdk/types/cms/time_between.py +++ b/src/hubspot_sdk/types/cms/time_between.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class TimeBetween(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/time_between_skip_weekends.py b/src/hubspot_sdk/types/cms/time_between_skip_weekends.py index 0f51313c..a67a3a26 100644 --- a/src/hubspot_sdk/types/cms/time_between_skip_weekends.py +++ b/src/hubspot_sdk/types/cms/time_between_skip_weekends.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class TimeBetweenSkipWeekends(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/upper_case.py b/src/hubspot_sdk/types/cms/upper_case.py index e89c5e60..484a753a 100644 --- a/src/hubspot_sdk/types/cms/upper_case.py +++ b/src/hubspot_sdk/types/cms/upper_case.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -204,6 +206,7 @@ class UpperCase(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/url_mapping_create_params.py b/src/hubspot_sdk/types/cms/url_mapping_create_params.py index 87f7dbd0..3bf70653 100644 --- a/src/hubspot_sdk/types/cms/url_mapping_create_params.py +++ b/src/hubspot_sdk/types/cms/url_mapping_create_params.py @@ -149,6 +149,8 @@ class URLMappingCreateParams(TypedDict, total=False): label: Required[str] """A label for the URL mapping.""" + last_used_at: Required[Annotated[int, PropertyInfo(alias="lastUsedAt")]] + name: Required[str] """The name of the URL mapping.""" diff --git a/src/hubspot_sdk/types/cms/xor.py b/src/hubspot_sdk/types/cms/xor.py index c6295393..d4ded592 100644 --- a/src/hubspot_sdk/types/cms/xor.py +++ b/src/hubspot_sdk/types/cms/xor.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -205,6 +207,7 @@ class Xor(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/cms/year.py b/src/hubspot_sdk/types/cms/year.py index b9971ddc..41caff87 100644 --- a/src/hubspot_sdk/types/cms/year.py +++ b/src/hubspot_sdk/types/cms/year.py @@ -102,6 +102,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ], @@ -179,6 +180,7 @@ "Substring", Euler, "StringLength", + "IsBlank", "AddTime", "SubtractTime", ] @@ -203,6 +205,7 @@ class Year(BaseModel): from .power import Power from .add_time import AddTime from .contains import Contains +from .is_blank import IsBlank from .if_number import IfNumber from .if_string import IfString from .less_than import LessThan diff --git a/src/hubspot_sdk/types/communication_preferences/communication_preference_generate_links_params.py b/src/hubspot_sdk/types/communication_preferences/communication_preference_generate_links_params.py index 3c5be84b..34cfb801 100644 --- a/src/hubspot_sdk/types/communication_preferences/communication_preference_generate_links_params.py +++ b/src/hubspot_sdk/types/communication_preferences/communication_preference_generate_links_params.py @@ -11,6 +11,7 @@ class CommunicationPreferenceGenerateLinksParams(TypedDict, total=False): channel: Required[Literal["EMAIL"]] + """The communication channel for which the links are generated. Must be 'EMAIL'.""" subscriber_id_string: Required[Annotated[str, PropertyInfo(alias="subscriberIdString")]] """A string representing the unique identifier of the subscriber. @@ -19,6 +20,7 @@ class CommunicationPreferenceGenerateLinksParams(TypedDict, total=False): """ business_unit_id: Annotated[int, PropertyInfo(alias="businessUnitId")] + """The identifier of the business unit. Defaults to 0 if not specified.""" language: str """ diff --git a/src/hubspot_sdk/types/communication_preferences/communication_preference_get_statuses_params.py b/src/hubspot_sdk/types/communication_preferences/communication_preference_get_statuses_params.py index 8130b5fc..94cc49e2 100644 --- a/src/hubspot_sdk/types/communication_preferences/communication_preference_get_statuses_params.py +++ b/src/hubspot_sdk/types/communication_preferences/communication_preference_get_statuses_params.py @@ -11,5 +11,13 @@ class CommunicationPreferenceGetStatusesParams(TypedDict, total=False): channel: Required[Literal["EMAIL"]] + """The communication channel for which the subscription status is being retrieved. + + This parameter is required and currently supports only 'EMAIL'. + """ business_unit_id: Annotated[int, PropertyInfo(alias="businessUnitId")] + """The ID of the business unit to filter the subscription status by. + + This is an optional parameter. + """ diff --git a/src/hubspot_sdk/types/communication_preferences/communication_preference_get_unsubscribe_all_status_params.py b/src/hubspot_sdk/types/communication_preferences/communication_preference_get_unsubscribe_all_status_params.py index 3acbeb81..2cf547e0 100644 --- a/src/hubspot_sdk/types/communication_preferences/communication_preference_get_unsubscribe_all_status_params.py +++ b/src/hubspot_sdk/types/communication_preferences/communication_preference_get_unsubscribe_all_status_params.py @@ -11,7 +11,19 @@ class CommunicationPreferenceGetUnsubscribeAllStatusParams(TypedDict, total=False): channel: Required[Literal["EMAIL"]] + """The communication channel from which to unsubscribe the subscriber. + + This is a required parameter and must be 'EMAIL'. + """ business_unit_id: Annotated[int, PropertyInfo(alias="businessUnitId")] + """The ID of the business unit to which the subscriber belongs. + + This is an optional parameter. + """ verbose: bool + """A boolean indicating whether to include detailed information in the response. + + Defaults to false. + """ diff --git a/src/hubspot_sdk/types/communication_preferences/communication_preference_unsubscribe_all_params.py b/src/hubspot_sdk/types/communication_preferences/communication_preference_unsubscribe_all_params.py index 2563c5ab..d9fa7688 100644 --- a/src/hubspot_sdk/types/communication_preferences/communication_preference_unsubscribe_all_params.py +++ b/src/hubspot_sdk/types/communication_preferences/communication_preference_unsubscribe_all_params.py @@ -11,7 +11,16 @@ class CommunicationPreferenceUnsubscribeAllParams(TypedDict, total=False): channel: Required[Literal["EMAIL"]] + """The communication channel to unsubscribe from. Must be 'EMAIL'.""" business_unit_id: Annotated[int, PropertyInfo(alias="businessUnitId")] + """The ID of the business unit associated with the request. + + This is an optional integer parameter. + """ verbose: bool + """A boolean indicating whether to include detailed information in the response. + + Defaults to false. + """ diff --git a/src/hubspot_sdk/types/communication_preferences/definition_list_params.py b/src/hubspot_sdk/types/communication_preferences/definition_list_params.py index bf67f139..01fd13f4 100644 --- a/src/hubspot_sdk/types/communication_preferences/definition_list_params.py +++ b/src/hubspot_sdk/types/communication_preferences/definition_list_params.py @@ -11,5 +11,13 @@ class DefinitionListParams(TypedDict, total=False): business_unit_id: Annotated[int, PropertyInfo(alias="businessUnitId")] + """ + An integer representing the ID of the business unit for which to retrieve + subscription definitions. + """ include_translations: Annotated[bool, PropertyInfo(alias="includeTranslations")] + """ + A boolean indicating whether to include translations of the communication + preferences definitions in the response. + """ diff --git a/src/hubspot_sdk/types/communication_preferences/statuses/batch_get_unsubscribe_all_statuses_params.py b/src/hubspot_sdk/types/communication_preferences/statuses/batch_get_unsubscribe_all_statuses_params.py index 56d5bf03..44f23f19 100644 --- a/src/hubspot_sdk/types/communication_preferences/statuses/batch_get_unsubscribe_all_statuses_params.py +++ b/src/hubspot_sdk/types/communication_preferences/statuses/batch_get_unsubscribe_all_statuses_params.py @@ -12,8 +12,16 @@ class BatchGetUnsubscribeAllStatusesParams(TypedDict, total=False): channel: Required[Literal["EMAIL"]] + """The communication channel to filter the unsubscribe statuses. + + This parameter is required and currently supports 'EMAIL' as a valid value. + """ inputs: Required[SequenceNotStr[str]] """Strings to input.""" business_unit_id: Annotated[int, PropertyInfo(alias="businessUnitId")] + """The ID of the business unit to filter the results. + + This is an optional parameter. + """ diff --git a/src/hubspot_sdk/types/communication_preferences/statuses/batch_read_params.py b/src/hubspot_sdk/types/communication_preferences/statuses/batch_read_params.py index cf18db57..9fec0693 100644 --- a/src/hubspot_sdk/types/communication_preferences/statuses/batch_read_params.py +++ b/src/hubspot_sdk/types/communication_preferences/statuses/batch_read_params.py @@ -12,8 +12,13 @@ class BatchReadParams(TypedDict, total=False): channel: Required[Literal["EMAIL"]] + """The communication channel to filter the subscription statuses. Must be 'EMAIL'.""" inputs: Required[SequenceNotStr[str]] """Strings to input.""" business_unit_id: Annotated[int, PropertyInfo(alias="businessUnitId")] + """An optional integer representing the business unit ID. + + This parameter helps to filter the results based on the specific business unit. + """ diff --git a/src/hubspot_sdk/types/communication_preferences/statuses/batch_unsubscribe_all_params.py b/src/hubspot_sdk/types/communication_preferences/statuses/batch_unsubscribe_all_params.py index fe7e9787..1348ec35 100644 --- a/src/hubspot_sdk/types/communication_preferences/statuses/batch_unsubscribe_all_params.py +++ b/src/hubspot_sdk/types/communication_preferences/statuses/batch_unsubscribe_all_params.py @@ -12,10 +12,22 @@ class BatchUnsubscribeAllParams(TypedDict, total=False): channel: Required[Literal["EMAIL"]] + """The communication channel from which subscribers will be unsubscribed. + + This parameter is required and currently supports only 'EMAIL'. + """ inputs: Required[SequenceNotStr[str]] """Strings to input.""" business_unit_id: Annotated[int, PropertyInfo(alias="businessUnitId")] + """ + An optional integer representing the business unit ID for which the operation is + being performed. + """ verbose: bool + """A boolean indicating whether to include detailed information in the response. + + Defaults to false. + """ diff --git a/src/hubspot_sdk/types/crm/__init__.py b/src/hubspot_sdk/types/crm/__init__.py index 37290b44..7dcaa754 100644 --- a/src/hubspot_sdk/types/crm/__init__.py +++ b/src/hubspot_sdk/types/crm/__init__.py @@ -3,7 +3,6 @@ from __future__ import annotations from .pipeline import Pipeline as Pipeline -from .property import Property as Property from .date_time import DateTime as DateTime from .public_team import PublicTeam as PublicTeam from .filter_param import FilterParam as FilterParam @@ -43,7 +42,6 @@ from .simple_public_object import SimplePublicObject as SimplePublicObject from .value_with_timestamp import ValueWithTimestamp as ValueWithTimestamp from .list_move_list_params import ListMoveListParams as ListMoveListParams -from .property_create_param import PropertyCreateParam as PropertyCreateParam from .public_in_list_filter import PublicInListFilter as PublicInListFilter from .public_webinar_filter import PublicWebinarFilter as PublicWebinarFilter from .public_week_reference import PublicWeekReference as PublicWeekReference diff --git a/src/hubspot_sdk/types/crm/batch_response_property.py b/src/hubspot_sdk/types/crm/batch_response_property.py index ebcc9d5a..b27e20f1 100644 --- a/src/hubspot_sdk/types/crm/batch_response_property.py +++ b/src/hubspot_sdk/types/crm/batch_response_property.py @@ -6,8 +6,8 @@ from pydantic import Field as FieldInfo -from .property import Property from ..._models import BaseModel +from ..shared.property import Property __all__ = ["BatchResponseProperty"] diff --git a/src/hubspot_sdk/types/crm/collection_response_property_no_paging.py b/src/hubspot_sdk/types/crm/collection_response_property_no_paging.py index 7e6304f9..df95c0b7 100644 --- a/src/hubspot_sdk/types/crm/collection_response_property_no_paging.py +++ b/src/hubspot_sdk/types/crm/collection_response_property_no_paging.py @@ -2,8 +2,8 @@ from typing import List -from .property import Property from ..._models import BaseModel +from ..shared.property import Property __all__ = ["CollectionResponsePropertyNoPaging"] diff --git a/src/hubspot_sdk/types/crm/extensions/cards_dev_migrate_views_params.py b/src/hubspot_sdk/types/crm/extensions/cards_dev_migrate_views_params.py index 1af8a40c..df73ff9e 100644 --- a/src/hubspot_sdk/types/crm/extensions/cards_dev_migrate_views_params.py +++ b/src/hubspot_sdk/types/crm/extensions/cards_dev_migrate_views_params.py @@ -10,6 +10,8 @@ class CardsDevMigrateViewsParams(TypedDict, total=False): + allow_duplicate_app_card_ids: Required[Annotated[bool, PropertyInfo(alias="allowDuplicateAppCardIds")]] + app_card_id: Required[Annotated[int, PropertyInfo(alias="appCardId")]] legacy_crm_card_id: Required[Annotated[int, PropertyInfo(alias="legacyCrmCardId")]] diff --git a/src/hubspot_sdk/types/crm/object_schema.py b/src/hubspot_sdk/types/crm/object_schema.py index 5516608a..a843a08c 100644 --- a/src/hubspot_sdk/types/crm/object_schema.py +++ b/src/hubspot_sdk/types/crm/object_schema.py @@ -5,8 +5,8 @@ from pydantic import Field as FieldInfo -from .property import Property from ..._models import BaseModel +from ..shared.property import Property from ..shared.association_definition import AssociationDefinition from ..shared.object_type_definition_labels import ObjectTypeDefinitionLabels diff --git a/src/hubspot_sdk/types/crm/properties/batch_create_params.py b/src/hubspot_sdk/types/crm/properties/batch_create_params.py index 13fb933a..b8f6f30c 100644 --- a/src/hubspot_sdk/types/crm/properties/batch_create_params.py +++ b/src/hubspot_sdk/types/crm/properties/batch_create_params.py @@ -5,10 +5,10 @@ from typing import Iterable from typing_extensions import Required, TypedDict -from ..property_create_param import PropertyCreateParam +from ...shared_params.property_create import PropertyCreate __all__ = ["BatchCreateParams"] class BatchCreateParams(TypedDict, total=False): - inputs: Required[Iterable[PropertyCreateParam]] + inputs: Required[Iterable[PropertyCreate]] diff --git a/src/hubspot_sdk/types/crm/property_create_param.py b/src/hubspot_sdk/types/crm/property_create_param.py deleted file mode 100644 index e4731be7..00000000 --- a/src/hubspot_sdk/types/crm/property_create_param.py +++ /dev/null @@ -1,105 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Iterable -from typing_extensions import Literal, Required, Annotated, TypedDict - -from ..._utils import PropertyInfo -from ..shared_params.option_input import OptionInput - -__all__ = ["PropertyCreateParam"] - - -class PropertyCreateParam(TypedDict, total=False): - field_type: Required[ - Annotated[ - Literal[ - "booleancheckbox", - "calculation_equation", - "checkbox", - "date", - "file", - "html", - "number", - "phonenumber", - "radio", - "select", - "text", - "textarea", - ], - PropertyInfo(alias="fieldType"), - ] - ] - """Controls how the property appears in HubSpot.""" - - group_name: Required[Annotated[str, PropertyInfo(alias="groupName")]] - """The name of the property group the property belongs to.""" - - label: Required[str] - """A human-readable property label that will be shown in HubSpot.""" - - name: Required[str] - """ - The internal property name, which must be used when referencing the property via - the API. - """ - - type: Required[Literal["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"]] - """The data type of the property.""" - - calculation_formula: Annotated[str, PropertyInfo(alias="calculationFormula")] - """Represents a formula that is used to compute a calculated property.""" - - currency_property_name: Annotated[str, PropertyInfo(alias="currencyPropertyName")] - - data_sensitivity: Annotated[ - Literal["highly_sensitive", "non_sensitive", "sensitive"], PropertyInfo(alias="dataSensitivity") - ] - """ - Indicates the sensitivity level of the property, with options: highly_sensitive, - non_sensitive, or sensitive. - """ - - description: str - """A description of the property that will be shown as help text in HubSpot.""" - - display_order: Annotated[int, PropertyInfo(alias="displayOrder")] - """ - Properties are displayed in order starting with the lowest positive integer - value. Values of -1 will cause the property to be displayed after any positive - values. - """ - - external_options: Annotated[bool, PropertyInfo(alias="externalOptions")] - """Applicable only for 'enumeration' type properties. - - Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. - Otherwise false. - """ - - form_field: Annotated[bool, PropertyInfo(alias="formField")] - """Whether or not the property can be used in a HubSpot form.""" - - has_unique_value: Annotated[bool, PropertyInfo(alias="hasUniqueValue")] - """Whether or not the property's value must be unique. - - Once set, this can't be changed. - """ - - hidden: bool - """If true, the property won't be visible and can't be used in HubSpot.""" - - options: Iterable[OptionInput] - """A list of valid options for the property. - - This field is required for enumerated properties. - """ - - referenced_object_type: Annotated[str, PropertyInfo(alias="referencedObjectType")] - """ - Should be set to 'OWNER' when 'externalOptions' is true, which causes the - property to dynamically pull option values from the current HubSpot users. - """ - - show_currency_symbol: Annotated[bool, PropertyInfo(alias="showCurrencySymbol")] diff --git a/src/hubspot_sdk/types/crm/property_create_params.py b/src/hubspot_sdk/types/crm/property_create_params.py index 36138b87..2e14d7b9 100644 --- a/src/hubspot_sdk/types/crm/property_create_params.py +++ b/src/hubspot_sdk/types/crm/property_create_params.py @@ -31,75 +31,42 @@ class PropertyCreateParams(TypedDict, total=False): PropertyInfo(alias="fieldType"), ] ] - """Controls how the property appears in HubSpot.""" group_name: Required[Annotated[str, PropertyInfo(alias="groupName")]] - """The name of the property group the property belongs to.""" label: Required[str] - """A human-readable property label that will be shown in HubSpot.""" name: Required[str] - """ - The internal property name, which must be used when referencing the property via - the API. - """ type: Required[Literal["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"]] - """The data type of the property.""" calculation_formula: Annotated[str, PropertyInfo(alias="calculationFormula")] - """Represents a formula that is used to compute a calculated property.""" currency_property_name: Annotated[str, PropertyInfo(alias="currencyPropertyName")] data_sensitivity: Annotated[ Literal["highly_sensitive", "non_sensitive", "sensitive"], PropertyInfo(alias="dataSensitivity") ] - """ - Indicates the sensitivity level of the property, with options: highly_sensitive, - non_sensitive, or sensitive. - """ description: str - """A description of the property that will be shown as help text in HubSpot.""" display_order: Annotated[int, PropertyInfo(alias="displayOrder")] - """ - Properties are displayed in order starting with the lowest positive integer - value. Values of -1 will cause the property to be displayed after any positive - values. - """ external_options: Annotated[bool, PropertyInfo(alias="externalOptions")] - """Applicable only for 'enumeration' type properties. - - Should be set to true in conjunction with a 'referencedObjectType' of 'OWNER'. - Otherwise false. - """ form_field: Annotated[bool, PropertyInfo(alias="formField")] - """Whether or not the property can be used in a HubSpot form.""" has_unique_value: Annotated[bool, PropertyInfo(alias="hasUniqueValue")] - """Whether or not the property's value must be unique. - - Once set, this can't be changed. - """ hidden: bool - """If true, the property won't be visible and can't be used in HubSpot.""" - options: Iterable[OptionInput] - """A list of valid options for the property. + number_display_hint: Annotated[ + Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"], + PropertyInfo(alias="numberDisplayHint"), + ] - This field is required for enumerated properties. - """ + options: Iterable[OptionInput] referenced_object_type: Annotated[str, PropertyInfo(alias="referencedObjectType")] - """ - Should be set to 'OWNER' when 'externalOptions' is true, which causes the - property to dynamically pull option values from the current HubSpot users. - """ show_currency_symbol: Annotated[bool, PropertyInfo(alias="showCurrencySymbol")] diff --git a/src/hubspot_sdk/types/crm/property_update_params.py b/src/hubspot_sdk/types/crm/property_update_params.py index 59464f01..9b8327a8 100644 --- a/src/hubspot_sdk/types/crm/property_update_params.py +++ b/src/hubspot_sdk/types/crm/property_update_params.py @@ -60,6 +60,11 @@ class PropertyUpdateParams(TypedDict, total=False): label: str """A human-readable property label that will be shown in HubSpot.""" + number_display_hint: Annotated[ + Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"], + PropertyInfo(alias="numberDisplayHint"), + ] + options: Iterable[OptionInput] """A list of valid options for the property.""" diff --git a/src/hubspot_sdk/types/crm/simple_public_object.py b/src/hubspot_sdk/types/crm/simple_public_object.py index c612e8a4..10f8e84c 100644 --- a/src/hubspot_sdk/types/crm/simple_public_object.py +++ b/src/hubspot_sdk/types/crm/simple_public_object.py @@ -23,7 +23,7 @@ class SimplePublicObject(BaseModel): created_at: datetime = FieldInfo(alias="createdAt") """The timestamp when the object was created, in ISO 8601 format.""" - properties: Dict[str, Optional[str]] + properties: Dict[str, str] """Key-value pairs representing the properties of the object.""" updated_at: datetime = FieldInfo(alias="updatedAt") diff --git a/src/hubspot_sdk/types/crm/simple_public_object_with_associations.py b/src/hubspot_sdk/types/crm/simple_public_object_with_associations.py index cf901b1b..7fd56548 100644 --- a/src/hubspot_sdk/types/crm/simple_public_object_with_associations.py +++ b/src/hubspot_sdk/types/crm/simple_public_object_with_associations.py @@ -26,7 +26,7 @@ class SimplePublicObjectWithAssociations(BaseModel): created_at: datetime = FieldInfo(alias="createdAt") """The timestamp when the object was created, in ISO 8601 format.""" - properties: Dict[str, Optional[str]] + properties: Dict[str, str] """Key value pairs representing the properties of the object.""" updated_at: datetime = FieldInfo(alias="updatedAt") diff --git a/src/hubspot_sdk/types/events/__init__.py b/src/hubspot_sdk/types/events/__init__.py index 1d1d0de7..40825660 100644 --- a/src/hubspot_sdk/types/events/__init__.py +++ b/src/hubspot_sdk/types/events/__init__.py @@ -2,7 +2,6 @@ from __future__ import annotations -from .property import Property as Property from .date_point import DatePoint as DatePoint from .fiscal_year import FiscalYear as FiscalYear from .time_offset import TimeOffset as TimeOffset diff --git a/src/hubspot_sdk/types/events/external_behavioral_event_type_definition.py b/src/hubspot_sdk/types/events/external_behavioral_event_type_definition.py index 48e5571d..6ac8141b 100644 --- a/src/hubspot_sdk/types/events/external_behavioral_event_type_definition.py +++ b/src/hubspot_sdk/types/events/external_behavioral_event_type_definition.py @@ -8,8 +8,8 @@ from pydantic import Field as FieldInfo -from .property import Property from ..._models import BaseModel +from ..shared.property import Property from .association_definition import AssociationDefinition from .behavioral_event_type_definition_labels import BehavioralEventTypeDefinitionLabels from .external_object_resolution_mapping_response import ExternalObjectResolutionMappingResponse diff --git a/src/hubspot_sdk/types/events/property.py b/src/hubspot_sdk/types/events/property.py deleted file mode 100644 index 3e4fb35e..00000000 --- a/src/hubspot_sdk/types/events/property.py +++ /dev/null @@ -1,119 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List, Optional -from datetime import datetime -from typing_extensions import Literal - -from pydantic import Field as FieldInfo - -from ..._models import BaseModel -from ..shared.option import Option -from ..shared.property_modification_metadata import PropertyModificationMetadata - -__all__ = ["Property"] - - -class Property(BaseModel): - """A HubSpot property""" - - description: str - """A summary of the property's purpose.""" - - field_type: str = FieldInfo(alias="fieldType") - """Determines how the property will appear in HubSpot's UI or on a form. - - Learn more in the properties API guide. - """ - - group_name: str = FieldInfo(alias="groupName") - """The name of the group to which the property is assigned.""" - - label: str - """The display label for the property.""" - - name: str - """The internal name for the property.""" - - options: List[Option] - """A list of valid options for the property. - - This field is required for enumerated properties. - """ - - type: str - """The data type of the property, such as string or number.""" - - archived: Optional[bool] = None - """Whether the property is archived.""" - - archived_at: Optional[datetime] = FieldInfo(alias="archivedAt", default=None) - """The timestamp when the property was archived, in ISO 8601 format.""" - - calculated: Optional[bool] = None - """Whether the property is a calculated field.""" - - calculation_formula: Optional[str] = FieldInfo(alias="calculationFormula", default=None) - """The formula used for calculated properties.""" - - created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None) - """The timestamp when the property was created, in ISO 8601 format.""" - - created_user_id: Optional[str] = FieldInfo(alias="createdUserId", default=None) - """The ID of the user who created the property.""" - - data_sensitivity: Optional[Literal["highly_sensitive", "non_sensitive", "sensitive"]] = FieldInfo( - alias="dataSensitivity", default=None - ) - """ - Indicates the sensitivity level of the property, such as "non_sensitive", - "sensitive", or "highly_sensitive". - """ - - date_display_hint: Optional[Literal["absolute", "absolute_with_relative", "time_since", "time_until"]] = FieldInfo( - alias="dateDisplayHint", default=None - ) - - display_order: Optional[int] = FieldInfo(alias="displayOrder", default=None) - """The position of the item relative to others in the list.""" - - external_options: Optional[bool] = FieldInfo(alias="externalOptions", default=None) - """Applicable only for enumeration type properties. - - Should be set to true with a 'referencedObjectType' of 'OWNER'. Otherwise false. - """ - - form_field: Optional[bool] = FieldInfo(alias="formField", default=None) - """Whether the property can appear on forms.""" - - has_unique_value: Optional[bool] = FieldInfo(alias="hasUniqueValue", default=None) - """Whether the property is a unique identifier property.""" - - hidden: Optional[bool] = None - """Whether or not the property will be hidden from the HubSpot UI. - - It's recommended that this be set to false for custom properties. - """ - - hubspot_defined: Optional[bool] = FieldInfo(alias="hubspotDefined", default=None) - """A boolean value set to true for HubSpot default properties.""" - - modification_metadata: Optional[PropertyModificationMetadata] = FieldInfo( - alias="modificationMetadata", default=None - ) - - referenced_object_type: Optional[str] = FieldInfo(alias="referencedObjectType", default=None) - """Deprecated. Use externalOptionsReferenceType instead.""" - - sensitive_data_categories: Optional[List[str]] = FieldInfo(alias="sensitiveDataCategories", default=None) - """ - When sensitiveData is true, lists the type of sensitive data contained in the - property (e.g., "HIPAA"). - """ - - show_currency_symbol: Optional[bool] = FieldInfo(alias="showCurrencySymbol", default=None) - """Whether to show the currency symbol in HubSpot's UI.""" - - updated_at: Optional[datetime] = FieldInfo(alias="updatedAt", default=None) - """The timestamp when the property was last updated, in ISO 8601 format.""" - - updated_user_id: Optional[str] = FieldInfo(alias="updatedUserId", default=None) diff --git a/src/hubspot_sdk/types/scheduler/external_calendar_meeting_event_response_properties.py b/src/hubspot_sdk/types/scheduler/external_calendar_meeting_event_response_properties.py index dbd90021..6501e427 100644 --- a/src/hubspot_sdk/types/scheduler/external_calendar_meeting_event_response_properties.py +++ b/src/hubspot_sdk/types/scheduler/external_calendar_meeting_event_response_properties.py @@ -82,6 +82,7 @@ class ExternalCalendarMeetingEventResponseProperties(BaseModel): "LEGAL_BASIS_REMEDIATION", "MARKET_SOURCING", "MARKETPLACE", + "MARKETS", "MEETINGS", "MERGE_COMPANIES", "MERGE_CONTACTS", @@ -106,6 +107,7 @@ class ExternalCalendarMeetingEventResponseProperties(BaseModel): "QUOTES", "RECYCLING_BIN", "RESTORE_OBJECTS", + "REVENUE_PLATFORM", "SALES", "SALES_MESSAGES", "SALESFORCE", diff --git a/src/hubspot_sdk/types/shared/__init__.py b/src/hubspot_sdk/types/shared/__init__.py index 726d8681..90b714db 100644 --- a/src/hubspot_sdk/types/shared/__init__.py +++ b/src/hubspot_sdk/types/shared/__init__.py @@ -3,6 +3,7 @@ from .error import Error as Error from .option import Option as Option from .paging import Paging as Paging +from .property import Property as Property from .next_page import NextPage as NextPage from .error_detail import ErrorDetail as ErrorDetail from .option_input import OptionInput as OptionInput @@ -15,6 +16,7 @@ from .property_value import PropertyValue as PropertyValue from .standard_error import StandardError as StandardError from .action_response import ActionResponse as ActionResponse +from .property_create import PropertyCreate as PropertyCreate from .association_spec import AssociationSpec as AssociationSpec from .public_object_id import PublicObjectID as PublicObjectID from .batch_input_string import BatchInputString as BatchInputString @@ -25,6 +27,7 @@ from .automation_actions_option import AutomationActionsOption as AutomationActionsOption from .batch_input_property_name import BatchInputPropertyName as BatchInputPropertyName from .association_definition_egg import AssociationDefinitionEgg as AssociationDefinitionEgg +from .batch_input_property_create import BatchInputPropertyCreate as BatchInputPropertyCreate from .batch_input_public_object_id import BatchInputPublicObjectID as BatchInputPublicObjectID from .object_type_definition_patch import ObjectTypeDefinitionPatch as ObjectTypeDefinitionPatch from .ab_test_create_request_v_next import AbTestCreateRequestVNext as AbTestCreateRequestVNext diff --git a/src/hubspot_sdk/types/shared/batch_input_property_create.py b/src/hubspot_sdk/types/shared/batch_input_property_create.py new file mode 100644 index 00000000..78f3b23d --- /dev/null +++ b/src/hubspot_sdk/types/shared/batch_input_property_create.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List + +from ..._models import BaseModel +from .property_create import PropertyCreate + +__all__ = ["BatchInputPropertyCreate"] + + +class BatchInputPropertyCreate(BaseModel): + inputs: List[PropertyCreate] diff --git a/src/hubspot_sdk/types/crm/property.py b/src/hubspot_sdk/types/shared/property.py similarity index 91% rename from src/hubspot_sdk/types/crm/property.py rename to src/hubspot_sdk/types/shared/property.py index d115b39c..077c1000 100644 --- a/src/hubspot_sdk/types/crm/property.py +++ b/src/hubspot_sdk/types/shared/property.py @@ -6,9 +6,9 @@ from pydantic import Field as FieldInfo +from .option import Option from ..._models import BaseModel -from ..shared.option import Option -from ..shared.property_modification_metadata import PropertyModificationMetadata +from .property_modification_metadata import PropertyModificationMetadata __all__ = ["Property"] @@ -120,6 +120,15 @@ class Property(BaseModel): alias="modificationMetadata", default=None ) + number_display_hint: Optional[ + Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"] + ] = FieldInfo(alias="numberDisplayHint", default=None) + """Hint for how a number property is displayed and validated in HubSpot's UI. + + Can be: "unformatted", "formatted", "currency", "percentage", "duration", or + "probability". + """ + referenced_object_type: Optional[str] = FieldInfo(alias="referencedObjectType", default=None) """If this property is related to other object(s), they'll be listed here.""" diff --git a/src/hubspot_sdk/types/shared/property_create.py b/src/hubspot_sdk/types/shared/property_create.py new file mode 100644 index 00000000..22f697d9 --- /dev/null +++ b/src/hubspot_sdk/types/shared/property_create.py @@ -0,0 +1,66 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List, Optional +from typing_extensions import Literal + +from pydantic import Field as FieldInfo + +from ..._models import BaseModel +from .option_input import OptionInput + +__all__ = ["PropertyCreate"] + + +class PropertyCreate(BaseModel): + field_type: Literal[ + "booleancheckbox", + "calculation_equation", + "checkbox", + "date", + "file", + "html", + "number", + "phonenumber", + "radio", + "select", + "text", + "textarea", + ] = FieldInfo(alias="fieldType") + + group_name: str = FieldInfo(alias="groupName") + + label: str + + name: str + + type: Literal["bool", "date", "datetime", "enumeration", "number", "phone_number", "string"] + + calculation_formula: Optional[str] = FieldInfo(alias="calculationFormula", default=None) + + currency_property_name: Optional[str] = FieldInfo(alias="currencyPropertyName", default=None) + + data_sensitivity: Optional[Literal["highly_sensitive", "non_sensitive", "sensitive"]] = FieldInfo( + alias="dataSensitivity", default=None + ) + + description: Optional[str] = None + + display_order: Optional[int] = FieldInfo(alias="displayOrder", default=None) + + external_options: Optional[bool] = FieldInfo(alias="externalOptions", default=None) + + form_field: Optional[bool] = FieldInfo(alias="formField", default=None) + + has_unique_value: Optional[bool] = FieldInfo(alias="hasUniqueValue", default=None) + + hidden: Optional[bool] = None + + number_display_hint: Optional[ + Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"] + ] = FieldInfo(alias="numberDisplayHint", default=None) + + options: Optional[List[OptionInput]] = None + + referenced_object_type: Optional[str] = FieldInfo(alias="referencedObjectType", default=None) + + show_currency_symbol: Optional[bool] = FieldInfo(alias="showCurrencySymbol", default=None) diff --git a/src/hubspot_sdk/types/shared/property_value.py b/src/hubspot_sdk/types/shared/property_value.py index fa86f11f..40e50d34 100644 --- a/src/hubspot_sdk/types/shared/property_value.py +++ b/src/hubspot_sdk/types/shared/property_value.py @@ -114,6 +114,7 @@ class PropertyValue(BaseModel): "LEGAL_BASIS_REMEDIATION", "MARKET_SOURCING", "MARKETPLACE", + "MARKETS", "MEETINGS", "MERGE_COMPANIES", "MERGE_CONTACTS", @@ -138,6 +139,7 @@ class PropertyValue(BaseModel): "QUOTES", "RECYCLING_BIN", "RESTORE_OBJECTS", + "REVENUE_PLATFORM", "SALES", "SALES_MESSAGES", "SALESFORCE", diff --git a/src/hubspot_sdk/types/shared_params/__init__.py b/src/hubspot_sdk/types/shared_params/__init__.py index e77f39eb..5d982954 100644 --- a/src/hubspot_sdk/types/shared_params/__init__.py +++ b/src/hubspot_sdk/types/shared_params/__init__.py @@ -3,6 +3,7 @@ from .option_input import OptionInput as OptionInput from .property_name import PropertyName as PropertyName from .property_value import PropertyValue as PropertyValue +from .property_create import PropertyCreate as PropertyCreate from .association_spec import AssociationSpec as AssociationSpec from .public_object_id import PublicObjectID as PublicObjectID from .automation_actions_option import AutomationActionsOption as AutomationActionsOption diff --git a/src/hubspot_sdk/types/cms/property_create_param.py b/src/hubspot_sdk/types/shared_params/property_create.py similarity index 77% rename from src/hubspot_sdk/types/cms/property_create_param.py rename to src/hubspot_sdk/types/shared_params/property_create.py index 9f7719d9..ce01b794 100644 --- a/src/hubspot_sdk/types/cms/property_create_param.py +++ b/src/hubspot_sdk/types/shared_params/property_create.py @@ -6,12 +6,12 @@ from typing_extensions import Literal, Required, Annotated, TypedDict from ..._utils import PropertyInfo -from ..shared_params.option_input import OptionInput +from .option_input import OptionInput -__all__ = ["PropertyCreateParam"] +__all__ = ["PropertyCreate"] -class PropertyCreateParam(TypedDict, total=False): +class PropertyCreate(TypedDict, total=False): field_type: Required[ Annotated[ Literal[ @@ -42,6 +42,8 @@ class PropertyCreateParam(TypedDict, total=False): calculation_formula: Annotated[str, PropertyInfo(alias="calculationFormula")] + currency_property_name: Annotated[str, PropertyInfo(alias="currencyPropertyName")] + data_sensitivity: Annotated[ Literal["highly_sensitive", "non_sensitive", "sensitive"], PropertyInfo(alias="dataSensitivity") ] @@ -58,6 +60,13 @@ class PropertyCreateParam(TypedDict, total=False): hidden: bool + number_display_hint: Annotated[ + Literal["currency", "duration", "formatted", "percentage", "probability", "unformatted"], + PropertyInfo(alias="numberDisplayHint"), + ] + options: Iterable[OptionInput] referenced_object_type: Annotated[str, PropertyInfo(alias="referencedObjectType")] + + show_currency_symbol: Annotated[bool, PropertyInfo(alias="showCurrencySymbol")] diff --git a/src/hubspot_sdk/types/shared_params/property_value.py b/src/hubspot_sdk/types/shared_params/property_value.py index da98c077..8a7a3a4f 100644 --- a/src/hubspot_sdk/types/shared_params/property_value.py +++ b/src/hubspot_sdk/types/shared_params/property_value.py @@ -115,6 +115,7 @@ class PropertyValue(TypedDict, total=False): "LEGAL_BASIS_REMEDIATION", "MARKET_SOURCING", "MARKETPLACE", + "MARKETS", "MEETINGS", "MERGE_COMPANIES", "MERGE_CONTACTS", @@ -139,6 +140,7 @@ class PropertyValue(TypedDict, total=False): "QUOTES", "RECYCLING_BIN", "RESTORE_OBJECTS", + "REVENUE_PLATFORM", "SALES", "SALES_MESSAGES", "SALESFORCE", diff --git a/src/hubspot_sdk/types/webhooks/__init__.py b/src/hubspot_sdk/types/webhooks/__init__.py index d80cf93d..83e8bf54 100644 --- a/src/hubspot_sdk/types/webhooks/__init__.py +++ b/src/hubspot_sdk/types/webhooks/__init__.py @@ -19,76 +19,89 @@ from .subscription_list_response import SubscriptionListResponse as SubscriptionListResponse from .crm_object_snapshot_response import CrmObjectSnapshotResponse as CrmObjectSnapshotResponse from .webhook_update_settings_params import WebhookUpdateSettingsParams as WebhookUpdateSettingsParams -from .webhook_get_journal_batch_params import WebhookGetJournalBatchParams as WebhookGetJournalBatchParams from .crm_object_snapshot_request_param import CrmObjectSnapshotRequestParam as CrmObjectSnapshotRequestParam from .subscription_upsert_request_param import SubscriptionUpsertRequestParam as SubscriptionUpsertRequestParam -from .webhook_get_latest_journal_params import WebhookGetLatestJournalParams as WebhookGetLatestJournalParams from .crm_object_snapshot_batch_response import CrmObjectSnapshotBatchResponse as CrmObjectSnapshotBatchResponse -from .webhook_create_crm_snapshot_params import WebhookCreateCrmSnapshotParams as WebhookCreateCrmSnapshotParams -from .webhook_create_subscription_params import WebhookCreateSubscriptionParams as WebhookCreateSubscriptionParams -from .webhook_update_subscription_params import WebhookUpdateSubscriptionParams as WebhookUpdateSubscriptionParams -from .webhook_get_earliest_journal_params import WebhookGetEarliestJournalParams as WebhookGetEarliestJournalParams +from .webhook_create_crm_snapshots_params import WebhookCreateCrmSnapshotsParams as WebhookCreateCrmSnapshotsParams from .batch_response_subscription_response import BatchResponseSubscriptionResponse as BatchResponseSubscriptionResponse from .batch_response_journal_fetch_response import ( BatchResponseJournalFetchResponse as BatchResponseJournalFetchResponse, ) -from .webhook_get_local_journal_batch_params import ( - WebhookGetLocalJournalBatchParams as WebhookGetLocalJournalBatchParams, -) from .subscription_batch_update_request_param import ( SubscriptionBatchUpdateRequestParam as SubscriptionBatchUpdateRequestParam, ) from .webhook_get_latest_journal_batch_params import ( WebhookGetLatestJournalBatchParams as WebhookGetLatestJournalBatchParams, ) -from .webhook_get_latest_local_journal_params import ( - WebhookGetLatestLocalJournalParams as WebhookGetLatestLocalJournalParams, +from .webhook_get_latest_journal_entry_params import ( + WebhookGetLatestJournalEntryParams as WebhookGetLatestJournalEntryParams, +) +from .webhook_get_next_journal_entries_params import ( + WebhookGetNextJournalEntriesParams as WebhookGetNextJournalEntriesParams, ) from .object_subscription_upsert_request_param import ( ObjectSubscriptionUpsertRequestParam as ObjectSubscriptionUpsertRequestParam, ) +from .webhook_create_event_subscription_params import ( + WebhookCreateEventSubscriptionParams as WebhookCreateEventSubscriptionParams, +) +from .webhook_update_event_subscription_params import ( + WebhookUpdateEventSubscriptionParams as WebhookUpdateEventSubscriptionParams, +) from .webhook_create_subscription_filter_params import ( WebhookCreateSubscriptionFilterParams as WebhookCreateSubscriptionFilterParams, ) -from .webhook_create_subscriptions_batch_params import ( - WebhookCreateSubscriptionsBatchParams as WebhookCreateSubscriptionsBatchParams, -) from .webhook_get_earliest_journal_batch_params import ( WebhookGetEarliestJournalBatchParams as WebhookGetEarliestJournalBatchParams, ) -from .webhook_get_earliest_local_journal_params import ( - WebhookGetEarliestLocalJournalParams as WebhookGetEarliestLocalJournalParams, +from .webhook_get_earliest_journal_entry_params import ( + WebhookGetEarliestJournalEntryParams as WebhookGetEarliestJournalEntryParams, +) +from .webhook_list_subscription_filters_response import ( + WebhookListSubscriptionFiltersResponse as WebhookListSubscriptionFiltersResponse, ) -from .webhook_get_subscription_filters_response import ( - WebhookGetSubscriptionFiltersResponse as WebhookGetSubscriptionFiltersResponse, +from .webhook_get_journal_batch_by_request_params import ( + WebhookGetJournalBatchByRequestParams as WebhookGetJournalBatchByRequestParams, ) -from .webhook_get_next_journal_after_offset_params import ( - WebhookGetNextJournalAfterOffsetParams as WebhookGetNextJournalAfterOffsetParams, +from .webhook_get_journal_batch_from_offset_params import ( + WebhookGetJournalBatchFromOffsetParams as WebhookGetJournalBatchFromOffsetParams, ) from .association_subscription_upsert_request_param import ( AssociationSubscriptionUpsertRequestParam as AssociationSubscriptionUpsertRequestParam, ) -from .webhook_get_journal_batch_after_offset_params import ( - WebhookGetJournalBatchAfterOffsetParams as WebhookGetJournalBatchAfterOffsetParams, -) from .webhook_get_latest_local_journal_batch_params import ( WebhookGetLatestLocalJournalBatchParams as WebhookGetLatestLocalJournalBatchParams, ) +from .webhook_get_latest_local_journal_entry_params import ( + WebhookGetLatestLocalJournalEntryParams as WebhookGetLatestLocalJournalEntryParams, +) +from .webhook_get_next_local_journal_entries_params import ( + WebhookGetNextLocalJournalEntriesParams as WebhookGetNextLocalJournalEntriesParams, +) +from .webhook_create_batch_event_subscriptions_params import ( + WebhookCreateBatchEventSubscriptionsParams as WebhookCreateBatchEventSubscriptionsParams, +) from .webhook_get_earliest_local_journal_batch_params import ( WebhookGetEarliestLocalJournalBatchParams as WebhookGetEarliestLocalJournalBatchParams, ) +from .webhook_get_earliest_local_journal_entry_params import ( + WebhookGetEarliestLocalJournalEntryParams as WebhookGetEarliestLocalJournalEntryParams, +) from .list_membership_subscription_upsert_request_param import ( ListMembershipSubscriptionUpsertRequestParam as ListMembershipSubscriptionUpsertRequestParam, ) -from .webhook_get_next_local_journal_after_offset_params import ( - WebhookGetNextLocalJournalAfterOffsetParams as WebhookGetNextLocalJournalAfterOffsetParams, +from .webhook_get_local_journal_batch_by_request_params import ( + WebhookGetLocalJournalBatchByRequestParams as WebhookGetLocalJournalBatchByRequestParams, +) +from .webhook_get_local_journal_batch_from_offset_params import ( + WebhookGetLocalJournalBatchFromOffsetParams as WebhookGetLocalJournalBatchFromOffsetParams, ) from .collection_response_subscription_response_no_paging import ( CollectionResponseSubscriptionResponseNoPaging as CollectionResponseSubscriptionResponseNoPaging, ) -from .webhook_get_local_journal_batch_after_offset_params import ( - WebhookGetLocalJournalBatchAfterOffsetParams as WebhookGetLocalJournalBatchAfterOffsetParams, -) from .app_lifecycle_event_subscription_upsert_request_param import ( AppLifecycleEventSubscriptionUpsertRequestParam as AppLifecycleEventSubscriptionUpsertRequestParam, ) +from .gdpr_privacy_deletion_subscription_upsert_request_param import ( + GdprPrivacyDeletionSubscriptionUpsertRequestParam as GdprPrivacyDeletionSubscriptionUpsertRequestParam, +) diff --git a/src/hubspot_sdk/types/webhooks/action_override_request.py b/src/hubspot_sdk/types/webhooks/action_override_request.py index 26a92609..c68d20c8 100644 --- a/src/hubspot_sdk/types/webhooks/action_override_request.py +++ b/src/hubspot_sdk/types/webhooks/action_override_request.py @@ -11,9 +11,25 @@ class ActionOverrideRequest(BaseModel): associated_object_type_ids: Optional[List[str]] = FieldInfo(alias="associatedObjectTypeIds", default=None) + """ + An array of strings, each representing an associated object type ID relevant to + the action override. + """ list_ids: Optional[List[int]] = FieldInfo(alias="listIds", default=None) + """ + An array of integers representing list IDs that are affected by the action + override. These IDs are in int64 format. + """ object_ids: Optional[List[int]] = FieldInfo(alias="objectIds", default=None) + """ + An array of integers, each representing an object ID for which the action + override is applicable. These IDs are in int64 format. + """ properties: Optional[List[str]] = None + """ + An array of strings representing specific properties to be overridden in the + action. Each entry in the array corresponds to a property name. + """ diff --git a/src/hubspot_sdk/types/webhooks/app_lifecycle_event_subscription_upsert_request_param.py b/src/hubspot_sdk/types/webhooks/app_lifecycle_event_subscription_upsert_request_param.py index 888b4097..2819a80e 100644 --- a/src/hubspot_sdk/types/webhooks/app_lifecycle_event_subscription_upsert_request_param.py +++ b/src/hubspot_sdk/types/webhooks/app_lifecycle_event_subscription_upsert_request_param.py @@ -17,7 +17,9 @@ class AppLifecycleEventSubscriptionUpsertRequestParam(TypedDict, total=False): subscription_type: Required[ Annotated[ - Literal["OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP"], + Literal[ + "OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP", "GDPR_PRIVACY_DELETION" + ], PropertyInfo(alias="subscriptionType"), ] ] diff --git a/src/hubspot_sdk/types/webhooks/association_subscription_upsert_request_param.py b/src/hubspot_sdk/types/webhooks/association_subscription_upsert_request_param.py index ec37aaac..9fae7e70 100644 --- a/src/hubspot_sdk/types/webhooks/association_subscription_upsert_request_param.py +++ b/src/hubspot_sdk/types/webhooks/association_subscription_upsert_request_param.py @@ -27,6 +27,7 @@ class AssociationSubscriptionUpsertRequestParam(TypedDict, total=False): "APP_UNINSTALL", "ADDED_TO_LIST", "REMOVED_FROM_LIST", + "GDPR_DELETE", ] ] ] @@ -41,7 +42,9 @@ class AssociationSubscriptionUpsertRequestParam(TypedDict, total=False): subscription_type: Required[ Annotated[ - Literal["OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP"], + Literal[ + "OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP", "GDPR_PRIVACY_DELETION" + ], PropertyInfo(alias="subscriptionType"), ] ] diff --git a/src/hubspot_sdk/types/webhooks/batch_response_journal_fetch_response.py b/src/hubspot_sdk/types/webhooks/batch_response_journal_fetch_response.py index cfd3257b..5381710a 100644 --- a/src/hubspot_sdk/types/webhooks/batch_response_journal_fetch_response.py +++ b/src/hubspot_sdk/types/webhooks/batch_response_journal_fetch_response.py @@ -14,13 +14,28 @@ class BatchResponseJournalFetchResponse(BaseModel): completed_at: datetime = FieldInfo(alias="completedAt") + """The date and time when the batch operation was completed, in ISO 8601 format.""" results: List[JournalFetchResponse] + """ + An array of journal fetch responses, each containing details about individual + journal entries. + """ started_at: datetime = FieldInfo(alias="startedAt") + """The date and time when the batch operation started, in ISO 8601 format.""" status: Literal["CANCELED", "COMPLETE", "PENDING", "PROCESSING"] + """The current status of the batch operation. + + Valid values include 'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'. + """ links: Optional[Dict[str, str]] = None + """ + A map of link names to associated URIs, providing additional resources or + documentation related to the batch operation. + """ requested_at: Optional[datetime] = FieldInfo(alias="requestedAt", default=None) + """The date and time when the batch operation was requested, in ISO 8601 format.""" diff --git a/src/hubspot_sdk/types/webhooks/batch_response_subscription_response.py b/src/hubspot_sdk/types/webhooks/batch_response_subscription_response.py index 84faa786..9d69199a 100644 --- a/src/hubspot_sdk/types/webhooks/batch_response_subscription_response.py +++ b/src/hubspot_sdk/types/webhooks/batch_response_subscription_response.py @@ -14,22 +14,28 @@ class BatchResponseSubscriptionResponse(BaseModel): completed_at: datetime = FieldInfo(alias="completedAt") - """The date and time when the batch operation was completed.""" + """The date and time when the batch operation was completed, in ISO 8601 format.""" results: List[SubscriptionResponse] - """The list of results from the batch operation.""" + """ + An array of SubscriptionResponse objects, each representing the result of an + individual subscription update within the batch operation. + """ started_at: datetime = FieldInfo(alias="startedAt") - """The date and time when the batch operation started.""" + """The date and time when the batch operation started, in ISO 8601 format.""" status: Literal["CANCELED", "COMPLETE", "PENDING", "PROCESSING"] - """ - The current status of the batch operation, which can be PENDING, PROCESSING, - CANCELED, or COMPLETE. + """The current status of the batch operation. + + Valid values include 'PENDING', 'PROCESSING', 'CANCELED', and 'COMPLETE'. """ links: Optional[Dict[str, str]] = None - """A collection of related links associated with the batch operation.""" + """ + A map of link names to associated URIs, providing additional information or + resources related to the batch operation. + """ requested_at: Optional[datetime] = FieldInfo(alias="requestedAt", default=None) - """The date and time when the batch operation was requested.""" + """The date and time when the batch operation was requested, in ISO 8601 format.""" diff --git a/src/hubspot_sdk/types/webhooks/collection_response_subscription_response_no_paging.py b/src/hubspot_sdk/types/webhooks/collection_response_subscription_response_no_paging.py index d90a1ee2..04ff21d9 100644 --- a/src/hubspot_sdk/types/webhooks/collection_response_subscription_response_no_paging.py +++ b/src/hubspot_sdk/types/webhooks/collection_response_subscription_response_no_paging.py @@ -10,3 +10,7 @@ class CollectionResponseSubscriptionResponseNoPaging(BaseModel): results: List[SubscriptionResponse1] + """ + An array of SubscriptionResponse objects, each representing a subscription's + details such as actions, app ID, and timestamps. + """ diff --git a/src/hubspot_sdk/types/webhooks/condition.py b/src/hubspot_sdk/types/webhooks/condition.py index 5b91aac3..439616ce 100644 --- a/src/hubspot_sdk/types/webhooks/condition.py +++ b/src/hubspot_sdk/types/webhooks/condition.py @@ -12,6 +12,7 @@ class Condition(BaseModel): filter_type: Literal["CRM_OBJECT_PROPERTY"] = FieldInfo(alias="filterType") + """A string representing the type of filter. Valid value is 'CRM_OBJECT_PROPERTY'.""" operator: Literal[ "CONTAINS", @@ -28,9 +29,23 @@ class Condition(BaseModel): "NOT_IN", "STARTS_WITH", ] + """A string indicating the operation to apply for filtering. + + Valid values include 'EQ', 'N_EQ', 'LT', 'GT', 'LTE', 'GTE', 'CONTAINS', + 'STARTS_WITH', 'ENDS_WITH', 'IN', 'NOT_IN', 'IS_EMPTY', and 'IS_NOT_EMPTY'. + """ property: str + """A string specifying the property of the CRM object to be filtered.""" value: Optional[str] = None + """ + A string representing the value to compare against the specified property when + filtering. + """ values: Optional[List[str]] = None + """ + An array of strings, each representing a value to be used in the filtering + operation. + """ diff --git a/src/hubspot_sdk/types/webhooks/condition_param.py b/src/hubspot_sdk/types/webhooks/condition_param.py index 4575e3fa..afd95868 100644 --- a/src/hubspot_sdk/types/webhooks/condition_param.py +++ b/src/hubspot_sdk/types/webhooks/condition_param.py @@ -12,6 +12,7 @@ class ConditionParam(TypedDict, total=False): filter_type: Required[Annotated[Literal["CRM_OBJECT_PROPERTY"], PropertyInfo(alias="filterType")]] + """A string representing the type of filter. Valid value is 'CRM_OBJECT_PROPERTY'.""" operator: Required[ Literal[ @@ -30,9 +31,23 @@ class ConditionParam(TypedDict, total=False): "STARTS_WITH", ] ] + """A string indicating the operation to apply for filtering. + + Valid values include 'EQ', 'N_EQ', 'LT', 'GT', 'LTE', 'GTE', 'CONTAINS', + 'STARTS_WITH', 'ENDS_WITH', 'IN', 'NOT_IN', 'IS_EMPTY', and 'IS_NOT_EMPTY'. + """ property: Required[str] + """A string specifying the property of the CRM object to be filtered.""" value: str + """ + A string representing the value to compare against the specified property when + filtering. + """ values: SequenceNotStr[str] + """ + An array of strings, each representing a value to be used in the filtering + operation. + """ diff --git a/src/hubspot_sdk/types/webhooks/crm_object_snapshot_batch_response.py b/src/hubspot_sdk/types/webhooks/crm_object_snapshot_batch_response.py index 03050f92..ad2aaf72 100644 --- a/src/hubspot_sdk/types/webhooks/crm_object_snapshot_batch_response.py +++ b/src/hubspot_sdk/types/webhooks/crm_object_snapshot_batch_response.py @@ -12,3 +12,7 @@ class CrmObjectSnapshotBatchResponse(BaseModel): snapshot_responses: List[CrmObjectSnapshotResponse] = FieldInfo(alias="snapshotResponses") + """ + An array of CrmObjectSnapshotResponse objects, each containing the details of a + single CRM object snapshot request. This property is required. + """ diff --git a/src/hubspot_sdk/types/webhooks/crm_object_snapshot_request_param.py b/src/hubspot_sdk/types/webhooks/crm_object_snapshot_request_param.py index 18c389f8..7a91747c 100644 --- a/src/hubspot_sdk/types/webhooks/crm_object_snapshot_request_param.py +++ b/src/hubspot_sdk/types/webhooks/crm_object_snapshot_request_param.py @@ -12,9 +12,19 @@ class CrmObjectSnapshotRequestParam(TypedDict, total=False): object_id: Required[Annotated[int, PropertyInfo(alias="objectId")]] + """ + An integer representing the unique identifier of the CRM object for which the + snapshot is being requested. + """ object_type_id: Required[Annotated[str, PropertyInfo(alias="objectTypeId")]] + """A string representing the type identifier of the CRM object.""" portal_id: Required[Annotated[int, PropertyInfo(alias="portalId")]] + """An integer representing the unique identifier of the HubSpot portal.""" properties: Required[SequenceNotStr[str]] + """ + An array of strings, each representing a property of the CRM object to be + included in the snapshot. + """ diff --git a/src/hubspot_sdk/types/webhooks/crm_object_snapshot_response.py b/src/hubspot_sdk/types/webhooks/crm_object_snapshot_response.py index 4e97be0c..8b2a9fed 100644 --- a/src/hubspot_sdk/types/webhooks/crm_object_snapshot_response.py +++ b/src/hubspot_sdk/types/webhooks/crm_object_snapshot_response.py @@ -9,9 +9,13 @@ class CrmObjectSnapshotResponse(BaseModel): object_id: int = FieldInfo(alias="objectId") + """An integer representing the unique identifier for the CRM object.""" object_type_id: str = FieldInfo(alias="objectTypeId") + """A string representing the type identifier of the CRM object.""" portal_id: int = FieldInfo(alias="portalId") + """An integer representing the unique identifier for the HubSpot portal.""" snapshot_status_id: str = FieldInfo(alias="snapshotStatusId") + """A UUID string representing the status identifier of the snapshot.""" diff --git a/src/hubspot_sdk/types/webhooks/filter.py b/src/hubspot_sdk/types/webhooks/filter.py index e4d1290f..70b62e0c 100644 --- a/src/hubspot_sdk/types/webhooks/filter.py +++ b/src/hubspot_sdk/types/webhooks/filter.py @@ -14,3 +14,8 @@ class Filter(BaseModel): """ conditions: List[Condition] + """An array of conditions that define the filter criteria. + + Each condition specifies a property, operator, and value to determine if a data + item meets the filter requirements. + """ diff --git a/src/hubspot_sdk/types/webhooks/filter_create_response.py b/src/hubspot_sdk/types/webhooks/filter_create_response.py index 69c2215b..bca282ae 100644 --- a/src/hubspot_sdk/types/webhooks/filter_create_response.py +++ b/src/hubspot_sdk/types/webhooks/filter_create_response.py @@ -9,3 +9,7 @@ class FilterCreateResponse(BaseModel): filter_id: int = FieldInfo(alias="filterId") + """The unique identifier for the created filter. + + It is an integer formatted as int64. + """ diff --git a/src/hubspot_sdk/types/webhooks/filter_param.py b/src/hubspot_sdk/types/webhooks/filter_param.py index ac399e1c..e4607f87 100644 --- a/src/hubspot_sdk/types/webhooks/filter_param.py +++ b/src/hubspot_sdk/types/webhooks/filter_param.py @@ -16,3 +16,8 @@ class FilterParam(TypedDict, total=False): """ conditions: Required[Iterable[ConditionParam]] + """An array of conditions that define the filter criteria. + + Each condition specifies a property, operator, and value to determine if a data + item meets the filter requirements. + """ diff --git a/src/hubspot_sdk/types/webhooks/filter_response.py b/src/hubspot_sdk/types/webhooks/filter_response.py index fa422de8..eb907ecb 100644 --- a/src/hubspot_sdk/types/webhooks/filter_response.py +++ b/src/hubspot_sdk/types/webhooks/filter_response.py @@ -10,8 +10,13 @@ class FilterResponse(BaseModel): id: int + """The unique identifier for the filter. It is an integer in int64 format.""" created_at: int = FieldInfo(alias="createdAt") + """ + A timestamp indicating when the filter was created, represented as an integer in + int64 format. + """ filter: Filter """ diff --git a/src/hubspot_sdk/types/webhooks/gdpr_privacy_deletion_subscription_upsert_request_param.py b/src/hubspot_sdk/types/webhooks/gdpr_privacy_deletion_subscription_upsert_request_param.py new file mode 100644 index 00000000..5c136464 --- /dev/null +++ b/src/hubspot_sdk/types/webhooks/gdpr_privacy_deletion_subscription_upsert_request_param.py @@ -0,0 +1,45 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import List +from typing_extensions import Literal, Required, Annotated, TypedDict + +from ..._utils import PropertyInfo + +__all__ = ["GdprPrivacyDeletionSubscriptionUpsertRequestParam"] + + +class GdprPrivacyDeletionSubscriptionUpsertRequestParam(TypedDict, total=False): + actions: Required[ + List[ + Literal[ + "CREATE", + "UPDATE", + "DELETE", + "MERGE", + "RESTORE", + "ASSOCIATION_ADDED", + "ASSOCIATION_REMOVED", + "SNAPSHOT", + "APP_INSTALL", + "APP_UNINSTALL", + "ADDED_TO_LIST", + "REMOVED_FROM_LIST", + "GDPR_DELETE", + ] + ] + ] + + object_type_id: Required[Annotated[str, PropertyInfo(alias="objectTypeId")]] + + portal_id: Required[Annotated[int, PropertyInfo(alias="portalId")]] + + subscription_type: Required[ + Annotated[ + Literal[ + "OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP", "GDPR_PRIVACY_DELETION" + ], + PropertyInfo(alias="subscriptionType"), + ] + ] diff --git a/src/hubspot_sdk/types/webhooks/journal_fetch_response.py b/src/hubspot_sdk/types/webhooks/journal_fetch_response.py index 7e5adbde..864b898e 100644 --- a/src/hubspot_sdk/types/webhooks/journal_fetch_response.py +++ b/src/hubspot_sdk/types/webhooks/journal_fetch_response.py @@ -11,7 +11,13 @@ class JournalFetchResponse(BaseModel): current_offset: str = FieldInfo(alias="currentOffset") + """ + A UUID string indicating the current offset in the journal data, used for + pagination. + """ expires_at: datetime = FieldInfo(alias="expiresAt") + """The date and time when the URL will expire, in ISO 8601 format.""" url: str + """A string representing the URL where the fetched journal data can be accessed.""" diff --git a/src/hubspot_sdk/types/webhooks/list_membership_subscription_upsert_request_param.py b/src/hubspot_sdk/types/webhooks/list_membership_subscription_upsert_request_param.py index 3df9652a..58fcdc4f 100644 --- a/src/hubspot_sdk/types/webhooks/list_membership_subscription_upsert_request_param.py +++ b/src/hubspot_sdk/types/webhooks/list_membership_subscription_upsert_request_param.py @@ -26,6 +26,7 @@ class ListMembershipSubscriptionUpsertRequestParam(TypedDict, total=False): "APP_UNINSTALL", "ADDED_TO_LIST", "REMOVED_FROM_LIST", + "GDPR_DELETE", ] ] ] @@ -38,7 +39,9 @@ class ListMembershipSubscriptionUpsertRequestParam(TypedDict, total=False): subscription_type: Required[ Annotated[ - Literal["OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP"], + Literal[ + "OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP", "GDPR_PRIVACY_DELETION" + ], PropertyInfo(alias="subscriptionType"), ] ] diff --git a/src/hubspot_sdk/types/webhooks/object_subscription_upsert_request_param.py b/src/hubspot_sdk/types/webhooks/object_subscription_upsert_request_param.py index 10f13a69..fa6e8d53 100644 --- a/src/hubspot_sdk/types/webhooks/object_subscription_upsert_request_param.py +++ b/src/hubspot_sdk/types/webhooks/object_subscription_upsert_request_param.py @@ -27,6 +27,7 @@ class ObjectSubscriptionUpsertRequestParam(TypedDict, total=False): "APP_UNINSTALL", "ADDED_TO_LIST", "REMOVED_FROM_LIST", + "GDPR_DELETE", ] ] ] @@ -41,7 +42,9 @@ class ObjectSubscriptionUpsertRequestParam(TypedDict, total=False): subscription_type: Required[ Annotated[ - Literal["OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP"], + Literal[ + "OBJECT", "ASSOCIATION", "EVENT", "APP_LIFECYCLE_EVENT", "LIST_MEMBERSHIP", "GDPR_PRIVACY_DELETION" + ], PropertyInfo(alias="subscriptionType"), ] ] diff --git a/src/hubspot_sdk/types/webhooks/settings_response.py b/src/hubspot_sdk/types/webhooks/settings_response.py index 4e39fd1f..aee0afac 100644 --- a/src/hubspot_sdk/types/webhooks/settings_response.py +++ b/src/hubspot_sdk/types/webhooks/settings_response.py @@ -13,22 +13,15 @@ class SettingsResponse(BaseModel): created_at: datetime = FieldInfo(alias="createdAt") - """When this subscription was created. - - Formatted as milliseconds from the [Unix epoch](#). - """ + """The date and time when the webhook settings were created, in ISO 8601 format.""" target_url: str = FieldInfo(alias="targetUrl") - """ - A publicly available URL for Hubspot to call where event payloads will be - delivered. See [link-so-some-doc](#) for details about the format of these event - payloads. - """ + """The URL to which the webhook events will be sent. It is a string.""" throttling: ThrottlingSettings updated_at: Optional[datetime] = FieldInfo(alias="updatedAt", default=None) - """When this subscription was last updated. - - Formatted as milliseconds from the [Unix epoch](#). + """ + The date and time when the webhook settings were last updated, in ISO 8601 + format. """ diff --git a/src/hubspot_sdk/types/webhooks/snapshot_status_response.py b/src/hubspot_sdk/types/webhooks/snapshot_status_response.py index 7785dffa..40b7d1d4 100644 --- a/src/hubspot_sdk/types/webhooks/snapshot_status_response.py +++ b/src/hubspot_sdk/types/webhooks/snapshot_status_response.py @@ -12,15 +12,38 @@ class SnapshotStatusResponse(BaseModel): id: str + """The unique identifier for the snapshot operation, formatted as a UUID.""" initiated_at: int = FieldInfo(alias="initiatedAt") + """ + A Unix timestamp in milliseconds indicating when the snapshot operation was + initiated. + """ status: Literal["COMPLETED", "EXPIRED", "FAILED", "IN_PROGRESS", "PENDING"] + """The current status of the snapshot operation. + + Valid values include 'PENDING', 'IN_PROGRESS', 'COMPLETED', 'FAILED', and + 'EXPIRED'. + """ completed_at: Optional[int] = FieldInfo(alias="completedAt", default=None) + """ + A Unix timestamp in milliseconds indicating when the snapshot operation was + completed. + """ error_code: Optional[Literal["INTERNAL_ERROR", "PERMISSION_DENIED", "TIMEOUT", "VALIDATION_ERROR"]] = FieldInfo( alias="errorCode", default=None ) + """The code representing any error that occurred during the snapshot operation. + + Possible values are 'TIMEOUT', 'VALIDATION_ERROR', 'INTERNAL_ERROR', and + 'PERMISSION_DENIED'. + """ message: Optional[str] = None + """ + A descriptive message providing additional information about the snapshot + operation or any errors encountered. + """ diff --git a/src/hubspot_sdk/types/webhooks/subscription_batch_update_request_param.py b/src/hubspot_sdk/types/webhooks/subscription_batch_update_request_param.py index 27974752..2eaa89d8 100644 --- a/src/hubspot_sdk/types/webhooks/subscription_batch_update_request_param.py +++ b/src/hubspot_sdk/types/webhooks/subscription_batch_update_request_param.py @@ -9,11 +9,7 @@ class SubscriptionBatchUpdateRequestParam(TypedDict, total=False): id: Required[int] - """The ID of the webhook subscription to update.""" + """The unique identifier for the subscription to be updated. It is an integer.""" active: Required[bool] - """Whether to activate or pause the webhook subscription. - - If true, the subscription will send webhook notifications. If false, the - subscription is paused and will not send notifications. - """ + """A boolean indicating whether the subscription is active.""" diff --git a/src/hubspot_sdk/types/webhooks/subscription_list_response.py b/src/hubspot_sdk/types/webhooks/subscription_list_response.py index 8a953d99..0d433854 100644 --- a/src/hubspot_sdk/types/webhooks/subscription_list_response.py +++ b/src/hubspot_sdk/types/webhooks/subscription_list_response.py @@ -11,6 +11,6 @@ class SubscriptionListResponse(BaseModel): results: List[SubscriptionResponse] """ - An array containing all active and paused event subscriptions configured for the - app. + An array of SubscriptionResponse objects, each representing a subscription + associated with the app. This property is required. """ diff --git a/src/hubspot_sdk/types/webhooks/subscription_response.py b/src/hubspot_sdk/types/webhooks/subscription_response.py index 636f6b19..ebd56b1f 100644 --- a/src/hubspot_sdk/types/webhooks/subscription_response.py +++ b/src/hubspot_sdk/types/webhooks/subscription_response.py @@ -13,20 +13,13 @@ class SubscriptionResponse(BaseModel): id: str - """The unique ID of the webhook subscription.""" + """The unique identifier for the subscription, represented as an integer.""" active: bool - """Whether the subscription is active or paused. - - If true, the subscription will send webhook notifications. If false, the - subscription is paused and will not send notifications. - """ + """A boolean indicating whether the subscription is currently active.""" created_at: datetime = FieldInfo(alias="createdAt") - """ - The timestamp when the webhook subscription was created, in ISO 8601 format - (e.g., 2020-02-29T12:30:00Z). - """ + """The date and time when the subscription was created, in ISO 8601 format.""" event_type: Literal[ "company.associationChange", @@ -78,35 +71,23 @@ class SubscriptionResponse(BaseModel): "ticket.propertyChange", "ticket.restore", ] = FieldInfo(alias="eventType") - """The type of event to listen for. + """The type of event that triggers the subscription. - Accepted values include contact.creation, contact.deletion, - contact.propertyChange, and similar event types for other CRM objects and custom - objects. + Valid values include various object changes such as 'contact.propertyChange', + 'deal.creation', and 'ticket.deletion'. """ event_type_name: Optional[str] = FieldInfo(alias="eventTypeName", default=None) - """The name of the event to listen for. - - This is used with custom objects to specify custom event types beyond the - standard eventType enum values. - """ + """A descriptive name for the event type.""" object_type_id: Optional[str] = FieldInfo(alias="objectTypeId", default=None) - """The ID of the object type for the subscription. - - This can be a standard CRM object (e.g., 'contact', 'company', 'deal') or a - custom object ID for custom object subscriptions. + """ + The identifier for the object type associated with the subscription, represented + as a string. """ property_name: Optional[str] = FieldInfo(alias="propertyName", default=None) - """The internal name of the property to monitor for changes. - - Only applies when eventType is propertyChange. - """ + """The name of the property associated with the event, if applicable.""" updated_at: Optional[datetime] = FieldInfo(alias="updatedAt", default=None) - """ - The timestamp when the webhook subscription was last updated, in ISO 8601 format - (e.g., 2020-02-29T12:30:00Z). - """ + """The date and time when the subscription was last updated, in ISO 8601 format.""" diff --git a/src/hubspot_sdk/types/webhooks/subscription_response_1.py b/src/hubspot_sdk/types/webhooks/subscription_response_1.py index 6f326b1f..0f6c849c 100644 --- a/src/hubspot_sdk/types/webhooks/subscription_response_1.py +++ b/src/hubspot_sdk/types/webhooks/subscription_response_1.py @@ -14,7 +14,7 @@ class SubscriptionResponse1(BaseModel): id: int - """The unique ID of the webhook subscription.""" + """The unique identifier for the subscription, represented as an integer.""" actions: List[ Literal[ @@ -30,46 +30,82 @@ class SubscriptionResponse1(BaseModel): "APP_UNINSTALL", "ADDED_TO_LIST", "REMOVED_FROM_LIST", + "GDPR_DELETE", ] ] + """ + An array of actions that trigger the subscription, such as 'CREATE', 'UPDATE', + 'DELETE', 'MERGE', 'RESTORE', 'ASSOCIATION_ADDED', 'ASSOCIATION_REMOVED', + 'SNAPSHOT', 'APP_INSTALL', 'APP_UNINSTALL', 'ADDED_TO_LIST', + 'REMOVED_FROM_LIST', and 'GDPR_DELETE'. + """ app_id: int = FieldInfo(alias="appId") - - created_at: datetime = FieldInfo(alias="createdAt") """ - The timestamp when the webhook subscription was created, in ISO 8601 format - (e.g., 2020-02-29T12:30:00Z). + The unique identifier for the app associated with the subscription, represented + as an integer. """ - object_type_id: str = FieldInfo(alias="objectTypeId") - """The ID of the object type for the subscription. + created_at: datetime = FieldInfo(alias="createdAt") + """The date and time when the subscription was created, in ISO 8601 format.""" - This can be a standard CRM object (e.g., 'contact', 'company', 'deal') or a - custom object ID for custom object subscriptions. + object_type_id: str = FieldInfo(alias="objectTypeId") + """ + The identifier for the object type associated with the subscription, represented + as a string. """ - subscription_type: Literal["APP_LIFECYCLE_EVENT", "ASSOCIATION", "EVENT", "LIST_MEMBERSHIP", "OBJECT"] = FieldInfo( - alias="subscriptionType" - ) - - updated_at: datetime = FieldInfo(alias="updatedAt") + subscription_type: Literal[ + "APP_LIFECYCLE_EVENT", "ASSOCIATION", "EVENT", "GDPR_PRIVACY_DELETION", "LIST_MEMBERSHIP", "OBJECT" + ] = FieldInfo(alias="subscriptionType") """ - The timestamp when the webhook subscription was last updated, in ISO 8601 format - (e.g., 2020-02-29T12:30:00Z). + The type of subscription, which can be one of 'OBJECT', 'ASSOCIATION', 'EVENT', + 'APP_LIFECYCLE_EVENT', 'LIST_MEMBERSHIP', or 'GDPR_PRIVACY_DELETION'. """ + updated_at: datetime = FieldInfo(alias="updatedAt") + """The date and time when the subscription was last updated, in ISO 8601 format.""" + action_overrides: Optional[Dict[str, ActionOverrideRequest]] = FieldInfo(alias="actionOverrides", default=None) + """ + An object containing action overrides, where each key is an action and the value + is an ActionOverrideRequest object. + """ associated_object_type_ids: Optional[List[str]] = FieldInfo(alias="associatedObjectTypeIds", default=None) + """ + An array of strings representing the associated object type IDs for the + subscription. + """ created_by: Optional[int] = FieldInfo(alias="createdBy", default=None) + """ + The unique identifier for the user who created the subscription, represented as + an integer. + """ deleted_at: Optional[datetime] = FieldInfo(alias="deletedAt", default=None) + """The date and time when the subscription was deleted, in ISO 8601 format.""" list_ids: Optional[List[int]] = FieldInfo(alias="listIds", default=None) + """ + An array of integers representing the list IDs associated with the subscription. + """ object_ids: Optional[List[int]] = FieldInfo(alias="objectIds", default=None) + """ + An array of integers representing the object IDs associated with the + subscription. + """ portal_id: Optional[int] = FieldInfo(alias="portalId", default=None) + """ + The unique identifier for the portal associated with the subscription, + represented as an integer. + """ properties: Optional[List[str]] = None + """ + An array of strings representing the properties associated with the + subscription. + """ diff --git a/src/hubspot_sdk/types/webhooks/subscription_upsert_request_param.py b/src/hubspot_sdk/types/webhooks/subscription_upsert_request_param.py index 29a6238f..40b3cfe7 100644 --- a/src/hubspot_sdk/types/webhooks/subscription_upsert_request_param.py +++ b/src/hubspot_sdk/types/webhooks/subscription_upsert_request_param.py @@ -9,6 +9,7 @@ from .association_subscription_upsert_request_param import AssociationSubscriptionUpsertRequestParam from .list_membership_subscription_upsert_request_param import ListMembershipSubscriptionUpsertRequestParam from .app_lifecycle_event_subscription_upsert_request_param import AppLifecycleEventSubscriptionUpsertRequestParam +from .gdpr_privacy_deletion_subscription_upsert_request_param import GdprPrivacyDeletionSubscriptionUpsertRequestParam __all__ = ["SubscriptionUpsertRequestParam"] @@ -17,4 +18,5 @@ AssociationSubscriptionUpsertRequestParam, AppLifecycleEventSubscriptionUpsertRequestParam, ListMembershipSubscriptionUpsertRequestParam, + GdprPrivacyDeletionSubscriptionUpsertRequestParam, ] diff --git a/src/hubspot_sdk/types/webhooks/throttling_settings.py b/src/hubspot_sdk/types/webhooks/throttling_settings.py index f50f1ca5..92f01bf4 100644 --- a/src/hubspot_sdk/types/webhooks/throttling_settings.py +++ b/src/hubspot_sdk/types/webhooks/throttling_settings.py @@ -9,7 +9,4 @@ class ThrottlingSettings(BaseModel): max_concurrent_requests: int = FieldInfo(alias="maxConcurrentRequests") - """ - The maximum number of HTTP requests HubSpot will attempt to make to your app in - a given time frame determined by `period`. - """ + """The maximum number of concurrent requests allowed. It is an integer value.""" diff --git a/src/hubspot_sdk/types/webhooks/throttling_settings_param.py b/src/hubspot_sdk/types/webhooks/throttling_settings_param.py index 1d26fdce..6b3ea5f7 100644 --- a/src/hubspot_sdk/types/webhooks/throttling_settings_param.py +++ b/src/hubspot_sdk/types/webhooks/throttling_settings_param.py @@ -11,7 +11,4 @@ class ThrottlingSettingsParam(TypedDict, total=False): max_concurrent_requests: Required[Annotated[int, PropertyInfo(alias="maxConcurrentRequests")]] - """ - The maximum number of HTTP requests HubSpot will attempt to make to your app in - a given time frame determined by `period`. - """ + """The maximum number of concurrent requests allowed. It is an integer value.""" diff --git a/src/hubspot_sdk/types/webhooks/webhook_create_subscriptions_batch_params.py b/src/hubspot_sdk/types/webhooks/webhook_create_batch_event_subscriptions_params.py similarity index 56% rename from src/hubspot_sdk/types/webhooks/webhook_create_subscriptions_batch_params.py rename to src/hubspot_sdk/types/webhooks/webhook_create_batch_event_subscriptions_params.py index faeae3e0..07b6cdcd 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_create_subscriptions_batch_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_create_batch_event_subscriptions_params.py @@ -7,8 +7,12 @@ from .subscription_batch_update_request_param import SubscriptionBatchUpdateRequestParam -__all__ = ["WebhookCreateSubscriptionsBatchParams"] +__all__ = ["WebhookCreateBatchEventSubscriptionsParams"] -class WebhookCreateSubscriptionsBatchParams(TypedDict, total=False): +class WebhookCreateBatchEventSubscriptionsParams(TypedDict, total=False): inputs: Required[Iterable[SubscriptionBatchUpdateRequestParam]] + """ + An array of SubscriptionBatchUpdateRequest objects, each representing a + subscription to be updated. This property is required. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_create_crm_snapshot_params.py b/src/hubspot_sdk/types/webhooks/webhook_create_crm_snapshots_params.py similarity index 62% rename from src/hubspot_sdk/types/webhooks/webhook_create_crm_snapshot_params.py rename to src/hubspot_sdk/types/webhooks/webhook_create_crm_snapshots_params.py index ec5f874e..818b15a2 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_create_crm_snapshot_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_create_crm_snapshots_params.py @@ -8,10 +8,14 @@ from ..._utils import PropertyInfo from .crm_object_snapshot_request_param import CrmObjectSnapshotRequestParam -__all__ = ["WebhookCreateCrmSnapshotParams"] +__all__ = ["WebhookCreateCrmSnapshotsParams"] -class WebhookCreateCrmSnapshotParams(TypedDict, total=False): +class WebhookCreateCrmSnapshotsParams(TypedDict, total=False): snapshot_requests: Required[ Annotated[Iterable[CrmObjectSnapshotRequestParam], PropertyInfo(alias="snapshotRequests")] ] + """ + An array of CrmObjectSnapshotRequest objects, each representing a request to + capture a snapshot of a specific CRM object. This property is required. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_create_subscription_params.py b/src/hubspot_sdk/types/webhooks/webhook_create_event_subscription_params.py similarity index 75% rename from src/hubspot_sdk/types/webhooks/webhook_create_subscription_params.py rename to src/hubspot_sdk/types/webhooks/webhook_create_event_subscription_params.py index e2292071..d2194f62 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_create_subscription_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_create_event_subscription_params.py @@ -6,12 +6,15 @@ from ..._utils import PropertyInfo -__all__ = ["WebhookCreateSubscriptionParams"] +__all__ = ["WebhookCreateEventSubscriptionParams"] -class WebhookCreateSubscriptionParams(TypedDict, total=False): +class WebhookCreateEventSubscriptionParams(TypedDict, total=False): active: Required[bool] - """Determines if the subscription is active or paused. Defaults to false.""" + """A boolean indicating whether the subscription is active. + + This field is required. + """ event_type: Required[ Annotated[ @@ -68,27 +71,26 @@ class WebhookCreateSubscriptionParams(TypedDict, total=False): PropertyInfo(alias="eventType"), ] ] - """Type of event to listen for. + """A string representing the type of event to subscribe to. - Can be one of `create`, `delete`, `deletedForPrivacy`, or `propertyChange`. + Valid values include various object changes such as 'contact.propertyChange', + 'deal.creation', and 'conversation.newMessage'. """ event_type_name: Annotated[str, PropertyInfo(alias="eventTypeName")] - """The name of the event to listen for. + """A string that provides a human-readable name for the event type. - This is used with custom objects to specify custom event types beyond the - standard eventType enum values. + This is optional. """ object_type_id: Annotated[str, PropertyInfo(alias="objectTypeId")] - """The ID of the object type for the subscription. - - This can be a standard CRM object (e.g., 'contact', 'company', 'deal') or a - custom object ID for custom object subscriptions. + """ + A string representing the identifier of the object type for which the + subscription is being created. This is optional. """ property_name: Annotated[str, PropertyInfo(alias="propertyName")] - """The internal name of the property to monitor for changes. + """A string indicating the name of the property that triggers the event. - Only applies when `eventType` is `propertyChange`. + This is optional and used when subscribing to property change events. """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_create_subscription_filter_params.py b/src/hubspot_sdk/types/webhooks/webhook_create_subscription_filter_params.py index d3e0eb3d..2fb18d64 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_create_subscription_filter_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_create_subscription_filter_params.py @@ -19,3 +19,7 @@ class WebhookCreateSubscriptionFilterParams(TypedDict, total=False): """ subscription_id: Required[Annotated[int, PropertyInfo(alias="subscriptionId")]] + """The unique identifier of the subscription to which the filter will be applied. + + It is an integer in int64 format. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_earliest_journal_batch_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_earliest_journal_batch_params.py index 5e5fd7fa..adc943bb 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_earliest_journal_batch_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_earliest_journal_batch_params.py @@ -11,3 +11,7 @@ class WebhookGetEarliestJournalBatchParams(TypedDict, total=False): install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal installation for which to fetch the journal entries. + + This is an optional parameter. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_earliest_local_journal_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_earliest_journal_entry_params.py similarity index 56% rename from src/hubspot_sdk/types/webhooks/webhook_get_earliest_local_journal_params.py rename to src/hubspot_sdk/types/webhooks/webhook_get_earliest_journal_entry_params.py index d882677c..d4151efc 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_earliest_local_journal_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_earliest_journal_entry_params.py @@ -6,8 +6,12 @@ from ..._utils import PropertyInfo -__all__ = ["WebhookGetEarliestLocalJournalParams"] +__all__ = ["WebhookGetEarliestJournalEntryParams"] -class WebhookGetEarliestLocalJournalParams(TypedDict, total=False): +class WebhookGetEarliestJournalEntryParams(TypedDict, total=False): install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal installation to filter the journal entries. + + This is an integer value. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_earliest_local_journal_batch_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_earliest_local_journal_batch_params.py index a53ea95f..d212cefa 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_earliest_local_journal_batch_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_earliest_local_journal_batch_params.py @@ -11,3 +11,7 @@ class WebhookGetEarliestLocalJournalBatchParams(TypedDict, total=False): install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal installation to filter the webhook journal entries. + + It is an integer value. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_earliest_local_journal_entry_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_earliest_local_journal_entry_params.py new file mode 100644 index 00000000..e634cb39 --- /dev/null +++ b/src/hubspot_sdk/types/webhooks/webhook_get_earliest_local_journal_entry_params.py @@ -0,0 +1,17 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Annotated, TypedDict + +from ..._utils import PropertyInfo + +__all__ = ["WebhookGetEarliestLocalJournalEntryParams"] + + +class WebhookGetEarliestLocalJournalEntryParams(TypedDict, total=False): + install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal for which to retrieve the earliest journal entry. + + This parameter is optional and should be an integer. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_by_request_params.py similarity index 63% rename from src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_params.py rename to src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_by_request_params.py index 12813831..3d8ced3f 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_by_request_params.py @@ -7,11 +7,15 @@ from ..._types import SequenceNotStr from ..._utils import PropertyInfo -__all__ = ["WebhookGetLocalJournalBatchParams"] +__all__ = ["WebhookGetJournalBatchByRequestParams"] -class WebhookGetLocalJournalBatchParams(TypedDict, total=False): +class WebhookGetJournalBatchByRequestParams(TypedDict, total=False): inputs: Required[SequenceNotStr[str]] """Strings to input.""" install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal from which to retrieve webhook journal entries. + + This is an integer value. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_after_offset_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_from_offset_params.py similarity index 51% rename from src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_after_offset_params.py rename to src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_from_offset_params.py index 5c948943..44b7cab5 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_after_offset_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_from_offset_params.py @@ -6,10 +6,15 @@ from ..._utils import PropertyInfo -__all__ = ["WebhookGetJournalBatchAfterOffsetParams"] +__all__ = ["WebhookGetJournalBatchFromOffsetParams"] -class WebhookGetJournalBatchAfterOffsetParams(TypedDict, total=False): +class WebhookGetJournalBatchFromOffsetParams(TypedDict, total=False): offset: Required[str] install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal installation to filter the webhook journal entries. + + This parameter is optional and is used to specify which portal's data to + retrieve. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_latest_journal_batch_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_latest_journal_batch_params.py index 925212be..48387288 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_latest_journal_batch_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_latest_journal_batch_params.py @@ -11,3 +11,8 @@ class WebhookGetLatestJournalBatchParams(TypedDict, total=False): install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal installation. + + This parameter is optional and can be used to filter results by a specific + portal. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_earliest_journal_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_latest_journal_entry_params.py similarity index 55% rename from src/hubspot_sdk/types/webhooks/webhook_get_earliest_journal_params.py rename to src/hubspot_sdk/types/webhooks/webhook_get_latest_journal_entry_params.py index 1d86fa58..0a21ecc2 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_earliest_journal_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_latest_journal_entry_params.py @@ -6,8 +6,12 @@ from ..._utils import PropertyInfo -__all__ = ["WebhookGetEarliestJournalParams"] +__all__ = ["WebhookGetLatestJournalEntryParams"] -class WebhookGetEarliestJournalParams(TypedDict, total=False): +class WebhookGetLatestJournalEntryParams(TypedDict, total=False): install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal for which to retrieve the latest journal entry. + + It is an integer value. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_latest_local_journal_batch_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_latest_local_journal_batch_params.py index abf0da1a..a16190c1 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_latest_local_journal_batch_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_latest_local_journal_batch_params.py @@ -11,3 +11,7 @@ class WebhookGetLatestLocalJournalBatchParams(TypedDict, total=False): install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal installation to filter the webhook journal entries. + + It is an optional integer parameter. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_latest_journal_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_latest_local_journal_entry_params.py similarity index 55% rename from src/hubspot_sdk/types/webhooks/webhook_get_latest_journal_params.py rename to src/hubspot_sdk/types/webhooks/webhook_get_latest_local_journal_entry_params.py index 43b04b43..e63da890 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_latest_journal_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_latest_local_journal_entry_params.py @@ -6,8 +6,12 @@ from ..._utils import PropertyInfo -__all__ = ["WebhookGetLatestJournalParams"] +__all__ = ["WebhookGetLatestLocalJournalEntryParams"] -class WebhookGetLatestJournalParams(TypedDict, total=False): +class WebhookGetLatestLocalJournalEntryParams(TypedDict, total=False): install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """ + An integer representing the ID of the portal to filter the webhook journal + entries. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_by_request_params.py similarity index 57% rename from src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_params.py rename to src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_by_request_params.py index abf8fed7..f94040ef 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_journal_batch_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_by_request_params.py @@ -7,11 +7,16 @@ from ..._types import SequenceNotStr from ..._utils import PropertyInfo -__all__ = ["WebhookGetJournalBatchParams"] +__all__ = ["WebhookGetLocalJournalBatchByRequestParams"] -class WebhookGetJournalBatchParams(TypedDict, total=False): +class WebhookGetLocalJournalBatchByRequestParams(TypedDict, total=False): inputs: Required[SequenceNotStr[str]] """Strings to input.""" install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal where the webhook is installed. + + This parameter is optional and is used to specify the portal context for the + operation. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_after_offset_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_from_offset_params.py similarity index 58% rename from src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_after_offset_params.py rename to src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_from_offset_params.py index 71d98fd3..785398bc 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_after_offset_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_local_journal_batch_from_offset_params.py @@ -6,10 +6,14 @@ from ..._utils import PropertyInfo -__all__ = ["WebhookGetLocalJournalBatchAfterOffsetParams"] +__all__ = ["WebhookGetLocalJournalBatchFromOffsetParams"] -class WebhookGetLocalJournalBatchAfterOffsetParams(TypedDict, total=False): +class WebhookGetLocalJournalBatchFromOffsetParams(TypedDict, total=False): offset: Required[str] install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal where the webhooks are installed. + + This is an integer value. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_next_journal_after_offset_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_next_journal_after_offset_params.py deleted file mode 100644 index bdd9257e..00000000 --- a/src/hubspot_sdk/types/webhooks/webhook_get_next_journal_after_offset_params.py +++ /dev/null @@ -1,13 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import Annotated, TypedDict - -from ..._utils import PropertyInfo - -__all__ = ["WebhookGetNextJournalAfterOffsetParams"] - - -class WebhookGetNextJournalAfterOffsetParams(TypedDict, total=False): - install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_latest_local_journal_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_next_journal_entries_params.py similarity index 57% rename from src/hubspot_sdk/types/webhooks/webhook_get_latest_local_journal_params.py rename to src/hubspot_sdk/types/webhooks/webhook_get_next_journal_entries_params.py index 9c1c2cfc..a5a229ef 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_latest_local_journal_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_get_next_journal_entries_params.py @@ -6,8 +6,12 @@ from ..._utils import PropertyInfo -__all__ = ["WebhookGetLatestLocalJournalParams"] +__all__ = ["WebhookGetNextJournalEntriesParams"] -class WebhookGetLatestLocalJournalParams(TypedDict, total=False): +class WebhookGetNextJournalEntriesParams(TypedDict, total=False): install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal where the webhooks are installed. + + This is an integer value. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_next_local_journal_after_offset_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_next_local_journal_after_offset_params.py deleted file mode 100644 index c4cc030c..00000000 --- a/src/hubspot_sdk/types/webhooks/webhook_get_next_local_journal_after_offset_params.py +++ /dev/null @@ -1,13 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import Annotated, TypedDict - -from ..._utils import PropertyInfo - -__all__ = ["WebhookGetNextLocalJournalAfterOffsetParams"] - - -class WebhookGetNextLocalJournalAfterOffsetParams(TypedDict, total=False): - install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_next_local_journal_entries_params.py b/src/hubspot_sdk/types/webhooks/webhook_get_next_local_journal_entries_params.py new file mode 100644 index 00000000..5651658b --- /dev/null +++ b/src/hubspot_sdk/types/webhooks/webhook_get_next_local_journal_entries_params.py @@ -0,0 +1,17 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Annotated, TypedDict + +from ..._utils import PropertyInfo + +__all__ = ["WebhookGetNextLocalJournalEntriesParams"] + + +class WebhookGetNextLocalJournalEntriesParams(TypedDict, total=False): + install_portal_id: Annotated[int, PropertyInfo(alias="installPortalId")] + """The ID of the portal installation to filter the journal entries by. + + This is an optional parameter. + """ diff --git a/src/hubspot_sdk/types/webhooks/webhook_get_subscription_filters_response.py b/src/hubspot_sdk/types/webhooks/webhook_list_subscription_filters_response.py similarity index 61% rename from src/hubspot_sdk/types/webhooks/webhook_get_subscription_filters_response.py rename to src/hubspot_sdk/types/webhooks/webhook_list_subscription_filters_response.py index a642a7e2..cb3d63cc 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_get_subscription_filters_response.py +++ b/src/hubspot_sdk/types/webhooks/webhook_list_subscription_filters_response.py @@ -5,6 +5,6 @@ from .filter_response import FilterResponse -__all__ = ["WebhookGetSubscriptionFiltersResponse"] +__all__ = ["WebhookListSubscriptionFiltersResponse"] -WebhookGetSubscriptionFiltersResponse: TypeAlias = List[FilterResponse] +WebhookListSubscriptionFiltersResponse: TypeAlias = List[FilterResponse] diff --git a/src/hubspot_sdk/types/webhooks/webhook_update_subscription_params.py b/src/hubspot_sdk/types/webhooks/webhook_update_event_subscription_params.py similarity index 81% rename from src/hubspot_sdk/types/webhooks/webhook_update_subscription_params.py rename to src/hubspot_sdk/types/webhooks/webhook_update_event_subscription_params.py index bb29dc4c..7741e18a 100644 --- a/src/hubspot_sdk/types/webhooks/webhook_update_subscription_params.py +++ b/src/hubspot_sdk/types/webhooks/webhook_update_event_subscription_params.py @@ -6,10 +6,10 @@ from ..._utils import PropertyInfo -__all__ = ["WebhookUpdateSubscriptionParams"] +__all__ = ["WebhookUpdateEventSubscriptionParams"] -class WebhookUpdateSubscriptionParams(TypedDict, total=False): +class WebhookUpdateEventSubscriptionParams(TypedDict, total=False): app_id: Required[Annotated[int, PropertyInfo(alias="appId")]] active: bool diff --git a/tests/api_resources/cms/test_media_bridge.py b/tests/api_resources/cms/test_media_bridge.py index 8a28d77c..670c21a3 100644 --- a/tests/api_resources/cms/test_media_bridge.py +++ b/tests/api_resources/cms/test_media_bridge.py @@ -433,6 +433,7 @@ def test_method_create_property_with_all_params(self, client: HubSpot) -> None: name="name", type="bool", calculation_formula="calculationFormula", + currency_property_name="currencyPropertyName", data_sensitivity="highly_sensitive", description="description", display_order=0, @@ -440,6 +441,7 @@ def test_method_create_property_with_all_params(self, client: HubSpot) -> None: form_field=True, has_unique_value=True, hidden=True, + number_display_hint="currency", options=[ { "display_order": 0, @@ -450,6 +452,7 @@ def test_method_create_property_with_all_params(self, client: HubSpot) -> None: } ], referenced_object_type="referencedObjectType", + show_currency_symbol=True, ) assert_matches_type(Property, media_bridge, path=["response"]) @@ -1515,6 +1518,7 @@ def test_method_update_property_with_all_params(self, client: HubSpot) -> None: app_id=0, object_type="objectType", calculation_formula="calculationFormula", + currency_property_name="currencyPropertyName", description="description", display_order=0, field_type="booleancheckbox", @@ -1523,6 +1527,7 @@ def test_method_update_property_with_all_params(self, client: HubSpot) -> None: has_unique_value=True, hidden=True, label="label", + number_display_hint="currency", options=[ { "display_order": 0, @@ -1532,6 +1537,7 @@ def test_method_update_property_with_all_params(self, client: HubSpot) -> None: "description": "description", } ], + show_currency_symbol=True, type="bool", ) assert_matches_type(Property, media_bridge, path=["response"]) @@ -2171,6 +2177,7 @@ async def test_method_create_property_with_all_params(self, async_client: AsyncH name="name", type="bool", calculation_formula="calculationFormula", + currency_property_name="currencyPropertyName", data_sensitivity="highly_sensitive", description="description", display_order=0, @@ -2178,6 +2185,7 @@ async def test_method_create_property_with_all_params(self, async_client: AsyncH form_field=True, has_unique_value=True, hidden=True, + number_display_hint="currency", options=[ { "display_order": 0, @@ -2188,6 +2196,7 @@ async def test_method_create_property_with_all_params(self, async_client: AsyncH } ], referenced_object_type="referencedObjectType", + show_currency_symbol=True, ) assert_matches_type(Property, media_bridge, path=["response"]) @@ -3253,6 +3262,7 @@ async def test_method_update_property_with_all_params(self, async_client: AsyncH app_id=0, object_type="objectType", calculation_formula="calculationFormula", + currency_property_name="currencyPropertyName", description="description", display_order=0, field_type="booleancheckbox", @@ -3261,6 +3271,7 @@ async def test_method_update_property_with_all_params(self, async_client: AsyncH has_unique_value=True, hidden=True, label="label", + number_display_hint="currency", options=[ { "display_order": 0, @@ -3270,6 +3281,7 @@ async def test_method_update_property_with_all_params(self, async_client: AsyncH "description": "description", } ], + show_currency_symbol=True, type="bool", ) assert_matches_type(Property, media_bridge, path=["response"]) diff --git a/tests/api_resources/cms/test_url_mappings.py b/tests/api_resources/cms/test_url_mappings.py index 4f64205a..545939a4 100644 --- a/tests/api_resources/cms/test_url_mappings.py +++ b/tests/api_resources/cms/test_url_mappings.py @@ -48,6 +48,7 @@ def test_method_create(self, client: HubSpot, respx_mock: MockRouter) -> None: is_regex=True, is_trailing_slash_optional=True, label="label", + last_used_at=0, name="name", note="note", portal_id=0, @@ -88,6 +89,7 @@ def test_raw_response_create(self, client: HubSpot, respx_mock: MockRouter) -> N is_regex=True, is_trailing_slash_optional=True, label="label", + last_used_at=0, name="name", note="note", portal_id=0, @@ -128,6 +130,7 @@ def test_streaming_response_create(self, client: HubSpot, respx_mock: MockRouter is_regex=True, is_trailing_slash_optional=True, label="label", + last_used_at=0, name="name", note="note", portal_id=0, @@ -295,6 +298,7 @@ async def test_method_create(self, async_client: AsyncHubSpot, respx_mock: MockR is_regex=True, is_trailing_slash_optional=True, label="label", + last_used_at=0, name="name", note="note", portal_id=0, @@ -335,6 +339,7 @@ async def test_raw_response_create(self, async_client: AsyncHubSpot, respx_mock: is_regex=True, is_trailing_slash_optional=True, label="label", + last_used_at=0, name="name", note="note", portal_id=0, @@ -375,6 +380,7 @@ async def test_streaming_response_create(self, async_client: AsyncHubSpot, respx is_regex=True, is_trailing_slash_optional=True, label="label", + last_used_at=0, name="name", note="note", portal_id=0, diff --git a/tests/api_resources/crm/extensions/test_cards_dev.py b/tests/api_resources/crm/extensions/test_cards_dev.py index aa4e002c..08103309 100644 --- a/tests/api_resources/crm/extensions/test_cards_dev.py +++ b/tests/api_resources/crm/extensions/test_cards_dev.py @@ -420,6 +420,7 @@ def test_streaming_response_get_sample_response(self, client: HubSpot) -> None: def test_method_migrate_views(self, client: HubSpot) -> None: cards_dev = client.crm.extensions.cards_dev.migrate_views( app_id=0, + allow_duplicate_app_card_ids=True, app_card_id=0, legacy_crm_card_id=0, ) @@ -430,6 +431,7 @@ def test_method_migrate_views(self, client: HubSpot) -> None: def test_method_migrate_views_with_all_params(self, client: HubSpot) -> None: cards_dev = client.crm.extensions.cards_dev.migrate_views( app_id=0, + allow_duplicate_app_card_ids=True, app_card_id=0, legacy_crm_card_id=0, helpdesk_app_card_id=0, @@ -441,6 +443,7 @@ def test_method_migrate_views_with_all_params(self, client: HubSpot) -> None: def test_raw_response_migrate_views(self, client: HubSpot) -> None: response = client.crm.extensions.cards_dev.with_raw_response.migrate_views( app_id=0, + allow_duplicate_app_card_ids=True, app_card_id=0, legacy_crm_card_id=0, ) @@ -455,6 +458,7 @@ def test_raw_response_migrate_views(self, client: HubSpot) -> None: def test_streaming_response_migrate_views(self, client: HubSpot) -> None: with client.crm.extensions.cards_dev.with_streaming_response.migrate_views( app_id=0, + allow_duplicate_app_card_ids=True, app_card_id=0, legacy_crm_card_id=0, ) as response: @@ -870,6 +874,7 @@ async def test_streaming_response_get_sample_response(self, async_client: AsyncH async def test_method_migrate_views(self, async_client: AsyncHubSpot) -> None: cards_dev = await async_client.crm.extensions.cards_dev.migrate_views( app_id=0, + allow_duplicate_app_card_ids=True, app_card_id=0, legacy_crm_card_id=0, ) @@ -880,6 +885,7 @@ async def test_method_migrate_views(self, async_client: AsyncHubSpot) -> None: async def test_method_migrate_views_with_all_params(self, async_client: AsyncHubSpot) -> None: cards_dev = await async_client.crm.extensions.cards_dev.migrate_views( app_id=0, + allow_duplicate_app_card_ids=True, app_card_id=0, legacy_crm_card_id=0, helpdesk_app_card_id=0, @@ -891,6 +897,7 @@ async def test_method_migrate_views_with_all_params(self, async_client: AsyncHub async def test_raw_response_migrate_views(self, async_client: AsyncHubSpot) -> None: response = await async_client.crm.extensions.cards_dev.with_raw_response.migrate_views( app_id=0, + allow_duplicate_app_card_ids=True, app_card_id=0, legacy_crm_card_id=0, ) @@ -905,6 +912,7 @@ async def test_raw_response_migrate_views(self, async_client: AsyncHubSpot) -> N async def test_streaming_response_migrate_views(self, async_client: AsyncHubSpot) -> None: async with async_client.crm.extensions.cards_dev.with_streaming_response.migrate_views( app_id=0, + allow_duplicate_app_card_ids=True, app_card_id=0, legacy_crm_card_id=0, ) as response: diff --git a/tests/api_resources/crm/test_properties.py b/tests/api_resources/crm/test_properties.py index c37f4d2e..1ca0ca0c 100644 --- a/tests/api_resources/crm/test_properties.py +++ b/tests/api_resources/crm/test_properties.py @@ -10,9 +10,9 @@ from hubspot_sdk import HubSpot, AsyncHubSpot from tests.utils import assert_matches_type from hubspot_sdk.types.crm import ( - Property, CollectionResponsePropertyNoPaging, ) +from hubspot_sdk.types.shared import Property base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -52,6 +52,7 @@ def test_method_create_with_all_params(self, client: HubSpot) -> None: form_field=True, has_unique_value=True, hidden=True, + number_display_hint="currency", options=[ { "display_order": 0, @@ -139,6 +140,7 @@ def test_method_update_with_all_params(self, client: HubSpot) -> None: group_name="groupName", hidden=True, label="label", + number_display_hint="currency", options=[ { "display_order": 0, @@ -405,6 +407,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncHubSpot) - form_field=True, has_unique_value=True, hidden=True, + number_display_hint="currency", options=[ { "display_order": 0, @@ -492,6 +495,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncHubSpot) - group_name="groupName", hidden=True, label="label", + number_display_hint="currency", options=[ { "display_order": 0, diff --git a/tests/api_resources/events/test_definitions.py b/tests/api_resources/events/test_definitions.py index 05282191..d2c7065a 100644 --- a/tests/api_resources/events/test_definitions.py +++ b/tests/api_resources/events/test_definitions.py @@ -11,9 +11,9 @@ from tests.utils import assert_matches_type from hubspot_sdk.pagination import SyncPage, AsyncPage from hubspot_sdk.types.events import ( - Property, ExternalBehavioralEventTypeDefinition, ) +from hubspot_sdk.types.shared import Property base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") diff --git a/tests/api_resources/test_webhooks.py b/tests/api_resources/test_webhooks.py index 901ca9d8..7cd0737b 100644 --- a/tests/api_resources/test_webhooks.py +++ b/tests/api_resources/test_webhooks.py @@ -28,7 +28,7 @@ CrmObjectSnapshotBatchResponse, BatchResponseJournalFetchResponse, BatchResponseSubscriptionResponse, - WebhookGetSubscriptionFiltersResponse, + WebhookListSubscriptionFiltersResponse, CollectionResponseSubscriptionResponseNoPaging, ) @@ -40,8 +40,60 @@ class TestWebhooks: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_create_crm_snapshot(self, client: HubSpot) -> None: - webhook = client.webhooks.create_crm_snapshot( + def test_method_create_batch_event_subscriptions(self, client: HubSpot) -> None: + webhook = client.webhooks.create_batch_event_subscriptions( + app_id=0, + inputs=[ + { + "id": 0, + "active": True, + } + ], + ) + assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_raw_response_create_batch_event_subscriptions(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.create_batch_event_subscriptions( + app_id=0, + inputs=[ + { + "id": 0, + "active": True, + } + ], + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + webhook = response.parse() + assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_streaming_response_create_batch_event_subscriptions(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.create_batch_event_subscriptions( + app_id=0, + inputs=[ + { + "id": 0, + "active": True, + } + ], + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + webhook = response.parse() + assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_create_crm_snapshots(self, client: HubSpot) -> None: + webhook = client.webhooks.create_crm_snapshots( snapshot_requests=[ { "object_id": 0, @@ -55,8 +107,8 @@ def test_method_create_crm_snapshot(self, client: HubSpot) -> None: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_create_crm_snapshot(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.create_crm_snapshot( + def test_raw_response_create_crm_snapshots(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.create_crm_snapshots( snapshot_requests=[ { "object_id": 0, @@ -74,8 +126,8 @@ def test_raw_response_create_crm_snapshot(self, client: HubSpot) -> None: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_create_crm_snapshot(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.create_crm_snapshot( + def test_streaming_response_create_crm_snapshots(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.create_crm_snapshots( snapshot_requests=[ { "object_id": 0, @@ -93,6 +145,59 @@ def test_streaming_response_create_crm_snapshot(self, client: HubSpot) -> None: assert cast(Any, response.is_closed) is True + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_create_event_subscription(self, client: HubSpot) -> None: + webhook = client.webhooks.create_event_subscription( + app_id=0, + active=True, + event_type="company.associationChange", + ) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_create_event_subscription_with_all_params(self, client: HubSpot) -> None: + webhook = client.webhooks.create_event_subscription( + app_id=0, + active=True, + event_type="company.associationChange", + event_type_name="eventTypeName", + object_type_id="objectTypeId", + property_name="propertyName", + ) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_raw_response_create_event_subscription(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.create_event_subscription( + app_id=0, + active=True, + event_type="company.associationChange", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + webhook = response.parse() + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_streaming_response_create_event_subscription(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.create_event_subscription( + app_id=0, + active=True, + event_type="company.associationChange", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + webhook = response.parse() + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + assert cast(Any, response.is_closed) is True + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_create_journal_subscription_overload_1(self, client: HubSpot) -> None: @@ -207,54 +312,29 @@ def test_streaming_response_create_journal_subscription_overload_4(self, client: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_create_subscription(self, client: HubSpot) -> None: - webhook = client.webhooks.create_subscription( - app_id=0, - active=True, - event_type="company.associationChange", - ) - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) - - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - def test_method_create_subscription_with_all_params(self, client: HubSpot) -> None: - webhook = client.webhooks.create_subscription( - app_id=0, - active=True, - event_type="company.associationChange", - event_type_name="eventTypeName", - object_type_id="objectTypeId", - property_name="propertyName", - ) - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + def test_method_create_journal_subscription_overload_5(self, client: HubSpot) -> None: + webhook = client.webhooks.create_journal_subscription() + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_create_subscription(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.create_subscription( - app_id=0, - active=True, - event_type="company.associationChange", - ) + def test_raw_response_create_journal_subscription_overload_5(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.create_journal_subscription() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_create_subscription(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.create_subscription( - app_id=0, - active=True, - event_type="company.associationChange", - ) as response: + def test_streaming_response_create_journal_subscription_overload_5(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.create_journal_subscription() as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) assert cast(Any, response.is_closed) is True @@ -321,53 +401,38 @@ def test_streaming_response_create_subscription_filter(self, client: HubSpot) -> @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_create_subscriptions_batch(self, client: HubSpot) -> None: - webhook = client.webhooks.create_subscriptions_batch( + def test_method_delete_event_subscription(self, client: HubSpot) -> None: + webhook = client.webhooks.delete_event_subscription( + subscription_id=0, app_id=0, - inputs=[ - { - "id": 0, - "active": True, - } - ], ) - assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) + assert webhook is None @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_create_subscriptions_batch(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.create_subscriptions_batch( + def test_raw_response_delete_event_subscription(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.delete_event_subscription( + subscription_id=0, app_id=0, - inputs=[ - { - "id": 0, - "active": True, - } - ], ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) + assert webhook is None @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_create_subscriptions_batch(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.create_subscriptions_batch( + def test_streaming_response_delete_event_subscription(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.delete_event_subscription( + subscription_id=0, app_id=0, - inputs=[ - { - "id": 0, - "active": True, - } - ], ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) + assert webhook is None assert cast(Any, response.is_closed) is True @@ -407,16 +472,16 @@ def test_streaming_response_delete_journal_subscription(self, client: HubSpot) - @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_delete_portal_subscriptions(self, client: HubSpot) -> None: - webhook = client.webhooks.delete_portal_subscriptions( + def test_method_delete_journal_subscription_for_portal(self, client: HubSpot) -> None: + webhook = client.webhooks.delete_journal_subscription_for_portal( 0, ) assert webhook is None @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_delete_portal_subscriptions(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.delete_portal_subscriptions( + def test_raw_response_delete_journal_subscription_for_portal(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.delete_journal_subscription_for_portal( 0, ) @@ -427,8 +492,8 @@ def test_raw_response_delete_portal_subscriptions(self, client: HubSpot) -> None @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_delete_portal_subscriptions(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.delete_portal_subscriptions( + def test_streaming_response_delete_journal_subscription_for_portal(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.delete_journal_subscription_for_portal( 0, ) as response: assert not response.is_closed @@ -475,19 +540,17 @@ def test_streaming_response_delete_settings(self, client: HubSpot) -> None: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_delete_subscription(self, client: HubSpot) -> None: - webhook = client.webhooks.delete_subscription( - subscription_id=0, - app_id=0, + def test_method_delete_subscription_filter(self, client: HubSpot) -> None: + webhook = client.webhooks.delete_subscription_filter( + 0, ) assert webhook is None @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_delete_subscription(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.delete_subscription( - subscription_id=0, - app_id=0, + def test_raw_response_delete_subscription_filter(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.delete_subscription_filter( + 0, ) assert response.is_closed is True @@ -497,10 +560,9 @@ def test_raw_response_delete_subscription(self, client: HubSpot) -> None: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_delete_subscription(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.delete_subscription( - subscription_id=0, - app_id=0, + def test_streaming_response_delete_subscription_filter(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.delete_subscription_filter( + 0, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -512,45 +574,54 @@ def test_streaming_response_delete_subscription(self, client: HubSpot) -> None: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_delete_subscription_filter(self, client: HubSpot) -> None: - webhook = client.webhooks.delete_subscription_filter( - 0, + def test_method_get_earliest_journal_batch(self, client: HubSpot) -> None: + webhook = client.webhooks.get_earliest_journal_batch( + count=1, ) - assert webhook is None + assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_delete_subscription_filter(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.delete_subscription_filter( - 0, + def test_method_get_earliest_journal_batch_with_all_params(self, client: HubSpot) -> None: + webhook = client.webhooks.get_earliest_journal_batch( + count=1, + install_portal_id=0, + ) + assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_raw_response_get_earliest_journal_batch(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.get_earliest_journal_batch( + count=1, ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert webhook is None + assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_delete_subscription_filter(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.delete_subscription_filter( - 0, + def test_streaming_response_get_earliest_journal_batch(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.get_earliest_journal_batch( + count=1, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert webhook is None + assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize @pytest.mark.respx(base_url=base_url) - def test_method_get_earliest_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_method_get_earliest_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.get_earliest_journal() + webhook = client.webhooks.get_earliest_journal_entry() assert webhook.is_closed assert webhook.json() == {"foo": "bar"} assert cast(Any, webhook.is_closed) is True @@ -558,11 +629,11 @@ def test_method_get_earliest_journal(self, client: HubSpot, respx_mock: MockRout @parametrize @pytest.mark.respx(base_url=base_url) - def test_method_get_earliest_journal_with_all_params(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_method_get_earliest_journal_entry_with_all_params(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.get_earliest_journal( + webhook = client.webhooks.get_earliest_journal_entry( install_portal_id=0, ) assert webhook.is_closed @@ -572,12 +643,12 @@ def test_method_get_earliest_journal_with_all_params(self, client: HubSpot, resp @parametrize @pytest.mark.respx(base_url=base_url) - def test_raw_response_get_earliest_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_raw_response_get_earliest_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.with_raw_response.get_earliest_journal() + webhook = client.webhooks.with_raw_response.get_earliest_journal_entry() assert webhook.is_closed is True assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -586,11 +657,11 @@ def test_raw_response_get_earliest_journal(self, client: HubSpot, respx_mock: Mo @parametrize @pytest.mark.respx(base_url=base_url) - def test_streaming_response_get_earliest_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_streaming_response_get_earliest_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - with client.webhooks.with_streaming_response.get_earliest_journal() as webhook: + with client.webhooks.with_streaming_response.get_earliest_journal_entry() as webhook: assert not webhook.is_closed assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -602,16 +673,16 @@ def test_streaming_response_get_earliest_journal(self, client: HubSpot, respx_mo @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_earliest_journal_batch(self, client: HubSpot) -> None: - webhook = client.webhooks.get_earliest_journal_batch( + def test_method_get_earliest_local_journal_batch(self, client: HubSpot) -> None: + webhook = client.webhooks.get_earliest_local_journal_batch( count=1, ) assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_earliest_journal_batch_with_all_params(self, client: HubSpot) -> None: - webhook = client.webhooks.get_earliest_journal_batch( + def test_method_get_earliest_local_journal_batch_with_all_params(self, client: HubSpot) -> None: + webhook = client.webhooks.get_earliest_local_journal_batch( count=1, install_portal_id=0, ) @@ -619,8 +690,8 @@ def test_method_get_earliest_journal_batch_with_all_params(self, client: HubSpot @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_get_earliest_journal_batch(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.get_earliest_journal_batch( + def test_raw_response_get_earliest_local_journal_batch(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.get_earliest_local_journal_batch( count=1, ) @@ -631,8 +702,8 @@ def test_raw_response_get_earliest_journal_batch(self, client: HubSpot) -> None: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_get_earliest_journal_batch(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.get_earliest_journal_batch( + def test_streaming_response_get_earliest_local_journal_batch(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.get_earliest_local_journal_batch( count=1, ) as response: assert not response.is_closed @@ -645,11 +716,11 @@ def test_streaming_response_get_earliest_journal_batch(self, client: HubSpot) -> @parametrize @pytest.mark.respx(base_url=base_url) - def test_method_get_earliest_local_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_method_get_earliest_local_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.get_earliest_local_journal() + webhook = client.webhooks.get_earliest_local_journal_entry() assert webhook.is_closed assert webhook.json() == {"foo": "bar"} assert cast(Any, webhook.is_closed) is True @@ -657,11 +728,13 @@ def test_method_get_earliest_local_journal(self, client: HubSpot, respx_mock: Mo @parametrize @pytest.mark.respx(base_url=base_url) - def test_method_get_earliest_local_journal_with_all_params(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_method_get_earliest_local_journal_entry_with_all_params( + self, client: HubSpot, respx_mock: MockRouter + ) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.get_earliest_local_journal( + webhook = client.webhooks.get_earliest_local_journal_entry( install_portal_id=0, ) assert webhook.is_closed @@ -671,12 +744,12 @@ def test_method_get_earliest_local_journal_with_all_params(self, client: HubSpot @parametrize @pytest.mark.respx(base_url=base_url) - def test_raw_response_get_earliest_local_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_raw_response_get_earliest_local_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.with_raw_response.get_earliest_local_journal() + webhook = client.webhooks.with_raw_response.get_earliest_local_journal_entry() assert webhook.is_closed is True assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -685,11 +758,11 @@ def test_raw_response_get_earliest_local_journal(self, client: HubSpot, respx_mo @parametrize @pytest.mark.respx(base_url=base_url) - def test_streaming_response_get_earliest_local_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_streaming_response_get_earliest_local_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - with client.webhooks.with_streaming_response.get_earliest_local_journal() as webhook: + with client.webhooks.with_streaming_response.get_earliest_local_journal_entry() as webhook: assert not webhook.is_closed assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -701,59 +774,53 @@ def test_streaming_response_get_earliest_local_journal(self, client: HubSpot, re @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_earliest_local_journal_batch(self, client: HubSpot) -> None: - webhook = client.webhooks.get_earliest_local_journal_batch( - count=1, - ) - assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) - - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - def test_method_get_earliest_local_journal_batch_with_all_params(self, client: HubSpot) -> None: - webhook = client.webhooks.get_earliest_local_journal_batch( - count=1, - install_portal_id=0, + def test_method_get_event_subscription(self, client: HubSpot) -> None: + webhook = client.webhooks.get_event_subscription( + subscription_id=0, + app_id=0, ) - assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_get_earliest_local_journal_batch(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.get_earliest_local_journal_batch( - count=1, + def test_raw_response_get_event_subscription(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.get_event_subscription( + subscription_id=0, + app_id=0, ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_get_earliest_local_journal_batch(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.get_earliest_local_journal_batch( - count=1, + def test_streaming_response_get_event_subscription(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.get_event_subscription( + subscription_id=0, + app_id=0, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) assert cast(Any, response.is_closed) is True @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_journal_batch(self, client: HubSpot) -> None: - webhook = client.webhooks.get_journal_batch( + def test_method_get_journal_batch_by_request(self, client: HubSpot) -> None: + webhook = client.webhooks.get_journal_batch_by_request( inputs=["string"], ) assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_journal_batch_with_all_params(self, client: HubSpot) -> None: - webhook = client.webhooks.get_journal_batch( + def test_method_get_journal_batch_by_request_with_all_params(self, client: HubSpot) -> None: + webhook = client.webhooks.get_journal_batch_by_request( inputs=["string"], install_portal_id=0, ) @@ -761,8 +828,8 @@ def test_method_get_journal_batch_with_all_params(self, client: HubSpot) -> None @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_get_journal_batch(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.get_journal_batch( + def test_raw_response_get_journal_batch_by_request(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.get_journal_batch_by_request( inputs=["string"], ) @@ -773,8 +840,8 @@ def test_raw_response_get_journal_batch(self, client: HubSpot) -> None: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_get_journal_batch(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.get_journal_batch( + def test_streaming_response_get_journal_batch_by_request(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.get_journal_batch_by_request( inputs=["string"], ) as response: assert not response.is_closed @@ -787,8 +854,8 @@ def test_streaming_response_get_journal_batch(self, client: HubSpot) -> None: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_journal_batch_after_offset(self, client: HubSpot) -> None: - webhook = client.webhooks.get_journal_batch_after_offset( + def test_method_get_journal_batch_from_offset(self, client: HubSpot) -> None: + webhook = client.webhooks.get_journal_batch_from_offset( count=1, offset="offset", ) @@ -796,8 +863,8 @@ def test_method_get_journal_batch_after_offset(self, client: HubSpot) -> None: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_journal_batch_after_offset_with_all_params(self, client: HubSpot) -> None: - webhook = client.webhooks.get_journal_batch_after_offset( + def test_method_get_journal_batch_from_offset_with_all_params(self, client: HubSpot) -> None: + webhook = client.webhooks.get_journal_batch_from_offset( count=1, offset="offset", install_portal_id=0, @@ -806,8 +873,8 @@ def test_method_get_journal_batch_after_offset_with_all_params(self, client: Hub @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_get_journal_batch_after_offset(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.get_journal_batch_after_offset( + def test_raw_response_get_journal_batch_from_offset(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.get_journal_batch_from_offset( count=1, offset="offset", ) @@ -819,8 +886,8 @@ def test_raw_response_get_journal_batch_after_offset(self, client: HubSpot) -> N @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_get_journal_batch_after_offset(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.get_journal_batch_after_offset( + def test_streaming_response_get_journal_batch_from_offset(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.get_journal_batch_from_offset( count=1, offset="offset", ) as response: @@ -834,9 +901,9 @@ def test_streaming_response_get_journal_batch_after_offset(self, client: HubSpot @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_path_params_get_journal_batch_after_offset(self, client: HubSpot) -> None: + def test_path_params_get_journal_batch_from_offset(self, client: HubSpot) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `offset` but received ''"): - client.webhooks.with_raw_response.get_journal_batch_after_offset( + client.webhooks.with_raw_response.get_journal_batch_from_offset( count=1, offset="", ) @@ -883,61 +950,39 @@ def test_path_params_get_journal_status(self, client: HubSpot) -> None: "", ) + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - @pytest.mark.respx(base_url=base_url) - def test_method_get_latest_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: - respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( - return_value=httpx.Response(200, json={"foo": "bar"}) + def test_method_get_journal_subscription(self, client: HubSpot) -> None: + webhook = client.webhooks.get_journal_subscription( + 0, ) - webhook = client.webhooks.get_latest_journal() - assert webhook.is_closed - assert webhook.json() == {"foo": "bar"} - assert cast(Any, webhook.is_closed) is True - assert isinstance(webhook, BinaryAPIResponse) - - @parametrize - @pytest.mark.respx(base_url=base_url) - def test_method_get_latest_journal_with_all_params(self, client: HubSpot, respx_mock: MockRouter) -> None: - respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( - return_value=httpx.Response(200, json={"foo": "bar"}) - ) - webhook = client.webhooks.get_latest_journal( - install_portal_id=0, - ) - assert webhook.is_closed - assert webhook.json() == {"foo": "bar"} - assert cast(Any, webhook.is_closed) is True - assert isinstance(webhook, BinaryAPIResponse) + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - @pytest.mark.respx(base_url=base_url) - def test_raw_response_get_latest_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: - respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( - return_value=httpx.Response(200, json={"foo": "bar"}) + def test_raw_response_get_journal_subscription(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.get_journal_subscription( + 0, ) - webhook = client.webhooks.with_raw_response.get_latest_journal() - - assert webhook.is_closed is True - assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" - assert webhook.json() == {"foo": "bar"} - assert isinstance(webhook, BinaryAPIResponse) + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + webhook = response.parse() + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - @pytest.mark.respx(base_url=base_url) - def test_streaming_response_get_latest_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: - respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( - return_value=httpx.Response(200, json={"foo": "bar"}) - ) - with client.webhooks.with_streaming_response.get_latest_journal() as webhook: - assert not webhook.is_closed - assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" + def test_streaming_response_get_journal_subscription(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.get_journal_subscription( + 0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - assert webhook.json() == {"foo": "bar"} - assert cast(Any, webhook.is_closed) is True - assert isinstance(webhook, StreamedBinaryAPIResponse) + webhook = response.parse() + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) - assert cast(Any, webhook.is_closed) is True + assert cast(Any, response.is_closed) is True @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -984,11 +1029,11 @@ def test_streaming_response_get_latest_journal_batch(self, client: HubSpot) -> N @parametrize @pytest.mark.respx(base_url=base_url) - def test_method_get_latest_local_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: - respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + def test_method_get_latest_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: + respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.get_latest_local_journal() + webhook = client.webhooks.get_latest_journal_entry() assert webhook.is_closed assert webhook.json() == {"foo": "bar"} assert cast(Any, webhook.is_closed) is True @@ -996,11 +1041,11 @@ def test_method_get_latest_local_journal(self, client: HubSpot, respx_mock: Mock @parametrize @pytest.mark.respx(base_url=base_url) - def test_method_get_latest_local_journal_with_all_params(self, client: HubSpot, respx_mock: MockRouter) -> None: - respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + def test_method_get_latest_journal_entry_with_all_params(self, client: HubSpot, respx_mock: MockRouter) -> None: + respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.get_latest_local_journal( + webhook = client.webhooks.get_latest_journal_entry( install_portal_id=0, ) assert webhook.is_closed @@ -1010,12 +1055,12 @@ def test_method_get_latest_local_journal_with_all_params(self, client: HubSpot, @parametrize @pytest.mark.respx(base_url=base_url) - def test_raw_response_get_latest_local_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: - respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + def test_raw_response_get_latest_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: + respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.with_raw_response.get_latest_local_journal() + webhook = client.webhooks.with_raw_response.get_latest_journal_entry() assert webhook.is_closed is True assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -1024,11 +1069,11 @@ def test_raw_response_get_latest_local_journal(self, client: HubSpot, respx_mock @parametrize @pytest.mark.respx(base_url=base_url) - def test_streaming_response_get_latest_local_journal(self, client: HubSpot, respx_mock: MockRouter) -> None: - respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + def test_streaming_response_get_latest_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: + respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - with client.webhooks.with_streaming_response.get_latest_local_journal() as webhook: + with client.webhooks.with_streaming_response.get_latest_journal_entry() as webhook: assert not webhook.is_closed assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -1081,18 +1126,76 @@ def test_streaming_response_get_latest_local_journal_batch(self, client: HubSpot assert cast(Any, response.is_closed) is True + @parametrize + @pytest.mark.respx(base_url=base_url) + def test_method_get_latest_local_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: + respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + return_value=httpx.Response(200, json={"foo": "bar"}) + ) + webhook = client.webhooks.get_latest_local_journal_entry() + assert webhook.is_closed + assert webhook.json() == {"foo": "bar"} + assert cast(Any, webhook.is_closed) is True + assert isinstance(webhook, BinaryAPIResponse) + + @parametrize + @pytest.mark.respx(base_url=base_url) + def test_method_get_latest_local_journal_entry_with_all_params( + self, client: HubSpot, respx_mock: MockRouter + ) -> None: + respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + return_value=httpx.Response(200, json={"foo": "bar"}) + ) + webhook = client.webhooks.get_latest_local_journal_entry( + install_portal_id=0, + ) + assert webhook.is_closed + assert webhook.json() == {"foo": "bar"} + assert cast(Any, webhook.is_closed) is True + assert isinstance(webhook, BinaryAPIResponse) + + @parametrize + @pytest.mark.respx(base_url=base_url) + def test_raw_response_get_latest_local_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: + respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + return_value=httpx.Response(200, json={"foo": "bar"}) + ) + + webhook = client.webhooks.with_raw_response.get_latest_local_journal_entry() + + assert webhook.is_closed is True + assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" + assert webhook.json() == {"foo": "bar"} + assert isinstance(webhook, BinaryAPIResponse) + + @parametrize + @pytest.mark.respx(base_url=base_url) + def test_streaming_response_get_latest_local_journal_entry(self, client: HubSpot, respx_mock: MockRouter) -> None: + respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + return_value=httpx.Response(200, json={"foo": "bar"}) + ) + with client.webhooks.with_streaming_response.get_latest_local_journal_entry() as webhook: + assert not webhook.is_closed + assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" + + assert webhook.json() == {"foo": "bar"} + assert cast(Any, webhook.is_closed) is True + assert isinstance(webhook, StreamedBinaryAPIResponse) + + assert cast(Any, webhook.is_closed) is True + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_local_journal_batch(self, client: HubSpot) -> None: - webhook = client.webhooks.get_local_journal_batch( + def test_method_get_local_journal_batch_by_request(self, client: HubSpot) -> None: + webhook = client.webhooks.get_local_journal_batch_by_request( inputs=["string"], ) assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_local_journal_batch_with_all_params(self, client: HubSpot) -> None: - webhook = client.webhooks.get_local_journal_batch( + def test_method_get_local_journal_batch_by_request_with_all_params(self, client: HubSpot) -> None: + webhook = client.webhooks.get_local_journal_batch_by_request( inputs=["string"], install_portal_id=0, ) @@ -1100,8 +1203,8 @@ def test_method_get_local_journal_batch_with_all_params(self, client: HubSpot) - @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_get_local_journal_batch(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.get_local_journal_batch( + def test_raw_response_get_local_journal_batch_by_request(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.get_local_journal_batch_by_request( inputs=["string"], ) @@ -1112,8 +1215,8 @@ def test_raw_response_get_local_journal_batch(self, client: HubSpot) -> None: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_get_local_journal_batch(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.get_local_journal_batch( + def test_streaming_response_get_local_journal_batch_by_request(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.get_local_journal_batch_by_request( inputs=["string"], ) as response: assert not response.is_closed @@ -1126,8 +1229,8 @@ def test_streaming_response_get_local_journal_batch(self, client: HubSpot) -> No @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_local_journal_batch_after_offset(self, client: HubSpot) -> None: - webhook = client.webhooks.get_local_journal_batch_after_offset( + def test_method_get_local_journal_batch_from_offset(self, client: HubSpot) -> None: + webhook = client.webhooks.get_local_journal_batch_from_offset( count=1, offset="offset", ) @@ -1135,8 +1238,8 @@ def test_method_get_local_journal_batch_after_offset(self, client: HubSpot) -> N @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_local_journal_batch_after_offset_with_all_params(self, client: HubSpot) -> None: - webhook = client.webhooks.get_local_journal_batch_after_offset( + def test_method_get_local_journal_batch_from_offset_with_all_params(self, client: HubSpot) -> None: + webhook = client.webhooks.get_local_journal_batch_from_offset( count=1, offset="offset", install_portal_id=0, @@ -1145,8 +1248,8 @@ def test_method_get_local_journal_batch_after_offset_with_all_params(self, clien @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_get_local_journal_batch_after_offset(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.get_local_journal_batch_after_offset( + def test_raw_response_get_local_journal_batch_from_offset(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.get_local_journal_batch_from_offset( count=1, offset="offset", ) @@ -1158,8 +1261,8 @@ def test_raw_response_get_local_journal_batch_after_offset(self, client: HubSpot @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_get_local_journal_batch_after_offset(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.get_local_journal_batch_after_offset( + def test_streaming_response_get_local_journal_batch_from_offset(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.get_local_journal_batch_from_offset( count=1, offset="offset", ) as response: @@ -1173,9 +1276,9 @@ def test_streaming_response_get_local_journal_batch_after_offset(self, client: H @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_path_params_get_local_journal_batch_after_offset(self, client: HubSpot) -> None: + def test_path_params_get_local_journal_batch_from_offset(self, client: HubSpot) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `offset` but received ''"): - client.webhooks.with_raw_response.get_local_journal_batch_after_offset( + client.webhooks.with_raw_response.get_local_journal_batch_from_offset( count=1, offset="", ) @@ -1224,11 +1327,11 @@ def test_path_params_get_local_journal_status(self, client: HubSpot) -> None: @parametrize @pytest.mark.respx(base_url=base_url) - def test_method_get_next_journal_after_offset(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_method_get_next_journal_entries(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.get_next_journal_after_offset( + webhook = client.webhooks.get_next_journal_entries( offset="offset", ) assert webhook.is_closed @@ -1238,13 +1341,11 @@ def test_method_get_next_journal_after_offset(self, client: HubSpot, respx_mock: @parametrize @pytest.mark.respx(base_url=base_url) - def test_method_get_next_journal_after_offset_with_all_params( - self, client: HubSpot, respx_mock: MockRouter - ) -> None: + def test_method_get_next_journal_entries_with_all_params(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.get_next_journal_after_offset( + webhook = client.webhooks.get_next_journal_entries( offset="offset", install_portal_id=0, ) @@ -1255,12 +1356,12 @@ def test_method_get_next_journal_after_offset_with_all_params( @parametrize @pytest.mark.respx(base_url=base_url) - def test_raw_response_get_next_journal_after_offset(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_raw_response_get_next_journal_entries(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.with_raw_response.get_next_journal_after_offset( + webhook = client.webhooks.with_raw_response.get_next_journal_entries( offset="offset", ) @@ -1271,11 +1372,11 @@ def test_raw_response_get_next_journal_after_offset(self, client: HubSpot, respx @parametrize @pytest.mark.respx(base_url=base_url) - def test_streaming_response_get_next_journal_after_offset(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_streaming_response_get_next_journal_entries(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - with client.webhooks.with_streaming_response.get_next_journal_after_offset( + with client.webhooks.with_streaming_response.get_next_journal_entries( offset="offset", ) as webhook: assert not webhook.is_closed @@ -1289,19 +1390,19 @@ def test_streaming_response_get_next_journal_after_offset(self, client: HubSpot, @parametrize @pytest.mark.respx(base_url=base_url) - def test_path_params_get_next_journal_after_offset(self, client: HubSpot) -> None: + def test_path_params_get_next_journal_entries(self, client: HubSpot) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `offset` but received ''"): - client.webhooks.with_raw_response.get_next_journal_after_offset( + client.webhooks.with_raw_response.get_next_journal_entries( offset="", ) @parametrize @pytest.mark.respx(base_url=base_url) - def test_method_get_next_local_journal_after_offset(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_method_get_next_local_journal_entries(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.get_next_local_journal_after_offset( + webhook = client.webhooks.get_next_local_journal_entries( offset="offset", ) assert webhook.is_closed @@ -1311,13 +1412,13 @@ def test_method_get_next_local_journal_after_offset(self, client: HubSpot, respx @parametrize @pytest.mark.respx(base_url=base_url) - def test_method_get_next_local_journal_after_offset_with_all_params( + def test_method_get_next_local_journal_entries_with_all_params( self, client: HubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.get_next_local_journal_after_offset( + webhook = client.webhooks.get_next_local_journal_entries( offset="offset", install_portal_id=0, ) @@ -1328,12 +1429,12 @@ def test_method_get_next_local_journal_after_offset_with_all_params( @parametrize @pytest.mark.respx(base_url=base_url) - def test_raw_response_get_next_local_journal_after_offset(self, client: HubSpot, respx_mock: MockRouter) -> None: + def test_raw_response_get_next_local_journal_entries(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = client.webhooks.with_raw_response.get_next_local_journal_after_offset( + webhook = client.webhooks.with_raw_response.get_next_local_journal_entries( offset="offset", ) @@ -1344,13 +1445,11 @@ def test_raw_response_get_next_local_journal_after_offset(self, client: HubSpot, @parametrize @pytest.mark.respx(base_url=base_url) - def test_streaming_response_get_next_local_journal_after_offset( - self, client: HubSpot, respx_mock: MockRouter - ) -> None: + def test_streaming_response_get_next_local_journal_entries(self, client: HubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - with client.webhooks.with_streaming_response.get_next_local_journal_after_offset( + with client.webhooks.with_streaming_response.get_next_local_journal_entries( offset="offset", ) as webhook: assert not webhook.is_closed @@ -1364,9 +1463,9 @@ def test_streaming_response_get_next_local_journal_after_offset( @parametrize @pytest.mark.respx(base_url=base_url) - def test_path_params_get_next_local_journal_after_offset(self, client: HubSpot) -> None: + def test_path_params_get_next_local_journal_entries(self, client: HubSpot) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `offset` but received ''"): - client.webhooks.with_raw_response.get_next_local_journal_after_offset( + client.webhooks.with_raw_response.get_next_local_journal_entries( offset="", ) @@ -1404,43 +1503,6 @@ def test_streaming_response_get_settings(self, client: HubSpot) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - def test_method_get_subscription(self, client: HubSpot) -> None: - webhook = client.webhooks.get_subscription( - subscription_id=0, - app_id=0, - ) - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) - - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - def test_raw_response_get_subscription(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.get_subscription( - subscription_id=0, - app_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - webhook = response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) - - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - def test_streaming_response_get_subscription(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.get_subscription( - subscription_id=0, - app_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - webhook = response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) - - assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_get_subscription_filter(self, client: HubSpot) -> None: @@ -1477,35 +1539,35 @@ def test_streaming_response_get_subscription_filter(self, client: HubSpot) -> No @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_get_subscription_filters(self, client: HubSpot) -> None: - webhook = client.webhooks.get_subscription_filters( + def test_method_list_event_subscriptions(self, client: HubSpot) -> None: + webhook = client.webhooks.list_event_subscriptions( 0, ) - assert_matches_type(WebhookGetSubscriptionFiltersResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_get_subscription_filters(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.get_subscription_filters( + def test_raw_response_list_event_subscriptions(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.list_event_subscriptions( 0, ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert_matches_type(WebhookGetSubscriptionFiltersResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_get_subscription_filters(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.get_subscription_filters( + def test_streaming_response_list_event_subscriptions(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.list_event_subscriptions( 0, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert_matches_type(WebhookGetSubscriptionFiltersResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) assert cast(Any, response.is_closed) is True @@ -1539,35 +1601,82 @@ def test_streaming_response_list_journal_subscriptions(self, client: HubSpot) -> @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_list_subscriptions(self, client: HubSpot) -> None: - webhook = client.webhooks.list_subscriptions( + def test_method_list_subscription_filters(self, client: HubSpot) -> None: + webhook = client.webhooks.list_subscription_filters( 0, ) - assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) + assert_matches_type(WebhookListSubscriptionFiltersResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_list_subscriptions(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.list_subscriptions( + def test_raw_response_list_subscription_filters(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.list_subscription_filters( 0, ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) + assert_matches_type(WebhookListSubscriptionFiltersResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_list_subscriptions(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.list_subscriptions( + def test_streaming_response_list_subscription_filters(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.list_subscription_filters( 0, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = response.parse() - assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) + assert_matches_type(WebhookListSubscriptionFiltersResponse, webhook, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_update_event_subscription(self, client: HubSpot) -> None: + webhook = client.webhooks.update_event_subscription( + subscription_id=0, + app_id=0, + ) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_update_event_subscription_with_all_params(self, client: HubSpot) -> None: + webhook = client.webhooks.update_event_subscription( + subscription_id=0, + app_id=0, + active=True, + ) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_raw_response_update_event_subscription(self, client: HubSpot) -> None: + response = client.webhooks.with_raw_response.update_event_subscription( + subscription_id=0, + app_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + webhook = response.parse() + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_streaming_response_update_event_subscription(self, client: HubSpot) -> None: + with client.webhooks.with_streaming_response.update_event_subscription( + subscription_id=0, + app_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + webhook = response.parse() + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) assert cast(Any, response.is_closed) is True @@ -1611,63 +1720,68 @@ def test_streaming_response_update_settings(self, client: HubSpot) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - def test_method_update_subscription(self, client: HubSpot) -> None: - webhook = client.webhooks.update_subscription( - subscription_id=0, - app_id=0, - ) - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + +class TestAsyncWebhooks: + parametrize = pytest.mark.parametrize( + "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] + ) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_method_update_subscription_with_all_params(self, client: HubSpot) -> None: - webhook = client.webhooks.update_subscription( - subscription_id=0, + async def test_method_create_batch_event_subscriptions(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.create_batch_event_subscriptions( app_id=0, - active=True, + inputs=[ + { + "id": 0, + "active": True, + } + ], ) - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_raw_response_update_subscription(self, client: HubSpot) -> None: - response = client.webhooks.with_raw_response.update_subscription( - subscription_id=0, + async def test_raw_response_create_batch_event_subscriptions(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.create_batch_event_subscriptions( app_id=0, + inputs=[ + { + "id": 0, + "active": True, + } + ], ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" - webhook = response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + webhook = await response.parse() + assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - def test_streaming_response_update_subscription(self, client: HubSpot) -> None: - with client.webhooks.with_streaming_response.update_subscription( - subscription_id=0, + async def test_streaming_response_create_batch_event_subscriptions(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.create_batch_event_subscriptions( app_id=0, + inputs=[ + { + "id": 0, + "active": True, + } + ], ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" - webhook = response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + webhook = await response.parse() + assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) assert cast(Any, response.is_closed) is True - -class TestAsyncWebhooks: - parametrize = pytest.mark.parametrize( - "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] - ) - @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_create_crm_snapshot(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.create_crm_snapshot( + async def test_method_create_crm_snapshots(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.create_crm_snapshots( snapshot_requests=[ { "object_id": 0, @@ -1681,8 +1795,8 @@ async def test_method_create_crm_snapshot(self, async_client: AsyncHubSpot) -> N @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_create_crm_snapshot(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.create_crm_snapshot( + async def test_raw_response_create_crm_snapshots(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.create_crm_snapshots( snapshot_requests=[ { "object_id": 0, @@ -1700,8 +1814,8 @@ async def test_raw_response_create_crm_snapshot(self, async_client: AsyncHubSpot @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_create_crm_snapshot(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.create_crm_snapshot( + async def test_streaming_response_create_crm_snapshots(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.create_crm_snapshots( snapshot_requests=[ { "object_id": 0, @@ -1719,6 +1833,59 @@ async def test_streaming_response_create_crm_snapshot(self, async_client: AsyncH assert cast(Any, response.is_closed) is True + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_create_event_subscription(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.create_event_subscription( + app_id=0, + active=True, + event_type="company.associationChange", + ) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_create_event_subscription_with_all_params(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.create_event_subscription( + app_id=0, + active=True, + event_type="company.associationChange", + event_type_name="eventTypeName", + object_type_id="objectTypeId", + property_name="propertyName", + ) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_create_event_subscription(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.create_event_subscription( + app_id=0, + active=True, + event_type="company.associationChange", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + webhook = await response.parse() + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_create_event_subscription(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.create_event_subscription( + app_id=0, + active=True, + event_type="company.associationChange", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + webhook = await response.parse() + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + assert cast(Any, response.is_closed) is True + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_create_journal_subscription_overload_1(self, async_client: AsyncHubSpot) -> None: @@ -1833,54 +2000,29 @@ async def test_streaming_response_create_journal_subscription_overload_4(self, a @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_create_subscription(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.create_subscription( - app_id=0, - active=True, - event_type="company.associationChange", - ) - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) - - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - async def test_method_create_subscription_with_all_params(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.create_subscription( - app_id=0, - active=True, - event_type="company.associationChange", - event_type_name="eventTypeName", - object_type_id="objectTypeId", - property_name="propertyName", - ) - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + async def test_method_create_journal_subscription_overload_5(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.create_journal_subscription() + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_create_subscription(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.create_subscription( - app_id=0, - active=True, - event_type="company.associationChange", - ) + async def test_raw_response_create_journal_subscription_overload_5(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.create_journal_subscription() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_create_subscription(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.create_subscription( - app_id=0, - active=True, - event_type="company.associationChange", - ) as response: + async def test_streaming_response_create_journal_subscription_overload_5(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.create_journal_subscription() as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) assert cast(Any, response.is_closed) is True @@ -1947,53 +2089,38 @@ async def test_streaming_response_create_subscription_filter(self, async_client: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_create_subscriptions_batch(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.create_subscriptions_batch( + async def test_method_delete_event_subscription(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.delete_event_subscription( + subscription_id=0, app_id=0, - inputs=[ - { - "id": 0, - "active": True, - } - ], ) - assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) + assert webhook is None @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_create_subscriptions_batch(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.create_subscriptions_batch( + async def test_raw_response_delete_event_subscription(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.delete_event_subscription( + subscription_id=0, app_id=0, - inputs=[ - { - "id": 0, - "active": True, - } - ], ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) + assert webhook is None @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_create_subscriptions_batch(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.create_subscriptions_batch( + async def test_streaming_response_delete_event_subscription(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.delete_event_subscription( + subscription_id=0, app_id=0, - inputs=[ - { - "id": 0, - "active": True, - } - ], ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(BatchResponseSubscriptionResponse, webhook, path=["response"]) + assert webhook is None assert cast(Any, response.is_closed) is True @@ -2033,16 +2160,16 @@ async def test_streaming_response_delete_journal_subscription(self, async_client @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_delete_portal_subscriptions(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.delete_portal_subscriptions( + async def test_method_delete_journal_subscription_for_portal(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.delete_journal_subscription_for_portal( 0, ) assert webhook is None @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_delete_portal_subscriptions(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.delete_portal_subscriptions( + async def test_raw_response_delete_journal_subscription_for_portal(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.delete_journal_subscription_for_portal( 0, ) @@ -2053,8 +2180,8 @@ async def test_raw_response_delete_portal_subscriptions(self, async_client: Asyn @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_delete_portal_subscriptions(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.delete_portal_subscriptions( + async def test_streaming_response_delete_journal_subscription_for_portal(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.delete_journal_subscription_for_portal( 0, ) as response: assert not response.is_closed @@ -2101,19 +2228,17 @@ async def test_streaming_response_delete_settings(self, async_client: AsyncHubSp @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_delete_subscription(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.delete_subscription( - subscription_id=0, - app_id=0, + async def test_method_delete_subscription_filter(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.delete_subscription_filter( + 0, ) assert webhook is None @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_delete_subscription(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.delete_subscription( - subscription_id=0, - app_id=0, + async def test_raw_response_delete_subscription_filter(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.delete_subscription_filter( + 0, ) assert response.is_closed is True @@ -2123,10 +2248,9 @@ async def test_raw_response_delete_subscription(self, async_client: AsyncHubSpot @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_delete_subscription(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.delete_subscription( - subscription_id=0, - app_id=0, + async def test_streaming_response_delete_subscription_filter(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.delete_subscription_filter( + 0, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -2138,45 +2262,54 @@ async def test_streaming_response_delete_subscription(self, async_client: AsyncH @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_delete_subscription_filter(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.delete_subscription_filter( - 0, + async def test_method_get_earliest_journal_batch(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_earliest_journal_batch( + count=1, ) - assert webhook is None + assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_delete_subscription_filter(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.delete_subscription_filter( - 0, + async def test_method_get_earliest_journal_batch_with_all_params(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_earliest_journal_batch( + count=1, + install_portal_id=0, + ) + assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_get_earliest_journal_batch(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.get_earliest_journal_batch( + count=1, ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert webhook is None + assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_delete_subscription_filter(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.delete_subscription_filter( - 0, + async def test_streaming_response_get_earliest_journal_batch(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.get_earliest_journal_batch( + count=1, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert webhook is None + assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize @pytest.mark.respx(base_url=base_url) - async def test_method_get_earliest_journal(self, async_client: AsyncHubSpot, respx_mock: MockRouter) -> None: + async def test_method_get_earliest_journal_entry(self, async_client: AsyncHubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.get_earliest_journal() + webhook = await async_client.webhooks.get_earliest_journal_entry() assert webhook.is_closed assert await webhook.json() == {"foo": "bar"} assert cast(Any, webhook.is_closed) is True @@ -2184,13 +2317,13 @@ async def test_method_get_earliest_journal(self, async_client: AsyncHubSpot, res @parametrize @pytest.mark.respx(base_url=base_url) - async def test_method_get_earliest_journal_with_all_params( + async def test_method_get_earliest_journal_entry_with_all_params( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.get_earliest_journal( + webhook = await async_client.webhooks.get_earliest_journal_entry( install_portal_id=0, ) assert webhook.is_closed @@ -2200,12 +2333,14 @@ async def test_method_get_earliest_journal_with_all_params( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_raw_response_get_earliest_journal(self, async_client: AsyncHubSpot, respx_mock: MockRouter) -> None: + async def test_raw_response_get_earliest_journal_entry( + self, async_client: AsyncHubSpot, respx_mock: MockRouter + ) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.with_raw_response.get_earliest_journal() + webhook = await async_client.webhooks.with_raw_response.get_earliest_journal_entry() assert webhook.is_closed is True assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -2214,13 +2349,13 @@ async def test_raw_response_get_earliest_journal(self, async_client: AsyncHubSpo @parametrize @pytest.mark.respx(base_url=base_url) - async def test_streaming_response_get_earliest_journal( + async def test_streaming_response_get_earliest_journal_entry( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - async with async_client.webhooks.with_streaming_response.get_earliest_journal() as webhook: + async with async_client.webhooks.with_streaming_response.get_earliest_journal_entry() as webhook: assert not webhook.is_closed assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -2232,16 +2367,16 @@ async def test_streaming_response_get_earliest_journal( @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_earliest_journal_batch(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_earliest_journal_batch( + async def test_method_get_earliest_local_journal_batch(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_earliest_local_journal_batch( count=1, ) assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_earliest_journal_batch_with_all_params(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_earliest_journal_batch( + async def test_method_get_earliest_local_journal_batch_with_all_params(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_earliest_local_journal_batch( count=1, install_portal_id=0, ) @@ -2249,8 +2384,8 @@ async def test_method_get_earliest_journal_batch_with_all_params(self, async_cli @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_get_earliest_journal_batch(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.get_earliest_journal_batch( + async def test_raw_response_get_earliest_local_journal_batch(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.get_earliest_local_journal_batch( count=1, ) @@ -2261,8 +2396,8 @@ async def test_raw_response_get_earliest_journal_batch(self, async_client: Async @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_get_earliest_journal_batch(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.get_earliest_journal_batch( + async def test_streaming_response_get_earliest_local_journal_batch(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.get_earliest_local_journal_batch( count=1, ) as response: assert not response.is_closed @@ -2275,11 +2410,13 @@ async def test_streaming_response_get_earliest_journal_batch(self, async_client: @parametrize @pytest.mark.respx(base_url=base_url) - async def test_method_get_earliest_local_journal(self, async_client: AsyncHubSpot, respx_mock: MockRouter) -> None: + async def test_method_get_earliest_local_journal_entry( + self, async_client: AsyncHubSpot, respx_mock: MockRouter + ) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.get_earliest_local_journal() + webhook = await async_client.webhooks.get_earliest_local_journal_entry() assert webhook.is_closed assert await webhook.json() == {"foo": "bar"} assert cast(Any, webhook.is_closed) is True @@ -2287,13 +2424,13 @@ async def test_method_get_earliest_local_journal(self, async_client: AsyncHubSpo @parametrize @pytest.mark.respx(base_url=base_url) - async def test_method_get_earliest_local_journal_with_all_params( + async def test_method_get_earliest_local_journal_entry_with_all_params( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.get_earliest_local_journal( + webhook = await async_client.webhooks.get_earliest_local_journal_entry( install_portal_id=0, ) assert webhook.is_closed @@ -2303,14 +2440,14 @@ async def test_method_get_earliest_local_journal_with_all_params( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_raw_response_get_earliest_local_journal( + async def test_raw_response_get_earliest_local_journal_entry( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.with_raw_response.get_earliest_local_journal() + webhook = await async_client.webhooks.with_raw_response.get_earliest_local_journal_entry() assert webhook.is_closed is True assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -2319,13 +2456,13 @@ async def test_raw_response_get_earliest_local_journal( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_streaming_response_get_earliest_local_journal( + async def test_streaming_response_get_earliest_local_journal_entry( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/earliest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - async with async_client.webhooks.with_streaming_response.get_earliest_local_journal() as webhook: + async with async_client.webhooks.with_streaming_response.get_earliest_local_journal_entry() as webhook: assert not webhook.is_closed assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -2337,59 +2474,53 @@ async def test_streaming_response_get_earliest_local_journal( @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_earliest_local_journal_batch(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_earliest_local_journal_batch( - count=1, - ) - assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) - - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - async def test_method_get_earliest_local_journal_batch_with_all_params(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_earliest_local_journal_batch( - count=1, - install_portal_id=0, + async def test_method_get_event_subscription(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_event_subscription( + subscription_id=0, + app_id=0, ) - assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_get_earliest_local_journal_batch(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.get_earliest_local_journal_batch( - count=1, + async def test_raw_response_get_event_subscription(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.get_event_subscription( + subscription_id=0, + app_id=0, ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_get_earliest_local_journal_batch(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.get_earliest_local_journal_batch( - count=1, + async def test_streaming_response_get_event_subscription(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.get_event_subscription( + subscription_id=0, + app_id=0, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) assert cast(Any, response.is_closed) is True @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_journal_batch(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_journal_batch( + async def test_method_get_journal_batch_by_request(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_journal_batch_by_request( inputs=["string"], ) assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_journal_batch_with_all_params(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_journal_batch( + async def test_method_get_journal_batch_by_request_with_all_params(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_journal_batch_by_request( inputs=["string"], install_portal_id=0, ) @@ -2397,8 +2528,8 @@ async def test_method_get_journal_batch_with_all_params(self, async_client: Asyn @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_get_journal_batch(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.get_journal_batch( + async def test_raw_response_get_journal_batch_by_request(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.get_journal_batch_by_request( inputs=["string"], ) @@ -2409,8 +2540,8 @@ async def test_raw_response_get_journal_batch(self, async_client: AsyncHubSpot) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_get_journal_batch(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.get_journal_batch( + async def test_streaming_response_get_journal_batch_by_request(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.get_journal_batch_by_request( inputs=["string"], ) as response: assert not response.is_closed @@ -2423,8 +2554,8 @@ async def test_streaming_response_get_journal_batch(self, async_client: AsyncHub @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_journal_batch_after_offset(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_journal_batch_after_offset( + async def test_method_get_journal_batch_from_offset(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_journal_batch_from_offset( count=1, offset="offset", ) @@ -2432,8 +2563,8 @@ async def test_method_get_journal_batch_after_offset(self, async_client: AsyncHu @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_journal_batch_after_offset_with_all_params(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_journal_batch_after_offset( + async def test_method_get_journal_batch_from_offset_with_all_params(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_journal_batch_from_offset( count=1, offset="offset", install_portal_id=0, @@ -2442,8 +2573,8 @@ async def test_method_get_journal_batch_after_offset_with_all_params(self, async @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_get_journal_batch_after_offset(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.get_journal_batch_after_offset( + async def test_raw_response_get_journal_batch_from_offset(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.get_journal_batch_from_offset( count=1, offset="offset", ) @@ -2455,8 +2586,8 @@ async def test_raw_response_get_journal_batch_after_offset(self, async_client: A @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_get_journal_batch_after_offset(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.get_journal_batch_after_offset( + async def test_streaming_response_get_journal_batch_from_offset(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.get_journal_batch_from_offset( count=1, offset="offset", ) as response: @@ -2470,9 +2601,9 @@ async def test_streaming_response_get_journal_batch_after_offset(self, async_cli @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_path_params_get_journal_batch_after_offset(self, async_client: AsyncHubSpot) -> None: + async def test_path_params_get_journal_batch_from_offset(self, async_client: AsyncHubSpot) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `offset` but received ''"): - await async_client.webhooks.with_raw_response.get_journal_batch_after_offset( + await async_client.webhooks.with_raw_response.get_journal_batch_from_offset( count=1, offset="", ) @@ -2519,65 +2650,39 @@ async def test_path_params_get_journal_status(self, async_client: AsyncHubSpot) "", ) + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - @pytest.mark.respx(base_url=base_url) - async def test_method_get_latest_journal(self, async_client: AsyncHubSpot, respx_mock: MockRouter) -> None: - respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( - return_value=httpx.Response(200, json={"foo": "bar"}) - ) - webhook = await async_client.webhooks.get_latest_journal() - assert webhook.is_closed - assert await webhook.json() == {"foo": "bar"} - assert cast(Any, webhook.is_closed) is True - assert isinstance(webhook, AsyncBinaryAPIResponse) - - @parametrize - @pytest.mark.respx(base_url=base_url) - async def test_method_get_latest_journal_with_all_params( - self, async_client: AsyncHubSpot, respx_mock: MockRouter - ) -> None: - respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( - return_value=httpx.Response(200, json={"foo": "bar"}) - ) - webhook = await async_client.webhooks.get_latest_journal( - install_portal_id=0, + async def test_method_get_journal_subscription(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_journal_subscription( + 0, ) - assert webhook.is_closed - assert await webhook.json() == {"foo": "bar"} - assert cast(Any, webhook.is_closed) is True - assert isinstance(webhook, AsyncBinaryAPIResponse) + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - @pytest.mark.respx(base_url=base_url) - async def test_raw_response_get_latest_journal(self, async_client: AsyncHubSpot, respx_mock: MockRouter) -> None: - respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( - return_value=httpx.Response(200, json={"foo": "bar"}) + async def test_raw_response_get_journal_subscription(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.get_journal_subscription( + 0, ) - webhook = await async_client.webhooks.with_raw_response.get_latest_journal() - - assert webhook.is_closed is True - assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" - assert await webhook.json() == {"foo": "bar"} - assert isinstance(webhook, AsyncBinaryAPIResponse) + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + webhook = await response.parse() + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - @pytest.mark.respx(base_url=base_url) - async def test_streaming_response_get_latest_journal( - self, async_client: AsyncHubSpot, respx_mock: MockRouter - ) -> None: - respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( - return_value=httpx.Response(200, json={"foo": "bar"}) - ) - async with async_client.webhooks.with_streaming_response.get_latest_journal() as webhook: - assert not webhook.is_closed - assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" + async def test_streaming_response_get_journal_subscription(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.get_journal_subscription( + 0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - assert await webhook.json() == {"foo": "bar"} - assert cast(Any, webhook.is_closed) is True - assert isinstance(webhook, AsyncStreamedBinaryAPIResponse) + webhook = await response.parse() + assert_matches_type(SubscriptionResponse1, webhook, path=["response"]) - assert cast(Any, webhook.is_closed) is True + assert cast(Any, response.is_closed) is True @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -2624,11 +2729,11 @@ async def test_streaming_response_get_latest_journal_batch(self, async_client: A @parametrize @pytest.mark.respx(base_url=base_url) - async def test_method_get_latest_local_journal(self, async_client: AsyncHubSpot, respx_mock: MockRouter) -> None: - respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + async def test_method_get_latest_journal_entry(self, async_client: AsyncHubSpot, respx_mock: MockRouter) -> None: + respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.get_latest_local_journal() + webhook = await async_client.webhooks.get_latest_journal_entry() assert webhook.is_closed assert await webhook.json() == {"foo": "bar"} assert cast(Any, webhook.is_closed) is True @@ -2636,13 +2741,13 @@ async def test_method_get_latest_local_journal(self, async_client: AsyncHubSpot, @parametrize @pytest.mark.respx(base_url=base_url) - async def test_method_get_latest_local_journal_with_all_params( + async def test_method_get_latest_journal_entry_with_all_params( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: - respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.get_latest_local_journal( + webhook = await async_client.webhooks.get_latest_journal_entry( install_portal_id=0, ) assert webhook.is_closed @@ -2652,14 +2757,14 @@ async def test_method_get_latest_local_journal_with_all_params( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_raw_response_get_latest_local_journal( + async def test_raw_response_get_latest_journal_entry( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: - respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.with_raw_response.get_latest_local_journal() + webhook = await async_client.webhooks.with_raw_response.get_latest_journal_entry() assert webhook.is_closed is True assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -2668,13 +2773,13 @@ async def test_raw_response_get_latest_local_journal( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_streaming_response_get_latest_local_journal( + async def test_streaming_response_get_latest_journal_entry( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: - respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + respx_mock.get("/webhooks-journal/journal/2026-03/latest").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - async with async_client.webhooks.with_streaming_response.get_latest_local_journal() as webhook: + async with async_client.webhooks.with_streaming_response.get_latest_journal_entry() as webhook: assert not webhook.is_closed assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" @@ -2727,18 +2832,82 @@ async def test_streaming_response_get_latest_local_journal_batch(self, async_cli assert cast(Any, response.is_closed) is True + @parametrize + @pytest.mark.respx(base_url=base_url) + async def test_method_get_latest_local_journal_entry( + self, async_client: AsyncHubSpot, respx_mock: MockRouter + ) -> None: + respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + return_value=httpx.Response(200, json={"foo": "bar"}) + ) + webhook = await async_client.webhooks.get_latest_local_journal_entry() + assert webhook.is_closed + assert await webhook.json() == {"foo": "bar"} + assert cast(Any, webhook.is_closed) is True + assert isinstance(webhook, AsyncBinaryAPIResponse) + + @parametrize + @pytest.mark.respx(base_url=base_url) + async def test_method_get_latest_local_journal_entry_with_all_params( + self, async_client: AsyncHubSpot, respx_mock: MockRouter + ) -> None: + respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + return_value=httpx.Response(200, json={"foo": "bar"}) + ) + webhook = await async_client.webhooks.get_latest_local_journal_entry( + install_portal_id=0, + ) + assert webhook.is_closed + assert await webhook.json() == {"foo": "bar"} + assert cast(Any, webhook.is_closed) is True + assert isinstance(webhook, AsyncBinaryAPIResponse) + + @parametrize + @pytest.mark.respx(base_url=base_url) + async def test_raw_response_get_latest_local_journal_entry( + self, async_client: AsyncHubSpot, respx_mock: MockRouter + ) -> None: + respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + return_value=httpx.Response(200, json={"foo": "bar"}) + ) + + webhook = await async_client.webhooks.with_raw_response.get_latest_local_journal_entry() + + assert webhook.is_closed is True + assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" + assert await webhook.json() == {"foo": "bar"} + assert isinstance(webhook, AsyncBinaryAPIResponse) + + @parametrize + @pytest.mark.respx(base_url=base_url) + async def test_streaming_response_get_latest_local_journal_entry( + self, async_client: AsyncHubSpot, respx_mock: MockRouter + ) -> None: + respx_mock.get("/webhooks-journal/journal-local/2026-03/latest").mock( + return_value=httpx.Response(200, json={"foo": "bar"}) + ) + async with async_client.webhooks.with_streaming_response.get_latest_local_journal_entry() as webhook: + assert not webhook.is_closed + assert webhook.http_request.headers.get("X-Stainless-Lang") == "python" + + assert await webhook.json() == {"foo": "bar"} + assert cast(Any, webhook.is_closed) is True + assert isinstance(webhook, AsyncStreamedBinaryAPIResponse) + + assert cast(Any, webhook.is_closed) is True + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_local_journal_batch(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_local_journal_batch( + async def test_method_get_local_journal_batch_by_request(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_local_journal_batch_by_request( inputs=["string"], ) assert_matches_type(BatchResponseJournalFetchResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_local_journal_batch_with_all_params(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_local_journal_batch( + async def test_method_get_local_journal_batch_by_request_with_all_params(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_local_journal_batch_by_request( inputs=["string"], install_portal_id=0, ) @@ -2746,8 +2915,8 @@ async def test_method_get_local_journal_batch_with_all_params(self, async_client @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_get_local_journal_batch(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.get_local_journal_batch( + async def test_raw_response_get_local_journal_batch_by_request(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.get_local_journal_batch_by_request( inputs=["string"], ) @@ -2758,8 +2927,8 @@ async def test_raw_response_get_local_journal_batch(self, async_client: AsyncHub @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_get_local_journal_batch(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.get_local_journal_batch( + async def test_streaming_response_get_local_journal_batch_by_request(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.get_local_journal_batch_by_request( inputs=["string"], ) as response: assert not response.is_closed @@ -2772,8 +2941,8 @@ async def test_streaming_response_get_local_journal_batch(self, async_client: As @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_local_journal_batch_after_offset(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_local_journal_batch_after_offset( + async def test_method_get_local_journal_batch_from_offset(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_local_journal_batch_from_offset( count=1, offset="offset", ) @@ -2781,10 +2950,8 @@ async def test_method_get_local_journal_batch_after_offset(self, async_client: A @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_local_journal_batch_after_offset_with_all_params( - self, async_client: AsyncHubSpot - ) -> None: - webhook = await async_client.webhooks.get_local_journal_batch_after_offset( + async def test_method_get_local_journal_batch_from_offset_with_all_params(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.get_local_journal_batch_from_offset( count=1, offset="offset", install_portal_id=0, @@ -2793,8 +2960,8 @@ async def test_method_get_local_journal_batch_after_offset_with_all_params( @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_get_local_journal_batch_after_offset(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.get_local_journal_batch_after_offset( + async def test_raw_response_get_local_journal_batch_from_offset(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.get_local_journal_batch_from_offset( count=1, offset="offset", ) @@ -2806,8 +2973,8 @@ async def test_raw_response_get_local_journal_batch_after_offset(self, async_cli @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_get_local_journal_batch_after_offset(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.get_local_journal_batch_after_offset( + async def test_streaming_response_get_local_journal_batch_from_offset(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.get_local_journal_batch_from_offset( count=1, offset="offset", ) as response: @@ -2821,9 +2988,9 @@ async def test_streaming_response_get_local_journal_batch_after_offset(self, asy @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_path_params_get_local_journal_batch_after_offset(self, async_client: AsyncHubSpot) -> None: + async def test_path_params_get_local_journal_batch_from_offset(self, async_client: AsyncHubSpot) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `offset` but received ''"): - await async_client.webhooks.with_raw_response.get_local_journal_batch_after_offset( + await async_client.webhooks.with_raw_response.get_local_journal_batch_from_offset( count=1, offset="", ) @@ -2872,13 +3039,11 @@ async def test_path_params_get_local_journal_status(self, async_client: AsyncHub @parametrize @pytest.mark.respx(base_url=base_url) - async def test_method_get_next_journal_after_offset( - self, async_client: AsyncHubSpot, respx_mock: MockRouter - ) -> None: + async def test_method_get_next_journal_entries(self, async_client: AsyncHubSpot, respx_mock: MockRouter) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.get_next_journal_after_offset( + webhook = await async_client.webhooks.get_next_journal_entries( offset="offset", ) assert webhook.is_closed @@ -2888,13 +3053,13 @@ async def test_method_get_next_journal_after_offset( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_method_get_next_journal_after_offset_with_all_params( + async def test_method_get_next_journal_entries_with_all_params( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.get_next_journal_after_offset( + webhook = await async_client.webhooks.get_next_journal_entries( offset="offset", install_portal_id=0, ) @@ -2905,14 +3070,14 @@ async def test_method_get_next_journal_after_offset_with_all_params( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_raw_response_get_next_journal_after_offset( + async def test_raw_response_get_next_journal_entries( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.with_raw_response.get_next_journal_after_offset( + webhook = await async_client.webhooks.with_raw_response.get_next_journal_entries( offset="offset", ) @@ -2923,13 +3088,13 @@ async def test_raw_response_get_next_journal_after_offset( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_streaming_response_get_next_journal_after_offset( + async def test_streaming_response_get_next_journal_entries( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - async with async_client.webhooks.with_streaming_response.get_next_journal_after_offset( + async with async_client.webhooks.with_streaming_response.get_next_journal_entries( offset="offset", ) as webhook: assert not webhook.is_closed @@ -2943,21 +3108,21 @@ async def test_streaming_response_get_next_journal_after_offset( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_path_params_get_next_journal_after_offset(self, async_client: AsyncHubSpot) -> None: + async def test_path_params_get_next_journal_entries(self, async_client: AsyncHubSpot) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `offset` but received ''"): - await async_client.webhooks.with_raw_response.get_next_journal_after_offset( + await async_client.webhooks.with_raw_response.get_next_journal_entries( offset="", ) @parametrize @pytest.mark.respx(base_url=base_url) - async def test_method_get_next_local_journal_after_offset( + async def test_method_get_next_local_journal_entries( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.get_next_local_journal_after_offset( + webhook = await async_client.webhooks.get_next_local_journal_entries( offset="offset", ) assert webhook.is_closed @@ -2967,13 +3132,13 @@ async def test_method_get_next_local_journal_after_offset( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_method_get_next_local_journal_after_offset_with_all_params( + async def test_method_get_next_local_journal_entries_with_all_params( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.get_next_local_journal_after_offset( + webhook = await async_client.webhooks.get_next_local_journal_entries( offset="offset", install_portal_id=0, ) @@ -2984,14 +3149,14 @@ async def test_method_get_next_local_journal_after_offset_with_all_params( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_raw_response_get_next_local_journal_after_offset( + async def test_raw_response_get_next_local_journal_entries( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - webhook = await async_client.webhooks.with_raw_response.get_next_local_journal_after_offset( + webhook = await async_client.webhooks.with_raw_response.get_next_local_journal_entries( offset="offset", ) @@ -3002,13 +3167,13 @@ async def test_raw_response_get_next_local_journal_after_offset( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_streaming_response_get_next_local_journal_after_offset( + async def test_streaming_response_get_next_local_journal_entries( self, async_client: AsyncHubSpot, respx_mock: MockRouter ) -> None: respx_mock.get("/webhooks-journal/journal-local/2026-03/offset/offset/next").mock( return_value=httpx.Response(200, json={"foo": "bar"}) ) - async with async_client.webhooks.with_streaming_response.get_next_local_journal_after_offset( + async with async_client.webhooks.with_streaming_response.get_next_local_journal_entries( offset="offset", ) as webhook: assert not webhook.is_closed @@ -3022,9 +3187,9 @@ async def test_streaming_response_get_next_local_journal_after_offset( @parametrize @pytest.mark.respx(base_url=base_url) - async def test_path_params_get_next_local_journal_after_offset(self, async_client: AsyncHubSpot) -> None: + async def test_path_params_get_next_local_journal_entries(self, async_client: AsyncHubSpot) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `offset` but received ''"): - await async_client.webhooks.with_raw_response.get_next_local_journal_after_offset( + await async_client.webhooks.with_raw_response.get_next_local_journal_entries( offset="", ) @@ -3062,43 +3227,6 @@ async def test_streaming_response_get_settings(self, async_client: AsyncHubSpot) assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - async def test_method_get_subscription(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_subscription( - subscription_id=0, - app_id=0, - ) - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) - - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - async def test_raw_response_get_subscription(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.get_subscription( - subscription_id=0, - app_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - webhook = await response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) - - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - async def test_streaming_response_get_subscription(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.get_subscription( - subscription_id=0, - app_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - webhook = await response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) - - assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_get_subscription_filter(self, async_client: AsyncHubSpot) -> None: @@ -3135,35 +3263,35 @@ async def test_streaming_response_get_subscription_filter(self, async_client: As @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_get_subscription_filters(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.get_subscription_filters( + async def test_method_list_event_subscriptions(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.list_event_subscriptions( 0, ) - assert_matches_type(WebhookGetSubscriptionFiltersResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_get_subscription_filters(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.get_subscription_filters( + async def test_raw_response_list_event_subscriptions(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.list_event_subscriptions( 0, ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(WebhookGetSubscriptionFiltersResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_get_subscription_filters(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.get_subscription_filters( + async def test_streaming_response_list_event_subscriptions(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.list_event_subscriptions( 0, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(WebhookGetSubscriptionFiltersResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) assert cast(Any, response.is_closed) is True @@ -3197,121 +3325,121 @@ async def test_streaming_response_list_journal_subscriptions(self, async_client: @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_list_subscriptions(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.list_subscriptions( + async def test_method_list_subscription_filters(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.list_subscription_filters( 0, ) - assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) + assert_matches_type(WebhookListSubscriptionFiltersResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_list_subscriptions(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.list_subscriptions( + async def test_raw_response_list_subscription_filters(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.list_subscription_filters( 0, ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) + assert_matches_type(WebhookListSubscriptionFiltersResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_list_subscriptions(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.list_subscriptions( + async def test_streaming_response_list_subscription_filters(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.list_subscription_filters( 0, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(SubscriptionListResponse, webhook, path=["response"]) + assert_matches_type(WebhookListSubscriptionFiltersResponse, webhook, path=["response"]) assert cast(Any, response.is_closed) is True @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_update_settings(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.update_settings( + async def test_method_update_event_subscription(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.update_event_subscription( + subscription_id=0, app_id=0, - target_url="targetUrl", - throttling={"max_concurrent_requests": 0}, ) - assert_matches_type(SettingsResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_update_settings(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.update_settings( + async def test_method_update_event_subscription_with_all_params(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.update_event_subscription( + subscription_id=0, + app_id=0, + active=True, + ) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_update_event_subscription(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.update_event_subscription( + subscription_id=0, app_id=0, - target_url="targetUrl", - throttling={"max_concurrent_requests": 0}, ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(SettingsResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_update_settings(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.update_settings( + async def test_streaming_response_update_event_subscription(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.update_event_subscription( + subscription_id=0, app_id=0, - target_url="targetUrl", - throttling={"max_concurrent_requests": 0}, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(SettingsResponse, webhook, path=["response"]) + assert_matches_type(SubscriptionResponse, webhook, path=["response"]) assert cast(Any, response.is_closed) is True @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_update_subscription(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.update_subscription( - subscription_id=0, - app_id=0, - ) - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) - - @pytest.mark.skip(reason="Mock server tests are disabled") - @parametrize - async def test_method_update_subscription_with_all_params(self, async_client: AsyncHubSpot) -> None: - webhook = await async_client.webhooks.update_subscription( - subscription_id=0, + async def test_method_update_settings(self, async_client: AsyncHubSpot) -> None: + webhook = await async_client.webhooks.update_settings( app_id=0, - active=True, + target_url="targetUrl", + throttling={"max_concurrent_requests": 0}, ) - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + assert_matches_type(SettingsResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_update_subscription(self, async_client: AsyncHubSpot) -> None: - response = await async_client.webhooks.with_raw_response.update_subscription( - subscription_id=0, + async def test_raw_response_update_settings(self, async_client: AsyncHubSpot) -> None: + response = await async_client.webhooks.with_raw_response.update_settings( app_id=0, + target_url="targetUrl", + throttling={"max_concurrent_requests": 0}, ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + assert_matches_type(SettingsResponse, webhook, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_update_subscription(self, async_client: AsyncHubSpot) -> None: - async with async_client.webhooks.with_streaming_response.update_subscription( - subscription_id=0, + async def test_streaming_response_update_settings(self, async_client: AsyncHubSpot) -> None: + async with async_client.webhooks.with_streaming_response.update_settings( app_id=0, + target_url="targetUrl", + throttling={"max_concurrent_requests": 0}, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" webhook = await response.parse() - assert_matches_type(SubscriptionResponse, webhook, path=["response"]) + assert_matches_type(SettingsResponse, webhook, path=["response"]) assert cast(Any, response.is_closed) is True From 26a21c4a27620cb9bf6b6afac32b10498ace9e93 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 13:18:59 +0000 Subject: [PATCH 6/6] release: 0.1.0-alpha.2 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- src/hubspot_sdk/_version.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index ba6c3483..f14b480a 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.1" + ".": "0.1.0-alpha.2" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 530ec042..673c927c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ # Changelog +## 0.1.0-alpha.2 (2026-04-15) + +Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/HubSpot/hubspot-sdk-python/compare/v0.1.0-alpha.1...v0.1.0-alpha.2) + +### Features + +* **api:** manual updates ([0da4fad](https://github.com/HubSpot/hubspot-sdk-python/commit/0da4fad7676006ac24fb405a50413c61b4dc484e)) + ## 0.1.0-alpha.1 (2026-04-13) diff --git a/pyproject.toml b/pyproject.toml index 4458c6d3..98c48835 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "hubspot-sdk" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" description = "The official Python library for the hubspot API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/hubspot_sdk/_version.py b/src/hubspot_sdk/_version.py index 424ccb20..5e665705 100644 --- a/src/hubspot_sdk/_version.py +++ b/src/hubspot_sdk/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "hubspot_sdk" -__version__ = "0.1.0-alpha.1" # x-release-please-version +__version__ = "0.1.0-alpha.2" # x-release-please-version