telnyx 3.7.0a0__py3-none-any.whl → 3.8.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 (214) hide show
  1. telnyx/__init__.py +2 -0
  2. telnyx/_client.py +25 -756
  3. telnyx/_exceptions.py +4 -0
  4. telnyx/_version.py +1 -1
  5. telnyx/resources/advanced_orders.py +63 -63
  6. telnyx/resources/ai/assistants/assistants.py +15 -17
  7. telnyx/resources/ai/assistants/versions.py +13 -15
  8. telnyx/resources/brand/brand.py +8 -4
  9. telnyx/resources/calls/actions.py +10 -6
  10. telnyx/resources/calls/calls.py +16 -2
  11. telnyx/resources/documents.py +242 -37
  12. telnyx/resources/legacy/reporting/batch_detail_records/messaging.py +3 -2
  13. telnyx/resources/legacy/reporting/batch_detail_records/voice.py +3 -2
  14. telnyx/resources/messaging_profiles/messaging_profiles.py +16 -0
  15. telnyx/resources/messaging_tollfree/verification/requests.py +203 -1
  16. telnyx/resources/outbound_voice_profiles.py +24 -4
  17. telnyx/resources/sim_cards/actions.py +12 -12
  18. telnyx/resources/texml/accounts/calls/calls.py +11 -0
  19. telnyx/resources/texml/accounts/conferences/participants.py +11 -0
  20. telnyx/resources/verified_numbers/verified_numbers.py +25 -4
  21. telnyx/resources/verify_profiles.py +9 -10
  22. telnyx/resources/webhooks.py +57 -3
  23. telnyx/types/__init__.py +18 -15
  24. telnyx/types/access_ip_address_list_response.py +3 -12
  25. telnyx/types/access_ip_range_list_response.py +3 -12
  26. telnyx/types/addresses/action_validate_response.py +7 -2
  27. telnyx/types/{advanced_order_update_params.py → advanced_order_update_requirement_group_params.py} +2 -2
  28. telnyx/types/ai/__init__.py +1 -3
  29. telnyx/types/ai/assistant_import_params.py +1 -1
  30. telnyx/types/ai/assistants/__init__.py +0 -3
  31. telnyx/types/ai/assistants_list.py +4 -88
  32. telnyx/types/ai/import_metadata.py +1 -1
  33. telnyx/types/ai/{assistant_clone_response.py → inference_embedding.py} +2 -2
  34. telnyx/types/ai/inference_embedding_transfer_tool_params.py +6 -0
  35. telnyx/types/ai/inference_embedding_transfer_tool_params_param.py +6 -0
  36. telnyx/types/ai/voice_settings.py +49 -2
  37. telnyx/types/ai/voice_settings_param.py +49 -2
  38. telnyx/types/brand_create_params.py +2 -1
  39. telnyx/types/brand_update_params.py +2 -1
  40. telnyx/types/call_ai_gather_ended_webhook_event1.py +78 -0
  41. telnyx/types/call_ai_gather_message_history_updated_webhook_event1.py +69 -0
  42. telnyx/types/call_ai_gather_partial_results_webhook_event1.py +75 -0
  43. telnyx/types/call_answered_webhook_event1.py +75 -0
  44. telnyx/types/call_bridged_webhook_event1.py +58 -0
  45. telnyx/types/call_conversation_ended_webhook_event1.py +84 -0
  46. telnyx/types/call_conversation_insights_generated_webhook_event1.py +67 -0
  47. telnyx/types/call_dial_params.py +10 -1
  48. telnyx/types/call_dtmf_received_webhook_event1.py +61 -0
  49. telnyx/types/call_enqueued_webhook_event1.py +59 -0
  50. telnyx/types/call_fork_started_webhook_event1.py +53 -0
  51. telnyx/types/call_fork_stopped_webhook_event1.py +53 -0
  52. telnyx/types/call_gather_ended_webhook_event1.py +64 -0
  53. telnyx/types/call_hangup_webhook_event1.py +150 -0
  54. telnyx/types/call_initiated_webhook_event1.py +96 -0
  55. telnyx/types/call_left_queue_webhook_event1.py +62 -0
  56. telnyx/types/call_machine_detection_ended_webhook_event1.py +61 -0
  57. telnyx/types/call_machine_greeting_ended_webhook_event1.py +61 -0
  58. telnyx/types/call_machine_premium_detection_ended_webhook_event1.py +63 -0
  59. telnyx/types/call_machine_premium_greeting_ended_webhook_event1.py +61 -0
  60. telnyx/types/call_playback_ended_webhook_event1.py +70 -0
  61. telnyx/types/call_playback_started_webhook_event1.py +62 -0
  62. telnyx/types/call_recording_error_webhook_event1.py +60 -0
  63. telnyx/types/call_recording_saved_webhook_event1.py +94 -0
  64. telnyx/types/call_recording_transcription_saved_webhook_event1.py +71 -0
  65. telnyx/types/call_refer_completed_webhook_event1.py +61 -0
  66. telnyx/types/call_refer_failed_webhook_event1.py +61 -0
  67. telnyx/types/call_refer_started_webhook_event1.py +61 -0
  68. telnyx/types/call_siprec_failed_webhook_event1.py +53 -0
  69. telnyx/types/call_siprec_started_webhook_event1.py +50 -0
  70. telnyx/types/call_siprec_stopped_webhook_event1.py +53 -0
  71. telnyx/types/call_speak_ended_webhook_event1.py +53 -0
  72. telnyx/types/call_speak_started_webhook_event1.py +50 -0
  73. telnyx/types/call_streaming_failed_webhook_event1.py +70 -0
  74. telnyx/types/call_streaming_started_webhook_event1.py +53 -0
  75. telnyx/types/call_streaming_stopped_webhook_event1.py +53 -0
  76. telnyx/types/calls/__init__.py +1 -0
  77. telnyx/types/calls/action_start_streaming_params.py +2 -1
  78. telnyx/types/calls/action_start_transcription_params.py +160 -6
  79. telnyx/types/calls/telnyx_transcription_language.py +108 -0
  80. telnyx/types/calls/transcription_engine_b_config_param.py +3 -102
  81. telnyx/types/calls/transcription_start_request_param.py +161 -6
  82. telnyx/types/campaign_status_update_webhook_event1.py +26 -0
  83. telnyx/types/conference_created_webhook_event1.py +53 -0
  84. telnyx/types/conference_ended_webhook_event1.py +56 -0
  85. telnyx/types/conference_floor_changed_webhook_event1.py +45 -0
  86. telnyx/types/conference_participant_joined_webhook_event1.py +53 -0
  87. telnyx/types/conference_participant_left_webhook_event1.py +53 -0
  88. telnyx/types/conference_participant_playback_ended_webhook_event1.py +65 -0
  89. telnyx/types/conference_participant_playback_started_webhook_event1.py +65 -0
  90. telnyx/types/conference_participant_speak_ended_webhook_event1.py +56 -0
  91. telnyx/types/conference_participant_speak_started_webhook_event1.py +56 -0
  92. telnyx/types/conference_playback_ended_webhook_event1.py +49 -0
  93. telnyx/types/conference_playback_started_webhook_event1.py +49 -0
  94. telnyx/types/conference_recording_saved_webhook_event1.py +103 -0
  95. telnyx/types/conference_speak_ended_webhook_event1.py +40 -0
  96. telnyx/types/conference_speak_started_webhook_event1.py +40 -0
  97. telnyx/types/country_coverage_retrieve_country_response.py +7 -0
  98. telnyx/types/country_coverage_retrieve_response.py +7 -0
  99. telnyx/types/customer_service_record_status_changed_webhook_event1.py +55 -0
  100. telnyx/types/delivery_update_webhook_event1.py +40 -0
  101. telnyx/types/document_upload_json_params.py +39 -0
  102. telnyx/types/document_upload_json_response.py +12 -0
  103. telnyx/types/fax_delivered_webhook_event1.py +69 -0
  104. telnyx/types/fax_failed_webhook_event1.py +66 -0
  105. telnyx/types/fax_media_processed_webhook_event1.py +63 -0
  106. telnyx/types/fax_queued_webhook_event1.py +63 -0
  107. telnyx/types/fax_sending_started_webhook_event1.py +63 -0
  108. telnyx/types/inbound_message_webhook_event1.py +227 -0
  109. telnyx/types/legacy/reporting/__init__.py +2 -0
  110. telnyx/types/legacy/reporting/batch_detail_records/__init__.py +4 -0
  111. telnyx/types/legacy/reporting/batch_detail_records/batch_csv_pagination_meta.py +17 -0
  112. telnyx/types/legacy/reporting/batch_detail_records/cdr_detailed_req_response.py +63 -0
  113. telnyx/types/legacy/reporting/batch_detail_records/mdr_detail_report_response.py +42 -0
  114. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_params.py +4 -26
  115. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_response.py +4 -60
  116. telnyx/types/legacy/reporting/batch_detail_records/messaging_delete_response.py +4 -60
  117. telnyx/types/legacy/reporting/batch_detail_records/messaging_list_response.py +5 -70
  118. telnyx/types/legacy/reporting/batch_detail_records/messaging_retrieve_response.py +4 -60
  119. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_response.py +3 -22
  120. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_delete_response.py +3 -22
  121. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_list_response.py +3 -22
  122. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_retrieve_response.py +3 -22
  123. telnyx/types/legacy/reporting/batch_detail_records/stt_detail_report_response.py +27 -0
  124. telnyx/types/legacy/reporting/batch_detail_records/voice_create_params.py +4 -26
  125. telnyx/types/legacy/reporting/batch_detail_records/voice_create_response.py +4 -82
  126. telnyx/types/legacy/reporting/batch_detail_records/voice_delete_response.py +4 -82
  127. telnyx/types/legacy/reporting/batch_detail_records/voice_list_response.py +5 -92
  128. telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_response.py +4 -82
  129. telnyx/types/legacy/reporting/filter.py +31 -0
  130. telnyx/types/legacy/reporting/filter_param.py +30 -0
  131. telnyx/types/legacy/reporting/usage_reports/__init__.py +3 -0
  132. telnyx/types/legacy/reporting/usage_reports/cdr_usage_report_response_legacy.py +43 -0
  133. telnyx/types/legacy/reporting/usage_reports/mdr_usage_report_response_legacy.py +38 -0
  134. telnyx/types/legacy/reporting/usage_reports/messaging_create_response.py +4 -34
  135. telnyx/types/legacy/reporting/usage_reports/messaging_delete_response.py +4 -34
  136. telnyx/types/legacy/reporting/usage_reports/messaging_list_response.py +5 -44
  137. telnyx/types/legacy/reporting/usage_reports/messaging_retrieve_response.py +4 -34
  138. telnyx/types/legacy/reporting/usage_reports/standard_pagination_meta.py +17 -0
  139. telnyx/types/legacy/reporting/usage_reports/voice_create_response.py +4 -39
  140. telnyx/types/legacy/reporting/usage_reports/voice_delete_response.py +4 -39
  141. telnyx/types/legacy/reporting/usage_reports/voice_list_response.py +5 -49
  142. telnyx/types/legacy/reporting/usage_reports/voice_retrieve_response.py +4 -39
  143. telnyx/types/message_template.py +12 -0
  144. telnyx/types/messaging_profile.py +3 -0
  145. telnyx/types/messaging_profile_create_params.py +3 -0
  146. telnyx/types/messaging_profile_update_params.py +3 -0
  147. telnyx/types/messaging_tollfree/verification/__init__.py +1 -0
  148. telnyx/types/messaging_tollfree/verification/request_create_params.py +51 -1
  149. telnyx/types/messaging_tollfree/verification/request_update_params.py +51 -1
  150. telnyx/types/messaging_tollfree/verification/toll_free_verification_entity_type.py +9 -0
  151. telnyx/types/messaging_tollfree/verification/verification_request_egress.py +24 -0
  152. telnyx/types/messaging_tollfree/verification/verification_request_status.py +24 -0
  153. telnyx/types/number_order_status_update_webhook_event1.py +38 -0
  154. telnyx/types/oauth_client.py +59 -0
  155. telnyx/types/oauth_client_create_response.py +4 -55
  156. telnyx/types/oauth_client_list_response.py +5 -69
  157. telnyx/types/oauth_client_retrieve_response.py +4 -55
  158. telnyx/types/oauth_client_update_response.py +4 -55
  159. telnyx/types/oauth_grant.py +29 -0
  160. telnyx/types/oauth_grant_delete_response.py +4 -25
  161. telnyx/types/oauth_grant_list_response.py +5 -39
  162. telnyx/types/oauth_grant_retrieve_response.py +4 -25
  163. telnyx/types/outbound_voice_profile.py +27 -1
  164. telnyx/types/outbound_voice_profile_create_params.py +27 -1
  165. telnyx/types/outbound_voice_profile_list_params.py +1 -1
  166. telnyx/types/outbound_voice_profile_update_params.py +27 -1
  167. telnyx/types/pagination_meta_cloudflare_ip_list_sync.py +15 -0
  168. telnyx/types/pagination_meta_oauth.py +21 -0
  169. telnyx/types/phone_number_blocks/__init__.py +1 -0
  170. telnyx/types/phone_number_blocks/job.py +3 -34
  171. telnyx/types/phone_number_blocks/job_error.py +32 -0
  172. telnyx/types/phone_numbers/phone_numbers_job.py +3 -36
  173. telnyx/types/replaced_link_click_webhook_event1.py +32 -0
  174. telnyx/types/report_list_mdrs_response.py +3 -12
  175. telnyx/types/reports/__init__.py +1 -0
  176. telnyx/types/reports/mdr_usage_report_list_response.py +3 -12
  177. telnyx/types/reports/pagination_meta_reporting.py +17 -0
  178. telnyx/types/requirement_group.py +2 -2
  179. telnyx/types/requirement_group_list_params.py +1 -1
  180. telnyx/types/shared/__init__.py +1 -0
  181. telnyx/types/{api_error.py → shared/api_error.py} +1 -1
  182. telnyx/types/stream_bidirectional_sampling_rate.py +7 -0
  183. telnyx/types/streaming_failed_webhook_event1.py +70 -0
  184. telnyx/types/streaming_started_webhook_event1.py +53 -0
  185. telnyx/types/streaming_stopped_webhook_event1.py +53 -0
  186. telnyx/types/texml/accounts/call_calls_params.py +16 -1
  187. telnyx/types/texml/accounts/conferences/participant_participants_params.py +16 -1
  188. telnyx/types/transcription_webhook_event1.py +72 -0
  189. telnyx/types/unsafe_unwrap_webhook_event.py +138 -0
  190. telnyx/types/verifications/__init__.py +1 -0
  191. telnyx/types/verifications/by_phone_number_list_response.py +4 -13
  192. telnyx/types/verifications/verify_meta.py +17 -0
  193. telnyx/types/verified_number_create_params.py +10 -0
  194. telnyx/types/verify_profile.py +18 -3
  195. telnyx/types/verify_profile_list_response.py +4 -13
  196. telnyx/types/{verify_profile_create_template_response.py → verify_profile_message_template_response.py} +2 -6
  197. telnyx/types/verify_profile_retrieve_templates_response.py +4 -9
  198. {telnyx-3.7.0a0.dist-info → telnyx-3.8.0.dist-info}/METADATA +6 -4
  199. {telnyx-3.7.0a0.dist-info → telnyx-3.8.0.dist-info}/RECORD +201 -127
  200. telnyx/types/ai/assistant_create_response.py +0 -92
  201. telnyx/types/ai/assistant_retrieve_response.py +0 -92
  202. telnyx/types/ai/assistants/version_promote_response.py +0 -92
  203. telnyx/types/ai/assistants/version_retrieve_response.py +0 -92
  204. telnyx/types/ai/assistants/version_update_response.py +0 -92
  205. telnyx/types/client_create_bucket_params.py +0 -13
  206. telnyx/types/client_delete_objects_params.py +0 -20
  207. telnyx/types/client_get_object_params.py +0 -15
  208. telnyx/types/client_list_objects_params.py +0 -13
  209. telnyx/types/client_put_object_params.py +0 -20
  210. telnyx/types/list_buckets_response.py +0 -20
  211. telnyx/types/list_objects_response.py +0 -24
  212. telnyx/types/verify_profile_update_template_response.py +0 -17
  213. {telnyx-3.7.0a0.dist-info → telnyx-3.8.0.dist-info}/WHEEL +0 -0
  214. {telnyx-3.7.0a0.dist-info → telnyx-3.8.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,79 +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_client import OAuthClient
7
+ from .pagination_meta_oauth import PaginationMetaOAuth
8
8
 
9
- __all__ = ["OAuthClientListResponse", "Data", "Meta"]
10
-
11
-
12
- class Data(BaseModel):
13
- client_id: str
14
- """OAuth client identifier"""
15
-
16
- client_type: Literal["public", "confidential"]
17
- """OAuth client type"""
18
-
19
- created_at: datetime
20
- """Timestamp when the client was created"""
21
-
22
- name: str
23
- """Human-readable name for the OAuth client"""
24
-
25
- org_id: str
26
- """Organization ID that owns this OAuth client"""
27
-
28
- record_type: Literal["oauth_client"]
29
- """Record type identifier"""
30
-
31
- require_pkce: bool
32
- """Whether PKCE (Proof Key for Code Exchange) is required for this client"""
33
-
34
- updated_at: datetime
35
- """Timestamp when the client was last updated"""
36
-
37
- user_id: str
38
- """User ID that created this OAuth client"""
39
-
40
- allowed_grant_types: Optional[List[Literal["client_credentials", "authorization_code", "refresh_token"]]] = None
41
- """List of allowed OAuth grant types"""
42
-
43
- allowed_scopes: Optional[List[str]] = None
44
- """List of allowed OAuth scopes"""
45
-
46
- client_secret: Optional[str] = None
47
- """Client secret (only included when available, for confidential clients)"""
48
-
49
- logo_uri: Optional[str] = None
50
- """URL of the client logo"""
51
-
52
- policy_uri: Optional[str] = None
53
- """URL of the client's privacy policy"""
54
-
55
- redirect_uris: Optional[List[str]] = None
56
- """List of allowed redirect URIs"""
57
-
58
- tos_uri: Optional[str] = None
59
- """URL of the client's terms of service"""
60
-
61
-
62
- class Meta(BaseModel):
63
- page_number: Optional[int] = None
64
- """Current page number"""
65
-
66
- page_size: Optional[int] = None
67
- """Number of items per page"""
68
-
69
- total_pages: Optional[int] = None
70
- """Total number of pages"""
71
-
72
- total_results: Optional[int] = None
73
- """Total number of results"""
9
+ __all__ = ["OAuthClientListResponse"]
74
10
 
75
11
 
76
12
  class OAuthClientListResponse(BaseModel):
77
- data: Optional[List[Data]] = None
13
+ data: Optional[List[OAuthClient]] = None
78
14
 
79
- meta: Optional[Meta] = None
15
+ meta: Optional[PaginationMetaOAuth] = None
@@ -1,63 +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_client import OAuthClient
8
7
 
9
- __all__ = ["OAuthClientRetrieveResponse", "Data"]
10
-
11
-
12
- class Data(BaseModel):
13
- client_id: str
14
- """OAuth client identifier"""
15
-
16
- client_type: Literal["public", "confidential"]
17
- """OAuth client type"""
18
-
19
- created_at: datetime
20
- """Timestamp when the client was created"""
21
-
22
- name: str
23
- """Human-readable name for the OAuth client"""
24
-
25
- org_id: str
26
- """Organization ID that owns this OAuth client"""
27
-
28
- record_type: Literal["oauth_client"]
29
- """Record type identifier"""
30
-
31
- require_pkce: bool
32
- """Whether PKCE (Proof Key for Code Exchange) is required for this client"""
33
-
34
- updated_at: datetime
35
- """Timestamp when the client was last updated"""
36
-
37
- user_id: str
38
- """User ID that created this OAuth client"""
39
-
40
- allowed_grant_types: Optional[List[Literal["client_credentials", "authorization_code", "refresh_token"]]] = None
41
- """List of allowed OAuth grant types"""
42
-
43
- allowed_scopes: Optional[List[str]] = None
44
- """List of allowed OAuth scopes"""
45
-
46
- client_secret: Optional[str] = None
47
- """Client secret (only included when available, for confidential clients)"""
48
-
49
- logo_uri: Optional[str] = None
50
- """URL of the client logo"""
51
-
52
- policy_uri: Optional[str] = None
53
- """URL of the client's privacy policy"""
54
-
55
- redirect_uris: Optional[List[str]] = None
56
- """List of allowed redirect URIs"""
57
-
58
- tos_uri: Optional[str] = None
59
- """URL of the client's terms of service"""
8
+ __all__ = ["OAuthClientRetrieveResponse"]
60
9
 
61
10
 
62
11
  class OAuthClientRetrieveResponse(BaseModel):
63
- data: Optional[Data] = None
12
+ data: Optional[OAuthClient] = None
@@ -1,63 +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_client import OAuthClient
8
7
 
9
- __all__ = ["OAuthClientUpdateResponse", "Data"]
10
-
11
-
12
- class Data(BaseModel):
13
- client_id: str
14
- """OAuth client identifier"""
15
-
16
- client_type: Literal["public", "confidential"]
17
- """OAuth client type"""
18
-
19
- created_at: datetime
20
- """Timestamp when the client was created"""
21
-
22
- name: str
23
- """Human-readable name for the OAuth client"""
24
-
25
- org_id: str
26
- """Organization ID that owns this OAuth client"""
27
-
28
- record_type: Literal["oauth_client"]
29
- """Record type identifier"""
30
-
31
- require_pkce: bool
32
- """Whether PKCE (Proof Key for Code Exchange) is required for this client"""
33
-
34
- updated_at: datetime
35
- """Timestamp when the client was last updated"""
36
-
37
- user_id: str
38
- """User ID that created this OAuth client"""
39
-
40
- allowed_grant_types: Optional[List[Literal["client_credentials", "authorization_code", "refresh_token"]]] = None
41
- """List of allowed OAuth grant types"""
42
-
43
- allowed_scopes: Optional[List[str]] = None
44
- """List of allowed OAuth scopes"""
45
-
46
- client_secret: Optional[str] = None
47
- """Client secret (only included when available, for confidential clients)"""
48
-
49
- logo_uri: Optional[str] = None
50
- """URL of the client logo"""
51
-
52
- policy_uri: Optional[str] = None
53
- """URL of the client's privacy policy"""
54
-
55
- redirect_uris: Optional[List[str]] = None
56
- """List of allowed redirect URIs"""
57
-
58
- tos_uri: Optional[str] = None
59
- """URL of the client's terms of service"""
8
+ __all__ = ["OAuthClientUpdateResponse"]
60
9
 
61
10
 
62
11
  class OAuthClientUpdateResponse(BaseModel):
63
- data: Optional[Data] = None
12
+ data: Optional[OAuthClient] = None
@@ -0,0 +1,29 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["OAuthGrant"]
10
+
11
+
12
+ class OAuthGrant(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"""
@@ -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