syllable-sdk 0.35.79__tar.gz → 0.36.1__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 (379) hide show
  1. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/PKG-INFO +1 -1
  2. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/pyproject.toml +2 -1
  3. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/_version.py +3 -3
  4. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/agents.py +5 -3
  5. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/basesdk.py +11 -1
  6. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/channels.py +6 -4
  7. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/errors/__init__.py +15 -3
  8. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/insights_sdk.py +7 -5
  9. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/__init__.py +14 -1
  10. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentsttprovider.py +2 -0
  11. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/servicecreaterequest.py +2 -2
  12. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/serviceupdaterequest.py +2 -2
  13. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/outbound.py +7 -4
  14. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/sdk.py +15 -2
  15. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/sessions.py +9 -5
  16. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/twilio.py +5 -3
  17. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/__init__.py +15 -3
  18. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/eventstreaming.py +10 -0
  19. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/README-PYPI.md +0 -0
  20. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/py.typed +0 -0
  21. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/__init__.py +0 -0
  22. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/_hooks/__init__.py +0 -0
  23. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/_hooks/registration.py +0 -0
  24. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/_hooks/sdkhooks.py +0 -0
  25. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/_hooks/types.py +0 -0
  26. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/batches.py +0 -0
  27. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/campaigns.py +0 -0
  28. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/conversations.py +0 -0
  29. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/custom_messages.py +0 -0
  30. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/dashboards.py +0 -0
  31. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/data_sources.py +0 -0
  32. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/errors/apierror.py +0 -0
  33. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/errors/httpvalidationerror.py +0 -0
  34. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/errors/no_response_error.py +0 -0
  35. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/errors/responsevalidationerror.py +0 -0
  36. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/errors/syllablesdkerror.py +0 -0
  37. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/events.py +0 -0
  38. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/folders.py +0 -0
  39. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/full_summary.py +0 -0
  40. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/httpclient.py +0 -0
  41. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/incidents.py +0 -0
  42. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/insights_tools.py +0 -0
  43. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/language_groups.py +0 -0
  44. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/latency.py +0 -0
  45. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agent_deleteop.py +0 -0
  46. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agent_get_by_idop.py +0 -0
  47. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agent_listop.py +0 -0
  48. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentcreate.py +0 -0
  49. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentlanguage.py +0 -0
  50. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentproperties.py +0 -0
  51. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentresponse.py +0 -0
  52. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agenttooldefaults.py +0 -0
  53. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agenttoolfielddefault.py +0 -0
  54. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentupdate.py +0 -0
  55. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentvoice.py +0 -0
  56. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentvoicedisplayname.py +0 -0
  57. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentvoicegender.py +0 -0
  58. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentvoicemodel.py +0 -0
  59. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentvoicevarname.py +0 -0
  60. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/agentwaitsound.py +0 -0
  61. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/available_targetsop.py +0 -0
  62. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/availabletarget.py +0 -0
  63. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/availabletargetproperties.py +0 -0
  64. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/batchdetails.py +0 -0
  65. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/batchproperties.py +0 -0
  66. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/batchstatus.py +0 -0
  67. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/body_insights_folder_upload_file.py +0 -0
  68. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/body_organizations_create.py +0 -0
  69. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/body_organizations_delete.py +0 -0
  70. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/body_organizations_update.py +0 -0
  71. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/body_outbound_batch_delete.py +0 -0
  72. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/body_outbound_batch_upload.py +0 -0
  73. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/campaignproperties.py +0 -0
  74. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channel.py +0 -0
  75. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channel_targets_createop.py +0 -0
  76. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channel_targets_deleteop.py +0 -0
  77. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channel_targets_get_by_idop.py +0 -0
  78. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channel_targets_listop.py +0 -0
  79. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channel_targets_updateop.py +0 -0
  80. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channelconfigview.py +0 -0
  81. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channelproperties.py +0 -0
  82. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channels_listop.py +0 -0
  83. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channels_twilio_get_by_idop.py +0 -0
  84. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channels_twilio_numbers_addop.py +0 -0
  85. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channels_twilio_numbers_listop.py +0 -0
  86. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channels_twilio_numbers_updateop.py +0 -0
  87. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channelservices.py +0 -0
  88. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channeltargetcreaterequest.py +0 -0
  89. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channeltargetproperties.py +0 -0
  90. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channeltargetresponse.py +0 -0
  91. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/channeltargetupdaterequest.py +0 -0
  92. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/communicationbatch.py +0 -0
  93. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/communicationbatchinput.py +0 -0
  94. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/communicationbatchupdate.py +0 -0
  95. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/communicationrequest.py +0 -0
  96. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/communicationrequestresult.py +0 -0
  97. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/conversation.py +0 -0
  98. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/conversationproperties.py +0 -0
  99. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/conversations_listop.py +0 -0
  100. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/createtakeoutresponse.py +0 -0
  101. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/custom_message_get_by_idop.py +0 -0
  102. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/custom_messages_deleteop.py +0 -0
  103. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/custom_messages_listop.py +0 -0
  104. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/custommessagecreaterequest.py +0 -0
  105. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/custommessageproperties.py +0 -0
  106. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/custommessageresponse.py +0 -0
  107. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/custommessagerule.py +0 -0
  108. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/custommessageupdaterequest.py +0 -0
  109. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/dashboard.py +0 -0
  110. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/dashboardproperties.py +0 -0
  111. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/dashboardresponse.py +0 -0
  112. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/dashboardtokenresponse.py +0 -0
  113. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/data_sources_deleteop.py +0 -0
  114. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/data_sources_get_by_idop.py +0 -0
  115. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/data_sources_listop.py +0 -0
  116. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/datasourcecreaterequest.py +0 -0
  117. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/datasourcedetailresponse.py +0 -0
  118. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/datasourcemetadataresponse.py +0 -0
  119. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/datasourceproperties.py +0 -0
  120. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/datasourceupdaterequest.py +0 -0
  121. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/dayofweek.py +0 -0
  122. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/daysofweek.py +0 -0
  123. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/dialogmessage.py +0 -0
  124. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/dialogrole.py +0 -0
  125. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/dialogtoolcall.py +0 -0
  126. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/event.py +0 -0
  127. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/eventproperties.py +0 -0
  128. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/events_listop.py +0 -0
  129. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/folderdetails.py +0 -0
  130. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/generate_session_recording_urlsop.py +0 -0
  131. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/get_session_data_by_session_idop.py +0 -0
  132. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/get_session_data_by_sidop.py +0 -0
  133. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/get_session_tool_call_result_by_idop.py +0 -0
  134. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/incident_deleteop.py +0 -0
  135. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/incident_get_by_idop.py +0 -0
  136. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/incident_listop.py +0 -0
  137. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/incidentcreaterequest.py +0 -0
  138. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/incidentorganizationresponse.py +0 -0
  139. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/incidentproperties.py +0 -0
  140. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/incidentresponse.py +0 -0
  141. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/incidentupdaterequest.py +0 -0
  142. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insight_tool_get_by_idop.py +0 -0
  143. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insight_tool_listop.py +0 -0
  144. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_folder_deleteop.py +0 -0
  145. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_folder_get_by_idop.py +0 -0
  146. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_folder_listop.py +0 -0
  147. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_folder_updateop.py +0 -0
  148. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_folder_upload_fileop.py +0 -0
  149. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_listop.py +0 -0
  150. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_tool_deleteop.py +0 -0
  151. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_tool_updateop.py +0 -0
  152. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_upload_list_filesop.py +0 -0
  153. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_upload_move_filesop.py +0 -0
  154. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_workflow_activateop.py +0 -0
  155. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_workflow_deleteop.py +0 -0
  156. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_workflow_get_by_idop.py +0 -0
  157. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_workflow_inactivateop.py +0 -0
  158. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_workflow_listop.py +0 -0
  159. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insights_workflow_updateop.py +0 -0
  160. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightsfolder.py +0 -0
  161. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightsfolderfilemove.py +0 -0
  162. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightsfolderinput.py +0 -0
  163. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightsfolderproperties.py +0 -0
  164. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightsoutput.py +0 -0
  165. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightsproperties.py +0 -0
  166. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightsuploadfile.py +0 -0
  167. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightsuploadfileproperties.py +0 -0
  168. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightsworkflowqueuesession.py +0 -0
  169. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insighttooldefinition.py +0 -0
  170. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insighttoolinput.py +0 -0
  171. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insighttooloutput.py +0 -0
  172. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insighttoolproperties.py +0 -0
  173. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insighttooltestinput.py +0 -0
  174. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightworkflowactivate.py +0 -0
  175. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightworkflowcondition.py +0 -0
  176. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightworkflowestimate.py +0 -0
  177. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightworkflowinput.py +0 -0
  178. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightworkflowoutput.py +0 -0
  179. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/insightworkflowproperties.py +0 -0
  180. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/inspectlatencyresponse.py +0 -0
  181. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/internaltool.py +0 -0
  182. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/language_groups_deleteop.py +0 -0
  183. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/language_groups_get_by_idop.py +0 -0
  184. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/language_groups_listop.py +0 -0
  185. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/languagecode.py +0 -0
  186. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/languageconfig.py +0 -0
  187. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/languagegroupagentinfo.py +0 -0
  188. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/languagegroupcreaterequest.py +0 -0
  189. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/languagegroupproperties.py +0 -0
  190. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/languagegroupresponse.py +0 -0
  191. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/languagegroupupdaterequest.py +0 -0
  192. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/latencycategory.py +0 -0
  193. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/latencyentry.py +0 -0
  194. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/latencyunittype.py +0 -0
  195. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_agentresponse_.py +0 -0
  196. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_availabletarget_.py +0 -0
  197. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_channel_.py +0 -0
  198. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_channeltargetresponse_.py +0 -0
  199. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_communicationbatch_.py +0 -0
  200. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_conversation_.py +0 -0
  201. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_custommessageresponse_.py +0 -0
  202. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_dashboardresponse_.py +0 -0
  203. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_datasourcemetadataresponse_.py +0 -0
  204. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_event_.py +0 -0
  205. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_incidentresponse_.py +0 -0
  206. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_insightsfolder_.py +0 -0
  207. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_insightsoutput_.py +0 -0
  208. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_insightsuploadfile_.py +0 -0
  209. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_insighttooloutput_.py +0 -0
  210. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_insightworkflowoutput_.py +0 -0
  211. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_languagegroupresponse_.py +0 -0
  212. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_outboundcampaign_.py +0 -0
  213. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_promptresponse_.py +0 -0
  214. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_roleresponse_.py +0 -0
  215. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_serviceresponse_.py +0 -0
  216. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_session_.py +0 -0
  217. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_sessionlabel_.py +0 -0
  218. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_toolresponse_.py +0 -0
  219. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/listresponse_userresponse_.py +0 -0
  220. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/logintype.py +0 -0
  221. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/orderbydirection.py +0 -0
  222. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/organizationchannelconfig.py +0 -0
  223. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/organizationchannelcreaterequest.py +0 -0
  224. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/organizationchannelupdaterequest.py +0 -0
  225. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/organizationresponse.py +0 -0
  226. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_batch_addop.py +0 -0
  227. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_batch_deleteop.py +0 -0
  228. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_batch_get_by_idop.py +0 -0
  229. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_batch_listop.py +0 -0
  230. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_batch_removeop.py +0 -0
  231. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_batch_resultsop.py +0 -0
  232. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_batch_updateop.py +0 -0
  233. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_batch_uploadop.py +0 -0
  234. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_campaign_deleteop.py +0 -0
  235. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_campaign_get_by_idop.py +0 -0
  236. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_campaign_listop.py +0 -0
  237. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outbound_campaign_updateop.py +0 -0
  238. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outboundcampaign.py +0 -0
  239. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/outboundcampaigninput.py +0 -0
  240. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/permissiongroupresponse.py +0 -0
  241. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/permissionresponse.py +0 -0
  242. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/post_get_dashboardop.py +0 -0
  243. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/post_list_dashboardop.py +0 -0
  244. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/promptcreaterequest.py +0 -0
  245. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/prompthistory.py +0 -0
  246. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/prompthistorylinkedtool.py +0 -0
  247. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/promptllmconfig.py +0 -0
  248. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/promptllmprovider.py +0 -0
  249. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/promptproperties.py +0 -0
  250. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/promptresponse.py +0 -0
  251. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/prompts_deleteop.py +0 -0
  252. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/prompts_get_by_idop.py +0 -0
  253. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/prompts_historyop.py +0 -0
  254. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/prompts_listop.py +0 -0
  255. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/promptupdaterequest.py +0 -0
  256. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/requeststatus.py +0 -0
  257. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/rolecreaterequest.py +0 -0
  258. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/roleproperties.py +0 -0
  259. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/roleresponse.py +0 -0
  260. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/roles_deleteop.py +0 -0
  261. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/roles_get_by_idop.py +0 -0
  262. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/roles_listop.py +0 -0
  263. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/roleupdaterequest.py +0 -0
  264. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/security.py +0 -0
  265. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/service_deleteop.py +0 -0
  266. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/service_listop.py +0 -0
  267. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/serviceproperties.py +0 -0
  268. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/serviceresponse.py +0 -0
  269. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/services_get_by_idop.py +0 -0
  270. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/session.py +0 -0
  271. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/session_full_summary_get_by_idop.py +0 -0
  272. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/session_get_by_idop.py +0 -0
  273. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/session_label_get_by_idop.py +0 -0
  274. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/session_labels_listop.py +0 -0
  275. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/session_latency_get_by_idop.py +0 -0
  276. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/session_recording_streamop.py +0 -0
  277. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/session_transcript_get_by_idop.py +0 -0
  278. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessionaction.py +0 -0
  279. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessiondata.py +0 -0
  280. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessionlabel.py +0 -0
  281. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessionlabelcreate.py +0 -0
  282. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessionlabelproperties.py +0 -0
  283. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessionmessage.py +0 -0
  284. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessionproperties.py +0 -0
  285. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessionrecordingresponse.py +0 -0
  286. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessions_listop.py +0 -0
  287. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessionsummaryresponse.py +0 -0
  288. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessiontext.py +0 -0
  289. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/sessiontranscriptionresponse.py +0 -0
  290. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/statictoolparameter.py +0 -0
  291. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/statictoolparametertype.py +0 -0
  292. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/summaryentry.py +0 -0
  293. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/supportedllm.py +0 -0
  294. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/takeoutrequeststatus.py +0 -0
  295. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/takeouts_get_by_job_idop.py +0 -0
  296. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/takeouts_get_fileop.py +0 -0
  297. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/takeoutstatusresponse.py +0 -0
  298. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/targetmodes.py +0 -0
  299. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/telephonyconfigurations.py +0 -0
  300. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/testmessage.py +0 -0
  301. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/testmessageresponse.py +0 -0
  302. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/tool_deleteop.py +0 -0
  303. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/tool_get_by_nameop.py +0 -0
  304. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/tool_listop.py +0 -0
  305. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolagentinfo.py +0 -0
  306. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolargumentlocation.py +0 -0
  307. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolauthtype.py +0 -0
  308. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolcreaterequest.py +0 -0
  309. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/tooldefinition.py +0 -0
  310. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/tooldetailresponse.py +0 -0
  311. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolfunction.py +0 -0
  312. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolhttpendpoint.py +0 -0
  313. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolhttpmethod.py +0 -0
  314. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/tooloptions.py +0 -0
  315. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolparameterdefault.py +0 -0
  316. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolparametertransform.py +0 -0
  317. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolparametertransformcondition.py +0 -0
  318. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolpromptinfo.py +0 -0
  319. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolproperties.py +0 -0
  320. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolresponse.py +0 -0
  321. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolresultdata.py +0 -0
  322. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/toolupdaterequest.py +0 -0
  323. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/ttsprovider.py +0 -0
  324. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/twiliochannelconfigcreate.py +0 -0
  325. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/twiliochannelconfigupdate.py +0 -0
  326. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/twiliochannelcreaterequest.py +0 -0
  327. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/twiliochannelupdaterequest.py +0 -0
  328. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/twiliolistnumbersresponse.py +0 -0
  329. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/twilionumberaddrequest.py +0 -0
  330. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/twilionumberaddresponse.py +0 -0
  331. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/twilionumberupdaterequest.py +0 -0
  332. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/twilionumberupdateresponse.py +0 -0
  333. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/twiliophonenumber.py +0 -0
  334. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/useractivitystatus.py +0 -0
  335. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/usercreaterequest.py +0 -0
  336. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/userdeleterequest.py +0 -0
  337. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/userproperties.py +0 -0
  338. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/userresponse.py +0 -0
  339. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/users_get_by_emailop.py +0 -0
  340. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/users_listop.py +0 -0
  341. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/users_send_emailop.py +0 -0
  342. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/userupdaterequest.py +0 -0
  343. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/validationerror.py +0 -0
  344. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/models/voicesamplecreaterequest.py +0 -0
  345. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/numbers.py +0 -0
  346. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/organizations.py +0 -0
  347. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/permissions.py +0 -0
  348. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/prompts.py +0 -0
  349. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/py.typed +0 -0
  350. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/roles.py +0 -0
  351. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/sdkconfiguration.py +0 -0
  352. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/services.py +0 -0
  353. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/session_debug.py +0 -0
  354. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/session_labels.py +0 -0
  355. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/takeouts.py +0 -0
  356. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/targets.py +0 -0
  357. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/test.py +0 -0
  358. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/tools.py +0 -0
  359. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/transcript.py +0 -0
  360. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/types/__init__.py +0 -0
  361. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/types/basemodel.py +0 -0
  362. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/users.py +0 -0
  363. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/annotations.py +0 -0
  364. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/datetimes.py +0 -0
  365. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/enums.py +0 -0
  366. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/forms.py +0 -0
  367. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/headers.py +0 -0
  368. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/logger.py +0 -0
  369. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/metadata.py +0 -0
  370. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/queryparams.py +0 -0
  371. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/requestbodies.py +0 -0
  372. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/retries.py +0 -0
  373. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/security.py +0 -0
  374. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/serializers.py +0 -0
  375. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/unmarshal_json_response.py +0 -0
  376. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/url.py +0 -0
  377. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/utils/values.py +0 -0
  378. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/v1.py +0 -0
  379. {syllable_sdk-0.35.79 → syllable_sdk-0.36.1}/src/syllable_sdk/workflows.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: syllable-sdk
