linq-python 0.2.5__tar.gz → 0.4.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.4.0/.release-please-manifest.json +3 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/CHANGELOG.md +26 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/PKG-INFO +1 -1
- {linq_python-0.2.5 → linq_python-0.4.0}/pyproject.toml +1 -1
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_version.py +1 -1
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/chats/chats.py +22 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat.py +14 -1
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_create_response.py +14 -1
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/phone_number_status_updated_webhook_event.py +2 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/webhook_event_type.py +2 -0
- linq_python-0.2.5/.release-please-manifest.json +0 -3
- {linq_python-0.2.5 → linq_python-0.4.0}/.gitignore +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/CONTRIBUTING.md +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/LICENSE +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/README.md +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/SECURITY.md +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/api.md +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/bin/check-release-environment +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/bin/publish-pypi +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/examples/.keep +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/release-please-config.json +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/requirements-dev.lock +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/__init__.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_base_client.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_client.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_compat.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_constants.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_exceptions.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_files.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_models.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_qs.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_resource.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_streaming.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_types.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/__init__.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_compat.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_datetime_parse.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_json.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_logs.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_path.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_proxy.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_reflection.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_resources_proxy.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_streams.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_sync.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_transform.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_typing.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/_utils/_utils.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/lib/.keep +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/pagination.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/py.typed +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/__init__.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/attachments.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/capability.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/chats/__init__.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/chats/messages.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/chats/participants.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/chats/typing.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/contact_card.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/messages.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/phone_numbers.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/phonenumbers.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/webhook_events.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/webhook_subscriptions.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/resources/webhooks.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/__init__.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/attachment_create_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/attachment_create_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/attachment_retrieve_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/capability_check_RCS_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/capability_check_i_message_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_create_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_created_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_group_icon_update_failed_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_group_icon_updated_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_group_name_update_failed_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_group_name_updated_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_leave_chat_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_list_chats_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_send_voicememo_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_send_voicememo_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_typing_indicator_started_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_typing_indicator_stopped_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_update_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chat_update_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chats/__init__.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chats/message_list_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chats/message_send_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chats/message_send_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chats/participant_add_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chats/participant_add_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chats/participant_remove_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chats/participant_remove_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/chats/sent_message.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/contact_card_create_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/contact_card_retrieve_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/contact_card_retrieve_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/contact_card_update_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/events_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/handle_check_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/link_part_param.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/media_part_param.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_add_reaction_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_add_reaction_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_content_param.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_delivered_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_edited_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_effect.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_effect_param.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_event_v2.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_failed_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_list_messages_thread_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_read_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_received_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_sent_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/message_update_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/participant_added_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/participant_removed_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/phone_number_list_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/phonenumber_list_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/reaction_added_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/reaction_event_base.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/reaction_removed_webhook_event.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/reply_to.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/reply_to_param.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/schemas_media_part_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/schemas_message_effect.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/schemas_text_part_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/set_contact_card.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared/__init__.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared/chat_handle.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared/link_part_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared/media_part_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared/reaction.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared/reaction_type.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared/service_type.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared/text_decoration.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared/text_part_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared_params/__init__.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared_params/reaction_type.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared_params/service_type.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/shared_params/text_decoration.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/supported_content_type.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/text_part_param.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/webhook_event_list_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/webhook_subscription.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/webhook_subscription_create_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/webhook_subscription_create_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/webhook_subscription_list_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/webhook_subscription_update_params.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/src/linq_api_v3/lib/.keep +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/__init__.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/__init__.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/chats/__init__.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/chats/test_messages.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/chats/test_participants.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/chats/test_typing.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/test_attachments.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/test_capability.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/test_chats.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/test_contact_card.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/test_messages.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/test_phone_numbers.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/test_phonenumbers.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/test_webhook_events.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/test_webhook_subscriptions.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/api_resources/test_webhooks.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/conftest.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/sample_file.txt +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_client.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_extract_files.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_files.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_models.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_qs.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_required_args.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_response.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_streaming.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_transform.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_utils/test_json.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_utils/test_path.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_utils/test_proxy.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/test_utils/test_typing.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/tests/utils.py +0 -0
- {linq_python-0.2.5 → linq_python-0.4.0}/uv.lock +0 -0
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.0 (2026-04-24)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.3.0...v0.4.0](https://github.com/linq-team/linq-python/compare/v0.3.0...v0.4.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* make compliance webhooks (message.opt_out/opt_in) GA ([1a5b0e6](https://github.com/linq-team/linq-python/commit/1a5b0e6d75f47b67cb2447e180712d334f7f06d0))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Documentation
|
|
13
|
+
|
|
14
|
+
* **api:** add first outbound message link restriction note to POST /v3/chats ([f44e698](https://github.com/linq-team/linq-python/commit/f44e6989ce805821306fb22c62a38c0f251c2846))
|
|
15
|
+
|
|
16
|
+
## 0.3.0 (2026-04-23)
|
|
17
|
+
|
|
18
|
+
Full Changelog: [v0.2.5...v0.3.0](https://github.com/linq-team/linq-python/compare/v0.2.5...v0.3.0)
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **api:** expose health_score on chats (BETA) ([b7d22d6](https://github.com/linq-team/linq-python/commit/b7d22d642e1192a77dd695c178eee322357de024))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Chores
|
|
26
|
+
|
|
27
|
+
* **internal:** more robust bootstrap script ([b504bb9](https://github.com/linq-team/linq-python/commit/b504bb9f84501d3e20fe3654a67e739fa1986e77))
|
|
28
|
+
|
|
3
29
|
## 0.2.5 (2026-04-20)
|
|
4
30
|
|
|
5
31
|
Full Changelog: [v0.2.4...v0.2.5](https://github.com/linq-team/linq-python/compare/v0.2.4...v0.2.5)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: linq-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.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
|
|
@@ -199,6 +199,17 @@ class ChatsResource(SyncAPIResource):
|
|
|
199
199
|
must not overlap with other animations or styles. Text decorations only render
|
|
200
200
|
for iMessage recipients. For SMS/RCS, text decorations are not applied.
|
|
201
201
|
|
|
202
|
+
## First-Message Link Restriction
|
|
203
|
+
|
|
204
|
+
To protect sender deliverability, the **first outbound message** of a new chat
|
|
205
|
+
cannot be a link. The request is rejected with `400` (error code `1005`) when:
|
|
206
|
+
|
|
207
|
+
- The message contains a `link` part (explicit rich-preview link), or
|
|
208
|
+
- Any `text` part contains a URL.
|
|
209
|
+
|
|
210
|
+
This rule applies only to `POST /v3/chats`. Follow-up messages on an existing
|
|
211
|
+
chat (`POST /v3/chats/{chatId}/messages`) are not subject to this restriction.
|
|
212
|
+
|
|
202
213
|
Args:
|
|
203
214
|
from_: Sender phone number in E.164 format. Must be a phone number that the
|
|
204
215
|
authenticated partner has permission to send from.
|
|
@@ -727,6 +738,17 @@ class AsyncChatsResource(AsyncAPIResource):
|
|
|
727
738
|
must not overlap with other animations or styles. Text decorations only render
|
|
728
739
|
for iMessage recipients. For SMS/RCS, text decorations are not applied.
|
|
729
740
|
|
|
741
|
+
## First-Message Link Restriction
|
|
742
|
+
|
|
743
|
+
To protect sender deliverability, the **first outbound message** of a new chat
|
|
744
|
+
cannot be a link. The request is rejected with `400` (error code `1005`) when:
|
|
745
|
+
|
|
746
|
+
- The message contains a `link` part (explicit rich-preview link), or
|
|
747
|
+
- Any `text` part contains a URL.
|
|
748
|
+
|
|
749
|
+
This rule applies only to `POST /v3/chats`. Follow-up messages on an existing
|
|
750
|
+
chat (`POST /v3/chats/{chatId}/messages`) are not subject to this restriction.
|
|
751
|
+
|
|
730
752
|
Args:
|
|
731
753
|
from_: Sender phone number in E.164 format. Must be a phone number that the
|
|
732
754
|
authenticated partner has permission to send from.
|
|
@@ -7,7 +7,17 @@ from .._models import BaseModel
|
|
|
7
7
|
from .shared.chat_handle import ChatHandle
|
|
8
8
|
from .shared.service_type import ServiceType
|
|
9
9
|
|
|
10
|
-
__all__ = ["Chat"]
|
|
10
|
+
__all__ = ["Chat", "HealthScore"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class HealthScore(BaseModel):
|
|
14
|
+
"""**[BETA]** Health assessment for a chat. Higher `score` means a healthier chat."""
|
|
15
|
+
|
|
16
|
+
reason: str
|
|
17
|
+
"""Short summary of what's affecting the score. Empty when the score is 100."""
|
|
18
|
+
|
|
19
|
+
score: int
|
|
20
|
+
"""Health score from 0 to 100. Higher is healthier."""
|
|
11
21
|
|
|
12
22
|
|
|
13
23
|
class Chat(BaseModel):
|
|
@@ -40,5 +50,8 @@ class Chat(BaseModel):
|
|
|
40
50
|
updated_at: datetime
|
|
41
51
|
"""When the chat was last updated"""
|
|
42
52
|
|
|
53
|
+
health_score: Optional[HealthScore] = None
|
|
54
|
+
"""**[BETA]** Health assessment for a chat. Higher `score` means a healthier chat."""
|
|
55
|
+
|
|
43
56
|
service: Optional[ServiceType] = None
|
|
44
57
|
"""Messaging service type"""
|
|
@@ -7,7 +7,17 @@ from .chats.sent_message import SentMessage
|
|
|
7
7
|
from .shared.chat_handle import ChatHandle
|
|
8
8
|
from .shared.service_type import ServiceType
|
|
9
9
|
|
|
10
|
-
__all__ = ["ChatCreateResponse", "Chat"]
|
|
10
|
+
__all__ = ["ChatCreateResponse", "Chat", "ChatHealthScore"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ChatHealthScore(BaseModel):
|
|
14
|
+
"""**[BETA]** Health assessment for a chat. Higher `score` means a healthier chat."""
|
|
15
|
+
|
|
16
|
+
reason: str
|
|
17
|
+
"""Short summary of what's affecting the score. Empty when the score is 100."""
|
|
18
|
+
|
|
19
|
+
score: int
|
|
20
|
+
"""Health score from 0 to 100. Higher is healthier."""
|
|
11
21
|
|
|
12
22
|
|
|
13
23
|
class Chat(BaseModel):
|
|
@@ -37,6 +47,9 @@ class Chat(BaseModel):
|
|
|
37
47
|
service: ServiceType
|
|
38
48
|
"""Messaging service type"""
|
|
39
49
|
|
|
50
|
+
health_score: Optional[ChatHealthScore] = None
|
|
51
|
+
"""**[BETA]** Health assessment for a chat. Higher `score` means a healthier chat."""
|
|
52
|
+
|
|
40
53
|
|
|
41
54
|
class ChatCreateResponse(BaseModel):
|
|
42
55
|
"""Response for creating a new chat with an initial message"""
|
|
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.2.5 → linq_python-0.4.0}/src/linq/types/chat_group_icon_updated_webhook_event.py
RENAMED
|
File without changes
|
|
File without changes
|
{linq_python-0.2.5 → linq_python-0.4.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
|
|
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.2.5 → linq_python-0.4.0}/src/linq/types/message_list_messages_thread_params.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
|
|
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.2.5 → linq_python-0.4.0}/src/linq/types/webhook_subscription_create_params.py
RENAMED
|
File without changes
|
{linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/webhook_subscription_create_response.py
RENAMED
|
File without changes
|
{linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/webhook_subscription_list_response.py
RENAMED
|
File without changes
|
{linq_python-0.2.5 → linq_python-0.4.0}/src/linq/types/webhook_subscription_update_params.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
|
|
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
|