jaxl-python 0.0.13__tar.gz → 0.0.16__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 (241) hide show
  1. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/PKG-INFO +18 -8
  2. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/README.md +14 -7
  3. jaxl_python-0.0.16/docs.sh +8 -0
  4. jaxl_python-0.0.16/index.md +9 -0
  5. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/__init__.py +16 -51
  6. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/_client.py +5 -0
  7. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/base.py +45 -18
  8. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/__init__.py +1 -1
  9. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/_scm_version.py +2 -2
  10. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/__init__.py +1 -1
  11. jaxl_python-0.0.16/jaxl/api/client/api/v1/v1_app_organizations_list.py +221 -0
  12. jaxl_python-0.0.16/jaxl/api/client/api/v1/v1_app_organizations_providers_list.py +269 -0
  13. jaxl_python-0.0.16/jaxl/api/client/api/v1/v1_calls_retrieve.py +186 -0
  14. jaxl_python-0.0.16/jaxl/api/client/api/v1/v1_integrations_create.py +176 -0
  15. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/errors.py +1 -1
  16. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/__init__.py +29 -1
  17. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_add_request_request.py +6 -6
  18. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_tts_request_request.py +12 -1
  19. jaxl_python-0.0.16/jaxl/api/client/models/exotel_auth_request_request.py +90 -0
  20. jaxl_python-0.0.16/jaxl/api/client/models/integrations_error_response.py +66 -0
  21. jaxl_python-0.0.16/jaxl/api/client/models/integrations_properties_request.py +101 -0
  22. jaxl_python-0.0.16/jaxl/api/client/models/integrations_request_provider_enum.py +42 -0
  23. jaxl_python-0.0.16/jaxl/api/client/models/integrations_request_request.py +102 -0
  24. jaxl_python-0.0.16/jaxl/api/client/models/integrations_response.py +89 -0
  25. jaxl_python-0.0.16/jaxl/api/client/models/invalid_provider_request.py +66 -0
  26. jaxl_python-0.0.16/jaxl/api/client/models/organization.py +121 -0
  27. jaxl_python-0.0.16/jaxl/api/client/models/organization_preferences.py +53 -0
  28. jaxl_python-0.0.16/jaxl/api/client/models/organization_provider.py +80 -0
  29. jaxl_python-0.0.16/jaxl/api/client/models/paginated_organization_list.py +107 -0
  30. jaxl_python-0.0.16/jaxl/api/client/models/paginated_organization_provider_list.py +107 -0
  31. jaxl_python-0.0.16/jaxl/api/client/models/shopify_auth_request_request.py +66 -0
  32. jaxl_python-0.0.16/jaxl/api/client/models/v1_app_organizations_list_status_item.py +21 -0
  33. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/types.py +1 -1
  34. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/accounts.py +3 -2
  35. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/apps.py +29 -5
  36. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/calls.py +66 -1
  37. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/campaigns.py +1 -1
  38. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/members.py +2 -1
  39. jaxl_python-0.0.16/jaxl/api/resources/orgs.py +63 -0
  40. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/teams.py +2 -1
  41. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl_python.egg-info/PKG-INFO +18 -8
  42. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl_python.egg-info/SOURCES.txt +22 -0
  43. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl_python.egg-info/requires.txt +3 -0
  44. jaxl_python-0.0.16/mkdocs.yml +10 -0
  45. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/pyproject.toml +1 -0
  46. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/setup.cfg +3 -0
  47. jaxl_python-0.0.16/setup.gif +0 -0
  48. jaxl_python-0.0.13/docs.sh +0 -5
  49. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/.github/workflows/sdk.yml +0 -0
  50. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/.gitignore +0 -0
  51. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/.isort.cfg +0 -0
  52. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/.pylintrc +0 -0
  53. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/.vscode/settings.json +0 -0
  54. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/LICENSE.md +0 -0
  55. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/SPECIFICATION.md +0 -0
  56. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/examples/README.md +0 -0
  57. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/examples/__init__.py +0 -0
  58. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/examples/prompts/example.txt +0 -0
  59. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/examples/py.typed +0 -0
  60. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/examples/request_and_confirm_code_then_send_to_phone.py +0 -0
  61. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/examples/request_code_and_send_to_phone.py +0 -0
  62. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/examples/send_to_phone.py +0 -0
  63. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/examples/streaming_aiagent.py +0 -0
  64. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/examples/streaming_audio_chunks.py +0 -0
  65. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/examples/streaming_speech_segments.py +0 -0
  66. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/examples/streaming_transcriptions.py +0 -0
  67. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/_sdk.py +0 -0
  68. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/cli.py +0 -0
  69. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/__init__.py +0 -0
  70. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_appusers_me_retrieve.py +0 -0
  71. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_calls_add_create.py +0 -0
  72. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_calls_list.py +0 -0
  73. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_calls_token_create.py +0 -0
  74. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_calls_tts_create.py +0 -0
  75. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_calls_usage_retrieve.py +0 -0
  76. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_campaign_list.py +0 -0
  77. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_customer_consumables_retrieve.py +0 -0
  78. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_devices_attest_create.py +0 -0
  79. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_devices_list.py +0 -0
  80. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_ivr_create.py +0 -0
  81. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_ivr_list.py +0 -0
  82. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_ivr_options_create.py +0 -0
  83. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_ivr_options_list.py +0 -0
  84. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_ivr_options_partial_update.py +0 -0
  85. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_kyc_list.py +0 -0
  86. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_messages_list.py +0 -0
  87. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_phonenumbers_list.py +0 -0
  88. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_phonenumbers_partial_update.py +0 -0
  89. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v1/v1_phonenumbers_search_retrieve.py +0 -0
  90. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v2/__init__.py +0 -0
  91. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v2/v2_app_organizations_employees_list.py +0 -0
  92. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v2/v2_app_organizations_groups_list.py +0 -0
  93. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v3/__init__.py +0 -0
  94. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/api/v3/v3_orders_subscriptions_list.py +0 -0
  95. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/client.py +0 -0
  96. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/address_provider.py +0 -0
  97. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/address_provider_status_enum.py +0 -0
  98. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/analytic.py +0 -0
  99. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/app_price.py +0 -0
  100. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/app_user.py +0 -0
  101. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/available_phone_number.py +0 -0
  102. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/available_phone_number_capabilities.py +0 -0
  103. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/available_phone_number_provider_enum.py +0 -0
  104. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call.py +0 -0
  105. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_cost.py +0 -0
  106. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_location_epoch.py +0 -0
  107. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_metadata.py +0 -0
  108. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_tag_response.py +0 -0
  109. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_token_request.py +0 -0
  110. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_token_response.py +0 -0
  111. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_type_enum.py +0 -0
  112. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_usage_by_currency_response.py +0 -0
  113. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_usage_response.py +0 -0
  114. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/call_usage_stats_response.py +0 -0
  115. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/campaign_metadata.py +0 -0
  116. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/campaign_metadata_metadata.py +0 -0
  117. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/campaign_response.py +0 -0
  118. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/campaign_response_status_enum.py +0 -0
  119. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/campaign_stats.py +0 -0
  120. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/campaign_tag.py +0 -0
  121. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/can_user_resubscribe_plan.py +0 -0
  122. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/canceled_by_enum.py +0 -0
  123. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/capabilities.py +0 -0
  124. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/connection.py +0 -0
  125. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/country.py +0 -0
  126. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/cta.py +0 -0
  127. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/cta_request.py +0 -0
  128. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/currency_enum.py +0 -0
  129. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/customer_consumable_total.py +0 -0
  130. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/customer_order_subscriptions_serializer_v2.py +0 -0
  131. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/customer_order_subscriptions_serializer_v2_status_enum.py +0 -0
  132. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/customer_provider_serializer_v2.py +0 -0
  133. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/device.py +0 -0
  134. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/device_attestation_error.py +0 -0
  135. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/device_attestation_error_reason_enum.py +0 -0
  136. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/device_attestation_response.py +0 -0
  137. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/dh_message.py +0 -0
  138. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/dh_message_attachment.py +0 -0
  139. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/dh_message_reaction.py +0 -0
  140. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/dh_message_type_enum.py +0 -0
  141. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/direction_enum.py +0 -0
  142. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/emoji.py +0 -0
  143. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/emoji_reaction.py +0 -0
  144. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/id_enum.py +0 -0
  145. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/intent_enum.py +0 -0
  146. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/iso_country_enum.py +0 -0
  147. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/item.py +0 -0
  148. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/ivr_collection.py +0 -0
  149. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/ivr_collection_request.py +0 -0
  150. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/ivr_menu_request.py +0 -0
  151. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/ivr_menu_response.py +0 -0
  152. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/ivr_menu_response_status_enum.py +0 -0
  153. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/ivr_options_invalid_response.py +0 -0
  154. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/ivr_options_request.py +0 -0
  155. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/ivr_options_response.py +0 -0
  156. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/kyc.py +0 -0
  157. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/kyc_status_enum.py +0 -0
  158. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/kyc_upload_metadata.py +0 -0
  159. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/location.py +0 -0
  160. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/next_or_cta_request.py +0 -0
  161. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/order_status_enum.py +0 -0
  162. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/organization_employee.py +0 -0
  163. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/organization_employee_preferences.py +0 -0
  164. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/organization_employee_status_enum.py +0 -0
  165. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/organization_group_inline.py +0 -0
  166. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/organization_group_response.py +0 -0
  167. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/paginated_call_list.py +0 -0
  168. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/paginated_campaign_response_list.py +0 -0
  169. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/paginated_customer_order_subscriptions_serializer_v2_list.py +0 -0
  170. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/paginated_device_list.py +0 -0
  171. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/paginated_dh_message_list.py +0 -0
  172. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/paginated_ivr_menu_response_list.py +0 -0
  173. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/paginated_ivr_options_response_list.py +0 -0
  174. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/paginated_kyc_list.py +0 -0
  175. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/paginated_organization_employee_list.py +0 -0
  176. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/paginated_organization_group_response_list.py +0 -0
  177. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/paginated_phone_number_list.py +0 -0
  178. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/patched_ivr_options_update_request.py +0 -0
  179. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/patched_phone_number_request.py +0 -0
  180. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/payment_gateway_fees_info.py +0 -0
  181. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/period_enum.py +0 -0
  182. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/phone_number.py +0 -0
  183. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/phone_number_attributes.py +0 -0
  184. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/phone_number_capabilities.py +0 -0
  185. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/phone_number_provider_enum.py +0 -0
  186. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/phone_number_search_response.py +0 -0
  187. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/phone_number_status_enum.py +0 -0
  188. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/plan.py +0 -0
  189. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/plan_cancel_info.py +0 -0
  190. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/plan_expiry_timestamp.py +0 -0
  191. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/plan_expiry_timestamp_type_enum.py +0 -0
  192. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/plan_extra_details.py +0 -0
  193. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/plan_item.py +0 -0
  194. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/plan_type.py +0 -0
  195. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/plan_type_cycle.py +0 -0
  196. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/platform_enum.py +0 -0
  197. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/product_group.py +0 -0
  198. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/proof.py +0 -0
  199. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/proof_status_enum.py +0 -0
  200. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/provider_status_enum.py +0 -0
  201. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/reaction_by.py +0 -0
  202. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/rental_currency_enum.py +0 -0
  203. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/resource_enum.py +0 -0
  204. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/user_agent.py +0 -0
  205. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/user_agent_browser.py +0 -0
  206. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/user_agent_device.py +0 -0
  207. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/user_agent_operating_system.py +0 -0
  208. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/user_agent_platform.py +0 -0
  209. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/user_identity.py +0 -0
  210. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_calls_list_direction.py +0 -0
  211. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_campaign_list_status_item.py +0 -0
  212. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_customer_consumables_retrieve_currency.py +0 -0
  213. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_ivr_list_duration.py +0 -0
  214. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_kyc_list_iso_country.py +0 -0
  215. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_kyc_list_provider_status_item.py +0 -0
  216. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_kyc_list_resource.py +0 -0
  217. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_kyc_list_status.py +0 -0
  218. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_phonenumbers_list_additional_status_item.py +0 -0
  219. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_phonenumbers_list_provider.py +0 -0
  220. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_phonenumbers_list_status.py +0 -0
  221. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_intent.py +0 -0
  222. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_iso_country_code.py +0 -0
  223. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_resource.py +0 -0
  224. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v2_app_organizations_employees_list_status_item.py +0 -0
  225. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v3_orders_subscriptions_list_currency.py +0 -0
  226. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/client/models/v3_orders_subscriptions_list_status_item.py +0 -0
  227. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/py.typed +0 -0
  228. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/__init__.py +0 -0
  229. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/_constants.py +0 -0
  230. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/devices.py +0 -0
  231. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/ivrs.py +0 -0
  232. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/kycs.py +0 -0
  233. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/messages.py +0 -0
  234. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/notifications.py +0 -0
  235. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/payments.py +0 -0
  236. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/phones.py +0 -0
  237. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl/api/resources/silence.py +0 -0
  238. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl_python.egg-info/dependency_links.txt +0 -0
  239. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl_python.egg-info/entry_points.txt +0 -0
  240. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl_python.egg-info/not-zip-safe +0 -0
  241. {jaxl_python-0.0.13 → jaxl_python-0.0.16}/jaxl_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaxl-python