3
- Version: 0.35.79
3
+ Version: 0.36.1
4
4
  Summary: Python Client SDK Generated by Speakeasy.
5
5
  Author: Syllable
6
6
  Requires-Python: >=3.9.2
@@ -1,7 +1,7 @@
1
1
 
2
2
  [project]
3
3
  name = "syllable-sdk"
4
- version = "0.35.79"
4
+ version = "0.36.1"
5
5
  description = "Python Client SDK Generated by Speakeasy."
6
6
  authors = [{ name = "Syllable" },]
7
7
  readme = "README-PYPI.md"
@@ -35,6 +35,7 @@ build-backend = "poetry.core.masonry.api"
35
35
 
36
36
  [tool.pytest.ini_options]
37
37
  asyncio_default_fixture_loop_scope = "function"
38
+ asyncio_mode = "auto"
38
39
  pythonpath = ["src"]
39
40
 
40
41
  [tool.mypy]
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "syllable-sdk"
6
- __version__: str = "0.35.79"
6
+ __version__: str = "0.36.1"
7
7
  __openapi_doc_version__: str = "0.0.2"
8
- __gen_version__: str = "2.686.7"
9
- __user_agent__: str = "speakeasy-sdk/python 0.35.79 2.686.7 0.0.2 syllable-sdk"
8
+ __gen_version__: str = "2.687.13"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.36.1 2.687.13 0.0.2 syllable-sdk"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
@@ -17,13 +17,15 @@ class Agents(BaseSDK):
17
17
  test: Test
