linq-python 0.13.0__tar.gz → 0.14.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 (194) hide show
  1. linq_python-0.14.0/.release-please-manifest.json +3 -0
  2. linq_python-0.14.0/CHANGELOG.md +13 -0
  3. {linq_python-0.13.0 → linq_python-0.14.0}/PKG-INFO +1 -1
  4. {linq_python-0.13.0 → linq_python-0.14.0}/pyproject.toml +1 -1
  5. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_version.py +1 -1
  6. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/capability.py +2 -2
  7. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/__init__.py +1 -1
  8. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/capability_check_i_message_params.py +2 -2
  9. linq_python-0.14.0/src/linq/types/chats/sent_message.py +153 -0
  10. linq_python-0.14.0/src/linq/types/message.py +174 -0
  11. linq_python-0.14.0/src/linq/types/message_content_param.py +179 -0
  12. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_event_v2.py +80 -2
  13. {linq_python-0.13.0 → linq_python-0.14.0}/uv.lock +1 -1
  14. linq_python-0.13.0/.release-please-manifest.json +0 -3
  15. linq_python-0.13.0/CHANGELOG.md +0 -8
  16. linq_python-0.13.0/src/linq/types/chats/sent_message.py +0 -61
  17. linq_python-0.13.0/src/linq/types/message.py +0 -82
  18. linq_python-0.13.0/src/linq/types/message_content_param.py +0 -82
  19. {linq_python-0.13.0 → linq_python-0.14.0}/.gitignore +0 -0
  20. {linq_python-0.13.0 → linq_python-0.14.0}/CONTRIBUTING.md +0 -0
  21. {linq_python-0.13.0 → linq_python-0.14.0}/LICENSE +0 -0
  22. {linq_python-0.13.0 → linq_python-0.14.0}/README.md +0 -0
  23. {linq_python-0.13.0 → linq_python-0.14.0}/SECURITY.md +0 -0
  24. {linq_python-0.13.0 → linq_python-0.14.0}/api.md +0 -0
  25. {linq_python-0.13.0 → linq_python-0.14.0}/bin/check-release-environment +0 -0
  26. {linq_python-0.13.0 → linq_python-0.14.0}/bin/publish-pypi +0 -0
  27. {linq_python-0.13.0 → linq_python-0.14.0}/examples/.keep +0 -0
  28. {linq_python-0.13.0 → linq_python-0.14.0}/release-please-config.json +0 -0
  29. {linq_python-0.13.0 → linq_python-0.14.0}/requirements-dev.lock +0 -0
  30. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/__init__.py +0 -0
  31. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_base_client.py +0 -0
  32. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_client.py +0 -0
  33. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_compat.py +0 -0
  34. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_constants.py +0 -0
  35. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_exceptions.py +0 -0
  36. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_files.py +0 -0
  37. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_models.py +0 -0
  38. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_qs.py +0 -0
  39. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_resource.py +0 -0
  40. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_response.py +0 -0
  41. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_streaming.py +0 -0
  42. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_types.py +0 -0
  43. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/__init__.py +0 -0
  44. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_compat.py +0 -0
  45. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_datetime_parse.py +0 -0
  46. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_json.py +0 -0
  47. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_logs.py +0 -0
  48. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_path.py +0 -0
  49. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_proxy.py +0 -0
  50. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_reflection.py +0 -0
  51. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_resources_proxy.py +0 -0
  52. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_streams.py +0 -0
  53. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_sync.py +0 -0
  54. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_transform.py +0 -0
  55. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_typing.py +0 -0
  56. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/_utils/_utils.py +0 -0
  57. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/lib/.keep +0 -0
  58. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/pagination.py +0 -0
  59. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/py.typed +0 -0
  60. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/__init__.py +0 -0
  61. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/attachments.py +0 -0
  62. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/chats/__init__.py +0 -0
  63. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/chats/chats.py +0 -0
  64. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/chats/location.py +0 -0
  65. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/chats/messages.py +0 -0
  66. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/chats/participants.py +0 -0
  67. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/chats/typing.py +0 -0
  68. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/contact_card.py +0 -0
  69. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/messages.py +0 -0
  70. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/phone_numbers.py +0 -0
  71. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/phonenumbers.py +0 -0
  72. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/webhook_events.py +0 -0
  73. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/webhook_subscriptions.py +0 -0
  74. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/resources/webhooks.py +0 -0
  75. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/attachment_create_params.py +0 -0
  76. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/attachment_create_response.py +0 -0
  77. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/attachment_retrieve_response.py +0 -0
  78. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/capability_check_RCS_params.py +0 -0
  79. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat.py +0 -0
  80. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_create_params.py +0 -0
  81. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_create_response.py +0 -0
  82. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_created_webhook_event.py +0 -0
  83. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_group_icon_update_failed_webhook_event.py +0 -0
  84. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_group_icon_updated_webhook_event.py +0 -0
  85. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_group_name_update_failed_webhook_event.py +0 -0
  86. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_group_name_updated_webhook_event.py +0 -0
  87. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_leave_chat_response.py +0 -0
  88. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_list_chats_params.py +0 -0
  89. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_send_voicememo_params.py +0 -0
  90. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_send_voicememo_response.py +0 -0
  91. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_typing_indicator_started_webhook_event.py +0 -0
  92. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_typing_indicator_stopped_webhook_event.py +0 -0
  93. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_update_params.py +0 -0
  94. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chat_update_response.py +0 -0
  95. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chats/__init__.py +0 -0
  96. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chats/get_chat_location_response.py +0 -0
  97. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chats/location_request_response.py +0 -0
  98. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chats/message_list_params.py +0 -0
  99. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chats/message_send_params.py +0 -0
  100. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chats/message_send_response.py +0 -0
  101. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chats/participant_add_params.py +0 -0
  102. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chats/participant_add_response.py +0 -0
  103. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chats/participant_remove_params.py +0 -0
  104. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/chats/participant_remove_response.py +0 -0
  105. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/contact_card_create_params.py +0 -0
  106. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/contact_card_retrieve_params.py +0 -0
  107. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/contact_card_retrieve_response.py +0 -0
  108. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/contact_card_update_params.py +0 -0
  109. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/handle_check_response.py +0 -0
  110. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/link_part_param.py +0 -0
  111. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/media_part_param.py +0 -0
  112. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_add_reaction_params.py +0 -0
  113. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_add_reaction_response.py +0 -0
  114. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_delivered_webhook_event.py +0 -0
  115. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_edited_webhook_event.py +0 -0
  116. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_effect.py +0 -0
  117. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_effect_param.py +0 -0
  118. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_failed_webhook_event.py +0 -0
  119. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_list_messages_thread_params.py +0 -0
  120. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_read_webhook_event.py +0 -0
  121. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_received_webhook_event.py +0 -0
  122. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_sent_webhook_event.py +0 -0
  123. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/message_update_params.py +0 -0
  124. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/participant_added_webhook_event.py +0 -0
  125. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/participant_removed_webhook_event.py +0 -0
  126. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/phone_number_list_response.py +0 -0
  127. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/phone_number_status_updated_webhook_event.py +0 -0
  128. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/phonenumber_list_response.py +0 -0
  129. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/reaction_added_webhook_event.py +0 -0
  130. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/reaction_event_base.py +0 -0
  131. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/reaction_removed_webhook_event.py +0 -0
  132. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/reply_to.py +0 -0
  133. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/reply_to_param.py +0 -0
  134. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/schemas_media_part_response.py +0 -0
  135. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/schemas_message_effect.py +0 -0
  136. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/schemas_text_part_response.py +0 -0
  137. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/set_contact_card.py +0 -0
  138. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared/__init__.py +0 -0
  139. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared/chat_handle.py +0 -0
  140. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared/link_part_response.py +0 -0
  141. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared/media_part_response.py +0 -0
  142. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared/reaction.py +0 -0
  143. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared/reaction_type.py +0 -0
  144. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared/service_type.py +0 -0
  145. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared/text_decoration.py +0 -0
  146. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared/text_part_response.py +0 -0
  147. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared_params/__init__.py +0 -0
  148. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared_params/reaction_type.py +0 -0
  149. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared_params/service_type.py +0 -0
  150. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/shared_params/text_decoration.py +0 -0
  151. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/supported_content_type.py +0 -0
  152. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/text_part_param.py +0 -0
  153. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/unwrap_webhook_event.py +0 -0
  154. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/webhook_event_list_response.py +0 -0
  155. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/webhook_event_type.py +0 -0
  156. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/webhook_subscription.py +0 -0
  157. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/webhook_subscription_create_params.py +0 -0
  158. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/webhook_subscription_create_response.py +0 -0
  159. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/webhook_subscription_list_response.py +0 -0
  160. {linq_python-0.13.0 → linq_python-0.14.0}/src/linq/types/webhook_subscription_update_params.py +0 -0
  161. {linq_python-0.13.0 → linq_python-0.14.0}/tests/__init__.py +0 -0
  162. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/__init__.py +0 -0
  163. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/chats/__init__.py +0 -0
  164. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/chats/test_location.py +0 -0
  165. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/chats/test_messages.py +0 -0
  166. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/chats/test_participants.py +0 -0
  167. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/chats/test_typing.py +0 -0
  168. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/test_attachments.py +0 -0
  169. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/test_capability.py +0 -0
  170. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/test_chats.py +0 -0
  171. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/test_contact_card.py +0 -0
  172. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/test_messages.py +0 -0
  173. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/test_phone_numbers.py +0 -0
  174. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/test_phonenumbers.py +0 -0
  175. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/test_webhook_events.py +0 -0
  176. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/test_webhook_subscriptions.py +0 -0
  177. {linq_python-0.13.0 → linq_python-0.14.0}/tests/api_resources/test_webhooks.py +0 -0
  178. {linq_python-0.13.0 → linq_python-0.14.0}/tests/conftest.py +0 -0
  179. {linq_python-0.13.0 → linq_python-0.14.0}/tests/sample_file.txt +0 -0
  180. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_client.py +0 -0
  181. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_extract_files.py +0 -0
  182. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_files.py +0 -0
  183. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_models.py +0 -0
  184. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_qs.py +0 -0
  185. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_required_args.py +0 -0
  186. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_response.py +0 -0
  187. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_streaming.py +0 -0
  188. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_transform.py +0 -0
  189. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_utils/test_datetime_parse.py +0 -0
  190. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_utils/test_json.py +0 -0
  191. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_utils/test_path.py +0 -0
  192. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_utils/test_proxy.py +0 -0
  193. {linq_python-0.13.0 → linq_python-0.14.0}/tests/test_utils/test_typing.py +0 -0
  194. {linq_python-0.13.0 → linq_python-0.14.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.14.0"
3
+ }
@@ -0,0 +1,13 @@
1
+ # Changelog
2
+
3
+ ## [0.14.0](https://github.com/linq-team/linq-python/compare/v0.13.0...v0.14.0) (2026-06-10)
4
+
5
+
6
+ ### Features
7
+
8
+ * regenerate SDKs from updated API spec ([#29](https://github.com/linq-team/linq-python/issues/29)) ([dd7f2d7](https://github.com/linq-team/linq-python/commit/dd7f2d7e19e85fa9f61f6367f7e2a1cc942765bf))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **ci:** parse release PR number in shell, not fromJSON in env ([#26](https://github.com/linq-team/linq-python/issues/26)) ([a364403](https://github.com/linq-team/linq-python/commit/a364403289e482298f8b0d78e8e45de8fb87b79d))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: linq-python
3
- Version: 0.13.0
3
+ Version: 0.14.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.13.0"
3
+ version = "0.14.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.13.0" # x-release-please-version
4
+ __version__ = "0.14.0" # x-release-please-version
@@ -82,7 +82,7 @@ class CapabilityResource(SyncAPIResource):
82
82
  "address": address,
83
83
  "from_": from_,
84
84
  },
85
- capability_check_i_message_params.CapabilityCheckiMessageParams,
85
+ capability_check_i_message_params.CapabilityCheckIMessageParams,
86
86
  ),
