linq-python 0.3.0__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.
Files changed (187) hide show
  1. linq_python-0.4.0/.release-please-manifest.json +3 -0
  2. {linq_python-0.3.0 → linq_python-0.4.0}/CHANGELOG.md +13 -0
  3. {linq_python-0.3.0 → linq_python-0.4.0}/PKG-INFO +1 -1
  4. {linq_python-0.3.0 → linq_python-0.4.0}/pyproject.toml +1 -1
  5. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_version.py +1 -1
  6. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/chats/chats.py +22 -0
  7. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/phone_number_status_updated_webhook_event.py +2 -0
  8. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/webhook_event_type.py +2 -0
  9. linq_python-0.3.0/.release-please-manifest.json +0 -3
  10. {linq_python-0.3.0 → linq_python-0.4.0}/.gitignore +0 -0
  11. {linq_python-0.3.0 → linq_python-0.4.0}/CONTRIBUTING.md +0 -0
  12. {linq_python-0.3.0 → linq_python-0.4.0}/LICENSE +0 -0
  13. {linq_python-0.3.0 → linq_python-0.4.0}/README.md +0 -0
  14. {linq_python-0.3.0 → linq_python-0.4.0}/SECURITY.md +0 -0
  15. {linq_python-0.3.0 → linq_python-0.4.0}/api.md +0 -0
  16. {linq_python-0.3.0 → linq_python-0.4.0}/bin/check-release-environment +0 -0
  17. {linq_python-0.3.0 → linq_python-0.4.0}/bin/publish-pypi +0 -0
  18. {linq_python-0.3.0 → linq_python-0.4.0}/examples/.keep +0 -0
  19. {linq_python-0.3.0 → linq_python-0.4.0}/release-please-config.json +0 -0
  20. {linq_python-0.3.0 → linq_python-0.4.0}/requirements-dev.lock +0 -0
  21. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/__init__.py +0 -0
  22. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_base_client.py +0 -0
  23. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_client.py +0 -0
  24. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_compat.py +0 -0
  25. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_constants.py +0 -0
  26. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_exceptions.py +0 -0
  27. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_files.py +0 -0
  28. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_models.py +0 -0
  29. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_qs.py +0 -0
  30. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_resource.py +0 -0
  31. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_response.py +0 -0
  32. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_streaming.py +0 -0
  33. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_types.py +0 -0
  34. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/__init__.py +0 -0
  35. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_compat.py +0 -0
  36. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_datetime_parse.py +0 -0
  37. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_json.py +0 -0
  38. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_logs.py +0 -0
  39. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_path.py +0 -0
  40. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_proxy.py +0 -0
  41. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_reflection.py +0 -0
  42. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_resources_proxy.py +0 -0
  43. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_streams.py +0 -0
  44. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_sync.py +0 -0
  45. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_transform.py +0 -0
  46. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_typing.py +0 -0
  47. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/_utils/_utils.py +0 -0
  48. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/lib/.keep +0 -0
  49. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/pagination.py +0 -0
  50. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/py.typed +0 -0
  51. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/__init__.py +0 -0
  52. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/attachments.py +0 -0
  53. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/capability.py +0 -0
  54. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/chats/__init__.py +0 -0
  55. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/chats/messages.py +0 -0
  56. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/chats/participants.py +0 -0
  57. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/chats/typing.py +0 -0
  58. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/contact_card.py +0 -0
  59. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/messages.py +0 -0
  60. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/phone_numbers.py +0 -0
  61. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/phonenumbers.py +0 -0
  62. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/webhook_events.py +0 -0
  63. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/webhook_subscriptions.py +0 -0
  64. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/resources/webhooks.py +0 -0
  65. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/__init__.py +0 -0
  66. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/attachment_create_params.py +0 -0
  67. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/attachment_create_response.py +0 -0
  68. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/attachment_retrieve_response.py +0 -0
  69. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/capability_check_RCS_params.py +0 -0
  70. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/capability_check_i_message_params.py +0 -0
  71. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat.py +0 -0
  72. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_create_params.py +0 -0
  73. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_create_response.py +0 -0
  74. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_created_webhook_event.py +0 -0
  75. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_group_icon_update_failed_webhook_event.py +0 -0
  76. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_group_icon_updated_webhook_event.py +0 -0
  77. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_group_name_update_failed_webhook_event.py +0 -0
  78. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_group_name_updated_webhook_event.py +0 -0
  79. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_leave_chat_response.py +0 -0
  80. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_list_chats_params.py +0 -0
  81. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_send_voicememo_params.py +0 -0
  82. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_send_voicememo_response.py +0 -0
  83. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_typing_indicator_started_webhook_event.py +0 -0
  84. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_typing_indicator_stopped_webhook_event.py +0 -0
  85. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_update_params.py +0 -0
  86. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chat_update_response.py +0 -0
  87. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chats/__init__.py +0 -0
  88. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chats/message_list_params.py +0 -0
  89. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chats/message_send_params.py +0 -0
  90. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chats/message_send_response.py +0 -0
  91. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chats/participant_add_params.py +0 -0
  92. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chats/participant_add_response.py +0 -0
  93. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chats/participant_remove_params.py +0 -0
  94. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chats/participant_remove_response.py +0 -0
  95. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/chats/sent_message.py +0 -0
  96. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/contact_card_create_params.py +0 -0
  97. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/contact_card_retrieve_params.py +0 -0
  98. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/contact_card_retrieve_response.py +0 -0
  99. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/contact_card_update_params.py +0 -0
  100. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/events_webhook_event.py +0 -0
  101. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/handle_check_response.py +0 -0
  102. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/link_part_param.py +0 -0
  103. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/media_part_param.py +0 -0
  104. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message.py +0 -0
  105. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_add_reaction_params.py +0 -0
  106. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_add_reaction_response.py +0 -0
  107. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_content_param.py +0 -0
  108. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_delivered_webhook_event.py +0 -0
  109. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_edited_webhook_event.py +0 -0
  110. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_effect.py +0 -0
  111. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_effect_param.py +0 -0
  112. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_event_v2.py +0 -0
  113. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_failed_webhook_event.py +0 -0
  114. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_list_messages_thread_params.py +0 -0
  115. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_read_webhook_event.py +0 -0
  116. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_received_webhook_event.py +0 -0
  117. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_sent_webhook_event.py +0 -0
  118. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/message_update_params.py +0 -0
  119. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/participant_added_webhook_event.py +0 -0
  120. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/participant_removed_webhook_event.py +0 -0
  121. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/phone_number_list_response.py +0 -0
  122. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/phonenumber_list_response.py +0 -0
  123. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/reaction_added_webhook_event.py +0 -0
  124. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/reaction_event_base.py +0 -0
  125. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/reaction_removed_webhook_event.py +0 -0
  126. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/reply_to.py +0 -0
  127. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/reply_to_param.py +0 -0
  128. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/schemas_media_part_response.py +0 -0
  129. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/schemas_message_effect.py +0 -0
  130. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/schemas_text_part_response.py +0 -0
  131. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/set_contact_card.py +0 -0
  132. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared/__init__.py +0 -0
  133. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared/chat_handle.py +0 -0
  134. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared/link_part_response.py +0 -0
  135. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared/media_part_response.py +0 -0
  136. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared/reaction.py +0 -0
  137. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared/reaction_type.py +0 -0
  138. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared/service_type.py +0 -0
  139. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared/text_decoration.py +0 -0
  140. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared/text_part_response.py +0 -0
  141. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared_params/__init__.py +0 -0
  142. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared_params/reaction_type.py +0 -0
  143. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared_params/service_type.py +0 -0
  144. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/shared_params/text_decoration.py +0 -0
  145. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/supported_content_type.py +0 -0
  146. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/text_part_param.py +0 -0
  147. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/webhook_event_list_response.py +0 -0
  148. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/webhook_subscription.py +0 -0
  149. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/webhook_subscription_create_params.py +0 -0
  150. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/webhook_subscription_create_response.py +0 -0
  151. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/webhook_subscription_list_response.py +0 -0
  152. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq/types/webhook_subscription_update_params.py +0 -0
  153. {linq_python-0.3.0 → linq_python-0.4.0}/src/linq_api_v3/lib/.keep +0 -0
  154. {linq_python-0.3.0 → linq_python-0.4.0}/tests/__init__.py +0 -0
  155. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/__init__.py +0 -0
  156. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/chats/__init__.py +0 -0
  157. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/chats/test_messages.py +0 -0
  158. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/chats/test_participants.py +0 -0
  159. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/chats/test_typing.py +0 -0
  160. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/test_attachments.py +0 -0
  161. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/test_capability.py +0 -0
  162. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/test_chats.py +0 -0
  163. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/test_contact_card.py +0 -0
  164. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/test_messages.py +0 -0
  165. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/test_phone_numbers.py +0 -0
  166. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/test_phonenumbers.py +0 -0
  167. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/test_webhook_events.py +0 -0
  168. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/test_webhook_subscriptions.py +0 -0
  169. {linq_python-0.3.0 → linq_python-0.4.0}/tests/api_resources/test_webhooks.py +0 -0
  170. {linq_python-0.3.0 → linq_python-0.4.0}/tests/conftest.py +0 -0
  171. {linq_python-0.3.0 → linq_python-0.4.0}/tests/sample_file.txt +0 -0
  172. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_client.py +0 -0
  173. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_extract_files.py +0 -0
  174. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_files.py +0 -0
  175. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_models.py +0 -0
  176. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_qs.py +0 -0
  177. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_required_args.py +0 -0
  178. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_response.py +0 -0
  179. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_streaming.py +0 -0
  180. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_transform.py +0 -0
  181. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_utils/test_datetime_parse.py +0 -0
  182. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_utils/test_json.py +0 -0
  183. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_utils/test_path.py +0 -0
  184. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_utils/test_proxy.py +0 -0
  185. {linq_python-0.3.0 → linq_python-0.4.0}/tests/test_utils/test_typing.py +0 -0
  186. {linq_python-0.3.0 → linq_python-0.4.0}/tests/utils.py +0 -0
  187. {linq_python-0.3.0 → linq_python-0.4.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.4.0"
3
+ }
@@ -1,5 +1,18 @@
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
+
3
16
  ## 0.3.0 (2026-04-23)
4
17
 
5
18
  Full Changelog: [v0.2.5...v0.3.0](https://github.com/linq-team/linq-python/compare/v0.2.5...v0.3.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: linq-python
3
- Version: 0.3.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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "linq-python"
3
- version = "0.3.0"
3
+ version = "0.4.0"
4
4
  description = "The official Python library for the linq-api-v3 API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "linq"
4
- __version__ = "0.3.0" # x-release-please-version
4
+ __version__ = "0.4.0" # x-release-please-version
@@ -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.
@@ -46,6 +46,8 @@ class PhoneNumberStatusUpdatedWebhookEvent(BaseModel):
46
46
  "message.delivered",
47
47
  "message.failed",
48
48
  "message.edited",
49
+ "message.opt_out",
50
+ "message.opt_in",
49
51
  "reaction.added",
50
52
  "reaction.removed",
51
53
  "participant.added",
@@ -11,6 +11,8 @@ WebhookEventType: TypeAlias = Literal[
11
11
  "message.delivered",
12
12
  "message.failed",
13
13
  "message.edited",
14
+ "message.opt_out",
15
+ "message.opt_in",
14
16
  "reaction.added",
15
17
  "reaction.removed",
16
18
  "participant.added",
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.3.0"
3
- }
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