18
18
  r"""Operations for testing agents with live text. These endpoints allow sending messages to an agent and receiving its responses."""
19
19
 
20
- def __init__(self, sdk_config: SDKConfiguration) -> None:
21
- BaseSDK.__init__(self, sdk_config)
20
+ def __init__(
21
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
22
+ ) -> None:
23
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
22
24
  self.sdk_configuration = sdk_config
23
25
  self._init_sdks()
24
26
 
25
27
  def _init_sdks(self):
26
- self.test = Test(self.sdk_configuration)
28
+ self.test = Test(self.sdk_configuration, parent_ref=self.parent_ref)
27
29
 
28
30
  def list(
29
31
  self,
@@ -15,9 +15,19 @@ from urllib.parse import parse_qs, urlparse
15
15
 
16
16
  class BaseSDK:
17
17
  sdk_configuration: SDKConfiguration
18
+ parent_ref: Optional[object] = None
19
+ """
20
+ Reference to the root SDK instance, if any. This will prevent it from
21
+ being garbage collected while there are active streams.
22
+ """
18
23
 
19
- def __init__(self, sdk_config: SDKConfiguration) -> None:
24
+ def __init__(
25
+ self,
26
+ sdk_config: SDKConfiguration,
27
+ parent_ref: Optional[object] = None,
28
+ ) -> None:
20
29
  self.sdk_configuration = sdk_config
30
+ self.parent_ref = parent_ref
21
31
 
22
32
  def _get_url(self, base_url, url_variables):
23
33
  sdk_url, sdk_variables = self.sdk_configuration.get_server_details()
@@ -20,14 +20,16 @@ class Channels(BaseSDK):
20
20
  targets: Targets
21
21
  r"""Operations related to channel target configuration. A channel target links a channel to an agent, allowing users to communicate with the agent through that channel. For more information, see [Console docs](https://docs.syllable.ai/Resources/Channels)."""
22
22
 
23
- def __init__(self, sdk_config: SDKConfiguration) -> None:
24
- BaseSDK.__init__(self, sdk_config)
23
+ def __init__(
24
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
25
+ ) -> None:
26
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
25
27
  self.sdk_configuration = sdk_config
26
28
  self._init_sdks()
27
29
 
28
30
  def _init_sdks(self):
29
- self.twilio = Twilio(self.sdk_configuration)
30
- self.targets = Targets(self.sdk_configuration)
31
+ self.twilio = Twilio(self.sdk_configuration, parent_ref=self.parent_ref)
32
+ self.targets = Targets(self.sdk_configuration, parent_ref=self.parent_ref)
31
33
 
32
34
  def list(
33
35
  self,
@@ -1,15 +1,16 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
+ from .syllablesdkerror import SyllableSDKError
3
4
  from typing import TYPE_CHECKING
4
5
  from importlib import import_module
5
6
  import builtins
7
+ import sys
6
8
 
7
9
  if TYPE_CHECKING:
8
10
  from .apierror import APIError
9
11
  from .httpvalidationerror import HTTPValidationError, HTTPValidationErrorData
10
12
  from .no_response_error import NoResponseError
11
13
  from .responsevalidationerror import ResponseValidationError
12
- from .syllablesdkerror import SyllableSDKError
13
14
 
14
15
  __all__ = [
15
16
  "APIError",
@@ -26,10 +27,21 @@ _dynamic_imports: dict[str, str] = {
26
27
  "HTTPValidationErrorData": ".httpvalidationerror",
27
28
  "NoResponseError": ".no_response_error",
28
29
  "ResponseValidationError": ".responsevalidationerror",
29
- "SyllableSDKError": ".syllablesdkerror",
30
30
  }
31
31
 
32
32
 
33
+ def dynamic_import(modname, retries=3):
34
+ for attempt in range(retries):
35
+ try:
36
+ return import_module(modname, __package__)
37
+ except KeyError:
38
+ # Clear any half-initialized module and retry
39
+ sys.modules.pop(modname, None)
40
+ if attempt == retries - 1:
41
+ break
42
+ raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
43
+
44
+
33
45
  def __getattr__(attr_name: str) -> object:
34
46
  module_name = _dynamic_imports.get(attr_name)
35
47
  if module_name is None:
@@ -38,7 +50,7 @@ def __getattr__(attr_name: str) -> object:
38
50
  )
39
51
 
40
52
  try:
41
- module = import_module(module_name, __package__)
53
+ module = dynamic_import(module_name)
42
54
  result = getattr(module, attr_name)
43
55
  return result
44
56
  except ImportError as e:
@@ -23,15 +23,17 @@ class InsightsSDK(BaseSDK):
23
23
  tools: InsightsTools
24
24
  r"""Operations related to insights tool configurationss. An insight is a tool that processes conversation data to extract information and generate reports."""
25
25
 
26
- def __init__(self, sdk_config: SDKConfiguration) -> None:
27
- BaseSDK.__init__(self, sdk_config)
26
+ def __init__(
27
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
28
+ ) -> None:
29
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
28
30
  self.sdk_configuration = sdk_config
29
31
  self._init_sdks()
30
32
 
31
33
  def _init_sdks(self):
32
- self.folders = Folders(self.sdk_configuration)
33
- self.workflows = Workflows(self.sdk_configuration)
34
- self.tools = InsightsTools(self.sdk_configuration)
34
+ self.folders = Folders(self.sdk_configuration, parent_ref=self.parent_ref)
35
+ self.workflows = Workflows(self.sdk_configuration, parent_ref=self.parent_ref)
36
+ self.tools = InsightsTools(self.sdk_configuration, parent_ref=self.parent_ref)
35
37
 
36
38
  def list(
37
39
  self,
@@ -5,6 +5,7 @@ from .channeltargetresponse import ChannelTargetResponse, ChannelTargetResponseT
5
5
  from typing import TYPE_CHECKING
6
6
  from importlib import import_module
7
7
  import builtins
8
+ import sys
8
9
 
9
10
  if TYPE_CHECKING:
10
11
  from .agent_deleteop import AgentDeleteRequest, AgentDeleteRequestTypedDict
@@ -1993,6 +1994,18 @@ _dynamic_imports: dict[str, str] = {
1993
1994
  }
1994
1995
 
1995
1996
 
1997
+ def dynamic_import(modname, retries=3):
1998
+ for attempt in range(retries):
1999
+ try:
2000
+ return import_module(modname, __package__)
2001
+ except KeyError:
2002
+ # Clear any half-initialized module and retry
2003
+ sys.modules.pop(modname, None)
2004
+ if attempt == retries - 1:
2005
+ break
2006
+ raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
2007
+
2008
+
1996
2009
  def __getattr__(attr_name: str) -> object:
1997
2010
  module_name = _dynamic_imports.get(attr_name)
1998
2011
  if module_name is None:
@@ -2001,7 +2014,7 @@ def __getattr__(attr_name: str) -> object:
2001
2014
  )
2002
2015
 
2003
2016
  try:
2004
- module = import_module(module_name, __package__)
2017
+ module = dynamic_import(module_name)
2005
2018
  result = getattr(module, attr_name)
2006
2019
  return result
2007
2020
  except ImportError as e:
@@ -7,6 +7,8 @@ from enum import Enum
7
7
  class AgentSttProvider(str, Enum):
8
8
  r"""Speech-to-text providers supported by agents."""
9
9
 
10
+ GOOGLE_STT_V2_CHIRP_2_ = "Google STT V2 (Chirp 2)"
11
+ DEEPGRAM_NOVA_3 = "Deepgram Nova 3"
10
12
  GOOGLE_STT_V2 = "Google STT V2"
11
13
  GOOGLE_STT_V1 = "Google STT V1"
12
14
  DEEPGRAM_NOVA_2 = "Deepgram Nova 2"
@@ -24,7 +24,7 @@ class ServiceCreateRequestTypedDict(TypedDict):
24
24
  auth_type: NotRequired[Nullable[ToolAuthType]]
25
25
  r"""The type of authentication to use for the service's tools"""
26
26
  auth_values: NotRequired[Nullable[Any]]
27
- r"""The values to use for the authentication, as a dict. Should contain \"username\" and \"password\" keys if auth type is basic, \"token\" key if auth type is bearer, or arbitrary header keys if auth type is custom_headers. On an update, leave a value for a given key null and the value in the database will not be updated. (If a key is omitted entirely, any existing value for that key will be removed.)"""
27
+ r"""The values to use for the authentication, as a dict. Should contain \"username\" and \"password\" keys if auth type is basic, \"token\" key if auth type is bearer, arbitrary header keys if auth type is custom_headers. or \"client_id\", \"client_secret\", and \"auth_url\" keys if auth type is oauth2. On an update, leave a value for a given key null and the value in the database will not be updated. (If a key is omitted entirely, any existing value for that key will be removed.)"""
28
28
 
29
29
 
30
30
  class ServiceCreateRequest(BaseModel):
@@ -40,7 +40,7 @@ class ServiceCreateRequest(BaseModel):
40
40
  r"""The type of authentication to use for the service's tools"""
41
41
 
42
42
  auth_values: OptionalNullable[Any] = UNSET
43
- r"""The values to use for the authentication, as a dict. Should contain \"username\" and \"password\" keys if auth type is basic, \"token\" key if auth type is bearer, or arbitrary header keys if auth type is custom_headers. On an update, leave a value for a given key null and the value in the database will not be updated. (If a key is omitted entirely, any existing value for that key will be removed.)"""
43
+ r"""The values to use for the authentication, as a dict. Should contain \"username\" and \"password\" keys if auth type is basic, \"token\" key if auth type is bearer, arbitrary header keys if auth type is custom_headers. or \"client_id\", \"client_secret\", and \"auth_url\" keys if auth type is oauth2. On an update, leave a value for a given key null and the value in the database will not be updated. (If a key is omitted entirely, any existing value for that key will be removed.)"""
44
44
 
45
45
  @model_serializer(mode="wrap")
46
46
  def serialize_model(self, handler):
@@ -26,7 +26,7 @@ class ServiceUpdateRequestTypedDict(TypedDict):
26
26
  auth_type: NotRequired[Nullable[ToolAuthType]]
27
27
  r"""The type of authentication to use for the service's tools"""
28
28
  auth_values: NotRequired[Nullable[Any]]
29
- r"""The values to use for the authentication, as a dict. Should contain \"username\" and \"password\" keys if auth type is basic, \"token\" key if auth type is bearer, or arbitrary header keys if auth type is custom_headers. On an update, leave a value for a given key null and the value in the database will not be updated. (If a key is omitted entirely, any existing value for that key will be removed.)"""
29
+ r"""The values to use for the authentication, as a dict. Should contain \"username\" and \"password\" keys if auth type is basic, \"token\" key if auth type is bearer, arbitrary header keys if auth type is custom_headers. or \"client_id\", \"client_secret\", and \"auth_url\" keys if auth type is oauth2. On an update, leave a value for a given key null and the value in the database will not be updated. (If a key is omitted entirely, any existing value for that key will be removed.)"""
30
30
  last_updated_comments: NotRequired[Nullable[str]]
31
31
  r"""Free text providing comment about what was updated"""
32
32
 
@@ -47,7 +47,7 @@ class ServiceUpdateRequest(BaseModel):
47
47
  r"""The type of authentication to use for the service's tools"""
48
48
 
49
49
  auth_values: OptionalNullable[Any] = UNSET
50
- r"""The values to use for the authentication, as a dict. Should contain \"username\" and \"password\" keys if auth type is basic, \"token\" key if auth type is bearer, or arbitrary header keys if auth type is custom_headers. On an update, leave a value for a given key null and the value in the database will not be updated. (If a key is omitted entirely, any existing value for that key will be removed.)"""
50
+ r"""The values to use for the authentication, as a dict. Should contain \"username\" and \"password\" keys if auth type is basic, \"token\" key if auth type is bearer, arbitrary header keys if auth type is custom_headers. or \"client_id\", \"client_secret\", and \"auth_url\" keys if auth type is oauth2. On an update, leave a value for a given key null and the value in the database will not be updated. (If a key is omitted entirely, any existing value for that key will be removed.)"""
51
51
 
52
52
  last_updated_comments: OptionalNullable[str] = UNSET
53
53
  r"""Free text providing comment about what was updated"""
@@ -4,6 +4,7 @@ from .basesdk import BaseSDK
4
4
  from .sdkconfiguration import SDKConfiguration
5
5
  from syllable_sdk.batches import Batches
6
6
  from syllable_sdk.campaigns import Campaigns
7
+ from typing import Optional
7
8
 
8
9
 
9
10
  class Outbound(BaseSDK):
@@ -12,11 +13,13 @@ class Outbound(BaseSDK):
12
13
  campaigns: Campaigns
13
14
  r"""Operations related to outbound message campaigns"""
14
15
 
15
- def __init__(self, sdk_config: SDKConfiguration) -> None:
16
- BaseSDK.__init__(self, sdk_config)
16
+ def __init__(
17
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
18
+ ) -> None:
19
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
17
20
  self.sdk_configuration = sdk_config
18
21
  self._init_sdks()
19
22
 
20
23
  def _init_sdks(self):
21
- self.batches = Batches(self.sdk_configuration)
22
- self.campaigns = Campaigns(self.sdk_configuration)
24
+ self.batches = Batches(self.sdk_configuration, parent_ref=self.parent_ref)
25
+ self.campaigns = Campaigns(self.sdk_configuration, parent_ref=self.parent_ref)
@@ -10,6 +10,7 @@ import importlib
10
10
  from syllable_sdk import models, utils
11
11
  from syllable_sdk._hooks import SDKHooks
12
12
  from syllable_sdk.types import OptionalNullable, UNSET
13
+ import sys
13
14
  from typing import Any, Callable, Dict, Optional, TYPE_CHECKING, Union, cast
14
15
  import weakref
15
16
 
@@ -215,6 +216,7 @@ class SyllableSDK(BaseSDK):
215
216
  timeout_ms=timeout_ms,
216
217
  debug_logger=debug_logger,
217
218
  ),
219
+ parent_ref=self,
218
220
  )
