telnyx 3.7.0a0__py3-none-any.whl → 3.9.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 (215) hide show
  1. telnyx/__init__.py +2 -0
  2. telnyx/_client.py +25 -756
  3. telnyx/_exceptions.py +4 -0
  4. telnyx/_version.py +1 -1
  5. telnyx/resources/__init__.py +3 -1
  6. telnyx/resources/advanced_orders.py +63 -63
  7. telnyx/resources/ai/assistants/assistants.py +15 -17
  8. telnyx/resources/ai/assistants/versions.py +13 -15
  9. telnyx/resources/brand/brand.py +8 -4
  10. telnyx/resources/calls/actions.py +10 -6
  11. telnyx/resources/calls/calls.py +16 -2
  12. telnyx/resources/documents.py +242 -37
  13. telnyx/resources/legacy/reporting/batch_detail_records/messaging.py +3 -2
  14. telnyx/resources/legacy/reporting/batch_detail_records/voice.py +3 -2
  15. telnyx/resources/messaging_profiles/messaging_profiles.py +16 -0
  16. telnyx/resources/messaging_tollfree/verification/requests.py +203 -1
  17. telnyx/resources/outbound_voice_profiles.py +24 -4
  18. telnyx/resources/sim_cards/actions.py +12 -12
  19. telnyx/resources/texml/accounts/calls/calls.py +11 -0
  20. telnyx/resources/texml/accounts/conferences/participants.py +11 -0
  21. telnyx/resources/verified_numbers/verified_numbers.py +25 -4
  22. telnyx/resources/verify_profiles.py +9 -10
  23. telnyx/resources/webhooks.py +152 -4
  24. telnyx/types/__init__.py +18 -15
  25. telnyx/types/access_ip_address_list_response.py +3 -12
  26. telnyx/types/access_ip_range_list_response.py +3 -12
  27. telnyx/types/addresses/action_validate_response.py +7 -2
  28. telnyx/types/{advanced_order_update_params.py → advanced_order_update_requirement_group_params.py} +2 -2
  29. telnyx/types/ai/__init__.py +1 -3
  30. telnyx/types/ai/assistant_import_params.py +1 -1
  31. telnyx/types/ai/assistants/__init__.py +0 -3
  32. telnyx/types/ai/assistants_list.py +4 -88
  33. telnyx/types/ai/import_metadata.py +1 -1
  34. telnyx/types/ai/{assistant_clone_response.py → inference_embedding.py} +2 -2
  35. telnyx/types/ai/inference_embedding_transfer_tool_params.py +6 -0
  36. telnyx/types/ai/inference_embedding_transfer_tool_params_param.py +6 -0
  37. telnyx/types/ai/voice_settings.py +49 -2
  38. telnyx/types/ai/voice_settings_param.py +49 -2
  39. telnyx/types/brand_create_params.py +2 -1
  40. telnyx/types/brand_update_params.py +2 -1
  41. telnyx/types/call_ai_gather_ended_webhook_event1.py +78 -0
  42. telnyx/types/call_ai_gather_message_history_updated_webhook_event1.py +69 -0
  43. telnyx/types/call_ai_gather_partial_results_webhook_event1.py +75 -0
  44. telnyx/types/call_answered_webhook_event1.py +75 -0
  45. telnyx/types/call_bridged_webhook_event1.py +58 -0
  46. telnyx/types/call_conversation_ended_webhook_event1.py +84 -0
  47. telnyx/types/call_conversation_insights_generated_webhook_event1.py +67 -0
  48. telnyx/types/call_dial_params.py +10 -1
  49. telnyx/types/call_dtmf_received_webhook_event1.py +61 -0
  50. telnyx/types/call_enqueued_webhook_event1.py +59 -0
  51. telnyx/types/call_fork_started_webhook_event1.py +53 -0
  52. telnyx/types/call_fork_stopped_webhook_event1.py +53 -0
  53. telnyx/types/call_gather_ended_webhook_event1.py +64 -0
  54. telnyx/types/call_hangup_webhook_event1.py +150 -0
  55. telnyx/types/call_initiated_webhook_event1.py +96 -0
  56. telnyx/types/call_left_queue_webhook_event1.py +62 -0
  57. telnyx/types/call_machine_detection_ended_webhook_event1.py +61 -0
  58. telnyx/types/call_machine_greeting_ended_webhook_event1.py +61 -0
  59. telnyx/types/call_machine_premium_detection_ended_webhook_event1.py +63 -0
  60. telnyx/types/call_machine_premium_greeting_ended_webhook_event1.py +61 -0
  61. telnyx/types/call_playback_ended_webhook_event1.py +70 -0
  62. telnyx/types/call_playback_started_webhook_event1.py +62 -0
  63. telnyx/types/call_recording_error_webhook_event1.py +60 -0
  64. telnyx/types/call_recording_saved_webhook_event1.py +94 -0
  65. telnyx/types/call_recording_transcription_saved_webhook_event1.py +71 -0
  66. telnyx/types/call_refer_completed_webhook_event1.py +61 -0
  67. telnyx/types/call_refer_failed_webhook_event1.py +61 -0
  68. telnyx/types/call_refer_started_webhook_event1.py +61 -0
  69. telnyx/types/call_siprec_failed_webhook_event1.py +53 -0
  70. telnyx/types/call_siprec_started_webhook_event1.py +50 -0
  71. telnyx/types/call_siprec_stopped_webhook_event1.py +53 -0
  72. telnyx/types/call_speak_ended_webhook_event1.py +53 -0
  73. telnyx/types/call_speak_started_webhook_event1.py +50 -0
  74. telnyx/types/call_streaming_failed_webhook_event1.py +70 -0
  75. telnyx/types/call_streaming_started_webhook_event1.py +53 -0
  76. telnyx/types/call_streaming_stopped_webhook_event1.py +53 -0
  77. telnyx/types/calls/__init__.py +1 -0
  78. telnyx/types/calls/action_start_streaming_params.py +2 -1
  79. telnyx/types/calls/action_start_transcription_params.py +160 -6
  80. telnyx/types/calls/telnyx_transcription_language.py +108 -0
  81. telnyx/types/calls/transcription_engine_b_config_param.py +3 -102
  82. telnyx/types/calls/transcription_start_request_param.py +161 -6
  83. telnyx/types/campaign_status_update_webhook_event1.py +26 -0
  84. telnyx/types/conference_created_webhook_event1.py +53 -0
  85. telnyx/types/conference_ended_webhook_event1.py +56 -0
  86. telnyx/types/conference_floor_changed_webhook_event1.py +45 -0
  87. telnyx/types/conference_participant_joined_webhook_event1.py +53 -0
  88. telnyx/types/conference_participant_left_webhook_event1.py +53 -0
  89. telnyx/types/conference_participant_playback_ended_webhook_event1.py +65 -0
  90. telnyx/types/conference_participant_playback_started_webhook_event1.py +65 -0
  91. telnyx/types/conference_participant_speak_ended_webhook_event1.py +56 -0
  92. telnyx/types/conference_participant_speak_started_webhook_event1.py +56 -0
  93. telnyx/types/conference_playback_ended_webhook_event1.py +49 -0
  94. telnyx/types/conference_playback_started_webhook_event1.py +49 -0
  95. telnyx/types/conference_recording_saved_webhook_event1.py +103 -0
  96. telnyx/types/conference_speak_ended_webhook_event1.py +40 -0
  97. telnyx/types/conference_speak_started_webhook_event1.py +40 -0
  98. telnyx/types/country_coverage_retrieve_country_response.py +7 -0
  99. telnyx/types/country_coverage_retrieve_response.py +7 -0
  100. telnyx/types/customer_service_record_status_changed_webhook_event1.py +55 -0
  101. telnyx/types/delivery_update_webhook_event1.py +40 -0
  102. telnyx/types/document_upload_json_params.py +39 -0
  103. telnyx/types/document_upload_json_response.py +12 -0
  104. telnyx/types/fax_delivered_webhook_event1.py +69 -0
  105. telnyx/types/fax_failed_webhook_event1.py +66 -0
  106. telnyx/types/fax_media_processed_webhook_event1.py +63 -0
  107. telnyx/types/fax_queued_webhook_event1.py +63 -0
  108. telnyx/types/fax_sending_started_webhook_event1.py +63 -0
  109. telnyx/types/inbound_message_webhook_event1.py +227 -0
  110. telnyx/types/legacy/reporting/__init__.py +2 -0
  111. telnyx/types/legacy/reporting/batch_detail_records/__init__.py +4 -0
  112. telnyx/types/legacy/reporting/batch_detail_records/batch_csv_pagination_meta.py +17 -0
  113. telnyx/types/legacy/reporting/batch_detail_records/cdr_detailed_req_response.py +63 -0
  114. telnyx/types/legacy/reporting/batch_detail_records/mdr_detail_report_response.py +42 -0
  115. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_params.py +4 -26
  116. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_response.py +4 -60
  117. telnyx/types/legacy/reporting/batch_detail_records/messaging_delete_response.py +4 -60
  118. telnyx/types/legacy/reporting/batch_detail_records/messaging_list_response.py +5 -70
  119. telnyx/types/legacy/reporting/batch_detail_records/messaging_retrieve_response.py +4 -60
  120. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_response.py +3 -22
  121. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_delete_response.py +3 -22
  122. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_list_response.py +3 -22
  123. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_retrieve_response.py +3 -22
  124. telnyx/types/legacy/reporting/batch_detail_records/stt_detail_report_response.py +27 -0
  125. telnyx/types/legacy/reporting/batch_detail_records/voice_create_params.py +4 -26
  126. telnyx/types/legacy/reporting/batch_detail_records/voice_create_response.py +4 -82
  127. telnyx/types/legacy/reporting/batch_detail_records/voice_delete_response.py +4 -82
  128. telnyx/types/legacy/reporting/batch_detail_records/voice_list_response.py +5 -92
  129. telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_response.py +4 -82
  130. telnyx/types/legacy/reporting/filter.py +31 -0
  131. telnyx/types/legacy/reporting/filter_param.py +30 -0
  132. telnyx/types/legacy/reporting/usage_reports/__init__.py +3 -0
  133. telnyx/types/legacy/reporting/usage_reports/cdr_usage_report_response_legacy.py +43 -0
  134. telnyx/types/legacy/reporting/usage_reports/mdr_usage_report_response_legacy.py +38 -0
  135. telnyx/types/legacy/reporting/usage_reports/messaging_create_response.py +4 -34
  136. telnyx/types/legacy/reporting/usage_reports/messaging_delete_response.py +4 -34
  137. telnyx/types/legacy/reporting/usage_reports/messaging_list_response.py +5 -44
  138. telnyx/types/legacy/reporting/usage_reports/messaging_retrieve_response.py +4 -34
  139. telnyx/types/legacy/reporting/usage_reports/standard_pagination_meta.py +17 -0
  140. telnyx/types/legacy/reporting/usage_reports/voice_create_response.py +4 -39
  141. telnyx/types/legacy/reporting/usage_reports/voice_delete_response.py +4 -39
  142. telnyx/types/legacy/reporting/usage_reports/voice_list_response.py +5 -49
  143. telnyx/types/legacy/reporting/usage_reports/voice_retrieve_response.py +4 -39
  144. telnyx/types/message_template.py +12 -0
  145. telnyx/types/messaging_profile.py +3 -0
  146. telnyx/types/messaging_profile_create_params.py +3 -0
  147. telnyx/types/messaging_profile_update_params.py +3 -0
  148. telnyx/types/messaging_tollfree/verification/__init__.py +1 -0
  149. telnyx/types/messaging_tollfree/verification/request_create_params.py +51 -1
  150. telnyx/types/messaging_tollfree/verification/request_update_params.py +51 -1
  151. telnyx/types/messaging_tollfree/verification/toll_free_verification_entity_type.py +9 -0
  152. telnyx/types/messaging_tollfree/verification/verification_request_egress.py +24 -0
  153. telnyx/types/messaging_tollfree/verification/verification_request_status.py +24 -0
  154. telnyx/types/number_order_status_update_webhook_event1.py +38 -0
  155. telnyx/types/oauth_client.py +59 -0
  156. telnyx/types/oauth_client_create_response.py +4 -55
  157. telnyx/types/oauth_client_list_response.py +5 -69
  158. telnyx/types/oauth_client_retrieve_response.py +4 -55
  159. telnyx/types/oauth_client_update_response.py +4 -55
  160. telnyx/types/oauth_grant.py +29 -0
  161. telnyx/types/oauth_grant_delete_response.py +4 -25
  162. telnyx/types/oauth_grant_list_response.py +5 -39
  163. telnyx/types/oauth_grant_retrieve_response.py +4 -25
  164. telnyx/types/outbound_voice_profile.py +27 -1
  165. telnyx/types/outbound_voice_profile_create_params.py +27 -1
  166. telnyx/types/outbound_voice_profile_list_params.py +1 -1
  167. telnyx/types/outbound_voice_profile_update_params.py +27 -1
  168. telnyx/types/pagination_meta_cloudflare_ip_list_sync.py +15 -0
  169. telnyx/types/pagination_meta_oauth.py +21 -0
  170. telnyx/types/phone_number_blocks/__init__.py +1 -0
  171. telnyx/types/phone_number_blocks/job.py +3 -34
  172. telnyx/types/phone_number_blocks/job_error.py +32 -0
  173. telnyx/types/phone_numbers/phone_numbers_job.py +3 -36
  174. telnyx/types/replaced_link_click_webhook_event1.py +32 -0
  175. telnyx/types/report_list_mdrs_response.py +3 -12
  176. telnyx/types/reports/__init__.py +1 -0
  177. telnyx/types/reports/mdr_usage_report_list_response.py +3 -12
  178. telnyx/types/reports/pagination_meta_reporting.py +17 -0
  179. telnyx/types/requirement_group.py +2 -2
  180. telnyx/types/requirement_group_list_params.py +1 -1
  181. telnyx/types/shared/__init__.py +1 -0
  182. telnyx/types/{api_error.py → shared/api_error.py} +1 -1
  183. telnyx/types/stream_bidirectional_sampling_rate.py +7 -0
  184. telnyx/types/streaming_failed_webhook_event1.py +70 -0
  185. telnyx/types/streaming_started_webhook_event1.py +53 -0
  186. telnyx/types/streaming_stopped_webhook_event1.py +53 -0
  187. telnyx/types/texml/accounts/call_calls_params.py +16 -1
  188. telnyx/types/texml/accounts/conferences/participant_participants_params.py +16 -1
  189. telnyx/types/transcription_webhook_event1.py +72 -0
  190. telnyx/types/unsafe_unwrap_webhook_event.py +138 -0
  191. telnyx/types/verifications/__init__.py +1 -0
  192. telnyx/types/verifications/by_phone_number_list_response.py +4 -13
  193. telnyx/types/verifications/verify_meta.py +17 -0
  194. telnyx/types/verified_number_create_params.py +10 -0
  195. telnyx/types/verify_profile.py +18 -3
  196. telnyx/types/verify_profile_list_response.py +4 -13
  197. telnyx/types/{verify_profile_create_template_response.py → verify_profile_message_template_response.py} +2 -6
  198. telnyx/types/verify_profile_retrieve_templates_response.py +4 -9
  199. {telnyx-3.7.0a0.dist-info → telnyx-3.9.0.dist-info}/METADATA +9 -5
  200. {telnyx-3.7.0a0.dist-info → telnyx-3.9.0.dist-info}/RECORD +202 -128
  201. telnyx/types/ai/assistant_create_response.py +0 -92
  202. telnyx/types/ai/assistant_retrieve_response.py +0 -92
  203. telnyx/types/ai/assistants/version_promote_response.py +0 -92
  204. telnyx/types/ai/assistants/version_retrieve_response.py +0 -92
  205. telnyx/types/ai/assistants/version_update_response.py +0 -92
  206. telnyx/types/client_create_bucket_params.py +0 -13
  207. telnyx/types/client_delete_objects_params.py +0 -20
  208. telnyx/types/client_get_object_params.py +0 -15
  209. telnyx/types/client_list_objects_params.py +0 -13
  210. telnyx/types/client_put_object_params.py +0 -20
  211. telnyx/types/list_buckets_response.py +0 -20
  212. telnyx/types/list_objects_response.py +0 -24
  213. telnyx/types/verify_profile_update_template_response.py +0 -17
  214. {telnyx-3.7.0a0.dist-info → telnyx-3.9.0.dist-info}/WHEEL +0 -0
  215. {telnyx-3.7.0a0.dist-info → telnyx-3.9.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,56 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["ConferenceParticipantSpeakStartedWebhookEvent", "Data", "DataPayload"]
10
+
11
+
12
+ class DataPayload(BaseModel):
13
+ call_control_id: Optional[str] = None
14
+ """Participant's call ID used to issue commands via Call Control API."""
15
+
16
+ call_leg_id: Optional[str] = None
17
+ """ID that is unique to the call and can be used to correlate webhook events."""
18
+
19
+ call_session_id: Optional[str] = None
20
+ """
21
+ ID that is unique to the call session and can be used to correlate webhook
22
+ events. Call session is a group of related call legs that logically belong to
23
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
24
+ """
25
+
26
+ client_state: Optional[str] = None
27
+ """State received from a command."""
28
+
29
+ conference_id: Optional[str] = None
30
+ """ID of the conference the text was spoken in."""
31
+
32
+ connection_id: Optional[str] = None
33
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
34
+
35
+ creator_call_session_id: Optional[str] = None
36
+ """ID that is unique to the call session that started the conference."""
37
+
38
+ occurred_at: Optional[datetime] = None
39
+ """ISO 8601 datetime of when the event occurred."""
40
+
41
+
42
+ class Data(BaseModel):
43
+ id: Optional[str] = None
44
+ """Identifies the type of resource."""
45
+
46
+ event_type: Optional[Literal["conference.participant.speak.started"]] = None
47
+ """The type of event being delivered."""
48
+
49
+ payload: Optional[DataPayload] = None
50
+
51
+ record_type: Optional[Literal["event"]] = None
52
+ """Identifies the type of the resource."""
53
+
54
+
55
+ class ConferenceParticipantSpeakStartedWebhookEvent(BaseModel):
56
+ data: Optional[Data] = None
@@ -0,0 +1,49 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["ConferencePlaybackEndedWebhookEvent", "Data", "DataPayload"]
10
+
11
+
12
+ class DataPayload(BaseModel):
13
+ conference_id: Optional[str] = None
14
+ """ID of the conference the text was spoken in."""
15
+
16
+ connection_id: Optional[str] = None
17
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
18
+
19
+ creator_call_session_id: Optional[str] = None
20
+ """ID that is unique to the call session that started the conference."""
21
+
22
+ media_name: Optional[str] = None
23
+ """
24
+ The name of the audio media file being played back, if media_name has been used
25
+ to start.
26
+ """
27
+
28
+ media_url: Optional[str] = None
29
+ """The audio URL being played back, if audio_url has been used to start."""
30
+
31
+ occurred_at: Optional[datetime] = None
32
+ """ISO 8601 datetime of when the event occurred."""
33
+
34
+
35
+ class Data(BaseModel):
36
+ id: Optional[str] = None
37
+ """Identifies the type of resource."""
38
+
39
+ event_type: Optional[Literal["conference.playback.ended"]] = None
40
+ """The type of event being delivered."""
41
+
42
+ payload: Optional[DataPayload] = None
43
+
44
+ record_type: Optional[Literal["event"]] = None
45
+ """Identifies the type of the resource."""
46
+
47
+
48
+ class ConferencePlaybackEndedWebhookEvent(BaseModel):
49
+ data: Optional[Data] = None
@@ -0,0 +1,49 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["ConferencePlaybackStartedWebhookEvent", "Data", "DataPayload"]
10
+
11
+
12
+ class DataPayload(BaseModel):
13
+ conference_id: Optional[str] = None
14
+ """ID of the conference the text was spoken in."""
15
+
16
+ connection_id: Optional[str] = None
17
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
18
+
19
+ creator_call_session_id: Optional[str] = None
20
+ """ID that is unique to the call session that started the conference."""
21
+
22
+ media_name: Optional[str] = None
23
+ """
24
+ The name of the audio media file being played back, if media_name has been used
25
+ to start.
26
+ """
27
+
28
+ media_url: Optional[str] = None
29
+ """The audio URL being played back, if audio_url has been used to start."""
30
+
31
+ occurred_at: Optional[datetime] = None
32
+ """ISO 8601 datetime of when the event occurred."""
33
+
34
+
35
+ class Data(BaseModel):
36
+ id: Optional[str] = None
37
+ """Identifies the type of resource."""
38
+
39
+ event_type: Optional[Literal["conference.playback.started"]] = None
40
+ """The type of event being delivered."""
41
+
42
+ payload: Optional[DataPayload] = None
43
+
44
+ record_type: Optional[Literal["event"]] = None
45
+ """Identifies the type of the resource."""
46
+
47
+
48
+ class ConferencePlaybackStartedWebhookEvent(BaseModel):
49
+ data: Optional[Data] = None
@@ -0,0 +1,103 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = [
10
+ "ConferenceRecordingSavedWebhookEvent",
11
+ "Data",
12
+ "DataPayload",
13
+ "DataPayloadPublicRecordingURLs",
14
+ "DataPayloadRecordingURLs",
15
+ ]
16
+
17
+
18
+ class DataPayloadPublicRecordingURLs(BaseModel):
19
+ mp3: Optional[str] = None
20
+ """Recording URL in requested `mp3` format."""
21
+
22
+ wav: Optional[str] = None
23
+ """Recording URL in requested `wav` format."""
24
+
25
+
26
+ class DataPayloadRecordingURLs(BaseModel):
27
+ mp3: Optional[str] = None
28
+ """Recording URL in requested `mp3` format."""
29
+
30
+ wav: Optional[str] = None
31
+ """Recording URL in requested `wav` format."""
32
+
33
+
34
+ class DataPayload(BaseModel):
35
+ call_control_id: Optional[str] = None
36
+ """Participant's call ID used to issue commands via Call Control API."""
37
+
38
+ call_session_id: Optional[str] = None
39
+ """
40
+ ID that is unique to the call session and can be used to correlate webhook
41
+ events. Call session is a group of related call legs that logically belong to
42
+ the same phone call, e.g. an inbound and outbound leg of a transferred call.
43
+ """
44
+
45
+ channels: Optional[Literal["single", "dual"]] = None
46
+ """Whether recording was recorded in `single` or `dual` channel."""
47
+
48
+ client_state: Optional[str] = None
49
+ """State received from a command."""
50
+
51
+ conference_id: Optional[str] = None
52
+ """ID of the conference that is being recorded."""
53
+
54
+ connection_id: Optional[str] = None
55
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
56
+
57
+ format: Optional[Literal["wav", "mp3"]] = None
58
+ """The audio file format used when storing the call recording.
59
+
60
+ Can be either `mp3` or `wav`.
61
+ """
62
+
63
+ public_recording_urls: Optional[DataPayloadPublicRecordingURLs] = None
64
+ """Recording URLs in requested format.
65
+
66
+ The URL is valid for as long as the file exists. For security purposes, this
67
+ feature is activated on a per request basis. Please contact customer support
68
+ with your Account ID to request activation.
69
+ """
70
+
71
+ recording_ended_at: Optional[datetime] = None
72
+ """ISO 8601 datetime of when recording ended."""
73
+
74
+ recording_id: Optional[str] = None
75
+ """ID of the conference recording."""
76
+
77
+ recording_started_at: Optional[datetime] = None
78
+ """ISO 8601 datetime of when recording started."""
79
+
80
+ recording_urls: Optional[DataPayloadRecordingURLs] = None
81
+ """Recording URLs in requested format.
82
+
83
+ These URLs are valid for 10 minutes. After 10 minutes, you may retrieve
84
+ recordings via API using Reports -> Call Recordings documentation, or via
85
+ Mission Control under Reporting -> Recordings.
86
+ """
87
+
88
+
89
+ class Data(BaseModel):
90
+ id: Optional[str] = None
91
+ """Identifies the type of resource."""
92
+
93
+ event_type: Optional[Literal["conference.recording.saved"]] = None
94
+ """The type of event being delivered."""
95
+
96
+ payload: Optional[DataPayload] = None
97
+
98
+ record_type: Optional[Literal["event"]] = None
99
+ """Identifies the type of the resource."""
100
+
101
+
102
+ class ConferenceRecordingSavedWebhookEvent(BaseModel):
103
+ data: Optional[Data] = None
@@ -0,0 +1,40 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["ConferenceSpeakEndedWebhookEvent", "Data", "DataPayload"]
10
+
11
+
12
+ class DataPayload(BaseModel):
13
+ conference_id: Optional[str] = None
14
+ """ID of the conference the text was spoken in."""
15
+
16
+ connection_id: Optional[str] = None
17
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
18
+
19
+ creator_call_session_id: Optional[str] = None
20
+ """ID that is unique to the call session that started the conference."""
21
+
22
+ occurred_at: Optional[datetime] = None
23
+ """ISO 8601 datetime of when the event occurred."""
24
+
25
+
26
+ class Data(BaseModel):
27
+ id: Optional[str] = None
28
+ """Identifies the type of resource."""
29
+
30
+ event_type: Optional[Literal["conference.speak.ended"]] = None
31
+ """The type of event being delivered."""
32
+
33
+ payload: Optional[DataPayload] = None
34
+
35
+ record_type: Optional[Literal["event"]] = None
36
+ """Identifies the type of the resource."""
37
+
38
+
39
+ class ConferenceSpeakEndedWebhookEvent(BaseModel):
40
+ data: Optional[Data] = None
@@ -0,0 +1,40 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["ConferenceSpeakStartedWebhookEvent", "Data", "DataPayload"]
10
+
11
+
12
+ class DataPayload(BaseModel):
13
+ conference_id: Optional[str] = None
14
+ """ID of the conference the text was spoken in."""
15
+
16
+ connection_id: Optional[str] = None
17
+ """Call Control App ID (formerly Telnyx connection ID) used in the call."""
18
+
19
+ creator_call_session_id: Optional[str] = None
20
+ """ID that is unique to the call session that started the conference."""
21
+
22
+ occurred_at: Optional[datetime] = None
23
+ """ISO 8601 datetime of when the event occurred."""
24
+
25
+
26
+ class Data(BaseModel):
27
+ id: Optional[str] = None
28
+ """Identifies the type of resource."""
29
+
30
+ event_type: Optional[Literal["conference.speak.started"]] = None
31
+ """The type of event being delivered."""
32
+
33
+ payload: Optional[DataPayload] = None
34
+
35
+ record_type: Optional[Literal["event"]] = None
36
+ """Identifies the type of the resource."""
37
+
38
+
39
+ class ConferenceSpeakStartedWebhookEvent(BaseModel):
40
+ data: Optional[Data] = None
@@ -10,6 +10,8 @@ __all__ = ["CountryCoverageRetrieveCountryResponse", "Data", "DataLocal", "DataT
10
10
  class DataLocal(BaseModel):
11
11
  features: Optional[List[str]] = None
12
12
 
13
+ full_pstn_replacement: Optional[bool] = None
14
+
13
15
  international_sms: Optional[bool] = None
14
16
 
15
17
  p2p: Optional[bool] = None
@@ -22,6 +24,8 @@ class DataLocal(BaseModel):
22
24
  class DataTollFree(BaseModel):
23
25
  features: Optional[List[str]] = None
24
26
 
27
+ full_pstn_replacement: Optional[bool] = None
28
+
25
29
  international_sms: Optional[bool] = None
26
30
 
27
31
  p2p: Optional[bool] = None
@@ -59,6 +63,9 @@ class Data(BaseModel):
59
63
  quickship: Optional[bool] = None
60
64
  """Supports quickship"""
61
65
 
66
+ region: Optional[str] = None
67
+ """Geographic region (e.g., AMER, EMEA, APAC)"""
68
+
62
69
  reservable: Optional[bool] = None
63
70
  """Supports reservable"""
64
71
 
@@ -10,6 +10,8 @@ __all__ = ["CountryCoverageRetrieveResponse", "Data", "DataLocal", "DataTollFree
10
10
  class DataLocal(BaseModel):
11
11
  features: Optional[List[str]] = None
12
12
 
13
+ full_pstn_replacement: Optional[bool] = None
14
+
13
15
  international_sms: Optional[bool] = None
14
16
 
15
17
  p2p: Optional[bool] = None
@@ -22,6 +24,8 @@ class DataLocal(BaseModel):
22
24
  class DataTollFree(BaseModel):
23
25
  features: Optional[List[str]] = None
24
26
 
27
+ full_pstn_replacement: Optional[bool] = None
28
+
25
29
  international_sms: Optional[bool] = None
26
30
 
27
31
  p2p: Optional[bool] = None
@@ -59,6 +63,9 @@ class Data(BaseModel):
59
63
  quickship: Optional[bool] = None
60
64
  """Supports quickship"""
61
65
 
66
+ region: Optional[str] = None
67
+ """Geographic region (e.g., AMER, EMEA, APAC)"""
68
+
62
69
  reservable: Optional[bool] = None
63
70
  """Supports reservable"""
64
71
 
@@ -0,0 +1,55 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["CustomerServiceRecordStatusChangedWebhookEvent", "Data", "DataPayload", "Meta"]
10
+
11
+
12
+ class DataPayload(BaseModel):
13
+ id: Optional[str] = None
14
+ """Uniquely identifies the customer service record."""
15
+
16
+ phone_number: Optional[str] = None
17
+ """The phone number of the customer service record."""
18
+
19
+ status: Optional[Literal["pending", "completed", "failed"]] = None
20
+ """The status of the customer service record"""
21
+
22
+ updated_at: Optional[datetime] = None
23
+ """
24
+ ISO 8601 formatted date indicating the last time where the resource was updated.
25
+ """
26
+
27
+
28
+ class Data(BaseModel):
29
+ id: Optional[str] = None
30
+ """Uniquely identifies the callback event."""
31
+
32
+ event_type: Optional[Literal["customer_service_record.status_changed"]] = None
33
+ """The type of the callback event."""
34
+
35
+ occurred_at: Optional[datetime] = None
36
+ """ISO 8601 formatted date indicating when the callback event occurred."""
37
+
38
+ payload: Optional[DataPayload] = None
39
+
40
+ record_type: Optional[Literal["event"]] = None
41
+ """Identifies the type of the resource."""
42
+
43
+
44
+ class Meta(BaseModel):
45
+ attempt: Optional[int] = None
46
+ """The number of times the callback webhook has been attempted."""
47
+
48
+ delivered_to: Optional[str] = None
49
+ """The URL that the callback webhook was delivered to."""
50
+
51
+
52
+ class CustomerServiceRecordStatusChangedWebhookEvent(BaseModel):
53
+ data: Optional[Data] = None
54
+
55
+ meta: Optional[Meta] = None
@@ -0,0 +1,40 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+ from .outbound_message_payload import OutboundMessagePayload
9
+
10
+ __all__ = ["DeliveryUpdateWebhookEvent", "Data", "Meta"]
11
+
12
+
13
+ class Data(BaseModel):
14
+ id: Optional[str] = None
15
+ """Identifies the type of resource."""
16
+
17
+ event_type: Optional[Literal["message.sent", "message.finalized"]] = None
18
+ """The type of event being delivered."""
19
+
20
+ occurred_at: Optional[datetime] = None
21
+ """ISO 8601 formatted date indicating when the resource was created."""
22
+
23
+ payload: Optional[OutboundMessagePayload] = None
24
+
25
+ record_type: Optional[Literal["event"]] = None
26
+ """Identifies the type of the resource."""
27
+
28
+
29
+ class Meta(BaseModel):
30
+ attempt: Optional[int] = None
31
+ """Number of attempts to deliver the webhook event."""
32
+
33
+ delivered_to: Optional[str] = None
34
+ """The webhook URL the event was delivered to."""
35
+
36
+
37
+ class DeliveryUpdateWebhookEvent(BaseModel):
38
+ data: Optional[Data] = None
39
+
40
+ meta: Optional[Meta] = None
@@ -0,0 +1,39 @@
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 Union
6
+ from typing_extensions import Required, Annotated, TypeAlias, TypedDict
7
+
8
+ from .._types import Base64FileInput
9
+ from .._utils import PropertyInfo
10
+
11
+ __all__ = ["DocumentUploadJsonParams", "DocServiceDocumentUploadURL", "DocServiceDocumentUploadInline"]
12
+
13
+
14
+ class DocServiceDocumentUploadURL(TypedDict, total=False):
15
+ url: Required[str]
16
+ """
17
+ If the file is already hosted publicly, you can provide a URL and have the
18
+ documents service fetch it for you.
19
+ """
20
+
21
+ customer_reference: str
22
+ """Optional reference string for customer tracking."""
23
+
24
+ filename: str
25
+ """The filename of the document."""
26
+
27
+
28
+ class DocServiceDocumentUploadInline(TypedDict, total=False):
29
+ file: Required[Annotated[Union[str, Base64FileInput], PropertyInfo(format="base64")]]
30
+ """The Base64 encoded contents of the file you are uploading."""
31
+
32
+ customer_reference: str
33
+ """A customer reference string for customer look ups."""
34
+
35
+ filename: str
36
+ """The filename of the document."""
37
+
38
+
39
+ DocumentUploadJsonParams: TypeAlias = Union[DocServiceDocumentUploadURL, DocServiceDocumentUploadInline]
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from .._models import BaseModel
6
+ from .doc_service_document import DocServiceDocument
7
+
8
+ __all__ = ["DocumentUploadJsonResponse"]
9
+
10
+
11
+ class DocumentUploadJsonResponse(BaseModel):
12
+ data: Optional[DocServiceDocument] = None
@@ -0,0 +1,69 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from typing_extensions import Literal
5
+
6
+ from pydantic import Field as FieldInfo
7
+
8
+ from .._models import BaseModel
9
+
10
+ __all__ = ["FaxDeliveredWebhookEvent", "Payload"]
11
+
12
+
13
+ class Payload(BaseModel):
14
+ call_duration_secs: Optional[int] = None
15
+ """The duration of the call in seconds."""
16
+
17
+ client_state: Optional[str] = None
18
+ """State received from a command."""
19
+
20
+ connection_id: Optional[str] = None
21
+ """The ID of the connection used to send the fax."""
22
+
23
+ direction: Optional[Literal["inbound", "outbound"]] = None
24
+ """The direction of the fax."""
25
+
26
+ fax_id: Optional[str] = None
27
+ """Identifies the fax."""
28
+
29
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
30
+ """The phone number, in E.164 format, the fax will be sent from."""
31
+
32
+ media_name: Optional[str] = None
33
+ """The media_name used for the fax's media.
34
+
35
+ Must point to a file previously uploaded to api.telnyx.com/v2/media by the same
36
+ user/organization. media_name and media_url/contents can't be submitted
37
+ together.
38
+ """
39
+
40
+ original_media_url: Optional[str] = None
41
+ """The original URL to the PDF used for the fax's media.
42
+
43
+ If media_name was supplied, this is omitted
44
+ """
45
+
46
+ page_count: Optional[int] = None
47
+ """Number of transferred pages"""
48
+
49
+ status: Optional[Literal["delivered"]] = None
50
+ """The status of the fax."""
51
+
52
+ to: Optional[str] = None
53
+ """The phone number, in E.164 format, the fax will be sent to or SIP URI"""
54
+
55
+ user_id: Optional[str] = None
56
+ """Identifier of the user to whom the fax belongs"""
57
+
58
+
59
+ class FaxDeliveredWebhookEvent(BaseModel):
60
+ id: Optional[str] = None
61
+ """Identifies the type of resource."""
62
+
63
+ event_type: Optional[Literal["fax.delivered"]] = None
64
+ """The type of event being delivered."""
65
+
66
+ payload: Optional[Payload] = None
67
+
68
+ record_type: Optional[Literal["event"]] = None
69
+ """Identifies the type of the resource."""
@@ -0,0 +1,66 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from typing_extensions import Literal
5
+
6
+ from pydantic import Field as FieldInfo
7
+
8
+ from .._models import BaseModel
9
+
10
+ __all__ = ["FaxFailedWebhookEvent", "Payload"]
11
+
12
+
13
+ class Payload(BaseModel):
14
+ client_state: Optional[str] = None
15
+ """State received from a command."""
16
+
17
+ connection_id: Optional[str] = None
18
+ """The ID of the connection used to send the fax."""
19
+
20
+ direction: Optional[Literal["inbound", "outbound"]] = None
21
+ """The direction of the fax."""
22
+
23
+ failure_reason: Optional[Literal["rejected"]] = None
24
+ """Cause of the sending failure"""
25
+
26
+ fax_id: Optional[str] = None
27
+ """Identifies the fax."""
28
+
29
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
30
+ """The phone number, in E.164 format, the fax will be sent from."""
31
+
32
+ media_name: Optional[str] = None
33
+ """The media_name used for the fax's media.
34
+
35
+ Must point to a file previously uploaded to api.telnyx.com/v2/media by the same
36
+ user/organization. media_name and media_url/contents can't be submitted
37
+ together.
38
+ """
39
+
40
+ original_media_url: Optional[str] = None
41
+ """The original URL to the PDF used for the fax's media.
42
+
43
+ If media_name was supplied, this is omitted
44
+ """
45
+
46
+ status: Optional[Literal["failed"]] = None
47
+ """The status of the fax."""
48
+
49
+ to: Optional[str] = None
50
+ """The phone number, in E.164 format, the fax will be sent to or SIP URI"""
51
+
52
+ user_id: Optional[str] = None
53
+ """Identifier of the user to whom the fax belongs"""
54
+
55
+
56
+ class FaxFailedWebhookEvent(BaseModel):
57
+ id: Optional[str] = None
58
+ """Identifies the type of resource."""
59
+
60
+ event_type: Optional[Literal["fax.failed"]] = None
61
+ """The type of event being delivered."""
62
+
63
+ payload: Optional[Payload] = None
64
+
65
+ record_type: Optional[Literal["event"]] = None
66
+ """Identifies the type of the resource."""