3
- Version: 0.0.13
3
+ Version: 0.0.16
4
4
  Summary: Official Python SDK and CLI for interfacing with the Jaxl API. Manage calls, messages, IVRs, devices, teams, payments, campaigns, streaming transcriptions and AI Agents. Built on OpenAPI, it offers both generated API clients and Pythonic wrappers for ease of use.
5
5
  Home-page: https://github.com/jaxl-innovations-private-limited/jaxl-python
6
6
  Download-URL: https://github.com/jaxl-innovations-private-limited/jaxl-python/archive/main.zip
@@ -59,6 +59,9 @@ Requires-Dist: autoflake; extra == "dev"
59
59
  Requires-Dist: pylint==3.3.3; extra == "dev"
60
60
  Provides-Extra: docs
61
61
  Requires-Dist: pdoc3==0.11.6; extra == "docs"
62
+ Requires-Dist: mkdocs==1.6.1; extra == "docs"
63
+ Requires-Dist: mkdocstrings==0.30.1; extra == "docs"
64
+ Requires-Dist: mkdocstrings-python==1.18.2; extra == "docs"
62
65
  Provides-Extra: types
63
66
  Requires-Dist: types-python-dateutil; extra == "types"
64
67
  Requires-Dist: types-PyYAML==6.0.12.20250915; extra == "types"
