jaxl-python 0.0.19__tar.gz → 0.0.21__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 (247) hide show
  1. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/PKG-INFO +2 -2
  2. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/_client.py +3 -1
  3. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/_scm_version.py +2 -2
  4. jaxl_python-0.0.21/jaxl/api/client/api/v1/v1_calls_transfer_create.py +127 -0
  5. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/__init__.py +4 -0
  6. jaxl_python-0.0.21/jaxl/api/client/models/call_transfer_request_request.py +72 -0
  7. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/integrations_properties_request.py +20 -0
  8. jaxl_python-0.0.21/jaxl/api/client/models/ivr_options_response.py.orig +153 -0
  9. jaxl_python-0.0.21/jaxl/api/client/models/stripe_auth_request_request.py +82 -0
  10. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/apps.py +2 -1
  11. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/calls.py +30 -0
  12. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/ivrs.py +27 -16
  13. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/PKG-INFO +2 -2
  14. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/SOURCES.txt +4 -0
  15. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/requires.txt +1 -1
  16. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/setup.cfg +1 -1
  17. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/.github/workflows/sdk.yml +0 -0
  18. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/.gitignore +0 -0
  19. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/.isort.cfg +0 -0
  20. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/.pylintrc +0 -0
  21. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/.vscode/settings.json +0 -0
  22. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/LICENSE.md +0 -0
  23. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/README.md +0 -0
  24. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/SPECIFICATION.md +0 -0
  25. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/docs.sh +0 -0
  26. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/README.md +0 -0
  27. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/__init__.py +0 -0
  28. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/prompts/example.txt +0 -0
  29. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/py.typed +0 -0
  30. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/request_and_confirm_code_then_send_to_phone.py +0 -0
  31. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/request_code_and_send_to_phone.py +0 -0
  32. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/send_to_phone.py +0 -0
  33. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/streaming_aiagent.py +0 -0
  34. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/streaming_audio_chunks.py +0 -0
  35. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/streaming_speech_segments.py +0 -0
  36. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/streaming_transcriptions.py +0 -0
  37. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/index.md +0 -0
  38. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/__init__.py +0 -0
  39. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/_sdk.py +0 -0
  40. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/base.py +0 -0
  41. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/cli.py +0 -0
  42. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/__init__.py +0 -0
  43. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/__init__.py +0 -0
  44. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/__init__.py +0 -0
  45. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_app_organizations_list.py +0 -0
  46. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_app_organizations_providers_list.py +0 -0
  47. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_appusers_me_retrieve.py +0 -0
  48. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_add_create.py +0 -0
  49. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_hangup_retrieve.py +0 -0
  50. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_list.py +0 -0
  51. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_retrieve.py +0 -0
  52. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_tags_create.py +0 -0
  53. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_token_create.py +0 -0
  54. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_tts_create.py +0 -0
  55. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_usage_retrieve.py +0 -0
  56. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_campaign_list.py +0 -0
  57. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_customer_consumables_retrieve.py +0 -0
  58. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_devices_attest_create.py +0 -0
  59. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_devices_list.py +0 -0
  60. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_integrations_create.py +0 -0
  61. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_ivr_create.py +0 -0
  62. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_ivr_list.py +0 -0
  63. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_ivr_options_create.py +0 -0
  64. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_ivr_options_list.py +0 -0
  65. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_ivr_options_partial_update.py +0 -0
  66. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_kyc_list.py +0 -0
  67. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_messages_list.py +0 -0
  68. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_phonenumbers_list.py +0 -0
  69. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_phonenumbers_partial_update.py +0 -0
  70. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_phonenumbers_search_retrieve.py +0 -0
  71. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v2/__init__.py +0 -0
  72. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v2/v2_app_organizations_employees_list.py +0 -0
  73. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v2/v2_app_organizations_groups_list.py +0 -0
  74. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v3/__init__.py +0 -0
  75. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v3/v3_orders_subscriptions_list.py +0 -0
  76. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/client.py +0 -0
  77. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/errors.py +0 -0
  78. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/address_provider.py +0 -0
  79. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/address_provider_status_enum.py +0 -0
  80. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/analytic.py +0 -0
  81. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/app_price.py +0 -0
  82. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/app_user.py +0 -0
  83. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/available_phone_number.py +0 -0
  84. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/available_phone_number_capabilities.py +0 -0
  85. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/available_phone_number_provider_enum.py +0 -0
  86. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call.py +0 -0
  87. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_add_request_request.py +0 -0
  88. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_cost.py +0 -0
  89. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_location_epoch.py +0 -0
  90. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_metadata.py +0 -0
  91. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_tag_request.py +0 -0
  92. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_tag_response.py +0 -0
  93. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_token_request.py +0 -0
  94. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_token_response.py +0 -0
  95. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_tts_request_request.py +0 -0
  96. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_type_enum.py +0 -0
  97. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_usage_by_currency_response.py +0 -0
  98. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_usage_response.py +0 -0
  99. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_usage_stats_response.py +0 -0
  100. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_metadata.py +0 -0
  101. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_metadata_metadata.py +0 -0
  102. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_response.py +0 -0
  103. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_response_status_enum.py +0 -0
  104. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_stats.py +0 -0
  105. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_tag.py +0 -0
  106. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/can_user_resubscribe_plan.py +0 -0
  107. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/canceled_by_enum.py +0 -0
  108. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/capabilities.py +0 -0
  109. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/connection.py +0 -0
  110. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/country.py +0 -0
  111. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/cta.py +0 -0
  112. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/cta_request.py +0 -0
  113. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/currency_enum.py +0 -0
  114. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/customer_consumable_total.py +0 -0
  115. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/customer_order_subscriptions_serializer_v2.py +0 -0
  116. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/customer_order_subscriptions_serializer_v2_status_enum.py +0 -0
  117. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/customer_provider_serializer_v2.py +0 -0
  118. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/device.py +0 -0
  119. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/device_attestation_error.py +0 -0
  120. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/device_attestation_error_reason_enum.py +0 -0
  121. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/device_attestation_response.py +0 -0
  122. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/dh_message.py +0 -0
  123. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/dh_message_attachment.py +0 -0
  124. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/dh_message_reaction.py +0 -0
  125. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/dh_message_type_enum.py +0 -0
  126. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/direction_enum.py +0 -0
  127. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/emoji.py +0 -0
  128. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/emoji_reaction.py +0 -0
  129. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/exotel_auth_request_request.py +0 -0
  130. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/id_enum.py +0 -0
  131. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/integrations_error_response.py +0 -0
  132. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/integrations_request_provider_enum.py +0 -0
  133. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/integrations_request_request.py +0 -0
  134. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/integrations_response.py +0 -0
  135. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/intent_enum.py +0 -0
  136. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/invalid_provider_request.py +0 -0
  137. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/iso_country_enum.py +0 -0
  138. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/item.py +0 -0
  139. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_collection.py +0 -0
  140. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_collection_request.py +0 -0
  141. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_menu_request.py +0 -0
  142. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_menu_response.py +0 -0
  143. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_menu_response_status_enum.py +0 -0
  144. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_options_invalid_response.py +0 -0
  145. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_options_request.py +0 -0
  146. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_options_response.py +0 -0
  147. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/kyc.py +0 -0
  148. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/kyc_status_enum.py +0 -0
  149. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/kyc_upload_metadata.py +0 -0
  150. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/location.py +0 -0
  151. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/next_or_cta_request.py +0 -0
  152. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/order_status_enum.py +0 -0
  153. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization.py +0 -0
  154. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_employee.py +0 -0
  155. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_employee_preferences.py +0 -0
  156. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_employee_status_enum.py +0 -0
  157. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_group_inline.py +0 -0
  158. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_group_response.py +0 -0
  159. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_preferences.py +0 -0
  160. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_provider.py +0 -0
  161. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_call_list.py +0 -0
  162. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_campaign_response_list.py +0 -0
  163. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_customer_order_subscriptions_serializer_v2_list.py +0 -0
  164. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_device_list.py +0 -0
  165. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_dh_message_list.py +0 -0
  166. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_ivr_menu_response_list.py +0 -0
  167. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_ivr_options_response_list.py +0 -0
  168. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_kyc_list.py +0 -0
  169. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_organization_employee_list.py +0 -0
  170. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_organization_group_response_list.py +0 -0
  171. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_organization_list.py +0 -0
  172. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_organization_provider_list.py +0 -0
  173. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_phone_number_list.py +0 -0
  174. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/patched_ivr_options_update_request.py +0 -0
  175. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/patched_phone_number_request.py +0 -0
  176. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/payment_gateway_fees_info.py +0 -0
  177. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/period_enum.py +0 -0
  178. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number.py +0 -0
  179. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number_attributes.py +0 -0
  180. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number_capabilities.py +0 -0
  181. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number_provider_enum.py +0 -0
  182. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number_search_response.py +0 -0
  183. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number_status_enum.py +0 -0
  184. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan.py +0 -0
  185. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_cancel_info.py +0 -0
  186. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_expiry_timestamp.py +0 -0
  187. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_expiry_timestamp_type_enum.py +0 -0
  188. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_extra_details.py +0 -0
  189. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_item.py +0 -0
  190. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_type.py +0 -0
  191. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_type_cycle.py +0 -0
  192. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/platform_enum.py +0 -0
  193. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/product_group.py +0 -0
  194. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/proof.py +0 -0
  195. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/proof_status_enum.py +0 -0
  196. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/provider_status_enum.py +0 -0
  197. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/reaction_by.py +0 -0
  198. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/rental_currency_enum.py +0 -0
  199. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/resource_enum.py +0 -0
  200. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/shopify_auth_request_request.py +0 -0
  201. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_agent.py +0 -0
  202. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_agent_browser.py +0 -0
  203. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_agent_device.py +0 -0
  204. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_agent_operating_system.py +0 -0
  205. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_agent_platform.py +0 -0
  206. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_identity.py +0 -0
  207. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_app_organizations_list_status_item.py +0 -0
  208. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_calls_list_direction.py +0 -0
  209. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_campaign_list_status_item.py +0 -0
  210. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_customer_consumables_retrieve_currency.py +0 -0
  211. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_ivr_list_duration.py +0 -0
  212. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_kyc_list_iso_country.py +0 -0
  213. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_kyc_list_provider_status_item.py +0 -0
  214. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_kyc_list_resource.py +0 -0
  215. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_kyc_list_status.py +0 -0
  216. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_list_additional_status_item.py +0 -0
  217. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_list_provider.py +0 -0
  218. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_list_status.py +0 -0
  219. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_intent.py +0 -0
  220. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_iso_country_code.py +0 -0
  221. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_resource.py +0 -0
  222. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v2_app_organizations_employees_list_status_item.py +0 -0
  223. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v3_orders_subscriptions_list_currency.py +0 -0
  224. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v3_orders_subscriptions_list_status_item.py +0 -0
  225. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/types.py +0 -0
  226. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/py.typed +0 -0
  227. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/__init__.py +0 -0
  228. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/_constants.py +0 -0
  229. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/accounts.py +0 -0
  230. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/campaigns.py +0 -0
  231. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/devices.py +0 -0
  232. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/kycs.py +0 -0
  233. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/members.py +0 -0
  234. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/messages.py +0 -0
  235. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/notifications.py +0 -0
  236. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/orgs.py +0 -0
  237. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/payments.py +0 -0
  238. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/phones.py +0 -0
  239. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/silence.py +0 -0
  240. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/teams.py +0 -0
  241. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/dependency_links.txt +0 -0
  242. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/entry_points.txt +0 -0
  243. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/not-zip-safe +0 -0
  244. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/top_level.txt +0 -0
  245. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/mkdocs.yml +0 -0
  246. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/pyproject.toml +0 -0
  247. {jaxl_python-0.0.19 → jaxl_python-0.0.21}/setup.gif +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaxl-python
