linq-python 0.13.0__tar.gz → 0.15.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- linq_python-0.15.0/.release-please-manifest.json +3 -0
- linq_python-0.15.0/CHANGELOG.md +20 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/PKG-INFO +1 -1
- {linq_python-0.13.0 → linq_python-0.15.0}/pyproject.toml +1 -1
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_version.py +1 -1
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/capability.py +2 -2
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/__init__.py +1 -1
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/capability_check_i_message_params.py +2 -2
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat.py +6 -0
- linq_python-0.15.0/src/linq/types/chats/sent_message.py +139 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message.py +80 -2
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_content_param.py +83 -3
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_event_v2.py +68 -2
- linq_python-0.15.0/src/linq/types/phone_number_list_response.py +99 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/phone_number_status_updated_webhook_event.py +26 -2
- {linq_python-0.13.0 → linq_python-0.15.0}/uv.lock +1 -1
- linq_python-0.13.0/.release-please-manifest.json +0 -3
- linq_python-0.13.0/CHANGELOG.md +0 -8
- linq_python-0.13.0/src/linq/types/chats/sent_message.py +0 -61
- linq_python-0.13.0/src/linq/types/phone_number_list_response.py +0 -60
- {linq_python-0.13.0 → linq_python-0.15.0}/.gitignore +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/CONTRIBUTING.md +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/LICENSE +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/README.md +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/SECURITY.md +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/api.md +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/bin/check-release-environment +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/bin/publish-pypi +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/examples/.keep +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/release-please-config.json +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/requirements-dev.lock +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/__init__.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_base_client.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_client.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_compat.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_constants.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_exceptions.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_files.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_models.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_qs.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_resource.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_streaming.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_types.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/__init__.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_compat.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_datetime_parse.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_json.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_logs.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_path.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_proxy.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_reflection.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_resources_proxy.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_streams.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_sync.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_transform.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_typing.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/_utils/_utils.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/lib/.keep +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/pagination.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/py.typed +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/__init__.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/attachments.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/chats/__init__.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/chats/chats.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/chats/location.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/chats/messages.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/chats/participants.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/chats/typing.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/contact_card.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/messages.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/phone_numbers.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/phonenumbers.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/webhook_events.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/webhook_subscriptions.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/resources/webhooks.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/attachment_create_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/attachment_create_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/attachment_retrieve_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/capability_check_RCS_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_create_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_create_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_created_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_group_icon_update_failed_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_group_icon_updated_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_group_name_update_failed_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_group_name_updated_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_leave_chat_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_list_chats_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_send_voicememo_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_send_voicememo_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_typing_indicator_started_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_typing_indicator_stopped_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_update_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chat_update_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chats/__init__.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chats/get_chat_location_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chats/location_request_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chats/message_list_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chats/message_send_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chats/message_send_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chats/participant_add_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chats/participant_add_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chats/participant_remove_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/chats/participant_remove_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/contact_card_create_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/contact_card_retrieve_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/contact_card_retrieve_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/contact_card_update_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/handle_check_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/link_part_param.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/media_part_param.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_add_reaction_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_add_reaction_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_delivered_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_edited_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_effect.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_effect_param.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_failed_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_list_messages_thread_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_read_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_received_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_sent_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/message_update_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/participant_added_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/participant_removed_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/phonenumber_list_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/reaction_added_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/reaction_event_base.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/reaction_removed_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/reply_to.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/reply_to_param.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/schemas_media_part_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/schemas_message_effect.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/schemas_text_part_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/set_contact_card.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared/__init__.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared/chat_handle.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared/link_part_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared/media_part_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared/reaction.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared/reaction_type.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared/service_type.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared/text_decoration.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared/text_part_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared_params/__init__.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared_params/reaction_type.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared_params/service_type.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/shared_params/text_decoration.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/supported_content_type.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/text_part_param.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/unwrap_webhook_event.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/webhook_event_list_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/webhook_event_type.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/webhook_subscription.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/webhook_subscription_create_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/webhook_subscription_create_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/webhook_subscription_list_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/webhook_subscription_update_params.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/__init__.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/__init__.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/chats/__init__.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/chats/test_location.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/chats/test_messages.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/chats/test_participants.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/chats/test_typing.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/test_attachments.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/test_capability.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/test_chats.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/test_contact_card.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/test_messages.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/test_phone_numbers.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/test_phonenumbers.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/test_webhook_events.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/test_webhook_subscriptions.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/api_resources/test_webhooks.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/conftest.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/sample_file.txt +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_client.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_extract_files.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_files.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_models.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_qs.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_required_args.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_response.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_streaming.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_transform.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_utils/test_json.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_utils/test_path.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_utils/test_proxy.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/test_utils/test_typing.py +0 -0
- {linq_python-0.13.0 → linq_python-0.15.0}/tests/utils.py +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.15.0](https://github.com/linq-team/linq-python/compare/v0.14.0...v0.15.0) (2026-06-21)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* phone line reputation + group chat icon; remove iMessage app image layout & session_id ([#32](https://github.com/linq-team/linq-python/issues/32)) ([736fe20](https://github.com/linq-team/linq-python/commit/736fe201b71b3c3bf88c5621621a0a5fbee4ac56))
|
|
9
|
+
|
|
10
|
+
## [0.14.0](https://github.com/linq-team/linq-python/compare/v0.13.0...v0.14.0) (2026-06-10)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* 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))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* **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.
|
|
3
|
+
Version: 0.15.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
|
|
@@ -82,7 +82,7 @@ class CapabilityResource(SyncAPIResource):
|
|
|
82
82
|
"address": address,
|
|
83
83
|
"from_": from_,
|
|
84
84
|
},
|
|
85
|
-
capability_check_i_message_params.
|
|
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.
|
|
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
|
|
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
|
{linq_python-0.13.0 → linq_python-0.15.0}/src/linq/types/capability_check_i_message_params.py
RENAMED
|
@@ -6,10 +6,10 @@ from typing_extensions import Required, Annotated, TypedDict
|
|
|
6
6
|
|
|
7
7
|
from .._utils import PropertyInfo
|
|
8
8
|
|
|
9
|
-
__all__ = ["
|
|
9
|
+
__all__ = ["CapabilityCheckIMessageParams"]
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
class
|
|
12
|
+
class CapabilityCheckIMessageParams(TypedDict, total=False):
|
|
13
13
|
address: Required[str]
|
|
14
14
|
"""The recipient phone number or email address to check"""
|
|
15
15
|
|
|
@@ -83,5 +83,11 @@ class Chat(BaseModel):
|
|
|
83
83
|
updated_at: datetime
|
|
84
84
|
"""When the chat was last updated"""
|
|
85
85
|
|
|
86
|
+
group_chat_icon: Optional[str] = None
|
|
87
|
+
"""URL of the group chat icon.
|
|
88
|
+
|
|
89
|
+
Only set for group chats that have an icon; `null` otherwise.
|
|
90
|
+
"""
|
|
91
|
+
|
|
86
92
|
service: Optional[ServiceType] = None
|
|
87
93
|
"""Messaging service type"""
|
|
@@ -0,0 +1,139 @@
|
|
|
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`, or `trailing_subcaption` must be set, otherwise
|
|
51
|
+
the card renders as an empty bubble. Any image on the card is drawn by the recipient's
|
|
52
|
+
installed app extension; it cannot be supplied here.
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
caption: Optional[str] = None
|
|
56
|
+
"""Primary label, top-left and bold."""
|
|
57
|
+
|
|
58
|
+
subcaption: Optional[str] = None
|
|
59
|
+
"""Secondary label, below `caption` on the left."""
|
|
60
|
+
|
|
61
|
+
trailing_caption: Optional[str] = None
|
|
62
|
+
"""Label shown top-right."""
|
|
63
|
+
|
|
64
|
+
trailing_subcaption: Optional[str] = None
|
|
65
|
+
"""Label shown below `trailing_caption`, on the right."""
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class PartIMessageAppPartResponse(BaseModel):
|
|
69
|
+
"""An iMessage app card part."""
|
|
70
|
+
|
|
71
|
+
app: PartIMessageAppPartResponseApp
|
|
72
|
+
"""Identifies the iMessage app (Messages app extension) that backs the card."""
|
|
73
|
+
|
|
74
|
+
layout: PartIMessageAppPartResponseLayout
|
|
75
|
+
"""Visible layout of the card.
|
|
76
|
+
|
|
77
|
+
At least one of `caption`, `subcaption`, `trailing_caption`, or
|
|
78
|
+
`trailing_subcaption` must be set, otherwise the card renders as an empty
|
|
79
|
+
bubble. Any image on the card is drawn by the recipient's installed app
|
|
80
|
+
extension; it cannot be supplied here.
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
reactions: Optional[List[Reaction]] = None
|
|
84
|
+
"""Reactions on this message part"""
|
|
85
|
+
|
|
86
|
+
type: Literal["imessage_app"]
|
|
87
|
+
"""Indicates this is an iMessage app card part."""
|
|
88
|
+
|
|
89
|
+
url: str
|
|
90
|
+
"""The URL delivered to the iMessage app on tap."""
|
|
91
|
+
|
|
92
|
+
fallback_text: Optional[str] = None
|
|
93
|
+
"""Fallback text for surfaces that cannot render the card."""
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
Part: TypeAlias = Union[TextPartResponse, MediaPartResponse, LinkPartResponse, PartIMessageAppPartResponse]
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
class SentMessage(BaseModel):
|
|
100
|
+
"""A message that was sent (used in CreateChat and SendMessage responses)"""
|
|
101
|
+
|
|
102
|
+
id: str
|
|
103
|
+
"""Message identifier (UUID)"""
|
|
104
|
+
|
|
105
|
+
created_at: datetime
|
|
106
|
+
"""When the message was created"""
|
|
107
|
+
|
|
108
|
+
delivery_status: Literal["pending", "queued", "sent", "delivered", "received", "read", "failed"]
|
|
109
|
+
"""Current delivery status of a message"""
|
|
110
|
+
|
|
111
|
+
is_read: bool
|
|
112
|
+
"""DEPRECATED: Use `delivery_status == "read"` instead.
|
|
113
|
+
|
|
114
|
+
Whether the message has been read.
|
|
115
|
+
"""
|
|
116
|
+
|
|
117
|
+
parts: List[Part]
|
|
118
|
+
"""Message parts in order (text, media, and link)"""
|
|
119
|
+
|
|
120
|
+
sent_at: Optional[datetime] = None
|
|
121
|
+
"""When the message was actually sent (null if still queued)"""
|
|
122
|
+
|
|
123
|
+
delivered_at: Optional[datetime] = None
|
|
124
|
+
"""When the message was delivered"""
|
|
125
|
+
|
|
126
|
+
effect: Optional[MessageEffect] = None
|
|
127
|
+
"""iMessage effect applied to a message (screen or bubble effect)"""
|
|
128
|
+
|
|
129
|
+
from_handle: Optional[ChatHandle] = None
|
|
130
|
+
"""The sender of this message as a full handle object"""
|
|
131
|
+
|
|
132
|
+
preferred_service: Optional[ServiceType] = None
|
|
133
|
+
"""Messaging service type"""
|
|
134
|
+
|
|
135
|
+
reply_to: Optional[ReplyTo] = None
|
|
136
|
+
"""Indicates this message is a threaded reply to another message"""
|
|
137
|
+
|
|
138
|
+
service: Optional[ServiceType] = None
|
|
139
|
+
"""Messaging service type"""
|
|
@@ -9,15 +9,93 @@ from pydantic import Field as FieldInfo
|
|
|
9
9
|
from .._models import BaseModel
|
|
10
10
|
from .reply_to import ReplyTo
|
|
11
11
|
from .message_effect import MessageEffect
|
|
12
|
+
from .shared.reaction import Reaction
|
|
12
13
|
from .shared.chat_handle import ChatHandle
|
|
13
14
|
from .shared.service_type import ServiceType
|
|
14
15
|
from .shared.link_part_response import LinkPartResponse
|
|
15
16
|
from .shared.text_part_response import TextPartResponse
|
|
16
17
|
from .shared.media_part_response import MediaPartResponse
|
|
17
18
|
|
|
18
|
-
__all__ = [
|
|
19
|
+
__all__ = [
|
|
20
|
+
"Message",
|
|
21
|
+
"Part",
|
|
22
|
+
"PartIMessageAppPartResponse",
|
|
23
|
+
"PartIMessageAppPartResponseApp",
|
|
24
|
+
"PartIMessageAppPartResponseLayout",
|
|
25
|
+
]
|
|
19
26
|
|
|
20
|
-
|
|
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`, or `trailing_subcaption` must be set, otherwise
|
|
53
|
+
the card renders as an empty bubble. Any image on the card is drawn by the recipient's
|
|
54
|
+
installed app extension; it cannot be supplied here.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
caption: Optional[str] = None
|
|
58
|
+
"""Primary label, top-left and bold."""
|
|
59
|
+
|
|
60
|
+
subcaption: Optional[str] = None
|
|
61
|
+
"""Secondary label, below `caption` on the left."""
|
|
62
|
+
|
|
63
|
+
trailing_caption: Optional[str] = None
|
|
64
|
+
"""Label shown top-right."""
|
|
65
|
+
|
|
66
|
+
trailing_subcaption: Optional[str] = None
|
|
67
|
+
"""Label shown below `trailing_caption`, on the right."""
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class PartIMessageAppPartResponse(BaseModel):
|
|
71
|
+
"""An iMessage app card part."""
|
|
72
|
+
|
|
73
|
+
app: PartIMessageAppPartResponseApp
|
|
74
|
+
"""Identifies the iMessage app (Messages app extension) that backs the card."""
|
|
75
|
+
|
|
76
|
+
layout: PartIMessageAppPartResponseLayout
|
|
77
|
+
"""Visible layout of the card.
|
|
78
|
+
|
|
79
|
+
At least one of `caption`, `subcaption`, `trailing_caption`, or
|
|
80
|
+
`trailing_subcaption` must be set, otherwise the card renders as an empty
|
|
81
|
+
bubble. Any image on the card is drawn by the recipient's installed app
|
|
82
|
+
extension; it cannot be supplied here.
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
reactions: Optional[List[Reaction]] = None
|
|
86
|
+
"""Reactions on this message part"""
|
|
87
|
+
|
|
88
|
+
type: Literal["imessage_app"]
|
|
89
|
+
"""Indicates this is an iMessage app card part."""
|
|
90
|
+
|
|
91
|
+
url: str
|
|
92
|
+
"""The URL delivered to the iMessage app on tap."""
|
|
93
|
+
|
|
94
|
+
fallback_text: Optional[str] = None
|
|
95
|
+
"""Fallback text for surfaces that cannot render the card."""
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
Part: TypeAlias = Union[TextPartResponse, MediaPartResponse, LinkPartResponse, PartIMessageAppPartResponse]
|
|
21
99
|
|
|
22
100
|
|
|
23
101
|
class Message(BaseModel):
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
from typing import Union, Iterable
|
|
6
|
-
from typing_extensions import Required, TypeAlias, TypedDict
|
|
6
|
+
from typing_extensions import Literal, Required, TypeAlias, TypedDict
|
|
7
7
|
|
|
8
8
|
from .reply_to_param import ReplyToParam
|
|
9
9
|
from .link_part_param import LinkPartParam
|
|
@@ -12,9 +12,89 @@ from .media_part_param import MediaPartParam
|
|
|
12
12
|
from .shared.service_type import ServiceType
|
|
13
13
|
from .message_effect_param import MessageEffectParam
|
|
14
14
|
|
|
15
|
-
__all__ = ["MessageContentParam", "Part"]
|
|
15
|
+
__all__ = ["MessageContentParam", "Part", "PartIMessageAppPart", "PartIMessageAppPartApp", "PartIMessageAppPartLayout"]
|
|
16
16
|
|
|
17
|
-
|
|
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`, or `trailing_subcaption` must be set, otherwise
|
|
43
|
+
the card renders as an empty bubble. Any image on the card is drawn by the recipient's
|
|
44
|
+
installed app extension; it cannot be supplied here.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
caption: str
|
|
48
|
+
"""Primary label, top-left and bold."""
|
|
49
|
+
|
|
50
|
+
subcaption: str
|
|
51
|
+
"""Secondary label, below `caption` on the left."""
|
|
52
|
+
|
|
53
|
+
trailing_caption: str
|
|
54
|
+
"""Label shown top-right."""
|
|
55
|
+
|
|
56
|
+
trailing_subcaption: str
|
|
57
|
+
"""Label shown below `trailing_caption`, on the right."""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class PartIMessageAppPart(TypedDict, total=False):
|
|
61
|
+
"""An iMessage app card, backed by a Messages app extension.
|
|
62
|
+
|
|
63
|
+
iMessage only —
|
|
64
|
+
an `imessage_app` part must be the **only** part in the message and is never delivered over
|
|
65
|
+
SMS/RCS. See the IMessageAppServiceUnsupported (2018) and RecipientUnsupportedMessageType
|
|
66
|
+
(4005) error codes.
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
app: Required[PartIMessageAppPartApp]
|
|
70
|
+
"""Identifies the iMessage app (Messages app extension) that backs the card."""
|
|
71
|
+
|
|
72
|
+
layout: Required[PartIMessageAppPartLayout]
|
|
73
|
+
"""Visible layout of the card.
|
|
74
|
+
|
|
75
|
+
At least one of `caption`, `subcaption`, `trailing_caption`, or
|
|
76
|
+
`trailing_subcaption` must be set, otherwise the card renders as an empty
|
|
77
|
+
bubble. Any image on the card is drawn by the recipient's installed app
|
|
78
|
+
extension; it cannot be supplied here.
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
type: Required[Literal["imessage_app"]]
|
|
82
|
+
"""Indicates this is an iMessage app card part."""
|
|
83
|
+
|
|
84
|
+
url: Required[str]
|
|
85
|
+
"""
|
|
86
|
+
Absolute HTTPS URL delivered to the recipient's installed iMessage app when they
|
|
87
|
+
tap the card. Opaque to Messages.
|
|
88
|
+
"""
|
|
89
|
+
|
|
90
|
+
fallback_text: str
|
|
91
|
+
"""Text shown on surfaces that cannot render the card (notifications, lock screen).
|
|
92
|
+
|
|
93
|
+
Defaults to the caption when omitted.
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
Part: TypeAlias = Union[TextPartParam, MediaPartParam, LinkPartParam, PartIMessageAppPart]
|
|
18
98
|
|
|
19
99
|
|
|
20
100
|
class MessageContentParam(TypedDict, total=False):
|
|
@@ -12,7 +12,17 @@ from .schemas_message_effect import SchemasMessageEffect
|
|
|
12
12
|
from .schemas_text_part_response import SchemasTextPartResponse
|
|
13
13
|
from .schemas_media_part_response import SchemasMediaPartResponse
|
|
14
14
|
|
|
15
|
-
__all__ = [
|
|
15
|
+
__all__ = [
|
|
16
|
+
"MessageEventV2",
|
|
17
|
+
"Chat",
|
|
18
|
+
"ChatHealthStatus",
|
|
19
|
+
"Part",
|
|
20
|
+
"PartSchemasLinkPartResponse",
|
|
21
|
+
"PartSchemasIMessageAppPartResponse",
|
|
22
|
+
"PartSchemasIMessageAppPartResponseApp",
|
|
23
|
+
"PartSchemasIMessageAppPartResponseLayout",
|
|
24
|
+
"ReplyTo",
|
|
25
|
+
]
|
|
16
26
|
|
|
17
27
|
|
|
18
28
|
class ChatHealthStatus(BaseModel):
|
|
@@ -77,8 +87,64 @@ class PartSchemasLinkPartResponse(BaseModel):
|
|
|
77
87
|
"""The URL"""
|
|
78
88
|
|
|
79
89
|
|
|
90
|
+
class PartSchemasIMessageAppPartResponseApp(BaseModel):
|
|
91
|
+
"""Identifies the iMessage app (Messages app extension) that backs the card."""
|
|
92
|
+
|
|
93
|
+
bundle_id: str
|
|
94
|
+
"""Bundle identifier of the Messages app extension."""
|
|
95
|
+
|
|
96
|
+
name: str
|
|
97
|
+
"""Display name of the app."""
|
|
98
|
+
|
|
99
|
+
team_id: str
|
|
100
|
+
"""The app's 10-character team identifier."""
|
|
101
|
+
|
|
102
|
+
app_store_id: Optional[int] = None
|
|
103
|
+
"""The owning app's App Store id, when known."""
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
class PartSchemasIMessageAppPartResponseLayout(BaseModel):
|
|
107
|
+
"""Visible layout of the card."""
|
|
108
|
+
|
|
109
|
+
caption: Optional[str] = None
|
|
110
|
+
"""Primary label, top-left and bold."""
|
|
111
|
+
|
|
112
|
+
subcaption: Optional[str] = None
|
|
113
|
+
"""Secondary label, below caption on the left."""
|
|
114
|
+
|
|
115
|
+
trailing_caption: Optional[str] = None
|
|
116
|
+
"""Label shown top-right."""
|
|
117
|
+
|
|
118
|
+
trailing_subcaption: Optional[str] = None
|
|
119
|
+
"""Label shown below trailing_caption."""
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class PartSchemasIMessageAppPartResponse(BaseModel):
|
|
123
|
+
"""An iMessage app card part."""
|
|
124
|
+
|
|
125
|
+
app: PartSchemasIMessageAppPartResponseApp
|
|
126
|
+
"""Identifies the iMessage app (Messages app extension) that backs the card."""
|
|
127
|
+
|
|
128
|
+
layout: PartSchemasIMessageAppPartResponseLayout
|
|
129
|
+
"""Visible layout of the card."""
|
|
130
|
+
|
|
131
|
+
type: Literal["imessage_app"]
|
|
132
|
+
"""Indicates this is an iMessage app card part."""
|
|
133
|
+
|
|
134
|
+
url: str
|
|
135
|
+
"""The URL delivered to the iMessage app on tap."""
|
|
136
|
+
|
|
137
|
+
fallback_text: Optional[str] = None
|
|
138
|
+
"""Fallback text for surfaces that cannot render the card."""
|
|
139
|
+
|
|
140
|
+
|
|
80
141
|
Part: TypeAlias = Annotated[
|
|
81
|
-
Union[
|
|
142
|
+
Union[
|
|
143
|
+
SchemasTextPartResponse,
|
|
144
|
+
SchemasMediaPartResponse,
|
|
145
|
+
PartSchemasLinkPartResponse,
|
|
146
|
+
PartSchemasIMessageAppPartResponse,
|
|
147
|
+
],
|
|
82
148
|
PropertyInfo(discriminator="type"),
|
|
83
149
|
]
|
|
84
150
|
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["PhoneNumberListResponse", "PhoneNumber", "PhoneNumberHealthStatus", "PhoneNumberReputation"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class PhoneNumberHealthStatus(BaseModel):
|
|
12
|
+
"""**[BETA]** Current reputation for a phone line.
|
|
13
|
+
|
|
14
|
+
Always present — lines start at `HEALTHY` and may shift based on aggregate engagement and delivery signals across all conversations on the line.
|
|
15
|
+
|
|
16
|
+
Unlike chat health, line reputation does not include `opted_out` — opt-out applies to individual recipients, not the whole line.
|
|
17
|
+
|
|
18
|
+
See the [Phone Health guide](/guides/phone-numbers/phone-health) for what each status means and how to react.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
doc_url: str
|
|
22
|
+
"""Deep-link to the relevant section of the Phone Health guide for this status."""
|
|
23
|
+
|
|
24
|
+
status: Literal["HEALTHY", "AT_RISK", "CRITICAL"]
|
|
25
|
+
"""Current reputation of this phone line as assessed by risk-service.
|
|
26
|
+
|
|
27
|
+
- `HEALTHY` — No elevated risk detected.
|
|
28
|
+
- `AT_RISK` — Elevated risk indicators present; consider reducing send volume or
|
|
29
|
+
reviewing messaging patterns.
|
|
30
|
+
- `CRITICAL` — High risk; further sending may result in line flagging or
|
|
31
|
+
restriction.
|
|
32
|
+
|
|
33
|
+
Defaults to `HEALTHY` for lines that have not yet been scored.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class PhoneNumberReputation(BaseModel):
|
|
38
|
+
"""**[BETA]** Current reputation for a phone line.
|
|
39
|
+
|
|
40
|
+
Always present — lines start at `HEALTHY` and may shift based on aggregate engagement and delivery signals across all conversations on the line.
|
|
41
|
+
|
|
42
|
+
Unlike chat health, line reputation does not include `opted_out` — opt-out applies to individual recipients, not the whole line.
|
|
43
|
+
|
|
44
|
+
See the [Phone Health guide](/guides/phone-numbers/phone-health) for what each status means and how to react.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
doc_url: str
|
|
48
|
+
"""Deep-link to the relevant section of the Phone Health guide for this status."""
|
|
49
|
+
|
|
50
|
+
status: Literal["HEALTHY", "AT_RISK", "CRITICAL"]
|
|
51
|
+
"""Current reputation of this phone line as assessed by risk-service.
|
|
52
|
+
|
|
53
|
+
- `HEALTHY` — No elevated risk detected.
|
|
54
|
+
- `AT_RISK` — Elevated risk indicators present; consider reducing send volume or
|
|
55
|
+
reviewing messaging patterns.
|
|
56
|
+
- `CRITICAL` — High risk; further sending may result in line flagging or
|
|
57
|
+
restriction.
|
|
58
|
+
|
|
59
|
+
Defaults to `HEALTHY` for lines that have not yet been scored.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class PhoneNumber(BaseModel):
|
|
64
|
+
id: str
|
|
65
|
+
"""Unique identifier for the phone number"""
|
|
66
|
+
|
|
67
|
+
health_status: PhoneNumberHealthStatus
|
|
68
|
+
"""**[BETA]** Current reputation for a phone line.
|
|
69
|
+
|
|
70
|
+
Always present — lines start at `HEALTHY` and may shift based on aggregate
|
|
71
|
+
engagement and delivery signals across all conversations on the line.
|
|
72
|
+
|
|
73
|
+
Unlike chat health, line reputation does not include `opted_out` — opt-out
|
|
74
|
+
applies to individual recipients, not the whole line.
|
|
75
|
+
|
|
76
|
+
See the [Phone Health guide](/guides/phone-numbers/phone-health) for what each
|
|
77
|
+
status means and how to react.
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
phone_number: str
|
|
81
|
+
"""Phone number in E.164 format"""
|
|
82
|
+
|
|
83
|
+
reputation: PhoneNumberReputation
|
|
84
|
+
"""**[BETA]** Current reputation for a phone line.
|
|
85
|
+
|
|
86
|
+
Always present — lines start at `HEALTHY` and may shift based on aggregate
|
|
87
|
+
engagement and delivery signals across all conversations on the line.
|
|
88
|
+
|
|
89
|
+
Unlike chat health, line reputation does not include `opted_out` — opt-out
|
|
90
|
+
applies to individual recipients, not the whole line.
|
|
91
|
+
|
|
92
|
+
See the [Phone Health guide](/guides/phone-numbers/phone-health) for what each
|
|
93
|
+
status means and how to react.
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
class PhoneNumberListResponse(BaseModel):
|
|
98
|
+
phone_numbers: List[PhoneNumber]
|
|
99
|
+
"""List of phone numbers assigned to the partner"""
|
|
@@ -15,7 +15,19 @@ class Data(BaseModel):
|
|
|
15
15
|
"""When the status change occurred"""
|
|
16
16
|
|
|
17
17
|
new_health_status: Literal["HEALTHY", "AT_RISK", "CRITICAL"]
|
|
18
|
-
"""
|
|
18
|
+
"""Current reputation of this phone line as assessed by risk-service.
|
|
19
|
+
|
|
20
|
+
- `HEALTHY` — No elevated risk detected.
|
|
21
|
+
- `AT_RISK` — Elevated risk indicators present; consider reducing send volume or
|
|
22
|
+
reviewing messaging patterns.
|
|
23
|
+
- `CRITICAL` — High risk; further sending may result in line flagging or
|
|
24
|
+
restriction.
|
|
25
|
+
|
|
26
|
+
Defaults to `HEALTHY` for lines that have not yet been scored.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
new_reputation: Literal["HEALTHY", "AT_RISK", "CRITICAL"]
|
|
30
|
+
"""The new line reputation"""
|
|
19
31
|
|
|
20
32
|
new_status: Literal["ACTIVE", "FLAGGED"]
|
|
21
33
|
"""The new service status"""
|
|
@@ -24,7 +36,19 @@ class Data(BaseModel):
|
|
|
24
36
|
"""Phone number in E.164 format"""
|
|
25
37
|
|
|
26
38
|
previous_health_status: Literal["HEALTHY", "AT_RISK", "CRITICAL"]
|
|
27
|
-
"""
|
|
39
|
+
"""Current reputation of this phone line as assessed by risk-service.
|
|
40
|
+
|
|
41
|
+
- `HEALTHY` — No elevated risk detected.
|
|
42
|
+
- `AT_RISK` — Elevated risk indicators present; consider reducing send volume or
|
|
43
|
+
reviewing messaging patterns.
|
|
44
|
+
- `CRITICAL` — High risk; further sending may result in line flagging or
|
|
45
|
+
restriction.
|
|
46
|
+
|
|
47
|
+
Defaults to `HEALTHY` for lines that have not yet been scored.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
previous_reputation: Literal["HEALTHY", "AT_RISK", "CRITICAL"]
|
|
51
|
+
"""The previous line reputation"""
|
|
28
52
|
|
|
29
53
|
previous_status: Literal["ACTIVE", "FLAGGED"]
|
|
30
54
|
"""The previous service status"""
|