219
221
 
220
222
  hooks = SDKHooks()
@@ -239,13 +241,24 @@ class SyllableSDK(BaseSDK):
239
241
  self.sdk_configuration.async_client_supplied,
240
242
  )
241
243
 
244
+ def dynamic_import(self, modname, retries=3):
245
+ for attempt in range(retries):
246
+ try:
247
+ return importlib.import_module(modname)
248
+ except KeyError:
249
+ # Clear any half-initialized module and retry
250
+ sys.modules.pop(modname, None)
251
+ if attempt == retries - 1:
252
+ break
253
+ raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
254
+
242
255
  def __getattr__(self, name: str):
243
256
  if name in self._sub_sdk_map:
244
257
  module_path, class_name = self._sub_sdk_map[name]
245
258
  try:
246
- module = importlib.import_module(module_path)
259
+ module = self.dynamic_import(module_path)
247
260
  klass = getattr(module, class_name)
248
- instance = klass(self.sdk_configuration)
261
+ instance = klass(self.sdk_configuration, parent_ref=self)
249
262
  setattr(self, name, instance)
250
263
  return instance
251
264
  except ImportError as e:
@@ -21,15 +21,19 @@ class Sessions(BaseSDK):
21
21
  full_summary: FullSummary
22
22
  latency: Latency
