linq-python 0.37.0__tar.gz → 0.38.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 (268) hide show
  1. linq_python-0.38.0/.release-please-manifest.json +3 -0
  2. {linq_python-0.37.0 → linq_python-0.38.0}/CHANGELOG.md +14 -0
  3. {linq_python-0.37.0 → linq_python-0.38.0}/PKG-INFO +1 -1
  4. {linq_python-0.37.0 → linq_python-0.38.0}/pyproject.toml +1 -1
  5. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_client.py +6 -0
  6. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_version.py +1 -1
  7. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/chats/chats.py +12 -0
  8. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/chats/messages.py +2 -0
  9. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/chats/polls.py +2 -0
  10. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/messages/messages.py +8 -0
  11. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/messages/poll.py +2 -0
  12. linq_python-0.38.0/src/linq/types/schemas_text_part_response.py +76 -0
  13. linq_python-0.38.0/src/linq/types/shared/text_part_response.py +80 -0
  14. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/text_part_param.py +1 -1
  15. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_webhooks.py +2 -2
  16. {linq_python-0.37.0 → linq_python-0.38.0}/uv.lock +1 -1
  17. linq_python-0.37.0/.release-please-manifest.json +0 -3
  18. linq_python-0.37.0/src/linq/types/schemas_text_part_response.py +0 -36
  19. linq_python-0.37.0/src/linq/types/shared/text_part_response.py +0 -40
  20. {linq_python-0.37.0 → linq_python-0.38.0}/.gitignore +0 -0
  21. {linq_python-0.37.0 → linq_python-0.38.0}/CONTRIBUTING.md +0 -0
  22. {linq_python-0.37.0 → linq_python-0.38.0}/LICENSE +0 -0
  23. {linq_python-0.37.0 → linq_python-0.38.0}/README.md +0 -0
  24. {linq_python-0.37.0 → linq_python-0.38.0}/SECURITY.md +0 -0
  25. {linq_python-0.37.0 → linq_python-0.38.0}/api.md +0 -0
  26. {linq_python-0.37.0 → linq_python-0.38.0}/bin/check-release-environment +0 -0
  27. {linq_python-0.37.0 → linq_python-0.38.0}/bin/publish-pypi +0 -0
  28. {linq_python-0.37.0 → linq_python-0.38.0}/examples/.keep +0 -0
  29. {linq_python-0.37.0 → linq_python-0.38.0}/release-please-config.json +0 -0
  30. {linq_python-0.37.0 → linq_python-0.38.0}/requirements-dev.lock +0 -0
  31. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/__init__.py +0 -0
  32. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_base_client.py +0 -0
  33. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_compat.py +0 -0
  34. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_constants.py +0 -0
  35. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_exceptions.py +0 -0
  36. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_files.py +0 -0
  37. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_models.py +0 -0
  38. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_qs.py +0 -0
  39. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_resource.py +0 -0
  40. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_response.py +0 -0
  41. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_streaming.py +0 -0
  42. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_types.py +0 -0
  43. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/__init__.py +0 -0
  44. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_compat.py +0 -0
  45. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_datetime_parse.py +0 -0
  46. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_json.py +0 -0
  47. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_logs.py +0 -0
  48. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_path.py +0 -0
  49. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_proxy.py +0 -0
  50. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_reflection.py +0 -0
  51. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_resources_proxy.py +0 -0
  52. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_streams.py +0 -0
  53. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_sync.py +0 -0
  54. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_transform.py +0 -0
  55. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_typing.py +0 -0
  56. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/_utils/_utils.py +0 -0
  57. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/lib/.keep +0 -0
  58. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/pagination.py +0 -0
  59. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/py.typed +0 -0
  60. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/__init__.py +0 -0
  61. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/attachments.py +0 -0
  62. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/available_number.py +0 -0
  63. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/blocked_handles.py +0 -0
  64. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/capability.py +0 -0
  65. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/chats/__init__.py +0 -0
  66. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/chats/background.py +0 -0
  67. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/chats/location.py +0 -0
  68. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/chats/participants.py +0 -0
  69. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/chats/typing.py +0 -0
  70. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/contact_card.py +0 -0
  71. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/experiences.py +0 -0
  72. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/messages/__init__.py +0 -0
  73. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/payment_handles.py +0 -0
  74. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/payment_providers.py +0 -0
  75. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/payment_requests.py +0 -0
  76. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/payments.py +0 -0
  77. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/phone_numbers.py +0 -0
  78. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/phonenumbers.py +0 -0
  79. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/webhook_events.py +0 -0
  80. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/webhook_subscriptions.py +0 -0
  81. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/resources/webhooks.py +0 -0
  82. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/__init__.py +0 -0
  83. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/attachment_create_params.py +0 -0
  84. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/attachment_create_response.py +0 -0
  85. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/attachment_retrieve_response.py +0 -0
  86. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/available_number_retrieve_params.py +0 -0
  87. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/available_number_retrieve_response.py +0 -0
  88. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/blocked_handle_block_params.py +0 -0
  89. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/blocked_handle_block_response.py +0 -0
  90. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/blocked_handle_entry.py +0 -0
  91. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/blocked_handle_list_response.py +0 -0
  92. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/blocked_handle_unblock_params.py +0 -0
  93. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/capability_check_RCS_params.py +0 -0
  94. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/capability_check_i_message_params.py +0 -0
  95. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat.py +0 -0
  96. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_background_update_failed_webhook_event.py +0 -0
  97. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_background_updated_webhook_event.py +0 -0
  98. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_create_params.py +0 -0
  99. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_create_response.py +0 -0
  100. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_created_webhook_event.py +0 -0
  101. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_group_icon_update_failed_webhook_event.py +0 -0
  102. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_group_icon_updated_webhook_event.py +0 -0
  103. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_group_name_update_failed_webhook_event.py +0 -0
  104. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_group_name_updated_webhook_event.py +0 -0
  105. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_leave_chat_response.py +0 -0
  106. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_list_chats_params.py +0 -0
  107. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_send_voicememo_params.py +0 -0
  108. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_send_voicememo_response.py +0 -0
  109. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_typing_indicator_started_webhook_event.py +0 -0
  110. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_typing_indicator_stopped_webhook_event.py +0 -0
  111. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_update_params.py +0 -0
  112. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chat_update_response.py +0 -0
  113. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/__init__.py +0 -0
  114. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/background_set_params.py +0 -0
  115. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/get_chat_location_response.py +0 -0
  116. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/location_request_response.py +0 -0
  117. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/message_list_params.py +0 -0
  118. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/message_send_params.py +0 -0
  119. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/message_send_response.py +0 -0
  120. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/participant_add_params.py +0 -0
  121. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/participant_add_response.py +0 -0
  122. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/participant_remove_params.py +0 -0
  123. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/participant_remove_response.py +0 -0
  124. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/poll.py +0 -0
  125. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/poll_create_params.py +0 -0
  126. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/poll_envelope.py +0 -0
  127. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/chats/sent_message.py +0 -0
  128. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/contact_card_create_params.py +0 -0
  129. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/contact_card_retrieve_params.py +0 -0
  130. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/contact_card_retrieve_response.py +0 -0
  131. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/contact_card_update_params.py +0 -0
  132. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/experience_list_response.py +0 -0
  133. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/experience_retrieve_response.py +0 -0
  134. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/handle_check_response.py +0 -0
  135. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/link_part_param.py +0 -0
  136. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/media_part_param.py +0 -0
  137. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message.py +0 -0
  138. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_add_reaction_params.py +0 -0
  139. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_add_reaction_response.py +0 -0
  140. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_content_param.py +0 -0
  141. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_create_params.py +0 -0
  142. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_create_response.py +0 -0
  143. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_delivered_webhook_event.py +0 -0
  144. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_edited_webhook_event.py +0 -0
  145. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_effect.py +0 -0
  146. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_effect_param.py +0 -0
  147. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_event_v2.py +0 -0
  148. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_failed_webhook_event.py +0 -0
  149. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_list_messages_thread_params.py +0 -0
  150. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_read_webhook_event.py +0 -0
  151. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_received_webhook_event.py +0 -0
  152. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_sent_webhook_event.py +0 -0
  153. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_update_app_card_params.py +0 -0
  154. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_update_app_card_response.py +0 -0
  155. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/message_update_params.py +0 -0
  156. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/messages/__init__.py +0 -0
  157. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/messages/poll_add_options_params.py +0 -0
  158. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/messages/poll_vote_params.py +0 -0
  159. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/participant_added_webhook_event.py +0 -0
  160. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/participant_removed_webhook_event.py +0 -0
  161. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment.py +0 -0
  162. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment_create_params.py +0 -0
  163. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment_credentials_response.py +0 -0
  164. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment_handle_connection.py +0 -0
  165. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment_handle_verify_params.py +0 -0
  166. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment_provider.py +0 -0
  167. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment_provider_connect_params.py +0 -0
  168. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment_provider_connect_response.py +0 -0
  169. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment_request.py +0 -0
  170. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment_request_create_params.py +0 -0
  171. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment_request_list_params.py +0 -0
  172. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/payment_request_list_response.py +0 -0
  173. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/phone_number_list_response.py +0 -0
  174. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/phone_number_status_updated_webhook_event.py +0 -0
  175. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/phone_number_update_params.py +0 -0
  176. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/phone_number_update_response.py +0 -0
  177. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/phonenumber_list_response.py +0 -0
  178. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/poll_delivered_webhook_event.py +0 -0
  179. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/poll_failed_webhook_event.py +0 -0
  180. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/poll_reaction_added_webhook_event.py +0 -0
  181. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/poll_read_webhook_event.py +0 -0
  182. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/poll_received_webhook_event.py +0 -0
  183. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/poll_sent_webhook_event.py +0 -0
  184. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/poll_updated_webhook_event.py +0 -0
  185. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/poll_vote_added_webhook_event.py +0 -0
  186. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/poll_vote_removed_webhook_event.py +0 -0
  187. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reaction_added_webhook_event.py +0 -0
  188. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reaction_event_base.py +0 -0
  189. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reaction_removed_webhook_event.py +0 -0
  190. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reply_to.py +0 -0
  191. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reply_to_param.py +0 -0
  192. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reputation_action_item.py +0 -0
  193. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reputation_audit.py +0 -0
  194. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reputation_audit_started.py +0 -0
  195. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reputation_driver.py +0 -0
  196. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reputation_driver_key.py +0 -0
  197. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reputation_evidence.py +0 -0
  198. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reputation_opt_out_chat.py +0 -0
  199. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reputation_report.py +0 -0
  200. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/reputation_unhealthy_chat.py +0 -0
  201. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/schemas_media_part_response.py +0 -0
  202. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/schemas_message_effect.py +0 -0
  203. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/set_contact_card.py +0 -0
  204. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared/__init__.py +0 -0
  205. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared/chat_handle.py +0 -0
  206. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared/link_part_response.py +0 -0
  207. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared/media_part_response.py +0 -0
  208. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared/reaction.py +0 -0
  209. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared/reaction_type.py +0 -0
  210. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared/service_type.py +0 -0
  211. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared/text_decoration.py +0 -0
  212. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared_params/__init__.py +0 -0
  213. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared_params/reaction_type.py +0 -0
  214. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared_params/service_type.py +0 -0
  215. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/shared_params/text_decoration.py +0 -0
  216. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/supported_content_type.py +0 -0
  217. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/unwrap_webhook_event.py +0 -0
  218. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/webhook_event_list_response.py +0 -0
  219. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/webhook_event_type.py +0 -0
  220. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/webhook_subscription.py +0 -0
  221. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/webhook_subscription_create_params.py +0 -0
  222. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/webhook_subscription_create_response.py +0 -0
  223. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/webhook_subscription_list_response.py +0 -0
  224. {linq_python-0.37.0 → linq_python-0.38.0}/src/linq/types/webhook_subscription_update_params.py +0 -0
  225. {linq_python-0.37.0 → linq_python-0.38.0}/tests/__init__.py +0 -0
  226. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/__init__.py +0 -0
  227. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/chats/__init__.py +0 -0
  228. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/chats/test_background.py +0 -0
  229. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/chats/test_location.py +0 -0
  230. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/chats/test_messages.py +0 -0
  231. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/chats/test_participants.py +0 -0
  232. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/chats/test_polls.py +0 -0
  233. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/chats/test_typing.py +0 -0
  234. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/messages/__init__.py +0 -0
  235. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/messages/test_poll.py +0 -0
  236. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_attachments.py +0 -0
  237. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_available_number.py +0 -0
  238. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_blocked_handles.py +0 -0
  239. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_capability.py +0 -0
  240. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_chats.py +0 -0
  241. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_contact_card.py +0 -0
  242. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_experiences.py +0 -0
  243. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_messages.py +0 -0
  244. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_payment_handles.py +0 -0
  245. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_payment_providers.py +0 -0
  246. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_payment_requests.py +0 -0
  247. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_payments.py +0 -0
  248. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_phone_numbers.py +0 -0
  249. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_phonenumbers.py +0 -0
  250. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_webhook_events.py +0 -0
  251. {linq_python-0.37.0 → linq_python-0.38.0}/tests/api_resources/test_webhook_subscriptions.py +0 -0
  252. {linq_python-0.37.0 → linq_python-0.38.0}/tests/conftest.py +0 -0
  253. {linq_python-0.37.0 → linq_python-0.38.0}/tests/sample_file.txt +0 -0
  254. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_client.py +0 -0
  255. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_extract_files.py +0 -0
  256. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_files.py +0 -0
  257. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_models.py +0 -0
  258. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_qs.py +0 -0
  259. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_required_args.py +0 -0
  260. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_response.py +0 -0
  261. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_streaming.py +0 -0
  262. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_transform.py +0 -0
  263. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_utils/test_datetime_parse.py +0 -0
  264. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_utils/test_json.py +0 -0
  265. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_utils/test_path.py +0 -0
  266. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_utils/test_proxy.py +0 -0
  267. {linq_python-0.37.0 → linq_python-0.38.0}/tests/test_utils/test_typing.py +0 -0
  268. {linq_python-0.37.0 → linq_python-0.38.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.38.0"
3
+ }
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.38.0](https://github.com/linq-team/linq-python/compare/v0.37.1...v0.38.0) (2026-09-01)
4
+
5
+
6
+ ### Features
7
+
8
+ * add mentions array to text parts, deprecate singular mention fields ([de49b5c](https://github.com/linq-team/linq-python/commit/de49b5cc2db3cf5be4e6a87c3c938c8cc6237d25))
9
+
10
+ ## [0.37.1](https://github.com/linq-team/linq-python/compare/v0.37.0...v0.37.1) (2026-08-31)
11
+
12
+
13
+ ### Documentation
14
+
15
+ * clarify backstop behavior for ephemeral message storage ([c6efb3b](https://github.com/linq-team/linq-python/commit/c6efb3be895b90f4349c2e01b7c5904818c93fe2))
16
+
3
17
  ## [0.37.0](https://github.com/linq-team/linq-python/compare/v0.36.1...v0.37.0) (2026-08-28)
4
18
 
5
19
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: linq-python
3
- Version: 0.37.0
3
+ Version: 0.38.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.37.0"
3
+ version = "0.38.0"
4
4
  description = "The official Python library for the linq-api-v3 API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -214,6 +214,7 @@ class LinqAPIV3(SyncAPIClient):
214
214
 
215
215
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
216
216
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
217
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
217
218
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
218
219
 
219
220
  **When to choose ephemeral:**
@@ -1329,6 +1330,7 @@ class AsyncLinqAPIV3(AsyncAPIClient):
1329
1330
 
1330
1331
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
1331
1332
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
1333
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
1332
1334
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
1333
1335
 
1334
1336
  **When to choose ephemeral:**
@@ -2378,6 +2380,7 @@ class LinqAPIV3WithRawResponse:
2378
2380
 
2379
2381
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
2380
2382
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
2383
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
2381
2384
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
2382
2385
 
2383
2386
  **When to choose ephemeral:**
@@ -3299,6 +3302,7 @@ class AsyncLinqAPIV3WithRawResponse:
3299
3302
 
3300
3303
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
3301
3304
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
3305
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
3302
3306
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
3303
3307
 
3304
3308
  **When to choose ephemeral:**
@@ -4220,6 +4224,7 @@ class LinqAPIV3WithStreamedResponse:
4220
4224
 
4221
4225
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
4222
4226
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
4227
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
4223
4228
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
4224
4229
 
4225
4230
  **When to choose ephemeral:**
@@ -5141,6 +5146,7 @@ class AsyncLinqAPIV3WithStreamedResponse:
5141
5146
 
5142
5147
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
5143
5148
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
5149
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
5144
5150
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
5145
5151
 
5146
5152
  **When to choose ephemeral:**
@@ -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.37.0" # x-release-please-version
4
+ __version__ = "0.38.0" # x-release-please-version
@@ -174,6 +174,7 @@ class ChatsResource(SyncAPIResource):
174
174
 
175
175
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
176
176
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
177
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
177
178
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
178
179
 
179
180
  **When to choose ephemeral:**
@@ -279,6 +280,7 @@ class ChatsResource(SyncAPIResource):
279
280
 
280
281
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
281
282
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
283
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
282
284
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
283
285
 
284
286
  **When to choose ephemeral:**
@@ -919,6 +921,7 @@ class AsyncChatsResource(AsyncAPIResource):
919
921
 
920
922
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
921
923
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
924
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
922
925
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
923
926
 
924
927
  **When to choose ephemeral:**
@@ -1024,6 +1027,7 @@ class AsyncChatsResource(AsyncAPIResource):
1024
1027
 
1025
1028
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
1026
1029
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
1030
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
1027
1031
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
1028
1032
 
1029
1033
  **When to choose ephemeral:**
@@ -1692,6 +1696,7 @@ class ChatsResourceWithRawResponse:
1692
1696
 
1693
1697
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
1694
1698
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
1699
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
1695
1700
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
1696
1701
 
1697
1702
  **When to choose ephemeral:**
@@ -1797,6 +1802,7 @@ class ChatsResourceWithRawResponse:
1797
1802
 
1798
1803
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
1799
1804
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
1805
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
1800
1806
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
1801
1807
 
1802
1808
  **When to choose ephemeral:**
@@ -1953,6 +1959,7 @@ class AsyncChatsResourceWithRawResponse:
1953
1959
 
1954
1960
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
1955
1961
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
1962
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
1956
1963
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
1957
1964
 
1958
1965
  **When to choose ephemeral:**
@@ -2058,6 +2065,7 @@ class AsyncChatsResourceWithRawResponse:
2058
2065
 
2059
2066
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
2060
2067
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
2068
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
2061
2069
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
2062
2070
 
2063
2071
  **When to choose ephemeral:**
@@ -2214,6 +2222,7 @@ class ChatsResourceWithStreamingResponse:
2214
2222
 
2215
2223
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
2216
2224
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
2225
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
2217
2226
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
2218
2227
 
2219
2228
  **When to choose ephemeral:**
@@ -2319,6 +2328,7 @@ class ChatsResourceWithStreamingResponse:
2319
2328
 
2320
2329
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
2321
2330
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
2331
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
2322
2332
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
2323
2333
 
2324
2334
  **When to choose ephemeral:**
@@ -2475,6 +2485,7 @@ class AsyncChatsResourceWithStreamingResponse:
2475
2485
 
2476
2486
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
2477
2487
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
2488
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
2478
2489
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
2479
2490
 
2480
2491
  **When to choose ephemeral:**
@@ -2580,6 +2591,7 @@ class AsyncChatsResourceWithStreamingResponse:
2580
2591
 
2581
2592
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
2582
2593
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
2594
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
2583
2595
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
2584
2596
 
2585
2597
  **When to choose ephemeral:**
@@ -74,6 +74,7 @@ class MessagesResource(SyncAPIResource):
74
74
 
75
75
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
76
76
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
77
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
77
78
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
78
79
 
79
80
  **When to choose ephemeral:**
@@ -306,6 +307,7 @@ class AsyncMessagesResource(AsyncAPIResource):
306
307
 
307
308
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
308
309
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
310
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
309
311
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
310
312
 
311
313
  **When to choose ephemeral:**
@@ -71,6 +71,7 @@ class PollsResource(SyncAPIResource):
71
71
 
72
72
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
73
73
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
74
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
74
75
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
75
76
 
76
77
  **When to choose ephemeral:**
@@ -197,6 +198,7 @@ class AsyncPollsResource(AsyncAPIResource):
197
198
 
198
199
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
199
200
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
201
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
200
202
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
201
203
 
202
204
  **When to choose ephemeral:**
@@ -93,6 +93,7 @@ class MessagesResource(SyncAPIResource):
93
93
 
94
94
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
95
95
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
96
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
96
97
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
97
98
 
98
99
  **When to choose ephemeral:**
@@ -155,6 +156,7 @@ class MessagesResource(SyncAPIResource):
155
156
 
156
157
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
157
158
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
159
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
158
160
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
159
161
 
160
162
  **When to choose ephemeral:**
@@ -735,6 +737,7 @@ class AsyncMessagesResource(AsyncAPIResource):
735
737
 
736
738
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
737
739
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
740
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
738
741
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
739
742
 
740
743
  **When to choose ephemeral:**
@@ -797,6 +800,7 @@ class AsyncMessagesResource(AsyncAPIResource):
797
800
 
798
801
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
799
802
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
803
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
800
804
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
801
805
 
802
806
  **When to choose ephemeral:**
@@ -1404,6 +1408,7 @@ class MessagesResourceWithRawResponse:
1404
1408
 
1405
1409
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
1406
1410
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
1411
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
1407
1412
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
1408
1413
 
1409
1414
  **When to choose ephemeral:**
@@ -1494,6 +1499,7 @@ class AsyncMessagesResourceWithRawResponse:
1494
1499
 
1495
1500
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
1496
1501
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
1502
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
1497
1503
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
1498
1504
 
1499
1505
  **When to choose ephemeral:**
@@ -1584,6 +1590,7 @@ class MessagesResourceWithStreamingResponse:
1584
1590
 
1585
1591
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
1586
1592
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
1593
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
1587
1594
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
1588
1595
 
1589
1596
  **When to choose ephemeral:**
@@ -1674,6 +1681,7 @@ class AsyncMessagesResourceWithStreamingResponse:
1674
1681
 
1675
1682
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
1676
1683
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
1684
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
1677
1685
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
1678
1686
 
1679
1687
  **When to choose ephemeral:**
@@ -74,6 +74,7 @@ class PollResource(SyncAPIResource):
74
74
 
75
75
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
76
76
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
77
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
77
78
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
78
79
 
79
80
  **When to choose ephemeral:**
@@ -275,6 +276,7 @@ class AsyncPollResource(AsyncAPIResource):
275
276
 
276
277
  - **No expiry timestamp is exposed.** API responses and webhook payloads do not include the deletion time. If you need it, compute `created_at + 24h` yourself.
277
278
  - **No deletion webhook is sent.** There is no `message.deleted` event — a message simply stops being retrievable once its window passes.
279
+ - **The backstop governs Linq storage.** API retrievability (the `404` behavior above) and CDN media expire at the 24-hour mark. Removal of the corresponding entries from the sending device happens asynchronously and can complete after the backstop.
278
280
  - **Delivery is unaffected.** Ephemeral messages send, deliver, and fire the usual `message.sent` / `message.received` and status webhooks exactly like standard messages. Only retention changes.
279
281
 
280
282
  **When to choose ephemeral:**
@@ -0,0 +1,76 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .shared.text_decoration import TextDecoration
8
+
9
+ __all__ = ["SchemasTextPartResponse", "Mention"]
10
+
11
+
12
+ class Mention(BaseModel):
13
+ """
14
+ One mention on a text part — who was mentioned, and which characters of `value` are
15
+ the mention. A part carries one of these per mention, in the order they appear in the
16
+ text, so a message naming two people has two entries.
17
+ """
18
+
19
+ handle: str
20
+ """
21
+ Address of the mentioned participant, exactly as the device recorded it — an
22
+ E.164 phone number or an email address.
23
+ """
24
+
25
+ is_me: bool
26
+ """Whether the mentioned participant is this line."""
27
+
28
+ range: List[int]
29
+ """
30
+ Character range `[start, end)` in `value` highlighted as this mention.
31
+ _Characters are measured as UTF-16 code units. Most characters count as 1; some
32
+ emoji count as 2._
33
+ """
34
+
35
+
36
+ class SchemasTextPartResponse(BaseModel):
37
+ """A text message part"""
38
+
39
+ type: Literal["text"]
40
+ """Indicates this is a text message part"""
41
+
42
+ value: str
43
+ """The text content"""
44
+
45
+ mention: Optional[str] = None
46
+ """DEPRECATED: Use `mentions` instead.
47
+
48
+ Handle (E.164 phone number or Apple ID email) of the **first** mention on this
49
+ part. A part may carry several mentions; this field shows only the first in
50
+ `value` order, so it cannot be used to determine whether a given participant was
51
+ mentioned. `null` when the part carries no mention.
52
+ """
53
+
54
+ mention_range: Optional[List[int]] = None
55
+ """DEPRECATED: Use `mentions[].range` instead.
56
+
57
+ Character range `[start, end)` in `value` highlighted as the **first** mention
58
+ only. `null` when the range was omitted (the whole `value` is highlighted) or
59
+ the part carries no mention. _Characters are measured as UTF-16 code units. Most
60
+ characters count as 1; some emoji count as 2._
61
+ """
62
+
63
+ mentions: Optional[List[Mention]] = None
64
+ """Every mention on this part, in the order they appear in `value`.
65
+
66
+ `null` when the part carries no mention. A part can carry several mentions of
67
+ different people — check `is_me` to tell whether this line was one of them.
68
+
69
+ Only iMessage carries mentions. On a received message this is populated when the
70
+ sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
71
+ from an SMS or RCS participant arrives as plain text with `mentions` null, even
72
+ in a group where other participants are on iMessage.
73
+ """
74
+
75
+ text_decorations: Optional[List[TextDecoration]] = None
76
+ """Text decorations applied to character ranges in the value"""
@@ -0,0 +1,80 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .reaction import Reaction
7
+ from ..._models import BaseModel
8
+ from .text_decoration import TextDecoration
9
+
10
+ __all__ = ["TextPartResponse", "Mention"]
11
+
12
+
13
+ class Mention(BaseModel):
14
+ """
15
+ One mention on a text part — who was mentioned, and which characters of `value` are
16
+ the mention. A part carries one of these per mention, in the order they appear in the
17
+ text, so a message naming two people has two entries.
18
+ """
19
+
20
+ handle: str
21
+ """
22
+ Address of the mentioned participant, exactly as the device recorded it — an
23
+ E.164 phone number or an email address.
24
+ """
25
+
26
+ is_me: bool
27
+ """Whether the mentioned participant is this line."""
28
+
29
+ range: List[int]
30
+ """
31
+ Character range `[start, end)` in `value` highlighted as this mention.
32
+ _Characters are measured as UTF-16 code units. Most characters count as 1; some
33
+ emoji count as 2._
34
+ """
35
+
36
+
37
+ class TextPartResponse(BaseModel):
38
+ """A text message part"""
39
+
40
+ reactions: Optional[List[Reaction]] = None
41
+ """Reactions on this message part"""
42
+
43
+ type: Literal["text"]
44
+ """Indicates this is a text message part"""
45
+
46
+ value: str
47
+ """The text content"""
48
+
49
+ mention: Optional[str] = None
50
+ """DEPRECATED: Use `mentions` instead.
51
+
52
+ Handle (E.164 phone number or Apple ID email) of the **first** mention on this
53
+ part. A part may carry several mentions; this field shows only the first in
54
+ `value` order, so it cannot be used to determine whether a given participant was
55
+ mentioned. `null` when the part carries no mention.
56
+ """
57
+
58
+ mention_range: Optional[List[int]] = None
59
+ """DEPRECATED: Use `mentions[].range` instead.
60
+
61
+ Character range `[start, end)` in `value` highlighted as the **first** mention
62
+ only. `null` when the range was omitted (the whole `value` is highlighted) or
63
+ the part carries no mention. _Characters are measured as UTF-16 code units. Most
64
+ characters count as 1; some emoji count as 2._
65
+ """
66
+
67
+ mentions: Optional[List[Mention]] = None
68
+ """Every mention on this part, in the order they appear in `value`.
69
+
70
+ `null` when the part carries no mention. A part can carry several mentions of
71
+ different people — check `is_me` to tell whether this line was one of them.
72
+
73
+ Only iMessage carries mentions. On a received message this is populated when the
74
+ sender was on iMessage; SMS and RCS have no way to mark a mention, so a message
75
+ from an SMS or RCS participant arrives as plain text with `mentions` null, even
76
+ in a group where other participants are on iMessage.
77
+ """
78
+
79
+ text_decorations: Optional[List[TextDecoration]] = None
80
+ """Text decorations applied to character ranges in the value"""
@@ -23,7 +23,7 @@ class TextPartParam(TypedDict, total=False):
23
23
  """
24
24
 
25
25
  mention: str
26
- """@mention a chat participant.
26
+ """Mention a chat participant.
27
27
 
28
28
  Group chats only — sending a mention to a direct chat is rejected with `409` /
29
29
  `2023`. The chat's service is not a constraint: a mention is accepted in any
@@ -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/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],"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/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"}"""
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/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],"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/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"}"""
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)
@@ -530,7 +530,7 @@ wheels = [
530
530
 
531
531
  [[package]]
532
532
  name = "linq-python"
533
- version = "0.36.1"
533
+ version = "0.37.1"
534
534
  source = { editable = "." }
535
535
  dependencies = [
536
536
  { name = "anyio" },
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.37.0"
3
- }
@@ -1,36 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import List, Optional
4
- from typing_extensions import Literal
5
-
6
- from .._models import BaseModel
7
- from .shared.text_decoration import TextDecoration
8
-
9
- __all__ = ["SchemasTextPartResponse"]
10
-
11
-
12
- class SchemasTextPartResponse(BaseModel):
13
- """A text message part"""
14
-
15
- type: Literal["text"]
16
- """Indicates this is a text message part"""
17
-
18
- value: str
19
- """The text content"""
20
-
21
- mention: Optional[str] = None
22
- """
23
- Handle (E.164 phone number or Apple ID email) of the @mentioned chat
24
- participant, as sent. `null` when the part carries no mention.
25
- """
26
-
27
- mention_range: Optional[List[int]] = None
28
- """
29
- Character range `[start, end)` in `value` highlighted as the mention, as sent.
30
- `null` when the send omitted it (the whole `value` is highlighted) or the part
31
- carries no mention. _Characters are measured as UTF-16 code units. Most
32
- characters count as 1; some emoji count as 2._
33
- """
34
-
35
- text_decorations: Optional[List[TextDecoration]] = None
36
- """Text decorations applied to character ranges in the value"""
@@ -1,40 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import List, Optional
4
- from typing_extensions import Literal
5
-
6
- from .reaction import Reaction
7
- from ..._models import BaseModel
8
- from .text_decoration import TextDecoration
9
-
10
- __all__ = ["TextPartResponse"]
11
-
12
-
13
- class TextPartResponse(BaseModel):
14
- """A text message part"""
15
-
16
- reactions: Optional[List[Reaction]] = None
17
- """Reactions on this message part"""
18
-
19
- type: Literal["text"]
20
- """Indicates this is a text message part"""
21
-
22
- value: str
23
- """The text content"""
24
-
25
- mention: Optional[str] = None
26
- """
27
- Handle (E.164 phone number or Apple ID email) of the @mentioned chat
28
- participant, as sent. `null` when the part carries no mention.
29
- """
30
-
31
- mention_range: Optional[List[int]] = None
32
- """
33
- Character range `[start, end)` in `value` highlighted as the mention, as sent.
34
- `null` when the send omitted it (the whole `value` is highlighted) or the part
35
- carries no mention. _Characters are measured as UTF-16 code units. Most
36
- characters count as 1; some emoji count as 2._
37
- """
38
-
39
- text_decorations: Optional[List[TextDecoration]] = None
40
- """Text decorations applied to character ranges in the value"""
File without changes
File without changes
File without changes
File without changes
File without changes