3
- Version: 0.0.19
3
+ Version: 0.0.21
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
@@ -45,7 +45,7 @@ Classifier: Typing :: Typed
45
45
  Requires-Python: >=3.9
46
46
  Description-Content-Type: text/markdown
47
47
  License-File: LICENSE.md
48
- Requires-Dist: httpx<0.24.0,>=0.15.0
48
+ Requires-Dist: httpx==0.28.1
49
49
  Requires-Dist: attrs>=21.3.0
50
50
  Requires-Dist: python-dateutil<3,>=2.8.0
51
51
  Requires-Dist: cryptography==46.0.2
@@ -266,7 +266,9 @@ def attest() -> Optional[Dict[str, Any]]:
266
266
  """
267
267
  data_dir = os.path.join(str(pathlib.Path.home()), ".jaxl", "api")
268
268
  os.makedirs(data_dir, exist_ok=True)
269
- attestation_path = Path(data_dir) / "attestation.json"
269
+ attestation_path = Path(data_dir) / os.environ.get(
270
+ "JAXL_ATTESTATION_FILE_NAME", "attestation.json"
271
+ )
270
272
  if attestation_path.exists():
271
273
  return cast(Dict[str, Any], json.loads(attestation_path.read_text()))
272
274
  attestation = _attest()
@@ -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.19'
21
- __version_tuple__ = version_tuple = (0, 0, 19)
20
+ __version__ = version = '0.0.21'
21
+ __version_tuple__ = version_tuple = (0, 0, 21)
@@ -0,0 +1,127 @@
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, Optional
12
+
13
+ import httpx
14
+
15
+ from ... import errors
16
+ from ...client import AuthenticatedClient, Client
17
+ from ...models.call_transfer_request_request import CallTransferRequestRequest
18
+ from ...types import Response
19
+
20
+
21
+ def _get_kwargs(
22
+ id: int,
23
+ *,
24
+ client: AuthenticatedClient,
25
+ json_body: CallTransferRequestRequest,
26
+ ) -> Dict[str, Any]:
27
+ url = "{}/v1/calls/{id}/transfer/".format(client.base_url, id=id)
28
+
29
+ headers: Dict[str, str] = client.get_headers()
30
+ cookies: Dict[str, Any] = client.get_cookies()
31
+
32
+ json_json_body = json_body.to_dict()
33
+
34
+ return {
35
+ "method": "post",
36
+ "url": url,
37
+ "headers": headers,
38
+ "cookies": cookies,
39
+ "timeout": client.get_timeout(),
40
+ "json": json_json_body,
41
+ }
42
+
43
+
44
+ def _parse_response(*, client: Client, response: httpx.Response) -> Optional[Any]:
45
+ if response.status_code == HTTPStatus.OK:
46
+ return None
47
+ if response.status_code == HTTPStatus.BAD_REQUEST:
48
+ return None
49
+ if client.raise_on_unexpected_status:
50
+ raise errors.UnexpectedStatus(f"Unexpected status code: {response.status_code}")
51
+ else:
52
+ return None
53
+
54
+
55
+ def _build_response(*, client: Client, response: httpx.Response) -> Response[Any]:
56
+ return Response(
57
+ status_code=HTTPStatus(response.status_code),
58
+ content=response.content,
59
+ headers=response.headers,
60
+ parsed=_parse_response(client=client, response=response),
61
+ )
62
+
63
+
64
+ def sync_detailed(
65
+ id: int,
66
+ *,
67
+ client: AuthenticatedClient,
68
+ json_body: CallTransferRequestRequest,
69
+ ) -> Response[Any]:
70
+ """API view set for Call model.
71
+
72
+ Args:
73
+ id (int):
74
+ json_body (CallTransferRequestRequest):
75
+
76
+ Raises:
77
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
78
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
79
+
80
+ Returns:
81
+ Response[Any]
82
+ """
83
+
84
+ kwargs = _get_kwargs(
85
+ id=id,
86
+ client=client,
87
+ json_body=json_body,
88
+ )
89
+
90
+ response = httpx.request(
91
+ verify=client.verify_ssl,
92
+ **kwargs,
93
+ )
94
+
95
+ return _build_response(client=client, response=response)
96
+
97
+
98
+ async def asyncio_detailed(
99
+ id: int,
100
+ *,
101
+ client: AuthenticatedClient,
102
+ json_body: CallTransferRequestRequest,
103
+ ) -> Response[Any]:
104
+ """API view set for Call model.
105
+
106
+ Args:
107
+ id (int):
108
+ json_body (CallTransferRequestRequest):
109
+
110
+ Raises:
111
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
112
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
113
+
114
+ Returns:
115
+ Response[Any]
116
+ """
117
+
118
+ kwargs = _get_kwargs(
119
+ id=id,
120
+ client=client,
121
+ json_body=json_body,
122
+ )
123
+
124
+ async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
125
+ response = await _client.request(**kwargs)
126
+
127
+ return _build_response(client=client, response=response)
@@ -26,6 +26,7 @@ from .call_tag_request import CallTagRequest
26
26
  from .call_tag_response import CallTagResponse
27
27
  from .call_token_request import CallTokenRequest
28
28
  from .call_token_response import CallTokenResponse
29
+ from .call_transfer_request_request import CallTransferRequestRequest
29
30
  from .call_tts_request_request import CallTtsRequestRequest
30
31
  from .call_type_enum import CallTypeEnum
31
32
  from .call_usage_by_currency_response import CallUsageByCurrencyResponse
@@ -141,6 +142,7 @@ from .reaction_by import ReactionBy
141
142
  from .rental_currency_enum import RentalCurrencyEnum
142
143
  from .resource_enum import ResourceEnum
143
144
  from .shopify_auth_request_request import ShopifyAuthRequestRequest
145
+ from .stripe_auth_request_request import StripeAuthRequestRequest
144
146
  from .user_agent import UserAgent
145
147
  from .user_agent_browser import UserAgentBrowser
146
148
  from .user_agent_device import UserAgentDevice
@@ -196,6 +198,7 @@ __all__ = (
196
198
  "CallTagResponse",
197
199
  "CallTokenRequest",
198
200
  "CallTokenResponse",
201
+ "CallTransferRequestRequest",
199
202
  "CallTtsRequestRequest",
200
203
  "CallTypeEnum",
201
204
  "CallUsageByCurrencyResponse",
@@ -303,6 +306,7 @@ __all__ = (
303
306
  "RentalCurrencyEnum",
304
307
  "ResourceEnum",
305
308
  "ShopifyAuthRequestRequest",
309
+ "StripeAuthRequestRequest",
306
310
  "UserAgent",
307
311
  "UserAgentBrowser",
308
312
  "UserAgentDevice",
@@ -0,0 +1,72 @@
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 typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar
11
+
12
+ import attr
13
+
14
+ if TYPE_CHECKING:
15
+ from ..models.next_or_cta_request import NextOrCTARequest
16
+
17
+
18
+ T = TypeVar("T", bound="CallTransferRequestRequest")
19
+
20
+
21
+ @attr.s(auto_attribs=True)
22
+ class CallTransferRequestRequest:
23
+ """
24
+ Attributes:
25
+ next_or_cta (NextOrCTARequest):
26
+ """
27
+
28
+ next_or_cta: "NextOrCTARequest"
29
+ additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
30
+
31
+ def to_dict(self) -> Dict[str, Any]:
32
+ next_or_cta = self.next_or_cta.to_dict()
33
+
34
+ field_dict: Dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update(
37
+ {
38
+ "next_or_cta": next_or_cta,
39
+ }
40
+ )
41
+
42
+ return field_dict
43
+
44
+ @classmethod
45
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
46
+ from ..models.next_or_cta_request import NextOrCTARequest
47
+
48
+ d = src_dict.copy()
49
+ next_or_cta = NextOrCTARequest.from_dict(d.pop("next_or_cta"))
50
+
51
+ call_transfer_request_request = cls(
52
+ next_or_cta=next_or_cta,
53
+ )
54
+
55
+ call_transfer_request_request.additional_properties = d
56
+ return call_transfer_request_request
57
+
58
+ @property
59
+ def additional_keys(self) -> List[str]:
60
+ return list(self.additional_properties.keys())
61
+
62
+ def __getitem__(self, key: str) -> Any:
63
+ return self.additional_properties[key]
64
+
65
+ def __setitem__(self, key: str, value: Any) -> None:
66
+ self.additional_properties[key] = value
67
+
68
+ def __delitem__(self, key: str) -> None:
69
+ del self.additional_properties[key]
70
+
71
+ def __contains__(self, key: str) -> bool:
72
+ return key in self.additional_properties
@@ -16,6 +16,7 @@ from ..types import UNSET, Unset
16
16
  if TYPE_CHECKING:
17
17
  from ..models.exotel_auth_request_request import ExotelAuthRequestRequest
18
18
  from ..models.shopify_auth_request_request import ShopifyAuthRequestRequest
19
+ from ..models.stripe_auth_request_request import StripeAuthRequestRequest
19
20
 
20
21
 
21
22
  T = TypeVar("T", bound="IntegrationsPropertiesRequest")
@@ -27,10 +28,12 @@ class IntegrationsPropertiesRequest:
27
28
  Attributes:
28
29
  shopify (Union[Unset, None, ShopifyAuthRequestRequest]):
29
30
  exotel (Union[Unset, None, ExotelAuthRequestRequest]):
31
+ stripe (Union[Unset, None, StripeAuthRequestRequest]):
30
32
  """
