telnyx 3.5.0a0__py3-none-any.whl → 3.6.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 (224) hide show
  1. telnyx/_client.py +56 -756
  2. telnyx/_version.py +1 -1
  3. telnyx/resources/__init__.py +70 -0
  4. telnyx/resources/advanced_orders.py +63 -63
  5. telnyx/resources/ai/assistants/assistants.py +15 -17
  6. telnyx/resources/ai/assistants/versions.py +13 -15
  7. telnyx/resources/ai/conversations/conversations.py +137 -3
  8. telnyx/resources/ai/conversations/messages.py +1 -134
  9. telnyx/resources/brand/brand.py +8 -4
  10. telnyx/resources/calls/actions.py +154 -150
  11. telnyx/resources/calls/calls.py +18 -10
  12. telnyx/resources/conferences/actions.py +8 -24
  13. telnyx/resources/conferences/conferences.py +2 -6
  14. telnyx/resources/documents.py +242 -37
  15. telnyx/resources/legacy/__init__.py +33 -0
  16. telnyx/resources/legacy/legacy.py +102 -0
  17. telnyx/resources/legacy/reporting/__init__.py +47 -0
  18. telnyx/resources/legacy/reporting/batch_detail_records/__init__.py +61 -0
  19. telnyx/resources/legacy/reporting/batch_detail_records/batch_detail_records.py +166 -0
  20. telnyx/resources/legacy/reporting/batch_detail_records/messaging.py +482 -0
  21. telnyx/resources/legacy/reporting/batch_detail_records/speech_to_text.py +399 -0
  22. telnyx/resources/legacy/reporting/batch_detail_records/voice.py +539 -0
  23. telnyx/resources/legacy/reporting/reporting.py +134 -0
  24. telnyx/resources/legacy/reporting/usage_reports/__init__.py +61 -0
  25. telnyx/resources/legacy/reporting/usage_reports/messaging.py +471 -0
  26. telnyx/resources/legacy/reporting/usage_reports/number_lookup.py +464 -0
  27. telnyx/resources/legacy/reporting/usage_reports/usage_reports.py +288 -0
  28. telnyx/resources/legacy/reporting/usage_reports/voice.py +493 -0
  29. telnyx/resources/messaging_profiles/messaging_profiles.py +16 -0
  30. telnyx/resources/messaging_tollfree/verification/requests.py +203 -1
  31. telnyx/resources/oauth.py +855 -0
  32. telnyx/resources/oauth_clients.py +711 -0
  33. telnyx/resources/oauth_grants.py +349 -0
  34. telnyx/resources/outbound_voice_profiles.py +24 -4
  35. telnyx/resources/phone_numbers/jobs.py +12 -0
  36. telnyx/resources/porting_orders/porting_orders.py +20 -8
  37. telnyx/resources/sim_cards/actions.py +12 -12
  38. telnyx/resources/sim_cards/sim_cards.py +3 -2
  39. telnyx/resources/texml/accounts/calls/calls.py +11 -0
  40. telnyx/resources/texml/accounts/conferences/participants.py +11 -0
  41. telnyx/resources/verifications/verifications.py +10 -0
  42. telnyx/resources/verified_numbers/verified_numbers.py +25 -4
  43. telnyx/resources/verify_profiles.py +182 -1
  44. telnyx/resources/well_known.py +198 -0
  45. telnyx/types/__init__.py +51 -9
  46. telnyx/types/access_ip_address_list_response.py +3 -12
  47. telnyx/types/access_ip_range_list_response.py +3 -12
  48. telnyx/types/addresses/action_validate_response.py +8 -3
  49. telnyx/types/{advanced_order_update_params.py → advanced_order_update_requirement_group_params.py} +2 -2
  50. telnyx/types/ai/__init__.py +2 -3
  51. telnyx/types/ai/assistant_import_params.py +1 -1
  52. telnyx/types/ai/assistants/__init__.py +0 -3
  53. telnyx/types/ai/assistants_list.py +4 -88
  54. telnyx/types/ai/{conversations/message_create_params.py → conversation_add_message_params.py} +4 -4
  55. telnyx/types/ai/conversations/__init__.py +0 -1
  56. telnyx/types/ai/import_metadata.py +1 -1
  57. telnyx/types/ai/{assistant_clone_response.py → inference_embedding.py} +2 -2
  58. telnyx/types/ai/inference_embedding_transfer_tool_params.py +6 -0
  59. telnyx/types/ai/inference_embedding_transfer_tool_params_param.py +6 -0
  60. telnyx/types/ai/inference_embedding_webhook_tool_params.py +2 -0
  61. telnyx/types/ai/inference_embedding_webhook_tool_params_param.py +2 -0
  62. telnyx/types/ai/voice_settings.py +49 -2
  63. telnyx/types/ai/voice_settings_param.py +49 -2
  64. telnyx/types/brand_create_params.py +2 -1
  65. telnyx/types/brand_update_params.py +2 -1
  66. telnyx/types/call_dial_params.py +11 -3
  67. telnyx/types/calls/__init__.py +1 -0
  68. telnyx/types/calls/action_answer_params.py +1 -2
  69. telnyx/types/calls/action_gather_using_ai_params.py +5 -8
  70. telnyx/types/calls/action_start_streaming_params.py +5 -2
  71. telnyx/types/calls/action_start_transcription_params.py +160 -6
  72. telnyx/types/calls/action_transfer_params.py +50 -0
  73. telnyx/types/calls/telnyx_transcription_language.py +108 -0
  74. telnyx/types/calls/transcription_engine_b_config_param.py +3 -102
  75. telnyx/types/calls/transcription_start_request_param.py +161 -6
  76. telnyx/types/campaign_submit_appeal_response.py +0 -3
  77. telnyx/types/country_coverage_retrieve_country_response.py +7 -0
  78. telnyx/types/country_coverage_retrieve_response.py +7 -0
  79. telnyx/types/document_upload_json_params.py +39 -0
  80. telnyx/types/document_upload_json_response.py +12 -0
  81. telnyx/types/legacy/__init__.py +3 -0
  82. telnyx/types/legacy/reporting/__init__.py +12 -0
  83. telnyx/types/legacy/reporting/batch_detail_records/__init__.py +24 -0
  84. telnyx/types/legacy/reporting/batch_detail_records/batch_csv_pagination_meta.py +17 -0
  85. telnyx/types/legacy/reporting/batch_detail_records/cdr_detailed_req_response.py +63 -0
  86. telnyx/types/legacy/reporting/batch_detail_records/mdr_detail_report_response.py +42 -0
  87. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_params.py +55 -0
  88. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_response.py +12 -0
  89. telnyx/types/legacy/reporting/batch_detail_records/messaging_delete_response.py +12 -0
  90. telnyx/types/legacy/reporting/batch_detail_records/messaging_list_response.py +15 -0
  91. telnyx/types/legacy/reporting/batch_detail_records/messaging_retrieve_response.py +12 -0
  92. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_params.py +19 -0
  93. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_response.py +12 -0
  94. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_delete_response.py +12 -0
  95. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_list_response.py +12 -0
  96. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_retrieve_response.py +12 -0
  97. telnyx/types/legacy/reporting/batch_detail_records/stt_detail_report_response.py +27 -0
  98. telnyx/types/legacy/reporting/batch_detail_records/voice_create_params.py +57 -0
  99. telnyx/types/legacy/reporting/batch_detail_records/voice_create_response.py +13 -0
  100. telnyx/types/legacy/reporting/batch_detail_records/voice_delete_response.py +13 -0
  101. telnyx/types/legacy/reporting/batch_detail_records/voice_list_response.py +15 -0
  102. telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_fields_response.py +23 -0
  103. telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_response.py +13 -0
  104. telnyx/types/legacy/reporting/filter.py +31 -0
  105. telnyx/types/legacy/reporting/filter_param.py +30 -0
  106. telnyx/types/legacy/reporting/usage_report_retrieve_speech_to_text_params.py +17 -0
  107. telnyx/types/legacy/reporting/usage_report_retrieve_speech_to_text_response.py +11 -0
  108. telnyx/types/legacy/reporting/usage_reports/__init__.py +21 -0
  109. telnyx/types/legacy/reporting/usage_reports/cdr_usage_report_response_legacy.py +43 -0
  110. telnyx/types/legacy/reporting/usage_reports/mdr_usage_report_response_legacy.py +38 -0
  111. telnyx/types/legacy/reporting/usage_reports/messaging_create_params.py +29 -0
  112. telnyx/types/legacy/reporting/usage_reports/messaging_create_response.py +13 -0
  113. telnyx/types/legacy/reporting/usage_reports/messaging_delete_response.py +13 -0
  114. telnyx/types/legacy/reporting/usage_reports/messaging_list_params.py +15 -0
  115. telnyx/types/legacy/reporting/usage_reports/messaging_list_response.py +15 -0
  116. telnyx/types/legacy/reporting/usage_reports/messaging_retrieve_response.py +13 -0
  117. telnyx/types/legacy/reporting/usage_reports/number_lookup_create_params.py +26 -0
  118. telnyx/types/legacy/reporting/usage_reports/number_lookup_list_params.py +13 -0
  119. telnyx/types/legacy/reporting/usage_reports/standard_pagination_meta.py +17 -0
  120. telnyx/types/legacy/reporting/usage_reports/voice_create_params.py +40 -0
  121. telnyx/types/legacy/reporting/usage_reports/voice_create_response.py +13 -0
  122. telnyx/types/legacy/reporting/usage_reports/voice_delete_response.py +13 -0
  123. telnyx/types/legacy/reporting/usage_reports/voice_list_params.py +15 -0
  124. telnyx/types/legacy/reporting/usage_reports/voice_list_response.py +15 -0
  125. telnyx/types/legacy/reporting/usage_reports/voice_retrieve_response.py +13 -0
  126. telnyx/types/message_template.py +12 -0
  127. telnyx/types/messaging_profile.py +3 -0
  128. telnyx/types/messaging_profile_create_params.py +3 -0
  129. telnyx/types/messaging_profile_update_params.py +3 -0
  130. telnyx/types/messaging_tollfree/verification/__init__.py +1 -0
  131. telnyx/types/messaging_tollfree/verification/request_create_params.py +51 -1
  132. telnyx/types/messaging_tollfree/verification/request_update_params.py +51 -1
  133. telnyx/types/messaging_tollfree/verification/toll_free_verification_entity_type.py +9 -0
  134. telnyx/types/messaging_tollfree/verification/verification_request_egress.py +24 -0
  135. telnyx/types/messaging_tollfree/verification/verification_request_status.py +24 -0
  136. telnyx/types/number_order_status_update_webhook_event.py +30 -4
  137. telnyx/types/oauth_client.py +59 -0
  138. telnyx/types/oauth_client_create_params.py +39 -0
  139. telnyx/types/oauth_client_create_response.py +12 -0
  140. telnyx/types/oauth_client_list_params.py +38 -0
  141. telnyx/types/oauth_client_list_response.py +15 -0
  142. telnyx/types/oauth_client_retrieve_response.py +12 -0
  143. telnyx/types/oauth_client_update_params.py +36 -0
  144. telnyx/types/oauth_client_update_response.py +12 -0
  145. telnyx/types/oauth_grant.py +29 -0
  146. telnyx/types/oauth_grant_delete_response.py +12 -0
  147. telnyx/types/oauth_grant_list_params.py +17 -0
  148. telnyx/types/oauth_grant_list_response.py +15 -0
  149. telnyx/types/oauth_grant_retrieve_response.py +12 -0
  150. telnyx/types/oauth_grants_params.py +15 -0
  151. telnyx/types/oauth_grants_response.py +10 -0
  152. telnyx/types/oauth_introspect_params.py +12 -0
  153. telnyx/types/oauth_introspect_response.py +30 -0
  154. telnyx/types/oauth_register_params.py +39 -0
  155. telnyx/types/oauth_register_response.py +45 -0
  156. telnyx/types/oauth_retrieve_authorize_params.py +30 -0
  157. telnyx/types/oauth_retrieve_jwks_response.py +25 -0
  158. telnyx/types/oauth_retrieve_response.py +47 -0
  159. telnyx/types/oauth_token_params.py +33 -0
  160. telnyx/types/oauth_token_response.py +25 -0
  161. telnyx/types/outbound_voice_profile.py +27 -1
  162. telnyx/types/outbound_voice_profile_create_params.py +27 -1
  163. telnyx/types/outbound_voice_profile_list_params.py +1 -1
  164. telnyx/types/outbound_voice_profile_update_params.py +27 -1
  165. telnyx/types/pagination_meta_cloudflare_ip_list_sync.py +15 -0
  166. telnyx/types/pagination_meta_oauth.py +21 -0
  167. telnyx/types/phone_number_blocks/__init__.py +1 -0
  168. telnyx/types/phone_number_blocks/job.py +3 -34
  169. telnyx/types/phone_number_blocks/job_error.py +32 -0
  170. telnyx/types/phone_number_delete_response.py +7 -0
  171. telnyx/types/phone_number_detailed.py +7 -0
  172. telnyx/types/phone_number_list_params.py +6 -0
  173. telnyx/types/phone_numbers/job_update_batch_params.py +7 -0
  174. telnyx/types/phone_numbers/phone_numbers_job.py +3 -36
  175. telnyx/types/porting_order.py +3 -0
  176. telnyx/types/porting_order_create_params.py +3 -0
  177. telnyx/types/porting_order_list_params.py +52 -31
  178. telnyx/types/porting_order_update_params.py +2 -0
  179. telnyx/types/porting_orders/phone_number_configuration_list_params.py +19 -19
  180. telnyx/types/report_list_mdrs_response.py +3 -12
  181. telnyx/types/reports/__init__.py +1 -0
  182. telnyx/types/reports/mdr_usage_report_list_response.py +3 -12
  183. telnyx/types/reports/pagination_meta_reporting.py +17 -0
  184. telnyx/types/requirement_group.py +2 -2
  185. telnyx/types/requirement_group_list_params.py +1 -1
  186. telnyx/types/shared/__init__.py +1 -0
  187. telnyx/types/{error.py → shared/api_error.py} +3 -3
  188. telnyx/types/shared/simple_sim_card.py +15 -0
  189. telnyx/types/sim_card.py +12 -0
  190. telnyx/types/sim_card_update_params.py +2 -1
  191. telnyx/types/stream_bidirectional_codec.py +1 -1
  192. telnyx/types/stream_bidirectional_sampling_rate.py +7 -0
  193. telnyx/types/stream_codec.py +1 -1
  194. telnyx/types/texml/accounts/call_calls_params.py +16 -1
  195. telnyx/types/texml/accounts/conferences/participant_participants_params.py +16 -1
  196. telnyx/types/verification_trigger_call_params.py +7 -0
  197. telnyx/types/verifications/__init__.py +1 -0
  198. telnyx/types/verifications/by_phone_number_list_response.py +4 -13
  199. telnyx/types/verifications/verify_meta.py +17 -0
  200. telnyx/types/verified_number_create_params.py +10 -0
  201. telnyx/types/verify_profile.py +18 -3
  202. telnyx/types/verify_profile_create_template_params.py +12 -0
  203. telnyx/types/verify_profile_list_response.py +4 -13
  204. telnyx/types/verify_profile_message_template_response.py +13 -0
  205. telnyx/types/verify_profile_retrieve_templates_response.py +4 -9
  206. telnyx/types/verify_profile_update_template_params.py +12 -0
  207. telnyx/types/well_known_retrieve_authorization_server_metadata_response.py +42 -0
  208. telnyx/types/well_known_retrieve_protected_resource_metadata_response.py +15 -0
  209. {telnyx-3.5.0a0.dist-info → telnyx-3.6.0.dist-info}/METADATA +4 -4
  210. {telnyx-3.5.0a0.dist-info → telnyx-3.6.0.dist-info}/RECORD +212 -121
  211. telnyx/types/ai/assistant_create_response.py +0 -92
  212. telnyx/types/ai/assistant_retrieve_response.py +0 -92
  213. telnyx/types/ai/assistants/version_promote_response.py +0 -92
  214. telnyx/types/ai/assistants/version_retrieve_response.py +0 -92
  215. telnyx/types/ai/assistants/version_update_response.py +0 -92
  216. telnyx/types/client_create_bucket_params.py +0 -13
  217. telnyx/types/client_delete_objects_params.py +0 -20
  218. telnyx/types/client_get_object_params.py +0 -15
  219. telnyx/types/client_list_objects_params.py +0 -13
  220. telnyx/types/client_put_object_params.py +0 -20
  221. telnyx/types/list_buckets_response.py +0 -20
  222. telnyx/types/list_objects_response.py +0 -24
  223. {telnyx-3.5.0a0.dist-info → telnyx-3.6.0.dist-info}/WHEEL +0 -0
  224. {telnyx-3.5.0a0.dist-info → telnyx-3.6.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,29 @@
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 datetime import datetime
7
+ from typing_extensions import Required, Annotated, TypedDict
8
+
9
+ from ....._types import SequenceNotStr
10
+ from ....._utils import PropertyInfo
11
+
12
+ __all__ = ["MessagingCreateParams"]
13
+
14
+
15
+ class MessagingCreateParams(TypedDict, total=False):
16
+ aggregation_type: Required[int]
17
+ """Aggregation type: No aggregation = 0, By Messaging Profile = 1, By Tags = 2"""
18
+
19
+ end_time: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]
20
+
21
+ managed_accounts: SequenceNotStr[str]
22
+ """List of managed accounts to include"""
23
+
24
+ profiles: SequenceNotStr[str]
25
+ """List of messaging profile IDs to filter by"""
26
+
27
+ select_all_managed_accounts: bool
28
+
29
+ start_time: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]
@@ -0,0 +1,13 @@
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 .mdr_usage_report_response_legacy import MdrUsageReportResponseLegacy
7
+
8
+ __all__ = ["MessagingCreateResponse"]
9
+
10
+
11
+ class MessagingCreateResponse(BaseModel):
12
+ data: Optional[MdrUsageReportResponseLegacy] = None
13
+ """Legacy V2 MDR usage report response"""
@@ -0,0 +1,13 @@
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 .mdr_usage_report_response_legacy import MdrUsageReportResponseLegacy
7
+
8
+ __all__ = ["MessagingDeleteResponse"]
9
+
10
+
11
+ class MessagingDeleteResponse(BaseModel):
12
+ data: Optional[MdrUsageReportResponseLegacy] = None
13
+ """Legacy V2 MDR usage report response"""
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["MessagingListParams"]
8
+
9
+
10
+ class MessagingListParams(TypedDict, total=False):
11
+ page: int
12
+ """Page number"""
13
+
14
+ per_page: int
15
+ """Size of the page"""
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from ....._models import BaseModel
6
+ from .standard_pagination_meta import StandardPaginationMeta
7
+ from .mdr_usage_report_response_legacy import MdrUsageReportResponseLegacy
8
+
9
+ __all__ = ["MessagingListResponse"]
10
+
11
+
12
+ class MessagingListResponse(BaseModel):
13
+ data: Optional[List[MdrUsageReportResponseLegacy]] = None
14
+
15
+ meta: Optional[StandardPaginationMeta] = None
@@ -0,0 +1,13 @@
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 .mdr_usage_report_response_legacy import MdrUsageReportResponseLegacy
7
+
8
+ __all__ = ["MessagingRetrieveResponse"]
9
+
10
+
11
+ class MessagingRetrieveResponse(BaseModel):
12
+ data: Optional[MdrUsageReportResponseLegacy] = None
13
+ """Legacy V2 MDR usage report response"""
@@ -0,0 +1,26 @@
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 datetime import date
7
+ from typing_extensions import Literal, Annotated, TypedDict
8
+
9
+ from ....._types import SequenceNotStr
10
+ from ....._utils import PropertyInfo
11
+
12
+ __all__ = ["NumberLookupCreateParams"]
13
+
14
+
15
+ class NumberLookupCreateParams(TypedDict, total=False):
16
+ aggregation_type: Annotated[Literal["ALL", "BY_ORGANIZATION_MEMBER"], PropertyInfo(alias="aggregationType")]
17
+ """Type of aggregation for the report"""
18
+
19
+ end_date: Annotated[Union[str, date], PropertyInfo(alias="endDate", format="iso8601")]
20
+ """End date for the usage report"""
21
+
22
+ managed_accounts: Annotated[SequenceNotStr[str], PropertyInfo(alias="managedAccounts")]
23
+ """List of managed accounts to include in the report"""
24
+
25
+ start_date: Annotated[Union[str, date], PropertyInfo(alias="startDate", format="iso8601")]
26
+ """Start date for the usage report"""
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["NumberLookupListParams"]
8
+
9
+
10
+ class NumberLookupListParams(TypedDict, total=False):
11
+ page: int
12
+
13
+ per_page: int
@@ -0,0 +1,17 @@
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
+
7
+ __all__ = ["StandardPaginationMeta"]
8
+
9
+
10
+ class StandardPaginationMeta(BaseModel):
11
+ page_number: Optional[int] = None
12
+
13
+ page_size: Optional[int] = None
14
+
15
+ total_pages: Optional[int] = None
16
+
17
+ total_results: Optional[int] = None
@@ -0,0 +1,40 @@
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, Iterable
6
+ from datetime import datetime
7
+ from typing_extensions import Required, Annotated, TypedDict
8
+
9
+ from ....._types import SequenceNotStr
10
+ from ....._utils import PropertyInfo
11
+
12
+ __all__ = ["VoiceCreateParams"]
13
+
14
+
15
+ class VoiceCreateParams(TypedDict, total=False):
16
+ end_time: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
17
+ """End time in ISO format"""
18
+
19
+ start_time: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
20
+ """Start time in ISO format"""
21
+
22
+ aggregation_type: int
23
+ """
24
+ Aggregation type: All = 0, By Connections = 1, By Tags = 2, By Billing Group = 3
25
+ """
26
+
27
+ connections: Iterable[int]
28
+ """List of connections to filter by"""
29
+
30
+ managed_accounts: SequenceNotStr[str]
31
+ """List of managed accounts to include"""
32
+
33
+ product_breakdown: int
34
+ """
35
+ Product breakdown type: No breakdown = 0, DID vs Toll-free = 1, Country = 2, DID
36
+ vs Toll-free per Country = 3
37
+ """
38
+
39
+ select_all_managed_accounts: bool
40
+ """Whether to select all managed accounts"""
@@ -0,0 +1,13 @@
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 .cdr_usage_report_response_legacy import CdrUsageReportResponseLegacy
7
+
8
+ __all__ = ["VoiceCreateResponse"]
9
+
10
+
11
+ class VoiceCreateResponse(BaseModel):
12
+ data: Optional[CdrUsageReportResponseLegacy] = None
13
+ """Legacy V2 CDR usage report response"""
@@ -0,0 +1,13 @@
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 .cdr_usage_report_response_legacy import CdrUsageReportResponseLegacy
7
+
8
+ __all__ = ["VoiceDeleteResponse"]
9
+
10
+
11
+ class VoiceDeleteResponse(BaseModel):
12
+ data: Optional[CdrUsageReportResponseLegacy] = None
13
+ """Legacy V2 CDR usage report response"""
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["VoiceListParams"]
8
+
9
+
10
+ class VoiceListParams(TypedDict, total=False):
11
+ page: int
12
+ """Page number"""
13
+
14
+ per_page: int
15
+ """Size of the page"""
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from ....._models import BaseModel
6
+ from .standard_pagination_meta import StandardPaginationMeta
7
+ from .cdr_usage_report_response_legacy import CdrUsageReportResponseLegacy
8
+
9
+ __all__ = ["VoiceListResponse"]
10
+
11
+
12
+ class VoiceListResponse(BaseModel):
13
+ data: Optional[List[CdrUsageReportResponseLegacy]] = None
14
+
15
+ meta: Optional[StandardPaginationMeta] = None
@@ -0,0 +1,13 @@
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 .cdr_usage_report_response_legacy import CdrUsageReportResponseLegacy
7
+
8
+ __all__ = ["VoiceRetrieveResponse"]
9
+
10
+
11
+ class VoiceRetrieveResponse(BaseModel):
12
+ data: Optional[CdrUsageReportResponseLegacy] = None
13
+ """Legacy V2 CDR usage report response"""
@@ -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 .verify_profile_message_template_response import VerifyProfileMessageTemplateResponse
7
+
8
+ __all__ = ["MessageTemplate"]
9
+
10
+
11
+ class MessageTemplate(BaseModel):
12
+ data: Optional[VerifyProfileMessageTemplateResponse] = None
@@ -42,6 +42,9 @@ class MessagingProfile(BaseModel):
42
42
  mms_transcoding: Optional[bool] = None
