telnyx 3.0.0a0__py3-none-any.whl → 3.1.0__py3-none-any.whl

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 (552) hide show
  1. telnyx/__init__.py +3 -1
  2. telnyx/_base_client.py +12 -12
  3. telnyx/_client.py +68 -762
  4. telnyx/_compat.py +48 -48
  5. telnyx/_models.py +51 -45
  6. telnyx/_qs.py +7 -7
  7. telnyx/_types.py +53 -12
  8. telnyx/_utils/__init__.py +9 -2
  9. telnyx/_utils/_compat.py +45 -0
  10. telnyx/_utils/_datetime_parse.py +136 -0
  11. telnyx/_utils/_transform.py +13 -3
  12. telnyx/_utils/_typing.py +6 -1
  13. telnyx/_utils/_utils.py +4 -5
  14. telnyx/_version.py +1 -1
  15. telnyx/resources/__init__.py +73 -0
  16. telnyx/resources/access_ip_address.py +15 -15
  17. telnyx/resources/access_ip_ranges.py +13 -13
  18. telnyx/resources/actions/purchase.py +13 -14
  19. telnyx/resources/actions/register.py +11 -12
  20. telnyx/resources/addresses/actions.py +13 -13
  21. telnyx/resources/addresses/addresses.py +33 -35
  22. telnyx/resources/advanced_orders.py +154 -24
  23. telnyx/resources/ai/ai.py +7 -7
  24. telnyx/resources/ai/assistants/assistants.py +89 -89
  25. telnyx/resources/ai/assistants/canary_deploys.py +9 -9
  26. telnyx/resources/ai/assistants/scheduled_events.py +21 -21
  27. telnyx/resources/ai/assistants/tests/runs.py +13 -13
  28. telnyx/resources/ai/assistants/tests/test_suites/runs.py +13 -13
  29. telnyx/resources/ai/assistants/tests/test_suites/test_suites.py +3 -3
  30. telnyx/resources/ai/assistants/tests/tests.py +43 -43
  31. telnyx/resources/ai/assistants/tools.py +7 -7
  32. telnyx/resources/ai/assistants/versions.py +45 -45
  33. telnyx/resources/ai/audio.py +11 -11
  34. telnyx/resources/ai/chat.py +48 -48
  35. telnyx/resources/ai/clusters.py +27 -29
  36. telnyx/resources/ai/conversations/conversations.py +179 -45
  37. telnyx/resources/ai/conversations/insight_groups/insight_groups.py +23 -23
  38. telnyx/resources/ai/conversations/insight_groups/insights.py +5 -5
  39. telnyx/resources/ai/conversations/insights.py +25 -25
  40. telnyx/resources/ai/conversations/messages.py +3 -136
  41. telnyx/resources/ai/embeddings/buckets.py +7 -7
  42. telnyx/resources/ai/embeddings/embeddings.py +23 -24
  43. telnyx/resources/ai/fine_tuning/jobs.py +13 -13
  44. telnyx/resources/audit_events.py +9 -9
  45. telnyx/resources/authentication_providers.py +29 -29
  46. telnyx/resources/available_phone_number_blocks.py +5 -5
  47. telnyx/resources/available_phone_numbers.py +5 -5
  48. telnyx/resources/balance.py +3 -3
  49. telnyx/resources/billing_groups.py +17 -17
  50. telnyx/resources/brand/brand.py +121 -117
  51. telnyx/resources/brand/external_vetting.py +9 -9
  52. telnyx/resources/bulk_sim_card_actions.py +11 -11
  53. telnyx/resources/bundle_pricing/billing_bundles.py +13 -13
  54. telnyx/resources/bundle_pricing/user_bundles.py +35 -35
  55. telnyx/resources/call_control_applications.py +64 -68
  56. telnyx/resources/call_events.py +7 -7
  57. telnyx/resources/calls/actions.py +695 -697
  58. telnyx/resources/calls/calls.py +116 -110
  59. telnyx/resources/campaign/campaign.py +47 -47
  60. telnyx/resources/campaign/osr.py +3 -3
  61. telnyx/resources/campaign/usecase.py +3 -3
  62. telnyx/resources/campaign_builder/brand.py +3 -3
  63. telnyx/resources/campaign_builder/campaign_builder.py +68 -68
  64. telnyx/resources/channel_zones.py +7 -7
  65. telnyx/resources/charges_breakdown.py +7 -7
  66. telnyx/resources/charges_summary.py +3 -3
  67. telnyx/resources/comments.py +17 -17
  68. telnyx/resources/conferences/actions.py +123 -140
  69. telnyx/resources/conferences/conferences.py +37 -41
  70. telnyx/resources/connections.py +15 -15
  71. telnyx/resources/country_coverage.py +5 -5
  72. telnyx/resources/credential_connections/actions.py +3 -3
  73. telnyx/resources/credential_connections/credential_connections.py +96 -96
  74. telnyx/resources/custom_storage_credentials.py +9 -9
  75. telnyx/resources/customer_service_records.py +21 -23
  76. telnyx/resources/detail_records.py +9 -11
  77. telnyx/resources/dialogflow_connections.py +25 -25
  78. telnyx/resources/document_links.py +7 -7
  79. telnyx/resources/documents.py +124 -43
  80. telnyx/resources/dynamic_emergency_addresses.py +23 -23
  81. telnyx/resources/dynamic_emergency_endpoints.py +13 -13
  82. telnyx/resources/enum.py +3 -3
  83. telnyx/resources/external_connections/civic_addresses.py +7 -7
  84. telnyx/resources/external_connections/external_connections.py +42 -42
  85. telnyx/resources/external_connections/log_messages.py +11 -11
  86. telnyx/resources/external_connections/phone_numbers.py +13 -13
  87. telnyx/resources/external_connections/releases.py +9 -9
  88. telnyx/resources/external_connections/uploads.py +27 -29
  89. telnyx/resources/fax_applications.py +48 -48
  90. telnyx/resources/faxes/actions.py +5 -5
  91. telnyx/resources/faxes/faxes.py +35 -35
  92. telnyx/resources/fqdn_connections.py +94 -94
  93. telnyx/resources/fqdns.py +25 -25
  94. telnyx/resources/global_ip_allowed_ports.py +3 -3
  95. telnyx/resources/global_ip_assignment_health.py +5 -5
  96. telnyx/resources/global_ip_assignments.py +19 -19
  97. telnyx/resources/global_ip_assignments_usage.py +5 -5
  98. telnyx/resources/global_ip_health_check_types.py +3 -3
  99. telnyx/resources/global_ip_health_checks.py +17 -17
  100. telnyx/resources/global_ip_latency.py +5 -5
  101. telnyx/resources/global_ip_protocols.py +3 -3
  102. telnyx/resources/global_ip_usage.py +5 -5
  103. telnyx/resources/global_ips.py +17 -17
  104. telnyx/resources/inbound_channels.py +5 -5
  105. telnyx/resources/integration_secrets.py +17 -17
  106. telnyx/resources/inventory_coverage.py +5 -5
  107. telnyx/resources/invoices.py +11 -11
  108. telnyx/resources/ip_connections.py +94 -94
  109. telnyx/resources/ips.py +23 -23
  110. telnyx/resources/ledger_billing_group_reports.py +9 -9
  111. telnyx/resources/legacy/__init__.py +33 -0
  112. telnyx/resources/legacy/legacy.py +102 -0
  113. telnyx/resources/legacy/reporting/__init__.py +47 -0
  114. telnyx/resources/legacy/reporting/batch_detail_records/__init__.py +61 -0
  115. telnyx/resources/legacy/reporting/batch_detail_records/batch_detail_records.py +166 -0
  116. telnyx/resources/legacy/reporting/batch_detail_records/messaging.py +481 -0
  117. telnyx/resources/legacy/reporting/batch_detail_records/speech_to_text.py +399 -0
  118. telnyx/resources/legacy/reporting/batch_detail_records/voice.py +538 -0
  119. telnyx/resources/legacy/reporting/reporting.py +134 -0
  120. telnyx/resources/legacy/reporting/usage_reports/__init__.py +61 -0
  121. telnyx/resources/legacy/reporting/usage_reports/messaging.py +471 -0
  122. telnyx/resources/legacy/reporting/usage_reports/number_lookup.py +464 -0
  123. telnyx/resources/legacy/reporting/usage_reports/usage_reports.py +288 -0
  124. telnyx/resources/legacy/reporting/usage_reports/voice.py +493 -0
  125. telnyx/resources/list.py +5 -5
  126. telnyx/resources/managed_accounts/actions.py +7 -7
  127. telnyx/resources/managed_accounts/managed_accounts.py +33 -33
  128. telnyx/resources/media.py +23 -23
  129. telnyx/resources/messages/messages.py +124 -124
  130. telnyx/resources/messages/rcs.py +7 -7
  131. telnyx/resources/messaging/rcs/agents.py +15 -15
  132. telnyx/resources/messaging/rcs/rcs.py +9 -11
  133. telnyx/resources/messaging_hosted_number_orders/actions.py +7 -7
  134. telnyx/resources/messaging_hosted_number_orders/messaging_hosted_number_orders.py +26 -26
  135. telnyx/resources/messaging_hosted_numbers.py +3 -3
  136. telnyx/resources/messaging_numbers_bulk_updates.py +7 -9
  137. telnyx/resources/messaging_optouts.py +11 -11
  138. telnyx/resources/messaging_profiles/autoresp_configs.py +25 -26
  139. telnyx/resources/messaging_profiles/messaging_profiles.py +76 -76
  140. telnyx/resources/messaging_tollfree/verification/requests.py +27 -27
  141. telnyx/resources/messaging_url_domains.py +5 -5
  142. telnyx/resources/messsages.py +11 -11
  143. telnyx/resources/mobile_network_operators.py +7 -7
  144. telnyx/resources/mobile_push_credentials.py +23 -23
  145. telnyx/resources/network_coverage.py +9 -9
  146. telnyx/resources/networks/default_gateway.py +9 -9
  147. telnyx/resources/networks/networks.py +21 -21
  148. telnyx/resources/notification_channels.py +27 -27
  149. telnyx/resources/notification_event_conditions.py +7 -7
  150. telnyx/resources/notification_events.py +5 -5
  151. telnyx/resources/notification_profiles.py +17 -17
  152. telnyx/resources/notification_settings.py +21 -21
  153. telnyx/resources/number_block_orders.py +17 -17
  154. telnyx/resources/number_lookup.py +5 -5
  155. telnyx/resources/number_order_phone_numbers.py +13 -13
  156. telnyx/resources/number_orders.py +27 -27
  157. telnyx/resources/number_reservations/actions.py +3 -3
  158. telnyx/resources/number_reservations/number_reservations.py +15 -15
  159. telnyx/resources/numbers_features.py +5 -7
  160. telnyx/resources/oauth.py +857 -0
  161. telnyx/resources/oauth_clients.py +711 -0
  162. telnyx/resources/oauth_grants.py +349 -0
  163. telnyx/resources/operator_connect/actions.py +3 -3
  164. telnyx/resources/ota_updates.py +9 -9
  165. telnyx/resources/outbound_voice_profiles.py +66 -66
  166. telnyx/resources/partner_campaigns.py +25 -25
  167. telnyx/resources/payment/auto_recharge_prefs.py +15 -15
  168. telnyx/resources/phone_number_assignment_by_profile.py +15 -15
  169. telnyx/resources/phone_number_blocks/jobs.py +13 -13
  170. telnyx/resources/phone_number_campaigns.py +19 -19
  171. telnyx/resources/phone_numbers/actions.py +9 -11
  172. telnyx/resources/phone_numbers/csv_downloads.py +13 -13
  173. telnyx/resources/phone_numbers/jobs.py +54 -42
  174. telnyx/resources/phone_numbers/messaging.py +13 -13
  175. telnyx/resources/phone_numbers/phone_numbers.py +39 -40
  176. telnyx/resources/phone_numbers/voice.py +31 -31
  177. telnyx/resources/phone_numbers/voicemail.py +15 -15
  178. telnyx/resources/phone_numbers_regulatory_requirements.py +5 -5
  179. telnyx/resources/portability_checks.py +5 -7
  180. telnyx/resources/porting/events.py +11 -11
  181. telnyx/resources/porting/loa_configurations.py +17 -17
  182. telnyx/resources/porting/porting.py +3 -3
  183. telnyx/resources/porting/reports.py +11 -11
  184. telnyx/resources/porting_orders/action_requirements.py +11 -11
  185. telnyx/resources/porting_orders/actions.py +13 -13
  186. telnyx/resources/porting_orders/activation_jobs.py +11 -11
  187. telnyx/resources/porting_orders/additional_documents.py +15 -15
  188. telnyx/resources/porting_orders/associated_phone_numbers.py +13 -13
  189. telnyx/resources/porting_orders/comments.py +9 -9
  190. telnyx/resources/porting_orders/phone_number_blocks.py +13 -13
  191. telnyx/resources/porting_orders/phone_number_configurations.py +13 -13
  192. telnyx/resources/porting_orders/phone_number_extensions.py +13 -13
  193. telnyx/resources/porting_orders/porting_orders.py +82 -70
  194. telnyx/resources/porting_orders/verification_codes.py +20 -20
  195. telnyx/resources/porting_phone_numbers.py +7 -7
  196. telnyx/resources/portouts/comments.py +7 -7
  197. telnyx/resources/portouts/events.py +11 -11
  198. telnyx/resources/portouts/portouts.py +25 -23
  199. telnyx/resources/portouts/reports.py +11 -11
  200. telnyx/resources/portouts/supporting_documents.py +7 -7
  201. telnyx/resources/private_wireless_gateways.py +25 -25
  202. telnyx/resources/public_internet_gateways.py +19 -19
  203. telnyx/resources/queues/calls.py +7 -7
  204. telnyx/resources/queues/queues.py +3 -3
  205. telnyx/resources/recording_transcriptions.py +7 -7
  206. telnyx/resources/recordings/actions.py +5 -7
  207. telnyx/resources/recordings/recordings.py +11 -11
  208. telnyx/resources/regions.py +3 -3
  209. telnyx/resources/regulatory_requirements.py +5 -5
  210. telnyx/resources/reports/cdr_usage_reports.py +9 -9
  211. telnyx/resources/reports/mdr_usage_reports.py +22 -22
  212. telnyx/resources/reports/reports.py +47 -48
  213. telnyx/resources/requirement_groups.py +23 -23
  214. telnyx/resources/requirement_types.py +9 -11
  215. telnyx/resources/requirements.py +11 -11
  216. telnyx/resources/room_compositions.py +27 -27
  217. telnyx/resources/room_participants.py +9 -9
  218. telnyx/resources/room_recordings.py +17 -17
  219. telnyx/resources/rooms/actions.py +11 -11
  220. telnyx/resources/rooms/rooms.py +43 -43
  221. telnyx/resources/rooms/sessions/actions.py +22 -22
  222. telnyx/resources/rooms/sessions/sessions.py +27 -27
  223. telnyx/resources/seti.py +5 -5
  224. telnyx/resources/short_codes.py +11 -11
  225. telnyx/resources/sim_card_data_usage_notifications.py +21 -21
  226. telnyx/resources/sim_card_groups/actions.py +23 -23
  227. telnyx/resources/sim_card_groups/sim_card_groups.py +29 -29
  228. telnyx/resources/sim_card_order_preview.py +3 -3
  229. telnyx/resources/sim_card_orders.py +11 -11
  230. telnyx/resources/sim_cards/actions.py +29 -31
  231. telnyx/resources/sim_cards/sim_cards.py +48 -48
  232. telnyx/resources/siprec_connectors.py +13 -13
  233. telnyx/resources/storage/buckets/buckets.py +5 -5
  234. telnyx/resources/storage/buckets/ssl_certificate.py +11 -11
  235. telnyx/resources/storage/buckets/usage.py +5 -5
  236. telnyx/resources/storage/migration_sources.py +11 -11
  237. telnyx/resources/storage/migrations/actions.py +3 -3
  238. telnyx/resources/storage/migrations/migrations.py +9 -9
  239. telnyx/resources/storage/storage.py +3 -3
  240. telnyx/resources/sub_number_orders.py +17 -17
  241. telnyx/resources/sub_number_orders_report.py +19 -19
  242. telnyx/resources/telephony_credentials.py +31 -31
  243. telnyx/resources/texml/accounts/accounts.py +15 -15
  244. telnyx/resources/texml/accounts/calls/calls.py +145 -145
  245. telnyx/resources/texml/accounts/calls/recordings.py +5 -5
  246. telnyx/resources/texml/accounts/calls/recordings_json.py +19 -19
  247. telnyx/resources/texml/accounts/calls/siprec.py +5 -5
  248. telnyx/resources/texml/accounts/calls/streams.py +5 -5
  249. telnyx/resources/texml/accounts/conferences/conferences.py +31 -31
  250. telnyx/resources/texml/accounts/conferences/participants.py +123 -123
  251. telnyx/resources/texml/accounts/recordings/json.py +5 -5
  252. telnyx/resources/texml/accounts/transcriptions/json.py +5 -5
  253. telnyx/resources/texml/calls.py +79 -79
  254. telnyx/resources/texml/texml.py +3 -3
  255. telnyx/resources/texml_applications.py +65 -66
  256. telnyx/resources/text_to_speech.py +9 -9
  257. telnyx/resources/usage_reports.py +31 -32
  258. telnyx/resources/user_addresses.py +29 -31
  259. telnyx/resources/user_tags.py +5 -5
  260. telnyx/resources/verifications/actions.py +7 -7
  261. telnyx/resources/verifications/by_phone_number/actions.py +3 -3
  262. telnyx/resources/verifications/by_phone_number/by_phone_number.py +3 -3
  263. telnyx/resources/verifications/verifications.py +29 -19
  264. telnyx/resources/verified_numbers/actions.py +3 -3
  265. telnyx/resources/verified_numbers/verified_numbers.py +36 -15
  266. telnyx/resources/verify_profiles.py +226 -44
  267. telnyx/resources/virtual_cross_connects.py +45 -45
  268. telnyx/resources/virtual_cross_connects_coverage.py +9 -9
  269. telnyx/resources/webhook_deliveries.py +9 -9
  270. telnyx/resources/webhooks.py +34 -0
  271. telnyx/resources/well_known.py +198 -0
  272. telnyx/resources/wireguard_interfaces.py +17 -17
  273. telnyx/resources/wireguard_peers.py +21 -21
  274. telnyx/resources/wireless/detail_records_reports.py +17 -17
  275. telnyx/resources/wireless/wireless.py +3 -3
  276. telnyx/resources/wireless_blocklist_values.py +3 -3
  277. telnyx/resources/wireless_blocklists.py +29 -30
  278. telnyx/types/__init__.py +159 -11
  279. telnyx/types/actions/purchase_create_params.py +3 -2
  280. telnyx/types/actions/register_create_params.py +4 -3
  281. telnyx/types/addresses/action_validate_response.py +6 -1
  282. telnyx/types/advanced_order_create_params.py +3 -0
  283. telnyx/types/advanced_order_update_params.py +27 -0
  284. telnyx/types/ai/__init__.py +1 -0
  285. telnyx/types/ai/chat_create_completion_params.py +3 -2
  286. telnyx/types/ai/cluster_compute_params.py +3 -2
  287. telnyx/types/ai/{conversations/message_create_params.py → conversation_add_message_params.py} +6 -5
  288. telnyx/types/ai/conversations/__init__.py +0 -1
  289. telnyx/types/ai/embedding_list_params.py +3 -2
  290. telnyx/types/ai/inference_embedding_bucket_ids_param.py +3 -2
  291. telnyx/types/ai/inference_embedding_transfer_tool_params.py +6 -0
  292. telnyx/types/ai/inference_embedding_transfer_tool_params_param.py +6 -0
  293. telnyx/types/ai/inference_embedding_webhook_tool_params.py +2 -0
  294. telnyx/types/ai/inference_embedding_webhook_tool_params_param.py +8 -4
  295. telnyx/types/ai/voice_settings.py +49 -2
  296. telnyx/types/ai/voice_settings_param.py +49 -2
  297. telnyx/types/brand_create_params.py +2 -1
  298. telnyx/types/brand_update_params.py +2 -1
  299. telnyx/types/bundle_pricing/billing_bundle_list_params.py +4 -3
  300. telnyx/types/bundle_pricing/user_bundle_list_params.py +4 -3
  301. telnyx/types/bundle_pricing/user_bundle_list_unused_params.py +4 -3
  302. telnyx/types/call_ai_gather_ended_webhook_event.py +78 -0
  303. telnyx/types/call_ai_gather_message_history_updated_webhook_event.py +69 -0
  304. telnyx/types/call_ai_gather_partial_results_webhook_event.py +75 -0
  305. telnyx/types/call_answered_webhook_event.py +75 -0
  306. telnyx/types/call_bridged_webhook_event.py +58 -0
  307. telnyx/types/call_control_application_update_params.py +3 -2
  308. telnyx/types/call_conversation_ended_webhook_event.py +84 -0
  309. telnyx/types/call_conversation_insights_generated_webhook_event.py +67 -0
  310. telnyx/types/call_dial_params.py +14 -6
  311. telnyx/types/call_dtmf_received_webhook_event.py +61 -0
  312. telnyx/types/call_enqueued_webhook_event.py +59 -0
  313. telnyx/types/call_fork_started_webhook_event.py +53 -0
  314. telnyx/types/call_fork_stopped_webhook_event.py +53 -0
  315. telnyx/types/call_gather_ended_webhook_event.py +64 -0
  316. telnyx/types/call_hangup_webhook_event.py +150 -0
  317. telnyx/types/call_initiated_webhook_event.py +96 -0
  318. telnyx/types/call_left_queue_webhook_event.py +62 -0
  319. telnyx/types/call_machine_detection_ended_webhook_event.py +61 -0
  320. telnyx/types/call_machine_greeting_ended_webhook_event.py +61 -0
  321. telnyx/types/call_machine_premium_detection_ended_webhook_event.py +63 -0
  322. telnyx/types/call_machine_premium_greeting_ended_webhook_event.py +61 -0
  323. telnyx/types/call_playback_ended_webhook_event.py +70 -0
  324. telnyx/types/call_playback_started_webhook_event.py +62 -0
  325. telnyx/types/call_recording_error_webhook_event.py +60 -0
  326. telnyx/types/call_recording_saved_webhook_event.py +94 -0
  327. telnyx/types/call_recording_transcription_saved_webhook_event.py +71 -0
  328. telnyx/types/call_refer_completed_webhook_event.py +61 -0
  329. telnyx/types/call_refer_failed_webhook_event.py +61 -0
  330. telnyx/types/call_refer_started_webhook_event.py +61 -0
  331. telnyx/types/call_siprec_failed_webhook_event.py +53 -0
  332. telnyx/types/call_siprec_started_webhook_event.py +50 -0
  333. telnyx/types/call_siprec_stopped_webhook_event.py +53 -0
  334. telnyx/types/call_speak_ended_webhook_event.py +53 -0
  335. telnyx/types/call_speak_started_webhook_event.py +50 -0
  336. telnyx/types/call_streaming_failed_webhook_event.py +70 -0
  337. telnyx/types/call_streaming_started_webhook_event.py +53 -0
  338. telnyx/types/call_streaming_stopped_webhook_event.py +53 -0
  339. telnyx/types/calls/action_answer_params.py +1 -2
  340. telnyx/types/calls/action_gather_using_ai_params.py +5 -8
  341. telnyx/types/calls/action_start_streaming_params.py +4 -2
  342. telnyx/types/calls/action_transfer_params.py +50 -0
  343. telnyx/types/calls/transcription_engine_a_config_param.py +4 -3
  344. telnyx/types/campaign_builder_create_params.py +4 -3
  345. telnyx/types/campaign_status_update_webhook_event.py +26 -0
  346. telnyx/types/campaign_submit_appeal_response.py +0 -3
  347. telnyx/types/conference_created_webhook_event.py +53 -0
  348. telnyx/types/conference_ended_webhook_event.py +56 -0
  349. telnyx/types/conference_floor_changed_webhook_event.py +45 -0
  350. telnyx/types/conference_participant_joined_webhook_event.py +53 -0
  351. telnyx/types/conference_participant_left_webhook_event.py +53 -0
  352. telnyx/types/conference_participant_playback_ended_webhook_event.py +65 -0
  353. telnyx/types/conference_participant_playback_started_webhook_event.py +65 -0
  354. telnyx/types/conference_participant_speak_ended_webhook_event.py +56 -0
  355. telnyx/types/conference_participant_speak_started_webhook_event.py +56 -0
  356. telnyx/types/conference_playback_ended_webhook_event.py +49 -0
  357. telnyx/types/conference_playback_started_webhook_event.py +49 -0
  358. telnyx/types/conference_recording_saved_webhook_event.py +103 -0
  359. telnyx/types/conference_speak_ended_webhook_event.py +40 -0
  360. telnyx/types/conference_speak_started_webhook_event.py +40 -0
  361. telnyx/types/conferences/action_hold_params.py +3 -2
  362. telnyx/types/conferences/action_join_params.py +3 -2
  363. telnyx/types/conferences/action_mute_params.py +3 -2
  364. telnyx/types/conferences/action_play_params.py +2 -2
  365. telnyx/types/conferences/action_speak_params.py +3 -2
  366. telnyx/types/conferences/action_stop_params.py +3 -2
  367. telnyx/types/conferences/action_unhold_params.py +3 -2
  368. telnyx/types/conferences/action_unmute_params.py +3 -2
  369. telnyx/types/conferences/action_update_params.py +3 -2
  370. telnyx/types/country_coverage_retrieve_country_response.py +7 -0
  371. telnyx/types/country_coverage_retrieve_response.py +7 -0
  372. telnyx/types/credential_connection_create_params.py +3 -2
  373. telnyx/types/credential_connection_update_params.py +3 -2
  374. telnyx/types/credential_inbound_param.py +3 -2
  375. telnyx/types/custom_sip_header.py +13 -0
  376. telnyx/types/customer_service_record_list_params.py +2 -1
  377. telnyx/types/customer_service_record_status_changed_webhook_event.py +55 -0
  378. telnyx/types/customer_service_record_verify_phone_number_coverage_params.py +3 -2
  379. telnyx/types/delivery_update_webhook_event.py +40 -0
  380. telnyx/types/detail_record_list_params.py +4 -2
  381. telnyx/types/document_generate_download_link_response.py +14 -0
  382. telnyx/types/document_list_params.py +2 -1
  383. telnyx/types/external_connection_create_params.py +4 -2
  384. telnyx/types/external_connection_update_params.py +4 -2
  385. telnyx/types/external_connections/civic_address_list_params.py +3 -2
  386. telnyx/types/external_connections/upload_create_params.py +3 -1
  387. telnyx/types/fax_application_create_params.py +3 -2
  388. telnyx/types/fax_application_update_params.py +3 -2
  389. telnyx/types/fax_delivered_webhook_event.py +69 -0
  390. telnyx/types/fax_failed_webhook_event.py +66 -0
  391. telnyx/types/fax_media_processed_webhook_event.py +63 -0
  392. telnyx/types/fax_queued_webhook_event.py +63 -0
  393. telnyx/types/fax_sending_started_webhook_event.py +63 -0
  394. telnyx/types/fqdn_connection_create_params.py +3 -2
  395. telnyx/types/fqdn_connection_update_params.py +3 -2
  396. telnyx/types/global_ip_latency_retrieve_response.py +7 -7
  397. telnyx/types/inbound_fqdn_param.py +4 -2
  398. telnyx/types/inbound_ip_param.py +3 -2
  399. telnyx/types/inbound_message_webhook_event.py +227 -0
  400. telnyx/types/ip_connection_create_params.py +4 -3
  401. telnyx/types/ip_connection_update_params.py +3 -2
  402. telnyx/types/legacy/__init__.py +3 -0
  403. telnyx/types/legacy/reporting/__init__.py +10 -0
  404. telnyx/types/legacy/reporting/batch_detail_records/__init__.py +20 -0
  405. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_params.py +77 -0
  406. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_response.py +68 -0
  407. telnyx/types/legacy/reporting/batch_detail_records/messaging_delete_response.py +68 -0
  408. telnyx/types/legacy/reporting/batch_detail_records/messaging_list_response.py +80 -0
  409. telnyx/types/legacy/reporting/batch_detail_records/messaging_retrieve_response.py +68 -0
  410. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_params.py +19 -0
  411. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_response.py +31 -0
  412. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_delete_response.py +31 -0
  413. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_list_response.py +31 -0
  414. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_retrieve_response.py +31 -0
  415. telnyx/types/legacy/reporting/batch_detail_records/voice_create_params.py +79 -0
  416. telnyx/types/legacy/reporting/batch_detail_records/voice_create_response.py +91 -0
  417. telnyx/types/legacy/reporting/batch_detail_records/voice_delete_response.py +91 -0
  418. telnyx/types/legacy/reporting/batch_detail_records/voice_list_response.py +102 -0
  419. telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_fields_response.py +23 -0
  420. telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_response.py +91 -0
  421. telnyx/types/legacy/reporting/usage_report_retrieve_speech_to_text_params.py +17 -0
  422. telnyx/types/legacy/reporting/usage_report_retrieve_speech_to_text_response.py +11 -0
  423. telnyx/types/legacy/reporting/usage_reports/__init__.py +18 -0
  424. telnyx/types/legacy/reporting/usage_reports/messaging_create_params.py +29 -0
  425. telnyx/types/legacy/reporting/usage_reports/messaging_create_response.py +43 -0
  426. telnyx/types/legacy/reporting/usage_reports/messaging_delete_response.py +43 -0
  427. telnyx/types/legacy/reporting/usage_reports/messaging_list_params.py +15 -0
  428. telnyx/types/legacy/reporting/usage_reports/messaging_list_response.py +54 -0
  429. telnyx/types/legacy/reporting/usage_reports/messaging_retrieve_response.py +43 -0
  430. telnyx/types/legacy/reporting/usage_reports/number_lookup_create_params.py +26 -0
  431. telnyx/types/legacy/reporting/usage_reports/number_lookup_list_params.py +13 -0
  432. telnyx/types/legacy/reporting/usage_reports/voice_create_params.py +40 -0
  433. telnyx/types/legacy/reporting/usage_reports/voice_create_response.py +48 -0
  434. telnyx/types/legacy/reporting/usage_reports/voice_delete_response.py +48 -0
  435. telnyx/types/legacy/reporting/usage_reports/voice_list_params.py +15 -0
  436. telnyx/types/legacy/reporting/usage_reports/voice_list_response.py +59 -0
  437. telnyx/types/legacy/reporting/usage_reports/voice_retrieve_response.py +48 -0
  438. telnyx/types/media_list_params.py +3 -2
  439. telnyx/types/message_schedule_params.py +3 -2
  440. telnyx/types/message_send_group_mms_params.py +3 -3
  441. telnyx/types/message_send_long_code_params.py +2 -2
  442. telnyx/types/message_send_number_pool_params.py +3 -2
  443. telnyx/types/message_send_params.py +3 -2
  444. telnyx/types/message_send_short_code_params.py +2 -2
  445. telnyx/types/messaging/rc_list_bulk_capabilities_params.py +3 -2
  446. telnyx/types/messaging_hosted_number_order_check_eligibility_params.py +3 -2
  447. telnyx/types/messaging_hosted_number_order_create_params.py +3 -2
  448. telnyx/types/messaging_hosted_number_order_create_verification_codes_params.py +3 -2
  449. telnyx/types/messaging_numbers_bulk_update_create_params.py +3 -2
  450. telnyx/types/messaging_profile_create_params.py +3 -2
  451. telnyx/types/messaging_profile_update_params.py +3 -2
  452. telnyx/types/messaging_profiles/autoresp_config_create_params.py +3 -2
  453. telnyx/types/messaging_profiles/autoresp_config_update_params.py +3 -2
  454. telnyx/types/messsage_rcs_params.py +2 -2
  455. telnyx/types/number_order_status_update_webhook_event.py +38 -0
  456. telnyx/types/numbers_feature_create_params.py +3 -2
  457. telnyx/types/oauth_authorize_params.py +30 -0
  458. telnyx/types/oauth_client_create_params.py +39 -0
  459. telnyx/types/oauth_client_create_response.py +63 -0
  460. telnyx/types/oauth_client_list_params.py +38 -0
  461. telnyx/types/oauth_client_list_response.py +79 -0
  462. telnyx/types/oauth_client_retrieve_response.py +63 -0
  463. telnyx/types/oauth_client_update_params.py +36 -0
  464. telnyx/types/oauth_client_update_response.py +63 -0
  465. telnyx/types/oauth_create_grant_params.py +15 -0
  466. telnyx/types/oauth_create_grant_response.py +10 -0
  467. telnyx/types/oauth_exchange_token_params.py +33 -0
  468. telnyx/types/oauth_exchange_token_response.py +25 -0
  469. telnyx/types/oauth_grant_list_params.py +17 -0
  470. telnyx/types/oauth_grant_list_response.py +49 -0
  471. telnyx/types/oauth_grant_retrieve_response.py +33 -0
  472. telnyx/types/oauth_grant_revoke_response.py +33 -0
  473. telnyx/types/oauth_introspect_token_params.py +12 -0
  474. telnyx/types/oauth_introspect_token_response.py +30 -0
  475. telnyx/types/oauth_register_client_params.py +39 -0
  476. telnyx/types/oauth_register_client_response.py +45 -0
  477. telnyx/types/oauth_retrieve_consent_response.py +47 -0
  478. telnyx/types/oauth_retrieve_jwks_response.py +25 -0
  479. telnyx/types/outbound_call_recording_param.py +3 -2
  480. telnyx/types/outbound_voice_profile_create_params.py +4 -3
  481. telnyx/types/outbound_voice_profile_update_params.py +4 -3
  482. telnyx/types/phone_number_delete_response.py +7 -0
  483. telnyx/types/phone_number_detailed.py +7 -0
  484. telnyx/types/phone_number_list_params.py +9 -2
  485. telnyx/types/phone_number_slim_list_params.py +3 -2
  486. telnyx/types/phone_number_update_params.py +3 -2
  487. telnyx/types/phone_numbers/action_verify_ownership_params.py +3 -2
  488. telnyx/types/phone_numbers/job_delete_batch_params.py +3 -2
  489. telnyx/types/phone_numbers/job_update_batch_params.py +10 -3
  490. telnyx/types/phone_numbers/job_update_emergency_settings_batch_params.py +4 -2
  491. telnyx/types/portability_check_run_params.py +3 -2
  492. telnyx/types/porting/export_porting_orders_csv_report_param.py +2 -1
  493. telnyx/types/porting_order.py +3 -0
  494. telnyx/types/porting_order_create_params.py +6 -2
  495. telnyx/types/porting_order_list_params.py +52 -31
  496. telnyx/types/porting_order_phone_number_configuration_param.py +3 -2
  497. telnyx/types/porting_order_update_params.py +2 -0
  498. telnyx/types/porting_orders/action_requirement_list_params.py +3 -2
  499. telnyx/types/porting_orders/phone_number_block_list_params.py +5 -3
  500. telnyx/types/porting_orders/phone_number_configuration_list_params.py +22 -21
  501. telnyx/types/porting_orders/verification_code_send_params.py +3 -2
  502. telnyx/types/portout_list_params.py +11 -3
  503. telnyx/types/portouts/export_portouts_csv_report_param.py +3 -2
  504. telnyx/types/recordings/action_delete_params.py +3 -2
  505. telnyx/types/replaced_link_click_webhook_event.py +32 -0
  506. telnyx/types/report_list_wdrs_params.py +3 -2
  507. telnyx/types/reports/mdr_usage_report_fetch_sync_params.py +3 -2
  508. telnyx/types/rooms/sessions/action_kick_params.py +5 -3
  509. telnyx/types/rooms/sessions/action_mute_params.py +5 -3
  510. telnyx/types/rooms/sessions/action_unmute_params.py +5 -3
  511. telnyx/types/shared/simple_sim_card.py +15 -0
  512. telnyx/types/sim_card.py +12 -0
  513. telnyx/types/sim_card_list_params.py +2 -1
  514. telnyx/types/sim_card_update_params.py +4 -3
  515. telnyx/types/sim_cards/action_bulk_set_public_ips_params.py +3 -2
  516. telnyx/types/sim_cards/action_validate_registration_codes_params.py +3 -2
  517. telnyx/types/sip_header.py +15 -0
  518. telnyx/types/stream_bidirectional_codec.py +1 -1
  519. telnyx/types/stream_codec.py +1 -1
  520. telnyx/types/streaming_failed_webhook_event.py +70 -0
  521. telnyx/types/streaming_started_webhook_event.py +53 -0
  522. telnyx/types/streaming_stopped_webhook_event.py +53 -0
  523. telnyx/types/texml_application_create_params.py +2 -2
  524. telnyx/types/texml_application_update_params.py +2 -2
  525. telnyx/types/transcription_webhook_event.py +72 -0
  526. telnyx/types/unwrap_webhook_event.py +138 -0
  527. telnyx/types/usage_report_list_params.py +5 -4
  528. telnyx/types/verification_trigger_call_params.py +7 -0
  529. telnyx/types/verified_number_create_params.py +10 -0
  530. telnyx/types/verify_profile.py +18 -3
  531. telnyx/types/verify_profile_create_params.py +6 -4
  532. telnyx/types/verify_profile_create_template_params.py +12 -0
  533. telnyx/types/verify_profile_create_template_response.py +17 -0
  534. telnyx/types/verify_profile_update_params.py +6 -4
  535. telnyx/types/verify_profile_update_template_params.py +12 -0
  536. telnyx/types/verify_profile_update_template_response.py +17 -0
  537. telnyx/types/video_region_param.py +4 -2
  538. telnyx/types/well_known_retrieve_authorization_server_metadata_response.py +42 -0
  539. telnyx/types/well_known_retrieve_protected_resource_metadata_response.py +15 -0
  540. telnyx/types/wireless_blocklist_create_params.py +3 -2
  541. telnyx/types/wireless_blocklist_update_params.py +3 -2
  542. {telnyx-3.0.0a0.dist-info → telnyx-3.1.0.dist-info}/METADATA +60 -19
  543. {telnyx-3.0.0a0.dist-info → telnyx-3.1.0.dist-info}/RECORD +545 -398
  544. telnyx/types/client_create_bucket_params.py +0 -13
  545. telnyx/types/client_delete_objects_params.py +0 -20
  546. telnyx/types/client_get_object_params.py +0 -15
  547. telnyx/types/client_list_objects_params.py +0 -13
  548. telnyx/types/client_put_object_params.py +0 -20
  549. telnyx/types/list_buckets_response.py +0 -20
  550. telnyx/types/list_objects_response.py +0 -24
  551. {telnyx-3.0.0a0.dist-info → telnyx-3.1.0.dist-info}/WHEEL +0 -0
  552. {telnyx-3.0.0a0.dist-info → telnyx-3.1.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,857 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List
6
+ from typing_extensions import Literal
7
+
8
+ import httpx
9
+
10
+ from ..types import (
11
+ oauth_authorize_params,
12
+ oauth_create_grant_params,
13
+ oauth_exchange_token_params,
14
+ oauth_register_client_params,
15
+ oauth_introspect_token_params,
16
+ )
17
+ from .._types import Body, Omit, Query, Headers, NoneType, NotGiven, SequenceNotStr, omit, not_given
18
+ from .._utils import maybe_transform, async_maybe_transform
19
+ from .._compat import cached_property
20
+ from .._resource import SyncAPIResource, AsyncAPIResource
21
+ from .._response import (
22
+ to_raw_response_wrapper,
23
+ to_streamed_response_wrapper,
24
+ async_to_raw_response_wrapper,
25
+ async_to_streamed_response_wrapper,
26
+ )
27
+ from .._base_client import make_request_options
28
+ from ..types.oauth_create_grant_response import OAuthCreateGrantResponse
29
+ from ..types.oauth_retrieve_jwks_response import OAuthRetrieveJwksResponse
30
+ from ..types.oauth_exchange_token_response import OAuthExchangeTokenResponse
31
+ from ..types.oauth_register_client_response import OAuthRegisterClientResponse
32
+ from ..types.oauth_introspect_token_response import OAuthIntrospectTokenResponse
33
+ from ..types.oauth_retrieve_consent_response import OAuthRetrieveConsentResponse
34
+
35
+ __all__ = ["OAuthResource", "AsyncOAuthResource"]
36
+
37
+
38
+ class OAuthResource(SyncAPIResource):
39
+ @cached_property
40
+ def with_raw_response(self) -> OAuthResourceWithRawResponse:
41
+ """
42
+ This property can be used as a prefix for any HTTP method call to return
43
+ the raw response object instead of the parsed content.
44
+
45
+ For more information, see https://www.github.com/team-telnyx/telnyx-python#accessing-raw-response-data-eg-headers
46
+ """
47
+ return OAuthResourceWithRawResponse(self)
48
+
49
+ @cached_property
50
+ def with_streaming_response(self) -> OAuthResourceWithStreamingResponse:
51
+ """
52
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
53
+
54
+ For more information, see https://www.github.com/team-telnyx/telnyx-python#with_streaming_response
55
+ """
56
+ return OAuthResourceWithStreamingResponse(self)
57
+
58
+ def authorize(
59
+ self,
60
+ *,
61
+ client_id: str,
62
+ redirect_uri: str,
63
+ response_type: Literal["code"],
64
+ code_challenge: str | Omit = omit,
65
+ code_challenge_method: Literal["plain", "S256"] | Omit = omit,
66
+ scope: str | Omit = omit,
67
+ state: str | Omit = omit,
68
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
69
+ # The extra values given here take precedence over values defined on the client or passed to this method.
70
+ extra_headers: Headers | None = None,
71
+ extra_query: Query | None = None,
72
+ extra_body: Body | None = None,
73
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
74
+ ) -> None:
75
+ """
76
+ OAuth 2.0 authorization endpoint for the authorization code flow
77
+
78
+ Args:
79
+ client_id: OAuth client identifier
80
+
81
+ redirect_uri: Redirect URI
82
+
83
+ response_type: OAuth response type
84
+
85
+ code_challenge: PKCE code challenge
86
+
87
+ code_challenge_method: PKCE code challenge method
88
+
89
+ scope: Space-separated list of requested scopes
90
+
91
+ state: State parameter for CSRF protection
92
+
93
+ extra_headers: Send extra headers
94
+
95
+ extra_query: Add additional query parameters to the request
96
+
97
+ extra_body: Add additional JSON properties to the request
98
+
99
+ timeout: Override the client-level default timeout for this request, in seconds
100
+ """
101
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
102
+ return self._get(
103
+ "/oauth/authorize",
104
+ options=make_request_options(
105
+ extra_headers=extra_headers,
106
+ extra_query=extra_query,
107
+ extra_body=extra_body,
108
+ timeout=timeout,
109
+ query=maybe_transform(
110
+ {
111
+ "client_id": client_id,
112
+ "redirect_uri": redirect_uri,
113
+ "response_type": response_type,
114
+ "code_challenge": code_challenge,
115
+ "code_challenge_method": code_challenge_method,
116
+ "scope": scope,
117
+ "state": state,
118
+ },
119
+ oauth_authorize_params.OAuthAuthorizeParams,
120
+ ),
121
+ ),
122
+ cast_to=NoneType,
123
+ )
124
+
125
+ def create_grant(
126
+ self,
127
+ *,
128
+ allowed: bool,
129
+ consent_token: str,
130
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
131
+ # The extra values given here take precedence over values defined on the client or passed to this method.
132
+ extra_headers: Headers | None = None,
133
+ extra_query: Query | None = None,
134
+ extra_body: Body | None = None,
135
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
136
+ ) -> OAuthCreateGrantResponse:
137
+ """
138
+ Create an OAuth authorization grant
139
+
140
+ Args:
141
+ allowed: Whether the grant is allowed
142
+
143
+ consent_token: Consent token
144
+
145
+ extra_headers: Send extra headers
146
+
147
+ extra_query: Add additional query parameters to the request
148
+
149
+ extra_body: Add additional JSON properties to the request
150
+
151
+ timeout: Override the client-level default timeout for this request, in seconds
152
+ """
153
+ return self._post(
154
+ "/oauth/grants",
155
+ body=maybe_transform(
156
+ {
157
+ "allowed": allowed,
158
+ "consent_token": consent_token,
159
+ },
160
+ oauth_create_grant_params.OAuthCreateGrantParams,
161
+ ),
162
+ options=make_request_options(
163
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
164
+ ),
165
+ cast_to=OAuthCreateGrantResponse,
166
+ )
167
+
168
+ def exchange_token(
169
+ self,
170
+ *,
171
+ grant_type: Literal["client_credentials", "authorization_code", "refresh_token"],
172
+ client_id: str | Omit = omit,
173
+ client_secret: str | Omit = omit,
174
+ code: str | Omit = omit,
175
+ code_verifier: str | Omit = omit,
176
+ redirect_uri: str | Omit = omit,
177
+ refresh_token: str | Omit = omit,
178
+ scope: str | Omit = omit,
179
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
180
+ # The extra values given here take precedence over values defined on the client or passed to this method.
181
+ extra_headers: Headers | None = None,
182
+ extra_query: Query | None = None,
183
+ extra_body: Body | None = None,
184
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
185
+ ) -> OAuthExchangeTokenResponse:
186
+ """
187
+ Exchange authorization code, client credentials, or refresh token for access
188
+ token
189
+
190
+ Args:
191
+ grant_type: OAuth 2.0 grant type
192
+
193
+ client_id: OAuth client ID (if not using HTTP Basic auth)
194
+
195
+ client_secret: OAuth client secret (if not using HTTP Basic auth)
196
+
197
+ code: Authorization code (for authorization_code flow)
198
+
199
+ code_verifier: PKCE code verifier (for authorization_code flow)
200
+
201
+ redirect_uri: Redirect URI (for authorization_code flow)
202
+
203
+ refresh_token: Refresh token (for refresh_token flow)
204
+
205
+ scope: Space-separated list of requested scopes (for client_credentials)
206
+
207
+ extra_headers: Send extra headers
208
+
209
+ extra_query: Add additional query parameters to the request
210
+
211
+ extra_body: Add additional JSON properties to the request
212
+
213
+ timeout: Override the client-level default timeout for this request, in seconds
214
+ """
215
+ return self._post(
216
+ "/oauth/token",
217
+ body=maybe_transform(
218
+ {
219
+ "grant_type": grant_type,
220
+ "client_id": client_id,
221
+ "client_secret": client_secret,
222
+ "code": code,
223
+ "code_verifier": code_verifier,
224
+ "redirect_uri": redirect_uri,
225
+ "refresh_token": refresh_token,
226
+ "scope": scope,
227
+ },
228
+ oauth_exchange_token_params.OAuthExchangeTokenParams,
229
+ ),
230
+ options=make_request_options(
231
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
232
+ ),
233
+ cast_to=OAuthExchangeTokenResponse,
234
+ )
235
+
236
+ def introspect_token(
237
+ self,
238
+ *,
239
+ token: str,
240
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
241
+ # The extra values given here take precedence over values defined on the client or passed to this method.
242
+ extra_headers: Headers | None = None,
243
+ extra_query: Query | None = None,
244
+ extra_body: Body | None = None,
245
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
246
+ ) -> OAuthIntrospectTokenResponse:
247
+ """
248
+ Introspect an OAuth access token to check its validity and metadata
249
+
250
+ Args:
251
+ token: The token to introspect
252
+
253
+ extra_headers: Send extra headers
254
+
255
+ extra_query: Add additional query parameters to the request
256
+
257
+ extra_body: Add additional JSON properties to the request
258
+
259
+ timeout: Override the client-level default timeout for this request, in seconds
260
+ """
261
+ return self._post(
262
+ "/oauth/introspect",
263
+ body=maybe_transform({"token": token}, oauth_introspect_token_params.OAuthIntrospectTokenParams),
264
+ options=make_request_options(
265
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
266
+ ),
267
+ cast_to=OAuthIntrospectTokenResponse,
268
+ )
269
+
270
+ def register_client(
271
+ self,
272
+ *,
273
+ client_name: str | Omit = omit,
274
+ grant_types: List[Literal["authorization_code", "client_credentials", "refresh_token"]] | Omit = omit,
275
+ logo_uri: str | Omit = omit,
276
+ policy_uri: str | Omit = omit,
277
+ redirect_uris: SequenceNotStr[str] | Omit = omit,
278
+ response_types: SequenceNotStr[str] | Omit = omit,
279
+ scope: str | Omit = omit,
280
+ token_endpoint_auth_method: Literal["none", "client_secret_basic", "client_secret_post"] | Omit = omit,
281
+ tos_uri: str | Omit = omit,
282
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
283
+ # The extra values given here take precedence over values defined on the client or passed to this method.
284
+ extra_headers: Headers | None = None,
285
+ extra_query: Query | None = None,
286
+ extra_body: Body | None = None,
287
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
288
+ ) -> OAuthRegisterClientResponse:
289
+ """
290
+ Register a new OAuth client dynamically (RFC 7591)
291
+
292
+ Args:
293
+ client_name: Human-readable string name of the client to be presented to the end-user
294
+
295
+ grant_types: Array of OAuth 2.0 grant type strings that the client may use
296
+
297
+ logo_uri: URL of the client logo
298
+
299
+ policy_uri: URL of the client's privacy policy
300
+
301
+ redirect_uris: Array of redirection URI strings for use in redirect-based flows
302
+
303
+ response_types: Array of the OAuth 2.0 response type strings that the client may use
304
+
305
+ scope: Space-separated string of scope values that the client may use
306
+
307
+ token_endpoint_auth_method: Authentication method for the token endpoint
308
+
309
+ tos_uri: URL of the client's terms of service
310
+
311
+ extra_headers: Send extra headers
312
+
313
+ extra_query: Add additional query parameters to the request
314
+
315
+ extra_body: Add additional JSON properties to the request
316
+
317
+ timeout: Override the client-level default timeout for this request, in seconds
318
+ """
319
+ return self._post(
320
+ "/oauth/register",
321
+ body=maybe_transform(
322
+ {
323
+ "client_name": client_name,
324
+ "grant_types": grant_types,
325
+ "logo_uri": logo_uri,
326
+ "policy_uri": policy_uri,
327
+ "redirect_uris": redirect_uris,
328
+ "response_types": response_types,
329
+ "scope": scope,
330
+ "token_endpoint_auth_method": token_endpoint_auth_method,
331
+ "tos_uri": tos_uri,
332
+ },
333
+ oauth_register_client_params.OAuthRegisterClientParams,
334
+ ),
335
+ options=make_request_options(
336
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
337
+ ),
338
+ cast_to=OAuthRegisterClientResponse,
339
+ )
340
+
341
+ def retrieve_consent(
342
+ self,
343
+ consent_token: str,
344
+ *,
345
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
346
+ # The extra values given here take precedence over values defined on the client or passed to this method.
347
+ extra_headers: Headers | None = None,
348
+ extra_query: Query | None = None,
349
+ extra_body: Body | None = None,
350
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
351
+ ) -> OAuthRetrieveConsentResponse:
352
+ """
353
+ Retrieve details about an OAuth consent token
354
+
355
+ Args:
356
+ extra_headers: Send extra headers
357
+
358
+ extra_query: Add additional query parameters to the request
359
+
360
+ extra_body: Add additional JSON properties to the request
361
+
362
+ timeout: Override the client-level default timeout for this request, in seconds
363
+ """
364
+ if not consent_token:
365
+ raise ValueError(f"Expected a non-empty value for `consent_token` but received {consent_token!r}")
366
+ return self._get(
367
+ f"/oauth/consent/{consent_token}",
368
+ options=make_request_options(
369
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
370
+ ),
371
+ cast_to=OAuthRetrieveConsentResponse,
372
+ )
373
+
374
+ def retrieve_jwks(
375
+ self,
376
+ *,
377
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
378
+ # The extra values given here take precedence over values defined on the client or passed to this method.
379
+ extra_headers: Headers | None = None,
380
+ extra_query: Query | None = None,
381
+ extra_body: Body | None = None,
382
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
383
+ ) -> OAuthRetrieveJwksResponse:
384
+ """Retrieve the JSON Web Key Set for token verification"""
385
+ return self._get(
386
+ "/oauth/jwks",
387
+ options=make_request_options(
388
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
389
+ ),
390
+ cast_to=OAuthRetrieveJwksResponse,
391
+ )
392
+
393
+
394
+ class AsyncOAuthResource(AsyncAPIResource):
395
+ @cached_property
396
+ def with_raw_response(self) -> AsyncOAuthResourceWithRawResponse:
397
+ """
398
+ This property can be used as a prefix for any HTTP method call to return
399
+ the raw response object instead of the parsed content.
400
+
401
+ For more information, see https://www.github.com/team-telnyx/telnyx-python#accessing-raw-response-data-eg-headers
402
+ """
403
+ return AsyncOAuthResourceWithRawResponse(self)
404
+
405
+ @cached_property
406
+ def with_streaming_response(self) -> AsyncOAuthResourceWithStreamingResponse:
407
+ """
408
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
409
+
410
+ For more information, see https://www.github.com/team-telnyx/telnyx-python#with_streaming_response
411
+ """
412
+ return AsyncOAuthResourceWithStreamingResponse(self)
413
+
414
+ async def authorize(
415
+ self,
416
+ *,
417
+ client_id: str,
418
+ redirect_uri: str,
419
+ response_type: Literal["code"],
420
+ code_challenge: str | Omit = omit,
421
+ code_challenge_method: Literal["plain", "S256"] | Omit = omit,
422
+ scope: str | Omit = omit,
423
+ state: str | Omit = omit,
424
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
425
+ # The extra values given here take precedence over values defined on the client or passed to this method.
426
+ extra_headers: Headers | None = None,
427
+ extra_query: Query | None = None,
428
+ extra_body: Body | None = None,
429
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
430
+ ) -> None:
431
+ """
432
+ OAuth 2.0 authorization endpoint for the authorization code flow
433
+
434
+ Args:
435
+ client_id: OAuth client identifier
436
+
437
+ redirect_uri: Redirect URI
438
+
439
+ response_type: OAuth response type
440
+
441
+ code_challenge: PKCE code challenge
442
+
443
+ code_challenge_method: PKCE code challenge method
444
+
445
+ scope: Space-separated list of requested scopes
446
+
447
+ state: State parameter for CSRF protection
448
+
449
+ extra_headers: Send extra headers
450
+
451
+ extra_query: Add additional query parameters to the request
452
+
453
+ extra_body: Add additional JSON properties to the request
454
+
455
+ timeout: Override the client-level default timeout for this request, in seconds
456
+ """
457
+ extra_headers = {"Accept": "*/*", **(extra_headers or {})}
458
+ return await self._get(
459
+ "/oauth/authorize",
460
+ options=make_request_options(
461
+ extra_headers=extra_headers,
462
+ extra_query=extra_query,
463
+ extra_body=extra_body,
464
+ timeout=timeout,
465
+ query=await async_maybe_transform(
466
+ {
467
+ "client_id": client_id,
468
+ "redirect_uri": redirect_uri,
469
+ "response_type": response_type,
470
+ "code_challenge": code_challenge,
471
+ "code_challenge_method": code_challenge_method,
472
+ "scope": scope,
473
+ "state": state,
474
+ },
475
+ oauth_authorize_params.OAuthAuthorizeParams,
476
+ ),
477
+ ),
478
+ cast_to=NoneType,
479
+ )
480
+
481
+ async def create_grant(
482
+ self,
483
+ *,
484
+ allowed: bool,
485
+ consent_token: str,
486
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
487
+ # The extra values given here take precedence over values defined on the client or passed to this method.
488
+ extra_headers: Headers | None = None,
489
+ extra_query: Query | None = None,
490
+ extra_body: Body | None = None,
491
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
492
+ ) -> OAuthCreateGrantResponse:
493
+ """
494
+ Create an OAuth authorization grant
495
+
496
+ Args:
497
+ allowed: Whether the grant is allowed
498
+
499
+ consent_token: Consent token
500
+
501
+ extra_headers: Send extra headers
502
+
503
+ extra_query: Add additional query parameters to the request
504
+
505
+ extra_body: Add additional JSON properties to the request
506
+
507
+ timeout: Override the client-level default timeout for this request, in seconds
508
+ """
509
+ return await self._post(
510
+ "/oauth/grants",
511
+ body=await async_maybe_transform(
512
+ {
513
+ "allowed": allowed,
514
+ "consent_token": consent_token,
515
+ },
516
+ oauth_create_grant_params.OAuthCreateGrantParams,
517
+ ),
518
+ options=make_request_options(
519
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
520
+ ),
521
+ cast_to=OAuthCreateGrantResponse,
522
+ )
523
+
524
+ async def exchange_token(
525
+ self,
526
+ *,
527
+ grant_type: Literal["client_credentials", "authorization_code", "refresh_token"],
528
+ client_id: str | Omit = omit,
529
+ client_secret: str | Omit = omit,
530
+ code: str | Omit = omit,
531
+ code_verifier: str | Omit = omit,
532
+ redirect_uri: str | Omit = omit,
533
+ refresh_token: str | Omit = omit,
534
+ scope: str | Omit = omit,
535
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
536
+ # The extra values given here take precedence over values defined on the client or passed to this method.
537
+ extra_headers: Headers | None = None,
538
+ extra_query: Query | None = None,
539
+ extra_body: Body | None = None,
540
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
541
+ ) -> OAuthExchangeTokenResponse:
542
+ """
543
+ Exchange authorization code, client credentials, or refresh token for access
544
+ token
545
+
546
+ Args:
547
+ grant_type: OAuth 2.0 grant type
548
+
549
+ client_id: OAuth client ID (if not using HTTP Basic auth)
550
+
551
+ client_secret: OAuth client secret (if not using HTTP Basic auth)
552
+
553
+ code: Authorization code (for authorization_code flow)
554
+
555
+ code_verifier: PKCE code verifier (for authorization_code flow)
556
+
557
+ redirect_uri: Redirect URI (for authorization_code flow)
558
+
559
+ refresh_token: Refresh token (for refresh_token flow)
560
+
561
+ scope: Space-separated list of requested scopes (for client_credentials)
562
+
563
+ extra_headers: Send extra headers
564
+
565
+ extra_query: Add additional query parameters to the request
566
+
567
+ extra_body: Add additional JSON properties to the request
568
+
569
+ timeout: Override the client-level default timeout for this request, in seconds
570
+ """
571
+ return await self._post(
572
+ "/oauth/token",
573
+ body=await async_maybe_transform(
574
+ {
575
+ "grant_type": grant_type,
576
+ "client_id": client_id,
577
+ "client_secret": client_secret,
578
+ "code": code,
579
+ "code_verifier": code_verifier,
580
+ "redirect_uri": redirect_uri,
581
+ "refresh_token": refresh_token,
582
+ "scope": scope,
583
+ },
584
+ oauth_exchange_token_params.OAuthExchangeTokenParams,
585
+ ),
586
+ options=make_request_options(
587
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
588
+ ),
589
+ cast_to=OAuthExchangeTokenResponse,
590
+ )
591
+
592
+ async def introspect_token(
593
+ self,
594
+ *,
595
+ token: str,
596
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
597
+ # The extra values given here take precedence over values defined on the client or passed to this method.
598
+ extra_headers: Headers | None = None,
599
+ extra_query: Query | None = None,
600
+ extra_body: Body | None = None,
601
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
602
+ ) -> OAuthIntrospectTokenResponse:
603
+ """
604
+ Introspect an OAuth access token to check its validity and metadata
605
+
606
+ Args:
607
+ token: The token to introspect
608
+
609
+ extra_headers: Send extra headers
610
+
611
+ extra_query: Add additional query parameters to the request
612
+
613
+ extra_body: Add additional JSON properties to the request
614
+
615
+ timeout: Override the client-level default timeout for this request, in seconds
616
+ """
617
+ return await self._post(
618
+ "/oauth/introspect",
619
+ body=await async_maybe_transform(
620
+ {"token": token}, oauth_introspect_token_params.OAuthIntrospectTokenParams
621
+ ),
622
+ options=make_request_options(
623
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
624
+ ),
625
+ cast_to=OAuthIntrospectTokenResponse,
626
+ )
627
+
628
+ async def register_client(
629
+ self,
630
+ *,
631
+ client_name: str | Omit = omit,
632
+ grant_types: List[Literal["authorization_code", "client_credentials", "refresh_token"]] | Omit = omit,
633
+ logo_uri: str | Omit = omit,
634
+ policy_uri: str | Omit = omit,
635
+ redirect_uris: SequenceNotStr[str] | Omit = omit,
636
+ response_types: SequenceNotStr[str] | Omit = omit,
637
+ scope: str | Omit = omit,
638
+ token_endpoint_auth_method: Literal["none", "client_secret_basic", "client_secret_post"] | Omit = omit,
639
+ tos_uri: str | Omit = omit,
640
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
641
+ # The extra values given here take precedence over values defined on the client or passed to this method.
642
+ extra_headers: Headers | None = None,
643
+ extra_query: Query | None = None,
644
+ extra_body: Body | None = None,
645
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
646
+ ) -> OAuthRegisterClientResponse:
647
+ """
648
+ Register a new OAuth client dynamically (RFC 7591)
649
+
650
+ Args:
651
+ client_name: Human-readable string name of the client to be presented to the end-user
652
+
653
+ grant_types: Array of OAuth 2.0 grant type strings that the client may use
654
+
655
+ logo_uri: URL of the client logo
656
+
657
+ policy_uri: URL of the client's privacy policy
658
+
659
+ redirect_uris: Array of redirection URI strings for use in redirect-based flows
660
+
661
+ response_types: Array of the OAuth 2.0 response type strings that the client may use
662
+
663
+ scope: Space-separated string of scope values that the client may use
664
+
665
+ token_endpoint_auth_method: Authentication method for the token endpoint
666
+
667
+ tos_uri: URL of the client's terms of service
668
+
669
+ extra_headers: Send extra headers
670
+
671
+ extra_query: Add additional query parameters to the request
672
+
673
+ extra_body: Add additional JSON properties to the request
674
+
675
+ timeout: Override the client-level default timeout for this request, in seconds
676
+ """
677
+ return await self._post(
678
+ "/oauth/register",
679
+ body=await async_maybe_transform(
680
+ {
681
+ "client_name": client_name,
682
+ "grant_types": grant_types,
683
+ "logo_uri": logo_uri,
684
+ "policy_uri": policy_uri,
685
+ "redirect_uris": redirect_uris,
686
+ "response_types": response_types,
687
+ "scope": scope,
688
+ "token_endpoint_auth_method": token_endpoint_auth_method,
689
+ "tos_uri": tos_uri,
690
+ },
691
+ oauth_register_client_params.OAuthRegisterClientParams,
692
+ ),
693
+ options=make_request_options(
694
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
695
+ ),
696
+ cast_to=OAuthRegisterClientResponse,
697
+ )
698
+
699
+ async def retrieve_consent(
700
+ self,
701
+ consent_token: str,
702
+ *,
703
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
704
+ # The extra values given here take precedence over values defined on the client or passed to this method.
705
+ extra_headers: Headers | None = None,
706
+ extra_query: Query | None = None,
707
+ extra_body: Body | None = None,
708
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
709
+ ) -> OAuthRetrieveConsentResponse:
710
+ """
711
+ Retrieve details about an OAuth consent token
712
+
713
+ Args:
714
+ extra_headers: Send extra headers
715
+
716
+ extra_query: Add additional query parameters to the request
717
+
718
+ extra_body: Add additional JSON properties to the request
719
+
720
+ timeout: Override the client-level default timeout for this request, in seconds
721
+ """
722
+ if not consent_token:
723
+ raise ValueError(f"Expected a non-empty value for `consent_token` but received {consent_token!r}")
724
+ return await self._get(
725
+ f"/oauth/consent/{consent_token}",
726
+ options=make_request_options(
727
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
728
+ ),
729
+ cast_to=OAuthRetrieveConsentResponse,
730
+ )
731
+
732
+ async def retrieve_jwks(
733
+ self,
734
+ *,
735
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
736
+ # The extra values given here take precedence over values defined on the client or passed to this method.
737
+ extra_headers: Headers | None = None,
738
+ extra_query: Query | None = None,
739
+ extra_body: Body | None = None,
740
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
741
+ ) -> OAuthRetrieveJwksResponse:
742
+ """Retrieve the JSON Web Key Set for token verification"""
743
+ return await self._get(
744
+ "/oauth/jwks",
745
+ options=make_request_options(
746
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
747
+ ),
748
+ cast_to=OAuthRetrieveJwksResponse,
749
+ )
750
+
751
+
752
+ class OAuthResourceWithRawResponse:
753
+ def __init__(self, oauth: OAuthResource) -> None:
754
+ self._oauth = oauth
755
+
756
+ self.authorize = to_raw_response_wrapper(
757
+ oauth.authorize,
758
+ )
759
+ self.create_grant = to_raw_response_wrapper(
760
+ oauth.create_grant,
761
+ )
762
+ self.exchange_token = to_raw_response_wrapper(
763
+ oauth.exchange_token,
764
+ )
765
+ self.introspect_token = to_raw_response_wrapper(
766
+ oauth.introspect_token,
767
+ )
768
+ self.register_client = to_raw_response_wrapper(
769
+ oauth.register_client,
770
+ )
771
+ self.retrieve_consent = to_raw_response_wrapper(
772
+ oauth.retrieve_consent,
773
+ )
774
+ self.retrieve_jwks = to_raw_response_wrapper(
775
+ oauth.retrieve_jwks,
776
+ )
777
+
778
+
779
+ class AsyncOAuthResourceWithRawResponse:
780
+ def __init__(self, oauth: AsyncOAuthResource) -> None:
781
+ self._oauth = oauth
782
+
783
+ self.authorize = async_to_raw_response_wrapper(
784
+ oauth.authorize,
785
+ )
786
+ self.create_grant = async_to_raw_response_wrapper(
787
+ oauth.create_grant,
788
+ )
789
+ self.exchange_token = async_to_raw_response_wrapper(
790
+ oauth.exchange_token,
791
+ )
792
+ self.introspect_token = async_to_raw_response_wrapper(
793
+ oauth.introspect_token,
794
+ )
795
+ self.register_client = async_to_raw_response_wrapper(
796
+ oauth.register_client,
797
+ )
798
+ self.retrieve_consent = async_to_raw_response_wrapper(
799
+ oauth.retrieve_consent,
800
+ )
801
+ self.retrieve_jwks = async_to_raw_response_wrapper(
802
+ oauth.retrieve_jwks,
803
+ )
804
+
805
+
806
+ class OAuthResourceWithStreamingResponse:
807
+ def __init__(self, oauth: OAuthResource) -> None:
808
+ self._oauth = oauth
809
+
810
+ self.authorize = to_streamed_response_wrapper(
811
+ oauth.authorize,
812
+ )
813
+ self.create_grant = to_streamed_response_wrapper(
814
+ oauth.create_grant,
815
+ )
816
+ self.exchange_token = to_streamed_response_wrapper(
817
+ oauth.exchange_token,
818
+ )
819
+ self.introspect_token = to_streamed_response_wrapper(
820
+ oauth.introspect_token,
821
+ )
822
+ self.register_client = to_streamed_response_wrapper(
823
+ oauth.register_client,
824
+ )
825
+ self.retrieve_consent = to_streamed_response_wrapper(
826
+ oauth.retrieve_consent,
827
+ )
828
+ self.retrieve_jwks = to_streamed_response_wrapper(
829
+ oauth.retrieve_jwks,
830
+ )
831
+
832
+
833
+ class AsyncOAuthResourceWithStreamingResponse:
834
+ def __init__(self, oauth: AsyncOAuthResource) -> None:
835
+ self._oauth = oauth
836
+
837
+ self.authorize = async_to_streamed_response_wrapper(
838
+ oauth.authorize,
839
+ )
840
+ self.create_grant = async_to_streamed_response_wrapper(
841
+ oauth.create_grant,
842
+ )
843
+ self.exchange_token = async_to_streamed_response_wrapper(
844
+ oauth.exchange_token,
845
+ )
846
+ self.introspect_token = async_to_streamed_response_wrapper(
847
+ oauth.introspect_token,
848
+ )
849
+ self.register_client = async_to_streamed_response_wrapper(
850
+ oauth.register_client,
851
+ )
852
+ self.retrieve_consent = async_to_streamed_response_wrapper(
853
+ oauth.retrieve_consent,
854
+ )
855
+ self.retrieve_jwks = async_to_streamed_response_wrapper(
856
+ oauth.retrieve_jwks,
857
+ )