31
33
 
32
34
  shopify: Union[Unset, None, "ShopifyAuthRequestRequest"] = UNSET
33
35
  exotel: Union[Unset, None, "ExotelAuthRequestRequest"] = UNSET
36
+ stripe: Union[Unset, None, "StripeAuthRequestRequest"] = UNSET
34
37
  additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
35
38
 
36
39
  def to_dict(self) -> Dict[str, Any]:
@@ -42,6 +45,10 @@ class IntegrationsPropertiesRequest:
42
45
  if not isinstance(self.exotel, Unset):
43
46
  exotel = self.exotel.to_dict() if self.exotel else None
44
47
 
48
+ stripe: Union[Unset, None, Dict[str, Any]] = UNSET
49
+ if not isinstance(self.stripe, Unset):
50
+ stripe = self.stripe.to_dict() if self.stripe else None
51
+
45
52
  field_dict: Dict[str, Any] = {}
46
53
  field_dict.update(self.additional_properties)
47
54
  field_dict.update({})
@@ -49,6 +56,8 @@ class IntegrationsPropertiesRequest:
49
56
  field_dict["shopify"] = shopify
50
57
  if exotel is not UNSET:
51
58
  field_dict["exotel"] = exotel
59
+ if stripe is not UNSET:
60
+ field_dict["stripe"] = stripe
52
61
 