43
43
  """enables automated resizing of MMS media."""
44
44
 
45
+ mobile_only: Optional[bool] = None
46
+ """Send messages only to mobile phone numbers."""
47
+
45
48
  name: Optional[str] = None
46
49
  """A user friendly name for the messaging profile."""
47
50
 
@@ -47,6 +47,9 @@ class MessagingProfileCreateParams(TypedDict, total=False):
47
47
  mms_transcoding: bool
48
48
  """enables automated resizing of MMS media."""
49
49
 
50
+ mobile_only: bool
51
+ """Send messages only to mobile phone numbers."""
52
+
50
53
  number_pool_settings: Optional[NumberPoolSettingsParam]
51
54
  """
52
55
  Number Pool allows you to send messages from a pool of numbers of different
@@ -37,6 +37,9 @@ class MessagingProfileUpdateParams(TypedDict, total=False):
37
37
  mms_transcoding: bool
38
38
  """enables automated resizing of MMS media."""
39
39
 
40
+ mobile_only: bool
41
+ """Send messages only to mobile phone numbers."""
42
+
40
43
  name: str
41
44
  """A user friendly name for the messaging profile."""
42
45
 
@@ -15,3 +15,4 @@ from .tf_phone_number_param import TfPhoneNumberParam as TfPhoneNumberParam
15
15
  from .tf_verification_status import TfVerificationStatus as TfVerificationStatus
16
16
  from .verification_request_egress import VerificationRequestEgress as VerificationRequestEgress
17
17
  from .verification_request_status import VerificationRequestStatus as VerificationRequestStatus
18
+ from .toll_free_verification_entity_type import TollFreeVerificationEntityType as TollFreeVerificationEntityType
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Iterable
5
+ from typing import Iterable, Optional
6
6
  from typing_extensions import Required, Annotated, TypedDict
7
7
 
8
8
  from .volume import Volume
@@ -10,6 +10,7 @@ from ...._utils import PropertyInfo
10
10
  from .url_param import URLParam
11
11
  from .use_case_categories import UseCaseCategories
12
12
  from .tf_phone_number_param import TfPhoneNumberParam
13
+ from .toll_free_verification_entity_type import TollFreeVerificationEntityType
13
14
 
14
15
  __all__ = ["RequestCreateParams"]
15
16
 
@@ -84,8 +85,57 @@ class RequestCreateParams(TypedDict, total=False):
84
85
  use_case_summary: Required[Annotated[str, PropertyInfo(alias="useCaseSummary")]]
85
86
  """Human-readable summary of the desired use-case"""
86
87
 
88
+ age_gated_content: Annotated[bool, PropertyInfo(alias="ageGatedContent")]
89
+ """Indicates if messaging content requires age gating (e.g., 18+).
90
+
91
+ Defaults to false if not provided.
92
+ """
93
+
87
94
  business_addr2: Annotated[str, PropertyInfo(alias="businessAddr2")]
88
95
  """Line 2 of the business address"""
89
96
 
97
+ business_registration_country: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationCountry")]
98
+ """ISO 3166-1 alpha-2 country code of the issuing business authority.
99
+
100
+ Must be exactly 2 letters. Automatically converted to uppercase. Required from
101
+ January 2026.
102
+ """
103
+
104
+ business_registration_number: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationNumber")]
105
+ """
106
+ Official business registration number (e.g., Employer Identification Number
107
+ (EIN) in the U.S.). Required from January 2026.
108
+ """
109
+
110
+ business_registration_type: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationType")]
111
+ """Type of business registration being provided. Required from January 2026."""
112
+
113
+ doing_business_as: Annotated[Optional[str], PropertyInfo(alias="doingBusinessAs")]
114
+ """Doing Business As (DBA) name if different from legal name"""
115
+
116
+ entity_type: Annotated[Optional[TollFreeVerificationEntityType], PropertyInfo(alias="entityType")]
117
+ """Business entity classification"""
118
+
119
+ help_message_response: Annotated[Optional[str], PropertyInfo(alias="helpMessageResponse")]
120
+ """The message returned when users text 'HELP'"""
121
+
122
+ opt_in_confirmation_response: Annotated[Optional[str], PropertyInfo(alias="optInConfirmationResponse")]
123
+ """Message sent to users confirming their opt-in to receive messages"""
124
+
125
+ opt_in_keywords: Annotated[Optional[str], PropertyInfo(alias="optInKeywords")]
126
+ """Keywords used to collect and process consumer opt-ins"""
127
+
128
+ privacy_policy_url: Annotated[Optional[str], PropertyInfo(alias="privacyPolicyURL")]
129
+ """URL pointing to the business's privacy policy.
130
+
131
+ Plain string, no URL format validation.
132
+ """
133
+
134
+ terms_and_condition_url: Annotated[Optional[str], PropertyInfo(alias="termsAndConditionURL")]
135
+ """URL pointing to the business's terms and conditions.
136
+
137
+ Plain string, no URL format validation.
138
+ """
139
+
90
140
  webhook_url: Annotated[str, PropertyInfo(alias="webhookUrl")]
91
141
  """URL that should receive webhooks relating to this verification request"""
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Iterable
5
+ from typing import Iterable, Optional
6
6
  from typing_extensions import Required, Annotated, TypedDict
7
7
 
8
8
  from .volume import Volume
@@ -10,6 +10,7 @@ from ...._utils import PropertyInfo
10
10
  from .url_param import URLParam
11
11
  from .use_case_categories import UseCaseCategories
12
12
  from .tf_phone_number_param import TfPhoneNumberParam
13
+ from .toll_free_verification_entity_type import TollFreeVerificationEntityType
13
14
 
14
15
  __all__ = ["RequestUpdateParams"]
15
16
 
@@ -84,8 +85,57 @@ class RequestUpdateParams(TypedDict, total=False):
84
85
  use_case_summary: Required[Annotated[str, PropertyInfo(alias="useCaseSummary")]]
85
86
  """Human-readable summary of the desired use-case"""
86
87
 
88
+ age_gated_content: Annotated[bool, PropertyInfo(alias="ageGatedContent")]
89
+ """Indicates if messaging content requires age gating (e.g., 18+).
90
+
91
+ Defaults to false if not provided.
92
+ """
93
+
87
94
  business_addr2: Annotated[str, PropertyInfo(alias="businessAddr2")]
88
95
  """Line 2 of the business address"""
89
96
 
97
+ business_registration_country: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationCountry")]
98
+ """ISO 3166-1 alpha-2 country code of the issuing business authority.
99
+
100
+ Must be exactly 2 letters. Automatically converted to uppercase. Required from
101
+ January 2026.
102
+ """
103
+
104
+ business_registration_number: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationNumber")]
105
+ """
106
+ Official business registration number (e.g., Employer Identification Number
107
+ (EIN) in the U.S.). Required from January 2026.
108
+ """
109
+
110
+ business_registration_type: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationType")]
111
+ """Type of business registration being provided. Required from January 2026."""
112
+
113
+ doing_business_as: Annotated[Optional[str], PropertyInfo(alias="doingBusinessAs")]
114
+ """Doing Business As (DBA) name if different from legal name"""
115
+
116
+ entity_type: Annotated[Optional[TollFreeVerificationEntityType], PropertyInfo(alias="entityType")]
117
+ """Business entity classification"""
118
+
119
+ help_message_response: Annotated[Optional[str], PropertyInfo(alias="helpMessageResponse")]
120
+ """The message returned when users text 'HELP'"""
121
+
122
+ opt_in_confirmation_response: Annotated[Optional[str], PropertyInfo(alias="optInConfirmationResponse")]
123
+ """Message sent to users confirming their opt-in to receive messages"""
124
+
125
+ opt_in_keywords: Annotated[Optional[str], PropertyInfo(alias="optInKeywords")]
126
+ """Keywords used to collect and process consumer opt-ins"""
127
+
128
+ privacy_policy_url: Annotated[Optional[str], PropertyInfo(alias="privacyPolicyURL")]
129
+ """URL pointing to the business's privacy policy.
130
+
131
+ Plain string, no URL format validation.
132
+ """
133
+
134
+ terms_and_condition_url: Annotated[Optional[str], PropertyInfo(alias="termsAndConditionURL")]
135
+ """URL pointing to the business's terms and conditions.
136
+
137
+ Plain string, no URL format validation.
138
+ """
139
+
90
140
  webhook_url: Annotated[str, PropertyInfo(alias="webhookUrl")]
91
141
  """URL that should receive webhooks relating to this verification request"""
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["TollFreeVerificationEntityType"]
6
+
7
+ TollFreeVerificationEntityType: TypeAlias = Literal[
8
+ "SOLE_PROPRIETOR", "PRIVATE_PROFIT", "PUBLIC_PROFIT", "NON_PROFIT", "GOVERNMENT"
9
+ ]
@@ -10,6 +10,7 @@ from ...._models import BaseModel
10
10
  from .tf_phone_number import TfPhoneNumber
11
11
  from .use_case_categories import UseCaseCategories
12
12
  from .tf_verification_status import TfVerificationStatus
13
+ from .toll_free_verification_entity_type import TollFreeVerificationEntityType
13
14
 
14
15
  __all__ = ["VerificationRequestEgress"]
15
16
 
@@ -59,8 +60,31 @@ class VerificationRequestEgress(BaseModel):
59
60
 
60
61
  verification_request_id: str = FieldInfo(alias="verificationRequestId")
61
62
 
63
+ age_gated_content: Optional[bool] = FieldInfo(alias="ageGatedContent", default=None)
64
+
62
65
  business_addr2: Optional[str] = FieldInfo(alias="businessAddr2", default=None)
63
66
 
67
+ business_registration_country: Optional[str] = FieldInfo(alias="businessRegistrationCountry", default=None)
68
+
69
+ business_registration_number: Optional[str] = FieldInfo(alias="businessRegistrationNumber", default=None)
70
+
71
+ business_registration_type: Optional[str] = FieldInfo(alias="businessRegistrationType", default=None)
72
+
73
+ doing_business_as: Optional[str] = FieldInfo(alias="doingBusinessAs", default=None)
74
+
75
+ entity_type: Optional[TollFreeVerificationEntityType] = FieldInfo(alias="entityType", default=None)
76
+ """Business entity classification"""
77
+
78
+ help_message_response: Optional[str] = FieldInfo(alias="helpMessageResponse", default=None)
79
+
80
+ opt_in_confirmation_response: Optional[str] = FieldInfo(alias="optInConfirmationResponse", default=None)
81
+
82
+ opt_in_keywords: Optional[str] = FieldInfo(alias="optInKeywords", default=None)
83
+
84
+ privacy_policy_url: Optional[str] = FieldInfo(alias="privacyPolicyURL", default=None)
85
+
86
+ terms_and_condition_url: Optional[str] = FieldInfo(alias="termsAndConditionURL", default=None)
87
+
64
88
  verification_status: Optional[TfVerificationStatus] = FieldInfo(alias="verificationStatus", default=None)
65
89
  """Tollfree verification status"""
66
90
 
@@ -11,6 +11,7 @@ from ...._models import BaseModel
11
11
  from .tf_phone_number import TfPhoneNumber
12
12
  from .use_case_categories import UseCaseCategories
13
13
  from .tf_verification_status import TfVerificationStatus
14
+ from .toll_free_verification_entity_type import TollFreeVerificationEntityType
14
15
 
15
16
  __all__ = ["VerificationRequestStatus"]
16
17
 
@@ -61,12 +62,35 @@ class VerificationRequestStatus(BaseModel):
61
62
  verification_status: TfVerificationStatus = FieldInfo(alias="verificationStatus")
62
63
  """Tollfree verification status"""
63
64
 
65
+ age_gated_content: Optional[bool] = FieldInfo(alias="ageGatedContent", default=None)
66
+
64
67
  business_addr2: Optional[str] = FieldInfo(alias="businessAddr2", default=None)
65
68
 
69
+ business_registration_country: Optional[str] = FieldInfo(alias="businessRegistrationCountry", default=None)
70
+
71
+ business_registration_number: Optional[str] = FieldInfo(alias="businessRegistrationNumber", default=None)
72
+
73
+ business_registration_type: Optional[str] = FieldInfo(alias="businessRegistrationType", default=None)
74
+
66
75
  created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None)
67
76
 
77
+ doing_business_as: Optional[str] = FieldInfo(alias="doingBusinessAs", default=None)
78
+
79
+ entity_type: Optional[TollFreeVerificationEntityType] = FieldInfo(alias="entityType", default=None)
80
+ """Business entity classification"""
81
+
82
+ help_message_response: Optional[str] = FieldInfo(alias="helpMessageResponse", default=None)
83
+
84
+ opt_in_confirmation_response: Optional[str] = FieldInfo(alias="optInConfirmationResponse", default=None)
85
+
86
+ opt_in_keywords: Optional[str] = FieldInfo(alias="optInKeywords", default=None)
87
+
88
+ privacy_policy_url: Optional[str] = FieldInfo(alias="privacyPolicyURL", default=None)
89
+
68
90
  reason: Optional[str] = None
69
91
 
92
+ terms_and_condition_url: Optional[str] = FieldInfo(alias="termsAndConditionURL", default=None)
93
+
70
94
  updated_at: Optional[datetime] = FieldInfo(alias="updatedAt", default=None)
71
95
 
72
96
  webhook_url: Optional[str] = FieldInfo(alias="webhookUrl", default=None)
@@ -1,12 +1,38 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import Optional
3
+ from datetime import datetime
4
4
 
5
5
  from .._models import BaseModel
6
- from .number_block_order import NumberBlockOrder
6
+ from .number_order_with_phone_numbers import NumberOrderWithPhoneNumbers
7
7
 
8
- __all__ = ["NumberOrderStatusUpdateWebhookEvent"]
8
+ __all__ = ["NumberOrderStatusUpdateWebhookEvent", "Data", "Meta"]
9
+
10
+
11
+ class Data(BaseModel):
12
+ id: str
13
+ """Unique identifier for the event"""
14
+
15
+ event_type: str
16
+ """The type of event being sent"""
17
+
18
+ occurred_at: datetime
19
+ """ISO 8601 timestamp of when the event occurred"""
20
+
21
+ payload: NumberOrderWithPhoneNumbers
22
+
23
+ record_type: str
24
+ """Type of record"""
25
+
26
+
27
+ class Meta(BaseModel):
28
+ attempt: int
29
+ """Webhook delivery attempt number"""
30
+
31
+ delivered_to: str
32
+ """URL where the webhook was delivered"""
9
33
 
10
34
 
11
35
  class NumberOrderStatusUpdateWebhookEvent(BaseModel):
12
- data: Optional[NumberBlockOrder] = None
36
+ data: Data
37
+
38
+ meta: Meta