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,493 @@
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
+
8
+ import httpx
9
+
10
+ from ....._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
11
+ from ....._utils import maybe_transform, async_maybe_transform
12
+ from ....._compat import cached_property
13
+ from ....._resource import SyncAPIResource, AsyncAPIResource
14
+ from ....._response import (
15
+ to_raw_response_wrapper,
16
+ to_streamed_response_wrapper,
17
+ async_to_raw_response_wrapper,
18
+ async_to_streamed_response_wrapper,
19
+ )
20
+ from ....._base_client import make_request_options
21
+ from .....types.legacy.reporting.usage_reports import voice_list_params, voice_create_params
22
+ from .....types.legacy.reporting.usage_reports.voice_list_response import VoiceListResponse
23
+ from .....types.legacy.reporting.usage_reports.voice_create_response import VoiceCreateResponse
24
+ from .....types.legacy.reporting.usage_reports.voice_delete_response import VoiceDeleteResponse
25
+ from .....types.legacy.reporting.usage_reports.voice_retrieve_response import VoiceRetrieveResponse
26
+
27
+ __all__ = ["VoiceResource", "AsyncVoiceResource"]
28
+
29
+
30
+ class VoiceResource(SyncAPIResource):
31
+ @cached_property
32
+ def with_raw_response(self) -> VoiceResourceWithRawResponse:
33
+ """
34
+ This property can be used as a prefix for any HTTP method call to return
35
+ the raw response object instead of the parsed content.
36
+
37
+ For more information, see https://www.github.com/team-telnyx/telnyx-python#accessing-raw-response-data-eg-headers
38
+ """
39
+ return VoiceResourceWithRawResponse(self)
40
+
41
+ @cached_property
42
+ def with_streaming_response(self) -> VoiceResourceWithStreamingResponse:
43
+ """
44
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
45
+
46
+ For more information, see https://www.github.com/team-telnyx/telnyx-python#with_streaming_response
47
+ """
48
+ return VoiceResourceWithStreamingResponse(self)
49
+
50
+ def create(
51
+ self,
52
+ *,
53
+ end_time: Union[str, datetime],
54
+ start_time: Union[str, datetime],
55
+ aggregation_type: int | Omit = omit,
56
+ connections: Iterable[int] | Omit = omit,
57
+ managed_accounts: SequenceNotStr[str] | Omit = omit,
58
+ product_breakdown: int | Omit = omit,
59
+ select_all_managed_accounts: bool | Omit = omit,
60
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
61
+ # The extra values given here take precedence over values defined on the client or passed to this method.
62
+ extra_headers: Headers | None = None,
63
+ extra_query: Query | None = None,
64
+ extra_body: Body | None = None,
65
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
66
+ ) -> VoiceCreateResponse:
67
+ """
68
+ Creates a new legacy usage V2 CDR report request with the specified filters
69
+
70
+ Args:
71
+ end_time: End time in ISO format
72
+
73
+ start_time: Start time in ISO format
74
+
75
+ aggregation_type: Aggregation type: All = 0, By Connections = 1, By Tags = 2, By Billing Group = 3
76
+
77
+ connections: List of connections to filter by
78
+
79
+ managed_accounts: List of managed accounts to include
80
+
81
+ product_breakdown: Product breakdown type: No breakdown = 0, DID vs Toll-free = 1, Country = 2, DID
82
+ vs Toll-free per Country = 3
83
+
84
+ select_all_managed_accounts: Whether to select all managed accounts
85
+
86
+ extra_headers: Send extra headers
87
+
88
+ extra_query: Add additional query parameters to the request
89
+
90
+ extra_body: Add additional JSON properties to the request
91
+
92
+ timeout: Override the client-level default timeout for this request, in seconds
93
+ """
94
+ return self._post(
95
+ "/legacy/reporting/usage_reports/voice",
96
+ body=maybe_transform(
97
+ {
98
+ "end_time": end_time,
99
+ "start_time": start_time,
100
+ "aggregation_type": aggregation_type,
101
+ "connections": connections,
102
+ "managed_accounts": managed_accounts,
103
+ "product_breakdown": product_breakdown,
104
+ "select_all_managed_accounts": select_all_managed_accounts,
105
+ },
106
+ voice_create_params.VoiceCreateParams,
107
+ ),
108
+ options=make_request_options(
109
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
110
+ ),
111
+ cast_to=VoiceCreateResponse,
112
+ )
113
+
114
+ def retrieve(
115
+ self,
116
+ id: str,
117
+ *,
118
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
119
+ # The extra values given here take precedence over values defined on the client or passed to this method.
120
+ extra_headers: Headers | None = None,
121
+ extra_query: Query | None = None,
122
+ extra_body: Body | None = None,
123
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
124
+ ) -> VoiceRetrieveResponse:
125
+ """
126
+ Fetch single cdr usage report by id.
127
+
128
+ Args:
129
+ extra_headers: Send extra headers
130
+
131
+ extra_query: Add additional query parameters to the request
132
+
133
+ extra_body: Add additional JSON properties to the request
134
+
135
+ timeout: Override the client-level default timeout for this request, in seconds
136
+ """
137
+ if not id:
138
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
139
+ return self._get(
140
+ f"/legacy/reporting/usage_reports/voice/{id}",
141
+ options=make_request_options(
142
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
143
+ ),
144
+ cast_to=VoiceRetrieveResponse,
145
+ )
146
+
147
+ def list(
148
+ self,
149
+ *,
150
+ page: int | Omit = omit,
151
+ per_page: int | Omit = omit,
152
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
153
+ # The extra values given here take precedence over values defined on the client or passed to this method.
154
+ extra_headers: Headers | None = None,
155
+ extra_query: Query | None = None,
156
+ extra_body: Body | None = None,
157
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
158
+ ) -> VoiceListResponse:
159
+ """
160
+ Fetch all previous requests for cdr usage reports.
161
+
162
+ Args:
163
+ page: Page number
164
+
165
+ per_page: Size of the page
166
+
167
+ extra_headers: Send extra headers
168
+
169
+ extra_query: Add additional query parameters to the request
170
+
171
+ extra_body: Add additional JSON properties to the request
172
+
173
+ timeout: Override the client-level default timeout for this request, in seconds
174
+ """
175
+ return self._get(
176
+ "/legacy/reporting/usage_reports/voice",
177
+ options=make_request_options(
178
+ extra_headers=extra_headers,
179
+ extra_query=extra_query,
180
+ extra_body=extra_body,
181
+ timeout=timeout,
182
+ query=maybe_transform(
183
+ {
184
+ "page": page,
185
+ "per_page": per_page,
186
+ },
187
+ voice_list_params.VoiceListParams,
188
+ ),
189
+ ),
190
+ cast_to=VoiceListResponse,
191
+ )
192
+
193
+ def delete(
194
+ self,
195
+ id: str,
196
+ *,
197
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
198
+ # The extra values given here take precedence over values defined on the client or passed to this method.
199
+ extra_headers: Headers | None = None,
200
+ extra_query: Query | None = None,
201
+ extra_body: Body | None = None,
202
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
203
+ ) -> VoiceDeleteResponse:
204
+ """
205
+ Deletes a specific V2 legacy usage CDR report request by ID
206
+
207
+ Args:
208
+ extra_headers: Send extra headers
209
+
210
+ extra_query: Add additional query parameters to the request
211
+
212
+ extra_body: Add additional JSON properties to the request
213
+
214
+ timeout: Override the client-level default timeout for this request, in seconds
215
+ """
216
+ if not id:
217
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
218
+ return self._delete(
219
+ f"/legacy/reporting/usage_reports/voice/{id}",
220
+ options=make_request_options(
221
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
222
+ ),
223
+ cast_to=VoiceDeleteResponse,
224
+ )
225
+
226
+
227
+ class AsyncVoiceResource(AsyncAPIResource):
228
+ @cached_property
229
+ def with_raw_response(self) -> AsyncVoiceResourceWithRawResponse:
230
+ """
231
+ This property can be used as a prefix for any HTTP method call to return
232
+ the raw response object instead of the parsed content.
233
+
234
+ For more information, see https://www.github.com/team-telnyx/telnyx-python#accessing-raw-response-data-eg-headers
235
+ """
236
+ return AsyncVoiceResourceWithRawResponse(self)
237
+
238
+ @cached_property
239
+ def with_streaming_response(self) -> AsyncVoiceResourceWithStreamingResponse:
240
+ """
241
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
242
+
243
+ For more information, see https://www.github.com/team-telnyx/telnyx-python#with_streaming_response
244
+ """
245
+ return AsyncVoiceResourceWithStreamingResponse(self)
246
+
247
+ async def create(
248
+ self,
249
+ *,
250
+ end_time: Union[str, datetime],
251
+ start_time: Union[str, datetime],
252
+ aggregation_type: int | Omit = omit,
253
+ connections: Iterable[int] | Omit = omit,
254
+ managed_accounts: SequenceNotStr[str] | Omit = omit,
255
+ product_breakdown: int | Omit = omit,
256
+ select_all_managed_accounts: bool | Omit = omit,
257
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
258
+ # The extra values given here take precedence over values defined on the client or passed to this method.
259
+ extra_headers: Headers | None = None,
260
+ extra_query: Query | None = None,
261
+ extra_body: Body | None = None,
262
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
263
+ ) -> VoiceCreateResponse:
264
+ """
265
+ Creates a new legacy usage V2 CDR report request with the specified filters
266
+
267
+ Args:
268
+ end_time: End time in ISO format
269
+
270
+ start_time: Start time in ISO format
271
+
272
+ aggregation_type: Aggregation type: All = 0, By Connections = 1, By Tags = 2, By Billing Group = 3
273
+
274
+ connections: List of connections to filter by
275
+
276
+ managed_accounts: List of managed accounts to include
277
+
278
+ product_breakdown: Product breakdown type: No breakdown = 0, DID vs Toll-free = 1, Country = 2, DID
279
+ vs Toll-free per Country = 3
280
+
281
+ select_all_managed_accounts: Whether to select all managed accounts
282
+
283
+ extra_headers: Send extra headers
284
+
285
+ extra_query: Add additional query parameters to the request
286
+
287
+ extra_body: Add additional JSON properties to the request
288
+
289
+ timeout: Override the client-level default timeout for this request, in seconds
290
+ """
291
+ return await self._post(
292
+ "/legacy/reporting/usage_reports/voice",
293
+ body=await async_maybe_transform(
294
+ {
295
+ "end_time": end_time,
296
+ "start_time": start_time,
297
+ "aggregation_type": aggregation_type,
298
+ "connections": connections,
299
+ "managed_accounts": managed_accounts,
300
+ "product_breakdown": product_breakdown,
301
+ "select_all_managed_accounts": select_all_managed_accounts,
302
+ },
303
+ voice_create_params.VoiceCreateParams,
304
+ ),
305
+ options=make_request_options(
306
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
307
+ ),
308
+ cast_to=VoiceCreateResponse,
309
+ )
310
+
311
+ async def retrieve(
312
+ self,
313
+ id: str,
314
+ *,
315
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
316
+ # The extra values given here take precedence over values defined on the client or passed to this method.
317
+ extra_headers: Headers | None = None,
318
+ extra_query: Query | None = None,
319
+ extra_body: Body | None = None,
320
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
321
+ ) -> VoiceRetrieveResponse:
322
+ """
323
+ Fetch single cdr usage report by id.
324
+
325
+ Args:
326
+ extra_headers: Send extra headers
327
+
328
+ extra_query: Add additional query parameters to the request
329
+
330
+ extra_body: Add additional JSON properties to the request
331
+
332
+ timeout: Override the client-level default timeout for this request, in seconds
333
+ """
334
+ if not id:
335
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
336
+ return await self._get(
337
+ f"/legacy/reporting/usage_reports/voice/{id}",
338
+ options=make_request_options(
339
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
340
+ ),
341
+ cast_to=VoiceRetrieveResponse,
342
+ )
343
+
344
+ async def list(
345
+ self,
346
+ *,
347
+ page: int | Omit = omit,
348
+ per_page: int | Omit = omit,
349
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
350
+ # The extra values given here take precedence over values defined on the client or passed to this method.
351
+ extra_headers: Headers | None = None,
352
+ extra_query: Query | None = None,
353
+ extra_body: Body | None = None,
354
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
355
+ ) -> VoiceListResponse:
356
+ """
357
+ Fetch all previous requests for cdr usage reports.
358
+
359
+ Args:
360
+ page: Page number
361
+
362
+ per_page: Size of the page
363
+
364
+ extra_headers: Send extra headers
365
+
366
+ extra_query: Add additional query parameters to the request
367
+
368
+ extra_body: Add additional JSON properties to the request
369
+
370
+ timeout: Override the client-level default timeout for this request, in seconds
371
+ """
372
+ return await self._get(
373
+ "/legacy/reporting/usage_reports/voice",
374
+ options=make_request_options(
375
+ extra_headers=extra_headers,
376
+ extra_query=extra_query,
377
+ extra_body=extra_body,
378
+ timeout=timeout,
379
+ query=await async_maybe_transform(
380
+ {
381
+ "page": page,
382
+ "per_page": per_page,
383
+ },
384
+ voice_list_params.VoiceListParams,
385
+ ),
386
+ ),
387
+ cast_to=VoiceListResponse,
388
+ )
389
+
390
+ async def delete(
391
+ self,
392
+ id: str,
393
+ *,
394
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
395
+ # The extra values given here take precedence over values defined on the client or passed to this method.
396
+ extra_headers: Headers | None = None,
397
+ extra_query: Query | None = None,
398
+ extra_body: Body | None = None,
399
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
400
+ ) -> VoiceDeleteResponse:
401
+ """
402
+ Deletes a specific V2 legacy usage CDR report request by ID
403
+
404
+ Args:
405
+ extra_headers: Send extra headers
406
+
407
+ extra_query: Add additional query parameters to the request
408
+
409
+ extra_body: Add additional JSON properties to the request
410
+
411
+ timeout: Override the client-level default timeout for this request, in seconds
412
+ """
413
+ if not id:
414
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
415
+ return await self._delete(
416
+ f"/legacy/reporting/usage_reports/voice/{id}",
417
+ options=make_request_options(
418
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
419
+ ),
420
+ cast_to=VoiceDeleteResponse,
421
+ )
422
+
423
+
424
+ class VoiceResourceWithRawResponse:
425
+ def __init__(self, voice: VoiceResource) -> None:
426
+ self._voice = voice
427
+
428
+ self.create = to_raw_response_wrapper(
429
+ voice.create,
430
+ )
431
+ self.retrieve = to_raw_response_wrapper(
432
+ voice.retrieve,
433
+ )
434
+ self.list = to_raw_response_wrapper(
435
+ voice.list,
436
+ )
437
+ self.delete = to_raw_response_wrapper(
438
+ voice.delete,
439
+ )
440
+
441
+
442
+ class AsyncVoiceResourceWithRawResponse:
443
+ def __init__(self, voice: AsyncVoiceResource) -> None:
444
+ self._voice = voice
445
+
446
+ self.create = async_to_raw_response_wrapper(
447
+ voice.create,
448
+ )
449
+ self.retrieve = async_to_raw_response_wrapper(
450
+ voice.retrieve,
451
+ )
452
+ self.list = async_to_raw_response_wrapper(
453
+ voice.list,
454
+ )
455
+ self.delete = async_to_raw_response_wrapper(
456
+ voice.delete,
457
+ )
458
+
459
+
460
+ class VoiceResourceWithStreamingResponse:
461
+ def __init__(self, voice: VoiceResource) -> None:
462
+ self._voice = voice
463
+
464
+ self.create = to_streamed_response_wrapper(
465
+ voice.create,
466
+ )
467
+ self.retrieve = to_streamed_response_wrapper(
468
+ voice.retrieve,
469
+ )
470
+ self.list = to_streamed_response_wrapper(
471
+ voice.list,
472
+ )
473
+ self.delete = to_streamed_response_wrapper(
474
+ voice.delete,
475
+ )
476
+
477
+
478
+ class AsyncVoiceResourceWithStreamingResponse:
479
+ def __init__(self, voice: AsyncVoiceResource) -> None:
480
+ self._voice = voice
481
+
482
+ self.create = async_to_streamed_response_wrapper(
483
+ voice.create,
484
+ )
485
+ self.retrieve = async_to_streamed_response_wrapper(
486
+ voice.retrieve,
487
+ )
488
+ self.list = async_to_streamed_response_wrapper(
489
+ voice.list,
490
+ )
491
+ self.delete = async_to_streamed_response_wrapper(
492
+ voice.delete,
493
+ )
@@ -81,6 +81,7 @@ class MessagingProfilesResource(SyncAPIResource):
81
81
  enabled: bool | Omit = omit,
