linq-python 0.44.0__tar.gz → 0.46.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- linq_python-0.46.0/.release-please-manifest.json +3 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/CHANGELOG.md +14 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/PKG-INFO +1 -1
- {linq_python-0.44.0 → linq_python-0.46.0}/pyproject.toml +1 -1
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_version.py +1 -1
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/messages/poll.py +14 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_event_v2.py +8 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/poll_delivered_webhook_event.py +8 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/poll_failed_webhook_event.py +7 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/poll_read_webhook_event.py +8 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/poll_received_webhook_event.py +9 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/poll_sent_webhook_event.py +8 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/poll_updated_webhook_event.py +9 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/poll_vote_added_webhook_event.py +9 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/poll_vote_removed_webhook_event.py +9 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_webhooks.py +2 -2
- {linq_python-0.44.0 → linq_python-0.46.0}/uv.lock +1 -1
- linq_python-0.44.0/.release-please-manifest.json +0 -3
- {linq_python-0.44.0 → linq_python-0.46.0}/.gitignore +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/CONTRIBUTING.md +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/LICENSE +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/README.md +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/SECURITY.md +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/api.md +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/bin/check-release-environment +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/bin/publish-pypi +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/examples/.keep +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/release-please-config.json +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/requirements-dev.lock +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_base_client.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_client.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_compat.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_constants.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_exceptions.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_files.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_models.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_qs.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_resource.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_streaming.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_types.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_compat.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_datetime_parse.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_json.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_logs.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_path.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_proxy.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_reflection.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_resources_proxy.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_streams.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_sync.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_transform.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_typing.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/_utils/_utils.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/lib/.keep +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/pagination.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/py.typed +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/attachments.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/available_number.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/blocked_handles.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/capability.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/chats/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/chats/background.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/chats/chats.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/chats/location.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/chats/messages.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/chats/participants.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/chats/polls.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/chats/typing.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/contact_card.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/experiences.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/messages/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/messages/messages.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/payment_handles.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/payment_providers.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/payment_requests.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/payments.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/phone_numbers.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/phonenumbers.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/webhook_events.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/webhook_subscriptions.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/resources/webhooks.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/attachment_create_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/attachment_create_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/attachment_retrieve_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/available_number_retrieve_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/available_number_retrieve_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/blocked_handle_block_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/blocked_handle_block_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/blocked_handle_entry.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/blocked_handle_list_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/blocked_handle_unblock_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/capability_check_RCS_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/capability_check_i_message_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_background_update_failed_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_background_updated_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_create_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_create_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_created_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_group_icon_update_failed_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_group_icon_updated_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_group_name_update_failed_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_group_name_updated_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_leave_chat_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_list_chats_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_send_voicememo_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_send_voicememo_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_typing_indicator_started_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_typing_indicator_stopped_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_update_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_update_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/background_set_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/get_chat_location_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/location_request_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/message_list_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/message_send_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/message_send_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/participant_add_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/participant_add_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/participant_remove_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/participant_remove_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/poll.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/poll_create_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/poll_envelope.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/sent_message.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/connection_created_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/connection_revoked_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/contact_card_create_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/contact_card_received_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/contact_card_retrieve_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/contact_card_retrieve_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/contact_card_update_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/experience_list_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/experience_retrieve_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/handle_check_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/link_part_param.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/location_sharing_started_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/location_sharing_stopped_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/media_part_param.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_add_reaction_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_add_reaction_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_content_param.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_create_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_create_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_delivered_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_edited_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_effect.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_effect_param.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_failed_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_list_messages_thread_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_read_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_received_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_sent_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_update_app_card_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_update_app_card_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_update_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_update_sticker_placement_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/message_update_sticker_placement_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/messages/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/messages/poll_add_options_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/messages/poll_vote_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/participant_added_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/participant_removed_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_authorized_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_canceled_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_create_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_credentials_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_declined_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_expired_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_handle_connection.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_handle_verify_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_provider.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_provider_connect_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_provider_connect_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_request.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_request_create_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_request_list_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_request_list_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/payment_succeeded_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/phone_number_list_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/phone_number_status_updated_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/phone_number_update_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/phone_number_update_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/phonenumber_list_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/poll_reaction_added_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reaction_added_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reaction_event_base.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reaction_removed_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reply_to.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reply_to_param.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reputation_action_item.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reputation_audit.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reputation_audit_started.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reputation_driver.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reputation_driver_key.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reputation_evidence.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reputation_opt_out_chat.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reputation_report.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/reputation_unhealthy_chat.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/schemas_media_part_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/schemas_message_effect.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/schemas_text_part_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/set_contact_card.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared/chat_handle.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared/link_part_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared/media_part_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared/reaction.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared/reaction_type.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared/service_type.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared/text_decoration.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared/text_part_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared_params/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared_params/reaction_type.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared_params/service_type.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/shared_params/text_decoration.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/supported_content_type.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/text_part_param.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/unwrap_webhook_event.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/webhook_event_list_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/webhook_event_type.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/webhook_subscription.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/webhook_subscription_create_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/webhook_subscription_create_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/webhook_subscription_list_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/webhook_subscription_update_params.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/chats/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/chats/test_background.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/chats/test_location.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/chats/test_messages.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/chats/test_participants.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/chats/test_polls.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/chats/test_typing.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/messages/__init__.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/messages/test_poll.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_attachments.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_available_number.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_blocked_handles.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_capability.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_chats.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_contact_card.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_experiences.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_messages.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_payment_handles.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_payment_providers.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_payment_requests.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_payments.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_phone_numbers.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_phonenumbers.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_webhook_events.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/api_resources/test_webhook_subscriptions.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/conftest.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/sample_file.txt +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_client.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_extract_files.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_files.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_models.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_qs.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_required_args.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_response.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_streaming.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_transform.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_utils/test_json.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_utils/test_path.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_utils/test_proxy.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/test_utils/test_typing.py +0 -0
- {linq_python-0.44.0 → linq_python-0.46.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.46.0](https://github.com/linq-team/linq-python/compare/v0.45.0...v0.46.0) (2026-09-06)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add zero_retention field to poll webhooks and update add options docs ([c40732c](https://github.com/linq-team/linq-python/commit/c40732c386dbbc6ea7631d5c967aca2f30d735e9))
|
|
9
|
+
|
|
10
|
+
## [0.45.0](https://github.com/linq-team/linq-python/compare/v0.44.0...v0.45.0) (2026-09-05)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* add zero_retention field to message responses ([1c47484](https://github.com/linq-team/linq-python/commit/1c474846e44ec3c830bac2acfe97ba8b0fec5650))
|
|
16
|
+
|
|
3
17
|
## [0.44.0](https://github.com/linq-team/linq-python/compare/v0.43.0...v0.44.0) (2026-09-05)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: linq-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.46.0
|
|
4
4
|
Summary: The official Python library for the linq-api-v3 API
|
|
5
5
|
Project-URL: Homepage, https://github.com/linq-team/linq-python
|
|
6
6
|
Project-URL: Repository, https://github.com/linq-team/linq-python
|
|
@@ -169,6 +169,13 @@ class PollResource(SyncAPIResource):
|
|
|
169
169
|
immutable** — you can append options but never edit or remove them (Apple
|
|
170
170
|
constraint). Returns the full poll.
|
|
171
171
|
|
|
172
|
+
**On a zero-day-retention line, `options` must include every existing option (in
|
|
173
|
+
the order they were originally created) followed by the new one(s)**, not just
|
|
174
|
+
the new option(s). Zero-day-retention polls never store option text, so this
|
|
175
|
+
request is the only place that text still exists — it's required to correctly
|
|
176
|
+
render the poll's existing options on the recipient's device when the update is
|
|
177
|
+
sent. Omitting an existing option returns `400`.
|
|
178
|
+
|
|
172
179
|
Args:
|
|
173
180
|
extra_headers: Send extra headers
|
|
174
181
|
|
|
@@ -383,6 +390,13 @@ class AsyncPollResource(AsyncAPIResource):
|
|
|
383
390
|
immutable** — you can append options but never edit or remove them (Apple
|
|
384
391
|
constraint). Returns the full poll.
|
|
385
392
|
|
|
393
|
+
**On a zero-day-retention line, `options` must include every existing option (in
|
|
394
|
+
the order they were originally created) followed by the new one(s)**, not just
|
|
395
|
+
the new option(s). Zero-day-retention polls never store option text, so this
|
|
396
|
+
request is the only place that text still exists — it's required to correctly
|
|
397
|
+
render the poll's existing options on the recipient's device when the update is
|
|
398
|
+
sent. Omitting an existing option returns `400`.
|
|
399
|
+
|
|
386
400
|
Args:
|
|
387
401
|
extra_headers: Send extra headers
|
|
388
402
|
|
|
@@ -272,3 +272,11 @@ class MessageEventV2(BaseModel):
|
|
|
272
272
|
|
|
273
273
|
sent_at: Optional[datetime] = None
|
|
274
274
|
"""When the message was sent. Null if not yet sent."""
|
|
275
|
+
|
|
276
|
+
zero_retention: Optional[bool] = None
|
|
277
|
+
"""True when this message was sent on a zero-day-retention line.
|
|
278
|
+
|
|
279
|
+
`parts` is always empty in that case — Linq never persists this message's
|
|
280
|
+
content, so there is nothing to include here, not even a count or type of what
|
|
281
|
+
was sent.
|
|
282
|
+
"""
|
|
@@ -83,6 +83,14 @@ class Data(BaseModel):
|
|
|
83
83
|
|
|
84
84
|
sent_at: Optional[datetime] = None
|
|
85
85
|
|
|
86
|
+
zero_retention: Optional[bool] = None
|
|
87
|
+
"""True when this poll was sent on a zero-day-retention line.
|
|
88
|
+
|
|
89
|
+
Every option's `text` is empty in that case — Linq never persists poll option
|
|
90
|
+
text, so there is nothing to include here. The real text was only ever shown
|
|
91
|
+
once, synchronously, in the API response when the poll was created or added to.
|
|
92
|
+
"""
|
|
93
|
+
|
|
86
94
|
|
|
87
95
|
class PollDeliveredWebhookEvent(BaseModel):
|
|
88
96
|
"""Complete webhook payload for poll.delivered events"""
|
|
@@ -98,6 +98,13 @@ class Data(BaseModel):
|
|
|
98
98
|
sender_handle: Optional[ChatHandle] = None
|
|
99
99
|
"""Null on failure (the send never landed)."""
|
|
100
100
|
|
|
101
|
+
zero_retention: Optional[bool] = None
|
|
102
|
+
"""True when this poll was sent on a zero-day-retention line.
|
|
103
|
+
|
|
104
|
+
`poll` is built from the same database read as poll.sent/delivered/read, so
|
|
105
|
+
every option's `text` is empty.
|
|
106
|
+
"""
|
|
107
|
+
|
|
101
108
|
|
|
102
109
|
class PollFailedWebhookEvent(BaseModel):
|
|
103
110
|
"""Complete webhook payload for poll.failed events"""
|
|
@@ -83,6 +83,14 @@ class Data(BaseModel):
|
|
|
83
83
|
|
|
84
84
|
sent_at: Optional[datetime] = None
|
|
85
85
|
|
|
86
|
+
zero_retention: Optional[bool] = None
|
|
87
|
+
"""True when this poll was sent on a zero-day-retention line.
|
|
88
|
+
|
|
89
|
+
Every option's `text` is empty in that case — Linq never persists poll option
|
|
90
|
+
text, so there is nothing to include here. The real text was only ever shown
|
|
91
|
+
once, synchronously, in the API response when the poll was created or added to.
|
|
92
|
+
"""
|
|
93
|
+
|
|
86
94
|
|
|
87
95
|
class PollReadWebhookEvent(BaseModel):
|
|
88
96
|
"""Complete webhook payload for poll.read events"""
|
|
@@ -78,6 +78,15 @@ class Data(BaseModel):
|
|
|
78
78
|
sender_handle: Optional[ChatHandle] = None
|
|
79
79
|
"""The line that created the poll (is_me=false for an inbound poll)."""
|
|
80
80
|
|
|
81
|
+
zero_retention: Optional[bool] = None
|
|
82
|
+
"""True when your line has zero-day-retention enabled.
|
|
83
|
+
|
|
84
|
+
Unlike other poll webhooks, option `text` here is still the real, unstripped
|
|
85
|
+
text as received — Linq never persists it in the database, but this webhook
|
|
86
|
+
fires from the live inbound event, not a database read, so this is the one place
|
|
87
|
+
it's shown.
|
|
88
|
+
"""
|
|
89
|
+
|
|
81
90
|
|
|
82
91
|
class PollReceivedWebhookEvent(BaseModel):
|
|
83
92
|
"""Complete webhook payload for poll.received events"""
|
|
@@ -83,6 +83,14 @@ class Data(BaseModel):
|
|
|
83
83
|
|
|
84
84
|
sent_at: Optional[datetime] = None
|
|
85
85
|
|
|
86
|
+
zero_retention: Optional[bool] = None
|
|
87
|
+
"""True when this poll was sent on a zero-day-retention line.
|
|
88
|
+
|
|
89
|
+
Every option's `text` is empty in that case — Linq never persists poll option
|
|
90
|
+
text, so there is nothing to include here. The real text was only ever shown
|
|
91
|
+
once, synchronously, in the API response when the poll was created or added to.
|
|
92
|
+
"""
|
|
93
|
+
|
|
86
94
|
|
|
87
95
|
class PollSentWebhookEvent(BaseModel):
|
|
88
96
|
"""Complete webhook payload for poll.sent events"""
|
|
@@ -70,6 +70,15 @@ class Data(BaseModel):
|
|
|
70
70
|
|
|
71
71
|
service: str
|
|
72
72
|
|
|
73
|
+
zero_retention: Optional[bool] = None
|
|
74
|
+
"""True when zero-day-retention applies to this update.
|
|
75
|
+
|
|
76
|
+
Behavior differs by `direction`: on an inbound update, `added_options[].text` is
|
|
77
|
+
the real text a participant just added; on an outbound update, it is empty — you
|
|
78
|
+
already saw the real text once, synchronously, in the API response when you made
|
|
79
|
+
the add, and this webhook is built from a database read, which never stored it.
|
|
80
|
+
"""
|
|
81
|
+
|
|
73
82
|
|
|
74
83
|
class PollUpdatedWebhookEvent(BaseModel):
|
|
75
84
|
"""Complete webhook payload for poll.updated events"""
|
|
@@ -38,6 +38,15 @@ class Data(BaseModel):
|
|
|
38
38
|
|
|
39
39
|
service: str
|
|
40
40
|
|
|
41
|
+
zero_retention: Optional[bool] = None
|
|
42
|
+
"""True when this poll is on a zero-day-retention line.
|
|
43
|
+
|
|
44
|
+
Votes are unaffected by zero-day-retention — a vote choice is always persisted
|
|
45
|
+
and delivered regardless — this flag is informational only, telling you why this
|
|
46
|
+
poll's other webhooks (poll.sent, poll.updated, etc.) may carry empty option
|
|
47
|
+
text.
|
|
48
|
+
"""
|
|
49
|
+
|
|
41
50
|
|
|
42
51
|
class PollVoteAddedWebhookEvent(BaseModel):
|
|
43
52
|
"""Complete webhook payload for poll.vote.added events"""
|
|
@@ -38,6 +38,15 @@ class Data(BaseModel):
|
|
|
38
38
|
|
|
39
39
|
service: str
|
|
40
40
|
|
|
41
|
+
zero_retention: Optional[bool] = None
|
|
42
|
+
"""True when this poll is on a zero-day-retention line.
|
|
43
|
+
|
|
44
|
+
Votes are unaffected by zero-day-retention — a vote choice is always persisted
|
|
45
|
+
and delivered regardless — this flag is informational only, telling you why this
|
|
46
|
+
poll's other webhooks (poll.sent, poll.updated, etc.) may carry empty option
|
|
47
|
+
text.
|
|
48
|
+
"""
|
|
49
|
+
|
|
41
50
|
|
|
42
51
|
class PollVoteRemovedWebhookEvent(BaseModel):
|
|
43
52
|
"""Complete webhook payload for poll.vote.removed events"""
|
|
@@ -31,7 +31,7 @@ class TestWebhooks:
|
|
|
31
31
|
|
|
32
32
|
client = client.with_options(webhook_secret=client_opt)
|
|
33
33
|
|
|
34
|
-
data = """{"api_version":"v3","created_at":"2025-11-23T17:30:00Z","data":{"id":"550e8400-e29b-41d4-a716-446655440001","chat":{"id":"550e8400-e29b-41d4-a716-446655440000","health_status":{"doc_url":"https://docs.linqapp.com/channel/imessage/guides/chats/chat-health#at-risk","status":"AT_RISK","updated_at":"2026-05-01T18:28:25Z"},"is_group":true,"owner_handle":{"id":"550e8400-e29b-41d4-a716-446655440000","handle":"+15551234567","joined_at":"2025-05-21T15:30:00.000-05:00","service":"iMessage","is_me":false,"left_at":"2019-12-27T18:11:19.117Z","status":"active"}},"direction":"outbound","parts":[{"type":"text","value":"Hello!","mention":"+14155551234","mention_range":[4,9],"mentions":[{"handle":"+14155550123","is_me":true,"range":[4,9]}],"text_decorations":[{"range":[0,5],"animation":"shake","style":"bold"}]}],"sender_handle":{"id":"550e8400-e29b-41d4-a716-446655440000","handle":"+15551234567","joined_at":"2025-05-21T15:30:00.000-05:00","service":"iMessage","is_me":false,"left_at":"2019-12-27T18:11:19.117Z","status":"active"},"service":"iMessage","delivered_at":"2026-01-30T20:49:20.352Z","effect":{"name":"gentle","type":"bubble"},"idempotency_key":"unique-key","preferred_service":"iMessage","read_at":null,"reconciled_at":"2026-01-30T22:05:00.000Z","reply_to":{"message_id":"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e","part_index":0},"sent_at":"2026-01-30T20:49:19.704Z"},"event_id":"550e8400-e29b-41d4-a716-446655440000","event_type":"message.sent","partner_id":"partner_abc123","trace_id":"abc123def456","webhook_version":"2025-01-01"}"""
|
|
34
|
+
data = """{"api_version":"v3","created_at":"2025-11-23T17:30:00Z","data":{"id":"550e8400-e29b-41d4-a716-446655440001","chat":{"id":"550e8400-e29b-41d4-a716-446655440000","health_status":{"doc_url":"https://docs.linqapp.com/channel/imessage/guides/chats/chat-health#at-risk","status":"AT_RISK","updated_at":"2026-05-01T18:28:25Z"},"is_group":true,"owner_handle":{"id":"550e8400-e29b-41d4-a716-446655440000","handle":"+15551234567","joined_at":"2025-05-21T15:30:00.000-05:00","service":"iMessage","is_me":false,"left_at":"2019-12-27T18:11:19.117Z","status":"active"}},"direction":"outbound","parts":[{"type":"text","value":"Hello!","mention":"+14155551234","mention_range":[4,9],"mentions":[{"handle":"+14155550123","is_me":true,"range":[4,9]}],"text_decorations":[{"range":[0,5],"animation":"shake","style":"bold"}]}],"sender_handle":{"id":"550e8400-e29b-41d4-a716-446655440000","handle":"+15551234567","joined_at":"2025-05-21T15:30:00.000-05:00","service":"iMessage","is_me":false,"left_at":"2019-12-27T18:11:19.117Z","status":"active"},"service":"iMessage","delivered_at":"2026-01-30T20:49:20.352Z","effect":{"name":"gentle","type":"bubble"},"idempotency_key":"unique-key","preferred_service":"iMessage","read_at":null,"reconciled_at":"2026-01-30T22:05:00.000Z","reply_to":{"message_id":"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e","part_index":0},"sent_at":"2026-01-30T20:49:19.704Z","zero_retention":false},"event_id":"550e8400-e29b-41d4-a716-446655440000","event_type":"message.sent","partner_id":"partner_abc123","trace_id":"abc123def456","webhook_version":"2025-01-01"}"""
|
|
35
35
|
msg_id = "1"
|
|
36
36
|
timestamp = datetime.now(tz=timezone.utc)
|
|
37
37
|
sig = hook.sign(msg_id=msg_id, timestamp=timestamp, data=data)
|
|
@@ -78,7 +78,7 @@ class TestAsyncWebhooks:
|
|
|
78
78
|
|
|
79
79
|
async_client = async_client.with_options(webhook_secret=client_opt)
|
|
80
80
|
|
|
81
|
-
data = """{"api_version":"v3","created_at":"2025-11-23T17:30:00Z","data":{"id":"550e8400-e29b-41d4-a716-446655440001","chat":{"id":"550e8400-e29b-41d4-a716-446655440000","health_status":{"doc_url":"https://docs.linqapp.com/channel/imessage/guides/chats/chat-health#at-risk","status":"AT_RISK","updated_at":"2026-05-01T18:28:25Z"},"is_group":true,"owner_handle":{"id":"550e8400-e29b-41d4-a716-446655440000","handle":"+15551234567","joined_at":"2025-05-21T15:30:00.000-05:00","service":"iMessage","is_me":false,"left_at":"2019-12-27T18:11:19.117Z","status":"active"}},"direction":"outbound","parts":[{"type":"text","value":"Hello!","mention":"+14155551234","mention_range":[4,9],"mentions":[{"handle":"+14155550123","is_me":true,"range":[4,9]}],"text_decorations":[{"range":[0,5],"animation":"shake","style":"bold"}]}],"sender_handle":{"id":"550e8400-e29b-41d4-a716-446655440000","handle":"+15551234567","joined_at":"2025-05-21T15:30:00.000-05:00","service":"iMessage","is_me":false,"left_at":"2019-12-27T18:11:19.117Z","status":"active"},"service":"iMessage","delivered_at":"2026-01-30T20:49:20.352Z","effect":{"name":"gentle","type":"bubble"},"idempotency_key":"unique-key","preferred_service":"iMessage","read_at":null,"reconciled_at":"2026-01-30T22:05:00.000Z","reply_to":{"message_id":"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e","part_index":0},"sent_at":"2026-01-30T20:49:19.704Z"},"event_id":"550e8400-e29b-41d4-a716-446655440000","event_type":"message.sent","partner_id":"partner_abc123","trace_id":"abc123def456","webhook_version":"2025-01-01"}"""
|
|
81
|
+
data = """{"api_version":"v3","created_at":"2025-11-23T17:30:00Z","data":{"id":"550e8400-e29b-41d4-a716-446655440001","chat":{"id":"550e8400-e29b-41d4-a716-446655440000","health_status":{"doc_url":"https://docs.linqapp.com/channel/imessage/guides/chats/chat-health#at-risk","status":"AT_RISK","updated_at":"2026-05-01T18:28:25Z"},"is_group":true,"owner_handle":{"id":"550e8400-e29b-41d4-a716-446655440000","handle":"+15551234567","joined_at":"2025-05-21T15:30:00.000-05:00","service":"iMessage","is_me":false,"left_at":"2019-12-27T18:11:19.117Z","status":"active"}},"direction":"outbound","parts":[{"type":"text","value":"Hello!","mention":"+14155551234","mention_range":[4,9],"mentions":[{"handle":"+14155550123","is_me":true,"range":[4,9]}],"text_decorations":[{"range":[0,5],"animation":"shake","style":"bold"}]}],"sender_handle":{"id":"550e8400-e29b-41d4-a716-446655440000","handle":"+15551234567","joined_at":"2025-05-21T15:30:00.000-05:00","service":"iMessage","is_me":false,"left_at":"2019-12-27T18:11:19.117Z","status":"active"},"service":"iMessage","delivered_at":"2026-01-30T20:49:20.352Z","effect":{"name":"gentle","type":"bubble"},"idempotency_key":"unique-key","preferred_service":"iMessage","read_at":null,"reconciled_at":"2026-01-30T22:05:00.000Z","reply_to":{"message_id":"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e","part_index":0},"sent_at":"2026-01-30T20:49:19.704Z","zero_retention":false},"event_id":"550e8400-e29b-41d4-a716-446655440000","event_type":"message.sent","partner_id":"partner_abc123","trace_id":"abc123def456","webhook_version":"2025-01-01"}"""
|
|
82
82
|
msg_id = "1"
|
|
83
83
|
timestamp = datetime.now(tz=timezone.utc)
|
|
84
84
|
sig = hook.sign(msg_id=msg_id, timestamp=timestamp, data=data)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/available_number_retrieve_params.py
RENAMED
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/available_number_retrieve_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/capability_check_i_message_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_background_updated_webhook_event.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_group_icon_updated_webhook_event.py
RENAMED
|
File without changes
|
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chat_group_name_updated_webhook_event.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/get_chat_location_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/chats/participant_remove_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/connection_created_webhook_event.py
RENAMED
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/connection_revoked_webhook_event.py
RENAMED
|
File without changes
|
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/contact_card_received_webhook_event.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{linq_python-0.44.0 → linq_python-0.46.0}/src/linq/types/location_sharing_started_webhook_event.py
RENAMED
|
File without changes
|