53
62
  return field_dict
54
63
 
@@ -56,6 +65,7 @@ class IntegrationsPropertiesRequest:
56
65
  def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
57
66
  from ..models.exotel_auth_request_request import ExotelAuthRequestRequest
58
67
  from ..models.shopify_auth_request_request import ShopifyAuthRequestRequest
68
+ from ..models.stripe_auth_request_request import StripeAuthRequestRequest
59
69
 
60
70
  d = src_dict.copy()
61
71
  _shopify = d.pop("shopify", UNSET)
@@ -76,9 +86,19 @@ class IntegrationsPropertiesRequest:
76
86
  else:
77
87
  exotel = ExotelAuthRequestRequest.from_dict(_exotel)
78
88
 
89
+ _stripe = d.pop("stripe", UNSET)
90
+ stripe: Union[Unset, None, StripeAuthRequestRequest]
91
+ if _stripe is None:
92
+ stripe = None
93
+ elif isinstance(_stripe, Unset):
94
+ stripe = UNSET
95
+ else:
96
+ stripe = StripeAuthRequestRequest.from_dict(_stripe)
97
+
79
98
  integrations_properties_request = cls(
80
99
  shopify=shopify,
81
100
  exotel=exotel,
101
+ stripe=stripe,
82
102
  )
83
103
 