82
82
  mms_fall_back_to_sms: bool | Omit = omit,
83
83
  mms_transcoding: bool | Omit = omit,
84
+ mobile_only: bool | Omit = omit,
84
85
  number_pool_settings: Optional[NumberPoolSettingsParam] | Omit = omit,
85
86
  url_shortener_settings: Optional[URLShortenerSettingsParam] | Omit = omit,
86
87
  webhook_api_version: Literal["1", "2", "2010-04-01"] | Omit = omit,
@@ -117,6 +118,8 @@ class MessagingProfilesResource(SyncAPIResource):
117
118
 
118
119
  mms_transcoding: enables automated resizing of MMS media.
119
120
 
121
+ mobile_only: Send messages only to mobile phone numbers.
122
+
120
123
  number_pool_settings: Number Pool allows you to send messages from a pool of numbers of different
121
124
  types, assigning weights to each type. The pool consists of all the long code
122
125
  and toll free numbers assigned to the messaging profile.
@@ -159,6 +162,7 @@ class MessagingProfilesResource(SyncAPIResource):
159
162
  "enabled": enabled,
160
163
  "mms_fall_back_to_sms": mms_fall_back_to_sms,
161
164
  "mms_transcoding": mms_transcoding,
165
+ "mobile_only": mobile_only,
162
166
  "number_pool_settings": number_pool_settings,
