thunderphone 0.1.0__tar.gz

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.
Files changed (771) hide show
  1. thunderphone-0.1.0/LICENSE +21 -0
  2. thunderphone-0.1.0/PKG-INFO +75 -0
  3. thunderphone-0.1.0/README.md +59 -0
  4. thunderphone-0.1.0/pyproject.toml +23 -0
  5. thunderphone-0.1.0/setup.cfg +4 -0
  6. thunderphone-0.1.0/tests/test_client.py +211 -0
  7. thunderphone-0.1.0/thunderphone/__init__.py +6 -0
  8. thunderphone-0.1.0/thunderphone/facade.py +137 -0
  9. thunderphone-0.1.0/thunderphone/generated/__init__.py +8 -0
  10. thunderphone-0.1.0/thunderphone/generated/api/__init__.py +1 -0
  11. thunderphone-0.1.0/thunderphone/generated/api/agent_imports/__init__.py +1 -0
  12. thunderphone-0.1.0/thunderphone/generated/api/agent_imports/agent_imports_commit.py +186 -0
  13. thunderphone-0.1.0/thunderphone/generated/api/agent_imports/agent_imports_create.py +168 -0
  14. thunderphone-0.1.0/thunderphone/generated/api/agent_imports/agent_imports_delete.py +107 -0
  15. thunderphone-0.1.0/thunderphone/generated/api/agent_imports/agent_imports_items_partial_update.py +202 -0
  16. thunderphone-0.1.0/thunderphone/generated/api/agent_imports/agent_imports_list.py +141 -0
  17. thunderphone-0.1.0/thunderphone/generated/api/agent_imports/agent_imports_retrieve.py +164 -0
  18. thunderphone-0.1.0/thunderphone/generated/api/agents/__init__.py +1 -0
  19. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_consent_attestations.py +218 -0
  20. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_consent_attestations_list.py +162 -0
  21. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_create.py +168 -0
  22. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_delete.py +106 -0
  23. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_deploy.py +177 -0
  24. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_discard_draft.py +177 -0
  25. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_duplicate.py +185 -0
  26. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_generate_acknowledgement_prompt_create.py +169 -0
  27. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_list.py +141 -0
  28. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_partial_update.py +185 -0
  29. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_prompt_analysis.py +181 -0
  30. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_prompt_language_check_create.py +168 -0
  31. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_retrieve.py +163 -0
  32. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_split_testing.py +177 -0
  33. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_test_runs_execute.py +176 -0
  34. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_test_runs_list.py +160 -0
  35. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_test_runs_retrieve.py +169 -0
  36. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_test_scenarios.py +184 -0
  37. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_test_scenarios_delete.py +114 -0
  38. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_test_scenarios_generate.py +185 -0
  39. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_test_scenarios_list.py +168 -0
  40. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_test_scenarios_partial_update.py +201 -0
  41. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_test_scenarios_refresh.py +185 -0
  42. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_test_scenarios_retrieve.py +177 -0
  43. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_transfer.py +189 -0
  44. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_translate_prompt_create.py +168 -0
  45. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_update.py +184 -0
  46. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_validation_examples_list.py +163 -0
  47. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_validation_runs.py +185 -0
  48. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_validation_runs_list.py +163 -0
  49. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_validation_status_list.py +163 -0
  50. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_variant_stats_list.py +160 -0
  51. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_variants.py +176 -0
  52. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_variants_delete.py +110 -0
  53. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_variants_list.py +160 -0
  54. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_variants_partial_update.py +191 -0
  55. thunderphone-0.1.0/thunderphone/generated/api/agents/agents_versions_list.py +163 -0
  56. thunderphone-0.1.0/thunderphone/generated/api/billing/__init__.py +1 -0
  57. thunderphone-0.1.0/thunderphone/generated/api/billing/billing_bulk_update.py +169 -0
  58. thunderphone-0.1.0/thunderphone/generated/api/billing/billing_default_payment_method_create.py +168 -0
  59. thunderphone-0.1.0/thunderphone/generated/api/billing/billing_list.py +136 -0
  60. thunderphone-0.1.0/thunderphone/generated/api/billing/billing_setup_intent_create.py +169 -0
  61. thunderphone-0.1.0/thunderphone/generated/api/billing/billing_top_up_create.py +168 -0
  62. thunderphone-0.1.0/thunderphone/generated/api/billing/billing_transactions_list.py +141 -0
  63. thunderphone-0.1.0/thunderphone/generated/api/calls/__init__.py +1 -0
  64. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_audio_list.py +163 -0
  65. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_caller_audio_list.py +102 -0
  66. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_export_list.py +293 -0
  67. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_grade.py +222 -0
  68. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_grade_list.py +175 -0
  69. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_history_list.py +172 -0
  70. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_issue_reports.py +184 -0
  71. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_issue_reports_list.py +168 -0
  72. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_list.py +303 -0
  73. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_listen.py +185 -0
  74. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_party_numbers_list.py +144 -0
  75. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_place.py +173 -0
  76. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_promote_to_scenario.py +182 -0
  77. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_retrieve.py +163 -0
  78. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_span_audio_list.py +102 -0
  79. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_transcript_list.py +184 -0
  80. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_validation_examples.py +184 -0
  81. thunderphone-0.1.0/thunderphone/generated/api/calls/calls_whisper.py +176 -0
  82. thunderphone-0.1.0/thunderphone/generated/api/campaigns/__init__.py +1 -0
  83. thunderphone-0.1.0/thunderphone/generated/api/campaigns/campaigns_action.py +201 -0
  84. thunderphone-0.1.0/thunderphone/generated/api/campaigns/campaigns_contacts.py +216 -0
  85. thunderphone-0.1.0/thunderphone/generated/api/campaigns/campaigns_create.py +168 -0
  86. thunderphone-0.1.0/thunderphone/generated/api/campaigns/campaigns_delete.py +107 -0
  87. thunderphone-0.1.0/thunderphone/generated/api/campaigns/campaigns_list.py +141 -0
  88. thunderphone-0.1.0/thunderphone/generated/api/campaigns/campaigns_partial_update.py +186 -0
  89. thunderphone-0.1.0/thunderphone/generated/api/campaigns/campaigns_retrieve.py +164 -0
  90. thunderphone-0.1.0/thunderphone/generated/api/campaigns/campaigns_stats_list.py +164 -0
  91. thunderphone-0.1.0/thunderphone/generated/api/consent_announcements/__init__.py +1 -0
  92. thunderphone-0.1.0/thunderphone/generated/api/consent_announcements/consent_announcements_retrieve.py +171 -0
  93. thunderphone-0.1.0/thunderphone/generated/api/developer/__init__.py +1 -0
  94. thunderphone-0.1.0/thunderphone/generated/api/developer/developer_api_keys_create.py +165 -0
  95. thunderphone-0.1.0/thunderphone/generated/api/developer/developer_api_keys_delete.py +105 -0
  96. thunderphone-0.1.0/thunderphone/generated/api/developer/developer_api_keys_list.py +137 -0
  97. thunderphone-0.1.0/thunderphone/generated/api/developer/developer_webhook_endpoints_create.py +170 -0
  98. thunderphone-0.1.0/thunderphone/generated/api/developer/developer_webhook_endpoints_delete.py +107 -0
  99. thunderphone-0.1.0/thunderphone/generated/api/developer/developer_webhook_endpoints_list.py +143 -0
  100. thunderphone-0.1.0/thunderphone/generated/api/developer/developer_webhook_endpoints_partial_update.py +188 -0
  101. thunderphone-0.1.0/thunderphone/generated/api/healthz/__init__.py +1 -0
  102. thunderphone-0.1.0/thunderphone/generated/api/healthz/healthz_list.py +136 -0
  103. thunderphone-0.1.0/thunderphone/generated/api/integrations/__init__.py +1 -0
  104. thunderphone-0.1.0/thunderphone/generated/api/integrations/integrations_create.py +168 -0
  105. thunderphone-0.1.0/thunderphone/generated/api/integrations/integrations_delete.py +106 -0
  106. thunderphone-0.1.0/thunderphone/generated/api/integrations/integrations_list.py +143 -0
  107. thunderphone-0.1.0/thunderphone/generated/api/integrations/integrations_partial_update.py +185 -0
  108. thunderphone-0.1.0/thunderphone/generated/api/integrations/integrations_retrieve.py +163 -0
  109. thunderphone-0.1.0/thunderphone/generated/api/integrations/integrations_test_request_create.py +168 -0
  110. thunderphone-0.1.0/thunderphone/generated/api/integrations/integrations_transfer.py +190 -0
  111. thunderphone-0.1.0/thunderphone/generated/api/integrations/integrations_update.py +184 -0
  112. thunderphone-0.1.0/thunderphone/generated/api/integrations/integrations_versions_list.py +164 -0
  113. thunderphone-0.1.0/thunderphone/generated/api/investigations/__init__.py +1 -0
  114. thunderphone-0.1.0/thunderphone/generated/api/investigations/investigations_apply.py +178 -0
  115. thunderphone-0.1.0/thunderphone/generated/api/investigations/investigations_candidates_experiments.py +192 -0
  116. thunderphone-0.1.0/thunderphone/generated/api/investigations/investigations_candidates_manual.py +177 -0
  117. thunderphone-0.1.0/thunderphone/generated/api/investigations/investigations_create.py +164 -0
  118. thunderphone-0.1.0/thunderphone/generated/api/investigations/investigations_experiments_retrieve.py +170 -0
  119. thunderphone-0.1.0/thunderphone/generated/api/investigations/investigations_hypotheses.py +178 -0
  120. thunderphone-0.1.0/thunderphone/generated/api/investigations/investigations_list.py +137 -0
  121. thunderphone-0.1.0/thunderphone/generated/api/investigations/investigations_partial_update.py +188 -0
  122. thunderphone-0.1.0/thunderphone/generated/api/investigations/investigations_retrieve.py +160 -0
  123. thunderphone-0.1.0/thunderphone/generated/api/investigations/investigations_search.py +178 -0
  124. thunderphone-0.1.0/thunderphone/generated/api/invites/__init__.py +1 -0
  125. thunderphone-0.1.0/thunderphone/generated/api/invites/invites_accept.py +185 -0
  126. thunderphone-0.1.0/thunderphone/generated/api/invites/invites_create.py +168 -0
  127. thunderphone-0.1.0/thunderphone/generated/api/invites/invites_decline.py +185 -0
  128. thunderphone-0.1.0/thunderphone/generated/api/invites/invites_delete.py +106 -0
  129. thunderphone-0.1.0/thunderphone/generated/api/invites/invites_list.py +141 -0
  130. thunderphone-0.1.0/thunderphone/generated/api/invites/invites_request_access.py +122 -0
  131. thunderphone-0.1.0/thunderphone/generated/api/invites/invites_retrieve.py +163 -0
  132. thunderphone-0.1.0/thunderphone/generated/api/issue_clusters/__init__.py +1 -0
  133. thunderphone-0.1.0/thunderphone/generated/api/issue_clusters/issue_clusters_escalate.py +190 -0
  134. thunderphone-0.1.0/thunderphone/generated/api/issue_clusters/issue_clusters_list.py +136 -0
  135. thunderphone-0.1.0/thunderphone/generated/api/issue_clusters/issue_clusters_partial_update.py +188 -0
  136. thunderphone-0.1.0/thunderphone/generated/api/issue_reports/__init__.py +1 -0
  137. thunderphone-0.1.0/thunderphone/generated/api/issue_reports/issue_reports_bulk_update.py +227 -0
  138. thunderphone-0.1.0/thunderphone/generated/api/issue_reports/issue_reports_list.py +136 -0
  139. thunderphone-0.1.0/thunderphone/generated/api/issue_reports/issue_reports_partial_update.py +184 -0
  140. thunderphone-0.1.0/thunderphone/generated/api/knowledge/__init__.py +1 -0
  141. thunderphone-0.1.0/thunderphone/generated/api/knowledge/knowledge_documents_create.py +178 -0
  142. thunderphone-0.1.0/thunderphone/generated/api/knowledge/knowledge_documents_delete.py +107 -0
  143. thunderphone-0.1.0/thunderphone/generated/api/knowledge/knowledge_documents_import_url.py +168 -0
  144. thunderphone-0.1.0/thunderphone/generated/api/knowledge/knowledge_documents_list.py +141 -0
  145. thunderphone-0.1.0/thunderphone/generated/api/knowledge/knowledge_documents_original_list.py +164 -0
  146. thunderphone-0.1.0/thunderphone/generated/api/knowledge/knowledge_documents_partial_update.py +195 -0
  147. thunderphone-0.1.0/thunderphone/generated/api/knowledge/knowledge_documents_refresh.py +178 -0
  148. thunderphone-0.1.0/thunderphone/generated/api/knowledge/knowledge_documents_replace.py +183 -0
  149. thunderphone-0.1.0/thunderphone/generated/api/knowledge/knowledge_documents_retrieve.py +164 -0
  150. thunderphone-0.1.0/thunderphone/generated/api/knowledge/knowledge_documents_retry.py +186 -0
  151. thunderphone-0.1.0/thunderphone/generated/api/knowledge/knowledge_search_create.py +168 -0
  152. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/__init__.py +1 -0
  153. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/knowledge_bases_create.py +168 -0
  154. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/knowledge_bases_delete.py +107 -0
  155. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/knowledge_bases_documents.py +193 -0
  156. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/knowledge_bases_documents_delete.py +115 -0
  157. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/knowledge_bases_documents_list.py +169 -0
  158. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/knowledge_bases_documents_partial_update.py +209 -0
  159. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/knowledge_bases_documents_retry.py +202 -0
  160. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/knowledge_bases_list.py +141 -0
  161. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/knowledge_bases_partial_update.py +186 -0
  162. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/knowledge_bases_retrieve.py +164 -0
  163. thunderphone-0.1.0/thunderphone/generated/api/knowledge_bases/knowledge_bases_search.py +185 -0
  164. thunderphone-0.1.0/thunderphone/generated/api/leave/__init__.py +1 -0
  165. thunderphone-0.1.0/thunderphone/generated/api/leave/leave_create.py +112 -0
  166. thunderphone-0.1.0/thunderphone/generated/api/mcp/__init__.py +1 -0
  167. thunderphone-0.1.0/thunderphone/generated/api/mcp/mcp_create.py +168 -0
  168. thunderphone-0.1.0/thunderphone/generated/api/mcp_servers/__init__.py +1 -0
  169. thunderphone-0.1.0/thunderphone/generated/api/mcp_servers/mcp_servers_create.py +169 -0
  170. thunderphone-0.1.0/thunderphone/generated/api/mcp_servers/mcp_servers_delete.py +107 -0
  171. thunderphone-0.1.0/thunderphone/generated/api/mcp_servers/mcp_servers_list.py +141 -0
  172. thunderphone-0.1.0/thunderphone/generated/api/mcp_servers/mcp_servers_partial_update.py +188 -0
  173. thunderphone-0.1.0/thunderphone/generated/api/mcp_servers/mcp_servers_retrieve.py +164 -0
  174. thunderphone-0.1.0/thunderphone/generated/api/mcp_servers/mcp_servers_sync_tools.py +186 -0
  175. thunderphone-0.1.0/thunderphone/generated/api/members/__init__.py +1 -0
  176. thunderphone-0.1.0/thunderphone/generated/api/members/members_delete.py +106 -0
  177. thunderphone-0.1.0/thunderphone/generated/api/members/members_list.py +141 -0
  178. thunderphone-0.1.0/thunderphone/generated/api/members/members_role_bulk_update.py +187 -0
  179. thunderphone-0.1.0/thunderphone/generated/api/members/members_transfer_ownership.py +185 -0
  180. thunderphone-0.1.0/thunderphone/generated/api/mic_session/__init__.py +1 -0
  181. thunderphone-0.1.0/thunderphone/generated/api/mic_session/mic_session_create.py +168 -0
  182. thunderphone-0.1.0/thunderphone/generated/api/monitoring/__init__.py +1 -0
  183. thunderphone-0.1.0/thunderphone/generated/api/monitoring/monitoring_ack_retrieve.py +161 -0
  184. thunderphone-0.1.0/thunderphone/generated/api/monitoring/monitoring_auto_ack_create.py +173 -0
  185. thunderphone-0.1.0/thunderphone/generated/api/monitoring/monitoring_azure_alert_create.py +169 -0
  186. thunderphone-0.1.0/thunderphone/generated/api/monitoring/monitoring_glitchtip_alert_create.py +163 -0
  187. thunderphone-0.1.0/thunderphone/generated/api/onboarding/__init__.py +1 -0
  188. thunderphone-0.1.0/thunderphone/generated/api/onboarding/onboarding_agent_talk_skip.py +169 -0
  189. thunderphone-0.1.0/thunderphone/generated/api/onboarding/onboarding_dismiss_create.py +161 -0
  190. thunderphone-0.1.0/thunderphone/generated/api/onboarding/onboarding_list.py +128 -0
  191. thunderphone-0.1.0/thunderphone/generated/api/onboarding/onboarding_undismiss_create.py +161 -0
  192. thunderphone-0.1.0/thunderphone/generated/api/orgs/__init__.py +1 -0
  193. thunderphone-0.1.0/thunderphone/generated/api/orgs/orgs_create.py +168 -0
  194. thunderphone-0.1.0/thunderphone/generated/api/orgs/orgs_delete.py +106 -0
  195. thunderphone-0.1.0/thunderphone/generated/api/orgs/orgs_list.py +141 -0
  196. thunderphone-0.1.0/thunderphone/generated/api/orgs/orgs_partial_update.py +185 -0
  197. thunderphone-0.1.0/thunderphone/generated/api/orgs/orgs_retrieve.py +163 -0
  198. thunderphone-0.1.0/thunderphone/generated/api/orgs/orgs_update.py +184 -0
  199. thunderphone-0.1.0/thunderphone/generated/api/outbound_tcpa_confirmation/__init__.py +1 -0
  200. thunderphone-0.1.0/thunderphone/generated/api/outbound_tcpa_confirmation/outbound_tcpa_confirmation_create.py +167 -0
  201. thunderphone-0.1.0/thunderphone/generated/api/outbound_tcpa_confirmation/outbound_tcpa_confirmation_list.py +128 -0
  202. thunderphone-0.1.0/thunderphone/generated/api/phone_number_labels/__init__.py +1 -0
  203. thunderphone-0.1.0/thunderphone/generated/api/phone_number_labels/phone_number_labels_create.py +160 -0
  204. thunderphone-0.1.0/thunderphone/generated/api/phone_number_labels/phone_number_labels_delete.py +102 -0
  205. thunderphone-0.1.0/thunderphone/generated/api/phone_number_labels/phone_number_labels_list.py +133 -0
  206. thunderphone-0.1.0/thunderphone/generated/api/phone_numbers/__init__.py +1 -0
  207. thunderphone-0.1.0/thunderphone/generated/api/phone_numbers/phone_numbers_create.py +169 -0
  208. thunderphone-0.1.0/thunderphone/generated/api/phone_numbers/phone_numbers_delete.py +199 -0
  209. thunderphone-0.1.0/thunderphone/generated/api/phone_numbers/phone_numbers_limits_list.py +136 -0
  210. thunderphone-0.1.0/thunderphone/generated/api/phone_numbers/phone_numbers_list.py +141 -0
  211. thunderphone-0.1.0/thunderphone/generated/api/phone_numbers/phone_numbers_partial_update.py +187 -0
  212. thunderphone-0.1.0/thunderphone/generated/api/phone_numbers/phone_numbers_retrieve.py +163 -0
  213. thunderphone-0.1.0/thunderphone/generated/api/phone_numbers/phone_numbers_transfer.py +266 -0
  214. thunderphone-0.1.0/thunderphone/generated/api/phone_numbers/phone_numbers_update.py +185 -0
  215. thunderphone-0.1.0/thunderphone/generated/api/phone_numbers/phone_numbers_verify_voip.py +185 -0
  216. thunderphone-0.1.0/thunderphone/generated/api/phone_numbers/phone_numbers_versions_list.py +163 -0
  217. thunderphone-0.1.0/thunderphone/generated/api/provider_connections/__init__.py +1 -0
  218. thunderphone-0.1.0/thunderphone/generated/api/provider_connections/provider_connections_agents_delete.py +115 -0
  219. thunderphone-0.1.0/thunderphone/generated/api/provider_connections/provider_connections_agents_update.py +200 -0
  220. thunderphone-0.1.0/thunderphone/generated/api/provider_connections/provider_connections_api_key.py +184 -0
  221. thunderphone-0.1.0/thunderphone/generated/api/provider_connections/provider_connections_delete.py +107 -0
  222. thunderphone-0.1.0/thunderphone/generated/api/provider_connections/provider_connections_list.py +136 -0
  223. thunderphone-0.1.0/thunderphone/generated/api/provider_connections/provider_connections_partial_update.py +188 -0
  224. thunderphone-0.1.0/thunderphone/generated/api/provider_connections/provider_connections_retrieve.py +164 -0
  225. thunderphone-0.1.0/thunderphone/generated/api/provider_connections/provider_connections_sheets_configure.py +185 -0
  226. thunderphone-0.1.0/thunderphone/generated/api/provider_connections/provider_connections_sheets_inspect.py +181 -0
  227. thunderphone-0.1.0/thunderphone/generated/api/provider_connections/provider_connections_sheets_picker_token.py +212 -0
  228. thunderphone-0.1.0/thunderphone/generated/api/publishable_key/__init__.py +1 -0
  229. thunderphone-0.1.0/thunderphone/generated/api/publishable_key/publishable_key_create.py +169 -0
  230. thunderphone-0.1.0/thunderphone/generated/api/publishable_key/publishable_key_delete.py +106 -0
  231. thunderphone-0.1.0/thunderphone/generated/api/publishable_key/publishable_key_list.py +141 -0
  232. thunderphone-0.1.0/thunderphone/generated/api/publishable_key/publishable_key_partial_update.py +187 -0
  233. thunderphone-0.1.0/thunderphone/generated/api/publishable_key/publishable_key_retrieve.py +163 -0
  234. thunderphone-0.1.0/thunderphone/generated/api/publishable_key/publishable_key_transfer.py +183 -0
  235. thunderphone-0.1.0/thunderphone/generated/api/realtime/__init__.py +1 -0
  236. thunderphone-0.1.0/thunderphone/generated/api/realtime/realtime_sessions_create.py +169 -0
  237. thunderphone-0.1.0/thunderphone/generated/api/realtime/realtime_sessions_live_transcripts.py +189 -0
  238. thunderphone-0.1.0/thunderphone/generated/api/simulations/__init__.py +1 -0
  239. thunderphone-0.1.0/thunderphone/generated/api/simulations/simulations_batches_create.py +168 -0
  240. thunderphone-0.1.0/thunderphone/generated/api/simulations/simulations_batches_list.py +141 -0
  241. thunderphone-0.1.0/thunderphone/generated/api/simulations/simulations_batches_retrieve.py +155 -0
  242. thunderphone-0.1.0/thunderphone/generated/api/simulations/simulations_create.py +168 -0
  243. thunderphone-0.1.0/thunderphone/generated/api/simulations/simulations_list.py +141 -0
  244. thunderphone-0.1.0/thunderphone/generated/api/status/__init__.py +1 -0
  245. thunderphone-0.1.0/thunderphone/generated/api/status/status_heartbeat_list.py +136 -0
  246. thunderphone-0.1.0/thunderphone/generated/api/suites/__init__.py +1 -0
  247. thunderphone-0.1.0/thunderphone/generated/api/suites/suites_create.py +169 -0
  248. thunderphone-0.1.0/thunderphone/generated/api/suites/suites_delete.py +107 -0
  249. thunderphone-0.1.0/thunderphone/generated/api/suites/suites_list.py +141 -0
  250. thunderphone-0.1.0/thunderphone/generated/api/suites/suites_partial_update.py +186 -0
  251. thunderphone-0.1.0/thunderphone/generated/api/suites/suites_retrieve.py +164 -0
  252. thunderphone-0.1.0/thunderphone/generated/api/test_call_batches/__init__.py +1 -0
  253. thunderphone-0.1.0/thunderphone/generated/api/test_call_batches/test_call_batches_create.py +168 -0
  254. thunderphone-0.1.0/thunderphone/generated/api/test_call_batches/test_call_batches_list.py +141 -0
  255. thunderphone-0.1.0/thunderphone/generated/api/test_call_batches/test_call_batches_retrieve.py +155 -0
  256. thunderphone-0.1.0/thunderphone/generated/api/test_calls/__init__.py +1 -0
  257. thunderphone-0.1.0/thunderphone/generated/api/test_calls/test_calls_create.py +168 -0
  258. thunderphone-0.1.0/thunderphone/generated/api/test_calls/test_calls_list.py +141 -0
  259. thunderphone-0.1.0/thunderphone/generated/api/validation_examples/__init__.py +1 -0
  260. thunderphone-0.1.0/thunderphone/generated/api/validation_examples/validation_examples_audio_retrieve.py +177 -0
  261. thunderphone-0.1.0/thunderphone/generated/api/validation_examples/validation_examples_delete.py +106 -0
  262. thunderphone-0.1.0/thunderphone/generated/api/validation_examples/validation_examples_list.py +136 -0
  263. thunderphone-0.1.0/thunderphone/generated/api/validation_examples/validation_examples_partial_update.py +187 -0
  264. thunderphone-0.1.0/thunderphone/generated/api/validation_examples/validation_examples_replay.py +185 -0
  265. thunderphone-0.1.0/thunderphone/generated/api/validation_examples/validation_examples_retrieve.py +163 -0
  266. thunderphone-0.1.0/thunderphone/generated/api/validation_runs/__init__.py +1 -0
  267. thunderphone-0.1.0/thunderphone/generated/api/validation_runs/validation_runs_retrieve.py +163 -0
  268. thunderphone-0.1.0/thunderphone/generated/api/validation_sets/__init__.py +1 -0
  269. thunderphone-0.1.0/thunderphone/generated/api/validation_sets/validation_sets_list.py +136 -0
  270. thunderphone-0.1.0/thunderphone/generated/api/voices/__init__.py +1 -0
  271. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_clones_create.py +166 -0
  272. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_clones_delete.py +106 -0
  273. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_clones_list.py +141 -0
  274. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_clones_partial_update.py +185 -0
  275. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_clones_preview_list.py +163 -0
  276. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_clones_retrieve.py +163 -0
  277. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_list.py +140 -0
  278. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_policy_list.py +136 -0
  279. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_preview_create.py +168 -0
  280. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_previews_retrieve.py +163 -0
  281. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_quota_requests_create.py +168 -0
  282. thunderphone-0.1.0/thunderphone/generated/api/voices/voices_quota_requests_current_list.py +136 -0
  283. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/__init__.py +1 -0
  284. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_available_numbers_list.py +174 -0
  285. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_create.py +168 -0
  286. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_delete.py +106 -0
  287. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_import_numbers.py +184 -0
  288. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_list.py +141 -0
  289. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_partial_update.py +187 -0
  290. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_provision_number.py +189 -0
  291. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_search_numbers_list.py +218 -0
  292. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_suggest_name_create.py +171 -0
  293. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_test_create.py +168 -0
  294. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_twilio_subaccounts.py +183 -0
  295. thunderphone-0.1.0/thunderphone/generated/api/voip_connections/voip_connections_twilio_subaccounts_connect.py +174 -0
  296. thunderphone-0.1.0/thunderphone/generated/api/webhook/__init__.py +1 -0
  297. thunderphone-0.1.0/thunderphone/generated/api/webhook/webhook_bulk_update.py +171 -0
  298. thunderphone-0.1.0/thunderphone/generated/api/webhook/webhook_list.py +136 -0
  299. thunderphone-0.1.0/thunderphone/generated/api/webhook/webhook_update.py +168 -0
  300. thunderphone-0.1.0/thunderphone/generated/api/webhooks/__init__.py +1 -0
  301. thunderphone-0.1.0/thunderphone/generated/api/webhooks/developer_webhook_endpoints_test.py +180 -0
  302. thunderphone-0.1.0/thunderphone/generated/api/widget/__init__.py +1 -0
  303. thunderphone-0.1.0/thunderphone/generated/api/widget/widget_session_create.py +169 -0
  304. thunderphone-0.1.0/thunderphone/generated/client.py +282 -0
  305. thunderphone-0.1.0/thunderphone/generated/errors.py +16 -0
  306. thunderphone-0.1.0/thunderphone/generated/models/__init__.py +985 -0
  307. thunderphone-0.1.0/thunderphone/generated/models/accent_enum.py +14 -0
  308. thunderphone-0.1.0/thunderphone/generated/models/ack_prompt_request_request.py +71 -0
  309. thunderphone-0.1.0/thunderphone/generated/models/acknowledgement_feedback_mode_enum.py +9 -0
  310. thunderphone-0.1.0/thunderphone/generated/models/acknowledgement_prompt.py +78 -0
  311. thunderphone-0.1.0/thunderphone/generated/models/acknowledgement_prompt_mode_288_enum.py +9 -0
  312. thunderphone-0.1.0/thunderphone/generated/models/acknowledgement_prompt_mode_836_enum.py +9 -0
  313. thunderphone-0.1.0/thunderphone/generated/models/agent.py +1743 -0
  314. thunderphone-0.1.0/thunderphone/generated/models/agent_import.py +219 -0
  315. thunderphone-0.1.0/thunderphone/generated/models/agent_import_create_auth_mode_enum.py +9 -0
  316. thunderphone-0.1.0/thunderphone/generated/models/agent_import_create_request.py +96 -0
  317. thunderphone-0.1.0/thunderphone/generated/models/agent_import_create_source_enum.py +11 -0
  318. thunderphone-0.1.0/thunderphone/generated/models/agent_import_item.py +149 -0
  319. thunderphone-0.1.0/thunderphone/generated/models/agent_import_item_status_enum.py +11 -0
  320. thunderphone-0.1.0/thunderphone/generated/models/agent_import_progress.py +48 -0
  321. thunderphone-0.1.0/thunderphone/generated/models/agent_import_report.py +48 -0
  322. thunderphone-0.1.0/thunderphone/generated/models/agent_import_summary.py +153 -0
  323. thunderphone-0.1.0/thunderphone/generated/models/agent_imports_commit_body.py +26 -0
  324. thunderphone-0.1.0/thunderphone/generated/models/agent_integration.py +135 -0
  325. thunderphone-0.1.0/thunderphone/generated/models/agent_integration_request.py +109 -0
  326. thunderphone-0.1.0/thunderphone/generated/models/agent_integrations_item.py +48 -0
  327. thunderphone-0.1.0/thunderphone/generated/models/agent_mcp_servers_item.py +48 -0
  328. thunderphone-0.1.0/thunderphone/generated/models/agent_provider_operations_request.py +112 -0
  329. thunderphone-0.1.0/thunderphone/generated/models/agent_provider_operations_request_allowed_operations_type_0.py +48 -0
  330. thunderphone-0.1.0/thunderphone/generated/models/agent_request.py +1531 -0
  331. thunderphone-0.1.0/thunderphone/generated/models/agent_tool_collision_warnings_item.py +48 -0
  332. thunderphone-0.1.0/thunderphone/generated/models/agent_transfer.py +95 -0
  333. thunderphone-0.1.0/thunderphone/generated/models/agent_transfer_request_request.py +91 -0
  334. thunderphone-0.1.0/thunderphone/generated/models/agent_variant.py +340 -0
  335. thunderphone-0.1.0/thunderphone/generated/models/agent_variant_request.py +314 -0
  336. thunderphone-0.1.0/thunderphone/generated/models/agent_write_request.py +1565 -0
  337. thunderphone-0.1.0/thunderphone/generated/models/alert_acknowledgement.py +70 -0
  338. thunderphone-0.1.0/thunderphone/generated/models/alert_delivery.py +70 -0
  339. thunderphone-0.1.0/thunderphone/generated/models/api_key_created.py +155 -0
  340. thunderphone-0.1.0/thunderphone/generated/models/apply_investigation_request.py +109 -0
  341. thunderphone-0.1.0/thunderphone/generated/models/audio_conditions_request.py +105 -0
  342. thunderphone-0.1.0/thunderphone/generated/models/audio_context_mode_3d0_enum.py +9 -0
  343. thunderphone-0.1.0/thunderphone/generated/models/auth_mode_f69_enum.py +9 -0
  344. thunderphone-0.1.0/thunderphone/generated/models/auto_ack_request.py +71 -0
  345. thunderphone-0.1.0/thunderphone/generated/models/available_numbers.py +84 -0
  346. thunderphone-0.1.0/thunderphone/generated/models/available_numbers_results_item.py +48 -0
  347. thunderphone-0.1.0/thunderphone/generated/models/balance_transaction.py +162 -0
  348. thunderphone-0.1.0/thunderphone/generated/models/balance_transaction_kind_enum.py +14 -0
  349. thunderphone-0.1.0/thunderphone/generated/models/billing_account.py +269 -0
  350. thunderphone-0.1.0/thunderphone/generated/models/billing_setup_intent_create_body.py +26 -0
  351. thunderphone-0.1.0/thunderphone/generated/models/blank_enum.py +8 -0
  352. thunderphone-0.1.0/thunderphone/generated/models/call.py +666 -0
  353. thunderphone-0.1.0/thunderphone/generated/models/call_audio.py +62 -0
  354. thunderphone-0.1.0/thunderphone/generated/models/call_direction_enum.py +11 -0
  355. thunderphone-0.1.0/thunderphone/generated/models/call_export.py +92 -0
  356. thunderphone-0.1.0/thunderphone/generated/models/call_export_calls_item.py +48 -0
  357. thunderphone-0.1.0/thunderphone/generated/models/call_grade.py +270 -0
  358. thunderphone-0.1.0/thunderphone/generated/models/call_grade_status_enum.py +11 -0
  359. thunderphone-0.1.0/thunderphone/generated/models/call_issue_report.py +338 -0
  360. thunderphone-0.1.0/thunderphone/generated/models/call_issue_report_create_request.py +183 -0
  361. thunderphone-0.1.0/thunderphone/generated/models/call_issue_report_linked_test_cases_item.py +48 -0
  362. thunderphone-0.1.0/thunderphone/generated/models/call_list_response.py +100 -0
  363. thunderphone-0.1.0/thunderphone/generated/models/call_outcome_enum.py +11 -0
  364. thunderphone-0.1.0/thunderphone/generated/models/call_status_enum.py +10 -0
  365. thunderphone-0.1.0/thunderphone/generated/models/call_tool_snapshot_item.py +48 -0
  366. thunderphone-0.1.0/thunderphone/generated/models/call_transcript.py +84 -0
  367. thunderphone-0.1.0/thunderphone/generated/models/call_whisper_request.py +62 -0
  368. thunderphone-0.1.0/thunderphone/generated/models/caller_behavior_request.py +80 -0
  369. thunderphone-0.1.0/thunderphone/generated/models/calls_grade_body.py +26 -0
  370. thunderphone-0.1.0/thunderphone/generated/models/calls_history_list_response_200_item.py +48 -0
  371. thunderphone-0.1.0/thunderphone/generated/models/calls_listen_body.py +26 -0
  372. thunderphone-0.1.0/thunderphone/generated/models/campaign.py +282 -0
  373. thunderphone-0.1.0/thunderphone/generated/models/campaign_action_request.py +62 -0
  374. thunderphone-0.1.0/thunderphone/generated/models/campaign_contact.py +160 -0
  375. thunderphone-0.1.0/thunderphone/generated/models/campaign_contact_input_request.py +96 -0
  376. thunderphone-0.1.0/thunderphone/generated/models/campaign_contact_status_enum.py +13 -0
  377. thunderphone-0.1.0/thunderphone/generated/models/campaign_contacts_added.py +104 -0
  378. thunderphone-0.1.0/thunderphone/generated/models/campaign_contacts_added_errors_item.py +48 -0
  379. thunderphone-0.1.0/thunderphone/generated/models/campaign_contacts_request.py +82 -0
  380. thunderphone-0.1.0/thunderphone/generated/models/campaign_contacts_upload_request.py +88 -0
  381. thunderphone-0.1.0/thunderphone/generated/models/campaign_detail_response.py +304 -0
  382. thunderphone-0.1.0/thunderphone/generated/models/campaign_request.py +203 -0
  383. thunderphone-0.1.0/thunderphone/generated/models/campaign_stats.py +122 -0
  384. thunderphone-0.1.0/thunderphone/generated/models/campaign_stats_by_status.py +48 -0
  385. thunderphone-0.1.0/thunderphone/generated/models/campaign_stats_recent_calls_item.py +48 -0
  386. thunderphone-0.1.0/thunderphone/generated/models/campaigns_action_action.py +10 -0
  387. thunderphone-0.1.0/thunderphone/generated/models/channel_enum.py +9 -0
  388. thunderphone-0.1.0/thunderphone/generated/models/config_source_enum.py +8 -0
  389. thunderphone-0.1.0/thunderphone/generated/models/connection_name_suggestion.py +70 -0
  390. thunderphone-0.1.0/thunderphone/generated/models/connection_test.py +96 -0
  391. thunderphone-0.1.0/thunderphone/generated/models/connection_test_test_result.py +48 -0
  392. thunderphone-0.1.0/thunderphone/generated/models/consent_announcement_attestation.py +166 -0
  393. thunderphone-0.1.0/thunderphone/generated/models/consent_announcement_attestation_create_request.py +108 -0
  394. thunderphone-0.1.0/thunderphone/generated/models/consent_announcement_attestation_status_enum.py +10 -0
  395. thunderphone-0.1.0/thunderphone/generated/models/create_invite_request.py +82 -0
  396. thunderphone-0.1.0/thunderphone/generated/models/create_validation_example_request.py +95 -0
  397. thunderphone-0.1.0/thunderphone/generated/models/custom_voice.py +153 -0
  398. thunderphone-0.1.0/thunderphone/generated/models/default_payment_method_request.py +62 -0
  399. thunderphone-0.1.0/thunderphone/generated/models/deploy_agent_request.py +87 -0
  400. thunderphone-0.1.0/thunderphone/generated/models/detail_message.py +62 -0
  401. thunderphone-0.1.0/thunderphone/generated/models/developer_api_key.py +147 -0
  402. thunderphone-0.1.0/thunderphone/generated/models/developer_api_key_create_request.py +62 -0
  403. thunderphone-0.1.0/thunderphone/generated/models/developer_webhook_endpoint.py +164 -0
  404. thunderphone-0.1.0/thunderphone/generated/models/developer_webhook_endpoint_create_update_request.py +137 -0
  405. thunderphone-0.1.0/thunderphone/generated/models/developer_webhook_endpoint_create_update_status_enum.py +10 -0
  406. thunderphone-0.1.0/thunderphone/generated/models/developer_webhook_endpoints_test_body.py +26 -0
  407. thunderphone-0.1.0/thunderphone/generated/models/developer_webhook_test_delivery.py +109 -0
  408. thunderphone-0.1.0/thunderphone/generated/models/direction_a4b_enum.py +9 -0
  409. thunderphone-0.1.0/thunderphone/generated/models/direction_d75_enum.py +9 -0
  410. thunderphone-0.1.0/thunderphone/generated/models/disfluencies_enum.py +9 -0
  411. thunderphone-0.1.0/thunderphone/generated/models/document_batch_upload_request.py +120 -0
  412. thunderphone-0.1.0/thunderphone/generated/models/document_imported.py +97 -0
  413. thunderphone-0.1.0/thunderphone/generated/models/document_imported_warnings_item.py +48 -0
  414. thunderphone-0.1.0/thunderphone/generated/models/document_text_request.py +70 -0
  415. thunderphone-0.1.0/thunderphone/generated/models/document_upload_request.py +88 -0
  416. thunderphone-0.1.0/thunderphone/generated/models/documents_created.py +105 -0
  417. thunderphone-0.1.0/thunderphone/generated/models/documents_created_warnings_item.py +48 -0
  418. thunderphone-0.1.0/thunderphone/generated/models/draft_acknowledgement_feedback_mode_enum.py +9 -0
  419. thunderphone-0.1.0/thunderphone/generated/models/draft_acknowledgement_prompt_mode_enum.py +9 -0
  420. thunderphone-0.1.0/thunderphone/generated/models/draft_audio_context_mode_enum.py +9 -0
  421. thunderphone-0.1.0/thunderphone/generated/models/draft_inbound_speak_order_enum.py +9 -0
  422. thunderphone-0.1.0/thunderphone/generated/models/draft_outbound_speak_order_enum.py +9 -0
  423. thunderphone-0.1.0/thunderphone/generated/models/draft_play_sound_asset_enum.py +10 -0
  424. thunderphone-0.1.0/thunderphone/generated/models/draft_product_enum.py +13 -0
  425. thunderphone-0.1.0/thunderphone/generated/models/draft_thinking_level_enum.py +9 -0
  426. thunderphone-0.1.0/thunderphone/generated/models/draft_voicemail_action_enum.py +10 -0
  427. thunderphone-0.1.0/thunderphone/generated/models/duplicate_agent_request.py +74 -0
  428. thunderphone-0.1.0/thunderphone/generated/models/endpoint_method_enum.py +12 -0
  429. thunderphone-0.1.0/thunderphone/generated/models/events_enum.py +20 -0
  430. thunderphone-0.1.0/thunderphone/generated/models/execute_test_scenarios_request.py +125 -0
  431. thunderphone-0.1.0/thunderphone/generated/models/experiment.py +188 -0
  432. thunderphone-0.1.0/thunderphone/generated/models/experiment_sample.py +129 -0
  433. thunderphone-0.1.0/thunderphone/generated/models/experiment_status_enum.py +11 -0
  434. thunderphone-0.1.0/thunderphone/generated/models/fix_lane_enum.py +14 -0
  435. thunderphone-0.1.0/thunderphone/generated/models/frequency_enum.py +10 -0
  436. thunderphone-0.1.0/thunderphone/generated/models/function_spec_request.py +95 -0
  437. thunderphone-0.1.0/thunderphone/generated/models/gender_enum.py +9 -0
  438. thunderphone-0.1.0/thunderphone/generated/models/generate_test_scenarios_request.py +80 -0
  439. thunderphone-0.1.0/thunderphone/generated/models/glitch_tip_delivery.py +70 -0
  440. thunderphone-0.1.0/thunderphone/generated/models/goal_achievement_enum.py +10 -0
  441. thunderphone-0.1.0/thunderphone/generated/models/health.py +62 -0
  442. thunderphone-0.1.0/thunderphone/generated/models/heartbeat.py +76 -0
  443. thunderphone-0.1.0/thunderphone/generated/models/heartbeat_products_item.py +48 -0
  444. thunderphone-0.1.0/thunderphone/generated/models/imported_numbers.py +100 -0
  445. thunderphone-0.1.0/thunderphone/generated/models/inbound_speak_order_enum.py +9 -0
  446. thunderphone-0.1.0/thunderphone/generated/models/inbound_status_enum.py +9 -0
  447. thunderphone-0.1.0/thunderphone/generated/models/integration_create_update_request.py +163 -0
  448. thunderphone-0.1.0/thunderphone/generated/models/integration_create_update_validation_status_enum.py +10 -0
  449. thunderphone-0.1.0/thunderphone/generated/models/integration_header.py +70 -0
  450. thunderphone-0.1.0/thunderphone/generated/models/integration_header_request.py +70 -0
  451. thunderphone-0.1.0/thunderphone/generated/models/integration_test.py +122 -0
  452. thunderphone-0.1.0/thunderphone/generated/models/integration_test_request_request.py +129 -0
  453. thunderphone-0.1.0/thunderphone/generated/models/integration_test_request_request_headers.py +48 -0
  454. thunderphone-0.1.0/thunderphone/generated/models/integration_test_response_headers.py +48 -0
  455. thunderphone-0.1.0/thunderphone/generated/models/integration_transfer.py +95 -0
  456. thunderphone-0.1.0/thunderphone/generated/models/integration_transfer_request.py +91 -0
  457. thunderphone-0.1.0/thunderphone/generated/models/investigation_detail.py +378 -0
  458. thunderphone-0.1.0/thunderphone/generated/models/investigation_detail_experiments_item.py +48 -0
  459. thunderphone-0.1.0/thunderphone/generated/models/investigation_detail_prompt_drift.py +48 -0
  460. thunderphone-0.1.0/thunderphone/generated/models/investigation_detail_search_result_type_0.py +48 -0
  461. thunderphone-0.1.0/thunderphone/generated/models/investigation_list.py +276 -0
  462. thunderphone-0.1.0/thunderphone/generated/models/investigations_hypotheses_body.py +26 -0
  463. thunderphone-0.1.0/thunderphone/generated/models/investigations_search_body.py +26 -0
  464. thunderphone-0.1.0/thunderphone/generated/models/invite_accepted.py +71 -0
  465. thunderphone-0.1.0/thunderphone/generated/models/invite_detail.py +145 -0
  466. thunderphone-0.1.0/thunderphone/generated/models/invites_accept_body.py +26 -0
  467. thunderphone-0.1.0/thunderphone/generated/models/invites_decline_body.py +26 -0
  468. thunderphone-0.1.0/thunderphone/generated/models/invites_request_access_body.py +26 -0
  469. thunderphone-0.1.0/thunderphone/generated/models/issue_cluster_card.py +380 -0
  470. thunderphone-0.1.0/thunderphone/generated/models/issue_cluster_card_fix_lane_source_enum.py +10 -0
  471. thunderphone-0.1.0/thunderphone/generated/models/issue_cluster_card_investigation_summary_type_0.py +48 -0
  472. thunderphone-0.1.0/thunderphone/generated/models/issue_cluster_card_status_enum.py +12 -0
  473. thunderphone-0.1.0/thunderphone/generated/models/issue_cluster_page.py +100 -0
  474. thunderphone-0.1.0/thunderphone/generated/models/issue_cluster_update.py +95 -0
  475. thunderphone-0.1.0/thunderphone/generated/models/issue_cluster_update_fix_lane_source_enum.py +9 -0
  476. thunderphone-0.1.0/thunderphone/generated/models/issue_cluster_update_status_enum.py +11 -0
  477. thunderphone-0.1.0/thunderphone/generated/models/issue_escalation.py +139 -0
  478. thunderphone-0.1.0/thunderphone/generated/models/issue_escalation_create_request.py +62 -0
  479. thunderphone-0.1.0/thunderphone/generated/models/issue_escalation_status_enum.py +10 -0
  480. thunderphone-0.1.0/thunderphone/generated/models/issue_report_page.py +100 -0
  481. thunderphone-0.1.0/thunderphone/generated/models/issue_reports_updated.py +62 -0
  482. thunderphone-0.1.0/thunderphone/generated/models/json_rpc_response.py +91 -0
  483. thunderphone-0.1.0/thunderphone/generated/models/jsonrpc_enum.py +8 -0
  484. thunderphone-0.1.0/thunderphone/generated/models/kind_c85_enum.py +10 -0
  485. thunderphone-0.1.0/thunderphone/generated/models/knowledge_base.py +108 -0
  486. thunderphone-0.1.0/thunderphone/generated/models/knowledge_base_request.py +73 -0
  487. thunderphone-0.1.0/thunderphone/generated/models/knowledge_bases_documents_retry_body.py +26 -0
  488. thunderphone-0.1.0/thunderphone/generated/models/knowledge_document.py +225 -0
  489. thunderphone-0.1.0/thunderphone/generated/models/knowledge_document_detail.py +341 -0
  490. thunderphone-0.1.0/thunderphone/generated/models/knowledge_document_detail_uploaded_by_type_0.py +48 -0
  491. thunderphone-0.1.0/thunderphone/generated/models/knowledge_document_request.py +70 -0
  492. thunderphone-0.1.0/thunderphone/generated/models/knowledge_documents_refresh_body.py +26 -0
  493. thunderphone-0.1.0/thunderphone/generated/models/knowledge_documents_retry_body.py +26 -0
  494. thunderphone-0.1.0/thunderphone/generated/models/knowledge_search_request.py +86 -0
  495. thunderphone-0.1.0/thunderphone/generated/models/knowledge_search_results.py +82 -0
  496. thunderphone-0.1.0/thunderphone/generated/models/knowledge_search_results_results_item.py +48 -0
  497. thunderphone-0.1.0/thunderphone/generated/models/leave_create_body.py +26 -0
  498. thunderphone-0.1.0/thunderphone/generated/models/listen_session.py +78 -0
  499. thunderphone-0.1.0/thunderphone/generated/models/live_transcript_toggle_request.py +62 -0
  500. thunderphone-0.1.0/thunderphone/generated/models/live_transcripts.py +70 -0
  501. thunderphone-0.1.0/thunderphone/generated/models/mcp_request_request.py +104 -0
  502. thunderphone-0.1.0/thunderphone/generated/models/mcp_request_request_params.py +48 -0
  503. thunderphone-0.1.0/thunderphone/generated/models/mcp_server.py +188 -0
  504. thunderphone-0.1.0/thunderphone/generated/models/mcp_server_create_update_request.py +126 -0
  505. thunderphone-0.1.0/thunderphone/generated/models/mcp_server_create_update_transport_enum.py +8 -0
  506. thunderphone-0.1.0/thunderphone/generated/models/mcp_server_header_write_request.py +73 -0
  507. thunderphone-0.1.0/thunderphone/generated/models/mcp_server_headers_item.py +48 -0
  508. thunderphone-0.1.0/thunderphone/generated/models/mcp_server_transport_enum.py +8 -0
  509. thunderphone-0.1.0/thunderphone/generated/models/mcp_servers_sync_tools_body.py +26 -0
  510. thunderphone-0.1.0/thunderphone/generated/models/members_transfer_ownership_body.py +26 -0
  511. thunderphone-0.1.0/thunderphone/generated/models/method_enum.py +12 -0
  512. thunderphone-0.1.0/thunderphone/generated/models/mic_session.py +86 -0
  513. thunderphone-0.1.0/thunderphone/generated/models/mic_session_request_request.py +62 -0
  514. thunderphone-0.1.0/thunderphone/generated/models/mode_559_enum.py +9 -0
  515. thunderphone-0.1.0/thunderphone/generated/models/mode_ffb_enum.py +9 -0
  516. thunderphone-0.1.0/thunderphone/generated/models/monitoring_azure_alert_create_body.py +48 -0
  517. thunderphone-0.1.0/thunderphone/generated/models/monitoring_glitchtip_alert_create_body.py +48 -0
  518. thunderphone-0.1.0/thunderphone/generated/models/noise_asset_enum.py +12 -0
  519. thunderphone-0.1.0/thunderphone/generated/models/number_summary.py +78 -0
  520. thunderphone-0.1.0/thunderphone/generated/models/number_verification.py +126 -0
  521. thunderphone-0.1.0/thunderphone/generated/models/onboarding_agent_talk_skip_body.py +26 -0
  522. thunderphone-0.1.0/thunderphone/generated/models/onboarding_dismiss_create_body.py +26 -0
  523. thunderphone-0.1.0/thunderphone/generated/models/onboarding_undismiss_create_body.py +26 -0
  524. thunderphone-0.1.0/thunderphone/generated/models/org_invite.py +138 -0
  525. thunderphone-0.1.0/thunderphone/generated/models/org_member.py +125 -0
  526. thunderphone-0.1.0/thunderphone/generated/models/org_member_role_enum.py +10 -0
  527. thunderphone-0.1.0/thunderphone/generated/models/organization.py +88 -0
  528. thunderphone-0.1.0/thunderphone/generated/models/organization_integration.py +180 -0
  529. thunderphone-0.1.0/thunderphone/generated/models/organization_onboarding.py +111 -0
  530. thunderphone-0.1.0/thunderphone/generated/models/organization_onboarding_steps.py +48 -0
  531. thunderphone-0.1.0/thunderphone/generated/models/organization_request.py +62 -0
  532. thunderphone-0.1.0/thunderphone/generated/models/organization_validation_examples.py +76 -0
  533. thunderphone-0.1.0/thunderphone/generated/models/organization_webhook.py +88 -0
  534. thunderphone-0.1.0/thunderphone/generated/models/organization_webhook_request.py +62 -0
  535. thunderphone-0.1.0/thunderphone/generated/models/outbound_dial_state_enum.py +12 -0
  536. thunderphone-0.1.0/thunderphone/generated/models/outbound_speak_order_enum.py +9 -0
  537. thunderphone-0.1.0/thunderphone/generated/models/outbound_status_enum.py +9 -0
  538. thunderphone-0.1.0/thunderphone/generated/models/outbound_tcpa_confirmation.py +142 -0
  539. thunderphone-0.1.0/thunderphone/generated/models/outbound_tcpa_confirmation_create_request.py +89 -0
  540. thunderphone-0.1.0/thunderphone/generated/models/outbound_tcpa_confirmation_status_enum.py +10 -0
  541. thunderphone-0.1.0/thunderphone/generated/models/pace_enum.py +10 -0
  542. thunderphone-0.1.0/thunderphone/generated/models/party_numbers.py +76 -0
  543. thunderphone-0.1.0/thunderphone/generated/models/party_numbers_numbers_item.py +48 -0
  544. thunderphone-0.1.0/thunderphone/generated/models/patched_agent_import_item_patch_request.py +120 -0
  545. thunderphone-0.1.0/thunderphone/generated/models/patched_agent_integration_request.py +108 -0
  546. thunderphone-0.1.0/thunderphone/generated/models/patched_agent_variant_request.py +313 -0
  547. thunderphone-0.1.0/thunderphone/generated/models/patched_agent_write_request.py +1565 -0
  548. thunderphone-0.1.0/thunderphone/generated/models/patched_auto_reload_request.py +104 -0
  549. thunderphone-0.1.0/thunderphone/generated/models/patched_call_issue_report_bulk_update_request.py +127 -0
  550. thunderphone-0.1.0/thunderphone/generated/models/patched_call_issue_report_update_request.py +74 -0
  551. thunderphone-0.1.0/thunderphone/generated/models/patched_campaign_request.py +205 -0
  552. thunderphone-0.1.0/thunderphone/generated/models/patched_developer_webhook_endpoint_create_update_request.py +137 -0
  553. thunderphone-0.1.0/thunderphone/generated/models/patched_document_text_request.py +71 -0
  554. thunderphone-0.1.0/thunderphone/generated/models/patched_document_upload_request.py +94 -0
  555. thunderphone-0.1.0/thunderphone/generated/models/patched_issue_cluster_update_request.py +125 -0
  556. thunderphone-0.1.0/thunderphone/generated/models/patched_knowledge_base_request.py +71 -0
  557. thunderphone-0.1.0/thunderphone/generated/models/patched_mcp_server_create_update_request.py +126 -0
  558. thunderphone-0.1.0/thunderphone/generated/models/patched_member_role_request_request.py +71 -0
  559. thunderphone-0.1.0/thunderphone/generated/models/patched_organization_request.py +62 -0
  560. thunderphone-0.1.0/thunderphone/generated/models/patched_organization_webhook_request.py +62 -0
  561. thunderphone-0.1.0/thunderphone/generated/models/patched_phone_number_update_request.py +144 -0
  562. thunderphone-0.1.0/thunderphone/generated/models/patched_provider_operations_request.py +85 -0
  563. thunderphone-0.1.0/thunderphone/generated/models/patched_provider_operations_request_allowed_operations.py +48 -0
  564. thunderphone-0.1.0/thunderphone/generated/models/patched_publishable_key_update_request.py +150 -0
  565. thunderphone-0.1.0/thunderphone/generated/models/patched_suite_input_request.py +138 -0
  566. thunderphone-0.1.0/thunderphone/generated/models/patched_test_scenario_update_request.py +176 -0
  567. thunderphone-0.1.0/thunderphone/generated/models/patched_update_investigation_request.py +80 -0
  568. thunderphone-0.1.0/thunderphone/generated/models/patched_validation_example_update_request.py +150 -0
  569. thunderphone-0.1.0/thunderphone/generated/models/patched_validation_example_update_request_accepted_responses_item.py +48 -0
  570. thunderphone-0.1.0/thunderphone/generated/models/patched_voice_clone_update_request.py +80 -0
  571. thunderphone-0.1.0/thunderphone/generated/models/patched_voip_connection_update_request.py +97 -0
  572. thunderphone-0.1.0/thunderphone/generated/models/phone_number.py +217 -0
  573. thunderphone-0.1.0/thunderphone/generated/models/phone_number_label.py +96 -0
  574. thunderphone-0.1.0/thunderphone/generated/models/phone_number_label_write_request.py +70 -0
  575. thunderphone-0.1.0/thunderphone/generated/models/phone_number_limits.py +70 -0
  576. thunderphone-0.1.0/thunderphone/generated/models/phone_number_provision_request.py +89 -0
  577. thunderphone-0.1.0/thunderphone/generated/models/phone_number_released.py +78 -0
  578. thunderphone-0.1.0/thunderphone/generated/models/phone_number_source_enum.py +9 -0
  579. thunderphone-0.1.0/thunderphone/generated/models/phone_number_transfer.py +100 -0
  580. thunderphone-0.1.0/thunderphone/generated/models/phone_number_transfer_request_request.py +62 -0
  581. thunderphone-0.1.0/thunderphone/generated/models/phone_number_update.py +144 -0
  582. thunderphone-0.1.0/thunderphone/generated/models/phone_number_update_request.py +144 -0
  583. thunderphone-0.1.0/thunderphone/generated/models/phone_numbers_verify_voip_body.py +26 -0
  584. thunderphone-0.1.0/thunderphone/generated/models/place_call_request.py +206 -0
  585. thunderphone-0.1.0/thunderphone/generated/models/place_call_request_variables.py +63 -0
  586. thunderphone-0.1.0/thunderphone/generated/models/place_call_response.py +96 -0
  587. thunderphone-0.1.0/thunderphone/generated/models/place_call_response_status_enum.py +13 -0
  588. thunderphone-0.1.0/thunderphone/generated/models/play_sound_asset_4b4_enum.py +10 -0
  589. thunderphone-0.1.0/thunderphone/generated/models/product_235_enum.py +13 -0
  590. thunderphone-0.1.0/thunderphone/generated/models/product_b5b_enum.py +13 -0
  591. thunderphone-0.1.0/thunderphone/generated/models/promote_scenario_request.py +107 -0
  592. thunderphone-0.1.0/thunderphone/generated/models/prompt_analysis.py +141 -0
  593. thunderphone-0.1.0/thunderphone/generated/models/prompt_analysis_facts_type_0.py +48 -0
  594. thunderphone-0.1.0/thunderphone/generated/models/prompt_analysis_finding.py +84 -0
  595. thunderphone-0.1.0/thunderphone/generated/models/prompt_analysis_finding_params.py +48 -0
  596. thunderphone-0.1.0/thunderphone/generated/models/prompt_analysis_request_request.py +115 -0
  597. thunderphone-0.1.0/thunderphone/generated/models/prompt_candidate.py +175 -0
  598. thunderphone-0.1.0/thunderphone/generated/models/prompt_candidate_kind_enum.py +9 -0
  599. thunderphone-0.1.0/thunderphone/generated/models/prompt_candidate_source_enum.py +9 -0
  600. thunderphone-0.1.0/thunderphone/generated/models/prompt_choice_enum.py +9 -0
  601. thunderphone-0.1.0/thunderphone/generated/models/prompt_language_check.py +118 -0
  602. thunderphone-0.1.0/thunderphone/generated/models/prompt_language_request_request.py +73 -0
  603. thunderphone-0.1.0/thunderphone/generated/models/provider_api_key_request.py +62 -0
  604. thunderphone-0.1.0/thunderphone/generated/models/provider_connection.py +214 -0
  605. thunderphone-0.1.0/thunderphone/generated/models/provider_connection_agent_attachments_item.py +48 -0
  606. thunderphone-0.1.0/thunderphone/generated/models/provider_connection_allowed_operations.py +48 -0
  607. thunderphone-0.1.0/thunderphone/generated/models/provider_connection_effective_operations.py +48 -0
  608. thunderphone-0.1.0/thunderphone/generated/models/provider_connection_provider_metadata.py +48 -0
  609. thunderphone-0.1.0/thunderphone/generated/models/provider_connections.py +114 -0
  610. thunderphone-0.1.0/thunderphone/generated/models/provider_connections_agents_item.py +48 -0
  611. thunderphone-0.1.0/thunderphone/generated/models/provider_connections_providers.py +48 -0
  612. thunderphone-0.1.0/thunderphone/generated/models/provider_connections_sheets_picker_token_body.py +26 -0
  613. thunderphone-0.1.0/thunderphone/generated/models/provider_enum.py +12 -0
  614. thunderphone-0.1.0/thunderphone/generated/models/provisioned_number.py +105 -0
  615. thunderphone-0.1.0/thunderphone/generated/models/publishable_key.py +204 -0
  616. thunderphone-0.1.0/thunderphone/generated/models/publishable_key_create_request.py +141 -0
  617. thunderphone-0.1.0/thunderphone/generated/models/publishable_key_mode_enum.py +9 -0
  618. thunderphone-0.1.0/thunderphone/generated/models/publishable_key_transfer_request_request.py +91 -0
  619. thunderphone-0.1.0/thunderphone/generated/models/realtime_session.py +86 -0
  620. thunderphone-0.1.0/thunderphone/generated/models/realtime_session_request_request.py +143 -0
  621. thunderphone-0.1.0/thunderphone/generated/models/realtime_session_request_request_variables.py +65 -0
  622. thunderphone-0.1.0/thunderphone/generated/models/recording_mode_enum.py +10 -0
  623. thunderphone-0.1.0/thunderphone/generated/models/refresh_test_scenarios_request.py +73 -0
  624. thunderphone-0.1.0/thunderphone/generated/models/role_0b4_enum.py +9 -0
  625. thunderphone-0.1.0/thunderphone/generated/models/role_13f_enum.py +9 -0
  626. thunderphone-0.1.0/thunderphone/generated/models/run_enum.py +8 -0
  627. thunderphone-0.1.0/thunderphone/generated/models/run_experiment_request.py +84 -0
  628. thunderphone-0.1.0/thunderphone/generated/models/scenario_batch.py +316 -0
  629. thunderphone-0.1.0/thunderphone/generated/models/scenario_batch_matrix_dimensions.py +48 -0
  630. thunderphone-0.1.0/thunderphone/generated/models/scenario_batch_runs_item.py +48 -0
  631. thunderphone-0.1.0/thunderphone/generated/models/scenario_list.py +76 -0
  632. thunderphone-0.1.0/thunderphone/generated/models/scenario_mode_enum.py +9 -0
  633. thunderphone-0.1.0/thunderphone/generated/models/setup_intent.py +85 -0
  634. thunderphone-0.1.0/thunderphone/generated/models/setup_method_enum.py +11 -0
  635. thunderphone-0.1.0/thunderphone/generated/models/severity_enum.py +10 -0
  636. thunderphone-0.1.0/thunderphone/generated/models/sheets_picker_token.py +62 -0
  637. thunderphone-0.1.0/thunderphone/generated/models/simulation_batch.py +293 -0
  638. thunderphone-0.1.0/thunderphone/generated/models/simulation_batch_create_request.py +165 -0
  639. thunderphone-0.1.0/thunderphone/generated/models/simulation_batch_status_enum.py +11 -0
  640. thunderphone-0.1.0/thunderphone/generated/models/simulation_run.py +367 -0
  641. thunderphone-0.1.0/thunderphone/generated/models/simulation_run_create_request.py +172 -0
  642. thunderphone-0.1.0/thunderphone/generated/models/simulation_run_grade_type_0.py +48 -0
  643. thunderphone-0.1.0/thunderphone/generated/models/simulation_run_mode_enum.py +9 -0
  644. thunderphone-0.1.0/thunderphone/generated/models/simulation_run_status_enum.py +11 -0
  645. thunderphone-0.1.0/thunderphone/generated/models/simulation_run_transcript_item.py +48 -0
  646. thunderphone-0.1.0/thunderphone/generated/models/simulator_product_enum.py +9 -0
  647. thunderphone-0.1.0/thunderphone/generated/models/snr_db_enum.py +11 -0
  648. thunderphone-0.1.0/thunderphone/generated/models/source_1_ec_enum.py +11 -0
  649. thunderphone-0.1.0/thunderphone/generated/models/source_e1a_enum.py +9 -0
  650. thunderphone-0.1.0/thunderphone/generated/models/source_origin_enum.py +9 -0
  651. thunderphone-0.1.0/thunderphone/generated/models/source_type_enum.py +9 -0
  652. thunderphone-0.1.0/thunderphone/generated/models/speech_style_request.py +113 -0
  653. thunderphone-0.1.0/thunderphone/generated/models/split_testing.py +79 -0
  654. thunderphone-0.1.0/thunderphone/generated/models/split_testing_request_request.py +62 -0
  655. thunderphone-0.1.0/thunderphone/generated/models/spreadsheet_configure_request.py +70 -0
  656. thunderphone-0.1.0/thunderphone/generated/models/spreadsheet_inspect_request.py +62 -0
  657. thunderphone-0.1.0/thunderphone/generated/models/spreadsheet_overview.py +78 -0
  658. thunderphone-0.1.0/thunderphone/generated/models/start_investigation_request.py +114 -0
  659. thunderphone-0.1.0/thunderphone/generated/models/status_365_enum.py +15 -0
  660. thunderphone-0.1.0/thunderphone/generated/models/status_3f0_enum.py +13 -0
  661. thunderphone-0.1.0/thunderphone/generated/models/status_51e_enum.py +10 -0
  662. thunderphone-0.1.0/thunderphone/generated/models/status_83a_enum.py +11 -0
  663. thunderphone-0.1.0/thunderphone/generated/models/status_d47_enum.py +12 -0
  664. thunderphone-0.1.0/thunderphone/generated/models/status_de_4_enum.py +12 -0
  665. thunderphone-0.1.0/thunderphone/generated/models/status_df_2_enum.py +11 -0
  666. thunderphone-0.1.0/thunderphone/generated/models/status_e8c_enum.py +17 -0
  667. thunderphone-0.1.0/thunderphone/generated/models/storm_feedback_mode_enum.py +10 -0
  668. thunderphone-0.1.0/thunderphone/generated/models/submit_manual_candidate_request.py +81 -0
  669. thunderphone-0.1.0/thunderphone/generated/models/suite_criteria_input_request.py +71 -0
  670. thunderphone-0.1.0/thunderphone/generated/models/suite_input_request.py +138 -0
  671. thunderphone-0.1.0/thunderphone/generated/models/suite_schedule_input_request.py +112 -0
  672. thunderphone-0.1.0/thunderphone/generated/models/target_type_enum.py +9 -0
  673. thunderphone-0.1.0/thunderphone/generated/models/telephony_condition_request.py +62 -0
  674. thunderphone-0.1.0/thunderphone/generated/models/test_scenario.py +246 -0
  675. thunderphone-0.1.0/thunderphone/generated/models/test_scenario_create_request.py +177 -0
  676. thunderphone-0.1.0/thunderphone/generated/models/test_scenario_source_enum.py +10 -0
  677. thunderphone-0.1.0/thunderphone/generated/models/test_suite.py +224 -0
  678. thunderphone-0.1.0/thunderphone/generated/models/test_suite_criteria.py +48 -0
  679. thunderphone-0.1.0/thunderphone/generated/models/test_suite_runs_item.py +48 -0
  680. thunderphone-0.1.0/thunderphone/generated/models/test_suite_scenarios_item.py +48 -0
  681. thunderphone-0.1.0/thunderphone/generated/models/test_suite_schedule_type_0.py +48 -0
  682. thunderphone-0.1.0/thunderphone/generated/models/thinking_level_477_enum.py +9 -0
  683. thunderphone-0.1.0/thunderphone/generated/models/tool_definition_request.py +225 -0
  684. thunderphone-0.1.0/thunderphone/generated/models/tool_definition_request_headers.py +48 -0
  685. thunderphone-0.1.0/thunderphone/generated/models/tool_definition_request_mcp.py +48 -0
  686. thunderphone-0.1.0/thunderphone/generated/models/tool_definition_request_provider.py +48 -0
  687. thunderphone-0.1.0/thunderphone/generated/models/tool_endpoint_request.py +95 -0
  688. thunderphone-0.1.0/thunderphone/generated/models/tool_endpoint_request_headers.py +48 -0
  689. thunderphone-0.1.0/thunderphone/generated/models/tool_parameters_request.py +99 -0
  690. thunderphone-0.1.0/thunderphone/generated/models/tool_parameters_request_properties.py +48 -0
  691. thunderphone-0.1.0/thunderphone/generated/models/top_up_request.py +82 -0
  692. thunderphone-0.1.0/thunderphone/generated/models/top_up_response.py +85 -0
  693. thunderphone-0.1.0/thunderphone/generated/models/transcript_entry.py +132 -0
  694. thunderphone-0.1.0/thunderphone/generated/models/translate_prompt_request_request.py +73 -0
  695. thunderphone-0.1.0/thunderphone/generated/models/translated_prompt.py +118 -0
  696. thunderphone-0.1.0/thunderphone/generated/models/twilio_subaccount.py +92 -0
  697. thunderphone-0.1.0/thunderphone/generated/models/twilio_subaccount_connect_result.py +138 -0
  698. thunderphone-0.1.0/thunderphone/generated/models/twilio_subaccount_connect_result_status_enum.py +10 -0
  699. thunderphone-0.1.0/thunderphone/generated/models/twilio_subaccount_connect_results.py +78 -0
  700. thunderphone-0.1.0/thunderphone/generated/models/twilio_subaccount_discovery.py +94 -0
  701. thunderphone-0.1.0/thunderphone/generated/models/twilio_subaccount_parent.py +70 -0
  702. thunderphone-0.1.0/thunderphone/generated/models/update_investigation_status_enum.py +8 -0
  703. thunderphone-0.1.0/thunderphone/generated/models/url_document_request.py +84 -0
  704. thunderphone-0.1.0/thunderphone/generated/models/user_org.py +102 -0
  705. thunderphone-0.1.0/thunderphone/generated/models/validation_example.py +295 -0
  706. thunderphone-0.1.0/thunderphone/generated/models/validation_example_accepted_responses_item.py +48 -0
  707. thunderphone-0.1.0/thunderphone/generated/models/validation_example_context_item.py +48 -0
  708. thunderphone-0.1.0/thunderphone/generated/models/validation_example_original_response.py +48 -0
  709. thunderphone-0.1.0/thunderphone/generated/models/validation_example_update_status_enum.py +10 -0
  710. thunderphone-0.1.0/thunderphone/generated/models/validation_examples.py +76 -0
  711. thunderphone-0.1.0/thunderphone/generated/models/validation_examples_replay_body.py +26 -0
  712. thunderphone-0.1.0/thunderphone/generated/models/validation_replay_result.py +114 -0
  713. thunderphone-0.1.0/thunderphone/generated/models/validation_replay_result_replay_metadata.py +48 -0
  714. thunderphone-0.1.0/thunderphone/generated/models/validation_replay_result_replayed_output.py +48 -0
  715. thunderphone-0.1.0/thunderphone/generated/models/validation_run.py +306 -0
  716. thunderphone-0.1.0/thunderphone/generated/models/validation_run_regressions_item.py +48 -0
  717. thunderphone-0.1.0/thunderphone/generated/models/validation_run_request_request.py +70 -0
  718. thunderphone-0.1.0/thunderphone/generated/models/validation_run_results_item.py +48 -0
  719. thunderphone-0.1.0/thunderphone/generated/models/validation_runs.py +76 -0
  720. thunderphone-0.1.0/thunderphone/generated/models/validation_sets.py +76 -0
  721. thunderphone-0.1.0/thunderphone/generated/models/validation_sets_agents_item.py +48 -0
  722. thunderphone-0.1.0/thunderphone/generated/models/validation_status.py +103 -0
  723. thunderphone-0.1.0/thunderphone/generated/models/validation_status_c53_enum.py +10 -0
  724. thunderphone-0.1.0/thunderphone/generated/models/variant_stats.py +117 -0
  725. thunderphone-0.1.0/thunderphone/generated/models/version_page.py +84 -0
  726. thunderphone-0.1.0/thunderphone/generated/models/version_page_results_item.py +48 -0
  727. thunderphone-0.1.0/thunderphone/generated/models/voice_catalog.py +94 -0
  728. thunderphone-0.1.0/thunderphone/generated/models/voice_catalog_languages_item.py +48 -0
  729. thunderphone-0.1.0/thunderphone/generated/models/voice_catalog_voices_item.py +48 -0
  730. thunderphone-0.1.0/thunderphone/generated/models/voice_clone_request.py +147 -0
  731. thunderphone-0.1.0/thunderphone/generated/models/voice_matrix_request.py +155 -0
  732. thunderphone-0.1.0/thunderphone/generated/models/voice_policy.py +86 -0
  733. thunderphone-0.1.0/thunderphone/generated/models/voice_preview.py +96 -0
  734. thunderphone-0.1.0/thunderphone/generated/models/voice_preview_request.py +81 -0
  735. thunderphone-0.1.0/thunderphone/generated/models/voice_quota_kind_enum.py +9 -0
  736. thunderphone-0.1.0/thunderphone/generated/models/voice_quota_request.py +91 -0
  737. thunderphone-0.1.0/thunderphone/generated/models/voice_quota_response.py +120 -0
  738. thunderphone-0.1.0/thunderphone/generated/models/voicemail_action_89d_enum.py +10 -0
  739. thunderphone-0.1.0/thunderphone/generated/models/voip_connection.py +240 -0
  740. thunderphone-0.1.0/thunderphone/generated/models/voip_connection_create_request.py +125 -0
  741. thunderphone-0.1.0/thunderphone/generated/models/voip_connection_credentials.py +48 -0
  742. thunderphone-0.1.0/thunderphone/generated/models/voip_connection_sip_config.py +48 -0
  743. thunderphone-0.1.0/thunderphone/generated/models/voip_connection_status_enum.py +11 -0
  744. thunderphone-0.1.0/thunderphone/generated/models/voip_connection_suggest_name_request.py +92 -0
  745. thunderphone-0.1.0/thunderphone/generated/models/voip_connection_test_request.py +105 -0
  746. thunderphone-0.1.0/thunderphone/generated/models/voip_connections_available_numbers_list_response_200_item.py +48 -0
  747. thunderphone-0.1.0/thunderphone/generated/models/voip_connections_search_numbers_list_type.py +9 -0
  748. thunderphone-0.1.0/thunderphone/generated/models/voip_number_import_request.py +62 -0
  749. thunderphone-0.1.0/thunderphone/generated/models/voip_number_provision_request.py +62 -0
  750. thunderphone-0.1.0/thunderphone/generated/models/voip_twilio_subaccount_connect_request.py +71 -0
  751. thunderphone-0.1.0/thunderphone/generated/models/voip_twilio_subaccount_discover_request.py +73 -0
  752. thunderphone-0.1.0/thunderphone/generated/models/voip_verification_evidence.py +155 -0
  753. thunderphone-0.1.0/thunderphone/generated/models/voip_verification_status_enum.py +11 -0
  754. thunderphone-0.1.0/thunderphone/generated/models/webhook_config_audio_context_mode_enum.py +9 -0
  755. thunderphone-0.1.0/thunderphone/generated/models/webhook_config_play_sound_asset_enum.py +10 -0
  756. thunderphone-0.1.0/thunderphone/generated/models/webhook_config_request.py +616 -0
  757. thunderphone-0.1.0/thunderphone/generated/models/webhook_config_thinking_level_enum.py +10 -0
  758. thunderphone-0.1.0/thunderphone/generated/models/webhook_config_voicemail_action_enum.py +10 -0
  759. thunderphone-0.1.0/thunderphone/generated/models/webhook_created.py +172 -0
  760. thunderphone-0.1.0/thunderphone/generated/models/whisper_accepted.py +64 -0
  761. thunderphone-0.1.0/thunderphone/generated/models/whisper_accepted_status_enum.py +8 -0
  762. thunderphone-0.1.0/thunderphone/generated/models/widget_session.py +94 -0
  763. thunderphone-0.1.0/thunderphone/generated/models/widget_session_request_request.py +142 -0
  764. thunderphone-0.1.0/thunderphone/generated/models/widget_session_request_request_variables.py +65 -0
  765. thunderphone-0.1.0/thunderphone/generated/types.py +54 -0
  766. thunderphone-0.1.0/thunderphone/py.typed +0 -0
  767. thunderphone-0.1.0/thunderphone.egg-info/PKG-INFO +75 -0
  768. thunderphone-0.1.0/thunderphone.egg-info/SOURCES.txt +769 -0
  769. thunderphone-0.1.0/thunderphone.egg-info/dependency_links.txt +1 -0
  770. thunderphone-0.1.0/thunderphone.egg-info/requires.txt +4 -0
  771. thunderphone-0.1.0/thunderphone.egg-info/top_level.txt +1 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Autophonix, LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,75 @@
