telnyx 3.7.0a0__py3-none-any.whl → 3.9.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 (215) 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/__init__.py +3 -1
  6. telnyx/resources/advanced_orders.py +63 -63
  7. telnyx/resources/ai/assistants/assistants.py +15 -17
  8. telnyx/resources/ai/assistants/versions.py +13 -15
  9. telnyx/resources/brand/brand.py +8 -4
  10. telnyx/resources/calls/actions.py +10 -6
  11. telnyx/resources/calls/calls.py +16 -2
  12. telnyx/resources/documents.py +242 -37
  13. telnyx/resources/legacy/reporting/batch_detail_records/messaging.py +3 -2
  14. telnyx/resources/legacy/reporting/batch_detail_records/voice.py +3 -2
  15. telnyx/resources/messaging_profiles/messaging_profiles.py +16 -0
  16. telnyx/resources/messaging_tollfree/verification/requests.py +203 -1
  17. telnyx/resources/outbound_voice_profiles.py +24 -4
  18. telnyx/resources/sim_cards/actions.py +12 -12
  19. telnyx/resources/texml/accounts/calls/calls.py +11 -0
  20. telnyx/resources/texml/accounts/conferences/participants.py +11 -0
  21. telnyx/resources/verified_numbers/verified_numbers.py +25 -4
  22. telnyx/resources/verify_profiles.py +9 -10
  23. telnyx/resources/webhooks.py +152 -4
  24. telnyx/types/__init__.py +18 -15
  25. telnyx/types/access_ip_address_list_response.py +3 -12
  26. telnyx/types/access_ip_range_list_response.py +3 -12
  27. telnyx/types/addresses/action_validate_response.py +7 -2
  28. telnyx/types/{advanced_order_update_params.py → advanced_order_update_requirement_group_params.py} +2 -2
  29. telnyx/types/ai/__init__.py +1 -3
  30. telnyx/types/ai/assistant_import_params.py +1 -1
  31. telnyx/types/ai/assistants/__init__.py +0 -3
  32. telnyx/types/ai/assistants_list.py +4 -88
  33. telnyx/types/ai/import_metadata.py +1 -1
  34. telnyx/types/ai/{assistant_clone_response.py → inference_embedding.py} +2 -2
  35. telnyx/types/ai/inference_embedding_transfer_tool_params.py +6 -0
  36. telnyx/types/ai/inference_embedding_transfer_tool_params_param.py +6 -0
  37. telnyx/types/ai/voice_settings.py +49 -2
  38. telnyx/types/ai/voice_settings_param.py +49 -2
  39. telnyx/types/brand_create_params.py +2 -1
  40. telnyx/types/brand_update_params.py +2 -1
  41. telnyx/types/call_ai_gather_ended_webhook_event1.py +78 -0
  42. telnyx/types/call_ai_gather_message_history_updated_webhook_event1.py +69 -0
  43. telnyx/types/call_ai_gather_partial_results_webhook_event1.py +75 -0
  44. telnyx/types/call_answered_webhook_event1.py +75 -0
  45. telnyx/types/call_bridged_webhook_event1.py +58 -0
  46. telnyx/types/call_conversation_ended_webhook_event1.py +84 -0
  47. telnyx/types/call_conversation_insights_generated_webhook_event1.py +67 -0
  48. telnyx/types/call_dial_params.py +10 -1
  49. telnyx/types/call_dtmf_received_webhook_event1.py +61 -0
  50. telnyx/types/call_enqueued_webhook_event1.py +59 -0
  51. telnyx/types/call_fork_started_webhook_event1.py +53 -0
  52. telnyx/types/call_fork_stopped_webhook_event1.py +53 -0
  53. telnyx/types/call_gather_ended_webhook_event1.py +64 -0
  54. telnyx/types/call_hangup_webhook_event1.py +150 -0
  55. telnyx/types/call_initiated_webhook_event1.py +96 -0
  56. telnyx/types/call_left_queue_webhook_event1.py +62 -0
  57. telnyx/types/call_machine_detection_ended_webhook_event1.py +61 -0
  58. telnyx/types/call_machine_greeting_ended_webhook_event1.py +61 -0
  59. telnyx/types/call_machine_premium_detection_ended_webhook_event1.py +63 -0
  60. telnyx/types/call_machine_premium_greeting_ended_webhook_event1.py +61 -0
  61. telnyx/types/call_playback_ended_webhook_event1.py +70 -0
  62. telnyx/types/call_playback_started_webhook_event1.py +62 -0
  63. telnyx/types/call_recording_error_webhook_event1.py +60 -0
  64. telnyx/types/call_recording_saved_webhook_event1.py +94 -0
  65. telnyx/types/call_recording_transcription_saved_webhook_event1.py +71 -0
  66. telnyx/types/call_refer_completed_webhook_event1.py +61 -0
  67. telnyx/types/call_refer_failed_webhook_event1.py +61 -0
  68. telnyx/types/call_refer_started_webhook_event1.py +61 -0
  69. telnyx/types/call_siprec_failed_webhook_event1.py +53 -0
  70. telnyx/types/call_siprec_started_webhook_event1.py +50 -0
  71. telnyx/types/call_siprec_stopped_webhook_event1.py +53 -0
  72. telnyx/types/call_speak_ended_webhook_event1.py +53 -0
  73. telnyx/types/call_speak_started_webhook_event1.py +50 -0
  74. telnyx/types/call_streaming_failed_webhook_event1.py +70 -0
  75. telnyx/types/call_streaming_started_webhook_event1.py +53 -0
  76. telnyx/types/call_streaming_stopped_webhook_event1.py +53 -0
  77. telnyx/types/calls/__init__.py +1 -0
  78. telnyx/types/calls/action_start_streaming_params.py +2 -1
  79. telnyx/types/calls/action_start_transcription_params.py +160 -6
  80. telnyx/types/calls/telnyx_transcription_language.py +108 -0
  81. telnyx/types/calls/transcription_engine_b_config_param.py +3 -102
  82. telnyx/types/calls/transcription_start_request_param.py +161 -6
  83. telnyx/types/campaign_status_update_webhook_event1.py +26 -0
  84. telnyx/types/conference_created_webhook_event1.py +53 -0
  85. telnyx/types/conference_ended_webhook_event1.py +56 -0
  86. telnyx/types/conference_floor_changed_webhook_event1.py +45 -0
  87. telnyx/types/conference_participant_joined_webhook_event1.py +53 -0
  88. telnyx/types/conference_participant_left_webhook_event1.py +53 -0
  89. telnyx/types/conference_participant_playback_ended_webhook_event1.py +65 -0
  90. telnyx/types/conference_participant_playback_started_webhook_event1.py +65 -0
  91. telnyx/types/conference_participant_speak_ended_webhook_event1.py +56 -0
  92. telnyx/types/conference_participant_speak_started_webhook_event1.py +56 -0
  93. telnyx/types/conference_playback_ended_webhook_event1.py +49 -0
  94. telnyx/types/conference_playback_started_webhook_event1.py +49 -0
  95. telnyx/types/conference_recording_saved_webhook_event1.py +103 -0
  96. telnyx/types/conference_speak_ended_webhook_event1.py +40 -0
  97. telnyx/types/conference_speak_started_webhook_event1.py +40 -0
  98. telnyx/types/country_coverage_retrieve_country_response.py +7 -0
  99. telnyx/types/country_coverage_retrieve_response.py +7 -0
  100. telnyx/types/customer_service_record_status_changed_webhook_event1.py +55 -0
  101. telnyx/types/delivery_update_webhook_event1.py +40 -0
  102. telnyx/types/document_upload_json_params.py +39 -0
  103. telnyx/types/document_upload_json_response.py +12 -0
  104. telnyx/types/fax_delivered_webhook_event1.py +69 -0
  105. telnyx/types/fax_failed_webhook_event1.py +66 -0
  106. telnyx/types/fax_media_processed_webhook_event1.py +63 -0
  107. telnyx/types/fax_queued_webhook_event1.py +63 -0
  108. telnyx/types/fax_sending_started_webhook_event1.py +63 -0
  109. telnyx/types/inbound_message_webhook_event1.py +227 -0
  110. telnyx/types/legacy/reporting/__init__.py +2 -0
  111. telnyx/types/legacy/reporting/batch_detail_records/__init__.py +4 -0
  112. telnyx/types/legacy/reporting/batch_detail_records/batch_csv_pagination_meta.py +17 -0
  113. telnyx/types/legacy/reporting/batch_detail_records/cdr_detailed_req_response.py +63 -0
  114. telnyx/types/legacy/reporting/batch_detail_records/mdr_detail_report_response.py +42 -0
  115. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_params.py +4 -26
  116. telnyx/types/legacy/reporting/batch_detail_records/messaging_create_response.py +4 -60
  117. telnyx/types/legacy/reporting/batch_detail_records/messaging_delete_response.py +4 -60
  118. telnyx/types/legacy/reporting/batch_detail_records/messaging_list_response.py +5 -70
  119. telnyx/types/legacy/reporting/batch_detail_records/messaging_retrieve_response.py +4 -60
  120. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_create_response.py +3 -22
  121. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_delete_response.py +3 -22
  122. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_list_response.py +3 -22
  123. telnyx/types/legacy/reporting/batch_detail_records/speech_to_text_retrieve_response.py +3 -22
  124. telnyx/types/legacy/reporting/batch_detail_records/stt_detail_report_response.py +27 -0
  125. telnyx/types/legacy/reporting/batch_detail_records/voice_create_params.py +4 -26
  126. telnyx/types/legacy/reporting/batch_detail_records/voice_create_response.py +4 -82
  127. telnyx/types/legacy/reporting/batch_detail_records/voice_delete_response.py +4 -82
  128. telnyx/types/legacy/reporting/batch_detail_records/voice_list_response.py +5 -92
  129. telnyx/types/legacy/reporting/batch_detail_records/voice_retrieve_response.py +4 -82
  130. telnyx/types/legacy/reporting/filter.py +31 -0
  131. telnyx/types/legacy/reporting/filter_param.py +30 -0
  132. telnyx/types/legacy/reporting/usage_reports/__init__.py +3 -0
  133. telnyx/types/legacy/reporting/usage_reports/cdr_usage_report_response_legacy.py +43 -0
  134. telnyx/types/legacy/reporting/usage_reports/mdr_usage_report_response_legacy.py +38 -0
  135. telnyx/types/legacy/reporting/usage_reports/messaging_create_response.py +4 -34
  136. telnyx/types/legacy/reporting/usage_reports/messaging_delete_response.py +4 -34
  137. telnyx/types/legacy/reporting/usage_reports/messaging_list_response.py +5 -44
  138. telnyx/types/legacy/reporting/usage_reports/messaging_retrieve_response.py +4 -34
  139. telnyx/types/legacy/reporting/usage_reports/standard_pagination_meta.py +17 -0
  140. telnyx/types/legacy/reporting/usage_reports/voice_create_response.py +4 -39
  141. telnyx/types/legacy/reporting/usage_reports/voice_delete_response.py +4 -39
  142. telnyx/types/legacy/reporting/usage_reports/voice_list_response.py +5 -49
  143. telnyx/types/legacy/reporting/usage_reports/voice_retrieve_response.py +4 -39
  144. telnyx/types/message_template.py +12 -0
  145. telnyx/types/messaging_profile.py +3 -0
  146. telnyx/types/messaging_profile_create_params.py +3 -0
  147. telnyx/types/messaging_profile_update_params.py +3 -0
  148. telnyx/types/messaging_tollfree/verification/__init__.py +1 -0
  149. telnyx/types/messaging_tollfree/verification/request_create_params.py +51 -1
  150. telnyx/types/messaging_tollfree/verification/request_update_params.py +51 -1
  151. telnyx/types/messaging_tollfree/verification/toll_free_verification_entity_type.py +9 -0
  152. telnyx/types/messaging_tollfree/verification/verification_request_egress.py +24 -0
  153. telnyx/types/messaging_tollfree/verification/verification_request_status.py +24 -0
  154. telnyx/types/number_order_status_update_webhook_event1.py +38 -0
  155. telnyx/types/oauth_client.py +59 -0
  156. telnyx/types/oauth_client_create_response.py +4 -55
  157. telnyx/types/oauth_client_list_response.py +5 -69
  158. telnyx/types/oauth_client_retrieve_response.py +4 -55
  159. telnyx/types/oauth_client_update_response.py +4 -55
  160. telnyx/types/oauth_grant.py +29 -0
  161. telnyx/types/oauth_grant_delete_response.py +4 -25
  162. telnyx/types/oauth_grant_list_response.py +5 -39
  163. telnyx/types/oauth_grant_retrieve_response.py +4 -25
  164. telnyx/types/outbound_voice_profile.py +27 -1
  165. telnyx/types/outbound_voice_profile_create_params.py +27 -1
  166. telnyx/types/outbound_voice_profile_list_params.py +1 -1
  167. telnyx/types/outbound_voice_profile_update_params.py +27 -1
  168. telnyx/types/pagination_meta_cloudflare_ip_list_sync.py +15 -0
  169. telnyx/types/pagination_meta_oauth.py +21 -0
  170. telnyx/types/phone_number_blocks/__init__.py +1 -0
  171. telnyx/types/phone_number_blocks/job.py +3 -34
  172. telnyx/types/phone_number_blocks/job_error.py +32 -0
  173. telnyx/types/phone_numbers/phone_numbers_job.py +3 -36
  174. telnyx/types/replaced_link_click_webhook_event1.py +32 -0
  175. telnyx/types/report_list_mdrs_response.py +3 -12
  176. telnyx/types/reports/__init__.py +1 -0
  177. telnyx/types/reports/mdr_usage_report_list_response.py +3 -12
  178. telnyx/types/reports/pagination_meta_reporting.py +17 -0
  179. telnyx/types/requirement_group.py +2 -2
  180. telnyx/types/requirement_group_list_params.py +1 -1
  181. telnyx/types/shared/__init__.py +1 -0
  182. telnyx/types/{api_error.py → shared/api_error.py} +1 -1
  183. telnyx/types/stream_bidirectional_sampling_rate.py +7 -0
  184. telnyx/types/streaming_failed_webhook_event1.py +70 -0
  185. telnyx/types/streaming_started_webhook_event1.py +53 -0
  186. telnyx/types/streaming_stopped_webhook_event1.py +53 -0
  187. telnyx/types/texml/accounts/call_calls_params.py +16 -1
  188. telnyx/types/texml/accounts/conferences/participant_participants_params.py +16 -1
  189. telnyx/types/transcription_webhook_event1.py +72 -0
  190. telnyx/types/unsafe_unwrap_webhook_event.py +138 -0
  191. telnyx/types/verifications/__init__.py +1 -0
  192. telnyx/types/verifications/by_phone_number_list_response.py +4 -13
  193. telnyx/types/verifications/verify_meta.py +17 -0
  194. telnyx/types/verified_number_create_params.py +10 -0
  195. telnyx/types/verify_profile.py +18 -3
  196. telnyx/types/verify_profile_list_response.py +4 -13
  197. telnyx/types/{verify_profile_create_template_response.py → verify_profile_message_template_response.py} +2 -6
  198. telnyx/types/verify_profile_retrieve_templates_response.py +4 -9
  199. {telnyx-3.7.0a0.dist-info → telnyx-3.9.0.dist-info}/METADATA +9 -5
  200. {telnyx-3.7.0a0.dist-info → telnyx-3.9.0.dist-info}/RECORD +202 -128
  201. telnyx/types/ai/assistant_create_response.py +0 -92
  202. telnyx/types/ai/assistant_retrieve_response.py +0 -92
  203. telnyx/types/ai/assistants/version_promote_response.py +0 -92
  204. telnyx/types/ai/assistants/version_retrieve_response.py +0 -92
  205. telnyx/types/ai/assistants/version_update_response.py +0 -92
  206. telnyx/types/client_create_bucket_params.py +0 -13
  207. telnyx/types/client_delete_objects_params.py +0 -20
  208. telnyx/types/client_get_object_params.py +0 -15
  209. telnyx/types/client_list_objects_params.py +0 -13
  210. telnyx/types/client_put_object_params.py +0 -20
  211. telnyx/types/list_buckets_response.py +0 -20
  212. telnyx/types/list_objects_response.py +0 -24
  213. telnyx/types/verify_profile_update_template_response.py +0 -17
  214. {telnyx-3.7.0a0.dist-info → telnyx-3.9.0.dist-info}/WHEEL +0 -0
  215. {telnyx-3.7.0a0.dist-info → telnyx-3.9.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,48 +1,13 @@
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
3
+ from typing import Optional
5
4
 
6
5
  from ....._models import BaseModel
6
+ from .cdr_usage_report_response_legacy import CdrUsageReportResponseLegacy
7
7
 
8
- __all__ = ["VoiceDeleteResponse", "Data"]
9
-
10
-
11
- class Data(BaseModel):
12
- id: Optional[str] = None
13
- """Identifies the resource"""
14
-
15
- aggregation_type: Optional[int] = None
16
- """
17
- Aggregation type: All = 0, By Connections = 1, By Tags = 2, By Billing Group = 3
18
- """
19
-
20
- connections: Optional[List[int]] = None
21
-
22
- created_at: Optional[datetime] = None
23
-
24
- end_time: Optional[datetime] = None
25
-
26
- product_breakdown: Optional[int] = None
27
- """
28
- Product breakdown type: No breakdown = 0, DID vs Toll-free = 1, Country = 2, DID
29
- vs Toll-free per Country = 3
30
- """
31
-
32
- record_type: Optional[str] = None
33
-
34
- report_url: Optional[str] = None
35
-
36
- result: Optional[object] = None
37
-
38
- start_time: Optional[datetime] = None
39
-
40
- status: Optional[int] = None
41
- """Status of the report: Pending = 1, Complete = 2, Failed = 3, Expired = 4"""
42
-
43
- updated_at: Optional[datetime] = None
8
+ __all__ = ["VoiceDeleteResponse"]
44
9
 
45
10
 
46
11
  class VoiceDeleteResponse(BaseModel):
47
- data: Optional[Data] = None
12
+ data: Optional[CdrUsageReportResponseLegacy] = None
48
13
  """Legacy V2 CDR usage report response"""
@@ -1,59 +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
4
 
6
5
  from ....._models import BaseModel
6
+ from .standard_pagination_meta import StandardPaginationMeta
7
+ from .cdr_usage_report_response_legacy import CdrUsageReportResponseLegacy
7
8
 
8
- __all__ = ["VoiceListResponse", "Data", "Meta"]
9
-
10
-
11
- class Data(BaseModel):
12
- id: Optional[str] = None
13
- """Identifies the resource"""
14
-
15
- aggregation_type: Optional[int] = None
16
- """
17
- Aggregation type: All = 0, By Connections = 1, By Tags = 2, By Billing Group = 3
18
- """
19
-
20
- connections: Optional[List[int]] = None
21
-
22
- created_at: Optional[datetime] = None
23
-
24
- end_time: Optional[datetime] = None
25
-
26
- product_breakdown: Optional[int] = None
27
- """
28
- Product breakdown type: No breakdown = 0, DID vs Toll-free = 1, Country = 2, DID
29
- vs Toll-free per Country = 3
30
- """
31
-
32
- record_type: Optional[str] = None
33
-
34
- report_url: Optional[str] = None
35
-
36
- result: Optional[object] = None
37
-
38
- start_time: Optional[datetime] = None
39
-
40
- status: Optional[int] = None
41
- """Status of the report: Pending = 1, Complete = 2, Failed = 3, Expired = 4"""
42
-
43
- updated_at: Optional[datetime] = None
44
-
45
-
46
- class Meta(BaseModel):
47
- page_number: Optional[int] = None
48
-
49
- page_size: Optional[int] = None
50
-
51
- total_pages: Optional[int] = None
52
-
53
- total_results: Optional[int] = None
9
+ __all__ = ["VoiceListResponse"]
54
10
 
55
11
 
56
12
  class VoiceListResponse(BaseModel):
57
- data: Optional[List[Data]] = None
13
+ data: Optional[List[CdrUsageReportResponseLegacy]] = None
58
14
 
59
- meta: Optional[Meta] = None
15
+ meta: Optional[StandardPaginationMeta] = None
@@ -1,48 +1,13 @@
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
3
+ from typing import Optional
5
4
 
6
5
  from ....._models import BaseModel
6
+ from .cdr_usage_report_response_legacy import CdrUsageReportResponseLegacy
7
7
 
8
- __all__ = ["VoiceRetrieveResponse", "Data"]
9
-
10
-
11
- class Data(BaseModel):
12
- id: Optional[str] = None
13
- """Identifies the resource"""
14
-
15
- aggregation_type: Optional[int] = None
16
- """
17
- Aggregation type: All = 0, By Connections = 1, By Tags = 2, By Billing Group = 3
18
- """
19
-
20
- connections: Optional[List[int]] = None
21
-
22
- created_at: Optional[datetime] = None
23
-
24
- end_time: Optional[datetime] = None
25
-
26
- product_breakdown: Optional[int] = None
27
- """
28
- Product breakdown type: No breakdown = 0, DID vs Toll-free = 1, Country = 2, DID
29
- vs Toll-free per Country = 3
30
- """
31
-
32
- record_type: Optional[str] = None
33
-
34
- report_url: Optional[str] = None
35
-
36
- result: Optional[object] = None
37
-
38
- start_time: Optional[datetime] = None
39
-
40
- status: Optional[int] = None
41
- """Status of the report: Pending = 1, Complete = 2, Failed = 3, Expired = 4"""
42
-
43
- updated_at: Optional[datetime] = None
8
+ __all__ = ["VoiceRetrieveResponse"]
44
9
 
45
10
 
46
11
  class VoiceRetrieveResponse(BaseModel):
47
- data: Optional[Data] = None
12
+ data: Optional[CdrUsageReportResponseLegacy] = None
48
13
  """Legacy V2 CDR usage report response"""
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from .._models import BaseModel
6
+ from .verify_profile_message_template_response import VerifyProfileMessageTemplateResponse
7
+
8
+ __all__ = ["MessageTemplate"]
9
+
10
+
11
+ class MessageTemplate(BaseModel):
12
+ data: Optional[VerifyProfileMessageTemplateResponse] = None
@@ -42,6 +42,9 @@ class MessagingProfile(BaseModel):
42
42
  mms_transcoding: Optional[bool] = None
43
43
  """enables automated resizing of MMS media."""
44
44
 
45
+ mobile_only: Optional[bool] = None
46
+ """Send messages only to mobile phone numbers."""
47
+
45
48
  name: Optional[str] = None
46
49
  """A user friendly name for the messaging profile."""
47
50
 
@@ -47,6 +47,9 @@ class MessagingProfileCreateParams(TypedDict, total=False):
47
47
  mms_transcoding: bool
48
48
  """enables automated resizing of MMS media."""
49
49
 
50
+ mobile_only: bool
51
+ """Send messages only to mobile phone numbers."""
52
+
50
53
  number_pool_settings: Optional[NumberPoolSettingsParam]
51
54
  """
52
55
  Number Pool allows you to send messages from a pool of numbers of different
@@ -37,6 +37,9 @@ class MessagingProfileUpdateParams(TypedDict, total=False):
37
37
  mms_transcoding: bool
38
38
  """enables automated resizing of MMS media."""
39
39
 
40
+ mobile_only: bool
41
+ """Send messages only to mobile phone numbers."""
42
+
40
43
  name: str
41
44
  """A user friendly name for the messaging profile."""
42
45
 
@@ -15,3 +15,4 @@ from .tf_phone_number_param import TfPhoneNumberParam as TfPhoneNumberParam
15
15
  from .tf_verification_status import TfVerificationStatus as TfVerificationStatus
16
16
  from .verification_request_egress import VerificationRequestEgress as VerificationRequestEgress
17
17
  from .verification_request_status import VerificationRequestStatus as VerificationRequestStatus
18
+ from .toll_free_verification_entity_type import TollFreeVerificationEntityType as TollFreeVerificationEntityType
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Iterable
5
+ from typing import Iterable, Optional
6
6
  from typing_extensions import Required, Annotated, TypedDict
7
7
 
8
8
  from .volume import Volume
@@ -10,6 +10,7 @@ from ...._utils import PropertyInfo
10
10
  from .url_param import URLParam
11
11
  from .use_case_categories import UseCaseCategories
12
12
  from .tf_phone_number_param import TfPhoneNumberParam
13
+ from .toll_free_verification_entity_type import TollFreeVerificationEntityType
13
14
 
14
15
  __all__ = ["RequestCreateParams"]
15
16
 
@@ -84,8 +85,57 @@ class RequestCreateParams(TypedDict, total=False):
84
85
  use_case_summary: Required[Annotated[str, PropertyInfo(alias="useCaseSummary")]]
85
86
  """Human-readable summary of the desired use-case"""
86
87
 
88
+ age_gated_content: Annotated[bool, PropertyInfo(alias="ageGatedContent")]
89
+ """Indicates if messaging content requires age gating (e.g., 18+).
90
+
91
+ Defaults to false if not provided.
92
+ """
93
+
87
94
  business_addr2: Annotated[str, PropertyInfo(alias="businessAddr2")]
88
95
  """Line 2 of the business address"""
89
96
 
97
+ business_registration_country: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationCountry")]
98
+ """ISO 3166-1 alpha-2 country code of the issuing business authority.
99
+
100
+ Must be exactly 2 letters. Automatically converted to uppercase. Required from
101
+ January 2026.
102
+ """
103
+
104
+ business_registration_number: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationNumber")]
105
+ """
106
+ Official business registration number (e.g., Employer Identification Number
107
+ (EIN) in the U.S.). Required from January 2026.
108
+ """
109
+
110
+ business_registration_type: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationType")]
111
+ """Type of business registration being provided. Required from January 2026."""
112
+
113
+ doing_business_as: Annotated[Optional[str], PropertyInfo(alias="doingBusinessAs")]
114
+ """Doing Business As (DBA) name if different from legal name"""
115
+
116
+ entity_type: Annotated[Optional[TollFreeVerificationEntityType], PropertyInfo(alias="entityType")]
117
+ """Business entity classification"""
118
+
119
+ help_message_response: Annotated[Optional[str], PropertyInfo(alias="helpMessageResponse")]
120
+ """The message returned when users text 'HELP'"""
121
+
122
+ opt_in_confirmation_response: Annotated[Optional[str], PropertyInfo(alias="optInConfirmationResponse")]
123
+ """Message sent to users confirming their opt-in to receive messages"""
124
+
125
+ opt_in_keywords: Annotated[Optional[str], PropertyInfo(alias="optInKeywords")]
126
+ """Keywords used to collect and process consumer opt-ins"""
127
+
128
+ privacy_policy_url: Annotated[Optional[str], PropertyInfo(alias="privacyPolicyURL")]
129
+ """URL pointing to the business's privacy policy.
130
+
131
+ Plain string, no URL format validation.
132
+ """
133
+
134
+ terms_and_condition_url: Annotated[Optional[str], PropertyInfo(alias="termsAndConditionURL")]
135
+ """URL pointing to the business's terms and conditions.
136
+
137
+ Plain string, no URL format validation.
138
+ """
139
+
90
140
  webhook_url: Annotated[str, PropertyInfo(alias="webhookUrl")]
91
141
  """URL that should receive webhooks relating to this verification request"""
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Iterable
5
+ from typing import Iterable, Optional
6
6
  from typing_extensions import Required, Annotated, TypedDict
7
7
 
8
8
  from .volume import Volume
@@ -10,6 +10,7 @@ from ...._utils import PropertyInfo
10
10
  from .url_param import URLParam
11
11
  from .use_case_categories import UseCaseCategories
12
12
  from .tf_phone_number_param import TfPhoneNumberParam
13
+ from .toll_free_verification_entity_type import TollFreeVerificationEntityType
13
14
 
14
15
  __all__ = ["RequestUpdateParams"]
15
16
 
@@ -84,8 +85,57 @@ class RequestUpdateParams(TypedDict, total=False):
84
85
  use_case_summary: Required[Annotated[str, PropertyInfo(alias="useCaseSummary")]]
85
86
  """Human-readable summary of the desired use-case"""
86
87
 
88
+ age_gated_content: Annotated[bool, PropertyInfo(alias="ageGatedContent")]
89
+ """Indicates if messaging content requires age gating (e.g., 18+).
90
+
91
+ Defaults to false if not provided.
92
+ """
93
+
87
94
  business_addr2: Annotated[str, PropertyInfo(alias="businessAddr2")]
88
95
  """Line 2 of the business address"""
89
96
 
97
+ business_registration_country: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationCountry")]
98
+ """ISO 3166-1 alpha-2 country code of the issuing business authority.
99
+
100
+ Must be exactly 2 letters. Automatically converted to uppercase. Required from
101
+ January 2026.
102
+ """
103
+
104
+ business_registration_number: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationNumber")]
105
+ """
106
+ Official business registration number (e.g., Employer Identification Number
107
+ (EIN) in the U.S.). Required from January 2026.
108
+ """
109
+
110
+ business_registration_type: Annotated[Optional[str], PropertyInfo(alias="businessRegistrationType")]
111
+ """Type of business registration being provided. Required from January 2026."""
112
+
113
+ doing_business_as: Annotated[Optional[str], PropertyInfo(alias="doingBusinessAs")]
114
+ """Doing Business As (DBA) name if different from legal name"""
115
+
116
+ entity_type: Annotated[Optional[TollFreeVerificationEntityType], PropertyInfo(alias="entityType")]
117
+ """Business entity classification"""
118
+
119
+ help_message_response: Annotated[Optional[str], PropertyInfo(alias="helpMessageResponse")]
120
+ """The message returned when users text 'HELP'"""
121
+
122
+ opt_in_confirmation_response: Annotated[Optional[str], PropertyInfo(alias="optInConfirmationResponse")]
123
+ """Message sent to users confirming their opt-in to receive messages"""
124
+
125
+ opt_in_keywords: Annotated[Optional[str], PropertyInfo(alias="optInKeywords")]
126
+ """Keywords used to collect and process consumer opt-ins"""
127
+
128
+ privacy_policy_url: Annotated[Optional[str], PropertyInfo(alias="privacyPolicyURL")]
129
+ """URL pointing to the business's privacy policy.
130
+
131
+ Plain string, no URL format validation.
132
+ """
133
+
134
+ terms_and_condition_url: Annotated[Optional[str], PropertyInfo(alias="termsAndConditionURL")]
135
+ """URL pointing to the business's terms and conditions.
136
+
137
+ Plain string, no URL format validation.
138
+ """
139
+
90
140
  webhook_url: Annotated[str, PropertyInfo(alias="webhookUrl")]
91
141
  """URL that should receive webhooks relating to this verification request"""
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["TollFreeVerificationEntityType"]
6
+
7
+ TollFreeVerificationEntityType: TypeAlias = Literal[
8
+ "SOLE_PROPRIETOR", "PRIVATE_PROFIT", "PUBLIC_PROFIT", "NON_PROFIT", "GOVERNMENT"
9
+ ]
@@ -10,6 +10,7 @@ from ...._models import BaseModel
10
10
  from .tf_phone_number import TfPhoneNumber
11
11
  from .use_case_categories import UseCaseCategories
12
12
  from .tf_verification_status import TfVerificationStatus
13
+ from .toll_free_verification_entity_type import TollFreeVerificationEntityType
13
14
 
14
15
  __all__ = ["VerificationRequestEgress"]
15
16
 
@@ -59,8 +60,31 @@ class VerificationRequestEgress(BaseModel):
59
60
 
60
61
  verification_request_id: str = FieldInfo(alias="verificationRequestId")
61
62
 
63
+ age_gated_content: Optional[bool] = FieldInfo(alias="ageGatedContent", default=None)
64
+
62
65
  business_addr2: Optional[str] = FieldInfo(alias="businessAddr2", default=None)
63
66
 
67
+ business_registration_country: Optional[str] = FieldInfo(alias="businessRegistrationCountry", default=None)
68
+
69
+ business_registration_number: Optional[str] = FieldInfo(alias="businessRegistrationNumber", default=None)
70
+
71
+ business_registration_type: Optional[str] = FieldInfo(alias="businessRegistrationType", default=None)
72
+
73
+ doing_business_as: Optional[str] = FieldInfo(alias="doingBusinessAs", default=None)
74
+
75
+ entity_type: Optional[TollFreeVerificationEntityType] = FieldInfo(alias="entityType", default=None)
76
+ """Business entity classification"""
77
+
78
+ help_message_response: Optional[str] = FieldInfo(alias="helpMessageResponse", default=None)
79
+
80
+ opt_in_confirmation_response: Optional[str] = FieldInfo(alias="optInConfirmationResponse", default=None)
81
+
82
+ opt_in_keywords: Optional[str] = FieldInfo(alias="optInKeywords", default=None)
83
+
84
+ privacy_policy_url: Optional[str] = FieldInfo(alias="privacyPolicyURL", default=None)
85
+
86
+ terms_and_condition_url: Optional[str] = FieldInfo(alias="termsAndConditionURL", default=None)
87
+
64
88
  verification_status: Optional[TfVerificationStatus] = FieldInfo(alias="verificationStatus", default=None)
65
89
  """Tollfree verification status"""
66
90
 
@@ -11,6 +11,7 @@ from ...._models import BaseModel
11
11
  from .tf_phone_number import TfPhoneNumber
12
12
  from .use_case_categories import UseCaseCategories
13
13
  from .tf_verification_status import TfVerificationStatus
14
+ from .toll_free_verification_entity_type import TollFreeVerificationEntityType
14
15
 
15
16
  __all__ = ["VerificationRequestStatus"]
16
17
 
@@ -61,12 +62,35 @@ class VerificationRequestStatus(BaseModel):
61
62
  verification_status: TfVerificationStatus = FieldInfo(alias="verificationStatus")
62
63
  """Tollfree verification status"""
63
64
 
65
+ age_gated_content: Optional[bool] = FieldInfo(alias="ageGatedContent", default=None)
66
+
64
67
  business_addr2: Optional[str] = FieldInfo(alias="businessAddr2", default=None)
65
68
 
69
+ business_registration_country: Optional[str] = FieldInfo(alias="businessRegistrationCountry", default=None)
70
+
71
+ business_registration_number: Optional[str] = FieldInfo(alias="businessRegistrationNumber", default=None)
72
+
73
+ business_registration_type: Optional[str] = FieldInfo(alias="businessRegistrationType", default=None)
74
+
66
75
  created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None)
67
76
 
77
+ doing_business_as: Optional[str] = FieldInfo(alias="doingBusinessAs", default=None)
78
+
79
+ entity_type: Optional[TollFreeVerificationEntityType] = FieldInfo(alias="entityType", default=None)
80
+ """Business entity classification"""
81
+
82
+ help_message_response: Optional[str] = FieldInfo(alias="helpMessageResponse", default=None)
83
+
84
+ opt_in_confirmation_response: Optional[str] = FieldInfo(alias="optInConfirmationResponse", default=None)
85
+
86
+ opt_in_keywords: Optional[str] = FieldInfo(alias="optInKeywords", default=None)
87
+
88
+ privacy_policy_url: Optional[str] = FieldInfo(alias="privacyPolicyURL", default=None)
89
+
68
90
  reason: Optional[str] = None
69
91
 
92
+ terms_and_condition_url: Optional[str] = FieldInfo(alias="termsAndConditionURL", default=None)
93
+
70
94
  updated_at: Optional[datetime] = FieldInfo(alias="updatedAt", default=None)
71
95
 
72
96
  webhook_url: Optional[str] = FieldInfo(alias="webhookUrl", default=None)
@@ -0,0 +1,38 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from datetime import datetime
4
+
5
+ from .._models import BaseModel
6
+ from .number_order_with_phone_numbers import NumberOrderWithPhoneNumbers
7
+
8
+ __all__ = ["NumberOrderStatusUpdateWebhookEvent", "Data", "Meta"]
9
+
10
+
11
+ class Data(BaseModel):
12
+ id: str
13
+ """Unique identifier for the event"""
14
+
15
+ event_type: str
16
+ """The type of event being sent"""
17
+
18
+ occurred_at: datetime
19
+ """ISO 8601 timestamp of when the event occurred"""
20
+
21
+ payload: NumberOrderWithPhoneNumbers
22
+
23
+ record_type: str
24
+ """Type of record"""
25
+
26
+
27
+ class Meta(BaseModel):
28
+ attempt: int
29
+ """Webhook delivery attempt number"""
30
+
31
+ delivered_to: str
32
+ """URL where the webhook was delivered"""
33
+
34
+
35
+ class NumberOrderStatusUpdateWebhookEvent(BaseModel):
36
+ data: Data
37
+
38
+ meta: Meta
@@ -0,0 +1,59 @@
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__ = ["OAuthClient"]
10
+
11
+
12
+ class OAuthClient(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"""
@@ -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__ = ["OAuthClientCreateResponse", "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__ = ["OAuthClientCreateResponse"]
60
9
 
61
10
 
62
11
  class OAuthClientCreateResponse(BaseModel):
63
- data: Optional[Data] = None
12
+ data: Optional[OAuthClient] = None