163
167
  "url_shortener_settings": url_shortener_settings,
164
168
  "webhook_api_version": webhook_api_version,
@@ -216,6 +220,7 @@ class MessagingProfilesResource(SyncAPIResource):
216
220
  enabled: bool | Omit = omit,
217
221
  mms_fall_back_to_sms: bool | Omit = omit,
218
222
  mms_transcoding: bool | Omit = omit,
223
+ mobile_only: bool | Omit = omit,
219
224
  name: str | Omit = omit,
220
225
  number_pool_settings: Optional[NumberPoolSettingsParam] | Omit = omit,
221
226
  url_shortener_settings: Optional[URLShortenerSettingsParam] | Omit = omit,
@@ -249,6 +254,8 @@ class MessagingProfilesResource(SyncAPIResource):
249
254
 
250
255
  mms_transcoding: enables automated resizing of MMS media.
251
256
 
257
+ mobile_only: Send messages only to mobile phone numbers.
258
+
252
259
  name: A user friendly name for the messaging profile.
253
260
 
254
261
  number_pool_settings: Number Pool allows you to send messages from a pool of numbers of different
@@ -301,6 +308,7 @@ class MessagingProfilesResource(SyncAPIResource):
301
308
  "enabled": enabled,
302
309
  "mms_fall_back_to_sms": mms_fall_back_to_sms,
