telnyx 3.6.0a0__py3-none-any.whl → 3.7.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 (212) hide show
  1. telnyx/_client.py +3 -754
  2. telnyx/_version.py +1 -1
  3. telnyx/resources/advanced_orders.py +63 -63
  4. telnyx/resources/ai/assistants/assistants.py +15 -17
  5. telnyx/resources/ai/assistants/versions.py +13 -15
  6. telnyx/resources/brand/brand.py +8 -4
  7. telnyx/resources/calls/actions.py +10 -6
  8. telnyx/resources/calls/calls.py +16 -2
  9. telnyx/resources/documents.py +242 -37
  10. telnyx/resources/legacy/reporting/batch_detail_records/messaging.py +3 -2
  11. telnyx/resources/legacy/reporting/batch_detail_records/voice.py +3 -2
  12. telnyx/resources/messaging_profiles/messaging_profiles.py +16 -0
  13. telnyx/resources/messaging_tollfree/verification/requests.py +203 -1
  14. telnyx/resources/outbound_voice_profiles.py +24 -4
  15. telnyx/resources/sim_cards/actions.py +12 -12
  16. telnyx/resources/texml/accounts/calls/calls.py +11 -0
  17. telnyx/resources/texml/accounts/conferences/participants.py +11 -0
  18. telnyx/resources/verified_numbers/verified_numbers.py +25 -4
  19. telnyx/resources/verify_profiles.py +9 -10
  20. telnyx/resources/webhooks.py +19 -0
  21. telnyx/types/__init__.py +18 -15
  22. telnyx/types/access_ip_address_list_response.py +3 -12
  23. telnyx/types/access_ip_range_list_response.py +3 -12
  24. telnyx/types/addresses/action_validate_response.py +8 -3
  25. telnyx/types/{advanced_order_update_params.py → advanced_order_update_requirement_group_params.py} +2 -2
  26. telnyx/types/ai/__init__.py +1 -3
  27. telnyx/types/ai/assistant_import_params.py +1 -1
  28. telnyx/types/ai/assistants/__init__.py +0 -3
  29. telnyx/types/ai/assistants_list.py +4 -88
  30. telnyx/types/ai/import_metadata.py +1 -1
  31. telnyx/types/ai/{assistant_clone_response.py → inference_embedding.py} +2 -2
  32. telnyx/types/ai/inference_embedding_transfer_tool_params.py +6 -0
  33. telnyx/types/ai/inference_embedding_transfer_tool_params_param.py +6 -0
  34. telnyx/types/ai/voice_settings.py +49 -2
  35. telnyx/types/ai/voice_settings_param.py +49 -2
  36. telnyx/types/brand_create_params.py +2 -1
  37. telnyx/types/brand_update_params.py +2 -1
  38. telnyx/types/call_ai_gather_ended_webhook_event1.py +78 -0
  39. telnyx/types/call_ai_gather_message_history_updated_webhook_event1.py +69 -0
  40. telnyx/types/call_ai_gather_partial_results_webhook_event1.py +75 -0
  41. telnyx/types/call_answered_webhook_event1.py +75 -0
  42. telnyx/types/call_bridged_webhook_event1.py +58 -0
  43. telnyx/types/call_conversation_ended_webhook_event1.py +84 -0
  44. telnyx/types/call_conversation_insights_generated_webhook_event1.py +67 -0
  45. telnyx/types/call_dial_params.py +10 -1
  46. telnyx/types/call_dtmf_received_webhook_event1.py +61 -0
  47. telnyx/types/call_enqueued_webhook_event1.py +59 -0
  48. telnyx/types/call_fork_started_webhook_event1.py +53 -0
  49. telnyx/types/call_fork_stopped_webhook_event1.py +53 -0
  50. telnyx/types/call_gather_ended_webhook_event1.py +64 -0
  51. telnyx/types/call_hangup_webhook_event1.py +150 -0
  52. telnyx/types/call_initiated_webhook_event1.py +96 -0
  53. telnyx/types/call_left_queue_webhook_event1.py +62 -0
  54. telnyx/types/call_machine_detection_ended_webhook_event1.py +61 -0
  55. telnyx/types/call_machine_greeting_ended_webhook_event1.py +61 -0
  56. telnyx/types/call_machine_premium_detection_ended_webhook_event1.py +63 -0
  57. telnyx/types/call_machine_premium_greeting_ended_webhook_event1.py +61 -0
  58. telnyx/types/call_playback_ended_webhook_event1.py +70 -0
  59. telnyx/types/call_playback_started_webhook_event1.py +62 -0
  60. telnyx/types/call_recording_error_webhook_event1.py +60 -0
  61. telnyx/types/call_recording_saved_webhook_event1.py +94 -0
  62. telnyx/types/call_recording_transcription_saved_webhook_event1.py +71 -0
  63. telnyx/types/call_refer_completed_webhook_event1.py +61 -0
  64. telnyx/types/call_refer_failed_webhook_event1.py +61 -0
  65. telnyx/types/call_refer_started_webhook_event1.py +61 -0
  66. telnyx/types/call_siprec_failed_webhook_event1.py +53 -0
  67. telnyx/types/call_siprec_started_webhook_event1.py +50 -0
  68. telnyx/types/call_siprec_stopped_webhook_event1.py +53 -0
  69. telnyx/types/call_speak_ended_webhook_event1.py +53 -0
  70. telnyx/types/call_speak_started_webhook_event1.py +50 -0
  71. telnyx/types/call_streaming_failed_webhook_event1.py +70 -0
  72. telnyx/types/call_streaming_started_webhook_event1.py +53 -0
  73. telnyx/types/call_streaming_stopped_webhook_event1.py +53 -0
  74. telnyx/types/calls/__init__.py +1 -0
  75. telnyx/types/calls/action_start_streaming_params.py +2 -1
  76. telnyx/types/calls/action_start_transcription_params.py +160 -6
  77. telnyx/types/calls/telnyx_transcription_language.py +108 -0
  78. telnyx/types/calls/transcription_engine_b_config_param.py +3 -102
  79. telnyx/types/calls/transcription_start_request_param.py +161 -6
  80. telnyx/types/campaign_status_update_webhook_event1.py +26 -0
  81. telnyx/types/conference_created_webhook_event1.py +53 -0
  82. telnyx/types/conference_ended_webhook_event1.py +56 -0
  83. telnyx/types/conference_floor_changed_webhook_event1.py +45 -0
  84. telnyx/types/conference_participant_joined_webhook_event1.py +53 -0
  85. telnyx/types/conference_participant_left_webhook_event1.py +53 -0
  86. telnyx/types/conference_participant_playback_ended_webhook_event1.py +65 -0
  87. telnyx/types/conference_participant_playback_started_webhook_event1.py +65 -0
  88. telnyx/types/conference_participant_speak_ended_webhook_event1.py +56 -0
  89. telnyx/types/conference_participant_speak_started_webhook_event1.py +56 -0
  90. telnyx/types/conference_playback_ended_webhook_event1.py +49 -0
  91. telnyx/types/conference_playback_started_webhook_event1.py +49 -0
  92. telnyx/types/conference_recording_saved_webhook_event1.py +103 -0
  93. telnyx/types/conference_speak_ended_webhook_event1.py +40 -0
  94. telnyx/types/conference_speak_started_webhook_event1.py +40 -0
  95. telnyx/types/country_coverage_retrieve_country_response.py +7 -0
  96. telnyx/types/country_coverage_retrieve_response.py +7 -0
  97. telnyx/types/customer_service_record_status_changed_webhook_event1.py +55 -0
  98. telnyx/types/delivery_update_webhook_event1.py +40 -0
  99. telnyx/types/document_upload_json_params.py +39 -0
  100. telnyx/types/document_upload_json_response.py +12 -0
  101. telnyx/types/fax_delivered_webhook_event1.py +69 -0
  102. telnyx/types/fax_failed_webhook_event1.py +66 -0
  103. telnyx/types/fax_media_processed_webhook_event1.py +63 -0
  104. telnyx/types/fax_queued_webhook_event1.py +63 -0
  105. telnyx/types/fax_sending_started_webhook_event1.py +63 -0
  106. telnyx/types/inbound_message_webhook_event1.py +227 -0
  107. telnyx/types/legacy/reporting/__init__.py +2 -0
  108. telnyx/types/legacy/reporting/batch_detail_records/__init__.py +4 -0
  109. telnyx/types/legacy/reporting/batch_detail_records/batch_csv_pagination_meta.py +17 -0
  110. telnyx/types/legacy/reporting/batch_detail_records/cdr_detailed_req_response.py +63 -0
  111. telnyx/types/legacy/reporting/batch_detail_records/mdr_detail_report_response.py +42 -0
  112. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_params.py +4 -26
  113. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_response.py +4 -60
  114. telnyx/types/legacy/reporting/batch_detail_records/messaging_delete_response.py +4 -60
  115. telnyx/types/legacy/reporting/batch_detail_records/messaging_list_response.py +5 -70
  116. telnyx/types/legacy/reporting/batch_detail_records/messaging_retrieve_response.py +4 -60
  117. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_response.py +3 -22
  118. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_delete_response.py +3 -22
  119. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_list_response.py +3 -22
  120. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_retrieve_response.py +3 -22
  121. telnyx/types/legacy/reporting/batch_detail_records/stt_detail_report_response.py +27 -0
  122. telnyx/types/legacy/reporting/batch_detail_records/voice_create_params.py +4 -26
  123. telnyx/types/legacy/reporting/batch_detail_records/voice_create_response.py +4 -82
  124. telnyx/types/legacy/reporting/batch_detail_records/voice_delete_response.py +4 -82
  125. telnyx/types/legacy/reporting/batch_detail_records/voice_list_response.py +5 -92
  126. telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_response.py +4 -82
  127. telnyx/types/legacy/reporting/filter.py +31 -0
  128. telnyx/types/legacy/reporting/filter_param.py +30 -0
  129. telnyx/types/legacy/reporting/usage_reports/__init__.py +3 -0
  130. telnyx/types/legacy/reporting/usage_reports/cdr_usage_report_response_legacy.py +43 -0
  131. telnyx/types/legacy/reporting/usage_reports/mdr_usage_report_response_legacy.py +38 -0
  132. telnyx/types/legacy/reporting/usage_reports/messaging_create_response.py +4 -34
  133. telnyx/types/legacy/reporting/usage_reports/messaging_delete_response.py +4 -34
  134. telnyx/types/legacy/reporting/usage_reports/messaging_list_response.py +5 -44
  135. telnyx/types/legacy/reporting/usage_reports/messaging_retrieve_response.py +4 -34
  136. telnyx/types/legacy/reporting/usage_reports/standard_pagination_meta.py +17 -0
  137. telnyx/types/legacy/reporting/usage_reports/voice_create_response.py +4 -39
  138. telnyx/types/legacy/reporting/usage_reports/voice_delete_response.py +4 -39
  139. telnyx/types/legacy/reporting/usage_reports/voice_list_response.py +5 -49
  140. telnyx/types/legacy/reporting/usage_reports/voice_retrieve_response.py +4 -39
  141. telnyx/types/message_template.py +12 -0
  142. telnyx/types/messaging_profile.py +3 -0
  143. telnyx/types/messaging_profile_create_params.py +3 -0
  144. telnyx/types/messaging_profile_update_params.py +3 -0
  145. telnyx/types/messaging_tollfree/verification/__init__.py +1 -0
  146. telnyx/types/messaging_tollfree/verification/request_create_params.py +51 -1
  147. telnyx/types/messaging_tollfree/verification/request_update_params.py +51 -1
  148. telnyx/types/messaging_tollfree/verification/toll_free_verification_entity_type.py +9 -0
  149. telnyx/types/messaging_tollfree/verification/verification_request_egress.py +24 -0
  150. telnyx/types/messaging_tollfree/verification/verification_request_status.py +24 -0
  151. telnyx/types/number_order_status_update_webhook_event1.py +38 -0
  152. telnyx/types/oauth_client.py +59 -0
  153. telnyx/types/oauth_client_create_response.py +4 -55
  154. telnyx/types/oauth_client_list_response.py +5 -69
  155. telnyx/types/oauth_client_retrieve_response.py +4 -55
  156. telnyx/types/oauth_client_update_response.py +4 -55
  157. telnyx/types/oauth_grant.py +29 -0
  158. telnyx/types/oauth_grant_delete_response.py +4 -25
  159. telnyx/types/oauth_grant_list_response.py +5 -39
  160. telnyx/types/oauth_grant_retrieve_response.py +4 -25
  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_numbers/phone_numbers_job.py +3 -36
  171. telnyx/types/replaced_link_click_webhook_event1.py +32 -0
  172. telnyx/types/report_list_mdrs_response.py +3 -12
  173. telnyx/types/reports/__init__.py +1 -0
  174. telnyx/types/reports/mdr_usage_report_list_response.py +3 -12
  175. telnyx/types/reports/pagination_meta_reporting.py +17 -0
  176. telnyx/types/requirement_group.py +2 -2
  177. telnyx/types/requirement_group_list_params.py +1 -1
  178. telnyx/types/shared/__init__.py +1 -0
  179. telnyx/types/{error.py → shared/api_error.py} +3 -3
  180. telnyx/types/stream_bidirectional_sampling_rate.py +7 -0
  181. telnyx/types/streaming_failed_webhook_event1.py +70 -0
  182. telnyx/types/streaming_started_webhook_event1.py +53 -0
  183. telnyx/types/streaming_stopped_webhook_event1.py +53 -0
  184. telnyx/types/texml/accounts/call_calls_params.py +16 -1
  185. telnyx/types/texml/accounts/conferences/participant_participants_params.py +16 -1
  186. telnyx/types/transcription_webhook_event1.py +72 -0
  187. telnyx/types/unsafe_unwrap_webhook_event.py +138 -0
  188. telnyx/types/verifications/__init__.py +1 -0
  189. telnyx/types/verifications/by_phone_number_list_response.py +4 -13
  190. telnyx/types/verifications/verify_meta.py +17 -0
  191. telnyx/types/verified_number_create_params.py +10 -0
  192. telnyx/types/verify_profile.py +18 -3
  193. telnyx/types/verify_profile_list_response.py +4 -13
  194. telnyx/types/{verify_profile_create_template_response.py → verify_profile_message_template_response.py} +2 -6
  195. telnyx/types/verify_profile_retrieve_templates_response.py +4 -9
  196. {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/METADATA +4 -4
  197. {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/RECORD +199 -125
  198. telnyx/types/ai/assistant_create_response.py +0 -92
  199. telnyx/types/ai/assistant_retrieve_response.py +0 -92
  200. telnyx/types/ai/assistants/version_promote_response.py +0 -92
  201. telnyx/types/ai/assistants/version_retrieve_response.py +0 -92
  202. telnyx/types/ai/assistants/version_update_response.py +0 -92
  203. telnyx/types/client_create_bucket_params.py +0 -13
  204. telnyx/types/client_delete_objects_params.py +0 -20
  205. telnyx/types/client_get_object_params.py +0 -15
  206. telnyx/types/client_list_objects_params.py +0 -13
  207. telnyx/types/client_put_object_params.py +0 -20
  208. telnyx/types/list_buckets_response.py +0 -20
  209. telnyx/types/list_objects_response.py +0 -24
  210. telnyx/types/verify_profile_update_template_response.py +0 -17
  211. {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/WHEEL +0 -0
  212. {telnyx-3.6.0a0.dist-info → telnyx-3.7.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,33 +1,12 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import List, Optional
4
- from datetime import datetime
5
- from typing_extensions import Literal
3
+ from typing import Optional
6
4
 
7
5
  from .._models import BaseModel
6
+ from .oauth_grant import OAuthGrant
8
7
 
9
- __all__ = ["OAuthGrantDeleteResponse", "Data"]
10
-
11
-
12
- class Data(BaseModel):
13
- id: str
14
- """Unique identifier for the OAuth grant"""
15
-
16
- client_id: str
17
- """OAuth client identifier"""
18
-
19
- created_at: datetime
20
- """Timestamp when the grant was created"""
21
-
22
- record_type: Literal["oauth_grant"]
23
- """Record type identifier"""
24
-
25
- scopes: List[str]
26
- """List of granted OAuth scopes"""
27
-
28
- last_used_at: Optional[datetime] = None
29
- """Timestamp when the grant was last used"""
8
+ __all__ = ["OAuthGrantDeleteResponse"]
30
9
 
31
10
 
32
11
  class OAuthGrantDeleteResponse(BaseModel):
33
- data: Optional[Data] = None
12
+ data: Optional[OAuthGrant] = None
@@ -1,49 +1,15 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  from typing import List, Optional
4
- from datetime import datetime
5
- from typing_extensions import Literal
6
4
 
7
5
  from .._models import BaseModel
6
+ from .oauth_grant import OAuthGrant
7
+ from .pagination_meta_oauth import PaginationMetaOAuth
8
8
 
9
- __all__ = ["OAuthGrantListResponse", "Data", "Meta"]
10
-
11
-
12
- class Data(BaseModel):
13
- id: str
14
- """Unique identifier for the OAuth grant"""
15
-
16
- client_id: str
17
- """OAuth client identifier"""
18
-
19
- created_at: datetime
20
- """Timestamp when the grant was created"""
21
-
22
- record_type: Literal["oauth_grant"]
23
- """Record type identifier"""
24
-
25
- scopes: List[str]
26
- """List of granted OAuth scopes"""
27
-
28
- last_used_at: Optional[datetime] = None
29
- """Timestamp when the grant was last used"""
30
-
31
-
32
- class Meta(BaseModel):
33
- page_number: Optional[int] = None
34
- """Current page number"""
35
-
36
- page_size: Optional[int] = None
37
- """Number of items per page"""
38
-
39
- total_pages: Optional[int] = None
40
- """Total number of pages"""
41
-
42
- total_results: Optional[int] = None
43
- """Total number of results"""
9
+ __all__ = ["OAuthGrantListResponse"]
44
10
 
45
11
 
46
12
  class OAuthGrantListResponse(BaseModel):
47
- data: Optional[List[Data]] = None
13
+ data: Optional[List[OAuthGrant]] = None
48
14
 
49
- meta: Optional[Meta] = None
15
+ meta: Optional[PaginationMetaOAuth] = None
@@ -1,33 +1,12 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import List, Optional
4
- from datetime import datetime
5
- from typing_extensions import Literal
3
+ from typing import Optional
6
4
 
7
5
  from .._models import BaseModel
6
+ from .oauth_grant import OAuthGrant
8
7
 
9
- __all__ = ["OAuthGrantRetrieveResponse", "Data"]
10
-
11
-
12
- class Data(BaseModel):
13
- id: str
14
- """Unique identifier for the OAuth grant"""
15
-
16
- client_id: str
17
- """OAuth client identifier"""
18
-
19
- created_at: datetime
20
- """Timestamp when the grant was created"""
21
-
22
- record_type: Literal["oauth_grant"]
23
- """Record type identifier"""
24
-
25
- scopes: List[str]
26
- """List of granted OAuth scopes"""
27
-
28
- last_used_at: Optional[datetime] = None
29
- """Timestamp when the grant was last used"""
8
+ __all__ = ["OAuthGrantRetrieveResponse"]
30
9
 
31
10
 
32
11
  class OAuthGrantRetrieveResponse(BaseModel):
33
- data: Optional[Data] = None
12
+ data: Optional[OAuthGrant] = None
@@ -8,7 +8,27 @@ from .traffic_type import TrafficType
8
8
  from .usage_payment_method import UsagePaymentMethod
9
9
  from .outbound_call_recording import OutboundCallRecording
10
10
 
11
- __all__ = ["OutboundVoiceProfile"]
11
+ __all__ = ["OutboundVoiceProfile", "CallingWindow"]
12
+
13
+
14
+ class CallingWindow(BaseModel):
15
+ calls_per_cld: Optional[int] = None
16
+ """
17
+ (BETA) The maximum number of calls that can be initiated to a single called
18
+ party (CLD) within the calling window. A null value means no limit.
19
+ """
20
+
21
+ end_time: Optional[str] = None
22
+ """
23
+ (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are no
24
+ longer allowed to start.
25
+ """
26
+
27
+ start_time: Optional[str] = None
28
+ """
29
+ (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are
30
+ allowed to start.
31
+ """
12
32
 
13
33
 
14
34
  class OutboundVoiceProfile(BaseModel):
@@ -26,6 +46,12 @@ class OutboundVoiceProfile(BaseModel):
26
46
 
27
47
  call_recording: Optional[OutboundCallRecording] = None
28
48
 
49
+ calling_window: Optional[CallingWindow] = None
50
+ """
51
+ (BETA) Specifies the time window and call limits for calls made using this
52
+ outbound voice profile. Note that all times are UTC in 24-hour clock time.
53
+ """
54
+
29
55
  concurrent_call_limit: Optional[int] = None
30
56
  """Must be no more than your global concurrent call limit. Null means no limit."""
31
57
 
@@ -11,7 +11,7 @@ from .traffic_type import TrafficType
11
11
  from .usage_payment_method import UsagePaymentMethod
12
12
  from .outbound_call_recording_param import OutboundCallRecordingParam
13
13
 
14
- __all__ = ["OutboundVoiceProfileCreateParams"]
14
+ __all__ = ["OutboundVoiceProfileCreateParams", "CallingWindow"]
15
15
 
16
16
 
17
17
  class OutboundVoiceProfileCreateParams(TypedDict, total=False):
@@ -26,6 +26,12 @@ class OutboundVoiceProfileCreateParams(TypedDict, total=False):
26
26
 
27
27
  call_recording: OutboundCallRecordingParam
28
28
 
29
+ calling_window: CallingWindow
30
+ """
31
+ (BETA) Specifies the time window and call limits for calls made using this
32
+ outbound voice profile. Note that all times are UTC in 24-hour clock time.
33
+ """
34
+
29
35
  concurrent_call_limit: Optional[int]
30
36
  """Must be no more than your global concurrent call limit. Null means no limit."""
31
37
 
@@ -70,3 +76,23 @@ class OutboundVoiceProfileCreateParams(TypedDict, total=False):
70
76
  The list of destinations you want to be able to call using this outbound voice
71
77
  profile formatted in alpha2.
72
78
  """
79
+
80
+
81
+ class CallingWindow(TypedDict, total=False):
82
+ calls_per_cld: int
83
+ """
84
+ (BETA) The maximum number of calls that can be initiated to a single called
85
+ party (CLD) within the calling window. A null value means no limit.
86
+ """
87
+
88
+ end_time: str
89
+ """
90
+ (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are no
91
+ longer allowed to start.
92
+ """
93
+
94
+ start_time: str
95
+ """
96
+ (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are
97
+ allowed to start.
98
+ """
@@ -17,7 +17,7 @@ class OutboundVoiceProfileListParams(TypedDict, total=False):
17
17
  page: Page
18
18
  """Consolidated page parameter (deepObject style).
19
19
 
20
- Originally: page[number], page[size]
20
+ Originally: page[size], page[number]
21
21
  """
22
22
 
23
23
  sort: Literal[
@@ -11,7 +11,7 @@ from .traffic_type import TrafficType
11
11
  from .usage_payment_method import UsagePaymentMethod
12
12
  from .outbound_call_recording_param import OutboundCallRecordingParam
13
13
 
14
- __all__ = ["OutboundVoiceProfileUpdateParams"]
14
+ __all__ = ["OutboundVoiceProfileUpdateParams", "CallingWindow"]
15
15
 
16
16
 
17
17
  class OutboundVoiceProfileUpdateParams(TypedDict, total=False):
@@ -26,6 +26,12 @@ class OutboundVoiceProfileUpdateParams(TypedDict, total=False):
26
26
 
27
27
  call_recording: OutboundCallRecordingParam
28
28
 
29
+ calling_window: CallingWindow
30
+ """
31
+ (BETA) Specifies the time window and call limits for calls made using this
32
+ outbound voice profile.
33
+ """
34
+
29
35
  concurrent_call_limit: Optional[int]
30
36
  """Must be no more than your global concurrent call limit. Null means no limit."""
31
37
 
@@ -70,3 +76,23 @@ class OutboundVoiceProfileUpdateParams(TypedDict, total=False):
70
76
  The list of destinations you want to be able to call using this outbound voice
71
77
  profile formatted in alpha2.
72
78
  """
79
+
80
+
81
+ class CallingWindow(TypedDict, total=False):
82
+ calls_per_cld: int
83
+ """
84
+ (BETA) The maximum number of calls that can be initiated to a single called
85
+ party (CLD) within the calling window. A null value means no limit.
86
+ """
87
+
88
+ end_time: str
89
+ """
90
+ (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are no
91
+ longer allowed to start.
92
+ """
93
+
94
+ start_time: str
95
+ """
96
+ (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are
97
+ allowed to start.
98
+ """
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .._models import BaseModel
4
+
5
+ __all__ = ["PaginationMetaCloudflareIPListSync"]
6
+
7
+
8
+ class PaginationMetaCloudflareIPListSync(BaseModel):
9
+ page_number: int
10
+
11
+ page_size: int
12
+
13
+ total_pages: int
14
+
15
+ total_results: int
@@ -0,0 +1,21 @@
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__ = ["PaginationMetaOAuth"]
8
+
9
+
10
+ class PaginationMetaOAuth(BaseModel):
11
+ page_number: Optional[int] = None
12
+ """Current page number"""
13
+
14
+ page_size: Optional[int] = None
15
+ """Number of items per page"""
16
+
17
+ total_pages: Optional[int] = None
18
+ """Total number of pages"""
19
+
20
+ total_results: Optional[int] = None
21
+ """Total number of results"""
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from .job import Job as Job
6
+ from .job_error import JobError as JobError
6
7
  from .job_list_params import JobListParams as JobListParams
7
8
  from .job_list_response import JobListResponse as JobListResponse
8
9
  from .job_retrieve_response import JobRetrieveResponse as JobRetrieveResponse
@@ -5,47 +5,16 @@ from datetime import datetime
5
5
  from typing_extensions import Literal
6
6
 
7
7
  from ..._models import BaseModel
8
+ from .job_error import JobError
8
9
 
9
- __all__ = [
10
- "Job",
11
- "FailedOperation",
12
- "FailedOperationError",
13
- "FailedOperationErrorMeta",
14
- "FailedOperationErrorSource",
15
- "SuccessfulOperation",
16
- ]
17
-
18
-
19
- class FailedOperationErrorMeta(BaseModel):
20
- url: Optional[str] = None
21
- """URL with additional information on the error."""
22
-
23
-
24
- class FailedOperationErrorSource(BaseModel):
25
- parameter: Optional[str] = None
26
- """Indicates which query parameter caused the error."""
27
-
28
- pointer: Optional[str] = None
29
- """JSON pointer (RFC6901) to the offending entity."""
30
-
31
-
32
- class FailedOperationError(BaseModel):
33
- code: str
34
-
35
- title: str
36
-
37
- detail: Optional[str] = None
38
-
39
- meta: Optional[FailedOperationErrorMeta] = None
40
-
41
- source: Optional[FailedOperationErrorSource] = None
10
+ __all__ = ["Job", "FailedOperation", "SuccessfulOperation"]
42
11
 
43
12
 
44
13
  class FailedOperation(BaseModel):
45
14
  id: Optional[str] = None
46
15
  """The phone number's ID"""
47
16
 
48
- errors: Optional[List[FailedOperationError]] = None
17
+ errors: Optional[List[JobError]] = None
49
18
 
50
19
  phone_number: Optional[str] = None
51
20
  """The phone number in e164 format."""
@@ -0,0 +1,32 @@
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__ = ["JobError", "Meta", "Source"]
8
+
9
+
10
+ class Meta(BaseModel):
11
+ url: Optional[str] = None
12
+ """URL with additional information on the error."""
13
+
14
+
15
+ class Source(BaseModel):
16
+ parameter: Optional[str] = None
17
+ """Indicates which query parameter caused the error."""
18
+
19
+ pointer: Optional[str] = None
20
+ """JSON pointer (RFC6901) to the offending entity."""
21
+
22
+
23
+ class JobError(BaseModel):
24
+ code: str
25
+
26
+ title: str
27
+
28
+ detail: Optional[str] = None
29
+
30
+ meta: Optional[Meta] = None
31
+
32
+ source: Optional[Source] = None
@@ -5,49 +5,16 @@ from datetime import datetime
5
5
  from typing_extensions import Literal
6
6
 
7
7
  from ..._models import BaseModel
8
+ from ..phone_number_blocks.job_error import JobError
8
9
 
9
- __all__ = [
10
- "PhoneNumbersJob",
11
- "FailedOperation",
12
- "FailedOperationError",
13
- "FailedOperationErrorMeta",
14
- "FailedOperationErrorSource",
15
- "PendingOperation",
16
- "PhoneNumber",
17
- "SuccessfulOperation",
18
- ]
19
-
20
-
21
- class FailedOperationErrorMeta(BaseModel):
22
- url: Optional[str] = None
23
- """URL with additional information on the error."""
24
-
25
-
26
- class FailedOperationErrorSource(BaseModel):
27
- parameter: Optional[str] = None
28
- """Indicates which query parameter caused the error."""
29
-
30
- pointer: Optional[str] = None
31
- """JSON pointer (RFC6901) to the offending entity."""
32
-
33
-
34
- class FailedOperationError(BaseModel):
35
- code: str
36
-
37
- title: str
38
-
39
- detail: Optional[str] = None
40
-
41
- meta: Optional[FailedOperationErrorMeta] = None
42
-
43
- source: Optional[FailedOperationErrorSource] = None
10
+ __all__ = ["PhoneNumbersJob", "FailedOperation", "PendingOperation", "PhoneNumber", "SuccessfulOperation"]
44
11
 
45
12
 
46
13
  class FailedOperation(BaseModel):
47
14
  id: Optional[str] = None
48
15
  """The phone number's ID"""
49
16
 
50
- errors: Optional[List[FailedOperationError]] = None
17
+ errors: Optional[List[JobError]] = None
51
18
 
52
19
  phone_number: Optional[str] = None
53
20
  """The phone number in e164 format."""
@@ -0,0 +1,32 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["ReplacedLinkClickWebhookEvent", "Data"]
9
+
10
+
11
+ class Data(BaseModel):
12
+ message_id: Optional[str] = None
13
+ """The message ID associated with the clicked link."""
14
+
15
+ record_type: Optional[str] = None
16
+ """Identifies the type of the resource."""
17
+
18
+ time_clicked: Optional[datetime] = None
19
+ """ISO 8601 formatted date indicating when the message request was received."""
20
+
21
+ to: Optional[str] = None
22
+ """
23
+ Sending address (+E.164 formatted phone number, alphanumeric sender ID, or short
24
+ code).
25
+ """
26
+
27
+ url: Optional[str] = None
28
+ """The original link that was sent in the message."""
29
+
30
+
31
+ class ReplacedLinkClickWebhookEvent(BaseModel):
32
+ data: Optional[Data] = None
@@ -5,8 +5,9 @@ from datetime import datetime
5
5
  from typing_extensions import Literal
6
6
 
7
7
  from .._models import BaseModel
8
+ from .reports.pagination_meta_reporting import PaginationMetaReporting
8
9
 
9
- __all__ = ["ReportListMdrsResponse", "Data", "Meta"]
10
+ __all__ = ["ReportListMdrsResponse", "Data"]
10
11
 
11
12
 
12
13
  class Data(BaseModel):
@@ -58,17 +59,7 @@ class Data(BaseModel):
58
59
  """Message status"""
59
60
 
60
61
 
61
- class Meta(BaseModel):
62
- page_number: Optional[int] = None
63
-
64
- page_size: Optional[int] = None
65
-
66
- total_pages: Optional[int] = None
67
-
68
- total_results: Optional[int] = None
69
-
70
-
71
62
  class ReportListMdrsResponse(BaseModel):
72
63
  data: Optional[List[Data]] = None
73
64
 
74
- meta: Optional[Meta] = None
65
+ meta: Optional[PaginationMetaReporting] = None
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from .mdr_usage_report import MdrUsageReport as MdrUsageReport
6
+ from .pagination_meta_reporting import PaginationMetaReporting as PaginationMetaReporting
6
7
  from .mdr_usage_report_list_params import MdrUsageReportListParams as MdrUsageReportListParams
7
8
  from .mdr_usage_report_create_params import MdrUsageReportCreateParams as MdrUsageReportCreateParams
8
9
  from .mdr_usage_report_list_response import MdrUsageReportListResponse as MdrUsageReportListResponse
@@ -4,21 +4,12 @@ from typing import List, Optional
4
4
 
5
5
  from ..._models import BaseModel
6
6
  from .mdr_usage_report import MdrUsageReport
7
+ from .pagination_meta_reporting import PaginationMetaReporting
7
8
 
8
- __all__ = ["MdrUsageReportListResponse", "Meta"]
9
-
10
-
11
- class Meta(BaseModel):
12
- page_number: Optional[int] = None
13
-
14
- page_size: Optional[int] = None
15
-
16
- total_pages: Optional[int] = None
17
-
18
- total_results: Optional[int] = None
9
+ __all__ = ["MdrUsageReportListResponse"]
19
10
 
20
11
 
21
12
  class MdrUsageReportListResponse(BaseModel):
22
13
  data: Optional[List[MdrUsageReport]] = None
23
14
 
24
- meta: Optional[Meta] = None
15
+ meta: Optional[PaginationMetaReporting] = None
@@ -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__ = ["PaginationMetaReporting"]
8
+
9
+
10
+ class PaginationMetaReporting(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
@@ -20,7 +20,7 @@ class RegulatoryRequirement(BaseModel):
20
20
 
21
21
  requirement_id: Optional[str] = None
22
22
 
23
- status: Optional[Literal["approved", "unapproved", "pending-approval", "declined"]] = None
23
+ status: Optional[Literal["approved", "unapproved", "pending-approval", "declined", "expired"]] = None
24
24
 
25
25
  updated_at: Optional[datetime] = None
26
26
 
@@ -42,6 +42,6 @@ class RequirementGroup(BaseModel):
42
42
 
43
43
  regulatory_requirements: Optional[List[RegulatoryRequirement]] = None
44
44
 
45
- status: Optional[Literal["approved", "unapproved", "pending-approval", "declined"]] = None
45
+ status: Optional[Literal["approved", "unapproved", "pending-approval", "declined", "expired"]] = None
46
46
 
47
47
  updated_at: Optional[datetime] = None
@@ -29,5 +29,5 @@ class Filter(TypedDict, total=False):
29
29
  phone_number_type: Literal["local", "toll_free", "mobile", "national", "shared_cost"]
30
30
  """Filter requirement groups by phone number type."""
31
31
 
32
- status: Literal["approved", "unapproved", "pending-approval", "declined"]
32
+ status: Literal["approved", "unapproved", "pending-approval", "declined", "expired"]
33
33
  """Filter requirement groups by status"""
@@ -1,6 +1,7 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  from .metadata import Metadata as Metadata
4
+ from .api_error import APIError as APIError
4
5
  from .short_code import ShortCode as ShortCode
5
6
  from .hosted_number import HostedNumber as HostedNumber
6
7
  from .sim_card_status import SimCardStatus as SimCardStatus
@@ -2,9 +2,9 @@
2
2
 
3
3
  from typing import Dict, Optional
4
4
 
5
- from .._models import BaseModel
5
+ from ..._models import BaseModel
6
6
 
7
- __all__ = ["Error", "Source"]
7
+ __all__ = ["APIError", "Source"]
8
8
 
9
9
 
10
10
  class Source(BaseModel):
@@ -15,7 +15,7 @@ class Source(BaseModel):
15
15
  """JSON pointer (RFC6901) to the offending entity."""
16
16
 
17
17
 
18
- class Error(BaseModel):
18
+ class APIError(BaseModel):
19
19
  code: str
20
20
 
21
21
  title: str
@@ -0,0 +1,7 @@
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__ = ["StreamBidirectionalSamplingRate"]
6
+
7
+ StreamBidirectionalSamplingRate: TypeAlias = Literal[8000, 16000, 22050, 24000, 48000]