23
23
 
24
- def __init__(self, sdk_config: SDKConfiguration) -> None:
25
- BaseSDK.__init__(self, sdk_config)
24
+ def __init__(
25
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
26
+ ) -> None:
27
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
26
28
  self.sdk_configuration = sdk_config
27
29
  self._init_sdks()
28
30
 
29
31
  def _init_sdks(self):
30
- self.transcript = Transcript(self.sdk_configuration)
31
- self.full_summary = FullSummary(self.sdk_configuration)
32
- self.latency = Latency(self.sdk_configuration)
32
+ self.transcript = Transcript(self.sdk_configuration, parent_ref=self.parent_ref)
33
+ self.full_summary = FullSummary(
34
+ self.sdk_configuration, parent_ref=self.parent_ref
35
+ )
36
+ self.latency = Latency(self.sdk_configuration, parent_ref=self.parent_ref)
33
37
 
34
38
  def list(
35
39
  self,
@@ -17,13 +17,15 @@ class Twilio(BaseSDK):
17
17
  numbers: Numbers
18
18
  r"""Operations related to setting up phone numbers in Twilio for use in channels."""
19
19
 
20
- def __init__(self, sdk_config: SDKConfiguration) -> None:
21
- BaseSDK.__init__(self, sdk_config)
20
+ def __init__(
21
+ self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
22
+ ) -> None:
23
+ BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
22
24
  self.sdk_configuration = sdk_config
23
25
  self._init_sdks()
24
26
 
25
27
  def _init_sdks(self):
26
- self.numbers = Numbers(self.sdk_configuration)
28
+ self.numbers = Numbers(self.sdk_configuration, parent_ref=self.parent_ref)
27
29
 
28
30
  def get_by_id(
29
31
  self,
@@ -3,6 +3,7 @@
3
3
  from typing import TYPE_CHECKING
4
4
  from importlib import import_module
5
5
  import builtins
6
+ import sys
6
7
 
7
8
  if TYPE_CHECKING:
8
9
  from .annotations import get_discriminator
@@ -162,6 +163,18 @@ _dynamic_imports: dict[str, str] = {
162
163
  }
163
164
 
164
165
 
166
+ def dynamic_import(modname, retries=3):
167
+ for attempt in range(retries):
168
+ try:
169
+ return import_module(modname, __package__)
170
+ except KeyError:
171
+ # Clear any half-initialized module and retry
172
+ sys.modules.pop(modname, None)
173
+ if attempt == retries - 1:
174
+ break
175
+ raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
176
+
177
+
165
178
  def __getattr__(attr_name: str) -> object:
166
179
  module_name = _dynamic_imports.get(attr_name)
167
180
  if module_name is None:
@@ -170,9 +183,8 @@ def __getattr__(attr_name: str) -> object:
170
183
  )
171
184
 
172
185
  try:
173
- module = import_module(module_name, __package__)
174
- result = getattr(module, attr_name)
175
- return result
186
+ module = dynamic_import(module_name)
187
+ return getattr(module, attr_name)
176
188
  except ImportError as e:
177
189
  raise ImportError(
178
190
  f"Failed to import {attr_name} from {module_name}: {e}"
@@ -17,6 +17,9 @@ T = TypeVar("T")
17
17
 
18
18
 
19
19
  class EventStream(Generic[T]):
20
+ # Holds a reference to the SDK client to avoid it being garbage collected
21
+ # and cause termination of the underlying httpx client.
22
+ client_ref: Optional[object]
20
23
  response: httpx.Response
21
24
  generator: Generator[T, None, None]
22
25
 
@@ -25,9 +28,11 @@ class EventStream(Generic[T]):
25
28
  response: httpx.Response,
26
29
  decoder: Callable[[str], T],
27
30
  sentinel: Optional[str] = None,
31
+ client_ref: Optional[object] = None,
28
32
  ):
29
33
  self.response = response
30
34
  self.generator = stream_events(response, decoder, sentinel)
35
+ self.client_ref = client_ref
31
36
 
32
37
  def __iter__(self):
33
38
  return self
@@ -43,6 +48,9 @@ class EventStream(Generic[T]):
43
48
 
44
49
 
45
50
  class EventStreamAsync(Generic[T]):
51
+ # Holds a reference to the SDK client to avoid it being garbage collected
52
+ # and cause termination of the underlying httpx client.
53
+ client_ref: Optional[object]
46
54
  response: httpx.Response
47
55
  generator: AsyncGenerator[T, None]
48
56
 
@@ -51,9 +59,11 @@ class EventStreamAsync(Generic[T]):
51
59
  response: httpx.Response,
52
60
  decoder: Callable[[str], T],
53
61
  sentinel: Optional[str] = None,
62
+ client_ref: Optional[object] = None,
54
63
  ):
55
64
  self.response = response
56
65
  self.generator = stream_events_async(response, decoder, sentinel)
66
+ self.client_ref = client_ref
57
67
 
58
68
  def __aiter__(self):
59
69
  return self
File without changes