303
310
  "mms_transcoding": mms_transcoding,
311
+ "mobile_only": mobile_only,
304
312
  "name": name,
305
313
  "number_pool_settings": number_pool_settings,
306
314
  "url_shortener_settings": url_shortener_settings,
@@ -520,6 +528,7 @@ class AsyncMessagingProfilesResource(AsyncAPIResource):
520
528
  enabled: bool | Omit = omit,
521
529
  mms_fall_back_to_sms: bool | Omit = omit,
522
530
  mms_transcoding: bool | Omit = omit,
531
+ mobile_only: bool | Omit = omit,
523
532
  number_pool_settings: Optional[NumberPoolSettingsParam] | Omit = omit,
524
533
  url_shortener_settings: Optional[URLShortenerSettingsParam] | Omit = omit,
525
534
  webhook_api_version: Literal["1", "2", "2010-04-01"] | Omit = omit,
@@ -556,6 +565,8 @@ class AsyncMessagingProfilesResource(AsyncAPIResource):
556
565
 
557
566
  mms_transcoding: enables automated resizing of MMS media.
558
567
 
568
+ mobile_only: Send messages only to mobile phone numbers.
569
+
559
570
  number_pool_settings: Number Pool allows you to send messages from a pool of numbers of different
560
571
  types, assigning weights to each type. The pool consists of all the long code