1
+ Metadata-Version: 2.4
2
+ Name: thunderphone
3
+ Version: 0.1.0
4
+ Summary: Official typed ThunderPhone API client
5
+ Author: ThunderPhone
6
+ License-Expression: MIT
7
+ Project-URL: Documentation, https://thunderphone.com/docs/api-reference/sdks
8
+ Requires-Python: >=3.10
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: httpx<0.29,>=0.27
12
+ Requires-Dist: attrs>=23.2
13
+ Requires-Dist: python-dateutil>=2.8.2
14
+ Requires-Dist: typing-extensions>=4.10
15
+ Dynamic: license-file
16
+
17
+ # ThunderPhone Python SDK
18
+
19
+ Python 3.10+. Install `pip install thunderphone`. Set `THUNDERPHONE_API_KEY` in your
20
+ environment, or pass `api_key=` to `ThunderPhone`. Optional `base_url` defaults to
21
+ `https://api.thunderphone.com` (do not append `/v1`).
22
+
23
+ ```python
24
+ import os
25
+ from thunderphone import ThunderPhone, AgentRequest, PlaceCallRequest
26
+
27
+ with ThunderPhone() as api:
28
+ agent = api.agents.create(AgentRequest(
29
+ name="Reception",
30
+ prompt="Help callers with scheduling and business information.",
31
+ voice=os.environ["THUNDERPHONE_VOICE"],
32
+ ))
33
+ call = api.calls.place(PlaceCallRequest(
34
+ agent_id=agent.id,
35
+ from_number=os.environ["FROM_NUMBER"],
36
+ to_number=os.environ["TO_NUMBER"],
37
+ idempotency_key="appointment-123",
38
+ ))
39
+ done = api.calls.wait_for_completion(
40
+ call.call_id, timeout=300, poll_interval=1,
41
+ )
42
+ if done.status == "failed":
43
+ raise RuntimeError(done.end_reason)
44
+ print(api.calls.transcript(call.call_id).transcripts)
45
+ ```
46
+
47
+ Choose a voice from `GET /v1/voices`. Outbound calls require an outbound-capable
48
+ carrier number, sufficient balance, and the organization's outbound confirmation.
49
+ Polling returns both completed and failed calls. A polling deadline raises
50
+ `TimeoutError`; HTTP timeouts and transport errors propagate. Writes are never
51
+ retried automatically. Reuse an idempotency key only for the same request.
52
+
53
+ Every operation has generated synchronous and asynchronous functions and typed
54
+ request/response models under `thunderphone.generated`. For example:
55
+
56
+ ```python
57
+ from thunderphone.generated.api.calls import calls_list
58
+
59
+ with ThunderPhone() as api:
60
+ page = calls_list.sync(client=api.client, limit=20, offset=0)
61
+ ```
62
+
63
+ Generated functions offer `sync`, `sync_detailed`, `asyncio`, and `asyncio_detailed`
64
+ where the operation has a response body. Detailed variants retain status and headers;
65
+ undocumented errors return `parsed=None` unless `raise_on_unexpected_status` is enabled
66
+ on the generated client. Helpers raise `ThunderPhoneError` with `status` and `body`.
67
+ The client sends `X-ThunderPhone-Client: sdk-python/0.1.0`. Use a context manager or
68
+ `close()` for the facade; close generated async clients with their async context manager.
69
+
70
+ [API reference](https://thunderphone.com/docs/api-reference/sdks) ·
71
+ [OpenAPI](https://thunderphone.com/openapi.json)
72
+
73
+ Development: `pip install -e .`, `python -m unittest discover -s tests -v`,
74
+ `python -m build`. Regenerate from the repository root using
75
+ `scripts/generate-sdks.sh`; never edit `thunderphone/generated/` by hand.
@@ -0,0 +1,59 @@
1
+ # ThunderPhone Python SDK
2
+
3
+ Python 3.10+. Install `pip install thunderphone`. Set `THUNDERPHONE_API_KEY` in your
4
+ environment, or pass `api_key=` to `ThunderPhone`. Optional `base_url` defaults to
5
+ `https://api.thunderphone.com` (do not append `/v1`).
6
+
7
+ ```python
8
+ import os
9
+ from thunderphone import ThunderPhone, AgentRequest, PlaceCallRequest
10
+
11
+ with ThunderPhone() as api:
12
+ agent = api.agents.create(AgentRequest(
13
+ name="Reception",
14
+ prompt="Help callers with scheduling and business information.",
15
+ voice=os.environ["THUNDERPHONE_VOICE"],
16
+ ))
17
+ call = api.calls.place(PlaceCallRequest(
18
+ agent_id=agent.id,
19
+ from_number=os.environ["FROM_NUMBER"],
20
+ to_number=os.environ["TO_NUMBER"],
21
+ idempotency_key="appointment-123",
22
+ ))
23
+ done = api.calls.wait_for_completion(
24
+ call.call_id, timeout=300, poll_interval=1,
25
+ )
26
+ if done.status == "failed":
27
+ raise RuntimeError(done.end_reason)
28
+ print(api.calls.transcript(call.call_id).transcripts)
29
+ ```
30
+
31
+ Choose a voice from `GET /v1/voices`. Outbound calls require an outbound-capable
32
+ carrier number, sufficient balance, and the organization's outbound confirmation.
33
+ Polling returns both completed and failed calls. A polling deadline raises
34
+ `TimeoutError`; HTTP timeouts and transport errors propagate. Writes are never
35
+ retried automatically. Reuse an idempotency key only for the same request.
36
+
37
+ Every operation has generated synchronous and asynchronous functions and typed
38
+ request/response models under `thunderphone.generated`. For example:
39
+
40
+ ```python
41
+ from thunderphone.generated.api.calls import calls_list
42
+
43
+ with ThunderPhone() as api:
44
+ page = calls_list.sync(client=api.client, limit=20, offset=0)
45
+ ```
46
+
47
+ Generated functions offer `sync`, `sync_detailed`, `asyncio`, and `asyncio_detailed`
48
+ where the operation has a response body. Detailed variants retain status and headers;
49
+ undocumented errors return `parsed=None` unless `raise_on_unexpected_status` is enabled
50
+ on the generated client. Helpers raise `ThunderPhoneError` with `status` and `body`.
51
+ The client sends `X-ThunderPhone-Client: sdk-python/0.1.0`. Use a context manager or
52
+ `close()` for the facade; close generated async clients with their async context manager.
53
+
54
+ [API reference](https://thunderphone.com/docs/api-reference/sdks) ·
55
+ [OpenAPI](https://thunderphone.com/openapi.json)
56
+
57
+ Development: `pip install -e .`, `python -m unittest discover -s tests -v`,
58
+ `python -m build`. Regenerate from the repository root using
59
+ `scripts/generate-sdks.sh`; never edit `thunderphone/generated/` by hand.
@@ -0,0 +1,23 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "thunderphone"
7
+ version = "0.1.0"
8
+ description = "Official typed ThunderPhone API client"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = "MIT"
12
+ license-files = ["LICENSE"]
13
+ authors = [{name = "ThunderPhone"}]
14
+ dependencies = ["httpx>=0.27,<0.29", "attrs>=23.2", "python-dateutil>=2.8.2", "typing-extensions>=4.10"]
15
+
16
+ [project.urls]
17
+ Documentation = "https://thunderphone.com/docs/api-reference/sdks"
18
+
19
+ [tool.setuptools.packages.find]
20
+ include = ["thunderphone*"]
21
+
22
+ [tool.setuptools.package-data]
23
+ thunderphone = ["py.typed"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,211 @@
1
+ import importlib
2
+ import json
3
+ import os
4
+ import pkgutil
5
+ import threading
6
+ import unittest
7
+ from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
8
+ from pathlib import Path
9
+ from unittest.mock import patch
10
+
11
+ from thunderphone import AgentRequest, PlaceCallRequest, ThunderPhone, ThunderPhoneError
12
+ from thunderphone import generated
13
+
14
+ FIXTURES = Path(__file__).resolve().parents[2] / "fixtures"
15
+ AGENT = json.loads((FIXTURES / "agent.json").read_text())
16
+ CALL = json.loads((FIXTURES / "call.json").read_text())
17
+
18
+
19
+ class ClientTests(unittest.TestCase):
20
+ def setUp(self):
21
+ self.requests = []
22
+ self.statuses = ["in_progress", "completed"]
23
+ self.failure = None
24
+ owner = self
25
+
26
+ class Handler(BaseHTTPRequestHandler):
27
+ def log_message(self, *_args):
28
+ pass
29
+
30
+ def do_GET(self):
31
+ self.respond()
32
+
33
+ def do_POST(self):
34
+ self.respond()
35
+
36
+ def respond(self):
37
+ raw = self.rfile.read(int(self.headers.get("Content-Length", 0)))
38
+ owner.requests.append(
39
+ (
40
+ self.command,
41
+ self.path,
42
+ dict(self.headers),
43
+ json.loads(raw) if raw else None,
44
+ )
45
+ )
46
+ status = 200
47
+ if owner.failure:
48
+ status, payload = owner.failure, {"detail": "declined"}
49
+ elif self.path == "/v1/agents":
50
+ status, payload = 201, AGENT
51
+ elif self.path == "/v1/call":
52
+ status, payload = 201, {"call_id": 1001, "status": "initiated"}
53
+ elif self.path.endswith("/transcript"):
54
+ payload = {
55
+ "call_id": 1001,
56
+ "transcripts": [{"role": "agent", "content": "Hello"}],
57
+ }
58
+ else:
59
+ state = (
60
+ owner.statuses.pop(0)
61
+ if len(owner.statuses) > 1
62
+ else owner.statuses[0]
63
+ )
64
+ payload = {**CALL, "status": state}
65
+ self.send_response(status)
66
+ self.send_header("Content-Type", "application/json")
67
+ self.end_headers()
68
+ self.wfile.write(json.dumps(payload).encode())
69
+
70
+ self.server = ThreadingHTTPServer(("127.0.0.1", 0), Handler)
71
+ self.thread = threading.Thread(target=self.server.serve_forever, daemon=True)
72
+ self.thread.start()
73
+ self.api = ThunderPhone(
74
+ "test-placeholder", base_url=f"http://127.0.0.1:{self.server.server_port}/"
75
+ )
76
+
77
+ def tearDown(self):
78
+ self.api.close()
79
+ self.server.shutdown()
80
+ self.server.server_close()
81
+ self.thread.join()
82
+
83
+ def test_create_place_poll_transcript(self):
84
+ agent = self.api.agents.create(
85
+ AgentRequest(name="Reception", prompt="Help callers.", voice="olivia")
86
+ )
87
+ self.assertEqual(agent.id, 12)
88
+ placed = self.api.calls.place(
89
+ PlaceCallRequest(
90
+ from_number=CALL["from_number"],
91
+ to_number=CALL["to_number"],
92
+ agent_id=12,
93
+ idempotency_key="one",
94
+ )
95
+ )
96
+ self.assertEqual(placed.call_id, 1001)
97
+ self.assertEqual(
98
+ self.api.calls.wait_for_completion(1001, poll_interval=0.001).status,
99
+ "completed",
100
+ )
101
+ self.assertEqual(
102
+ self.api.calls.transcript(1001).transcripts[0].content, "Hello"
103
+ )
104
+ self.assertEqual(self.requests[1][3]["idempotency_key"], "one")
105
+ for _, path, headers, _ in self.requests:
106
+ self.assertEqual(headers["Authorization"], "Bearer test-placeholder")
107
+ self.assertEqual(headers["X-ThunderPhone-Client"], "sdk-python/0.1.0")
108
+ self.assertNotIn("/v1/v1/", path)
109
+
110
+ def test_failed_timeout_and_bad_interval(self):
111
+ self.statuses = ["failed"]
112
+ self.assertEqual(self.api.calls.wait_for_completion(1001).status, "failed")
113
+ self.statuses = ["in_progress"]
114
+ with self.assertRaises(TimeoutError):
115
+ self.api.calls.wait_for_completion(1001, timeout=0.025, poll_interval=0.001)
116
+ with self.assertRaises(ValueError):
117
+ self.api.calls.wait_for_completion(1001, poll_interval=0)
118
+
119
+ def test_errors_do_not_retry_mutations(self):
120
+ self.failure = 402
121
+ with self.assertRaises(ThunderPhoneError) as caught:
122
+ self.api.calls.place(PlaceCallRequest(from_number="a", to_number="b"))
123
+ self.assertEqual(caught.exception.status, 402)
124
+ self.assertEqual(len(self.requests), 1)
125
+
126
+ def test_environment_and_base_url(self):
127
+ with patch.dict(os.environ, {}, clear=True):
128
+ with self.assertRaises(ValueError):
129
+ ThunderPhone()
130
+ with patch.dict(os.environ, {"THUNDERPHONE_API_KEY": "test-placeholder"}):
131
+ with ThunderPhone() as api:
132
+ self.assertIsNotNone(api.client)
133
+ with self.assertRaises(ValueError):
134
+ ThunderPhone("test-placeholder", base_url="ftp://example.com")
135
+
136
+ def test_generated_multipart_has_boundary_and_repeated_file_fields(self):
137
+ from io import BytesIO
138
+ from thunderphone.generated.api.knowledge import knowledge_documents_create
139
+ from thunderphone.generated.models.document_batch_upload_request import (
140
+ DocumentBatchUploadRequest,
141
+ )
142
+ from thunderphone.generated.types import File
143
+
144
+ body = DocumentBatchUploadRequest(
145
+ files=[
146
+ File(
147
+ payload=BytesIO(b"first document"),
148
+ file_name="first.txt",
149
+ mime_type="text/plain",
150
+ ),
151
+ File(
152
+ payload=BytesIO(b"second document"),
153
+ file_name="second.txt",
154
+ mime_type="text/plain",
155
+ ),
156
+ ]
157
+ )
158
+ kwargs = knowledge_documents_create._get_kwargs(body=body)
159
+ request = self.api.client.get_httpx_client().build_request(**kwargs)
160
+ self.assertIn("boundary=", request.headers["Content-Type"])
161
+ wire = request.read()
162
+ self.assertEqual(wire.count(b'name="files[]"'), 2)
163
+ self.assertIn(b"first document", wire)
164
+ self.assertIn(b"second document", wire)
165
+
166
+ def test_campaign_contacts_accept_wrapped_json_raw_json_and_csv(self):
167
+ from io import BytesIO
168
+ from uuid import UUID
169
+ from thunderphone.generated.api.campaigns import campaigns_contacts
170
+ from thunderphone.generated.models.campaign_contact_input_request import (
171
+ CampaignContactInputRequest,
172
+ )
173
+ from thunderphone.generated.models.campaign_contacts_request import (
174
+ CampaignContactsRequest,
175
+ )
176
+ from thunderphone.generated.models.campaign_contacts_upload_request import (
177
+ CampaignContactsUploadRequest,
178
+ )
179
+ from thunderphone.generated.types import File
180
+
181
+ contact = CampaignContactInputRequest(phone="+14155550101")
182
+ campaign_id = UUID("11111111-1111-4111-8111-111111111111")
183
+ for body, expected in [
184
+ ([contact], [{"phone": "+14155550101"}]),
185
+ (
186
+ CampaignContactsRequest(contacts=[contact]),
187
+ {"contacts": [{"phone": "+14155550101"}]},
188
+ ),
189
+ ]:
190
+ self.assertEqual(
191
+ campaigns_contacts._get_kwargs(campaign_id, body=body)["json"], expected
192
+ )
193
+ kwargs = campaigns_contacts._get_kwargs(
194
+ campaign_id,
195
+ body=CampaignContactsUploadRequest(
196
+ file=File(
197
+ payload=BytesIO(b"phone\n+14155550101"),
198
+ file_name="contacts.csv",
199
+ mime_type="text/csv",
200
+ ),
201
+ ),
202
+ )
203
+ request = self.api.client.get_httpx_client().build_request(**kwargs)
204
+ self.assertIn("boundary=", request.headers["Content-Type"])
205
+ self.assertIn(b"contacts.csv", request.read())
206
+
207
+ def test_every_generated_module_imports(self):
208
+ for module in pkgutil.walk_packages(
209
+ generated.__path__, generated.__name__ + "."
210
+ ):
211
+ importlib.import_module(module.name)
@@ -0,0 +1,6 @@
1
+ """Official ThunderPhone client and common request types."""
2
+ from .facade import ThunderPhone, ThunderPhoneError
3
+ from .generated.models.agent_request import AgentRequest
4
+ from .generated.models.place_call_request import PlaceCallRequest
5
+
6
+ __all__ = ["ThunderPhone", "ThunderPhoneError", "AgentRequest", "PlaceCallRequest"]
@@ -0,0 +1,137 @@
1
+ """Small synchronous facade; every endpoint also has generated sync/async clients."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import math
6
+ import os
7
+ import time
8
+ from typing import TypeVar
9
+ from urllib.parse import urlsplit
10
+
11
+ import httpx
12
+
13
+ from .generated.api.agents import agents_create
14
+ from .generated.api.calls import calls_place, calls_retrieve, calls_transcript_list
15
+ from .generated.client import AuthenticatedClient
16
+ from .generated.models.agent import Agent
17
+ from .generated.models.agent_request import AgentRequest
18
+ from .generated.models.call import Call
19
+ from .generated.models.call_transcript import CallTranscript
20
+ from .generated.models.place_call_request import PlaceCallRequest
21
+ from .generated.models.place_call_response import PlaceCallResponse
22
+ from .generated.types import Response
23
+
24
+ T = TypeVar("T")
25
+
26
+
27
+ class ThunderPhoneError(Exception):
28
+ def __init__(self, status: int, body: bytes):
29
+ self.status = status
30
+ self.body = body
31
+ super().__init__(f"ThunderPhone API returned HTTP {status}")
32
+
33
+
34
+ def _unwrap(response: Response[T]) -> T:
35
+ if not 200 <= response.status_code < 300:
36
+ raise ThunderPhoneError(response.status_code, response.content)
37
+ if response.parsed is None:
38
+ raise ValueError("ThunderPhone returned an empty success response")
39
+ return response.parsed
40
+
41
+
42
+ class _Agents:
43
+ def __init__(self, client: AuthenticatedClient):
44
+ self._client = client
45
+
46
+ def create(self, body: AgentRequest) -> Agent:
47
+ return _unwrap(agents_create.sync_detailed(client=self._client, body=body))
48
+
49
+
50
+ class _Calls:
51
+ def __init__(self, client: AuthenticatedClient):
52
+ self._client = client
53
+
54
+ def place(self, body: PlaceCallRequest) -> PlaceCallResponse:
55
+ return _unwrap(calls_place.sync_detailed(client=self._client, body=body))
56
+
57
+ def get(self, call_id: int) -> Call:
58
+ return _unwrap(calls_retrieve.sync_detailed(call_id, client=self._client))
59
+
60
+ def transcript(self, call_id: int) -> CallTranscript:
61
+ return _unwrap(
62
+ calls_transcript_list.sync_detailed(call_id, client=self._client)
63
+ )
64
+
65
+ def wait_for_completion(
66
+ self, call_id: int, *, timeout: float = 300, poll_interval: float = 1
67
+ ) -> Call:
68
+ """Poll completed/failed states. Never retries a mutating request.
69
+
70
+ timeout bounds polling; individual HTTP operations have a timeout no
71
+ larger than the remaining budget. Network timeout errors propagate.
72
+ """
73
+ if (
74
+ not math.isfinite(timeout)
75
+ or timeout <= 0
76
+ or not math.isfinite(poll_interval)
77
+ or poll_interval <= 0
78
+ ):
79
+ raise ValueError(
80
+ "timeout and poll_interval must be positive finite numbers"
81
+ )
82
+ deadline = time.monotonic() + timeout
83
+ while True:
84
+ remaining = deadline - time.monotonic()
85
+ if remaining <= 0:
86
+ raise TimeoutError(f"Timed out waiting for call {call_id}")
87
+ response = self._client.get_httpx_client().get(
88
+ f"/v1/calls/{call_id}", timeout=min(30, remaining)
89
+ )
90
+ if not response.is_success:
91
+ raise ThunderPhoneError(response.status_code, response.content)
92
+ call = Call.from_dict(response.json())
93
+ if call.status in {"completed", "failed"}:
94
+ return call
95
+ time.sleep(min(poll_interval, max(0, deadline - time.monotonic())))
96
+
97
+
98
+ class ThunderPhone:
99
+ def __init__(
100
+ self,
101
+ api_key: str | None = None,
102
+ *,
103
+ base_url: str = "https://api.thunderphone.com",
104
+ timeout: float = 30,
105
+ ):
106
+ key = api_key if api_key is not None else os.environ.get("THUNDERPHONE_API_KEY")
107
+ if not key or not key.strip():
108
+ raise ValueError("Set THUNDERPHONE_API_KEY or provide api_key")
109
+ parsed = urlsplit(base_url)
110
+ if (
111
+ parsed.scheme not in {"http", "https"}
112
+ or not parsed.netloc
113
+ or parsed.username
114
+ or parsed.password
115
+ or parsed.query
116
+ or parsed.fragment
117
+ ):
118
+ raise ValueError(
119
+ "base_url must be an HTTP(S) URL without credentials, query, or fragment"
120
+ )
121
+ self.client = AuthenticatedClient(
122
+ base_url=base_url.rstrip("/"),
123
+ token=key,
124
+ headers={"X-ThunderPhone-Client": "sdk-python/0.1.0"},
125
+ timeout=httpx.Timeout(timeout),
126
+ )
127
+ self.agents = _Agents(self.client)
128
+ self.calls = _Calls(self.client)
129
+
130
+ def close(self) -> None:
131
+ self.client.get_httpx_client().close()
132
+
133
+ def __enter__(self) -> ThunderPhone:
134
+ return self
135
+
136
+ def __exit__(self, *_args) -> None:
137
+ self.close()
@@ -0,0 +1,8 @@
1
+ """A client library for accessing ThunderPhone API"""
2
+
3
+ from .client import AuthenticatedClient, Client
4
+
5
+ __all__ = (
6
+ "AuthenticatedClient",
7
+ "Client",
8
+ )
@@ -0,0 +1 @@
1
+ """Contains methods for accessing the API"""
@@ -0,0 +1 @@
1
+ """Contains endpoint functions for accessing the API"""