84
104
  integrations_properties_request.additional_properties = d
@@ -0,0 +1,153 @@
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 typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
11
+
12
+ import attr
13
+
14
+ from ..types import UNSET, Unset
15
+
16
+ if TYPE_CHECKING:
17
+ from ..models.cta import CTA
18
+
19
+
20
+ T = TypeVar("T", bound="IVROptionsResponse")
21
+
22
+
23
+ @attr.s(auto_attribs=True)
24
+ class IVROptionsResponse:
25
+ """
26
+ Attributes:
27
+ id (int):
28
+ name (str): Public name of this option
29
+ menu (int): IVR Menu to which this option belongs to
30
+ input_ (str): Input required to visit this options sub-menu or invoke CTA
31
+ enabled (bool):
32
+ next_ (Union[Unset, None, int]): Optionally, next menu to present after receiving input
33
+ cta (Union[Unset, CTA]):
34
+ needs_data_prompt (Union[Unset, None, str]): Provide iff system must prompt user with the provided text for more
35
+ input after they have chosen this option
36
+ confirmation (Union[Unset, None, bool]): Whether to ask for confirmation to verify input data. Can only be
37
+ enabled when needs_data_prompt is non-null.
38
+ webhook_url (Union[Unset, None, str]): When provided, Jaxl IVR system will make a POST API on this URL, return
39
+ 200 OK to execute configure CTA, return any other response code to hangup the call.
40
+ """
41
+
42
+ id: int
43
+ name: str
44
+ menu: int
45
+ input_: str
46
+ enabled: bool
47
+ next_: Union[Unset, None, int] = UNSET
48
+ cta: Union[Unset, "CTA"] = UNSET
49
+ needs_data_prompt: Union[Unset, None, str] = UNSET
50
+ confirmation: Union[Unset, None, bool] = UNSET
51
+ webhook_url: Union[Unset, None, str] = UNSET
52
+ additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
53
+
54
+ def to_dict(self) -> Dict[str, Any]:
55
+ id = self.id
56
+ name = self.name
57
+ menu = self.menu
58
+ input_ = self.input_
59
+ enabled = self.enabled
60
+ next_ = self.next_
61
+ cta: Union[Unset, Dict[str, Any]] = UNSET
62
+ if not isinstance(self.cta, Unset):
63
+ cta = self.cta.to_dict()
64
+
65
+ needs_data_prompt = self.needs_data_prompt
66
+ confirmation = self.confirmation
67
+ webhook_url = self.webhook_url
68
+
69
+ field_dict: Dict[str, Any] = {}
70
+ field_dict.update(self.additional_properties)
71
+ field_dict.update(
72
+ {
73
+ "id": id,
74
+ "name": name,
75
+ "menu": menu,
76
+ "input": input_,
77
+ "enabled": enabled,
78
+ }
79
+ )
80
+ if next_ is not UNSET:
81
+ field_dict["next"] = next_
82
+ if cta is not UNSET:
83
+ field_dict["cta"] = cta
84
+ if needs_data_prompt is not UNSET:
85
+ field_dict["needs_data_prompt"] = needs_data_prompt
86
+ if confirmation is not UNSET:
87
+ field_dict["confirmation"] = confirmation
88
+ if webhook_url is not UNSET:
89
+ field_dict["webhook_url"] = webhook_url
90
+
91
+ return field_dict
92
+
93
+ @classmethod
94
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
95
+ from ..models.cta import CTA
96
+
97
+ d = src_dict.copy()
98
+ id = d.pop("id")
99
+
100
+ name = d.pop("name")
101
+
102
+ menu = d.pop("menu")
103
+
104
+ input_ = d.pop("input")
105
+
106
+ enabled = d.pop("enabled")
107
+
108
+ next_ = d.pop("next", UNSET)
109
+
110
+ _cta = d.pop("cta", UNSET)
111
+ cta: Union[Unset, CTA]
112
+ if isinstance(_cta, Unset):
113
+ cta = UNSET
114
+ else:
115
+ cta = CTA.from_dict(_cta)
116
+
117
+ needs_data_prompt = d.pop("needs_data_prompt", UNSET)
118
+
119
+ confirmation = d.pop("confirmation", UNSET)
120
+
121
+ webhook_url = d.pop("webhook_url", UNSET)
122
+
123
+ ivr_options_response = cls(
124
+ id=id,
125
+ name=name,
126
+ menu=menu,
127
+ input_=input_,
128
+ enabled=enabled,
129
+ next_=next_,
130
+ cta=cta,
131
+ needs_data_prompt=needs_data_prompt,
132
+ confirmation=confirmation,
133
+ webhook_url=webhook_url,
134
+ )
135
+
136
+ ivr_options_response.additional_properties = d
137
+ return ivr_options_response
138
+
139
+ @property
140
+ def additional_keys(self) -> List[str]:
141
+ return list(self.additional_properties.keys())
142
+
143
+ def __getitem__(self, key: str) -> Any:
144
+ return self.additional_properties[key]
145
+
146
+ def __setitem__(self, key: str, value: Any) -> None:
147
+ self.additional_properties[key] = value
148
+
149
+ def __delitem__(self, key: str) -> None:
150
+ del self.additional_properties[key]
151
+
152
+ def __contains__(self, key: str) -> bool:
153
+ return key in self.additional_properties
@@ -0,0 +1,82 @@
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 typing import Any, Dict, List, Type, TypeVar, Union
11
+
12
+ import attr
13
+
14
+ from ..types import UNSET, Unset
15
+
16
+ T = TypeVar("T", bound="StripeAuthRequestRequest")
17
+
18
+
19
+ @attr.s(auto_attribs=True)
20
+ class StripeAuthRequestRequest:
21
+ """
22
+ Attributes:
23
+ publishable_key (Union[Unset, None, str]):
24
+ secret_key (Union[Unset, None, str]):
25
+ webhook_signing_secret (Union[Unset, None, str]):
26
+ """
27
+
28
+ publishable_key: Union[Unset, None, str] = UNSET
29
+ secret_key: Union[Unset, None, str] = UNSET
30
+ webhook_signing_secret: Union[Unset, None, str] = UNSET
31
+ additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
32
+
33
+ def to_dict(self) -> Dict[str, Any]:
34
+ publishable_key = self.publishable_key
35
+ secret_key = self.secret_key
36
+ webhook_signing_secret = self.webhook_signing_secret
37
+
38
+ field_dict: Dict[str, Any] = {}
39
+ field_dict.update(self.additional_properties)
40
+ field_dict.update({})
41
+ if publishable_key is not UNSET:
42
+ field_dict["publishable_key"] = publishable_key
43
+ if secret_key is not UNSET:
44
+ field_dict["secret_key"] = secret_key
45
+ if webhook_signing_secret is not UNSET:
46
+ field_dict["webhook_signing_secret"] = webhook_signing_secret
47
+
48
+ return field_dict
49
+
50
+ @classmethod
51
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
52
+ d = src_dict.copy()
53
+ publishable_key = d.pop("publishable_key", UNSET)
54
+
55
+ secret_key = d.pop("secret_key", UNSET)
56
+
57
+ webhook_signing_secret = d.pop("webhook_signing_secret", UNSET)
58
+
59
+ stripe_auth_request_request = cls(
60
+ publishable_key=publishable_key,
61
+ secret_key=secret_key,
62
+ webhook_signing_secret=webhook_signing_secret,
63
+ )
64
+
65
+ stripe_auth_request_request.additional_properties = d
66
+ return stripe_auth_request_request
67
+
68
+ @property
69
+ def additional_keys(self) -> List[str]:
70
+ return list(self.additional_properties.keys())
71
+
72
+ def __getitem__(self, key: str) -> Any:
73
+ return self.additional_properties[key]
74
+
75
+ def __setitem__(self, key: str, value: Any) -> None:
76
+ self.additional_properties[key] = value
77
+
78
+ def __delitem__(self, key: str) -> None:
79
+ del self.additional_properties[key]
80
+
81
+ def __contains__(self, key: str) -> bool:
82
+ return key in self.additional_properties
@@ -290,7 +290,8 @@ def _start_server(
290
290
  except WebSocketDisconnect:
291
291
  pass
292
292
  finally:
293
- del wss[state["call_id"]]
293
+ if state["call_id"] in wss:
294
+ del wss[state["call_id"]]
294
295
  if ws.client_state != WebSocketState.DISCONNECTED:
295
296
  await ws.close()
296
297
 
@@ -19,6 +19,7 @@ from jaxl.api.client.api.v1 import (
19
19
  v1_calls_retrieve,
20
20
  v1_calls_tags_create,
21
21
  v1_calls_token_create,
22
+ v1_calls_transfer_create,
22
23
  v1_calls_tts_create,
23
24
  v1_calls_usage_retrieve,
24
25
  )
@@ -30,6 +31,9 @@ from jaxl.api.client.models.call_tag_request import CallTagRequest
30
31
  from jaxl.api.client.models.call_tag_response import CallTagResponse
31
32
  from jaxl.api.client.models.call_token_request import CallTokenRequest
32
33
  from jaxl.api.client.models.call_token_response import CallTokenResponse
34
+ from jaxl.api.client.models.call_transfer_request_request import (
35
+ CallTransferRequestRequest,
36
+ )
33
37
  from jaxl.api.client.models.call_tts_request_request import (
34
38
  CallTtsRequestRequest,
35
39
  )
@@ -41,6 +45,8 @@ from jaxl.api.resources._constants import DEFAULT_CURRENCY, DEFAULT_LIST_LIMIT
41
45
  from jaxl.api.resources.ivrs import (
42
46
  IVR_CTA_KEYS,
43
47
  IVR_INPUTS,
48
+ add_next_or_cta_flags,
49
+ create_next_or_cta,
44
50
  ivrs_create,
45
51
  ivrs_options_create,
46
52
  )
@@ -253,6 +259,18 @@ def calls_hangup(args: Dict[str, Any]) -> Response[Any]:
253
259
  )
