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.
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/PKG-INFO +2 -2
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/_client.py +3 -1
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/_scm_version.py +2 -2
- jaxl_python-0.0.21/jaxl/api/client/api/v1/v1_calls_transfer_create.py +127 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/__init__.py +4 -0
- jaxl_python-0.0.21/jaxl/api/client/models/call_transfer_request_request.py +72 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/integrations_properties_request.py +20 -0
- jaxl_python-0.0.21/jaxl/api/client/models/ivr_options_response.py.orig +153 -0
- jaxl_python-0.0.21/jaxl/api/client/models/stripe_auth_request_request.py +82 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/apps.py +2 -1
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/calls.py +30 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/ivrs.py +27 -16
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/PKG-INFO +2 -2
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/SOURCES.txt +4 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/requires.txt +1 -1
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/setup.cfg +1 -1
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/.github/workflows/sdk.yml +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/.gitignore +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/.isort.cfg +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/.pylintrc +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/.vscode/settings.json +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/LICENSE.md +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/README.md +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/SPECIFICATION.md +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/docs.sh +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/README.md +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/__init__.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/prompts/example.txt +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/py.typed +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/request_and_confirm_code_then_send_to_phone.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/request_code_and_send_to_phone.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/send_to_phone.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/streaming_aiagent.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/streaming_audio_chunks.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/streaming_speech_segments.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/examples/streaming_transcriptions.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/index.md +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/__init__.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/_sdk.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/base.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/cli.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/__init__.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/__init__.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/__init__.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_app_organizations_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_app_organizations_providers_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_appusers_me_retrieve.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_add_create.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_hangup_retrieve.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_retrieve.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_tags_create.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_token_create.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_tts_create.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_calls_usage_retrieve.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_campaign_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_customer_consumables_retrieve.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_devices_attest_create.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_devices_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_integrations_create.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_ivr_create.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_ivr_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_ivr_options_create.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_ivr_options_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_ivr_options_partial_update.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_kyc_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_messages_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_phonenumbers_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_phonenumbers_partial_update.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v1/v1_phonenumbers_search_retrieve.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v2/__init__.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v2/v2_app_organizations_employees_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v2/v2_app_organizations_groups_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v3/__init__.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/api/v3/v3_orders_subscriptions_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/client.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/errors.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/address_provider.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/address_provider_status_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/analytic.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/app_price.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/app_user.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/available_phone_number.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/available_phone_number_capabilities.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/available_phone_number_provider_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_add_request_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_cost.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_location_epoch.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_metadata.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_tag_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_tag_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_token_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_token_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_tts_request_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_type_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_usage_by_currency_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_usage_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/call_usage_stats_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_metadata.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_metadata_metadata.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_response_status_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_stats.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/campaign_tag.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/can_user_resubscribe_plan.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/canceled_by_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/capabilities.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/connection.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/country.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/cta.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/cta_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/currency_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/customer_consumable_total.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/customer_order_subscriptions_serializer_v2.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/customer_order_subscriptions_serializer_v2_status_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/customer_provider_serializer_v2.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/device.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/device_attestation_error.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/device_attestation_error_reason_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/device_attestation_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/dh_message.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/dh_message_attachment.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/dh_message_reaction.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/dh_message_type_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/direction_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/emoji.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/emoji_reaction.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/exotel_auth_request_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/id_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/integrations_error_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/integrations_request_provider_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/integrations_request_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/integrations_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/intent_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/invalid_provider_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/iso_country_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/item.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_collection.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_collection_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_menu_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_menu_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_menu_response_status_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_options_invalid_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_options_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/ivr_options_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/kyc.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/kyc_status_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/kyc_upload_metadata.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/location.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/next_or_cta_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/order_status_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_employee.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_employee_preferences.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_employee_status_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_group_inline.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_group_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_preferences.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/organization_provider.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_call_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_campaign_response_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_customer_order_subscriptions_serializer_v2_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_device_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_dh_message_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_ivr_menu_response_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_ivr_options_response_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_kyc_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_organization_employee_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_organization_group_response_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_organization_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_organization_provider_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/paginated_phone_number_list.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/patched_ivr_options_update_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/patched_phone_number_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/payment_gateway_fees_info.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/period_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number_attributes.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number_capabilities.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number_provider_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number_search_response.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/phone_number_status_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_cancel_info.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_expiry_timestamp.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_expiry_timestamp_type_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_extra_details.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_item.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_type.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/plan_type_cycle.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/platform_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/product_group.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/proof.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/proof_status_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/provider_status_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/reaction_by.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/rental_currency_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/resource_enum.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/shopify_auth_request_request.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_agent.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_agent_browser.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_agent_device.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_agent_operating_system.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_agent_platform.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/user_identity.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_app_organizations_list_status_item.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_calls_list_direction.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_campaign_list_status_item.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_customer_consumables_retrieve_currency.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_ivr_list_duration.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_kyc_list_iso_country.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_kyc_list_provider_status_item.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_kyc_list_resource.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_kyc_list_status.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_list_additional_status_item.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_list_provider.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_list_status.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_intent.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_iso_country_code.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v1_phonenumbers_search_retrieve_resource.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v2_app_organizations_employees_list_status_item.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v3_orders_subscriptions_list_currency.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/v3_orders_subscriptions_list_status_item.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/types.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/py.typed +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/__init__.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/_constants.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/accounts.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/campaigns.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/devices.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/kycs.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/members.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/messages.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/notifications.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/orgs.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/payments.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/phones.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/silence.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/resources/teams.py +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/dependency_links.txt +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/entry_points.txt +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/not-zip-safe +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl_python.egg-info/top_level.txt +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/mkdocs.yml +0 -0
- {jaxl_python-0.0.19 → jaxl_python-0.0.21}/pyproject.toml +0 -0
- {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.
|
|
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
|
|
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) /
|
|
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()
|
|
@@ -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
|
{jaxl_python-0.0.19 → jaxl_python-0.0.21}/jaxl/api/client/models/integrations_properties_request.py
RENAMED
|
@@ -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
|
|
@@ -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
|