linq-python 0.50.0__tar.gz → 0.51.1__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.51.1/.release-please-manifest.json +3 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/CHANGELOG.md +14 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/PKG-INFO +1 -1
- {linq_python-0.50.0 → linq_python-0.51.1}/api.md +6 -1
- {linq_python-0.50.0 → linq_python-0.51.1}/pyproject.toml +1 -1
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_version.py +1 -1
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/chats/location.py +139 -1
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/contact_card.py +16 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/__init__.py +2 -0
- linq_python-0.51.1/src/linq/types/chats/location_stop_params.py +12 -0
- linq_python-0.51.1/src/linq/types/chats/stop_chat_location_sharing_response.py +11 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/chats/test_location.py +97 -1
- {linq_python-0.50.0 → linq_python-0.51.1}/uv.lock +1 -1
- linq_python-0.50.0/.release-please-manifest.json +0 -3
- {linq_python-0.50.0 → linq_python-0.51.1}/.gitignore +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/CONTRIBUTING.md +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/LICENSE +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/README.md +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/SECURITY.md +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/bin/check-release-environment +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/bin/publish-pypi +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/examples/.keep +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/release-please-config.json +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/requirements-dev.lock +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_base_client.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_client.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_compat.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_constants.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_exceptions.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_files.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_models.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_qs.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_resource.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_streaming.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_types.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_compat.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_datetime_parse.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_json.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_logs.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_path.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_proxy.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_reflection.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_resources_proxy.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_streams.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_sync.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_transform.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_typing.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/_utils/_utils.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/lib/.keep +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/pagination.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/py.typed +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/attachments.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/available_number.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/blocked_handles.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/capability.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/chats/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/chats/background.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/chats/chats.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/chats/messages.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/chats/participants.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/chats/polls.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/chats/typing.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/experiences.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/messages/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/messages/messages.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/messages/poll.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/payment_handles.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/payment_providers.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/payment_requests.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/payments.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/phone_numbers.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/phonenumbers.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/webhook_events.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/webhook_subscriptions.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/resources/webhooks.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/attachment_create_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/attachment_create_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/attachment_retrieve_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/available_number_retrieve_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/available_number_retrieve_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/blocked_handle_block_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/blocked_handle_block_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/blocked_handle_entry.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/blocked_handle_list_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/blocked_handle_unblock_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/capability_check_RCS_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/capability_check_i_message_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_background_update_failed_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_background_updated_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_create_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_create_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_created_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_group_icon_update_failed_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_group_icon_updated_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_group_name_update_failed_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_group_name_updated_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_leave_chat_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_list_chats_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_send_voicememo_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_send_voicememo_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_typing_indicator_started_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_typing_indicator_stopped_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_update_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chat_update_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/background_set_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/get_chat_location_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/location_request_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/message_list_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/message_send_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/message_send_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/participant_add_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/participant_add_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/participant_remove_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/participant_remove_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/poll.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/poll_create_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/poll_envelope.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/chats/sent_message.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/connection_created_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/connection_revoked_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/contact_card_create_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/contact_card_received_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/contact_card_retrieve_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/contact_card_retrieve_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/contact_card_update_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/experience_list_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/experience_retrieve_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/handle_check_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/link_part_param.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/location_sharing_started_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/location_sharing_stopped_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/media_part_param.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_add_reaction_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_add_reaction_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_content_param.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_create_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_create_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_delivered_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_edited_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_effect.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_effect_param.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_event_v2.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_failed_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_list_messages_thread_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_read_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_received_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_sent_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_update_app_card_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_update_app_card_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_update_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_update_sticker_placement_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/message_update_sticker_placement_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/messages/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/messages/poll_add_options_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/messages/poll_vote_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/participant_added_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/participant_removed_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_authorized_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_canceled_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_create_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_credentials_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_declined_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_expired_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_handle_connection.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_handle_verify_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_provider.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_provider_connect_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_provider_connect_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_request.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_request_create_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_request_list_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_request_list_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/payment_succeeded_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/phone_number_list_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/phone_number_status_updated_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/phone_number_update_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/phone_number_update_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/phonenumber_list_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/poll_delivered_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/poll_failed_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/poll_reaction_added_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/poll_read_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/poll_received_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/poll_sent_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/poll_updated_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/poll_vote_added_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/poll_vote_removed_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reaction_added_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reaction_event_base.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reaction_removed_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reply_to.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reply_to_param.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reputation_action_item.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reputation_audit.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reputation_audit_started.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reputation_driver.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reputation_driver_key.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reputation_evidence.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reputation_opt_out_chat.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reputation_report.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/reputation_unhealthy_chat.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/schemas_media_part_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/schemas_message_effect.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/schemas_text_part_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/set_contact_card.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared/chat_handle.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared/link_part_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared/media_part_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared/reaction.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared/reaction_type.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared/service_type.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared/text_decoration.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared/text_part_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared_params/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared_params/reaction_type.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared_params/service_type.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/shared_params/text_decoration.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/supported_content_type.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/text_part_param.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/unwrap_webhook_event.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/webhook_event_list_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/webhook_event_type.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/webhook_subscription.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/webhook_subscription_create_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/webhook_subscription_create_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/webhook_subscription_list_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/src/linq/types/webhook_subscription_update_params.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/chats/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/chats/test_background.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/chats/test_messages.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/chats/test_participants.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/chats/test_polls.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/chats/test_typing.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/messages/__init__.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/messages/test_poll.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_attachments.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_available_number.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_blocked_handles.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_capability.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_chats.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_contact_card.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_experiences.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_messages.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_payment_handles.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_payment_providers.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_payment_requests.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_payments.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_phone_numbers.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_phonenumbers.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_webhook_events.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_webhook_subscriptions.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/api_resources/test_webhooks.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/conftest.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/sample_file.txt +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_client.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_extract_files.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_files.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_models.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_qs.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_required_args.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_response.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_streaming.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_transform.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_utils/test_datetime_parse.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_utils/test_json.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_utils/test_path.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_utils/test_proxy.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/test_utils/test_typing.py +0 -0
- {linq_python-0.50.0 → linq_python-0.51.1}/tests/utils.py +0 -0
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.51.1](https://github.com/linq-team/linq-python/compare/v0.51.0...v0.51.1) (2026-09-09)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* add 503 rate limit error responses to contact card endpoints ([8569c35](https://github.com/linq-team/linq-python/commit/8569c356e9f149e9ef5d34d1a00e427e521a831c))
|
|
9
|
+
|
|
10
|
+
## [0.51.0](https://github.com/linq-team/linq-python/compare/v0.50.0...v0.51.0) (2026-09-09)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* add stop location sharing endpoint for chats ([4519df7](https://github.com/linq-team/linq-python/commit/4519df7219e38b11a909ec803f6bdbc0fd733e70))
|
|
16
|
+
|
|
3
17
|
## [0.50.0](https://github.com/linq-team/linq-python/compare/v0.49.0...v0.50.0) (2026-09-09)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: linq-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.51.1
|
|
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
|
|
@@ -80,13 +80,18 @@ Methods:
|
|
|
80
80
|
Types:
|
|
81
81
|
|
|
82
82
|
```python
|
|
83
|
-
from linq.types.chats import
|
|
83
|
+
from linq.types.chats import (
|
|
84
|
+
GetChatLocationResponse,
|
|
85
|
+
LocationRequestResponse,
|
|
86
|
+
StopChatLocationSharingResponse,
|
|
87
|
+
)
|
|
84
88
|
```
|
|
85
89
|
|
|
86
90
|
Methods:
|
|
87
91
|
|
|
88
92
|
- <code title="get /v3/chats/{chatId}/location">client.chats.location.<a href="./src/linq/resources/chats/location.py">retrieve</a>(chat_id) -> <a href="./src/linq/types/chats/get_chat_location_response.py">GetChatLocationResponse</a></code>
|
|
89
93
|
- <code title="post /v3/chats/{chatId}/location/request">client.chats.location.<a href="./src/linq/resources/chats/location.py">request</a>(chat_id) -> <a href="./src/linq/types/chats/location_request_response.py">LocationRequestResponse</a></code>
|
|
94
|
+
- <code title="delete /v3/chats/{chatId}/location">client.chats.location.<a href="./src/linq/resources/chats/location.py">stop</a>(chat_id, \*\*<a href="src/linq/types/chats/location_stop_params.py">params</a>) -> <a href="./src/linq/types/chats/stop_chat_location_sharing_response.py">StopChatLocationSharingResponse</a></code>
|
|
90
95
|
|
|
91
96
|
## Polls
|
|
92
97
|
|
|
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
import httpx
|
|
6
6
|
|
|
7
7
|
from ..._types import Body, Query, Headers, NotGiven, not_given
|
|
8
|
-
from ..._utils import path_template
|
|
8
|
+
from ..._utils import path_template, maybe_transform, async_maybe_transform
|
|
9
9
|
from ..._compat import cached_property
|
|
10
10
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
11
11
|
from ..._response import (
|
|
@@ -14,9 +14,11 @@ from ..._response import (
|
|
|
14
14
|
async_to_raw_response_wrapper,
|
|
15
15
|
async_to_streamed_response_wrapper,
|
|
16
16
|
)
|
|
17
|
+
from ...types.chats import location_stop_params
|
|
17
18
|
from ..._base_client import make_request_options
|
|
18
19
|
from ...types.chats.location_request_response import LocationRequestResponse
|
|
19
20
|
from ...types.chats.get_chat_location_response import GetChatLocationResponse
|
|
21
|
+
from ...types.chats.stop_chat_location_sharing_response import StopChatLocationSharingResponse
|
|
20
22
|
|
|
21
23
|
__all__ = ["LocationResource", "AsyncLocationResource"]
|
|
22
24
|
|
|
@@ -187,6 +189,68 @@ class LocationResource(SyncAPIResource):
|
|
|
187
189
|
cast_to=LocationRequestResponse,
|
|
188
190
|
)
|
|
189
191
|
|
|
192
|
+
def stop(
|
|
193
|
+
self,
|
|
194
|
+
chat_id: str,
|
|
195
|
+
*,
|
|
196
|
+
handle: str,
|
|
197
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
198
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
199
|
+
extra_headers: Headers | None = None,
|
|
200
|
+
extra_query: Query | None = None,
|
|
201
|
+
extra_body: Body | None = None,
|
|
202
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
203
|
+
) -> StopChatLocationSharingResponse:
|
|
204
|
+
"""
|
|
205
|
+
End the location share a contact started with you, as though they had stopped it
|
|
206
|
+
themselves. Their device stops listing you as someone they share with, so they
|
|
207
|
+
can start a fresh share cleanly.
|
|
208
|
+
|
|
209
|
+
Use this to recover when a share has gone stale — coordinates that stop
|
|
210
|
+
advancing, or a share you believe has ended but is still reported as active.
|
|
211
|
+
Without it the only remedy is asking the contact to stop and re-share, which is
|
|
212
|
+
confusing for them because their phone still shows everything as working.
|
|
213
|
+
|
|
214
|
+
This is not reversible from the API. Sharing can only resume when the contact
|
|
215
|
+
starts a new share, so prompt them to re-share afterwards. Request a new one
|
|
216
|
+
with `POST /v3/chats/{chatId}/location/request`.
|
|
217
|
+
|
|
218
|
+
Apple keeps one location-sharing relationship per person rather than per chat,
|
|
219
|
+
so this ends that contact's share everywhere, not only in this chat.
|
|
220
|
+
|
|
221
|
+
`handle` names whose share to end, and is always required — a group chat can
|
|
222
|
+
have several people sharing, and this is not an operation to infer a target for.
|
|
223
|
+
|
|
224
|
+
**This returns `202`, not `200`.** The removal happens on the device that holds
|
|
225
|
+
the sharing relationship, so a success here means the request was accepted, not
|
|
226
|
+
that sharing has ended. Wait for the `location.sharing.stopped` webhook to
|
|
227
|
+
confirm it — that webhook is what tells you the contact's device has actually
|
|
228
|
+
let go.
|
|
229
|
+
|
|
230
|
+
Returns `404` if the contact is not currently sharing.
|
|
231
|
+
|
|
232
|
+
Args:
|
|
233
|
+
handle: Phone number (E.164 format) or email address of the contact whose share to end
|
|
234
|
+
|
|
235
|
+
extra_headers: Send extra headers
|
|
236
|
+
|
|
237
|
+
extra_query: Add additional query parameters to the request
|
|
238
|
+
|
|
239
|
+
extra_body: Add additional JSON properties to the request
|
|
240
|
+
|
|
241
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
242
|
+
"""
|
|
243
|
+
if not chat_id:
|
|
244
|
+
raise ValueError(f"Expected a non-empty value for `chat_id` but received {chat_id!r}")
|
|
245
|
+
return self._delete(
|
|
246
|
+
path_template("/v3/chats/{chat_id}/location", chat_id=chat_id),
|
|
247
|
+
body=maybe_transform({"handle": handle}, location_stop_params.LocationStopParams),
|
|
248
|
+
options=make_request_options(
|
|
249
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
250
|
+
),
|
|
251
|
+
cast_to=StopChatLocationSharingResponse,
|
|
252
|
+
)
|
|
253
|
+
|
|
190
254
|
|
|
191
255
|
class AsyncLocationResource(AsyncAPIResource):
|
|
192
256
|
"""
|
|
@@ -354,6 +418,68 @@ class AsyncLocationResource(AsyncAPIResource):
|
|
|
354
418
|
cast_to=LocationRequestResponse,
|
|
355
419
|
)
|
|
356
420
|
|
|
421
|
+
async def stop(
|
|
422
|
+
self,
|
|
423
|
+
chat_id: str,
|
|
424
|
+
*,
|
|
425
|
+
handle: str,
|
|
426
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
427
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
428
|
+
extra_headers: Headers | None = None,
|
|
429
|
+
extra_query: Query | None = None,
|
|
430
|
+
extra_body: Body | None = None,
|
|
431
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
432
|
+
) -> StopChatLocationSharingResponse:
|
|
433
|
+
"""
|
|
434
|
+
End the location share a contact started with you, as though they had stopped it
|
|
435
|
+
themselves. Their device stops listing you as someone they share with, so they
|
|
436
|
+
can start a fresh share cleanly.
|
|
437
|
+
|
|
438
|
+
Use this to recover when a share has gone stale — coordinates that stop
|
|
439
|
+
advancing, or a share you believe has ended but is still reported as active.
|
|
440
|
+
Without it the only remedy is asking the contact to stop and re-share, which is
|
|
441
|
+
confusing for them because their phone still shows everything as working.
|
|
442
|
+
|
|
443
|
+
This is not reversible from the API. Sharing can only resume when the contact
|
|
444
|
+
starts a new share, so prompt them to re-share afterwards. Request a new one
|
|
445
|
+
with `POST /v3/chats/{chatId}/location/request`.
|
|
446
|
+
|
|
447
|
+
Apple keeps one location-sharing relationship per person rather than per chat,
|
|
448
|
+
so this ends that contact's share everywhere, not only in this chat.
|
|
449
|
+
|
|
450
|
+
`handle` names whose share to end, and is always required — a group chat can
|
|
451
|
+
have several people sharing, and this is not an operation to infer a target for.
|
|
452
|
+
|
|
453
|
+
**This returns `202`, not `200`.** The removal happens on the device that holds
|
|
454
|
+
the sharing relationship, so a success here means the request was accepted, not
|
|
455
|
+
that sharing has ended. Wait for the `location.sharing.stopped` webhook to
|
|
456
|
+
confirm it — that webhook is what tells you the contact's device has actually
|
|
457
|
+
let go.
|
|
458
|
+
|
|
459
|
+
Returns `404` if the contact is not currently sharing.
|
|
460
|
+
|
|
461
|
+
Args:
|
|
462
|
+
handle: Phone number (E.164 format) or email address of the contact whose share to end
|
|
463
|
+
|
|
464
|
+
extra_headers: Send extra headers
|
|
465
|
+
|
|
466
|
+
extra_query: Add additional query parameters to the request
|
|
467
|
+
|
|
468
|
+
extra_body: Add additional JSON properties to the request
|
|
469
|
+
|
|
470
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
471
|
+
"""
|
|
472
|
+
if not chat_id:
|
|
473
|
+
raise ValueError(f"Expected a non-empty value for `chat_id` but received {chat_id!r}")
|
|
474
|
+
return await self._delete(
|
|
475
|
+
path_template("/v3/chats/{chat_id}/location", chat_id=chat_id),
|
|
476
|
+
body=await async_maybe_transform({"handle": handle}, location_stop_params.LocationStopParams),
|
|
477
|
+
options=make_request_options(
|
|
478
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
479
|
+
),
|
|
480
|
+
cast_to=StopChatLocationSharingResponse,
|
|
481
|
+
)
|
|
482
|
+
|
|
357
483
|
|
|
358
484
|
class LocationResourceWithRawResponse:
|
|
359
485
|
def __init__(self, location: LocationResource) -> None:
|
|
@@ -365,6 +491,9 @@ class LocationResourceWithRawResponse:
|
|
|
365
491
|
self.request = to_raw_response_wrapper(
|
|
366
492
|
location.request,
|
|
367
493
|
)
|
|
494
|
+
self.stop = to_raw_response_wrapper(
|
|
495
|
+
location.stop,
|
|
496
|
+
)
|
|
368
497
|
|
|
369
498
|
|
|
370
499
|
class AsyncLocationResourceWithRawResponse:
|
|
@@ -377,6 +506,9 @@ class AsyncLocationResourceWithRawResponse:
|
|
|
377
506
|
self.request = async_to_raw_response_wrapper(
|
|
378
507
|
location.request,
|
|
379
508
|
)
|
|
509
|
+
self.stop = async_to_raw_response_wrapper(
|
|
510
|
+
location.stop,
|
|
511
|
+
)
|
|
380
512
|
|
|
381
513
|
|
|
382
514
|
class LocationResourceWithStreamingResponse:
|
|
@@ -389,6 +521,9 @@ class LocationResourceWithStreamingResponse:
|
|
|
389
521
|
self.request = to_streamed_response_wrapper(
|
|
390
522
|
location.request,
|
|
391
523
|
)
|
|
524
|
+
self.stop = to_streamed_response_wrapper(
|
|
525
|
+
location.stop,
|
|
526
|
+
)
|
|
392
527
|
|
|
393
528
|
|
|
394
529
|
class AsyncLocationResourceWithStreamingResponse:
|
|
@@ -401,3 +536,6 @@ class AsyncLocationResourceWithStreamingResponse:
|
|
|
401
536
|
self.request = async_to_streamed_response_wrapper(
|
|
402
537
|
location.request,
|
|
403
538
|
)
|
|
539
|
+
self.stop = async_to_streamed_response_wrapper(
|
|
540
|
+
location.stop,
|
|
541
|
+
)
|
|
@@ -74,6 +74,10 @@ class ContactCardResource(SyncAPIResource):
|
|
|
74
74
|
If setup does not complete, the response is `500` (`2022`) — call this endpoint
|
|
75
75
|
again.
|
|
76
76
|
|
|
77
|
+
If the upstream write is rate-limited, the response is `503` (`4004`) instead.
|
|
78
|
+
Setup did not complete and the card is not active — wait before retrying,
|
|
79
|
+
because repeated attempts extend the rate limit.
|
|
80
|
+
|
|
77
81
|
**Note:** once a card is active, this endpoint returns `409` (`2014`) so an
|
|
78
82
|
existing card is never overwritten by accident. Use `PATCH /v3/contact_card` to
|
|
79
83
|
change it.
|
|
@@ -177,6 +181,10 @@ class ContactCardResource(SyncAPIResource):
|
|
|
177
181
|
If the update does not complete, the response is `500` (`2022`) — call this
|
|
178
182
|
endpoint again.
|
|
179
183
|
|
|
184
|
+
If the upstream write is rate-limited, the response is `503` (`4004`) instead.
|
|
185
|
+
The update did not reach the line, so the card is left not active — wait before
|
|
186
|
+
retrying, because repeated attempts extend the rate limit.
|
|
187
|
+
|
|
180
188
|
Args:
|
|
181
189
|
phone_number: E.164 phone number of the contact card to update
|
|
182
190
|
|
|
@@ -269,6 +277,10 @@ class AsyncContactCardResource(AsyncAPIResource):
|
|
|
269
277
|
If setup does not complete, the response is `500` (`2022`) — call this endpoint
|
|
270
278
|
again.
|
|
271
279
|
|
|
280
|
+
If the upstream write is rate-limited, the response is `503` (`4004`) instead.
|
|
281
|
+
Setup did not complete and the card is not active — wait before retrying,
|
|
282
|
+
because repeated attempts extend the rate limit.
|
|
283
|
+
|
|
272
284
|
**Note:** once a card is active, this endpoint returns `409` (`2014`) so an
|
|
273
285
|
existing card is never overwritten by accident. Use `PATCH /v3/contact_card` to
|
|
274
286
|
change it.
|
|
@@ -372,6 +384,10 @@ class AsyncContactCardResource(AsyncAPIResource):
|
|
|
372
384
|
If the update does not complete, the response is `500` (`2022`) — call this
|
|
373
385
|
endpoint again.
|
|
374
386
|
|
|
387
|
+
If the upstream write is rate-limited, the response is `503` (`4004`) instead.
|
|
388
|
+
The update did not reach the line, so the card is left not active — wait before
|
|
389
|
+
retrying, because repeated attempts extend the rate limit.
|
|
390
|
+
|
|
375
391
|
Args:
|
|
376
392
|
phone_number: E.164 phone number of the contact card to update
|
|
377
393
|
|
|
@@ -8,6 +8,7 @@ from .poll_envelope import PollEnvelope as PollEnvelope
|
|
|
8
8
|
from .poll_create_params import PollCreateParams as PollCreateParams
|
|
9
9
|
from .message_list_params import MessageListParams as MessageListParams
|
|
10
10
|
from .message_send_params import MessageSendParams as MessageSendParams
|
|
11
|
+
from .location_stop_params import LocationStopParams as LocationStopParams
|
|
11
12
|
from .background_set_params import BackgroundSetParams as BackgroundSetParams
|
|
12
13
|
from .message_send_response import MessageSendResponse as MessageSendResponse
|
|
13
14
|
from .participant_add_params import ParticipantAddParams as ParticipantAddParams
|
|
@@ -16,3 +17,4 @@ from .location_request_response import LocationRequestResponse as LocationReques
|
|
|
16
17
|
from .participant_remove_params import ParticipantRemoveParams as ParticipantRemoveParams
|
|
17
18
|
from .get_chat_location_response import GetChatLocationResponse as GetChatLocationResponse
|
|
18
19
|
from .participant_remove_response import ParticipantRemoveResponse as ParticipantRemoveResponse
|
|
20
|
+
from .stop_chat_location_sharing_response import StopChatLocationSharingResponse as StopChatLocationSharingResponse
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import Required, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["LocationStopParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class LocationStopParams(TypedDict, total=False):
|
|
11
|
+
handle: Required[str]
|
|
12
|
+
"""Phone number (E.164 format) or email address of the contact whose share to end"""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
|
|
5
|
+
__all__ = ["StopChatLocationSharingResponse"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class StopChatLocationSharingResponse(BaseModel):
|
|
9
|
+
message: str
|
|
10
|
+
|
|
11
|
+
success: bool
|
|
@@ -9,7 +9,11 @@ import pytest
|
|
|
9
9
|
|
|
10
10
|
from linq import LinqAPIV3, AsyncLinqAPIV3
|
|
11
11
|
from tests.utils import assert_matches_type
|
|
12
|
-
from linq.types.chats import
|
|
12
|
+
from linq.types.chats import (
|
|
13
|
+
GetChatLocationResponse,
|
|
14
|
+
LocationRequestResponse,
|
|
15
|
+
StopChatLocationSharingResponse,
|
|
16
|
+
)
|
|
13
17
|
|
|
14
18
|
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
|
|
15
19
|
|
|
@@ -101,6 +105,52 @@ class TestLocation:
|
|
|
101
105
|
"",
|
|
102
106
|
)
|
|
103
107
|
|
|
108
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
109
|
+
@parametrize
|
|
110
|
+
def test_method_stop(self, client: LinqAPIV3) -> None:
|
|
111
|
+
location = client.chats.location.stop(
|
|
112
|
+
chat_id="975d0776-bd17-4273-8337-f346b4c661b0",
|
|
113
|
+
handle="+15551234567",
|
|
114
|
+
)
|
|
115
|
+
assert_matches_type(StopChatLocationSharingResponse, location, path=["response"])
|
|
116
|
+
|
|
117
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
118
|
+
@parametrize
|
|
119
|
+
def test_raw_response_stop(self, client: LinqAPIV3) -> None:
|
|
120
|
+
response = client.chats.location.with_raw_response.stop(
|
|
121
|
+
chat_id="975d0776-bd17-4273-8337-f346b4c661b0",
|
|
122
|
+
handle="+15551234567",
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
assert response.is_closed is True
|
|
126
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
127
|
+
location = response.parse()
|
|
128
|
+
assert_matches_type(StopChatLocationSharingResponse, location, path=["response"])
|
|
129
|
+
|
|
130
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
131
|
+
@parametrize
|
|
132
|
+
def test_streaming_response_stop(self, client: LinqAPIV3) -> None:
|
|
133
|
+
with client.chats.location.with_streaming_response.stop(
|
|
134
|
+
chat_id="975d0776-bd17-4273-8337-f346b4c661b0",
|
|
135
|
+
handle="+15551234567",
|
|
136
|
+
) as response:
|
|
137
|
+
assert not response.is_closed
|
|
138
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
139
|
+
|
|
140
|
+
location = response.parse()
|
|
141
|
+
assert_matches_type(StopChatLocationSharingResponse, location, path=["response"])
|
|
142
|
+
|
|
143
|
+
assert cast(Any, response.is_closed) is True
|
|
144
|
+
|
|
145
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
146
|
+
@parametrize
|
|
147
|
+
def test_path_params_stop(self, client: LinqAPIV3) -> None:
|
|
148
|
+
with pytest.raises(ValueError, match=r"Expected a non-empty value for `chat_id` but received ''"):
|
|
149
|
+
client.chats.location.with_raw_response.stop(
|
|
150
|
+
chat_id="",
|
|
151
|
+
handle="+15551234567",
|
|
152
|
+
)
|
|
153
|
+
|
|
104
154
|
|
|
105
155
|
class TestAsyncLocation:
|
|
106
156
|
parametrize = pytest.mark.parametrize(
|
|
@@ -190,3 +240,49 @@ class TestAsyncLocation:
|
|
|
190
240
|
await async_client.chats.location.with_raw_response.request(
|
|
191
241
|
"",
|
|
192
242
|
)
|
|
243
|
+
|
|
244
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
245
|
+
@parametrize
|
|
246
|
+
async def test_method_stop(self, async_client: AsyncLinqAPIV3) -> None:
|
|
247
|
+
location = await async_client.chats.location.stop(
|
|
248
|
+
chat_id="975d0776-bd17-4273-8337-f346b4c661b0",
|
|
249
|
+
handle="+15551234567",
|
|
250
|
+
)
|
|
251
|
+
assert_matches_type(StopChatLocationSharingResponse, location, path=["response"])
|
|
252
|
+
|
|
253
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
254
|
+
@parametrize
|
|
255
|
+
async def test_raw_response_stop(self, async_client: AsyncLinqAPIV3) -> None:
|
|
256
|
+
response = await async_client.chats.location.with_raw_response.stop(
|
|
257
|
+
chat_id="975d0776-bd17-4273-8337-f346b4c661b0",
|
|
258
|
+
handle="+15551234567",
|
|
259
|
+
)
|
|
260
|
+
|
|
261
|
+
assert response.is_closed is True
|
|
262
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
263
|
+
location = await response.parse()
|
|
264
|
+
assert_matches_type(StopChatLocationSharingResponse, location, path=["response"])
|
|
265
|
+
|
|
266
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
267
|
+
@parametrize
|
|
268
|
+
async def test_streaming_response_stop(self, async_client: AsyncLinqAPIV3) -> None:
|
|
269
|
+
async with async_client.chats.location.with_streaming_response.stop(
|
|
270
|
+
chat_id="975d0776-bd17-4273-8337-f346b4c661b0",
|
|
271
|
+
handle="+15551234567",
|
|
272
|
+
) as response:
|
|
273
|
+
assert not response.is_closed
|
|
274
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
275
|
+
|
|
276
|
+
location = await response.parse()
|
|
277
|
+
assert_matches_type(StopChatLocationSharingResponse, location, path=["response"])
|
|
278
|
+
|
|
279
|
+
assert cast(Any, response.is_closed) is True
|
|
280
|
+
|
|
281
|
+
@pytest.mark.skip(reason="Mock server tests are disabled")
|
|
282
|
+
@parametrize
|
|
283
|
+
async def test_path_params_stop(self, async_client: AsyncLinqAPIV3) -> None:
|
|
284
|
+
with pytest.raises(ValueError, match=r"Expected a non-empty value for `chat_id` but received ''"):
|
|
285
|
+
await async_client.chats.location.with_raw_response.stop(
|
|
286
|
+
chat_id="",
|
|
287
|
+
handle="+15551234567",
|
|
288
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|