561
572
  and toll free numbers assigned to the messaging profile.
@@ -598,6 +609,7 @@ class AsyncMessagingProfilesResource(AsyncAPIResource):
598
609
  "enabled": enabled,
599
610
  "mms_fall_back_to_sms": mms_fall_back_to_sms,
600
611
  "mms_transcoding": mms_transcoding,
612
+ "mobile_only": mobile_only,
601
613
  "number_pool_settings": number_pool_settings,
602
614
  "url_shortener_settings": url_shortener_settings,
603
615
  "webhook_api_version": webhook_api_version,
@@ -655,6 +667,7 @@ class AsyncMessagingProfilesResource(AsyncAPIResource):
655
667
  enabled: bool | Omit = omit,
656
668
  mms_fall_back_to_sms: bool | Omit = omit,
657
669
  mms_transcoding: bool | Omit = omit,
670
+ mobile_only: bool | Omit = omit,
658
671
  name: str | Omit = omit,
659
672
  number_pool_settings: Optional[NumberPoolSettingsParam] | Omit = omit,
660
673
  url_shortener_settings: Optional[URLShortenerSettingsParam] | Omit = omit,
@@ -688,6 +701,8 @@ class AsyncMessagingProfilesResource(AsyncAPIResource):
688
701
 
689
702
  mms_transcoding: enables automated resizing of MMS media.
690
703
 
704
+ mobile_only: Send messages only to mobile phone numbers.
705
+
691
706
  name: A user friendly name for the messaging profile.
692
707
 
693
708
  number_pool_settings: Number Pool allows you to send messages from a pool of numbers of different
@@ -740,6 +755,7 @@ class AsyncMessagingProfilesResource(AsyncAPIResource):
740
755
  "enabled": enabled,
741
756
  "mms_fall_back_to_sms": mms_fall_back_to_sms,
742
757
  "mms_transcoding": mms_transcoding,
758
+ "mobile_only": mobile_only,
743
759
  "name": name,
744
760
  "number_pool_settings": number_pool_settings,
745
761
  "url_shortener_settings": url_shortener_settings,