@@ -113,6 +116,7 @@ Use Jaxl from Python code or directly via the `jaxl` command-line tool.
113
116
  - [Unmute a Participant in an Active Call](#unmute-a-participant-in-an-active-call)
114
117
  - [Hold a Participant in an Active Call](#hold-a-participant-in-an-active-call)
115
118
  - [Unhold a Participant in an Active Call](#unhold-a-participant-in-an-active-call)
119
+ - [Get call details](#get-call-details)
116
120
  - [Receive Call Events via Webhook IVRs](#receive-call-events-via-webhook-ivrs)
117
121
  - [Realtime Streaming Audio](#realtime-streaming-audio)
118
122
  - [Realtime Streaming Speech Segments](#realtime-streaming-speech-segments)
@@ -134,12 +138,12 @@ Use Jaxl from Python code or directly via the `jaxl` command-line tool.
134
138
 
135
139
  ```bash
136
140
  jaxl -h
137
- usage: jaxl [-h] {accounts,apps,calls,campaigns,devices,ivrs,kycs,members,messages,notifications,payments,phones,teams} ...
141
+ usage: jaxl [-h] {accounts,apps,calls,campaigns,devices,ivrs,kycs,members,messages,notifications,orgs,payments,phones,teams} ...
138
142
 
139
143
  Jaxl CLI
140
144
 
141
145
  positional arguments:
142
- {accounts,apps,calls,campaigns,devices,ivrs,kycs,members,messages,notifications,payments,phones,teams}
146
+ {accounts,apps,calls,campaigns,devices,ivrs,kycs,members,messages,notifications,orgs,payments,phones,teams}
143
147
  accounts Manage Accounts
144
148
  apps Manage Apps for Webhooks and Streaming audio/speech/transcriptions.
145
149
  calls Manage Calls (Domestic & International Cellular, App-to-App)
@@ -150,6 +154,7 @@ positional arguments:
150
154
  members Manage Members
151
155
  messages Manage Messages (SMS, WA, RCS, Email, App-to-App)
152
156
  notifications Manage Notifications (Android, iOS, Web)
157
+ orgs Manage Accounts
153
158
  payments Manage Payments
154
159
  phones Manage Phones (Landline, Mobile, TollFree)
155
160
  teams Manage Teams (Managers, Phones)
@@ -167,6 +172,8 @@ You will require the following to successfully run `jaxl` command line tool:
167
172
 
168
173
  Please visit [Jaxl Business Website](https://business.jaxl.com) or download the [Jaxl Business Android](https://play.google.com/store/apps/details?id=com.jaxl.business) or [Jaxl Business iOS](https://apps.apple.com/app/id6451118240) mobile application to access your credentials and auth tokens.
169
174
 
175
+ [![Setup](https://raw.githubusercontent.com/jaxl-innovations-private-limited/jaxl-python/main/setup.gif)](https://github.com/jaxl-innovations-private-limited/jaxl-python#setup)
176
+
170
177
  Finally, setup following environment variables when trying `jaxl` command line.
171
178
 
172
179
  ```bash
@@ -336,11 +343,8 @@ jaxl calls remove --call-id 1234 --email <someone@mycompany.com>
336
343
  ### Send Text Prompts (TTS) in an Active Call
337
344
 
338
345
  ```bash
339
- jaxl calls speak --call-id 1234 \
340
- --prompt "Hello, this text was injected in the middle of an active call" \
341
- --prompt "Yes its possible to pass in multiple prompt flags" \
342
- --prompt "Use shorter prompt phrases to keep TTS latency low" \
343
- --prompt "Avoid using excessively large sentences"
346
+ jaxl calls tts --call-id 1234 \
347
+ --prompt "Hello, this text was injected in the middle of an active call"
344
348
  ```
345
349
 
346
350
  ### Play Audio File in an Active Call
@@ -407,6 +411,12 @@ Unhold an agent in a call
407
411
  jaxl calls unhold --call-id 1235 --email <someone@mycompany.com>
408
412
  ```
409
413
 
414
+ ### Get call details
415
+
416
+ ```bash
417
+ jaxl calls get --call-id 1234
418
+ ```
419
+
410
420
  ### Receive Call Events via Webhook IVRs
411
421
 
412
422
  Webhook IVRs can be used to programatically control the lifecycle of incoming and outgoing calls.
@@ -27,6 +27,7 @@ Use Jaxl from Python code or directly via the `jaxl` command-line tool.
27
27
  - [Unmute a Participant in an Active Call](#unmute-a-participant-in-an-active-call)
28
28
  - [Hold a Participant in an Active Call](#hold-a-participant-in-an-active-call)
29
29
  - [Unhold a Participant in an Active Call](#unhold-a-participant-in-an-active-call)
30
+ - [Get call details](#get-call-details)
30
31
  - [Receive Call Events via Webhook IVRs](#receive-call-events-via-webhook-ivrs)
31
32
  - [Realtime Streaming Audio](#realtime-streaming-audio)
32
33
  - [Realtime Streaming Speech Segments](#realtime-streaming-speech-segments)
@@ -48,12 +49,12 @@ Use Jaxl from Python code or directly via the `jaxl` command-line tool.
48
49
 
49
50
  ```bash
50
51
  jaxl -h
51
- usage: jaxl [-h] {accounts,apps,calls,campaigns,devices,ivrs,kycs,members,messages,notifications,payments,phones,teams} ...
52
+ usage: jaxl [-h] {accounts,apps,calls,campaigns,devices,ivrs,kycs,members,messages,notifications,orgs,payments,phones,teams} ...
52
53
 
53
54
  Jaxl CLI
54
55
 
55
56
  positional arguments:
56
- {accounts,apps,calls,campaigns,devices,ivrs,kycs,members,messages,notifications,payments,phones,teams}
57
+ {accounts,apps,calls,campaigns,devices,ivrs,kycs,members,messages,notifications,orgs,payments,phones,teams}
57
58
  accounts Manage Accounts
58
59
  apps Manage Apps for Webhooks and Streaming audio/speech/transcriptions.
59
60
  calls Manage Calls (Domestic & International Cellular, App-to-App)
@@ -64,6 +65,7 @@ positional arguments:
64
65
  members Manage Members
65
66
  messages Manage Messages (SMS, WA, RCS, Email, App-to-App)
66
67
  notifications Manage Notifications (Android, iOS, Web)
68
+ orgs Manage Accounts
67
69
  payments Manage Payments
68
70
  phones Manage Phones (Landline, Mobile, TollFree)
69
71
  teams Manage Teams (Managers, Phones)
@@ -81,6 +83,8 @@ You will require the following to successfully run `jaxl` command line tool:
81
83
 
82
84
  Please visit [Jaxl Business Website](https://business.jaxl.com) or download the [Jaxl Business Android](https://play.google.com/store/apps/details?id=com.jaxl.business) or [Jaxl Business iOS](https://apps.apple.com/app/id6451118240) mobile application to access your credentials and auth tokens.
83
85
 
86
+ [![Setup](https://raw.githubusercontent.com/jaxl-innovations-private-limited/jaxl-python/main/setup.gif)](https://github.com/jaxl-innovations-private-limited/jaxl-python#setup)
87
+
84
88
  Finally, setup following environment variables when trying `jaxl` command line.
85
89
 
86
90
  ```bash
@@ -250,11 +254,8 @@ jaxl calls remove --call-id 1234 --email <someone@mycompany.com>
250
254
  ### Send Text Prompts (TTS) in an Active Call
251
255
 
252
256
  ```bash
253
- jaxl calls speak --call-id 1234 \
254
- --prompt "Hello, this text was injected in the middle of an active call" \
255
- --prompt "Yes its possible to pass in multiple prompt flags" \
256
- --prompt "Use shorter prompt phrases to keep TTS latency low" \
257
- --prompt "Avoid using excessively large sentences"
257
+ jaxl calls tts --call-id 1234 \
258
+ --prompt "Hello, this text was injected in the middle of an active call"
258
259
  ```
259
260
 
260
261
  ### Play Audio File in an Active Call
@@ -321,6 +322,12 @@ Unhold an agent in a call
321
322
  jaxl calls unhold --call-id 1235 --email <someone@mycompany.com>
322
323
  ```
323
324
 
325
+ ### Get call details
326
+
327
+ ```bash
328
+ jaxl calls get --call-id 1234
329
+ ```
330
+
324
331
  ### Receive Call Events via Webhook IVRs
325
332
 
326
333
  Webhook IVRs can be used to programatically control the lifecycle of incoming and outgoing calls.
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+
3
+ rm -rf docs site
4
+ pdoc3 -o docs jaxl
5
+ pdoc3 -o docs examples
6
+ cp index.md docs
7
+ PYTHONPATH=. mkdocs build
8
+ # open site/index.html
@@ -0,0 +1,9 @@
1
+ # Welcome to Jaxl Python
2
+
3
+ ::: jaxl.api
4
+
5
+ ::: jaxl.api.client
6
+
7
+ ::: jaxl.api.resources
8
+
9
+ ::: examples
@@ -23,8 +23,6 @@ Use Jaxl from Python code or directly via the `jaxl` command-line tool.
23
23
  - [Assign a Phone Number to IVR by ID](#assign-a-phone-number-to-ivr-by-id)
24
24
  - [Place Outgoing Cellular Call with Existing IVR](#place-outgoing-cellular-call-with-existing-ivr)
25
25
  - [Place Outgoing Cellular Call with Ad-hoc IVR](#place-outgoing-cellular-call-with-ad-hoc-ivr)
26
- - [Dial-out Multi-Party Conference between Cellular Numbers](#dial-out-multi-party-conference-between-cellular-numbers)
27
- - [Dial-out Agent Team and Cellular Numbers](#dial-out-agent-team-and-cellular-numbers)
28
26
  - [Dial-out 2-Party Conference with Ad-hoc IVR](#dial-out-2-party-conference-with-ad-hoc-ivr)
29
27
  - [Add External Phone Number to an Active Call](#add-external-phone-number-to-an-active-call)
30
28
  - [Add Agent to an Active Call](#add-agent-to-an-active-call)
@@ -122,13 +120,13 @@ This IVR will speak the message and then hangup the call.
122
120
 
123
121
  ```bash
124
122
  jaxl ivrs create \
125
- --message "Hello, we are calling via Jaxl IVR demo created from CLI" \
123
+ --message "Hello, we are calling via Jaxl IVR demo created from CLI. Will hang up after speaking this message." \
126
124
  --hangup
127
125
  ```
128
126
 
129
127
  ### Configure IVR Options
130
128
 
131
- This IVR option uses `--next` to send user to another IVR.
129
+ This IVR option uses `--next` to send user to another IVR or to the same IVR for a "repeat this menu" experience.
132
130
 
133
131
  ```bash
134
132
  jaxl ivrs options configure \
@@ -138,7 +136,7 @@ jaxl ivrs options configure \
138
136
  --next <NEXT IVR ID>
139
137
  ```
140
138
 
141
- > Use &lt;IVR ID TO CONFIGURE&gt; as the &lt;NEXT IVR ID&gt; to complete the "repeat this menu" experience.
139
+ > Use same value for &lt;IVR ID TO CONFIGURE&gt; and &lt;NEXT IVR ID&gt; to complete the "repeat this menu" experience.
142
140
 
143
141
  One of the CTA key flag must be provided. Allowed CTA keys are:
144
142
 
@@ -209,39 +207,6 @@ jaxl calls create \
209
207
  --option "2=Press 2 for HR department:team=<HR Team ID>
210
208
  ```
211
209
 
212
- ## Dial-out Multi-Party Conference between Cellular Numbers
213
-
214
- Below command will execute the following flow:
215
-
216
- - Dials out all `--to` participants in parallel
217
- - Connects them together as they answer the call
218
- - Ends the call when one but all others have hanged up the call
219
-
220
- ```bash
221
- jaxl calls create \
222
- --to "+91<Doctors Number>" \
223
- --to "+91<Patient Number>" \
224
- --to "+91<Supervisor Number>" \
225
- --from "+91<Purchased Jaxl Number>"
226
- ```
227
-
228
- ### Dial-out Agent Team and Cellular Numbers
229
-
230
- Below command will execute the following flow:
231
-
232
- - Dials out multiple teams of doctors & patient in parallel
233
- - Connects the patient with first doctor to pick the call from the teams
234
- - Doctors are called on their cellular number first (if added on Jaxl app),
235
- followed by an attempt to call on Jaxl app directly (VoIP).
236
- - Calling preference can be controlled per agent (doctor) or team to dictate
237
- whether to use cellular or voip first to connect with a doctor.
238
-
239
- ```bash
240
- jaxl calls create \
241
- --to "teams=<Doctors Team ID1>,<Doctors Team ID2>" \
242
- --to "+91<Patient Number>"
243
- ```
244
-
245
210
  ### Dial-out 2-Party Conference with Ad-hoc IVR
246
211
 
247
212
  Below command will execute the following flow:
@@ -407,25 +372,21 @@ jaxl payments consumables total
407
372
  ## Jaxl Python SDK
408
373
 
409
374
  - Jaxl APIs is built upon [OpenAPI specification](https://www.openapis.org/)
410
- - `jaxl-python` contains following Python modules:
411
- - `jaxl.api.client`: Generated OpenAPI SDK
412
- - `jaxl.api.resources`: Wrapper methods written to support `jaxl` CLI
413
- - `jaxl_api_client`: Helper function to retrieve an instance of `JaxlApiClient`
414
375
 
415
376
  ### SDK Example Usage:
416
377
 
417
378
  ```python
418
- from jaxl.api import JaxlApiModule, jaxl_api_client
419
- from jaxl.api.client.api.v1 import v1_calls_list
379
+ from jaxl.api import JaxlSDK
420
380
 
421
381
  os.environ.setdefault("JAXL_API_CREDENTIALS", "/path/to/jaxl-api-credentials.json")
422
382
 
423
383
  os.environ.setdefault("JAXL_API_AUTH_TOKEN", "....authentication token...")
424
384
 
425
- response = v1_calls_list.sync_detailed(
426
- client=jaxl_api_client(JaxlApiModule.CALL),
427
- currency=2, # 1=USD, 2=INR
428
- )
385
+ sdk = JaxlSDK()
386
+
387
+ response = sdk.calls.create(to="+91<Callee Number>", from_="+91<Purchased Jaxl Number>", ivr=1234)
388
+ response = sdk.calls.list(currency=2) # 1=USD, 2=INR
389
+ response = sdk.accounts.me()
429
390
  ```
430
391
 
431
392
  ## SDK Documentation
@@ -444,7 +405,7 @@ python3 -m venv .venv
444
405
  source .venv/bin/activate
445
406
 
446
407
  # Install
447
- pip install -e ".[dev]"
408
+ pip install -e ".[dev,docs]"
448
409
 
449
410
  # Generate documentation
450
411
  ./docs.sh
@@ -455,9 +416,13 @@ open docs/jaxl/index.html
455
416
 
456
417
  ## Status
457
418
 
458
- [![Python 3.x](https://img.shields.io/static/v1?label=Python&message=3.6%20%7C%203.7%20%7C%203.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12&color=blue&style=flat-square)](https://www.python.org/)
419
+ [![pypi version](https://img.shields.io/pypi/v/jaxl-python)](https://pypi.org/project/jaxl-python/)
420
+
421
+ [![PyPi Monthly](https://img.shields.io/pypi/dm/jaxl-python)](https://pypi.org/project/jaxl-python/)
422
+
423
+ [![Python 3.x](https://img.shields.io/static/v1?label=Python&message=3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12&color=blue)](https://www.python.org/)
459
424
 
460
- [![Checked with mypy](https://img.shields.io/static/v1?label=MyPy&message=checked&color=blue&style=flat-square)](http://mypy-lang.org/)
425
+ [![Checked with mypy](https://img.shields.io/static/v1?label=MyPy&message=checked&color=blue)](http://mypy-lang.org/)
461
426
  """
462
427
 
463
428
  from ._client import JaxlApiModule, jaxl_api_client
@@ -311,6 +311,7 @@ def jaxl_api_client(
311
311
  module: JaxlApiModule,
312
312
  credentials: Optional[ApiCredentials] = None,
313
313
  auth_token: Optional[str] = None,
314
+ set_org_id: bool = True,
314
315
  ) -> "AuthenticatedClient":
315
316
  """Returns JaxlApiClient with auth token and device id preset."""
316
317
  attestation = attest()
@@ -320,6 +321,10 @@ def jaxl_api_client(
320
321
  assert auth_token is not None, "Missing JAXL_API_AUTH_TOKEN"
321
322
  client.set_device_id(attestation["id"])
322
323
  client.set_auth_token(auth_token)
324
+ if set_org_id:
325
+ from jaxl.api.resources.orgs import first_org_id
326
+
327
+ client.set_org_id(first_org_id())
323
328
  return cast(AuthenticatedClient, client)
324
329
 
325
330
 
@@ -10,16 +10,25 @@ with or without modification, is strictly prohibited.
10
10
  import json
11
11
  import logging
12
12
  from enum import Enum
13
- from typing import Any, Callable, Coroutine, Dict, List, Optional, Union
13
+ from typing import (
14
+ Any,
15
+ Awaitable,
16
+ Callable,
17
+ Coroutine,
18
+ Dict,
19
+ List,
20
+ Optional,
21
+ Tuple,
22
+ Union,
23
+ )
14
24
 
15
25
  import requests
26
+ from fastapi import WebSocket
27
+ from fastapi.responses import Response as FastApiResponse
16
28
  from pydantic import BaseModel, model_validator
17
29
 
18
- from jaxl.api._client import JaxlApiModule, jaxl_api_client
19
- from jaxl.api.client.api.v1 import v1_calls_tts_create
20
- from jaxl.api.client.models.call_tts_request_request import (
21
- CallTtsRequestRequest,
22
- )
30
+ from jaxl.api.client.types import Response
31
+ from jaxl.api.resources.calls import calls_tts
23
32
  from jaxl.api.resources.ivrs import IVR_CTA_KEYS
24
33
 
25
34
 
@@ -31,6 +40,7 @@ class JaxlWebhookEvent(Enum):
31
40
  OPTION = 2
32
41
  TEARDOWN = 3
33
42
  STREAM = 4
43
+ MARK = 5
34
44
 
35
45
 
36
46
  class JaxlOrg(BaseModel):
@@ -58,11 +68,14 @@ class JaxlWebhookRequest(BaseModel):
58
68
  option: Optional[str]
59
69
  # Extra data
60
70
  data: Optional[str]
71
+ # Present only with mark event
72
+ mark: Optional[str] = None
61
73
 
62
74
 
63
75
  class JaxlWebhookResponse(BaseModel):
64
76
  prompt: List[str]
65
77
  num_characters: Union[int, str]
78
+ mark: Optional[str] = None
66
79
 
67
80
 
68
81
  class JaxlStreamRequest(BaseModel):
@@ -113,9 +126,23 @@ class JaxlCtaResponse(BaseModel):
113
126
 
114
127
  HANDLER_RESPONSE = Optional[Union[JaxlWebhookResponse, JaxlCtaResponse]]
115
128
 
129
+ ApiRouteConfig = Tuple[str, List[str], Optional[BaseModel]]
130
+ ApiRouteFunc = Union[
131
+ Callable[[BaseModel], Coroutine[Any, Any, Union[BaseModel, FastApiResponse]]],
132
+ Callable[[], Coroutine[Any, Any, Union[BaseModel, FastApiResponse]]],
133
+ ]
134
+ WebsocketRouteFunc = Callable[[WebSocket], Awaitable[None]]
135
+
116
136
 
117
137
  class BaseJaxlApp:
118
138
 
139
+ # pylint: disable=no-self-use,unused-argument
140
+ def api_routes(self) -> List[Tuple[ApiRouteConfig, ApiRouteFunc]]:
141
+ return []
142
+
143
+ def websocket_routes(self) -> List[Tuple[str, WebsocketRouteFunc]]:
144
+ return []
145
+
119
146
  # pylint: disable=no-self-use,unused-argument
120
147
  async def handle_configure(self, req: JaxlWebhookRequest) -> HANDLER_RESPONSE:
121
148
  """Invoked when a phone number gets assigned to IVR."""
@@ -137,6 +164,10 @@ class BaseJaxlApp:
137
164
  """Invoked when IVR option is chosen."""
138
165
  return None
139
166
 
167
+ async def handle_mark(self, req: JaxlWebhookRequest) -> HANDLER_RESPONSE:
168
+ """Invoked once TTS has finished. Only invoked if a marker was provided to tts function"""
169
+ return None
170
+
140
171
  # pylint: disable=no-self-use,unused-argument
141
172
  async def handle_teardown(self, req: JaxlWebhookRequest) -> HANDLER_RESPONSE:
142
173
  """Invoked when a call ends."""
@@ -222,15 +253,11 @@ class BaseJaxlApp:
222
253
  except Exception as exc:
223
254
  logger.warning(f"Unable to process ollama response: {exc}, {chunk}")
224
255
 
225
- async def tts(self, call_id: int, prompt: str, **kwargs: Any) -> None:
226
- v1_calls_tts_create.sync_detailed(
227
- id=call_id,
228
- client=jaxl_api_client(
229
- JaxlApiModule.CALL,
230
- credentials=kwargs.get("credentials", None),
231
- auth_token=kwargs.get("auth_token", None),
232
- ),
233
- json_body=CallTtsRequestRequest(
234
- prompts=[pro for pro in prompt.split(".") if len(pro.strip()) > 0]
235
- ),
236
- )
256
+ async def tts(
257
+ self,
258
+ call_id: int,
259
+ prompt: str,
260
+ mark: Optional[str] = None,
261
+ **kwargs: Any,
262
+ ) -> Response[Any]:
263
+ return calls_tts({"call_id": call_id, "prompt": prompt, "mark": mark})
@@ -7,7 +7,7 @@ Redistribution and use in source and binary forms,
7
7
  with or without modification, is strictly prohibited.
8
8
  """
9
9
 
10
- """A client library for accessing JAXL API"""
10
+ """ A client library for accessing JAXL API """
11
11
 
12
12
  from .client import AuthenticatedClient, Client
13
13
 
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.0.13'
21
- __version_tuple__ = version_tuple = (0, 0, 13)
20
+ __version__ = version = '0.0.16'
21
+ __version_tuple__ = version_tuple = (0, 0, 16)
@@ -7,4 +7,4 @@ Redistribution and use in source and binary forms,
7
7
  with or without modification, is strictly prohibited.
8
8
  """
9
9
 
10
- """Contains methods for accessing the API"""
10
+ """ Contains methods for accessing the API """
@@ -0,0 +1,221 @@
1
+ """
2
+ Copyright (c) 2010-present by Jaxl Innovations Private Limited.
3
+
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms,
7
+ with or without modification, is strictly prohibited.
8
+ """
9
+
10
+ from http import HTTPStatus
11
+ from typing import Any, Dict, List, Optional, Union
12
+
13
+ import httpx
14
+
15
+ from ... import errors
16
+ from ...client import AuthenticatedClient, Client
17
+ from ...models.paginated_organization_list import PaginatedOrganizationList
18
+ from ...models.v1_app_organizations_list_status_item import (
19
+ V1AppOrganizationsListStatusItem,
20
+ )
21
+ from ...types import UNSET, Response, Unset
22
+
23
+
24
+ def _get_kwargs(
25
+ *,
26
+ client: AuthenticatedClient,
27
+ limit: Union[Unset, None, int] = UNSET,
28
+ offset: Union[Unset, None, int] = UNSET,
29
+ status: Union[Unset, None, List[V1AppOrganizationsListStatusItem]] = UNSET,
30
+ ) -> Dict[str, Any]:
31
+ url = "{}/v1/app/organizations/".format(client.base_url)
32
+
33
+ headers: Dict[str, str] = client.get_headers()
34
+ cookies: Dict[str, Any] = client.get_cookies()
35
+
36
+ params: Dict[str, Any] = {}
37
+ params["limit"] = limit
38
+
39
+ params["offset"] = offset
40
+
41
+ json_status: Union[Unset, None, List[str]] = UNSET
42
+ if not isinstance(status, Unset):
43
+ if status is None:
44
+ json_status = None
45
+ else:
46
+ json_status = []
47
+ for status_item_data in status:
48
+ status_item = status_item_data.value
49
+
50
+ json_status.append(status_item)
51
+
52
+ params["status"] = json_status
53
+
54
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
55
+
56
+ return {
57
+ "method": "get",
58
+ "url": url,
59
+ "headers": headers,
60
+ "cookies": cookies,
61
+ "timeout": client.get_timeout(),
62
+ "params": params,
63
+ }
64
+
65
+
66
+ def _parse_response(
67
+ *, client: Client, response: httpx.Response
68
+ ) -> Optional[PaginatedOrganizationList]:
69
+ if response.status_code == HTTPStatus.OK:
70
+ response_200 = PaginatedOrganizationList.from_dict(response.json())
71
+
72
+ return response_200
73
+ if client.raise_on_unexpected_status:
74
+ raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
75
+ else:
76
+ return None
77
+
78
+
79
+ def _build_response(
80
+ *, client: Client, response: httpx.Response
81
+ ) -> Response[PaginatedOrganizationList]:
82
+ return Response(
83
+ status_code=HTTPStatus(response.status_code),
84
+ content=response.content,
85
+ headers=response.headers,
86
+ parsed=_parse_response(client=client, response=response),
87
+ )
88
+
89
+
90
+ def sync_detailed(
91
+ *,
92
+ client: AuthenticatedClient,
93
+ limit: Union[Unset, None, int] = UNSET,
94
+ offset: Union[Unset, None, int] = UNSET,
95
+ status: Union[Unset, None, List[V1AppOrganizationsListStatusItem]] = UNSET,
96
+ ) -> Response[PaginatedOrganizationList]:
97
+ """API view set for App organization model.
98
+
99
+ Args:
100
+ limit (Union[Unset, None, int]):
101
+ offset (Union[Unset, None, int]):
102
+ status (Union[Unset, None, List[V1AppOrganizationsListStatusItem]]):
103
+
104
+ Raises:
105
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
106
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
107
+
108
+ Returns:
109
+ Response[PaginatedOrganizationList]
110
+ """
111
+
112
+ kwargs = _get_kwargs(
113
+ client=client,
114
+ limit=limit,
115
+ offset=offset,
116
+ status=status,
117
+ )
118
+
119
+ response = httpx.request(
120
+ verify=client.verify_ssl,
121
+ **kwargs,
122
+ )
123
+
124
+ return _build_response(client=client, response=response)
125
+
126
+
127
+ def sync(
128
+ *,
129
+ client: AuthenticatedClient,
130
+ limit: Union[Unset, None, int] = UNSET,
131
+ offset: Union[Unset, None, int] = UNSET,
132
+ status: Union[Unset, None, List[V1AppOrganizationsListStatusItem]] = UNSET,
133
+ ) -> Optional[PaginatedOrganizationList]:
134
+ """API view set for App organization model.
135
+
136
+ Args:
137
+ limit (Union[Unset, None, int]):
138
+ offset (Union[Unset, None, int]):
139
+ status (Union[Unset, None, List[V1AppOrganizationsListStatusItem]]):
140
+
141
+ Raises:
142
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
143
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
144
+
145
+ Returns:
146
+ Response[PaginatedOrganizationList]
147
+ """
148
+
149
+ return sync_detailed(
150
+ client=client,
151
+ limit=limit,
152
+ offset=offset,
153
+ status=status,
154
+ ).parsed
155
+
156
+
157
+ async def asyncio_detailed(
158
+ *,
159
+ client: AuthenticatedClient,
160
+ limit: Union[Unset, None, int] = UNSET,
161
+ offset: Union[Unset, None, int] = UNSET,
162
+ status: Union[Unset, None, List[V1AppOrganizationsListStatusItem]] = UNSET,
163
+ ) -> Response[PaginatedOrganizationList]:
164
+ """API view set for App organization model.
165
+
166
+ Args:
167
+ limit (Union[Unset, None, int]):
168
+ offset (Union[Unset, None, int]):
169
+ status (Union[Unset, None, List[V1AppOrganizationsListStatusItem]]):
170
+
171
+ Raises:
172
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
173
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
174
+
175
+ Returns:
176
+ Response[PaginatedOrganizationList]
177
+ """
178
+
179
+ kwargs = _get_kwargs(
180
+ client=client,
181
+ limit=limit,
182
+ offset=offset,
183
+ status=status,
184
+ )
185
+
186
+ async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
187
+ response = await _client.request(**kwargs)
188
+
189
+ return _build_response(client=client, response=response)
190
+
191
+
192
+ async def asyncio(
193
+ *,
194
+ client: AuthenticatedClient,
195
+ limit: Union[Unset, None, int] = UNSET,
196
+ offset: Union[Unset, None, int] = UNSET,
197
+ status: Union[Unset, None, List[V1AppOrganizationsListStatusItem]] = UNSET,
198
+ ) -> Optional[PaginatedOrganizationList]:
199
+ """API view set for App organization model.
200
+
201
+ Args:
202
+ limit (Union[Unset, None, int]):
203
+ offset (Union[Unset, None, int]):
204
+ status (Union[Unset, None, List[V1AppOrganizationsListStatusItem]]):
205
+
206
+ Raises:
207
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
208
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
209
+
210
+ Returns:
211
+ Response[PaginatedOrganizationList]
212
+ """
213
+
214
+ return (
215
+ await asyncio_detailed(
216
+ client=client,
217
+ limit=limit,
218
+ offset=offset,
219
+ status=status,
220
+ )
221
+ ).parsed