telnyx 3.2.0a0__py3-none-any.whl → 3.4.0a0__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 (226) hide show
  1. telnyx/_base_client.py +3 -3
  2. telnyx/_client.py +5 -0
  3. telnyx/_compat.py +48 -48
  4. telnyx/_models.py +40 -40
  5. telnyx/_types.py +35 -1
  6. telnyx/_utils/__init__.py +9 -2
  7. telnyx/_utils/_compat.py +45 -0
  8. telnyx/_utils/_datetime_parse.py +136 -0
  9. telnyx/_utils/_transform.py +11 -1
  10. telnyx/_utils/_typing.py +6 -1
  11. telnyx/_utils/_utils.py +0 -1
  12. telnyx/_version.py +1 -1
  13. telnyx/resources/__init__.py +3 -0
  14. telnyx/resources/actions/purchase.py +3 -4
  15. telnyx/resources/actions/register.py +5 -6
  16. telnyx/resources/ai/chat.py +4 -4
  17. telnyx/resources/ai/clusters.py +3 -5
  18. telnyx/resources/ai/conversations/messages.py +4 -4
  19. telnyx/resources/ai/embeddings/embeddings.py +3 -4
  20. telnyx/resources/call_control_applications.py +4 -4
  21. telnyx/resources/calls/calls.py +4 -4
  22. telnyx/resources/campaign_builder/campaign_builder.py +6 -6
  23. telnyx/resources/conferences/actions.py +19 -20
  24. telnyx/resources/credential_connections/credential_connections.py +6 -6
  25. telnyx/resources/customer_service_records.py +3 -5
  26. telnyx/resources/detail_records.py +3 -5
  27. telnyx/resources/external_connections/external_connections.py +6 -6
  28. telnyx/resources/external_connections/uploads.py +3 -3
  29. telnyx/resources/fax_applications.py +6 -6
  30. telnyx/resources/fqdn_connections.py +6 -6
  31. telnyx/resources/ip_connections.py +6 -6
  32. telnyx/resources/messages/messages.py +16 -16
  33. telnyx/resources/messaging/rcs/rcs.py +3 -5
  34. telnyx/resources/messaging_hosted_number_orders/messaging_hosted_number_orders.py +8 -8
  35. telnyx/resources/messaging_numbers_bulk_updates.py +3 -5
  36. telnyx/resources/messaging_profiles/autoresp_configs.py +5 -6
  37. telnyx/resources/messaging_profiles/messaging_profiles.py +6 -6
  38. telnyx/resources/numbers_features.py +3 -5
  39. telnyx/resources/outbound_voice_profiles.py +10 -10
  40. telnyx/resources/phone_numbers/actions.py +3 -5
  41. telnyx/resources/phone_numbers/jobs.py +10 -10
  42. telnyx/resources/phone_numbers/phone_numbers.py +3 -4
  43. telnyx/resources/portability_checks.py +3 -5
  44. telnyx/resources/porting_orders/porting_orders.py +4 -4
  45. telnyx/resources/porting_orders/verification_codes.py +4 -4
  46. telnyx/resources/recordings/actions.py +3 -5
  47. telnyx/resources/reports/mdr_usage_reports.py +4 -4
  48. telnyx/resources/reports/reports.py +3 -4
  49. telnyx/resources/rooms/sessions/actions.py +14 -14
  50. telnyx/resources/sim_cards/actions.py +5 -7
  51. telnyx/resources/sim_cards/sim_cards.py +5 -6
  52. telnyx/resources/texml_applications.py +5 -6
  53. telnyx/resources/usage_reports.py +7 -8
  54. telnyx/resources/webhooks.py +34 -0
  55. telnyx/resources/wireless_blocklists.py +5 -6
  56. telnyx/types/__init__.py +115 -4
  57. telnyx/types/actions/purchase_create_params.py +3 -2
  58. telnyx/types/actions/register_create_params.py +4 -3
  59. telnyx/types/ai/chat_create_completion_params.py +3 -2
  60. telnyx/types/ai/cluster_compute_params.py +3 -2
  61. telnyx/types/ai/conversations/message_create_params.py +3 -2
  62. telnyx/types/ai/embedding_list_params.py +3 -2
  63. telnyx/types/ai/inference_embedding_bucket_ids_param.py +3 -2
  64. telnyx/types/ai/inference_embedding_webhook_tool_params_param.py +6 -4
  65. telnyx/types/bundle_pricing/billing_bundle_list_params.py +4 -3
  66. telnyx/types/bundle_pricing/user_bundle_list_params.py +4 -3
  67. telnyx/types/bundle_pricing/user_bundle_list_unused_params.py +4 -3
  68. telnyx/types/call_ai_gather_ended_webhook_event.py +78 -0
  69. telnyx/types/call_ai_gather_message_history_updated_webhook_event.py +69 -0
  70. telnyx/types/call_ai_gather_partial_results_webhook_event.py +75 -0
  71. telnyx/types/call_answered_webhook_event.py +75 -0
  72. telnyx/types/call_bridged_webhook_event.py +58 -0
  73. telnyx/types/call_control_application_update_params.py +3 -2
  74. telnyx/types/call_conversation_ended_webhook_event.py +84 -0
  75. telnyx/types/call_conversation_insights_generated_webhook_event.py +67 -0
  76. telnyx/types/call_dial_params.py +4 -3
  77. telnyx/types/call_dtmf_received_webhook_event.py +61 -0
  78. telnyx/types/call_enqueued_webhook_event.py +59 -0
  79. telnyx/types/call_fork_started_webhook_event.py +53 -0
  80. telnyx/types/call_fork_stopped_webhook_event.py +53 -0
  81. telnyx/types/call_gather_ended_webhook_event.py +64 -0
  82. telnyx/types/call_hangup_webhook_event.py +150 -0
  83. telnyx/types/call_initiated_webhook_event.py +96 -0
  84. telnyx/types/call_left_queue_webhook_event.py +62 -0
  85. telnyx/types/call_machine_detection_ended_webhook_event.py +61 -0
  86. telnyx/types/call_machine_greeting_ended_webhook_event.py +61 -0
  87. telnyx/types/call_machine_premium_detection_ended_webhook_event.py +63 -0
  88. telnyx/types/call_machine_premium_greeting_ended_webhook_event.py +61 -0
  89. telnyx/types/call_playback_ended_webhook_event.py +70 -0
  90. telnyx/types/call_playback_started_webhook_event.py +62 -0
  91. telnyx/types/call_recording_error_webhook_event.py +60 -0
  92. telnyx/types/call_recording_saved_webhook_event.py +94 -0
  93. telnyx/types/call_recording_transcription_saved_webhook_event.py +71 -0
  94. telnyx/types/call_refer_completed_webhook_event.py +61 -0
  95. telnyx/types/call_refer_failed_webhook_event.py +61 -0
  96. telnyx/types/call_refer_started_webhook_event.py +61 -0
  97. telnyx/types/call_siprec_failed_webhook_event.py +53 -0
  98. telnyx/types/call_siprec_started_webhook_event.py +50 -0
  99. telnyx/types/call_siprec_stopped_webhook_event.py +53 -0
  100. telnyx/types/call_speak_ended_webhook_event.py +53 -0
  101. telnyx/types/call_speak_started_webhook_event.py +50 -0
  102. telnyx/types/call_streaming_failed_webhook_event.py +70 -0
  103. telnyx/types/call_streaming_started_webhook_event.py +53 -0
  104. telnyx/types/call_streaming_stopped_webhook_event.py +53 -0
  105. telnyx/types/calls/transcription_engine_a_config_param.py +4 -3
  106. telnyx/types/campaign_builder_create_params.py +4 -3
  107. telnyx/types/campaign_status_update_webhook_event.py +26 -0
  108. telnyx/types/conference_created_webhook_event.py +53 -0
  109. telnyx/types/conference_ended_webhook_event.py +56 -0
  110. telnyx/types/conference_floor_changed_webhook_event.py +45 -0
  111. telnyx/types/conference_participant_joined_webhook_event.py +53 -0
  112. telnyx/types/conference_participant_left_webhook_event.py +53 -0
  113. telnyx/types/conference_participant_playback_ended_webhook_event.py +65 -0
  114. telnyx/types/conference_participant_playback_started_webhook_event.py +65 -0
  115. telnyx/types/conference_participant_speak_ended_webhook_event.py +56 -0
  116. telnyx/types/conference_participant_speak_started_webhook_event.py +56 -0
  117. telnyx/types/conference_playback_ended_webhook_event.py +49 -0
  118. telnyx/types/conference_playback_started_webhook_event.py +49 -0
  119. telnyx/types/conference_recording_saved_webhook_event.py +103 -0
  120. telnyx/types/conference_speak_ended_webhook_event.py +40 -0
  121. telnyx/types/conference_speak_started_webhook_event.py +40 -0
  122. telnyx/types/conferences/action_hold_params.py +3 -2
  123. telnyx/types/conferences/action_join_params.py +3 -2
  124. telnyx/types/conferences/action_mute_params.py +3 -2
  125. telnyx/types/conferences/action_play_params.py +2 -2
  126. telnyx/types/conferences/action_speak_params.py +3 -2
  127. telnyx/types/conferences/action_stop_params.py +3 -2
  128. telnyx/types/conferences/action_unhold_params.py +3 -2
  129. telnyx/types/conferences/action_unmute_params.py +3 -2
  130. telnyx/types/conferences/action_update_params.py +3 -2
  131. telnyx/types/credential_connection_create_params.py +3 -2
  132. telnyx/types/credential_connection_update_params.py +3 -2
  133. telnyx/types/credential_inbound_param.py +3 -2
  134. telnyx/types/custom_sip_header.py +13 -0
  135. telnyx/types/customer_service_record_list_params.py +2 -1
  136. telnyx/types/customer_service_record_status_changed_webhook_event.py +55 -0
  137. telnyx/types/customer_service_record_verify_phone_number_coverage_params.py +3 -2
  138. telnyx/types/delivery_update_webhook_event.py +40 -0
  139. telnyx/types/detail_record_list_params.py +4 -2
  140. telnyx/types/document_list_params.py +2 -1
  141. telnyx/types/external_connection_create_params.py +4 -2
  142. telnyx/types/external_connection_update_params.py +4 -2
  143. telnyx/types/external_connections/civic_address_list_params.py +3 -2
  144. telnyx/types/external_connections/upload_create_params.py +3 -1
  145. telnyx/types/fax_application_create_params.py +3 -2
  146. telnyx/types/fax_application_update_params.py +3 -2
  147. telnyx/types/fax_delivered_webhook_event.py +69 -0
  148. telnyx/types/fax_failed_webhook_event.py +66 -0
  149. telnyx/types/fax_media_processed_webhook_event.py +63 -0
  150. telnyx/types/fax_queued_webhook_event.py +63 -0
  151. telnyx/types/fax_sending_started_webhook_event.py +63 -0
  152. telnyx/types/fqdn_connection_create_params.py +3 -2
  153. telnyx/types/fqdn_connection_update_params.py +3 -2
  154. telnyx/types/inbound_fqdn_param.py +4 -2
  155. telnyx/types/inbound_ip_param.py +3 -2
  156. telnyx/types/inbound_message_webhook_event.py +227 -0
  157. telnyx/types/ip_connection_create_params.py +4 -3
  158. telnyx/types/ip_connection_update_params.py +3 -2
  159. telnyx/types/media_list_params.py +3 -2
  160. telnyx/types/message_schedule_params.py +3 -2
  161. telnyx/types/message_send_group_mms_params.py +3 -3
  162. telnyx/types/message_send_long_code_params.py +2 -2
  163. telnyx/types/message_send_number_pool_params.py +3 -2
  164. telnyx/types/message_send_params.py +3 -2
  165. telnyx/types/message_send_short_code_params.py +2 -2
  166. telnyx/types/messaging/rc_list_bulk_capabilities_params.py +3 -2
  167. telnyx/types/messaging_hosted_number_order_check_eligibility_params.py +3 -2
  168. telnyx/types/messaging_hosted_number_order_create_params.py +3 -2
  169. telnyx/types/messaging_hosted_number_order_create_verification_codes_params.py +3 -2
  170. telnyx/types/messaging_numbers_bulk_update_create_params.py +3 -2
  171. telnyx/types/messaging_profile_create_params.py +3 -2
  172. telnyx/types/messaging_profile_update_params.py +3 -2
  173. telnyx/types/messaging_profiles/autoresp_config_create_params.py +3 -2
  174. telnyx/types/messaging_profiles/autoresp_config_update_params.py +3 -2
  175. telnyx/types/messsage_rcs_params.py +2 -2
  176. telnyx/types/number_order_status_update_webhook_event.py +12 -0
  177. telnyx/types/numbers_feature_create_params.py +3 -2
  178. telnyx/types/outbound_call_recording_param.py +3 -2
  179. telnyx/types/outbound_voice_profile_create_params.py +4 -3
  180. telnyx/types/outbound_voice_profile_update_params.py +4 -3
  181. telnyx/types/phone_number_list_params.py +3 -2
  182. telnyx/types/phone_number_slim_list_params.py +3 -2
  183. telnyx/types/phone_number_update_params.py +3 -2
  184. telnyx/types/phone_numbers/action_verify_ownership_params.py +3 -2
  185. telnyx/types/phone_numbers/job_delete_batch_params.py +3 -2
  186. telnyx/types/phone_numbers/job_update_batch_params.py +3 -3
  187. telnyx/types/phone_numbers/job_update_emergency_settings_batch_params.py +4 -2
  188. telnyx/types/portability_check_run_params.py +3 -2
  189. telnyx/types/porting/export_porting_orders_csv_report_param.py +2 -1
  190. telnyx/types/porting_order_create_params.py +3 -2
  191. telnyx/types/porting_order_phone_number_configuration_param.py +3 -2
  192. telnyx/types/porting_orders/action_requirement_list_params.py +3 -2
  193. telnyx/types/porting_orders/phone_number_block_list_params.py +5 -3
  194. telnyx/types/porting_orders/phone_number_configuration_list_params.py +3 -2
  195. telnyx/types/porting_orders/verification_code_send_params.py +3 -2
  196. telnyx/types/portout_list_params.py +2 -1
  197. telnyx/types/portouts/export_portouts_csv_report_param.py +3 -2
  198. telnyx/types/recordings/action_delete_params.py +3 -2
  199. telnyx/types/replaced_link_click_webhook_event.py +32 -0
  200. telnyx/types/report_list_wdrs_params.py +3 -2
  201. telnyx/types/reports/mdr_usage_report_fetch_sync_params.py +3 -2
  202. telnyx/types/rooms/sessions/action_kick_params.py +5 -3
  203. telnyx/types/rooms/sessions/action_mute_params.py +5 -3
  204. telnyx/types/rooms/sessions/action_unmute_params.py +5 -3
  205. telnyx/types/sim_card_list_params.py +2 -1
  206. telnyx/types/sim_card_update_params.py +3 -3
  207. telnyx/types/sim_cards/action_bulk_set_public_ips_params.py +3 -2
  208. telnyx/types/sim_cards/action_validate_registration_codes_params.py +3 -2
  209. telnyx/types/sip_header.py +15 -0
  210. telnyx/types/streaming_failed_webhook_event.py +70 -0
  211. telnyx/types/streaming_started_webhook_event.py +53 -0
  212. telnyx/types/streaming_stopped_webhook_event.py +53 -0
  213. telnyx/types/texml_application_create_params.py +2 -2
  214. telnyx/types/texml_application_update_params.py +2 -2
  215. telnyx/types/transcription_webhook_event.py +72 -0
  216. telnyx/types/unwrap_webhook_event.py +138 -0
  217. telnyx/types/usage_report_list_params.py +5 -4
  218. telnyx/types/verify_profile_create_params.py +6 -4
  219. telnyx/types/verify_profile_update_params.py +6 -4
  220. telnyx/types/video_region_param.py +4 -2
  221. telnyx/types/wireless_blocklist_create_params.py +3 -2
  222. telnyx/types/wireless_blocklist_update_params.py +3 -2
  223. {telnyx-3.2.0a0.dist-info → telnyx-3.4.0a0.dist-info}/METADATA +1 -1
  224. {telnyx-3.2.0a0.dist-info → telnyx-3.4.0a0.dist-info}/RECORD +226 -156
  225. {telnyx-3.2.0a0.dist-info → telnyx-3.4.0a0.dist-info}/WHEEL +0 -0
  226. {telnyx-3.2.0a0.dist-info → telnyx-3.4.0a0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,63 @@
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__ = ["FaxMediaProcessedWebhookEvent", "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
+ fax_id: Optional[str] = None
24
+ """Identifies the fax."""
25
+
26
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
27
+ """The phone number, in E.164 format, the fax will be sent from."""
28
+
29
+ media_name: Optional[str] = None
30
+ """The media_name used for the fax's media.
31
+
32
+ Must point to a file previously uploaded to api.telnyx.com/v2/media by the same
33
+ user/organization. media_name and media_url/contents can't be submitted
34
+ together.
35
+ """
36
+
37
+ original_media_url: Optional[str] = None
38
+ """The original URL to the PDF used for the fax's media.
39
+
40
+ If media_name was supplied, this is omitted
41
+ """
42
+
43
+ status: Optional[Literal["media.processed"]] = None
44
+ """The status of the fax."""
45
+
46
+ to: Optional[str] = None
47
+ """The phone number, in E.164 format, the fax will be sent to or SIP URI"""
48
+
49
+ user_id: Optional[str] = None
50
+ """Identifier of the user to whom the fax belongs"""
51
+
52
+
53
+ class FaxMediaProcessedWebhookEvent(BaseModel):
54
+ id: Optional[str] = None
55
+ """Identifies the type of resource."""
56
+
57
+ event_type: Optional[Literal["fax.media.processed"]] = None
58
+ """The type of event being delivered."""
59
+
60
+ payload: Optional[Payload] = None
61
+
62
+ record_type: Optional[Literal["event"]] = None
63
+ """Identifies the type of the resource."""
@@ -0,0 +1,63 @@
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__ = ["FaxQueuedWebhookEvent", "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
+ fax_id: Optional[str] = None
24
+ """Identifies the fax."""
25
+
26
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
27
+ """The phone number, in E.164 format, the fax will be sent from."""
28
+
29
+ media_name: Optional[str] = None
30
+ """The media_name used for the fax's media.
31
+
32
+ Must point to a file previously uploaded to api.telnyx.com/v2/media by the same
33
+ user/organization. media_name and media_url/contents can't be submitted
34
+ together.
35
+ """
36
+
37
+ original_media_url: Optional[str] = None
38
+ """The original URL to the PDF used for the fax's media.
39
+
40
+ If media_name was supplied, this is omitted
41
+ """
42
+
43
+ status: Optional[Literal["queued"]] = None
44
+ """The status of the fax."""
45
+
46
+ to: Optional[str] = None
47
+ """The phone number, in E.164 format, the fax will be sent to or SIP URI"""
48
+
49
+ user_id: Optional[str] = None
50
+ """Identifier of the user to whom the fax belongs"""
51
+
52
+
53
+ class FaxQueuedWebhookEvent(BaseModel):
54
+ id: Optional[str] = None
55
+ """Identifies the type of resource."""
56
+
57
+ event_type: Optional[Literal["fax.queued"]] = None
58
+ """The type of event being delivered."""
59
+
60
+ payload: Optional[Payload] = None
61
+
62
+ record_type: Optional[Literal["event"]] = None
63
+ """Identifies the type of the resource."""
@@ -0,0 +1,63 @@
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__ = ["FaxSendingStartedWebhookEvent", "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
+ fax_id: Optional[str] = None
24
+ """Identifies the fax."""
25
+
26
+ from_: Optional[str] = FieldInfo(alias="from", default=None)
27
+ """The phone number, in E.164 format, the fax will be sent from."""
28
+
29
+ media_name: Optional[str] = None
30
+ """The media_name used for the fax's media.
31
+
32
+ Must point to a file previously uploaded to api.telnyx.com/v2/media by the same
33
+ user/organization. media_name and media_url/contents can't be submitted
34
+ together.
35
+ """
36
+
37
+ original_media_url: Optional[str] = None
38
+ """The original URL to the PDF used for the fax's media.
39
+
40
+ If media_name was supplied, this is omitted
41
+ """
42
+
43
+ status: Optional[Literal["sending"]] = None
44
+ """The status of the fax."""
45
+
46
+ to: Optional[str] = None
47
+ """The phone number, in E.164 format, the fax will be sent to or SIP URI"""
48
+
49
+ user_id: Optional[str] = None
50
+ """Identifier of the user to whom the fax belongs"""
51
+
52
+
53
+ class FaxSendingStartedWebhookEvent(BaseModel):
54
+ id: Optional[str] = None
55
+ """Identifies the type of resource."""
56
+
57
+ event_type: Optional[Literal["fax.sending.started"]] = None
58
+ """The type of event being delivered."""
59
+
60
+ payload: Optional[Payload] = None
61
+
62
+ record_type: Optional[Literal["event"]] = None
63
+ """Identifies the type of the resource."""
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Optional
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
+ from .._types import SequenceNotStr
8
9
  from .dtmf_type import DtmfType
9
10
  from .encrypted_media import EncryptedMedia
10
11
  from .inbound_fqdn_param import InboundFqdnParam
@@ -82,7 +83,7 @@ class FqdnConnectionCreateParams(TypedDict, total=False):
82
83
 
83
84
  rtcp_settings: ConnectionRtcpSettingsParam
84
85
 
85
- tags: List[str]
86
+ tags: SequenceNotStr[str]
86
87
  """Tags associated with the connection."""
87
88
 
88
89
  transport_protocol: TransportProtocol
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Optional
6
6
  from typing_extensions import TypedDict
7
7
 
8
+ from .._types import SequenceNotStr
8
9
  from .dtmf_type import DtmfType
9
10
  from .encrypted_media import EncryptedMedia
10
11
  from .inbound_fqdn_param import InboundFqdnParam
@@ -76,7 +77,7 @@ class FqdnConnectionUpdateParams(TypedDict, total=False):
76
77
 
77
78
  rtcp_settings: ConnectionRtcpSettingsParam
78
79
 
79
- tags: List[str]
80
+ tags: SequenceNotStr[str]
80
81
  """Tags associated with the connection."""
81
82
 
82
83
  transport_protocol: TransportProtocol
@@ -2,9 +2,11 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Optional
6
6
  from typing_extensions import Literal, TypedDict
7
7
 
8
+ from .._types import SequenceNotStr
9
+
8
10
  __all__ = ["InboundFqdnParam"]
9
11
 
10
12
 
@@ -21,7 +23,7 @@ class InboundFqdnParam(TypedDict, total=False):
21
23
  associated with this connection.
22
24
  """
23
25
 
24
- codecs: List[str]
26
+ codecs: SequenceNotStr[str]
25
27
  """
26
28
  Defines the list of codecs that Telnyx will send for inbound calls to a specific
27
29
  number on your portal account, in priority order. This only works when the
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
6
5
  from typing_extensions import Literal, TypedDict
7
6
 
7
+ from .._types import SequenceNotStr
8
+
8
9
  __all__ = ["InboundIPParam"]
9
10
 
10
11
 
@@ -21,7 +22,7 @@ class InboundIPParam(TypedDict, total=False):
21
22
  associated with this connection.
22
23
  """
23
24
 
24
- codecs: List[str]
25
+ codecs: SequenceNotStr[str]
25
26
  """
26
27
  Defines the list of codecs that Telnyx will send for inbound calls to a specific
27
28
  number on your portal account, in priority order. This only works when the
@@ -0,0 +1,227 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+ from .messaging_error import MessagingError
11
+
12
+ __all__ = [
13
+ "InboundMessageWebhookEvent",
14
+ "Data",
15
+ "DataPayload",
16
+ "DataPayloadCc",
17
+ "DataPayloadCost",
18
+ "DataPayloadCostBreakdown",
19
+ "DataPayloadCostBreakdownCarrierFee",
20
+ "DataPayloadCostBreakdownRate",
21
+ "DataPayloadFrom",
22
+ "DataPayloadMedia",
23
+ "DataPayloadTo",
24
+ ]
25
+
26
+
27
+ class DataPayloadCc(BaseModel):
28
+ carrier: Optional[str] = None
29
+ """The carrier of the receiver."""
30
+
31
+ line_type: Optional[Literal["Wireline", "Wireless", "VoWiFi", "VoIP", "Pre-Paid Wireless", ""]] = None
32
+ """The line-type of the receiver."""
33
+
34
+ phone_number: Optional[str] = None
35
+ """Receiving address (+E.164 formatted phone number or short code)."""
36
+
37
+ status: Optional[
38
+ Literal["queued", "sending", "sent", "delivered", "sending_failed", "delivery_failed", "delivery_unconfirmed"]
39
+ ] = None
40
+
41
+
42
+ class DataPayloadCost(BaseModel):
43
+ amount: Optional[str] = None
44
+ """The amount deducted from your account."""
45
+
46
+ currency: Optional[str] = None
47
+ """The ISO 4217 currency identifier."""
48
+
49
+
50
+ class DataPayloadCostBreakdownCarrierFee(BaseModel):
51
+ amount: Optional[str] = None
52
+ """The carrier fee amount."""
53
+
54
+ currency: Optional[str] = None
55
+ """The ISO 4217 currency identifier."""
56
+
57
+
58
+ class DataPayloadCostBreakdownRate(BaseModel):
59
+ amount: Optional[str] = None
60
+ """The rate amount applied."""
61
+
62
+ currency: Optional[str] = None
63
+ """The ISO 4217 currency identifier."""
64
+
65
+
66
+ class DataPayloadCostBreakdown(BaseModel):
67
+ carrier_fee: Optional[DataPayloadCostBreakdownCarrierFee] = None
68
+
69
+ rate: Optional[DataPayloadCostBreakdownRate] = None
70
+
71
+
72
+ class DataPayloadFrom(BaseModel):
73
+ carrier: Optional[str] = None
74
+ """The carrier of the sender."""
75
+
76
+ line_type: Optional[Literal["Wireline", "Wireless", "VoWiFi", "VoIP", "Pre-Paid Wireless", ""]] = None
77
+ """The line-type of the sender."""
78
+
79
+ phone_number: Optional[str] = None
80
+ """
81
+ Sending address (+E.164 formatted phone number, alphanumeric sender ID, or short
82
+ code).
83
+ """
84
+
85
+ status: Optional[Literal["received", "delivered"]] = None
86
+
87
+
88
+ class DataPayloadMedia(BaseModel):
89
+ content_type: Optional[str] = None
90
+ """The MIME type of the requested media."""
91
+
92
+ hash_sha256: Optional[str] = None
93
+ """The SHA256 hash of the requested media."""
94
+
95
+ size: Optional[int] = None
96
+ """The size of the requested media."""
97
+
98
+ url: Optional[str] = None
99
+ """The url of the media requested to be sent."""
100
+
101
+
102
+ class DataPayloadTo(BaseModel):
103
+ carrier: Optional[str] = None
104
+ """The carrier of the receiver."""
105
+
106
+ line_type: Optional[Literal["Wireline", "Wireless", "VoWiFi", "VoIP", "Pre-Paid Wireless", ""]] = None
107
+ """The line-type of the receiver."""
108
+
109
+ phone_number: Optional[str] = None
110
+ """Receiving address (+E.164 formatted phone number or short code)."""
111
+
112
+ status: Optional[
113
+ Literal[
114
+ "queued",
115
+ "sending",
116
+ "sent",
117
+ "delivered",
118
+ "sending_failed",
119
+ "delivery_failed",
120
+ "delivery_unconfirmed",
121
+ "webhook_delivered",
122
+ ]
123
+ ] = None
124
+
125
+
126
+ class DataPayload(BaseModel):
127
+ id: Optional[str] = None
128
+ """Identifies the type of resource."""
129
+
130
+ cc: Optional[List[DataPayloadCc]] = None
131
+
132
+ completed_at: Optional[datetime] = None
133
+ """Not used for inbound messages."""
134
+
135
+ cost: Optional[DataPayloadCost] = None
136
+
137
+ cost_breakdown: Optional[DataPayloadCostBreakdown] = None
138
+ """Detailed breakdown of the message cost components."""
139
+
140
+ direction: Optional[Literal["inbound"]] = None
141
+ """The direction of the message.
142
+
143
+ Inbound messages are sent to you whereas outbound messages are sent from you.
144
+ """
145
+
146
+ encoding: Optional[str] = None
147
+ """Encoding scheme used for the message body."""
148
+
149
+ errors: Optional[List[MessagingError]] = None
150
+ """
151
+ These errors may point at addressees when referring to unsuccessful/unconfirmed
152
+ delivery statuses.
153
+ """
154
+
155
+ from_: Optional[DataPayloadFrom] = FieldInfo(alias="from", default=None)
156
+
157
+ media: Optional[List[DataPayloadMedia]] = None
158
+
159
+ messaging_profile_id: Optional[str] = None
160
+ """Unique identifier for a messaging profile."""
161
+
162
+ parts: Optional[int] = None
163
+ """Number of parts into which the message's body must be split."""
164
+
165
+ received_at: Optional[datetime] = None
166
+ """ISO 8601 formatted date indicating when the message request was received."""
167
+
168
+ record_type: Optional[Literal["message"]] = None
169
+ """Identifies the type of the resource."""
170
+
171
+ sent_at: Optional[datetime] = None
172
+ """Not used for inbound messages."""
173
+
174
+ tags: Optional[List[str]] = None
175
+ """Tags associated with the resource."""
176
+
177
+ tcr_campaign_billable: Optional[bool] = None
178
+ """Indicates whether the TCR campaign is billable."""
179
+
180
+ tcr_campaign_id: Optional[str] = None
181
+ """The Campaign Registry (TCR) campaign ID associated with the message."""
182
+
183
+ tcr_campaign_registered: Optional[str] = None
184
+ """The registration status of the TCR campaign."""
185
+
186
+ text: Optional[str] = None
187
+ """Message body (i.e., content) as a non-empty string.
188
+
189
+ **Required for SMS**
190
+ """
191
+
192
+ to: Optional[List[DataPayloadTo]] = None
193
+
194
+ type: Optional[Literal["SMS", "MMS"]] = None
195
+ """The type of message. This value can be either 'sms' or 'mms'."""
196
+
197
+ valid_until: Optional[datetime] = None
198
+ """Not used for inbound messages."""
199
+
200
+ webhook_failover_url: Optional[str] = None
201
+ """
202
+ The failover URL where webhooks related to this message will be sent if sending
203
+ to the primary URL fails.
204
+ """
205
+
206
+ webhook_url: Optional[str] = None
207
+ """The URL where webhooks related to this message will be sent."""
208
+
209
+
210
+ class Data(BaseModel):
211
+ id: Optional[str] = None
212
+ """Identifies the type of resource."""
213
+
214
+ event_type: Optional[Literal["message.received"]] = None
215
+ """The type of event being delivered."""
216
+
217
+ occurred_at: Optional[datetime] = None
218
+ """ISO 8601 formatted date indicating when the resource was created."""
219
+
220
+ payload: Optional[DataPayload] = None
221
+
222
+ record_type: Optional[Literal["event"]] = None
223
+ """Identifies the type of the resource."""
224
+
225
+
226
+ class InboundMessageWebhookEvent(BaseModel):
227
+ data: Optional[Data] = None
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Optional
6
6
  from typing_extensions import Literal, TypedDict
7
7
 
8
+ from .._types import SequenceNotStr
8
9
  from .dtmf_type import DtmfType
9
10
  from .encrypted_media import EncryptedMedia
10
11
  from .outbound_ip_param import OutboundIPParam
@@ -72,7 +73,7 @@ class IPConnectionCreateParams(TypedDict, total=False):
72
73
 
73
74
  rtcp_settings: ConnectionRtcpSettingsParam
74
75
 
75
- tags: List[str]
76
+ tags: SequenceNotStr[str]
76
77
  """Tags associated with the connection."""
77
78
 
78
79
  transport_protocol: Literal["UDP", "TCP", "TLS"]
@@ -113,7 +114,7 @@ class Inbound(TypedDict, total=False):
113
114
  associated with this connection.
114
115
  """
115
116
 
116
- codecs: List[str]
117
+ codecs: SequenceNotStr[str]
117
118
  """
118
119
  Defines the list of codecs that Telnyx will send for inbound calls to a specific
119
120
  number on your portal account, in priority order. This only works when the
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Optional
6
6
  from typing_extensions import Literal, TypedDict
7
7
 
8
+ from .._types import SequenceNotStr
8
9
  from .dtmf_type import DtmfType
9
10
  from .encrypted_media import EncryptedMedia
10
11
  from .inbound_ip_param import InboundIPParam
@@ -73,7 +74,7 @@ class IPConnectionUpdateParams(TypedDict, total=False):
73
74
 
74
75
  rtcp_settings: ConnectionRtcpSettingsParam
75
76
 
76
- tags: List[str]
77
+ tags: SequenceNotStr[str]
77
78
  """Tags associated with the connection."""
78
79
 
79
80
  transport_protocol: Literal["UDP", "TCP", "TLS"]
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
6
5
  from typing_extensions import TypedDict
7
6
 
7
+ from .._types import SequenceNotStr
8
+
8
9
  __all__ = ["MediaListParams", "Filter"]
9
10
 
10
11
 
@@ -17,5 +18,5 @@ class MediaListParams(TypedDict, total=False):
17
18
 
18
19
 
19
20
  class Filter(TypedDict, total=False):
20
- content_type: List[str]
21
+ content_type: SequenceNotStr[str]
21
22
  """Filters files by given content types"""
@@ -2,10 +2,11 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Union
5
+ from typing import Union
6
6
  from datetime import datetime
7
7
  from typing_extensions import Literal, Required, Annotated, TypedDict
8
8
 
9
+ from .._types import SequenceNotStr
9
10
  from .._utils import PropertyInfo
10
11
 
11
12
  __all__ = ["MessageScheduleParams"]
@@ -30,7 +31,7 @@ class MessageScheduleParams(TypedDict, total=False):
30
31
  ID.**
31
32
  """
32
33
 
33
- media_urls: List[str]
34
+ media_urls: SequenceNotStr[str]
34
35
  """A list of media URLs. The total media size must be less than 1 MB.
35
36
 
36
37
  **Required for MMS**
@@ -2,9 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
6
5
  from typing_extensions import Required, Annotated, TypedDict
7
6
 
7
+ from .._types import SequenceNotStr
8
8
  from .._utils import PropertyInfo
9
9
 
10
10
  __all__ = ["MessageSendGroupMmsParams"]
@@ -14,10 +14,10 @@ class MessageSendGroupMmsParams(TypedDict, total=False):
14
14
  from_: Required[Annotated[str, PropertyInfo(alias="from")]]
15
15
  """Phone number, in +E.164 format, used to send the message."""
16
16
 
17
- to: Required[List[str]]
17
+ to: Required[SequenceNotStr[str]]
18
18
  """A list of destinations. No more than 8 destinations are allowed."""
19
19
 
20
- media_urls: List[str]
20
+ media_urls: SequenceNotStr[str]
21
21
  """A list of media URLs. The total media size must be less than 1 MB."""
22
22
 
23
23
  subject: str
@@ -2,9 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
6
5
  from typing_extensions import Literal, Required, Annotated, TypedDict
7
6
 
7
+ from .._types import SequenceNotStr
8
8
  from .._utils import PropertyInfo
9
9
 
10
10
  __all__ = ["MessageSendLongCodeParams"]
@@ -23,7 +23,7 @@ class MessageSendLongCodeParams(TypedDict, total=False):
23
23
  recommended limit of message parts.
24
24
  """
25
25
 
26
- media_urls: List[str]
26
+ media_urls: SequenceNotStr[str]
27
27
  """A list of media URLs. The total media size must be less than 1 MB.
28
28
 
29
29
  **Required for MMS**
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
6
5
  from typing_extensions import Literal, Required, TypedDict
7
6
 
7
+ from .._types import SequenceNotStr
8
+
8
9
  __all__ = ["MessageSendNumberPoolParams"]
9
10
 
10
11
 
@@ -21,7 +22,7 @@ class MessageSendNumberPoolParams(TypedDict, total=False):
21
22
  recommended limit of message parts.
22
23
  """
23
24
 
24
- media_urls: List[str]
25
+ media_urls: SequenceNotStr[str]
25
26
  """A list of media URLs. The total media size must be less than 1 MB.
26
27
 
27
28
  **Required for MMS**
@@ -2,10 +2,11 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Union
5
+ from typing import Union
6
6
  from datetime import datetime
7
7
  from typing_extensions import Literal, Required, Annotated, TypedDict
8
8
 
9
+ from .._types import SequenceNotStr
9
10
  from .._utils import PropertyInfo
10
11
 
11
12
  __all__ = ["MessageSendParams"]
@@ -30,7 +31,7 @@ class MessageSendParams(TypedDict, total=False):
30
31
  ID.**
31
32
  """
32
33
 
33
- media_urls: List[str]
34
+ media_urls: SequenceNotStr[str]
34
35
  """A list of media URLs. The total media size must be less than 1 MB.
35
36
 
36
37
  **Required for MMS**