linq-python 0.20.0__tar.gz → 0.21.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.21.0/.release-please-manifest.json +3 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/CHANGELOG.md +22 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/PKG-INFO +1 -1
- {linq_python-0.20.0 → linq_python-0.21.0}/api.md +14 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/pyproject.toml +1 -1
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_client.py +86 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_version.py +1 -1
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/__init__.py +14 -0
- linq_python-0.21.0/src/linq/resources/blocked_handles.py +368 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/messages/messages.py +22 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/__init__.py +5 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/attachment_create_response.py +3 -1
- linq_python-0.21.0/src/linq/types/blocked_handle_block_params.py +18 -0
- linq_python-0.21.0/src/linq/types/blocked_handle_block_response.py +10 -0
- linq_python-0.21.0/src/linq/types/blocked_handle_entry.py +22 -0
- linq_python-0.21.0/src/linq/types/blocked_handle_list_response.py +13 -0
- linq_python-0.21.0/src/linq/types/blocked_handle_unblock_params.py +12 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat.py +8 -8
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_create_response.py +8 -8
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_created_webhook_event.py +8 -8
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_group_icon_update_failed_webhook_event.py +7 -1
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_group_name_update_failed_webhook_event.py +7 -1
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_edited_webhook_event.py +8 -8
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_event_v2.py +8 -8
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_failed_webhook_event.py +25 -1
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_update_app_card_params.py +43 -2
- linq_python-0.21.0/tests/api_resources/test_blocked_handles.py +237 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_messages.py +10 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/uv.lock +1 -1
- linq_python-0.20.0/.release-please-manifest.json +0 -3
- {linq_python-0.20.0 → linq_python-0.21.0}/.gitignore +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/CONTRIBUTING.md +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/LICENSE +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/README.md +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/SECURITY.md +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/bin/check-release-environment +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/bin/publish-pypi +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/examples/.keep +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/release-please-config.json +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/requirements-dev.lock +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_base_client.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_compat.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_constants.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_exceptions.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_files.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_models.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_qs.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_resource.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_streaming.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_types.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_compat.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_datetime_parse.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_json.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_logs.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_path.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_proxy.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_reflection.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_resources_proxy.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_streams.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_sync.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_transform.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_typing.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/_utils/_utils.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/lib/.keep +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/pagination.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/py.typed +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/attachments.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/available_number.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/capability.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/chats/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/chats/chats.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/chats/location.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/chats/messages.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/chats/participants.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/chats/polls.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/chats/typing.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/contact_card.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/experiences.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/messages/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/messages/poll.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/payment_handles.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/payment_providers.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/payment_requests.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/payments.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/phone_numbers.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/phonenumbers.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/webhook_events.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/webhook_subscriptions.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/resources/webhooks.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/attachment_create_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/attachment_retrieve_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/available_number_retrieve_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/available_number_retrieve_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/capability_check_RCS_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/capability_check_i_message_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_create_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_group_icon_updated_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_group_name_updated_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_leave_chat_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_list_chats_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_send_voicememo_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_send_voicememo_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_typing_indicator_started_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_typing_indicator_stopped_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_update_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chat_update_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/get_chat_location_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/location_request_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/message_list_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/message_send_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/message_send_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/participant_add_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/participant_add_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/participant_remove_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/participant_remove_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/poll.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/poll_create_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/poll_envelope.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/chats/sent_message.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/contact_card_create_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/contact_card_retrieve_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/contact_card_retrieve_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/contact_card_update_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/experience_list_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/experience_retrieve_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/handle_check_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/link_part_param.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/media_part_param.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_add_reaction_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_add_reaction_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_content_param.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_create_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_create_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_delivered_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_effect.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_effect_param.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_list_messages_thread_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_read_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_received_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_sent_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_update_app_card_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/message_update_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/messages/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/messages/poll_add_options_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/messages/poll_vote_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/participant_added_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/participant_removed_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment_create_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment_credentials_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment_handle_connection.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment_handle_verify_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment_provider.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment_provider_connect_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment_provider_connect_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment_request.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment_request_create_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment_request_list_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/payment_request_list_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/phone_number_list_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/phone_number_status_updated_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/phone_number_update_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/phone_number_update_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/phonenumber_list_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/reaction_added_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/reaction_event_base.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/reaction_removed_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/reply_to.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/reply_to_param.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/schemas_media_part_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/schemas_message_effect.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/schemas_text_part_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/set_contact_card.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared/chat_handle.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared/link_part_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared/media_part_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared/reaction.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared/reaction_type.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared/service_type.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared/text_decoration.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared/text_part_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared_params/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared_params/reaction_type.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared_params/service_type.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/shared_params/text_decoration.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/supported_content_type.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/text_part_param.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/unwrap_webhook_event.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/webhook_event_list_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/webhook_event_type.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/webhook_subscription.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/webhook_subscription_create_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/webhook_subscription_create_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/webhook_subscription_list_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/src/linq/types/webhook_subscription_update_params.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/chats/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/chats/test_location.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/chats/test_messages.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/chats/test_participants.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/chats/test_polls.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/chats/test_typing.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/messages/__init__.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/messages/test_poll.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_attachments.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_available_number.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_capability.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_chats.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_contact_card.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_experiences.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_payment_handles.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_payment_providers.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_payment_requests.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_payments.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_phone_numbers.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_phonenumbers.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_webhook_events.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_webhook_subscriptions.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/api_resources/test_webhooks.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/conftest.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/sample_file.txt +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_client.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_extract_files.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_files.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_models.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_qs.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_required_args.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_response.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_streaming.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_transform.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_utils/test_json.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_utils/test_path.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_utils/test_proxy.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/test_utils/test_typing.py +0 -0
- {linq_python-0.20.0 → linq_python-0.21.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.21.0](https://github.com/linq-team/linq-python/compare/v0.20.0...v0.21.0) (2026-08-10)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add blocked handles api for managing inbound message filtering ([b8f2f87](https://github.com/linq-team/linq-python/commit/b8f2f87a8cd442f876fd05a49b79f37f9d8b3cb2))
|
|
9
|
+
* add diagnostic fields to message failure webhook events ([b8f2f87](https://github.com/linq-team/linq-python/commit/b8f2f87a8cd442f876fd05a49b79f37f9d8b3cb2))
|
|
10
|
+
* regenerate SDKs from updated API spec ([b8f2f87](https://github.com/linq-team/linq-python/commit/b8f2f87a8cd442f876fd05a49b79f37f9d8b3cb2))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* clarify opted-out status clearing behavior in chat health ([b8f2f87](https://github.com/linq-team/linq-python/commit/b8f2f87a8cd442f876fd05a49b79f37f9d8b3cb2))
|
|
16
|
+
* clarify stop keyword behavior and matching rules ([b8f2f87](https://github.com/linq-team/linq-python/commit/b8f2f87a8cd442f876fd05a49b79f37f9d8b3cb2))
|
|
17
|
+
* clarify stop keyword behavior for multi-chat replies ([b8f2f87](https://github.com/linq-team/linq-python/commit/b8f2f87a8cd442f876fd05a49b79f37f9d8b3cb2))
|
|
18
|
+
* expand webhook error code documentation for failure events ([b8f2f87](https://github.com/linq-team/linq-python/commit/b8f2f87a8cd442f876fd05a49b79f37f9d8b3cb2))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Documentation
|
|
22
|
+
|
|
23
|
+
* clarify presigned url behavior and configuration ([b8f2f87](https://github.com/linq-team/linq-python/commit/b8f2f87a8cd442f876fd05a49b79f37f9d8b3cb2))
|
|
24
|
+
|
|
3
25
|
## [0.20.0](https://github.com/linq-team/linq-python/compare/v0.19.1...v0.20.0) (2026-08-05)
|
|
4
26
|
|
|
5
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: linq-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.21.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
|
|
@@ -242,6 +242,20 @@ Methods:
|
|
|
242
242
|
- <code title="post /v3/payments/{paymentId}/cancel">client.payments.<a href="./src/linq/resources/payments.py">cancel</a>(payment_id) -> <a href="./src/linq/types/payment.py">Payment</a></code>
|
|
243
243
|
- <code title="get /v3/payments/{paymentId}/credentials">client.payments.<a href="./src/linq/resources/payments.py">credentials</a>(payment_id) -> <a href="./src/linq/types/payment_credentials_response.py">PaymentCredentialsResponse</a></code>
|
|
244
244
|
|
|
245
|
+
# BlockedHandles
|
|
246
|
+
|
|
247
|
+
Types:
|
|
248
|
+
|
|
249
|
+
```python
|
|
250
|
+
from linq.types import BlockedHandleEntry, BlockedHandleListResponse, BlockedHandleBlockResponse
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Methods:
|
|
254
|
+
|
|
255
|
+
- <code title="get /v3/blocked_handles">client.blocked_handles.<a href="./src/linq/resources/blocked_handles.py">list</a>() -> <a href="./src/linq/types/blocked_handle_list_response.py">BlockedHandleListResponse</a></code>
|
|
256
|
+
- <code title="post /v3/blocked_handles">client.blocked_handles.<a href="./src/linq/resources/blocked_handles.py">block</a>(\*\*<a href="src/linq/types/blocked_handle_block_params.py">params</a>) -> <a href="./src/linq/types/blocked_handle_block_response.py">BlockedHandleBlockResponse</a></code>
|
|
257
|
+
- <code title="delete /v3/blocked_handles">client.blocked_handles.<a href="./src/linq/resources/blocked_handles.py">unblock</a>(\*\*<a href="src/linq/types/blocked_handle_unblock_params.py">params</a>) -> None</code>
|
|
258
|
+
|
|
245
259
|
# Experiences
|
|
246
260
|
|
|
247
261
|
Types:
|
|
@@ -48,6 +48,7 @@ if TYPE_CHECKING:
|
|
|
48
48
|
phonenumbers,
|
|
49
49
|
phone_numbers,
|
|
50
50
|
webhook_events,
|
|
51
|
+
blocked_handles,
|
|
51
52
|
payment_handles,
|
|
52
53
|
available_number,
|
|
53
54
|
payment_requests,
|
|
@@ -64,6 +65,7 @@ if TYPE_CHECKING:
|
|
|
64
65
|
from .resources.phonenumbers import PhonenumbersResource, AsyncPhonenumbersResource
|
|
65
66
|
from .resources.phone_numbers import PhoneNumbersResource, AsyncPhoneNumbersResource
|
|
66
67
|
from .resources.webhook_events import WebhookEventsResource, AsyncWebhookEventsResource
|
|
68
|
+
from .resources.blocked_handles import BlockedHandlesResource, AsyncBlockedHandlesResource
|
|
67
69
|
from .resources.payment_handles import PaymentHandlesResource, AsyncPaymentHandlesResource
|
|
68
70
|
from .resources.available_number import AvailableNumberResource, AsyncAvailableNumberResource
|
|
69
71
|
from .resources.payment_requests import PaymentRequestsResource, AsyncPaymentRequestsResource
|
|
@@ -607,6 +609,20 @@ class LinqAPIV3(SyncAPIClient):
|
|
|
607
609
|
|
|
608
610
|
return PaymentsResource(self)
|
|
609
611
|
|
|
612
|
+
@cached_property
|
|
613
|
+
def blocked_handles(self) -> BlockedHandlesResource:
|
|
614
|
+
"""Block handles — phone numbers, email addresses, SMS short codes, or
|
|
615
|
+
sender IDs.
|
|
616
|
+
|
|
617
|
+
Inbound messages from a blocked handle are dropped before
|
|
618
|
+
they reach your webhooks, and direct sends to a blocked handle are
|
|
619
|
+
rejected with `403` (error code `2026`). Group sends that include
|
|
620
|
+
unblocked members are not restricted.
|
|
621
|
+
"""
|
|
622
|
+
from .resources.blocked_handles import BlockedHandlesResource
|
|
623
|
+
|
|
624
|
+
return BlockedHandlesResource(self)
|
|
625
|
+
|
|
610
626
|
@cached_property
|
|
611
627
|
def experiences(self) -> ExperiencesResource:
|
|
612
628
|
"""
|
|
@@ -1561,6 +1577,20 @@ class AsyncLinqAPIV3(AsyncAPIClient):
|
|
|
1561
1577
|
|
|
1562
1578
|
return AsyncPaymentsResource(self)
|
|
1563
1579
|
|
|
1580
|
+
@cached_property
|
|
1581
|
+
def blocked_handles(self) -> AsyncBlockedHandlesResource:
|
|
1582
|
+
"""Block handles — phone numbers, email addresses, SMS short codes, or
|
|
1583
|
+
sender IDs.
|
|
1584
|
+
|
|
1585
|
+
Inbound messages from a blocked handle are dropped before
|
|
1586
|
+
they reach your webhooks, and direct sends to a blocked handle are
|
|
1587
|
+
rejected with `403` (error code `2026`). Group sends that include
|
|
1588
|
+
unblocked members are not restricted.
|
|
1589
|
+
"""
|
|
1590
|
+
from .resources.blocked_handles import AsyncBlockedHandlesResource
|
|
1591
|
+
|
|
1592
|
+
return AsyncBlockedHandlesResource(self)
|
|
1593
|
+
|
|
1564
1594
|
@cached_property
|
|
1565
1595
|
def experiences(self) -> AsyncExperiencesResource:
|
|
1566
1596
|
"""
|
|
@@ -2449,6 +2479,20 @@ class LinqAPIV3WithRawResponse:
|
|
|
2449
2479
|
|
|
2450
2480
|
return PaymentsResourceWithRawResponse(self._client.payments)
|
|
2451
2481
|
|
|
2482
|
+
@cached_property
|
|
2483
|
+
def blocked_handles(self) -> blocked_handles.BlockedHandlesResourceWithRawResponse:
|
|
2484
|
+
"""Block handles — phone numbers, email addresses, SMS short codes, or
|
|
2485
|
+
sender IDs.
|
|
2486
|
+
|
|
2487
|
+
Inbound messages from a blocked handle are dropped before
|
|
2488
|
+
they reach your webhooks, and direct sends to a blocked handle are
|
|
2489
|
+
rejected with `403` (error code `2026`). Group sends that include
|
|
2490
|
+
unblocked members are not restricted.
|
|
2491
|
+
"""
|
|
2492
|
+
from .resources.blocked_handles import BlockedHandlesResourceWithRawResponse
|
|
2493
|
+
|
|
2494
|
+
return BlockedHandlesResourceWithRawResponse(self._client.blocked_handles)
|
|
2495
|
+
|
|
2452
2496
|
@cached_property
|
|
2453
2497
|
def experiences(self) -> experiences.ExperiencesResourceWithRawResponse:
|
|
2454
2498
|
"""
|
|
@@ -3209,6 +3253,20 @@ class AsyncLinqAPIV3WithRawResponse:
|
|
|
3209
3253
|
|
|
3210
3254
|
return AsyncPaymentsResourceWithRawResponse(self._client.payments)
|
|
3211
3255
|
|
|
3256
|
+
@cached_property
|
|
3257
|
+
def blocked_handles(self) -> blocked_handles.AsyncBlockedHandlesResourceWithRawResponse:
|
|
3258
|
+
"""Block handles — phone numbers, email addresses, SMS short codes, or
|
|
3259
|
+
sender IDs.
|
|
3260
|
+
|
|
3261
|
+
Inbound messages from a blocked handle are dropped before
|
|
3262
|
+
they reach your webhooks, and direct sends to a blocked handle are
|
|
3263
|
+
rejected with `403` (error code `2026`). Group sends that include
|
|
3264
|
+
unblocked members are not restricted.
|
|
3265
|
+
"""
|
|
3266
|
+
from .resources.blocked_handles import AsyncBlockedHandlesResourceWithRawResponse
|
|
3267
|
+
|
|
3268
|
+
return AsyncBlockedHandlesResourceWithRawResponse(self._client.blocked_handles)
|
|
3269
|
+
|
|
3212
3270
|
@cached_property
|
|
3213
3271
|
def experiences(self) -> experiences.AsyncExperiencesResourceWithRawResponse:
|
|
3214
3272
|
"""
|
|
@@ -3969,6 +4027,20 @@ class LinqAPIV3WithStreamedResponse:
|
|
|
3969
4027
|
|
|
3970
4028
|
return PaymentsResourceWithStreamingResponse(self._client.payments)
|
|
3971
4029
|
|
|
4030
|
+
@cached_property
|
|
4031
|
+
def blocked_handles(self) -> blocked_handles.BlockedHandlesResourceWithStreamingResponse:
|
|
4032
|
+
"""Block handles — phone numbers, email addresses, SMS short codes, or
|
|
4033
|
+
sender IDs.
|
|
4034
|
+
|
|
4035
|
+
Inbound messages from a blocked handle are dropped before
|
|
4036
|
+
they reach your webhooks, and direct sends to a blocked handle are
|
|
4037
|
+
rejected with `403` (error code `2026`). Group sends that include
|
|
4038
|
+
unblocked members are not restricted.
|
|
4039
|
+
"""
|
|
4040
|
+
from .resources.blocked_handles import BlockedHandlesResourceWithStreamingResponse
|
|
4041
|
+
|
|
4042
|
+
return BlockedHandlesResourceWithStreamingResponse(self._client.blocked_handles)
|
|
4043
|
+
|
|
3972
4044
|
@cached_property
|
|
3973
4045
|
def experiences(self) -> experiences.ExperiencesResourceWithStreamingResponse:
|
|
3974
4046
|
"""
|
|
@@ -4729,6 +4801,20 @@ class AsyncLinqAPIV3WithStreamedResponse:
|
|
|
4729
4801
|
|
|
4730
4802
|
return AsyncPaymentsResourceWithStreamingResponse(self._client.payments)
|
|
4731
4803
|
|
|
4804
|
+
@cached_property
|
|
4805
|
+
def blocked_handles(self) -> blocked_handles.AsyncBlockedHandlesResourceWithStreamingResponse:
|
|
4806
|
+
"""Block handles — phone numbers, email addresses, SMS short codes, or
|
|
4807
|
+
sender IDs.
|
|
4808
|
+
|
|
4809
|
+
Inbound messages from a blocked handle are dropped before
|
|
4810
|
+
they reach your webhooks, and direct sends to a blocked handle are
|
|
4811
|
+
rejected with `403` (error code `2026`). Group sends that include
|
|
4812
|
+
unblocked members are not restricted.
|
|
4813
|
+
"""
|
|
4814
|
+
from .resources.blocked_handles import AsyncBlockedHandlesResourceWithStreamingResponse
|
|
4815
|
+
|
|
4816
|
+
return AsyncBlockedHandlesResourceWithStreamingResponse(self._client.blocked_handles)
|
|
4817
|
+
|
|
4732
4818
|
@cached_property
|
|
4733
4819
|
def experiences(self) -> experiences.AsyncExperiencesResourceWithStreamingResponse:
|
|
4734
4820
|
"""
|
|
@@ -81,6 +81,14 @@ from .webhook_events import (
|
|
|
81
81
|
WebhookEventsResourceWithStreamingResponse,
|
|
82
82
|
AsyncWebhookEventsResourceWithStreamingResponse,
|
|
83
83
|
)
|
|
84
|
+
from .blocked_handles import (
|
|
85
|
+
BlockedHandlesResource,
|
|
86
|
+
AsyncBlockedHandlesResource,
|
|
87
|
+
BlockedHandlesResourceWithRawResponse,
|
|
88
|
+
AsyncBlockedHandlesResourceWithRawResponse,
|
|
89
|
+
BlockedHandlesResourceWithStreamingResponse,
|
|
90
|
+
AsyncBlockedHandlesResourceWithStreamingResponse,
|
|
91
|
+
)
|
|
84
92
|
from .payment_handles import (
|
|
85
93
|
PaymentHandlesResource,
|
|
86
94
|
AsyncPaymentHandlesResource,
|
|
@@ -183,6 +191,12 @@ __all__ = [
|
|
|
183
191
|
"AsyncPaymentsResourceWithRawResponse",
|
|
184
192
|
"PaymentsResourceWithStreamingResponse",
|
|
185
193
|
"AsyncPaymentsResourceWithStreamingResponse",
|
|
194
|
+
"BlockedHandlesResource",
|
|
195
|
+
"AsyncBlockedHandlesResource",
|
|
196
|
+
"BlockedHandlesResourceWithRawResponse",
|
|
197
|
+
"AsyncBlockedHandlesResourceWithRawResponse",
|
|
198
|
+
"BlockedHandlesResourceWithStreamingResponse",
|
|
199
|
+
"AsyncBlockedHandlesResourceWithStreamingResponse",
|
|
186
200
|
"ExperiencesResource",
|
|
187
201
|
"AsyncExperiencesResource",
|
|
188
202
|
"ExperiencesResourceWithRawResponse",
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import httpx
|
|
6
|
+
|
|
7
|
+
from ..types import blocked_handle_block_params, blocked_handle_unblock_params
|
|
8
|
+
from .._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given
|
|
9
|
+
from .._utils import maybe_transform, async_maybe_transform
|
|
10
|
+
from .._compat import cached_property
|
|
11
|
+
from .._resource import SyncAPIResource, AsyncAPIResource
|
|
12
|
+
from .._response import (
|
|
13
|
+
to_raw_response_wrapper,
|
|
14
|
+
to_streamed_response_wrapper,
|
|
15
|
+
async_to_raw_response_wrapper,
|
|
16
|
+
async_to_streamed_response_wrapper,
|
|
17
|
+
)
|
|
18
|
+
from .._base_client import make_request_options
|
|
19
|
+
from ..types.blocked_handle_list_response import BlockedHandleListResponse
|
|
20
|
+
from ..types.blocked_handle_block_response import BlockedHandleBlockResponse
|
|
21
|
+
|
|
22
|
+
__all__ = ["BlockedHandlesResource", "AsyncBlockedHandlesResource"]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class BlockedHandlesResource(SyncAPIResource):
|
|
26
|
+
"""Block handles — phone numbers, email addresses, SMS short codes, or
|
|
27
|
+
sender IDs.
|
|
28
|
+
|
|
29
|
+
Inbound messages from a blocked handle are dropped before
|
|
30
|
+
they reach your webhooks, and direct sends to a blocked handle are
|
|
31
|
+
rejected with `403` (error code `2026`). Group sends that include
|
|
32
|
+
unblocked members are not restricted.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
@cached_property
|
|
36
|
+
def with_raw_response(self) -> BlockedHandlesResourceWithRawResponse:
|
|
37
|
+
"""
|
|
38
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
39
|
+
the raw response object instead of the parsed content.
|
|
40
|
+
|
|
41
|
+
For more information, see https://www.github.com/linq-team/linq-python#accessing-raw-response-data-eg-headers
|
|
42
|
+
"""
|
|
43
|
+
return BlockedHandlesResourceWithRawResponse(self)
|
|
44
|
+
|
|
45
|
+
@cached_property
|
|
46
|
+
def with_streaming_response(self) -> BlockedHandlesResourceWithStreamingResponse:
|
|
47
|
+
"""
|
|
48
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
49
|
+
|
|
50
|
+
For more information, see https://www.github.com/linq-team/linq-python#with_streaming_response
|
|
51
|
+
"""
|
|
52
|
+
return BlockedHandlesResourceWithStreamingResponse(self)
|
|
53
|
+
|
|
54
|
+
def list(
|
|
55
|
+
self,
|
|
56
|
+
*,
|
|
57
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
58
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
59
|
+
extra_headers: Headers | None = None,
|
|
60
|
+
extra_query: Query | None = None,
|
|
61
|
+
extra_body: Body | None = None,
|
|
62
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
63
|
+
) -> BlockedHandleListResponse:
|
|
64
|
+
"""Returns all handles you have blocked.
|
|
65
|
+
|
|
66
|
+
Inbound messages from a blocked handle are
|
|
67
|
+
dropped and produce no webhooks, and direct sends to a blocked handle are
|
|
68
|
+
rejected with `403` (error code `2026`). Group sends that include unblocked
|
|
69
|
+
members are not restricted.
|
|
70
|
+
"""
|
|
71
|
+
return self._get(
|
|
72
|
+
"/v3/blocked_handles",
|
|
73
|
+
options=make_request_options(
|
|
74
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
75
|
+
),
|
|
76
|
+
cast_to=BlockedHandleListResponse,
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
def block(
|
|
80
|
+
self,
|
|
81
|
+
*,
|
|
82
|
+
handle: str,
|
|
83
|
+
reason: str | Omit = omit,
|
|
84
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
85
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
86
|
+
extra_headers: Headers | None = None,
|
|
87
|
+
extra_query: Query | None = None,
|
|
88
|
+
extra_body: Body | None = None,
|
|
89
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
90
|
+
) -> BlockedHandleBlockResponse:
|
|
91
|
+
"""
|
|
92
|
+
Blocks a handle — an E.164 phone number, an email address (iMessage sender), an
|
|
93
|
+
SMS short code (e.g. `262966`), or an alphanumeric sender ID. Inbound messages
|
|
94
|
+
from it are dropped and produce no webhooks, and direct sends to it are rejected
|
|
95
|
+
with `403` (error code `2026`); group sends that include unblocked members are
|
|
96
|
+
not restricted. Blocking is idempotent — re-blocking an already blocked handle
|
|
97
|
+
returns the existing entry.
|
|
98
|
+
|
|
99
|
+
Args:
|
|
100
|
+
handle: The handle to block: an E.164 phone number, an email address, an SMS short code
|
|
101
|
+
(3-8 digits), or an alphanumeric sender ID.
|
|
102
|
+
|
|
103
|
+
reason: Optional free-text note on why the handle was blocked
|
|
104
|
+
|
|
105
|
+
extra_headers: Send extra headers
|
|
106
|
+
|
|
107
|
+
extra_query: Add additional query parameters to the request
|
|
108
|
+
|
|
109
|
+
extra_body: Add additional JSON properties to the request
|
|
110
|
+
|
|
111
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
112
|
+
"""
|
|
113
|
+
return self._post(
|
|
114
|
+
"/v3/blocked_handles",
|
|
115
|
+
body=maybe_transform(
|
|
116
|
+
{
|
|
117
|
+
"handle": handle,
|
|
118
|
+
"reason": reason,
|
|
119
|
+
},
|
|
120
|
+
blocked_handle_block_params.BlockedHandleBlockParams,
|
|
121
|
+
),
|
|
122
|
+
options=make_request_options(
|
|
123
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
124
|
+
),
|
|
125
|
+
cast_to=BlockedHandleBlockResponse,
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
def unblock(
|
|
129
|
+
self,
|
|
130
|
+
*,
|
|
131
|
+
handle: str,
|
|
132
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
133
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
134
|
+
extra_headers: Headers | None = None,
|
|
135
|
+
extra_query: Query | None = None,
|
|
136
|
+
extra_body: Body | None = None,
|
|
137
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
138
|
+
) -> None:
|
|
139
|
+
"""Removes a handle from your blocklist.
|
|
140
|
+
|
|
141
|
+
Inbound messages from it will be delivered
|
|
142
|
+
again and sends to it are allowed again. The handle goes in the request body,
|
|
143
|
+
mirroring block — no URL encoding needed.
|
|
144
|
+
|
|
145
|
+
Args:
|
|
146
|
+
handle: The handle to unblock
|
|
147
|
+
|
|
148
|
+
extra_headers: Send extra headers
|
|
149
|
+
|
|
150
|
+
extra_query: Add additional query parameters to the request
|
|
151
|
+
|
|
152
|
+
extra_body: Add additional JSON properties to the request
|
|
153
|
+
|
|
154
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
155
|
+
"""
|
|
156
|
+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
|
157
|
+
return self._delete(
|
|
158
|
+
"/v3/blocked_handles",
|
|
159
|
+
body=maybe_transform({"handle": handle}, blocked_handle_unblock_params.BlockedHandleUnblockParams),
|
|
160
|
+
options=make_request_options(
|
|
161
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
162
|
+
),
|
|
163
|
+
cast_to=NoneType,
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class AsyncBlockedHandlesResource(AsyncAPIResource):
|
|
168
|
+
"""Block handles — phone numbers, email addresses, SMS short codes, or
|
|
169
|
+
sender IDs.
|
|
170
|
+
|
|
171
|
+
Inbound messages from a blocked handle are dropped before
|
|
172
|
+
they reach your webhooks, and direct sends to a blocked handle are
|
|
173
|
+
rejected with `403` (error code `2026`). Group sends that include
|
|
174
|
+
unblocked members are not restricted.
|
|
175
|
+
"""
|
|
176
|
+
|
|
177
|
+
@cached_property
|
|
178
|
+
def with_raw_response(self) -> AsyncBlockedHandlesResourceWithRawResponse:
|
|
179
|
+
"""
|
|
180
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
181
|
+
the raw response object instead of the parsed content.
|
|
182
|
+
|
|
183
|
+
For more information, see https://www.github.com/linq-team/linq-python#accessing-raw-response-data-eg-headers
|
|
184
|
+
"""
|
|
185
|
+
return AsyncBlockedHandlesResourceWithRawResponse(self)
|
|
186
|
+
|
|
187
|
+
@cached_property
|
|
188
|
+
def with_streaming_response(self) -> AsyncBlockedHandlesResourceWithStreamingResponse:
|
|
189
|
+
"""
|
|
190
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
191
|
+
|
|
192
|
+
For more information, see https://www.github.com/linq-team/linq-python#with_streaming_response
|
|
193
|
+
"""
|
|
194
|
+
return AsyncBlockedHandlesResourceWithStreamingResponse(self)
|
|
195
|
+
|
|
196
|
+
async def list(
|
|
197
|
+
self,
|
|
198
|
+
*,
|
|
199
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
200
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
201
|
+
extra_headers: Headers | None = None,
|
|
202
|
+
extra_query: Query | None = None,
|
|
203
|
+
extra_body: Body | None = None,
|
|
204
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
205
|
+
) -> BlockedHandleListResponse:
|
|
206
|
+
"""Returns all handles you have blocked.
|
|
207
|
+
|
|
208
|
+
Inbound messages from a blocked handle are
|
|
209
|
+
dropped and produce no webhooks, and direct sends to a blocked handle are
|
|
210
|
+
rejected with `403` (error code `2026`). Group sends that include unblocked
|
|
211
|
+
members are not restricted.
|
|
212
|
+
"""
|
|
213
|
+
return await self._get(
|
|
214
|
+
"/v3/blocked_handles",
|
|
215
|
+
options=make_request_options(
|
|
216
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
217
|
+
),
|
|
218
|
+
cast_to=BlockedHandleListResponse,
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
async def block(
|
|
222
|
+
self,
|
|
223
|
+
*,
|
|
224
|
+
handle: str,
|
|
225
|
+
reason: str | Omit = omit,
|
|
226
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
227
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
228
|
+
extra_headers: Headers | None = None,
|
|
229
|
+
extra_query: Query | None = None,
|
|
230
|
+
extra_body: Body | None = None,
|
|
231
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
232
|
+
) -> BlockedHandleBlockResponse:
|
|
233
|
+
"""
|
|
234
|
+
Blocks a handle — an E.164 phone number, an email address (iMessage sender), an
|
|
235
|
+
SMS short code (e.g. `262966`), or an alphanumeric sender ID. Inbound messages
|
|
236
|
+
from it are dropped and produce no webhooks, and direct sends to it are rejected
|
|
237
|
+
with `403` (error code `2026`); group sends that include unblocked members are
|
|
238
|
+
not restricted. Blocking is idempotent — re-blocking an already blocked handle
|
|
239
|
+
returns the existing entry.
|
|
240
|
+
|
|
241
|
+
Args:
|
|
242
|
+
handle: The handle to block: an E.164 phone number, an email address, an SMS short code
|
|
243
|
+
(3-8 digits), or an alphanumeric sender ID.
|
|
244
|
+
|
|
245
|
+
reason: Optional free-text note on why the handle was blocked
|
|
246
|
+
|
|
247
|
+
extra_headers: Send extra headers
|
|
248
|
+
|
|
249
|
+
extra_query: Add additional query parameters to the request
|
|
250
|
+
|
|
251
|
+
extra_body: Add additional JSON properties to the request
|
|
252
|
+
|
|
253
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
254
|
+
"""
|
|
255
|
+
return await self._post(
|
|
256
|
+
"/v3/blocked_handles",
|
|
257
|
+
body=await async_maybe_transform(
|
|
258
|
+
{
|
|
259
|
+
"handle": handle,
|
|
260
|
+
"reason": reason,
|
|
261
|
+
},
|
|
262
|
+
blocked_handle_block_params.BlockedHandleBlockParams,
|
|
263
|
+
),
|
|
264
|
+
options=make_request_options(
|
|
265
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
266
|
+
),
|
|
267
|
+
cast_to=BlockedHandleBlockResponse,
|
|
268
|
+
)
|
|
269
|
+
|
|
270
|
+
async def unblock(
|
|
271
|
+
self,
|
|
272
|
+
*,
|
|
273
|
+
handle: str,
|
|
274
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
275
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
276
|
+
extra_headers: Headers | None = None,
|
|
277
|
+
extra_query: Query | None = None,
|
|
278
|
+
extra_body: Body | None = None,
|
|
279
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
280
|
+
) -> None:
|
|
281
|
+
"""Removes a handle from your blocklist.
|
|
282
|
+
|
|
283
|
+
Inbound messages from it will be delivered
|
|
284
|
+
again and sends to it are allowed again. The handle goes in the request body,
|
|
285
|
+
mirroring block — no URL encoding needed.
|
|
286
|
+
|
|
287
|
+
Args:
|
|
288
|
+
handle: The handle to unblock
|
|
289
|
+
|
|
290
|
+
extra_headers: Send extra headers
|
|
291
|
+
|
|
292
|
+
extra_query: Add additional query parameters to the request
|
|
293
|
+
|
|
294
|
+
extra_body: Add additional JSON properties to the request
|
|
295
|
+
|
|
296
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
297
|
+
"""
|
|
298
|
+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
|
299
|
+
return await self._delete(
|
|
300
|
+
"/v3/blocked_handles",
|
|
301
|
+
body=await async_maybe_transform(
|
|
302
|
+
{"handle": handle}, blocked_handle_unblock_params.BlockedHandleUnblockParams
|
|
303
|
+
),
|
|
304
|
+
options=make_request_options(
|
|
305
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
306
|
+
),
|
|
307
|
+
cast_to=NoneType,
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
class BlockedHandlesResourceWithRawResponse:
|
|
312
|
+
def __init__(self, blocked_handles: BlockedHandlesResource) -> None:
|
|
313
|
+
self._blocked_handles = blocked_handles
|
|
314
|
+
|
|
315
|
+
self.list = to_raw_response_wrapper(
|
|
316
|
+
blocked_handles.list,
|
|
317
|
+
)
|
|
318
|
+
self.block = to_raw_response_wrapper(
|
|
319
|
+
blocked_handles.block,
|
|
320
|
+
)
|
|
321
|
+
self.unblock = to_raw_response_wrapper(
|
|
322
|
+
blocked_handles.unblock,
|
|
323
|
+
)
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
class AsyncBlockedHandlesResourceWithRawResponse:
|
|
327
|
+
def __init__(self, blocked_handles: AsyncBlockedHandlesResource) -> None:
|
|
328
|
+
self._blocked_handles = blocked_handles
|
|
329
|
+
|
|
330
|
+
self.list = async_to_raw_response_wrapper(
|
|
331
|
+
blocked_handles.list,
|
|
332
|
+
)
|
|
333
|
+
self.block = async_to_raw_response_wrapper(
|
|
334
|
+
blocked_handles.block,
|
|
335
|
+
)
|
|
336
|
+
self.unblock = async_to_raw_response_wrapper(
|
|
337
|
+
blocked_handles.unblock,
|
|
338
|
+
)
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
class BlockedHandlesResourceWithStreamingResponse:
|
|
342
|
+
def __init__(self, blocked_handles: BlockedHandlesResource) -> None:
|
|
343
|
+
self._blocked_handles = blocked_handles
|
|
344
|
+
|
|
345
|
+
self.list = to_streamed_response_wrapper(
|
|
346
|
+
blocked_handles.list,
|
|
347
|
+
)
|
|
348
|
+
self.block = to_streamed_response_wrapper(
|
|
349
|
+
blocked_handles.block,
|
|
350
|
+
)
|
|
351
|
+
self.unblock = to_streamed_response_wrapper(
|
|
352
|
+
blocked_handles.unblock,
|
|
353
|
+
)
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
class AsyncBlockedHandlesResourceWithStreamingResponse:
|
|
357
|
+
def __init__(self, blocked_handles: AsyncBlockedHandlesResource) -> None:
|
|
358
|
+
self._blocked_handles = blocked_handles
|
|
359
|
+
|
|
360
|
+
self.list = async_to_streamed_response_wrapper(
|
|
361
|
+
blocked_handles.list,
|
|
362
|
+
)
|
|
363
|
+
self.block = async_to_streamed_response_wrapper(
|
|
364
|
+
blocked_handles.block,
|
|
365
|
+
)
|
|
366
|
+
self.unblock = async_to_streamed_response_wrapper(
|
|
367
|
+
blocked_handles.unblock,
|
|
368
|
+
)
|