254
260
 
255
261
 
262
+ def calls_transfer(args: Dict[str, Any]) -> Response[Any]:
263
+ return v1_calls_transfer_create.sync_detailed(
264
+ id=args["call_id"],
265
+ client=jaxl_api_client(
266
+ JaxlApiModule.CALL,
267
+ credentials=args.get("credentials", None),
268
+ auth_token=args.get("auth_token", None),
269
+ ),
270
+ json_body=CallTransferRequestRequest(next_or_cta=create_next_or_cta(args)),
271
+ )
272
+
273
+
256
274
  def _subparser(parser: argparse.ArgumentParser) -> None:
257
275
  """Manage Calls (Domestic & International Cellular, App-to-App)"""
258
276
  subparsers = parser.add_subparsers(dest="action", required=True)
@@ -396,6 +414,18 @@ def _subparser(parser: argparse.ArgumentParser) -> None:
396
414
  calls_hangup_parser.set_defaults(func=calls_hangup, _arg_keys=["call_id"])
397
415
 
398
416
  # transfer
417
+ calls_transfer_parser = subparsers.add_parser("transfer", help="Transfer call")
418
+ calls_transfer_parser.add_argument(
419
+ "--call-id",
420
+ type=int,
421
+ required=True,
422
+ help="Call ID",
423
+ )
424
+ _group = add_next_or_cta_flags(calls_transfer_parser)
425
+ calls_transfer_parser.set_defaults(
426
+ func=calls_transfer,
427
+ _arg_keys=["call_id"] + IVR_CTA_KEYS,
428
+ )
399
429
 
400
430
  # add
401
431
  # remove