87
87
  options=make_request_options(
88
88
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
@@ -196,7 +196,7 @@ class AsyncCapabilityResource(AsyncAPIResource):
196
196
  "address": address,
197
197
  "from_": from_,
198
198
  },
199
- capability_check_i_message_params.CapabilityCheckiMessageParams,
199
+ capability_check_i_message_params.CapabilityCheckIMessageParams,
200
200
  ),
201
201
  options=make_request_options(
202
202
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
@@ -65,7 +65,7 @@ from .message_received_webhook_event import MessageReceivedWebhookEvent as Messa
65
65
  from .reaction_removed_webhook_event import ReactionRemovedWebhookEvent as ReactionRemovedWebhookEvent
66
66
  from .message_delivered_webhook_event import MessageDeliveredWebhookEvent as MessageDeliveredWebhookEvent
67
67
  from .participant_added_webhook_event import ParticipantAddedWebhookEvent as ParticipantAddedWebhookEvent
68
- from .capability_check_i_message_params import CapabilityCheckiMessageParams as CapabilityCheckiMessageParams
68
+ from .capability_check_i_message_params import CapabilityCheckIMessageParams as CapabilityCheckIMessageParams
69
69
  from .participant_removed_webhook_event import ParticipantRemovedWebhookEvent as ParticipantRemovedWebhookEvent
70
70
  from .webhook_subscription_create_params import WebhookSubscriptionCreateParams as WebhookSubscriptionCreateParams
71
71
  from .webhook_subscription_list_response import WebhookSubscriptionListResponse as WebhookSubscriptionListResponse
@@ -6,10 +6,10 @@ from typing_extensions import Required, Annotated, TypedDict
6
6
 
7
7
  from .._utils import PropertyInfo
8
8
 
9
- __all__ = ["CapabilityCheckiMessageParams"]
9
+ __all__ = ["CapabilityCheckIMessageParams"]
10
10
 
11
11
 
12
- class CapabilityCheckiMessageParams(TypedDict, total=False):
12
+ class CapabilityCheckIMessageParams(TypedDict, total=False):
13
13
  address: Required[str]
14
14
  """The recipient phone number or email address to check"""
15
15
 
@@ -0,0 +1,153 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Union, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal, TypeAlias
6
+
7
+ from ..._models import BaseModel
8
+ from ..reply_to import ReplyTo
9
+ from ..message_effect import MessageEffect
10
+ from ..shared.reaction import Reaction
11
+ from ..shared.chat_handle import ChatHandle
12
+ from ..shared.service_type import ServiceType
13
+ from ..shared.link_part_response import LinkPartResponse
14
+ from ..shared.text_part_response import TextPartResponse
15
+ from ..shared.media_part_response import MediaPartResponse
16
+
17
+ __all__ = [
18
+ "SentMessage",
19
+ "Part",
20
+ "PartIMessageAppPartResponse",
21
+ "PartIMessageAppPartResponseApp",
22
+ "PartIMessageAppPartResponseLayout",
23
+ ]
24
+
25
+
26
+ class PartIMessageAppPartResponseApp(BaseModel):
27
+ """Identifies the iMessage app (Messages app extension) that backs the card."""
28
+
29
+ bundle_id: str
30
+ """Bundle identifier of the Messages app extension. Must not contain `:`."""
31
+
32
+ name: str
33
+ """Display name of the app, shown by Messages' fallback UI."""
34
+
35
+ team_id: str
36
+ """The app's 10-character uppercase alphanumeric team identifier."""
37
+
38
+ app_store_id: Optional[int] = None
39
+ """The owning app's App Store id (optional).
40
+
41
+ When set, recipients without the iMessage app installed see a "Get the app"
42
+ affordance.
43
+ """
44
+
45
+
46
+ class PartIMessageAppPartResponseLayout(BaseModel):
47
+ """Visible layout of the card.
48
+
49
+ At least one of
50
+ `caption`, `subcaption`, `trailing_caption`, `trailing_subcaption`, or `image_url` must be
51
+ set, otherwise the card renders as an empty bubble.
52
+ """
53
+
54
+ caption: Optional[str] = None
55
+ """Primary label, top-left and bold."""
56
+
57
+ image_subtitle: Optional[str] = None
58
+ """Overlay text shown below `image_title`. Requires `image_url`."""
59
+
60
+ image_title: Optional[str] = None
61
+ """Overlay text shown above the image. Requires `image_url`."""
62
+
63
+ image_url: Optional[str] = None
64
+ """Optional HTTPS URL of a preview image.
65
+
66
+ The server downloads it and embeds it in the card as JPEG (10MB max, same fetch
67
+ rules as media parts).
68
+ """
69
+
70
+ subcaption: Optional[str] = None
71
+ """Secondary label, below `caption` on the left."""
72
+
73
+ trailing_caption: Optional[str] = None
74
+ """Label shown top-right."""
75
+
76
+ trailing_subcaption: Optional[str] = None
77
+ """Label shown below `trailing_caption`, on the right."""
78
+
79
+
80
+ class PartIMessageAppPartResponse(BaseModel):
81
+ """An iMessage app card part."""
82
+
83
+ app: PartIMessageAppPartResponseApp
84
+ """Identifies the iMessage app (Messages app extension) that backs the card."""
85
+
86
+ layout: PartIMessageAppPartResponseLayout
87
+ """Visible layout of the card.
88
+
89
+ At least one of `caption`, `subcaption`, `trailing_caption`,
90
+ `trailing_subcaption`, or `image_url` must be set, otherwise the card renders as
91
+ an empty bubble.
92
+ """
93
+
94
+ reactions: Optional[List[Reaction]] = None
95
+ """Reactions on this message part"""
96
+
97
+ type: Literal["imessage_app"]
98
+ """Indicates this is an iMessage app card part."""
99
+
100
+ url: str
101
+ """The URL delivered to the iMessage app on tap."""
102
+
103
+ fallback_text: Optional[str] = None
104
+ """Fallback text for surfaces that cannot render the card."""
105
+
106
+ session_id: Optional[str] = None
107
+ """Client-supplied session identifier, echoed back when provided."""
108
+
109
+
110
+ Part: TypeAlias = Union[TextPartResponse, MediaPartResponse, LinkPartResponse, PartIMessageAppPartResponse]
111
+
112
+
113
+ class SentMessage(BaseModel):
114
+ """A message that was sent (used in CreateChat and SendMessage responses)"""
115
+
116
+ id: str
117
+ """Message identifier (UUID)"""
118
+
119
+ created_at: datetime
120
+ """When the message was created"""
121
+
122
+ delivery_status: Literal["pending", "queued", "sent", "delivered", "received", "read", "failed"]
123
+ """Current delivery status of a message"""
124
+
125
+ is_read: bool
126
+ """DEPRECATED: Use `delivery_status == "read"` instead.
127
+
128
+ Whether the message has been read.
129
+ """
130
+
131
+ parts: List[Part]
132
+ """Message parts in order (text, media, and link)"""
133
+
134
+ sent_at: Optional[datetime] = None
135
+ """When the message was actually sent (null if still queued)"""
136
+
137
+ delivered_at: Optional[datetime] = None
138
+ """When the message was delivered"""
139
+
140
+ effect: Optional[MessageEffect] = None
141
+ """iMessage effect applied to a message (screen or bubble effect)"""
142
+
143
+ from_handle: Optional[ChatHandle] = None
144
+ """The sender of this message as a full handle object"""
145
+
146
+ preferred_service: Optional[ServiceType] = None
147
+ """Messaging service type"""
148
+
149
+ reply_to: Optional[ReplyTo] = None
150
+ """Indicates this message is a threaded reply to another message"""
151
+
152
+ service: Optional[ServiceType] = None
153
+ """Messaging service type"""
@@ -0,0 +1,174 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Union, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal, TypeAlias
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+ from .reply_to import ReplyTo
11
+ from .message_effect import MessageEffect
12
+ from .shared.reaction import Reaction
13
+ from .shared.chat_handle import ChatHandle
14
+ from .shared.service_type import ServiceType
15
+ from .shared.link_part_response import LinkPartResponse
16
+ from .shared.text_part_response import TextPartResponse
17
+ from .shared.media_part_response import MediaPartResponse
18
+
19
+ __all__ = [
20
+ "Message",
21
+ "Part",
22
+ "PartIMessageAppPartResponse",
23
+ "PartIMessageAppPartResponseApp",
24
+ "PartIMessageAppPartResponseLayout",
25
+ ]
26
+
27
+
28
+ class PartIMessageAppPartResponseApp(BaseModel):
29
+ """Identifies the iMessage app (Messages app extension) that backs the card."""
30
+
31
+ bundle_id: str
32
+ """Bundle identifier of the Messages app extension. Must not contain `:`."""
33
+
34
+ name: str
35
+ """Display name of the app, shown by Messages' fallback UI."""
36
+
37
+ team_id: str
38
+ """The app's 10-character uppercase alphanumeric team identifier."""
39
+
40
+ app_store_id: Optional[int] = None
41
+ """The owning app's App Store id (optional).
42
+
43
+ When set, recipients without the iMessage app installed see a "Get the app"
44
+ affordance.
45
+ """
46
+
47
+
48
+ class PartIMessageAppPartResponseLayout(BaseModel):
49
+ """Visible layout of the card.
50
+
51
+ At least one of
52
+ `caption`, `subcaption`, `trailing_caption`, `trailing_subcaption`, or `image_url` must be
53
+ set, otherwise the card renders as an empty bubble.
54
+ """
55
+
56
+ caption: Optional[str] = None
57
+ """Primary label, top-left and bold."""
58
+
59
+ image_subtitle: Optional[str] = None
60
+ """Overlay text shown below `image_title`. Requires `image_url`."""
61
+
62
+ image_title: Optional[str] = None
63
+ """Overlay text shown above the image. Requires `image_url`."""
64
+
65
+ image_url: Optional[str] = None
66
+ """Optional HTTPS URL of a preview image.
67
+
68
+ The server downloads it and embeds it in the card as JPEG (10MB max, same fetch
69
+ rules as media parts).
70
+ """
71
+
72
+ subcaption: Optional[str] = None
73
+ """Secondary label, below `caption` on the left."""
74
+
75
+ trailing_caption: Optional[str] = None
76
+ """Label shown top-right."""
77
+
78
+ trailing_subcaption: Optional[str] = None
79
+ """Label shown below `trailing_caption`, on the right."""
80
+
81
+
82
+ class PartIMessageAppPartResponse(BaseModel):
83
+ """An iMessage app card part."""
84
+
85
+ app: PartIMessageAppPartResponseApp
86
+ """Identifies the iMessage app (Messages app extension) that backs the card."""
87
+
88
+ layout: PartIMessageAppPartResponseLayout
89
+ """Visible layout of the card.
90
+
91
+ At least one of `caption`, `subcaption`, `trailing_caption`,
92
+ `trailing_subcaption`, or `image_url` must be set, otherwise the card renders as
93
+ an empty bubble.
94
+ """
95
+
96
+ reactions: Optional[List[Reaction]] = None
97
+ """Reactions on this message part"""
98
+
99
+ type: Literal["imessage_app"]
100
+ """Indicates this is an iMessage app card part."""
101
+
102
+ url: str
103
+ """The URL delivered to the iMessage app on tap."""
104
+
105
+ fallback_text: Optional[str] = None
106
+ """Fallback text for surfaces that cannot render the card."""
107
+
108
+ session_id: Optional[str] = None
109
+ """Client-supplied session identifier, echoed back when provided."""
110
+
111
+
112
+ Part: TypeAlias = Union[TextPartResponse, MediaPartResponse, LinkPartResponse, PartIMessageAppPartResponse]
113
+
114
+
115
+ class Message(BaseModel):
116
+ id: str
117
+ """Unique identifier for the message"""
118
+
119
+ chat_id: str
120
+ """ID of the chat this message belongs to"""
121
+
122
+ created_at: datetime
123
+ """When the message was created"""
124
+
125
+ delivery_status: Literal["pending", "queued", "sent", "delivered", "received", "read", "failed"]
126
+ """Current delivery status of a message"""
127
+
128
+ is_delivered: bool
129
+ """
130
+ DEPRECATED: Use `delivery_status` instead (true when `delivery_status` is
131
+ `delivered` or `read`). Whether the message has been delivered.
132
+ """
133
+
134
+ is_from_me: bool
135
+ """Whether this message was sent by the authenticated user"""
136
+
137
+ is_read: bool
138
+ """DEPRECATED: Use `delivery_status == "read"` instead.
139
+
140
+ Whether the message has been read.
141
+ """
142
+
143
+ updated_at: datetime
144
+ """When the message was last updated"""
145
+
146
+ delivered_at: Optional[datetime] = None
147
+ """When the message was delivered"""
148
+
149
+ effect: Optional[MessageEffect] = None
150
+ """iMessage effect applied to a message (screen or bubble effect)"""
151
+
152
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
153
+ """DEPRECATED: Use from_handle instead. Phone number of the message sender."""
154
+
155
+ from_handle: Optional[ChatHandle] = None
156
+ """The sender of this message as a full handle object"""
157
+
158
+ parts: Optional[List[Part]] = None
159
+ """Message parts in order (text, media, and link)"""
160
+
161
+ preferred_service: Optional[ServiceType] = None
162
+ """Messaging service type"""
163
+
164
+ read_at: Optional[datetime] = None
165
+ """When the message was read"""
166
+
167
+ reply_to: Optional[ReplyTo] = None
168
+ """Indicates this message is a threaded reply to another message"""
169
+
170
+ sent_at: Optional[datetime] = None
171
+ """When the message was sent"""
172
+
173
+ service: Optional[ServiceType] = None
174
+ """Messaging service type"""
@@ -0,0 +1,179 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union, Iterable
6
+ from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
+
8
+ from .reply_to_param import ReplyToParam
9
+ from .link_part_param import LinkPartParam
10
+ from .text_part_param import TextPartParam
11
+ from .media_part_param import MediaPartParam
12
+ from .shared.service_type import ServiceType
13
+ from .message_effect_param import MessageEffectParam
14
+
15
+ __all__ = ["MessageContentParam", "Part", "PartIMessageAppPart", "PartIMessageAppPartApp", "PartIMessageAppPartLayout"]
16
+
17
+
18
+ class PartIMessageAppPartApp(TypedDict, total=False):
19
+ """Identifies the iMessage app (Messages app extension) that backs the card."""
20
+
21
+ bundle_id: Required[str]
22
+ """Bundle identifier of the Messages app extension. Must not contain `:`."""
23
+
24
+ name: Required[str]
25
+ """Display name of the app, shown by Messages' fallback UI."""
26
+
27
+ team_id: Required[str]
28
+ """The app's 10-character uppercase alphanumeric team identifier."""
29
+
30
+ app_store_id: int
31
+ """The owning app's App Store id (optional).
32
+
33
+ When set, recipients without the iMessage app installed see a "Get the app"
34
+ affordance.
35
+ """
36
+
37
+
38
+ class PartIMessageAppPartLayout(TypedDict, total=False):
39
+ """Visible layout of the card.
40
+
41
+ At least one of
42
+ `caption`, `subcaption`, `trailing_caption`, `trailing_subcaption`, or `image_url` must be
43
+ set, otherwise the card renders as an empty bubble.
44
+ """
45
+
46
+ caption: str
47
+ """Primary label, top-left and bold."""
48
+
49
+ image_subtitle: str
50
+ """Overlay text shown below `image_title`. Requires `image_url`."""
51
+
52
+ image_title: str
53
+ """Overlay text shown above the image. Requires `image_url`."""
54
+
55
+ image_url: str
56
+ """Optional HTTPS URL of a preview image.
57
+
58
+ The server downloads it and embeds it in the card as JPEG (10MB max, same fetch
59
+ rules as media parts).
60
+ """
61
+
62
+ subcaption: str
63
+ """Secondary label, below `caption` on the left."""
64
+
65
+ trailing_caption: str
66
+ """Label shown top-right."""
67
+
68
+ trailing_subcaption: str
69
+ """Label shown below `trailing_caption`, on the right."""
70
+
71
+
72
+ class PartIMessageAppPart(TypedDict, total=False):
73
+ """An iMessage app card, backed by a Messages app extension.
74
+
75
+ iMessage only —
76
+ an `imessage_app` part must be the **only** part in the message and is never delivered over
77
+ SMS/RCS. See the IMessageAppServiceUnsupported (2018) and RecipientUnsupportedMessageType
78
+ (4005) error codes.
79
+ """
80
+
81
+ app: Required[PartIMessageAppPartApp]
82
+ """Identifies the iMessage app (Messages app extension) that backs the card."""
83
+
84
+ layout: Required[PartIMessageAppPartLayout]
85
+ """Visible layout of the card.
86
+
87
+ At least one of `caption`, `subcaption`, `trailing_caption`,
88
+ `trailing_subcaption`, or `image_url` must be set, otherwise the card renders as
89
+ an empty bubble.
90
+ """
91
+
92
+ type: Required[Literal["imessage_app"]]
93
+ """Indicates this is an iMessage app card part."""
94
+
95
+ url: Required[str]
96
+ """
97
+ Absolute HTTPS URL delivered to the recipient's installed iMessage app when they
98
+ tap the card. Opaque to Messages.
99
+ """
100
+
101
+ fallback_text: str
102
+ """Text shown on surfaces that cannot render the card (notifications, lock screen).
103
+
104
+ Defaults to the caption when omitted.
105
+ """
106
+
107
+ session_id: str
108
+ """
109
+ Optional client-supplied identifier to correlate updatable/collaborative app
110
+ sessions (advanced). Not interpreted by Synapse.
111
+ """
112
+
113
+
114
+ Part: TypeAlias = Union[TextPartParam, MediaPartParam, LinkPartParam, PartIMessageAppPart]
115
+
116
+
117
+ class MessageContentParam(TypedDict, total=False):
118
+ """Message content container.
119
+
120
+ Groups all message-related fields together,
121
+ separating the "what" (message content) from the "where" (routing fields like from/to).
122
+ """
123
+
124
+ parts: Required[Iterable[Part]]
125
+ """Array of message parts.
126
+
127
+ Each part can be text, media, or link. Parts are displayed in order. Text and
128
+ media can be mixed freely, but a `link` part must be the only part in the
129
+ message.
130
+
131
+ **Rich Link Previews:**
132
+
133
+ - Use a `link` part to send a URL with a rich preview card
134
+ - A `link` part must be the **only** part in the message
135
+ - To send a URL as plain text (no preview), use a `text` part instead
136
+
137
+ **Supported Media:**
138
+
139
+ - Images: .jpg, .jpeg, .png, .gif, .heic, .heif, .tif, .tiff, .bmp
140
+ - Videos: .mp4, .mov, .m4v, .mpeg, .mpg, .3gp
141
+ - Audio: .m4a, .mp3, .aac, .caf, .wav, .aiff, .amr
142
+ - Documents: .pdf, .txt, .rtf, .csv, .doc, .docx, .xls, .xlsx, .ppt, .pptx,
143
+ .pages, .numbers, .key, .epub, .zip, .html, .htm
144
+ - Contact & Calendar: .vcf, .ics
145
+
146
+ **Audio:**
147
+
148
+ - Audio files (.m4a, .mp3, .aac, .caf, .wav, .aiff, .amr) are fully supported as
149
+ media parts
150
+ - To send audio as an **iMessage voice memo bubble** (inline playback UI), use
151
+ the dedicated `/v3/chats/{chatId}/voicememo` endpoint instead
152
+
153
+ **Validation Rules:**
154
+
155
+ - A `link` part must be the **only** part in the message. It cannot be combined
156
+ with text or media parts.
157
+ - Consecutive text parts are not allowed. Text parts must be separated by media
158
+ parts. For example, [text, text] is invalid, but [text, media, text] is valid.
159
+ - Maximum of **100 parts** total.
160
+ - Media parts using a public `url` (downloaded by the server on send) are capped
161
+ at **40**. Parts using `attachment_id` or presigned URLs are exempt from this
162
+ sub-limit. For bulk media sends exceeding 40 files, pre-upload via
163
+ `POST /v3/attachments` and reference by `attachment_id` or `download_url`.
164
+ """
165
+
166
+ effect: MessageEffectParam
167
+ """iMessage effect to apply to this message (screen or bubble effect)"""
168
+
169
+ idempotency_key: str
170
+ """
171
+ Optional idempotency key for this message. Use this to prevent duplicate sends
172
+ of the same message.
173
+ """
174
+
175
+ preferred_service: ServiceType
176
+ """Messaging service type"""
177
+
178
+ reply_to: ReplyToParam
179
+ """Reply to another message to create a threaded conversation"""