telnyx 2.1.4__tar.gz → 2.1.6__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.
Potentially problematic release.
This version of telnyx might be problematic. Click here for more details.
- {telnyx-2.1.4 → telnyx-2.1.6}/PKG-INFO +17 -5
- {telnyx-2.1.4 → telnyx-2.1.6}/README.md +1 -1
- telnyx-2.1.6/VERSION +1 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/setup.py +3 -8
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/__init__.py +1 -1
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/__init__.py +3 -2
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/nested_resource_class_methods.py +16 -4
- telnyx-2.1.4/telnyx/api_resources/call_recording.py → telnyx-2.1.6/telnyx/api_resources/recording.py +3 -7
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/verification.py +3 -1
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/verify.py +8 -2
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/util.py +1 -1
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/PKG-INFO +17 -5
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/SOURCES.txt +2 -1
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_address.py +1 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_call.py +1 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_call_control_application.py +1 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_credential_connection.py +1 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_dynamic_emergency_address.py +1 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_fax_applications.py +1 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_fqdn.py +1 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_ip_connection.py +1 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_outbound_voice_profiles.py +1 -0
- telnyx-2.1.6/tests/api_resources/test_recording.py +170 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_sim_card_group.py +1 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_verification.py +4 -1
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_api_requestor.py +1 -1
- {telnyx-2.1.4 → telnyx-2.1.6}/tox.ini +4 -5
- telnyx-2.1.4/VERSION +0 -1
- {telnyx-2.1.4 → telnyx-2.1.6}/.coveragerc +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/.flake8 +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/CHANGELOG.md +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/LICENSE +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/MANIFEST.in +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/pyproject.toml +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/pytest.ini +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/setup.cfg +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_requestor.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/__init__.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/createable_api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/deletable_api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/listable_api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/singleton_api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/updateable_api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/access_control_ip.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/access_ip_address.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/access_token.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/address.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/advanced_optinoptout.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ai.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/api_key.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/authentication_provider.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/autorechargepreference.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/available_phone_number.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/balance.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/billing.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/billing_group.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/brand.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bucket.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bucket_usage.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bulk_creation.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bulk_credential.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bulk_phone_number_campaign.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bulk_phone_number_operation.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bulk_sole_proprietor_creation.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/business_identity.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/call.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/call_control_application.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/call_information.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/campaign.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/cdr_usage_report.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/comment.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/conference.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/connection.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/credential_connection.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/csv_download.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/custom_storage_credential.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/customer_service_record.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/debugging.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/detail_record.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/detail_records_report.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/dialogflow_integration.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/document.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/dynamic_emergency_address.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/dynamic_emergency_endpoint.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/enum.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/event.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/external_connection.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/fax.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/fax_application.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/fqdn.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/fqdn_connection.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/inbound_channel.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/inventory_coverage.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/inventory_level.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ip.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ip_address.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ip_connection.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ip_range.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/list_object.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/managed_account.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/mdr_detail_report.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/mdr_usage_report.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/media.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/media_storage_api.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/message.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_hosted_number.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_hosted_number_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_phone_number.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_profile.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_tollfree_verification.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_url_domain.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/mobile_network_operator.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/network.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification_channel.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification_event.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification_event_condition.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification_profiles.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification_setting.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_configuration.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_lookup.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_order_phone_number.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_portout.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_reservation.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/numbers_feature.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ota_update.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/outbound_voice_profile.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_assignment_profile.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_block_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_blocks_background_job.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_campaign.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_configuration.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_jobs.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_order_document.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_porting.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_regulatory_requirement.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_reservation.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_search.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/portability_check.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/porting_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/portout.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/presigned_object_url.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/private_wireless_gateway.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/public_internet_gateway.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/public_key.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/push_credential.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/queue.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/queue_command.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/recordings_command.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/region.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/register_call.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/report.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/reporting.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/requirement.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/requirement_type.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/room.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/room_composition.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/room_participant.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/room_recording.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/room_session.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/rooms_client_token.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/shared_campaign.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/short_code.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/sim_card.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/sim_card_action.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/sim_card_group.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/sim_card_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ssl_certificate.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/sub_number_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/telephony_credential.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/texml_application.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/texml_rest_command.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/verified_calls_display_profile.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/verified_number.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/verify_profile.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/virtual_cross_connect.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/wdr_detail_report.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/webhook.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/webhook_deliveries.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/wireguard_interface.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/wireless_detail_record_report.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/error.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/http_client.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/multipart_data_generator.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/request_metrics.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/telnyx_object.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/telnyx_response.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/webhook.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/dependency_links.txt +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/not-zip-safe +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/requires.txt +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/top_level.txt +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/__init__.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/__init__.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/__init__.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_createable_api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_deletable_api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_listable_api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_nested_resource_class_methods.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_singleton_api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_updateable_api_resource.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_access_control_ip.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_authentication_provider.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_available_phone_number.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_balance.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_billing_group.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_campaign.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_comment.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_conference.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_connection.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_custom_storage_credential.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_detail_records_report.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_document.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_fax.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_inbound_channel.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_inventory_coverage.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_list_object.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_managed_account.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_media.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_message.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_messaging_hosted_number.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_messaging_hosted_number_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_messaging_profile.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_notification_channel.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_notification_event.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_notification_event_condition.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_notification_profile.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_notification_setting.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_number_lookup.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_number_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_number_reservation.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_phone_number.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_phone_number_campaign.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_phone_number_job.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_phone_number_regulatory_requirement.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_portability_check.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_porting_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_portout.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_public_key.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_queue.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_room.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_room_participant.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_room_sessions.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_short_code.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_sim_card.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_sim_card_action.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_sim_card_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_sub_number_order.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_verify_profiles.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_webhook_deliveries.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_wireless_details_record_report.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/conftest.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/request_mock.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/telnyx_mock.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_error.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_http_client.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_multipart_data_generator.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_request_metrics.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_telnyx_object.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_telnyx_response.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_util.py +0 -0
- {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_webhook.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: telnyx
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.6
|
|
4
4
|
Summary: Python bindings for the Telnyx API
|
|
5
5
|
Home-page: https://github.com/team-telnyx/telnyx-python
|
|
6
6
|
Author: Telnyx
|
|
@@ -16,7 +16,6 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
16
16
|
Classifier: Operating System :: OS Independent
|
|
17
17
|
Classifier: Programming Language :: Python
|
|
18
18
|
Classifier: Programming Language :: Python :: 3
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.9
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
@@ -24,12 +23,25 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
24
23
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
25
24
|
Classifier: Topic :: Communications :: Telephony
|
|
26
25
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
|
-
Requires-Python: >=3.
|
|
26
|
+
Requires-Python: >=3.9
|
|
28
27
|
Description-Content-Type: text/markdown
|
|
29
28
|
License-File: LICENSE
|
|
30
29
|
Requires-Dist: requests>=2.20
|
|
31
30
|
Requires-Dist: six>=1.16.0
|
|
32
31
|
Requires-Dist: PyNaCl
|
|
32
|
+
Dynamic: author
|
|
33
|
+
Dynamic: author-email
|
|
34
|
+
Dynamic: classifier
|
|
35
|
+
Dynamic: description
|
|
36
|
+
Dynamic: description-content-type
|
|
37
|
+
Dynamic: home-page
|
|
38
|
+
Dynamic: keywords
|
|
39
|
+
Dynamic: license
|
|
40
|
+
Dynamic: license-file
|
|
41
|
+
Dynamic: project-url
|
|
42
|
+
Dynamic: requires-dist
|
|
43
|
+
Dynamic: requires-python
|
|
44
|
+
Dynamic: summary
|
|
33
45
|
|
|
34
46
|
# Telnyx Python Library
|
|
35
47
|
|
|
@@ -79,7 +91,7 @@ into using https://www.piwheels.org/ for ARM compiled wheels.
|
|
|
79
91
|
|
|
80
92
|
### Requirements
|
|
81
93
|
|
|
82
|
-
- Python 3.
|
|
94
|
+
- Python 3.9+ (PyPy supported)
|
|
83
95
|
|
|
84
96
|
#### Additional Requirements for Source Install
|
|
85
97
|
|
telnyx-2.1.6/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.1.5
|
|
@@ -31,7 +31,7 @@ with open(os.path.join(here, "README.md"), encoding="utf-8") as f:
|
|
|
31
31
|
|
|
32
32
|
setup(
|
|
33
33
|
name="telnyx",
|
|
34
|
-
version="2.1.
|
|
34
|
+
version="2.1.6",
|
|
35
35
|
description="Python bindings for the Telnyx API",
|
|
36
36
|
long_description=long_description,
|
|
37
37
|
long_description_content_type="text/markdown",
|
|
@@ -47,12 +47,8 @@ setup(
|
|
|
47
47
|
keywords="telnyx telephony sip networking callcontrol messaging sms mms",
|
|
48
48
|
packages=find_packages(exclude=["tests", "tests.*"]),
|
|
49
49
|
zip_safe=False,
|
|
50
|
-
install_requires=[
|
|
51
|
-
|
|
52
|
-
"six >= 1.16.0",
|
|
53
|
-
"PyNaCl"
|
|
54
|
-
],
|
|
55
|
-
python_requires=">=3.8",
|
|
50
|
+
install_requires=["requests >= 2.20", "six >= 1.16.0", "PyNaCl"],
|
|
51
|
+
python_requires=">=3.9",
|
|
56
52
|
tests_require=[
|
|
57
53
|
"pytest >= 4",
|
|
58
54
|
"pytest-mock >= 1.7",
|
|
@@ -67,7 +63,6 @@ setup(
|
|
|
67
63
|
"Operating System :: OS Independent",
|
|
68
64
|
"Programming Language :: Python",
|
|
69
65
|
"Programming Language :: Python :: 3",
|
|
70
|
-
"Programming Language :: Python :: 3.8",
|
|
71
66
|
"Programming Language :: Python :: 3.9",
|
|
72
67
|
"Programming Language :: Python :: 3.10",
|
|
73
68
|
"Programming Language :: Python :: 3.11",
|
|
@@ -27,7 +27,7 @@ from telnyx.api_resources.business_identity import BusinessIdentity
|
|
|
27
27
|
from telnyx.api_resources.call import Call
|
|
28
28
|
from telnyx.api_resources.call_control_application import CallControlApplication
|
|
29
29
|
from telnyx.api_resources.call_information import CallInformation
|
|
30
|
-
from telnyx.api_resources.
|
|
30
|
+
from telnyx.api_resources.recording import Recording
|
|
31
31
|
from telnyx.api_resources.campaign import Campaign
|
|
32
32
|
from telnyx.api_resources.cdr_usage_report import CdrUsageReport
|
|
33
33
|
from telnyx.api_resources.comment import Comment
|
|
@@ -162,6 +162,7 @@ from telnyx.api_resources.wireless_detail_record_report import (
|
|
|
162
162
|
WirelessDetailRecordsReports,
|
|
163
163
|
)
|
|
164
164
|
|
|
165
|
+
|
|
165
166
|
# flake8: noqa
|
|
166
167
|
|
|
167
168
|
|
|
@@ -191,7 +192,6 @@ __all__ = [
|
|
|
191
192
|
"Call",
|
|
192
193
|
"CallControlApplication",
|
|
193
194
|
"CallInformation",
|
|
194
|
-
"CallRecording",
|
|
195
195
|
"Campaign",
|
|
196
196
|
"CdrUsageReport",
|
|
197
197
|
"Comment",
|
|
@@ -278,6 +278,7 @@ __all__ = [
|
|
|
278
278
|
"Queue",
|
|
279
279
|
"QueueCall",
|
|
280
280
|
"QueueCommand",
|
|
281
|
+
"Recording",
|
|
281
282
|
"RecordingsCommand",
|
|
282
283
|
"Region",
|
|
283
284
|
"RegisterCall",
|
{telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/nested_resource_class_methods.py
RENAMED
|
@@ -28,9 +28,21 @@ def nested_resource_class_methods(
|
|
|
28
28
|
parts.append(quote_plus(id, safe=util.telnyx_valid_id_parts))
|
|
29
29
|
if id is not None:
|
|
30
30
|
if "phone_number" in path:
|
|
31
|
-
parts.append(
|
|
31
|
+
parts.append(
|
|
32
|
+
path.format(
|
|
33
|
+
phone_number=quote_plus(
|
|
34
|
+
id, safe=util.telnyx_valid_id_parts + "+"
|
|
35
|
+
)
|
|
36
|
+
)
|
|
37
|
+
)
|
|
32
38
|
elif "verification_id" in path:
|
|
33
|
-
parts.append(
|
|
39
|
+
parts.append(
|
|
40
|
+
path.format(
|
|
41
|
+
verification_id=quote_plus(
|
|
42
|
+
id, safe=util.telnyx_valid_id_parts
|
|
43
|
+
)
|
|
44
|
+
)
|
|
45
|
+
)
|
|
34
46
|
else:
|
|
35
47
|
parts.append(path)
|
|
36
48
|
else:
|
|
@@ -101,11 +113,11 @@ def nested_resource_class_methods(
|
|
|
101
113
|
|
|
102
114
|
elif operation == "put":
|
|
103
115
|
|
|
104
|
-
def update_nested_resource(cls, id, nested_id, **params):
|
|
116
|
+
def update_nested_resource(cls, id, nested_id=None, **params):
|
|
105
117
|
url = getattr(cls, resource_url_method)(id, nested_id)
|
|
106
118
|
return getattr(cls, resource_request_method)("put", url, **params)
|
|
107
119
|
|
|
108
|
-
update_method = "
|
|
120
|
+
update_method = "put_%s" % resource
|
|
109
121
|
setattr(cls, update_method, classmethod(update_nested_resource))
|
|
110
122
|
|
|
111
123
|
else:
|
telnyx-2.1.4/telnyx/api_resources/call_recording.py → telnyx-2.1.6/telnyx/api_resources/recording.py
RENAMED
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
from __future__ import absolute_import, division, print_function
|
|
2
2
|
|
|
3
3
|
from telnyx.api_resources.abstract import (
|
|
4
|
-
CreateableAPIResource,
|
|
5
4
|
DeletableAPIResource,
|
|
6
5
|
ListableAPIResource,
|
|
7
|
-
UpdateableAPIResource,
|
|
8
6
|
nested_resource_class_methods,
|
|
9
7
|
)
|
|
10
8
|
|
|
11
9
|
|
|
12
10
|
@nested_resource_class_methods("delete", path="actions/delete", operations=["delete"])
|
|
13
|
-
class
|
|
14
|
-
CreateableAPIResource,
|
|
11
|
+
class Recording(
|
|
15
12
|
DeletableAPIResource,
|
|
16
13
|
ListableAPIResource,
|
|
17
|
-
UpdateableAPIResource,
|
|
18
14
|
):
|
|
19
|
-
OBJECT_NAME = "
|
|
15
|
+
OBJECT_NAME = "recording"
|
|
20
16
|
|
|
21
17
|
def delete(self, **params):
|
|
22
|
-
return self.delete_delete(**params)
|
|
18
|
+
return self.delete_delete(self.id, nested_id=None, **params)
|
|
@@ -22,7 +22,9 @@ from telnyx.api_resources.abstract import (
|
|
|
22
22
|
"whatsapp", path="/v2/verifications/whatsapp", operations=["create"]
|
|
23
23
|
)
|
|
24
24
|
@nested_resource_class_methods(
|
|
25
|
-
"verify_by_phone_number",
|
|
25
|
+
"verify_by_phone_number",
|
|
26
|
+
path="by_phone_number/{phone_number}/actions/verify",
|
|
27
|
+
operations=["create"],
|
|
26
28
|
)
|
|
27
29
|
@nested_resource_class_methods(
|
|
28
30
|
"verify_by_id", path="actions/verify", operations=["create"]
|
|
@@ -11,8 +11,14 @@ from telnyx.api_resources.abstract import (
|
|
|
11
11
|
|
|
12
12
|
@nested_resource_class_methods("sms", path="verifications/sms", operations=["create"])
|
|
13
13
|
@nested_resource_class_methods("call", path="verifications/call", operations=["create"])
|
|
14
|
-
@nested_resource_class_methods(
|
|
15
|
-
|
|
14
|
+
@nested_resource_class_methods(
|
|
15
|
+
"flashcall", path="verifications/flashcall", operations=["create"]
|
|
16
|
+
)
|
|
17
|
+
@nested_resource_class_methods(
|
|
18
|
+
"verify",
|
|
19
|
+
path="verifications/{verification_id}/actions/verify",
|
|
20
|
+
operations=["create"],
|
|
21
|
+
)
|
|
16
22
|
class Verify(
|
|
17
23
|
CreateableAPIResource,
|
|
18
24
|
DeletableAPIResource,
|
|
@@ -131,7 +131,7 @@ def load_object_classes():
|
|
|
131
131
|
api_resources.Call.OBJECT_NAME: api_resources.Call,
|
|
132
132
|
api_resources.CallControlApplication.OBJECT_NAME: api_resources.CallControlApplication,
|
|
133
133
|
api_resources.CallInformation.OBJECT_NAME: api_resources.CallInformation,
|
|
134
|
-
api_resources.
|
|
134
|
+
api_resources.Recording.OBJECT_NAME: api_resources.Recording,
|
|
135
135
|
api_resources.Campaign.OBJECT_NAME: api_resources.Campaign,
|
|
136
136
|
api_resources.CdrUsageReport.OBJECT_NAME: api_resources.CdrUsageReport,
|
|
137
137
|
api_resources.Comment.OBJECT_NAME: api_resources.Comment,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: telnyx
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.6
|
|
4
4
|
Summary: Python bindings for the Telnyx API
|
|
5
5
|
Home-page: https://github.com/team-telnyx/telnyx-python
|
|
6
6
|
Author: Telnyx
|
|
@@ -16,7 +16,6 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
16
16
|
Classifier: Operating System :: OS Independent
|
|
17
17
|
Classifier: Programming Language :: Python
|
|
18
18
|
Classifier: Programming Language :: Python :: 3
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.9
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
@@ -24,12 +23,25 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
24
23
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
25
24
|
Classifier: Topic :: Communications :: Telephony
|
|
26
25
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
|
-
Requires-Python: >=3.
|
|
26
|
+
Requires-Python: >=3.9
|
|
28
27
|
Description-Content-Type: text/markdown
|
|
29
28
|
License-File: LICENSE
|
|
30
29
|
Requires-Dist: requests>=2.20
|
|
31
30
|
Requires-Dist: six>=1.16.0
|
|
32
31
|
Requires-Dist: PyNaCl
|
|
32
|
+
Dynamic: author
|
|
33
|
+
Dynamic: author-email
|
|
34
|
+
Dynamic: classifier
|
|
35
|
+
Dynamic: description
|
|
36
|
+
Dynamic: description-content-type
|
|
37
|
+
Dynamic: home-page
|
|
38
|
+
Dynamic: keywords
|
|
39
|
+
Dynamic: license
|
|
40
|
+
Dynamic: license-file
|
|
41
|
+
Dynamic: project-url
|
|
42
|
+
Dynamic: requires-dist
|
|
43
|
+
Dynamic: requires-python
|
|
44
|
+
Dynamic: summary
|
|
33
45
|
|
|
34
46
|
# Telnyx Python Library
|
|
35
47
|
|
|
@@ -79,7 +91,7 @@ into using https://www.piwheels.org/ for ARM compiled wheels.
|
|
|
79
91
|
|
|
80
92
|
### Requirements
|
|
81
93
|
|
|
82
|
-
- Python 3.
|
|
94
|
+
- Python 3.9+ (PyPy supported)
|
|
83
95
|
|
|
84
96
|
#### Additional Requirements for Source Install
|
|
85
97
|
|
|
@@ -52,7 +52,6 @@ telnyx/api_resources/business_identity.py
|
|
|
52
52
|
telnyx/api_resources/call.py
|
|
53
53
|
telnyx/api_resources/call_control_application.py
|
|
54
54
|
telnyx/api_resources/call_information.py
|
|
55
|
-
telnyx/api_resources/call_recording.py
|
|
56
55
|
telnyx/api_resources/campaign.py
|
|
57
56
|
telnyx/api_resources/cdr_usage_report.py
|
|
58
57
|
telnyx/api_resources/comment.py
|
|
@@ -136,6 +135,7 @@ telnyx/api_resources/public_key.py
|
|
|
136
135
|
telnyx/api_resources/push_credential.py
|
|
137
136
|
telnyx/api_resources/queue.py
|
|
138
137
|
telnyx/api_resources/queue_command.py
|
|
138
|
+
telnyx/api_resources/recording.py
|
|
139
139
|
telnyx/api_resources/recordings_command.py
|
|
140
140
|
telnyx/api_resources/region.py
|
|
141
141
|
telnyx/api_resources/register_call.py
|
|
@@ -241,6 +241,7 @@ tests/api_resources/test_porting_order.py
|
|
|
241
241
|
tests/api_resources/test_portout.py
|
|
242
242
|
tests/api_resources/test_public_key.py
|
|
243
243
|
tests/api_resources/test_queue.py
|
|
244
|
+
tests/api_resources/test_recording.py
|
|
244
245
|
tests/api_resources/test_room.py
|
|
245
246
|
tests/api_resources/test_room_participant.py
|
|
246
247
|
tests/api_resources/test_room_sessions.py
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
from __future__ import absolute_import, division, print_function
|
|
2
|
+
|
|
3
|
+
import telnyx
|
|
4
|
+
|
|
5
|
+
TEST_RECORDING_ID = "5e820ca7-a7c9-4724-b7f0-6ac5ac54e5c6"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class TestRecording(object):
|
|
9
|
+
def test_is_listable(self, request_mock):
|
|
10
|
+
"""Test that recordings can be listed"""
|
|
11
|
+
request_mock.stub_request(
|
|
12
|
+
"get",
|
|
13
|
+
"/v2/recordings",
|
|
14
|
+
{
|
|
15
|
+
"data": [
|
|
16
|
+
{
|
|
17
|
+
"record_type": "recording",
|
|
18
|
+
"id": TEST_RECORDING_ID,
|
|
19
|
+
"call_control_id": "v3:MjM0ODE4OC01YzUxLTQ4N2YtOGM3MC0yNzQ2OWFhNzg2YjU",
|
|
20
|
+
"call_leg_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
|
|
21
|
+
"call_session_id": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
|
|
22
|
+
"status": "completed",
|
|
23
|
+
"channels": "single",
|
|
24
|
+
"source": "conference",
|
|
25
|
+
"download_url": "https://example.com/recording.mp3",
|
|
26
|
+
"duration_millis": 5000,
|
|
27
|
+
"created_at": "2018-02-02T22:25:27.521992Z",
|
|
28
|
+
"updated_at": "2018-02-02T22:25:27.521992Z"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
rheaders={"request-id": "req_id"},
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
recordings = telnyx.Recording.list()
|
|
36
|
+
request_mock.assert_requested("get", "/v2/recordings", {})
|
|
37
|
+
assert len(recordings.data) == 1
|
|
38
|
+
assert isinstance(recordings.data[0], telnyx.Recording)
|
|
39
|
+
assert recordings.data[0].id == TEST_RECORDING_ID
|
|
40
|
+
assert recordings.data[0].record_type == "recording"
|
|
41
|
+
assert recordings.data[0].status == "completed"
|
|
42
|
+
|
|
43
|
+
def test_is_listable_with_params(self, request_mock):
|
|
44
|
+
"""Test that recordings can be listed with filter parameters"""
|
|
45
|
+
request_mock.stub_request(
|
|
46
|
+
"get",
|
|
47
|
+
"/v2/recordings",
|
|
48
|
+
{
|
|
49
|
+
"data": [],
|
|
50
|
+
"meta": {
|
|
51
|
+
"total_pages": 1,
|
|
52
|
+
"total_results": 0,
|
|
53
|
+
"page_number": 1,
|
|
54
|
+
"page_size": 20
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
telnyx.Recording.list(
|
|
60
|
+
filter={
|
|
61
|
+
"call_session_id": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
|
|
62
|
+
"status": "completed"
|
|
63
|
+
},
|
|
64
|
+
page={"size": 10}
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
request_mock.assert_requested(
|
|
68
|
+
"get",
|
|
69
|
+
"/v2/recordings",
|
|
70
|
+
{
|
|
71
|
+
"filter[call_session_id]": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
|
|
72
|
+
"filter[status]": "completed",
|
|
73
|
+
"page[size]": 10
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
def test_is_retrievable(self, request_mock):
|
|
78
|
+
"""Test that individual recordings can be retrieved"""
|
|
79
|
+
request_mock.stub_request(
|
|
80
|
+
"get",
|
|
81
|
+
"/v2/recordings/%s" % TEST_RECORDING_ID,
|
|
82
|
+
{
|
|
83
|
+
"data": {
|
|
84
|
+
"record_type": "recording",
|
|
85
|
+
"id": TEST_RECORDING_ID,
|
|
86
|
+
"call_control_id": "v3:MjM0ODE4OC01YzUxLTQ4N2YtOGM3MC0yNzQ2OWFhNzg2YjU",
|
|
87
|
+
"status": "completed",
|
|
88
|
+
"channels": "single",
|
|
89
|
+
"source": "conference",
|
|
90
|
+
"download_url": "https://example.com/recording.mp3",
|
|
91
|
+
"duration_millis": 5000,
|
|
92
|
+
"created_at": "2018-02-02T22:25:27.521992Z",
|
|
93
|
+
"updated_at": "2018-02-02T22:25:27.521992Z"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
recording = telnyx.Recording.retrieve(TEST_RECORDING_ID)
|
|
99
|
+
request_mock.assert_requested("get", "/v2/recordings/%s" % TEST_RECORDING_ID)
|
|
100
|
+
assert isinstance(recording, telnyx.Recording)
|
|
101
|
+
assert recording.id == TEST_RECORDING_ID
|
|
102
|
+
|
|
103
|
+
def test_is_deletable(self, request_mock):
|
|
104
|
+
"""Test that recordings can be deleted"""
|
|
105
|
+
recording = telnyx.Recording.construct_from(
|
|
106
|
+
{
|
|
107
|
+
"id": TEST_RECORDING_ID,
|
|
108
|
+
"record_type": "recording",
|
|
109
|
+
"status": "completed"
|
|
110
|
+
},
|
|
111
|
+
None
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
request_mock.stub_request(
|
|
115
|
+
"delete",
|
|
116
|
+
"/v2/recordings/%s/actions/delete" % TEST_RECORDING_ID,
|
|
117
|
+
{
|
|
118
|
+
"data": {
|
|
119
|
+
"record_type": "recording",
|
|
120
|
+
"id": TEST_RECORDING_ID,
|
|
121
|
+
"status": "deleted"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
recording.delete()
|
|
127
|
+
request_mock.assert_requested(
|
|
128
|
+
"delete", "/v2/recordings/%s/actions/delete" % TEST_RECORDING_ID
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
def test_can_delete_class_method(self, request_mock):
|
|
132
|
+
"""Test that recordings can be deleted using class method"""
|
|
133
|
+
request_mock.stub_request(
|
|
134
|
+
"delete",
|
|
135
|
+
"/v2/recordings/%s/actions/delete" % TEST_RECORDING_ID,
|
|
136
|
+
{
|
|
137
|
+
"data": {
|
|
138
|
+
"record_type": "recording",
|
|
139
|
+
"id": TEST_RECORDING_ID,
|
|
140
|
+
"status": "deleted"
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
# The nested_resource_class_methods decorator requires both id and nested_id
|
|
146
|
+
result = telnyx.Recording.delete_delete(TEST_RECORDING_ID, nested_id=None)
|
|
147
|
+
request_mock.assert_requested(
|
|
148
|
+
"delete", "/v2/recordings/%s/actions/delete" % TEST_RECORDING_ID
|
|
149
|
+
)
|
|
150
|
+
assert isinstance(result, telnyx.Recording)
|
|
151
|
+
|
|
152
|
+
def test_does_not_have_create_method(self):
|
|
153
|
+
"""Test that create method is not available (not supported by API)"""
|
|
154
|
+
assert not hasattr(telnyx.Recording, 'create'), "Recording should not have create method"
|
|
155
|
+
|
|
156
|
+
def test_does_not_have_save_method(self):
|
|
157
|
+
"""Test that save method is not available (not supported by API)"""
|
|
158
|
+
recording = telnyx.Recording.construct_from(
|
|
159
|
+
{"id": TEST_RECORDING_ID, "record_type": "recording"},
|
|
160
|
+
None
|
|
161
|
+
)
|
|
162
|
+
assert not hasattr(recording, 'save'), "Recording should not have save method"
|
|
163
|
+
|
|
164
|
+
def test_class_url(self):
|
|
165
|
+
"""Test that the class generates the correct URL"""
|
|
166
|
+
assert telnyx.Recording.class_url() == "/v2/recordings"
|
|
167
|
+
|
|
168
|
+
def test_object_name(self):
|
|
169
|
+
"""Test that the OBJECT_NAME is correct"""
|
|
170
|
+
assert telnyx.Recording.OBJECT_NAME == "recording"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import pytest
|
|
2
|
+
|
|
2
3
|
import telnyx
|
|
3
4
|
|
|
4
5
|
TEST_RESOURCE_ID = "12ade33a-21c0-473b-b055-b3c836e1c292"
|
|
@@ -37,7 +38,9 @@ class TestVerification(object):
|
|
|
37
38
|
|
|
38
39
|
def test_can_list_verifications(self, request_mock):
|
|
39
40
|
resources = telnyx.Verification.by_phone_number(TEST_PHONE_NUMBER)
|
|
40
|
-
request_mock.assert_requested(
|
|
41
|
+
request_mock.assert_requested(
|
|
42
|
+
"get", "/v2/verifications/by_phone_number/%s" % TEST_PHONE_NUMBER
|
|
43
|
+
)
|
|
41
44
|
assert isinstance(resources.data, list)
|
|
42
45
|
assert isinstance(resources.data[0], telnyx.Verification)
|
|
43
46
|
|
|
@@ -467,7 +467,7 @@ class TestAPIRequestor(object):
|
|
|
467
467
|
|
|
468
468
|
def test_raw_request_with_file_param(self, requestor, mock_response):
|
|
469
469
|
test_file = tempfile.NamedTemporaryFile()
|
|
470
|
-
test_file.write("\
|
|
470
|
+
test_file.write("\u263a".encode("utf-16"))
|
|
471
471
|
test_file.seek(0)
|
|
472
472
|
params = {"file": test_file, "purpose": "dispute_evidence"}
|
|
473
473
|
supplied_headers = {"Content-Type": "multipart/form-data"}
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
# and then run "tox" from this directory.
|
|
5
5
|
|
|
6
6
|
[tox]
|
|
7
|
-
envlist =
|
|
8
|
-
py39,
|
|
7
|
+
envlist = py39,
|
|
9
8
|
py310,
|
|
10
9
|
py311,
|
|
11
10
|
py312,
|
|
@@ -24,12 +23,12 @@ deps =
|
|
|
24
23
|
black
|
|
25
24
|
isort
|
|
26
25
|
commands =
|
|
27
|
-
isort --
|
|
26
|
+
isort --atomic . {posargs}
|
|
28
27
|
black . {posargs}
|
|
29
28
|
|
|
30
29
|
[testenv:lint]
|
|
31
30
|
description = run static analysis and style check using flake8, isort and pylint
|
|
32
|
-
basepython = python3.
|
|
31
|
+
basepython = python3.9
|
|
33
32
|
deps =
|
|
34
33
|
flake8
|
|
35
34
|
isort
|
|
@@ -41,7 +40,7 @@ commands =
|
|
|
41
40
|
|
|
42
41
|
[testenv:pylint]
|
|
43
42
|
description = run static analysis and style check using pylint
|
|
44
|
-
basepython = python3.
|
|
43
|
+
basepython = python3.9
|
|
45
44
|
deps = pylint
|
|
46
45
|
commands =
|
|
47
46
|
pylint telnyx
|
telnyx-2.1.4/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2.1.4
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|