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.

Files changed (267) hide show
  1. {telnyx-2.1.4 → telnyx-2.1.6}/PKG-INFO +17 -5
  2. {telnyx-2.1.4 → telnyx-2.1.6}/README.md +1 -1
  3. telnyx-2.1.6/VERSION +1 -0
  4. {telnyx-2.1.4 → telnyx-2.1.6}/setup.py +3 -8
  5. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/__init__.py +1 -1
  6. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/__init__.py +3 -2
  7. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/nested_resource_class_methods.py +16 -4
  8. telnyx-2.1.4/telnyx/api_resources/call_recording.py → telnyx-2.1.6/telnyx/api_resources/recording.py +3 -7
  9. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/verification.py +3 -1
  10. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/verify.py +8 -2
  11. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/util.py +1 -1
  12. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/PKG-INFO +17 -5
  13. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/SOURCES.txt +2 -1
  14. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_address.py +1 -0
  15. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_call.py +1 -0
  16. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_call_control_application.py +1 -0
  17. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_credential_connection.py +1 -0
  18. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_dynamic_emergency_address.py +1 -0
  19. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_fax_applications.py +1 -0
  20. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_fqdn.py +1 -0
  21. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_ip_connection.py +1 -0
  22. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_outbound_voice_profiles.py +1 -0
  23. telnyx-2.1.6/tests/api_resources/test_recording.py +170 -0
  24. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_sim_card_group.py +1 -0
  25. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_verification.py +4 -1
  26. {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_api_requestor.py +1 -1
  27. {telnyx-2.1.4 → telnyx-2.1.6}/tox.ini +4 -5
  28. telnyx-2.1.4/VERSION +0 -1
  29. {telnyx-2.1.4 → telnyx-2.1.6}/.coveragerc +0 -0
  30. {telnyx-2.1.4 → telnyx-2.1.6}/.flake8 +0 -0
  31. {telnyx-2.1.4 → telnyx-2.1.6}/CHANGELOG.md +0 -0
  32. {telnyx-2.1.4 → telnyx-2.1.6}/LICENSE +0 -0
  33. {telnyx-2.1.4 → telnyx-2.1.6}/MANIFEST.in +0 -0
  34. {telnyx-2.1.4 → telnyx-2.1.6}/pyproject.toml +0 -0
  35. {telnyx-2.1.4 → telnyx-2.1.6}/pytest.ini +0 -0
  36. {telnyx-2.1.4 → telnyx-2.1.6}/setup.cfg +0 -0
  37. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_requestor.py +0 -0
  38. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/__init__.py +0 -0
  39. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/api_resource.py +0 -0
  40. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/createable_api_resource.py +0 -0
  41. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/deletable_api_resource.py +0 -0
  42. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/listable_api_resource.py +0 -0
  43. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/singleton_api_resource.py +0 -0
  44. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/abstract/updateable_api_resource.py +0 -0
  45. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/access_control_ip.py +0 -0
  46. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/access_ip_address.py +0 -0
  47. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/access_token.py +0 -0
  48. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/address.py +0 -0
  49. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/advanced_optinoptout.py +0 -0
  50. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ai.py +0 -0
  51. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/api_key.py +0 -0
  52. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/authentication_provider.py +0 -0
  53. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/autorechargepreference.py +0 -0
  54. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/available_phone_number.py +0 -0
  55. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/balance.py +0 -0
  56. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/billing.py +0 -0
  57. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/billing_group.py +0 -0
  58. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/brand.py +0 -0
  59. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bucket.py +0 -0
  60. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bucket_usage.py +0 -0
  61. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bulk_creation.py +0 -0
  62. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bulk_credential.py +0 -0
  63. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bulk_phone_number_campaign.py +0 -0
  64. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bulk_phone_number_operation.py +0 -0
  65. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/bulk_sole_proprietor_creation.py +0 -0
  66. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/business_identity.py +0 -0
  67. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/call.py +0 -0
  68. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/call_control_application.py +0 -0
  69. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/call_information.py +0 -0
  70. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/campaign.py +0 -0
  71. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/cdr_usage_report.py +0 -0
  72. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/comment.py +0 -0
  73. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/conference.py +0 -0
  74. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/connection.py +0 -0
  75. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/credential_connection.py +0 -0
  76. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/csv_download.py +0 -0
  77. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/custom_storage_credential.py +0 -0
  78. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/customer_service_record.py +0 -0
  79. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/debugging.py +0 -0
  80. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/detail_record.py +0 -0
  81. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/detail_records_report.py +0 -0
  82. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/dialogflow_integration.py +0 -0
  83. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/document.py +0 -0
  84. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/dynamic_emergency_address.py +0 -0
  85. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/dynamic_emergency_endpoint.py +0 -0
  86. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/enum.py +0 -0
  87. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/event.py +0 -0
  88. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/external_connection.py +0 -0
  89. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/fax.py +0 -0
  90. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/fax_application.py +0 -0
  91. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/fqdn.py +0 -0
  92. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/fqdn_connection.py +0 -0
  93. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/inbound_channel.py +0 -0
  94. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/inventory_coverage.py +0 -0
  95. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/inventory_level.py +0 -0
  96. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ip.py +0 -0
  97. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ip_address.py +0 -0
  98. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ip_connection.py +0 -0
  99. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ip_range.py +0 -0
  100. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/list_object.py +0 -0
  101. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/managed_account.py +0 -0
  102. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/mdr_detail_report.py +0 -0
  103. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/mdr_usage_report.py +0 -0
  104. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/media.py +0 -0
  105. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/media_storage_api.py +0 -0
  106. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/message.py +0 -0
  107. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_hosted_number.py +0 -0
  108. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_hosted_number_order.py +0 -0
  109. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_phone_number.py +0 -0
  110. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_profile.py +0 -0
  111. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_tollfree_verification.py +0 -0
  112. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/messaging_url_domain.py +0 -0
  113. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/mobile_network_operator.py +0 -0
  114. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/network.py +0 -0
  115. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification.py +0 -0
  116. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification_channel.py +0 -0
  117. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification_event.py +0 -0
  118. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification_event_condition.py +0 -0
  119. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification_profiles.py +0 -0
  120. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/notification_setting.py +0 -0
  121. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_configuration.py +0 -0
  122. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_lookup.py +0 -0
  123. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_order.py +0 -0
  124. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_order_phone_number.py +0 -0
  125. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_portout.py +0 -0
  126. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/number_reservation.py +0 -0
  127. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/numbers_feature.py +0 -0
  128. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ota_update.py +0 -0
  129. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/outbound_voice_profile.py +0 -0
  130. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_assignment_profile.py +0 -0
  131. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number.py +0 -0
  132. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_block_order.py +0 -0
  133. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_blocks_background_job.py +0 -0
  134. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_campaign.py +0 -0
  135. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_configuration.py +0 -0
  136. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_jobs.py +0 -0
  137. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_order.py +0 -0
  138. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_order_document.py +0 -0
  139. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_porting.py +0 -0
  140. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_regulatory_requirement.py +0 -0
  141. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_reservation.py +0 -0
  142. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/phone_number_search.py +0 -0
  143. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/portability_check.py +0 -0
  144. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/porting_order.py +0 -0
  145. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/portout.py +0 -0
  146. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/presigned_object_url.py +0 -0
  147. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/private_wireless_gateway.py +0 -0
  148. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/public_internet_gateway.py +0 -0
  149. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/public_key.py +0 -0
  150. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/push_credential.py +0 -0
  151. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/queue.py +0 -0
  152. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/queue_command.py +0 -0
  153. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/recordings_command.py +0 -0
  154. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/region.py +0 -0
  155. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/register_call.py +0 -0
  156. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/report.py +0 -0
  157. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/reporting.py +0 -0
  158. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/requirement.py +0 -0
  159. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/requirement_type.py +0 -0
  160. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/room.py +0 -0
  161. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/room_composition.py +0 -0
  162. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/room_participant.py +0 -0
  163. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/room_recording.py +0 -0
  164. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/room_session.py +0 -0
  165. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/rooms_client_token.py +0 -0
  166. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/shared_campaign.py +0 -0
  167. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/short_code.py +0 -0
  168. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/sim_card.py +0 -0
  169. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/sim_card_action.py +0 -0
  170. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/sim_card_group.py +0 -0
  171. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/sim_card_order.py +0 -0
  172. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/ssl_certificate.py +0 -0
  173. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/sub_number_order.py +0 -0
  174. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/telephony_credential.py +0 -0
  175. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/texml_application.py +0 -0
  176. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/texml_rest_command.py +0 -0
  177. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/verified_calls_display_profile.py +0 -0
  178. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/verified_number.py +0 -0
  179. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/verify_profile.py +0 -0
  180. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/virtual_cross_connect.py +0 -0
  181. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/wdr_detail_report.py +0 -0
  182. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/webhook.py +0 -0
  183. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/webhook_deliveries.py +0 -0
  184. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/wireguard_interface.py +0 -0
  185. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/api_resources/wireless_detail_record_report.py +0 -0
  186. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/error.py +0 -0
  187. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/http_client.py +0 -0
  188. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/multipart_data_generator.py +0 -0
  189. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/request_metrics.py +0 -0
  190. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/telnyx_object.py +0 -0
  191. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/telnyx_response.py +0 -0
  192. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx/webhook.py +0 -0
  193. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/dependency_links.txt +0 -0
  194. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/not-zip-safe +0 -0
  195. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/requires.txt +0 -0
  196. {telnyx-2.1.4 → telnyx-2.1.6}/telnyx.egg-info/top_level.txt +0 -0
  197. {telnyx-2.1.4 → telnyx-2.1.6}/tests/__init__.py +0 -0
  198. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/__init__.py +0 -0
  199. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/__init__.py +0 -0
  200. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_api_resource.py +0 -0
  201. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_createable_api_resource.py +0 -0
  202. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_deletable_api_resource.py +0 -0
  203. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_listable_api_resource.py +0 -0
  204. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_nested_resource_class_methods.py +0 -0
  205. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_singleton_api_resource.py +0 -0
  206. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/abstract/test_updateable_api_resource.py +0 -0
  207. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_access_control_ip.py +0 -0
  208. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_authentication_provider.py +0 -0
  209. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_available_phone_number.py +0 -0
  210. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_balance.py +0 -0
  211. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_billing_group.py +0 -0
  212. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_campaign.py +0 -0
  213. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_comment.py +0 -0
  214. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_conference.py +0 -0
  215. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_connection.py +0 -0
  216. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_custom_storage_credential.py +0 -0
  217. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_detail_records_report.py +0 -0
  218. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_document.py +0 -0
  219. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_fax.py +0 -0
  220. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_inbound_channel.py +0 -0
  221. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_inventory_coverage.py +0 -0
  222. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_list_object.py +0 -0
  223. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_managed_account.py +0 -0
  224. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_media.py +0 -0
  225. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_message.py +0 -0
  226. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_messaging_hosted_number.py +0 -0
  227. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_messaging_hosted_number_order.py +0 -0
  228. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_messaging_profile.py +0 -0
  229. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_notification_channel.py +0 -0
  230. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_notification_event.py +0 -0
  231. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_notification_event_condition.py +0 -0
  232. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_notification_profile.py +0 -0
  233. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_notification_setting.py +0 -0
  234. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_number_lookup.py +0 -0
  235. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_number_order.py +0 -0
  236. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_number_reservation.py +0 -0
  237. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_phone_number.py +0 -0
  238. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_phone_number_campaign.py +0 -0
  239. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_phone_number_job.py +0 -0
  240. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_phone_number_regulatory_requirement.py +0 -0
  241. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_portability_check.py +0 -0
  242. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_porting_order.py +0 -0
  243. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_portout.py +0 -0
  244. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_public_key.py +0 -0
  245. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_queue.py +0 -0
  246. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_room.py +0 -0
  247. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_room_participant.py +0 -0
  248. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_room_sessions.py +0 -0
  249. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_short_code.py +0 -0
  250. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_sim_card.py +0 -0
  251. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_sim_card_action.py +0 -0
  252. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_sim_card_order.py +0 -0
  253. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_sub_number_order.py +0 -0
  254. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_verify_profiles.py +0 -0
  255. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_webhook_deliveries.py +0 -0
  256. {telnyx-2.1.4 → telnyx-2.1.6}/tests/api_resources/test_wireless_details_record_report.py +0 -0
  257. {telnyx-2.1.4 → telnyx-2.1.6}/tests/conftest.py +0 -0
  258. {telnyx-2.1.4 → telnyx-2.1.6}/tests/request_mock.py +0 -0
  259. {telnyx-2.1.4 → telnyx-2.1.6}/tests/telnyx_mock.py +0 -0
  260. {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_error.py +0 -0
  261. {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_http_client.py +0 -0
  262. {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_multipart_data_generator.py +0 -0
  263. {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_request_metrics.py +0 -0
  264. {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_telnyx_object.py +0 -0
  265. {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_telnyx_response.py +0 -0
  266. {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_util.py +0 -0
  267. {telnyx-2.1.4 → telnyx-2.1.6}/tests/test_webhook.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: telnyx
3
- Version: 2.1.4
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.8
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.8+ (PyPy supported)
94
+ - Python 3.9+ (PyPy supported)
83
95
 
84
96
  #### Additional Requirements for Source Install
85
97
 
@@ -46,7 +46,7 @@ into using https://www.piwheels.org/ for ARM compiled wheels.
46
46
 
47
47
  ### Requirements
48
48
 
49
- - Python 3.8+ (PyPy supported)
49
+ - Python 3.9+ (PyPy supported)
50
50
 
51
51
  #### Additional Requirements for Source Install
52
52
 
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.4",
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
- "requests >= 2.20",
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",
@@ -24,7 +24,7 @@ public_key = os.environ.get("TELNYX_PUBLIC_KEY")
24
24
  log = None
25
25
 
26
26
 
27
- __version__ = "2.1.4"
27
+ __version__ = "2.1.6"
28
28
 
29
29
 
30
30
  # Sets some basic information about the running application that's sent along
@@ -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.call_recording import CallRecording
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",
@@ -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(path.format(phone_number=quote_plus(id, safe=util.telnyx_valid_id_parts + '+')))
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(path.format(verification_id=quote_plus(id, safe=util.telnyx_valid_id_parts)))
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 = "update_%s" % resource
120
+ update_method = "put_%s" % resource
109
121
  setattr(cls, update_method, classmethod(update_nested_resource))
110
122
 
111
123
  else:
@@ -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 CallRecording(
14
- CreateableAPIResource,
11
+ class Recording(
15
12
  DeletableAPIResource,
16
13
  ListableAPIResource,
17
- UpdateableAPIResource,
18
14
  ):
19
- OBJECT_NAME = "call_recording"
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", path="by_phone_number/{phone_number}/actions/verify", operations=["create"]
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("flashcall", path="verifications/flashcall", operations=["create"])
15
- @nested_resource_class_methods("verify", path="verifications/{verification_id}/actions/verify", operations=["create"])
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.CallRecording.OBJECT_NAME: api_resources.CallRecording,
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
1
+ Metadata-Version: 2.4
2
2
  Name: telnyx
3
- Version: 2.1.4
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.8
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.8+ (PyPy supported)
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
@@ -1,6 +1,7 @@
1
1
  from __future__ import absolute_import, division, print_function
2
2
 
3
3
  import pytest
4
+
4
5
  import telnyx
5
6
 
6
7
  TEST_RESOURCE_ID = "1293384261075731499"
@@ -1,6 +1,7 @@
1
1
  from __future__ import absolute_import, division, print_function
2
2
 
3
3
  import pytest
4
+
4
5
  import telnyx
5
6
 
6
7
  CALL_CONTROL_ID = "AgDIxmoRX6QMuaIj_uXRXnPAXP0QlNfXczRrZvZakpWxBlpw48KyZQ=="
@@ -1,6 +1,7 @@
1
1
  from __future__ import absolute_import, division, print_function
2
2
 
3
3
  import pytest
4
+
4
5
  import telnyx
5
6
 
6
7
  TEST_RESOURCE_ID = "1293384261075731499"
@@ -1,6 +1,7 @@
1
1
  from __future__ import absolute_import, division, print_function
2
2
 
3
3
  import pytest
4
+
4
5
  import telnyx
5
6
 
6
7
  TEST_RESOURCE_ID = "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
@@ -1,6 +1,7 @@
1
1
  from __future__ import absolute_import, division, print_function
2
2
 
3
3
  import pytest
4
+
4
5
  import telnyx
5
6
 
6
7
  TEST_RESOURCE_ID = "0ccc7b54-4df3-4bca-a65a-3da1ecc777f1"
@@ -1,6 +1,7 @@
1
1
  from __future__ import absolute_import, division, print_function
2
2
 
3
3
  import pytest
4
+
4
5
  import telnyx
5
6
 
6
7
  TEST_RESOURCE_ID = "1293384261075731499"
@@ -1,6 +1,7 @@
1
1
  from __future__ import absolute_import, division, print_function
2
2
 
3
3
  import pytest
4
+
4
5
  import telnyx
5
6
 
6
7
  TEST_RESOURCE_ID = "1293384261075731499"
@@ -1,6 +1,7 @@
1
1
  from __future__ import absolute_import, division, print_function
2
2
 
3
3
  import pytest
4
+
4
5
  import telnyx
5
6
 
6
7
  TEST_RESOURCE_ID = "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
@@ -1,6 +1,7 @@
1
1
  from __future__ import absolute_import, division, print_function
2
2
 
3
3
  import pytest
4
+
4
5
  import telnyx
5
6
 
6
7
  TEST_RESOURCE_ID = "1293384261075731499"
@@ -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,6 +1,7 @@
1
1
  from __future__ import absolute_import, division, print_function
2
2
 
3
3
  import pytest
4
+
4
5
  import telnyx
5
6
 
6
7
  TEST_RESOURCE_ID = "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
@@ -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("get", "/v2/verifications/by_phone_number/%s" %TEST_PHONE_NUMBER)
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("\u263A".encode("utf-16"))
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 = py38,
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 --recursive --atomic . {posargs}
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.8
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.8
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