wavix-ruby-sdk 1.0.0
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.
- checksums.yaml +7 -0
- data/.fern/metadata.json +10 -0
- data/.fernignore +5 -0
- data/.rubocop.yml +103 -0
- data/CONTRIBUTING.md +120 -0
- data/LICENSE +21 -0
- data/README.md +271 -0
- data/Rakefile +20 -0
- data/SECURITY.md +25 -0
- data/custom.gemspec.rb +16 -0
- data/lib/wavix/api_keys/client.rb +158 -0
- data/lib/wavix/api_keys/types/api_key_create_request.rb +45 -0
- data/lib/wavix/api_keys/types/api_key_update_request.rb +47 -0
- data/lib/wavix/api_keys/types/delete_api_keys_request.rb +11 -0
- data/lib/wavix/api_keys/types/list_api_keys_request.rb +11 -0
- data/lib/wavix/billing/client.rb +24 -0
- data/lib/wavix/billing/invoices/client.rb +89 -0
- data/lib/wavix/billing/invoices/types/download_invoices_request.rb +13 -0
- data/lib/wavix/billing/invoices/types/list_invoices_request.rb +15 -0
- data/lib/wavix/billing/invoices/types/list_invoices_response.rb +17 -0
- data/lib/wavix/billing/transactions/client.rb +67 -0
- data/lib/wavix/billing/transactions/types/list_transactions_request.rb +25 -0
- data/lib/wavix/billing/transactions/types/list_transactions_response.rb +17 -0
- data/lib/wavix/buy/cities/client.rb +56 -0
- data/lib/wavix/buy/cities/types/list_cities_request.rb +15 -0
- data/lib/wavix/buy/cities/types/list_cities_response.rb +13 -0
- data/lib/wavix/buy/client.rb +39 -0
- data/lib/wavix/buy/countries/client.rb +54 -0
- data/lib/wavix/buy/countries/types/list_countries_request.rb +13 -0
- data/lib/wavix/buy/countries/types/list_countries_response.rb +13 -0
- data/lib/wavix/buy/numbers/client.rb +60 -0
- data/lib/wavix/buy/numbers/types/list_numbers_request.rb +21 -0
- data/lib/wavix/buy/numbers/types/list_numbers_response.rb +15 -0
- data/lib/wavix/buy/region_cities/client.rb +56 -0
- data/lib/wavix/buy/region_cities/types/list_region_cities_request.rb +17 -0
- data/lib/wavix/buy/region_cities/types/list_region_cities_response.rb +13 -0
- data/lib/wavix/buy/regions/client.rb +55 -0
- data/lib/wavix/buy/regions/types/list_regions_request.rb +15 -0
- data/lib/wavix/buy/regions/types/list_regions_response.rb +13 -0
- data/lib/wavix/call_control/audio/client.rb +89 -0
- data/lib/wavix/call_control/audio/types/call_audio_play_request.rb +15 -0
- data/lib/wavix/call_control/audio/types/stop_audio_request.rb +13 -0
- data/lib/wavix/call_control/client.rb +275 -0
- data/lib/wavix/call_control/streams/client.rb +91 -0
- data/lib/wavix/call_control/streams/types/call_stream_create_request.rb +19 -0
- data/lib/wavix/call_control/streams/types/delete_streams_request.rb +15 -0
- data/lib/wavix/call_control/types/call_answer_request.rb +21 -0
- data/lib/wavix/call_control/types/call_dtmf_collect_request.rb +21 -0
- data/lib/wavix/call_control/types/call_dtmf_collect_request_prompt.rb +15 -0
- data/lib/wavix/call_control/types/call_dtmf_collect_request_prompt_say.rb +16 -0
- data/lib/wavix/call_control/types/call_request.rb +23 -0
- data/lib/wavix/call_control/types/delete_call_control_request.rb +11 -0
- data/lib/wavix/call_control/types/get_call_control_request.rb +11 -0
- data/lib/wavix/call_control/types/update_call_request.rb +13 -0
- data/lib/wavix/call_recording/client.rb +168 -0
- data/lib/wavix/call_recording/types/delete_call_recording_request.rb +11 -0
- data/lib/wavix/call_recording/types/get_by_call_call_recording_request.rb +11 -0
- data/lib/wavix/call_recording/types/get_call_recording_request.rb +11 -0
- data/lib/wavix/call_recording/types/list_call_recording_request.rb +25 -0
- data/lib/wavix/call_webhooks/client.rb +120 -0
- data/lib/wavix/call_webhooks/types/call_webhooks_create_request.rb +13 -0
- data/lib/wavix/call_webhooks/types/call_webhooks_create_request_event_type.rb +14 -0
- data/lib/wavix/call_webhooks/types/delete_call_webhooks_request.rb +11 -0
- data/lib/wavix/call_webhooks/types/delete_call_webhooks_request_event_type.rb +14 -0
- data/lib/wavix/cart/client.rb +147 -0
- data/lib/wavix/cart/types/add_cart_request.rb +11 -0
- data/lib/wavix/cart/types/checkout_cart_request.rb +11 -0
- data/lib/wavix/cart/types/checkout_cart_response.rb +11 -0
- data/lib/wavix/cart/types/get_cart_response.rb +13 -0
- data/lib/wavix/cart/types/remove_cart_request.rb +11 -0
- data/lib/wavix/cart/types/remove_cart_response.rb +11 -0
- data/lib/wavix/cdrs/client.rb +277 -0
- data/lib/wavix/cdrs/transcription/client.rb +51 -0
- data/lib/wavix/cdrs/transcription/types/get_transcription_request.rb +13 -0
- data/lib/wavix/cdrs/types/cdr_retranscription_request.rb +15 -0
- data/lib/wavix/cdrs/types/cdr_search_request.rb +33 -0
- data/lib/wavix/cdrs/types/cdr_search_request_disposition.rb +17 -0
- data/lib/wavix/cdrs/types/cdr_search_request_type.rb +14 -0
- data/lib/wavix/cdrs/types/get_cdrs_request.rb +13 -0
- data/lib/wavix/cdrs/types/list_all_cdrs_request.rb +29 -0
- data/lib/wavix/cdrs/types/list_cdrs_request.rb +29 -0
- data/lib/wavix/cdrs/types/transcriptions_cdrs_request.rb +11 -0
- data/lib/wavix/client.rb +122 -0
- data/lib/wavix/environment.rb +7 -0
- data/lib/wavix/errors/api_error.rb +8 -0
- data/lib/wavix/errors/client_error.rb +17 -0
- data/lib/wavix/errors/redirect_error.rb +8 -0
- data/lib/wavix/errors/response_error.rb +42 -0
- data/lib/wavix/errors/server_error.rb +11 -0
- data/lib/wavix/errors/timeout_error.rb +8 -0
- data/lib/wavix/internal/errors/constraint_error.rb +10 -0
- data/lib/wavix/internal/errors/type_error.rb +10 -0
- data/lib/wavix/internal/http/base_request.rb +51 -0
- data/lib/wavix/internal/http/raw_client.rb +215 -0
- data/lib/wavix/internal/iterators/cursor_item_iterator.rb +28 -0
- data/lib/wavix/internal/iterators/cursor_page_iterator.rb +63 -0
- data/lib/wavix/internal/iterators/item_iterator.rb +65 -0
- data/lib/wavix/internal/iterators/offset_item_iterator.rb +30 -0
- data/lib/wavix/internal/iterators/offset_page_iterator.rb +103 -0
- data/lib/wavix/internal/json/request.rb +41 -0
- data/lib/wavix/internal/json/serializable.rb +25 -0
- data/lib/wavix/internal/multipart/multipart_encoder.rb +141 -0
- data/lib/wavix/internal/multipart/multipart_form_data.rb +78 -0
- data/lib/wavix/internal/multipart/multipart_form_data_part.rb +51 -0
- data/lib/wavix/internal/multipart/multipart_request.rb +40 -0
- data/lib/wavix/internal/types/array.rb +47 -0
- data/lib/wavix/internal/types/boolean.rb +34 -0
- data/lib/wavix/internal/types/enum.rb +56 -0
- data/lib/wavix/internal/types/hash.rb +36 -0
- data/lib/wavix/internal/types/model/field.rb +38 -0
- data/lib/wavix/internal/types/model.rb +208 -0
- data/lib/wavix/internal/types/type.rb +35 -0
- data/lib/wavix/internal/types/union.rb +161 -0
- data/lib/wavix/internal/types/unknown.rb +15 -0
- data/lib/wavix/internal/types/utils.rb +116 -0
- data/lib/wavix/link_shortener/client.rb +53 -0
- data/lib/wavix/link_shortener/metrics/client.rb +65 -0
- data/lib/wavix/link_shortener/metrics/types/list_metrics_request.rb +23 -0
- data/lib/wavix/link_shortener/types/short_link_create_request.rb +19 -0
- data/lib/wavix/number_validator/client.rb +94 -0
- data/lib/wavix/number_validator/results/client.rb +50 -0
- data/lib/wavix/number_validator/results/types/get_results_request.rb +13 -0
- data/lib/wavix/number_validator/types/get_number_validator_request.rb +13 -0
- data/lib/wavix/number_validator/types/get_number_validator_response.rb +43 -0
- data/lib/wavix/number_validator/types/phone_validation_request.rb +17 -0
- data/lib/wavix/numbers/client.rb +216 -0
- data/lib/wavix/numbers/papers/client.rb +69 -0
- data/lib/wavix/numbers/papers/types/upload_papers_request.rb +11 -0
- data/lib/wavix/numbers/types/bulk_update_numbers_response.rb +11 -0
- data/lib/wavix/numbers/types/delete_numbers_request.rb +13 -0
- data/lib/wavix/numbers/types/delete_numbers_response.rb +11 -0
- data/lib/wavix/numbers/types/get_numbers_request.rb +11 -0
- data/lib/wavix/numbers/types/list_numbers_request.rb +21 -0
- data/lib/wavix/numbers/types/number_bulk_update_request.rb +25 -0
- data/lib/wavix/numbers/types/number_update_request.rb +25 -0
- data/lib/wavix/profile/client.rb +85 -0
- data/lib/wavix/profile/config/client.rb +48 -0
- data/lib/wavix/profile/config/types/get_config_response.rb +15 -0
- data/lib/wavix/profile/types/profile_update_request.rb +31 -0
- data/lib/wavix/profile/types/profile_update_request_company_info.rb +21 -0
- data/lib/wavix/profile/types/profile_update_request_company_info_industry.rb +25 -0
- data/lib/wavix/sip_trunks/client.rb +194 -0
- data/lib/wavix/sip_trunks/types/delete_sip_trunks_request.rb +11 -0
- data/lib/wavix/sip_trunks/types/get_sip_trunks_request.rb +11 -0
- data/lib/wavix/sip_trunks/types/list_sip_trunks_request.rb +13 -0
- data/lib/wavix/sip_trunks/types/update_sip_trunks_request.rb +13 -0
- data/lib/wavix/sms_and_mms/client.rb +29 -0
- data/lib/wavix/sms_and_mms/messages/client.rb +194 -0
- data/lib/wavix/sms_and_mms/messages/types/get_messages_request.rb +13 -0
- data/lib/wavix/sms_and_mms/messages/types/get_messages_response.rb +45 -0
- data/lib/wavix/sms_and_mms/messages/types/list_all_messages_request.rb +27 -0
- data/lib/wavix/sms_and_mms/messages/types/list_all_messages_request_message_type.rb +16 -0
- data/lib/wavix/sms_and_mms/messages/types/list_messages_request.rb +31 -0
- data/lib/wavix/sms_and_mms/messages/types/list_messages_request_message_type.rb +16 -0
- data/lib/wavix/sms_and_mms/messages/types/list_messages_response.rb +15 -0
- data/lib/wavix/sms_and_mms/messages/types/send_messages_request.rb +23 -0
- data/lib/wavix/sms_and_mms/opt_outs/client.rb +99 -0
- data/lib/wavix/sms_and_mms/opt_outs/types/create_opt_outs_response.rb +13 -0
- data/lib/wavix/sms_and_mms/opt_outs/types/list_opt_outs_request.rb +23 -0
- data/lib/wavix/sms_and_mms/opt_outs/types/opt_out_create_request.rb +13 -0
- data/lib/wavix/sms_and_mms/sender_ids/client.rb +150 -0
- data/lib/wavix/sms_and_mms/sender_ids/types/delete_sender_ids_request.rb +13 -0
- data/lib/wavix/sms_and_mms/sender_ids/types/delete_sender_ids_response.rb +13 -0
- data/lib/wavix/sms_and_mms/sender_ids/types/get_sender_ids_request.rb +13 -0
- data/lib/wavix/sms_and_mms/sender_ids/types/sender_id_create_request.rb +23 -0
- data/lib/wavix/sms_and_mms/sender_ids/types/sender_id_create_request_monthly_volume.rb +19 -0
- data/lib/wavix/sms_and_mms/sender_ids/types/sender_id_create_request_usecase.rb +17 -0
- data/lib/wavix/speech_analytics/client.rb +157 -0
- data/lib/wavix/speech_analytics/file/client.rb +48 -0
- data/lib/wavix/speech_analytics/file/types/get_file_request.rb +13 -0
- data/lib/wavix/speech_analytics/types/create_speech_analytics_request.rb +9 -0
- data/lib/wavix/speech_analytics/types/create_speech_analytics_response.rb +15 -0
- data/lib/wavix/speech_analytics/types/get_speech_analytics_request.rb +11 -0
- data/lib/wavix/speech_analytics/types/get_speech_analytics_response.rb +31 -0
- data/lib/wavix/speech_analytics/types/get_speech_analytics_response_language.rb +17 -0
- data/lib/wavix/speech_analytics/types/get_speech_analytics_response_status.rb +14 -0
- data/lib/wavix/speech_analytics/types/speech_analytics_retranscribe_request.rb +15 -0
- data/lib/wavix/sub_accounts/client.rb +165 -0
- data/lib/wavix/sub_accounts/transactions/client.rb +64 -0
- data/lib/wavix/sub_accounts/transactions/types/list_transactions_request.rb +23 -0
- data/lib/wavix/sub_accounts/types/get_sub_accounts_request.rb +11 -0
- data/lib/wavix/sub_accounts/types/list_sub_accounts_request.rb +11 -0
- data/lib/wavix/sub_accounts/types/list_sub_accounts_request_status.rb +14 -0
- data/lib/wavix/sub_accounts/types/sub_accounts_create_request.rb +13 -0
- data/lib/wavix/sub_accounts/types/sub_accounts_create_request_default_destinations.rb +14 -0
- data/lib/wavix/sub_accounts/types/sub_accounts_update_request.rb +17 -0
- data/lib/wavix/sub_accounts/types/sub_accounts_update_request_default_destinations.rb +14 -0
- data/lib/wavix/sub_accounts/types/sub_accounts_update_request_status.rb +14 -0
- data/lib/wavix/ten_dlc/brand_appeals/client.rb +93 -0
- data/lib/wavix/ten_dlc/brand_appeals/types/create_brand_appeals_request.rb +19 -0
- data/lib/wavix/ten_dlc/brand_appeals/types/create_brand_appeals_response.rb +13 -0
- data/lib/wavix/ten_dlc/brand_appeals/types/list_brand_appeals_request.rb +13 -0
- data/lib/wavix/ten_dlc/brand_evidence/client.rb +158 -0
- data/lib/wavix/ten_dlc/brand_evidence/types/delete_brand_evidence_request.rb +15 -0
- data/lib/wavix/ten_dlc/brand_evidence/types/delete_brand_evidence_response.rb +13 -0
- data/lib/wavix/ten_dlc/brand_evidence/types/get_brand_evidence_request.rb +15 -0
- data/lib/wavix/ten_dlc/brand_evidence/types/list_brand_evidence_request.rb +13 -0
- data/lib/wavix/ten_dlc/brand_evidence/types/upload_brand_evidence_request.rb +13 -0
- data/lib/wavix/ten_dlc/brand_evidence/types/upload_brand_evidence_response.rb +19 -0
- data/lib/wavix/ten_dlc/brand_vetting_appeals/client.rb +87 -0
- data/lib/wavix/ten_dlc/brand_vetting_appeals/types/create_brand_vetting_appeals_response.rb +13 -0
- data/lib/wavix/ten_dlc/brand_vetting_appeals/types/list_brand_vetting_appeals_request.rb +13 -0
- data/lib/wavix/ten_dlc/brand_vetting_appeals/types/ten_dlc_brand_vetting_appeal_create_request.rb +23 -0
- data/lib/wavix/ten_dlc/brand_vettings/client.rb +127 -0
- data/lib/wavix/ten_dlc/brand_vettings/types/list_brand_vettings_request.rb +13 -0
- data/lib/wavix/ten_dlc/brand_vettings/types/ten_dlc_brand_vetting_create_request.rb +17 -0
- data/lib/wavix/ten_dlc/brand_vettings/types/ten_dlc_brand_vetting_import_request.rb +19 -0
- data/lib/wavix/ten_dlc/brands/client.rb +257 -0
- data/lib/wavix/ten_dlc/brands/types/create_brands_response.rb +61 -0
- data/lib/wavix/ten_dlc/brands/types/create_brands_response_entity_type.rb +18 -0
- data/lib/wavix/ten_dlc/brands/types/create_brands_response_status.rb +19 -0
- data/lib/wavix/ten_dlc/brands/types/delete_brands_request.rb +13 -0
- data/lib/wavix/ten_dlc/brands/types/delete_brands_response.rb +13 -0
- data/lib/wavix/ten_dlc/brands/types/get_brands_request.rb +13 -0
- data/lib/wavix/ten_dlc/brands/types/get_brands_response.rb +61 -0
- data/lib/wavix/ten_dlc/brands/types/get_brands_response_entity_type.rb +18 -0
- data/lib/wavix/ten_dlc/brands/types/get_brands_response_status.rb +19 -0
- data/lib/wavix/ten_dlc/brands/types/list_brands_request.rb +35 -0
- data/lib/wavix/ten_dlc/brands/types/list_brands_response.rb +16 -0
- data/lib/wavix/ten_dlc/brands/types/list_brands_response_pagination.rb +20 -0
- data/lib/wavix/ten_dlc/brands/types/qualify_usecase_brands_request.rb +15 -0
- data/lib/wavix/ten_dlc/brands/types/qualify_usecase_brands_request_use_case.rb +40 -0
- data/lib/wavix/ten_dlc/brands/types/qualify_usecase_brands_response.rb +17 -0
- data/lib/wavix/ten_dlc/brands/types/ten_dlc_brand_update_request.rb +51 -0
- data/lib/wavix/ten_dlc/brands/types/ten_dlc_brand_update_request_entity_type.rb +18 -0
- data/lib/wavix/ten_dlc/brands/types/ten_dlc_brand_update_request_vertical.rb +23 -0
- data/lib/wavix/ten_dlc/brands/types/update_brands_response.rb +61 -0
- data/lib/wavix/ten_dlc/brands/types/update_brands_response_entity_type.rb +18 -0
- data/lib/wavix/ten_dlc/brands/types/update_brands_response_status.rb +19 -0
- data/lib/wavix/ten_dlc/campaign_numbers/client.rb +123 -0
- data/lib/wavix/ten_dlc/campaign_numbers/types/link_campaign_numbers_request.rb +17 -0
- data/lib/wavix/ten_dlc/campaign_numbers/types/link_campaign_numbers_response.rb +13 -0
- data/lib/wavix/ten_dlc/campaign_numbers/types/list_campaign_numbers_request.rb +15 -0
- data/lib/wavix/ten_dlc/campaign_numbers/types/list_campaign_numbers_response.rb +17 -0
- data/lib/wavix/ten_dlc/campaign_numbers/types/unlink_campaign_numbers_request.rb +17 -0
- data/lib/wavix/ten_dlc/campaign_numbers/types/unlink_campaign_numbers_response.rb +13 -0
- data/lib/wavix/ten_dlc/campaigns/client.rb +316 -0
- data/lib/wavix/ten_dlc/campaigns/types/create_campaigns_response.rb +89 -0
- data/lib/wavix/ten_dlc/campaigns/types/delete_campaigns_request.rb +15 -0
- data/lib/wavix/ten_dlc/campaigns/types/delete_campaigns_response.rb +13 -0
- data/lib/wavix/ten_dlc/campaigns/types/get_campaigns_request.rb +15 -0
- data/lib/wavix/ten_dlc/campaigns/types/get_campaigns_response.rb +89 -0
- data/lib/wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_request.rb +29 -0
- data/lib/wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response.rb +16 -0
- data/lib/wavix/ten_dlc/campaigns/types/list_by_brand_campaigns_response_pagination.rb +20 -0
- data/lib/wavix/ten_dlc/campaigns/types/list_campaigns_request.rb +27 -0
- data/lib/wavix/ten_dlc/campaigns/types/list_campaigns_response.rb +16 -0
- data/lib/wavix/ten_dlc/campaigns/types/list_campaigns_response_pagination.rb +20 -0
- data/lib/wavix/ten_dlc/campaigns/types/nudge_campaigns_request.rb +19 -0
- data/lib/wavix/ten_dlc/campaigns/types/ten_dlc_campaign_create_request.rb +69 -0
- data/lib/wavix/ten_dlc/campaigns/types/ten_dlc_campaign_update_request.rb +67 -0
- data/lib/wavix/ten_dlc/campaigns/types/ten_dlc_campaign_update_request_usecase.rb +20 -0
- data/lib/wavix/ten_dlc/campaigns/types/update_campaigns_response.rb +89 -0
- data/lib/wavix/ten_dlc/client.rb +54 -0
- data/lib/wavix/ten_dlc/subscriptions/client.rb +118 -0
- data/lib/wavix/ten_dlc/subscriptions/types/create_subscriptions_response.rb +16 -0
- data/lib/wavix/ten_dlc/subscriptions/types/delete_subscriptions_request.rb +13 -0
- data/lib/wavix/ten_dlc/subscriptions/types/delete_subscriptions_response.rb +13 -0
- data/lib/wavix/two_fa/client.rb +29 -0
- data/lib/wavix/two_fa/events/client.rb +49 -0
- data/lib/wavix/two_fa/events/types/list_events_request.rb +13 -0
- data/lib/wavix/two_fa/sessions/client.rb +55 -0
- data/lib/wavix/two_fa/sessions/types/list_sessions_request.rb +17 -0
- data/lib/wavix/two_fa/verification/client.rb +171 -0
- data/lib/wavix/two_fa/verification/types/cancel_verification_request.rb +13 -0
- data/lib/wavix/two_fa/verification/types/check_verification_response.rb +13 -0
- data/lib/wavix/two_fa/verification/types/create_verification_response.rb +25 -0
- data/lib/wavix/two_fa/verification/types/resend_verification_response.rb +19 -0
- data/lib/wavix/two_fa/verification/types/two_factor_verification_check_request.rb +15 -0
- data/lib/wavix/two_fa/verification/types/two_factor_verification_create_request.rb +17 -0
- data/lib/wavix/two_fa/verification/types/two_factor_verification_resend_request.rb +15 -0
- data/lib/wavix/two_fa/verification/types/two_factor_verification_resend_request_channel.rb +16 -0
- data/lib/wavix/types/account_error_response.rb +12 -0
- data/lib/wavix/types/account_limits.rb +13 -0
- data/lib/wavix/types/allowed_i_ps.rb +23 -0
- data/lib/wavix/types/allowed_i_ps_item.rb +11 -0
- data/lib/wavix/types/api_key.rb +52 -0
- data/lib/wavix/types/api_key_calls_scope_permission.rb +10 -0
- data/lib/wavix/types/api_key_calls_scope_permission_allow.rb +13 -0
- data/lib/wavix/types/api_key_scope_permission.rb +10 -0
- data/lib/wavix/types/api_key_scope_permission_allow.rb +13 -0
- data/lib/wavix/types/available_number.rb +38 -0
- data/lib/wavix/types/available_number_list_response.rb +11 -0
- data/lib/wavix/types/bad_request_error_body.rb +11 -0
- data/lib/wavix/types/billing_transaction_list_response.rb +13 -0
- data/lib/wavix/types/brand_status_updated_webhook.rb +11 -0
- data/lib/wavix/types/brand_status_updated_webhook_status.rb +16 -0
- data/lib/wavix/types/call.rb +33 -0
- data/lib/wavix/types/call_control_validation_error_response.rb +13 -0
- data/lib/wavix/types/call_create_response.rb +33 -0
- data/lib/wavix/types/call_create_response_event_type.rb +19 -0
- data/lib/wavix/types/call_direction.rb +12 -0
- data/lib/wavix/types/call_disposition.rb +15 -0
- data/lib/wavix/types/call_event_type.rb +19 -0
- data/lib/wavix/types/call_list_response.rb +11 -0
- data/lib/wavix/types/call_recording_list_response.rb +13 -0
- data/lib/wavix/types/call_response.rb +11 -0
- data/lib/wavix/types/call_status_webhook.rb +28 -0
- data/lib/wavix/types/call_status_webhook_direction.rb +12 -0
- data/lib/wavix/types/call_stream_channel.rb +13 -0
- data/lib/wavix/types/call_stream_response.rb +11 -0
- data/lib/wavix/types/call_stream_type.rb +12 -0
- data/lib/wavix/types/call_webhook.rb +14 -0
- data/lib/wavix/types/call_webhook_event_type.rb +12 -0
- data/lib/wavix/types/call_webhook_list_response.rb +23 -0
- data/lib/wavix/types/call_webhook_list_response_item.rb +11 -0
- data/lib/wavix/types/call_webhook_list_response_item_event_type.rb +12 -0
- data/lib/wavix/types/campaign_status_updated_webhook.rb +13 -0
- data/lib/wavix/types/campaign_status_updated_webhook_status.rb +17 -0
- data/lib/wavix/types/cart_response.rb +11 -0
- data/lib/wavix/types/cdr.rb +38 -0
- data/lib/wavix/types/cdr_list_response.rb +11 -0
- data/lib/wavix/types/cdr_response.rb +41 -0
- data/lib/wavix/types/cdr_transcription_completed_webhook.rb +11 -0
- data/lib/wavix/types/cdr_transcription_completed_webhook_status.rb +12 -0
- data/lib/wavix/types/cdr_transcription_response.rb +31 -0
- data/lib/wavix/types/cdr_transcription_search_response.rb +11 -0
- data/lib/wavix/types/cdr_with_transcription.rb +40 -0
- data/lib/wavix/types/city.rb +13 -0
- data/lib/wavix/types/city_list_response.rb +9 -0
- data/lib/wavix/types/country.rb +13 -0
- data/lib/wavix/types/country_has_no_regions_error_response.rb +11 -0
- data/lib/wavix/types/country_list_response.rb +9 -0
- data/lib/wavix/types/document_type.rb +13 -0
- data/lib/wavix/types/document_type_id.rb +23 -0
- data/lib/wavix/types/file_transcript_response.rb +11 -0
- data/lib/wavix/types/file_transcript_turn.rb +18 -0
- data/lib/wavix/types/file_transcription_completed_webhook.rb +13 -0
- data/lib/wavix/types/file_transcription_response.rb +29 -0
- data/lib/wavix/types/file_transcription_response_language.rb +15 -0
- data/lib/wavix/types/file_transcription_response_status.rb +12 -0
- data/lib/wavix/types/financial_transaction.rb +24 -0
- data/lib/wavix/types/forbidden_error_response.rb +11 -0
- data/lib/wavix/types/inbound_call_destination.rb +22 -0
- data/lib/wavix/types/inbound_call_transport.rb +23 -0
- data/lib/wavix/types/inbound_message.rb +18 -0
- data/lib/wavix/types/invalid_recording.rb +12 -0
- data/lib/wavix/types/invoice.rb +16 -0
- data/lib/wavix/types/invoice_list_response.rb +13 -0
- data/lib/wavix/types/list_brand_evidence_response.rb +9 -0
- data/lib/wavix/types/list_sessions_response_item.rb +23 -0
- data/lib/wavix/types/message.rb +42 -0
- data/lib/wavix/types/message_body.rb +11 -0
- data/lib/wavix/types/message_create_request.rb +19 -0
- data/lib/wavix/types/message_delivery_status.rb +18 -0
- data/lib/wavix/types/message_list_response.rb +11 -0
- data/lib/wavix/types/message_response.rb +41 -0
- data/lib/wavix/types/messages_delivery_report.rb +32 -0
- data/lib/wavix/types/not_found_error_body.rb +11 -0
- data/lib/wavix/types/not_found_error_response.rb +11 -0
- data/lib/wavix/types/number.rb +63 -0
- data/lib/wavix/types/number_destination.rb +16 -0
- data/lib/wavix/types/number_document.rb +24 -0
- data/lib/wavix/types/number_list_response.rb +13 -0
- data/lib/wavix/types/number_status_updated_webhook.rb +15 -0
- data/lib/wavix/types/number_status_updated_webhook_status.rb +13 -0
- data/lib/wavix/types/number_validator_create_bulk_response.rb +13 -0
- data/lib/wavix/types/number_validator_create_bulk_response_request_id.rb +10 -0
- data/lib/wavix/types/on_call_event_payload.rb +12 -0
- data/lib/wavix/types/on_call_event_payload_type.rb +12 -0
- data/lib/wavix/types/opt_out.rb +11 -0
- data/lib/wavix/types/opt_out_item.rb +15 -0
- data/lib/wavix/types/opt_outs_list_response.rb +11 -0
- data/lib/wavix/types/pagination.rb +15 -0
- data/lib/wavix/types/phone_lookup_details.rb +13 -0
- data/lib/wavix/types/phone_number_validation_type.rb +13 -0
- data/lib/wavix/types/phone_validation_batch_response.rb +15 -0
- data/lib/wavix/types/phone_validation_batch_result_response.rb +15 -0
- data/lib/wavix/types/phone_validation_response.rb +41 -0
- data/lib/wavix/types/phone_validation_result_response.rb +42 -0
- data/lib/wavix/types/profile_config_response.rb +11 -0
- data/lib/wavix/types/profile_response.rb +31 -0
- data/lib/wavix/types/profile_response_company_info.rb +20 -0
- data/lib/wavix/types/profile_response_company_info_country.rb +12 -0
- data/lib/wavix/types/profile_response_company_info_industry.rb +23 -0
- data/lib/wavix/types/profile_response_default_destinations_item.rb +11 -0
- data/lib/wavix/types/record_not_found_error_response.rb +11 -0
- data/lib/wavix/types/recording.rb +22 -0
- data/lib/wavix/types/recording_deleted_error_response.rb +15 -0
- data/lib/wavix/types/region.rb +12 -0
- data/lib/wavix/types/region_list_response.rb +9 -0
- data/lib/wavix/types/send_messages_response.rb +41 -0
- data/lib/wavix/types/sender_id.rb +20 -0
- data/lib/wavix/types/sender_id_details.rb +19 -0
- data/lib/wavix/types/sender_id_list_response.rb +9 -0
- data/lib/wavix/types/sender_id_response.rb +19 -0
- data/lib/wavix/types/sender_id_response_type.rb +13 -0
- data/lib/wavix/types/sender_id_type.rb +12 -0
- data/lib/wavix/types/short_link_metrics_item.rb +27 -0
- data/lib/wavix/types/short_link_metrics_response.rb +11 -0
- data/lib/wavix/types/short_link_response.rb +9 -0
- data/lib/wavix/types/sip_trunk_create_request.rb +51 -0
- data/lib/wavix/types/sip_trunk_create_request_allowed_ips_item.rb +9 -0
- data/lib/wavix/types/sip_trunk_create_request_host_request.rb +11 -0
- data/lib/wavix/types/sip_trunk_list_response.rb +11 -0
- data/lib/wavix/types/sip_trunk_response.rb +59 -0
- data/lib/wavix/types/sip_trunk_summary.rb +42 -0
- data/lib/wavix/types/sip_trunk_summary_host_request.rb +12 -0
- data/lib/wavix/types/sub_accounts_list_response.rb +11 -0
- data/lib/wavix/types/sub_accounts_transactions_list_response.rb +11 -0
- data/lib/wavix/types/sub_accounts_transactions_list_response_transactions_item.rb +19 -0
- data/lib/wavix/types/sub_organization_response.rb +22 -0
- data/lib/wavix/types/sub_organization_response_default_destinations.rb +12 -0
- data/lib/wavix/types/sub_organization_response_status.rb +12 -0
- data/lib/wavix/types/submit_file_transcription_response.rb +13 -0
- data/lib/wavix/types/success_response.rb +9 -0
- data/lib/wavix/types/tcr_error_message.rb +11 -0
- data/lib/wavix/types/tcr_feedback.rb +9 -0
- data/lib/wavix/types/tcr_feedback_category.rb +18 -0
- data/lib/wavix/types/ten_dlc_brand.rb +57 -0
- data/lib/wavix/types/ten_dlc_brand_appeal.rb +21 -0
- data/lib/wavix/types/ten_dlc_brand_appeal_create_request.rb +14 -0
- data/lib/wavix/types/ten_dlc_brand_appeal_outcome.rb +14 -0
- data/lib/wavix/types/ten_dlc_brand_appeal_outcome_feedback.rb +10 -0
- data/lib/wavix/types/ten_dlc_brand_appeal_outcome_vetting_status.rb +15 -0
- data/lib/wavix/types/ten_dlc_brand_create_request.rb +14 -0
- data/lib/wavix/types/ten_dlc_brand_create_request_entity_type.rb +14 -0
- data/lib/wavix/types/ten_dlc_brand_create_request_stock_exchange.rb +14 -0
- data/lib/wavix/types/ten_dlc_brand_create_request_stock_exchange_entity_type.rb +13 -0
- data/lib/wavix/types/ten_dlc_brand_create_request_vertical.rb +19 -0
- data/lib/wavix/types/ten_dlc_brand_create_request_zero.rb +10 -0
- data/lib/wavix/types/ten_dlc_brand_create_request_zero_entity_type.rb +11 -0
- data/lib/wavix/types/ten_dlc_brand_entity_type.rb +14 -0
- data/lib/wavix/types/ten_dlc_brand_evidence.rb +15 -0
- data/lib/wavix/types/ten_dlc_brand_identity_verification_status.rb +15 -0
- data/lib/wavix/types/ten_dlc_brand_list_response.rb +12 -0
- data/lib/wavix/types/ten_dlc_brand_list_response_pagination.rb +16 -0
- data/lib/wavix/types/ten_dlc_brand_qualification_result.rb +13 -0
- data/lib/wavix/types/ten_dlc_brand_status.rb +15 -0
- data/lib/wavix/types/ten_dlc_brand_vetting.rb +29 -0
- data/lib/wavix/types/ten_dlc_brand_vetting_appeal.rb +31 -0
- data/lib/wavix/types/ten_dlc_brand_vetting_appeal_appeal_outcome.rb +14 -0
- data/lib/wavix/types/ten_dlc_brand_vetting_appeal_appeal_outcome_feedback.rb +10 -0
- data/lib/wavix/types/ten_dlc_brand_vetting_appeal_outcome.rb +13 -0
- data/lib/wavix/types/ten_dlc_brand_vetting_appeal_outcome_feedback.rb +10 -0
- data/lib/wavix/types/ten_dlc_brand_vetting_appeal_outcome_reason.rb +9 -0
- data/lib/wavix/types/ten_dlc_campaign.rb +85 -0
- data/lib/wavix/types/ten_dlc_campaign_list_response.rb +12 -0
- data/lib/wavix/types/ten_dlc_campaign_list_response_pagination.rb +16 -0
- data/lib/wavix/types/ten_dlc_campaign_nudge_request.rb +13 -0
- data/lib/wavix/types/ten_dlc_campaign_number.rb +11 -0
- data/lib/wavix/types/ten_dlc_campaign_number_list_response.rb +13 -0
- data/lib/wavix/types/ten_dlc_event_subscription.rb +12 -0
- data/lib/wavix/types/ten_dlcmno_metadata.rb +40 -0
- data/lib/wavix/types/transaction_status.rb +14 -0
- data/lib/wavix/types/transaction_type.rb +23 -0
- data/lib/wavix/types/transcript_turn.rb +19 -0
- data/lib/wavix/types/transcription_filter.rb +13 -0
- data/lib/wavix/types/transcription_filter_agent.rb +14 -0
- data/lib/wavix/types/transcription_filter_any.rb +14 -0
- data/lib/wavix/types/transcription_filter_client.rb +14 -0
- data/lib/wavix/types/transcription_language.rb +15 -0
- data/lib/wavix/types/transcription_reference.rb +11 -0
- data/lib/wavix/types/transcription_status.rb +12 -0
- data/lib/wavix/types/tts_language.rb +14 -0
- data/lib/wavix/types/tts_voice_id.rb +26 -0
- data/lib/wavix/types/two_factor_verification_check_response.rb +9 -0
- data/lib/wavix/types/two_factor_verification_event.rb +17 -0
- data/lib/wavix/types/two_factor_verification_resend_response.rb +15 -0
- data/lib/wavix/types/two_factor_verification_response.rb +21 -0
- data/lib/wavix/types/unauthorized_error_response.rb +13 -0
- data/lib/wavix/types/unprocessable_entity_error_body.rb +11 -0
- data/lib/wavix/types/validation_error_response.rb +11 -0
- data/lib/wavix/types/voice_campaign_create_request.rb +9 -0
- data/lib/wavix/types/voice_campaign_response.rb +16 -0
- data/lib/wavix/types/voice_campaigns_create_response.rb +9 -0
- data/lib/wavix/types/voice_campaigns_create_response_voice_campaign.rb +17 -0
- data/lib/wavix/types/voice_campaigns_get_response.rb +9 -0
- data/lib/wavix/types/voice_campaigns_get_response_voice_campaign.rb +17 -0
- data/lib/wavix/types/web_rtc_token.rb +16 -0
- data/lib/wavix/types/web_rtc_token_response.rb +17 -0
- data/lib/wavix/types/web_rtc_tokens_list_response.rb +12 -0
- data/lib/wavix/version.rb +5 -0
- data/lib/wavix/voice_campaigns/client.rb +83 -0
- data/lib/wavix/voice_campaigns/types/create_voice_campaigns_request.rb +11 -0
- data/lib/wavix/voice_campaigns/types/get_voice_campaigns_request.rb +11 -0
- data/lib/wavix/webrtc/client.rb +19 -0
- data/lib/wavix/webrtc/tokens/client.rb +191 -0
- data/lib/wavix/webrtc/tokens/types/delete_tokens_request.rb +13 -0
- data/lib/wavix/webrtc/tokens/types/get_tokens_request.rb +13 -0
- data/lib/wavix/webrtc/tokens/types/web_rtc_token_create_request.rb +17 -0
- data/lib/wavix/webrtc/tokens/types/web_rtc_token_update_request.rb +15 -0
- data/lib/wavix.rb +477 -0
- data/reference.md +10623 -0
- metadata +526 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Wavix
|
|
4
|
+
module CallRecording
|
|
5
|
+
class Client
|
|
6
|
+
# @param client [Wavix::Internal::Http::RawClient]
|
|
7
|
+
#
|
|
8
|
+
# @return [void]
|
|
9
|
+
def initialize(client:)
|
|
10
|
+
@client = client
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Returns a paginated list of call recordings for the authenticated account, filtered by date range, number, call,
|
|
14
|
+
# or SIP trunk.
|
|
15
|
+
#
|
|
16
|
+
# @param request_options [Hash]
|
|
17
|
+
# @param params [Hash]
|
|
18
|
+
# @option request_options [String] :base_url
|
|
19
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
20
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
21
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
22
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
23
|
+
# @option params [String, nil] :from_date
|
|
24
|
+
# @option params [String, nil] :to_date
|
|
25
|
+
# @option params [String, nil] :from
|
|
26
|
+
# @option params [String, nil] :to
|
|
27
|
+
# @option params [String, nil] :call_uuid
|
|
28
|
+
# @option params [String, nil] :sip_trunks
|
|
29
|
+
# @option params [Integer, nil] :page
|
|
30
|
+
# @option params [Integer, nil] :per_page
|
|
31
|
+
#
|
|
32
|
+
# @return [Wavix::Types::CallRecordingListResponse]
|
|
33
|
+
def list(request_options: {}, **params)
|
|
34
|
+
params = Wavix::Internal::Types::Utils.normalize_keys(params)
|
|
35
|
+
query_params = {}
|
|
36
|
+
query_params["from_date"] = params[:from_date] if params.key?(:from_date)
|
|
37
|
+
query_params["to_date"] = params[:to_date] if params.key?(:to_date)
|
|
38
|
+
query_params["from"] = params[:from] if params.key?(:from)
|
|
39
|
+
query_params["to"] = params[:to] if params.key?(:to)
|
|
40
|
+
query_params["call_uuid"] = params[:call_uuid] if params.key?(:call_uuid)
|
|
41
|
+
query_params["sip_trunks"] = params[:sip_trunks] if params.key?(:sip_trunks)
|
|
42
|
+
query_params["page"] = params[:page] if params.key?(:page)
|
|
43
|
+
query_params["per_page"] = params[:per_page] if params.key?(:per_page)
|
|
44
|
+
|
|
45
|
+
request = Wavix::Internal::JSON::Request.new(
|
|
46
|
+
base_url: request_options[:base_url],
|
|
47
|
+
method: "GET",
|
|
48
|
+
path: "v1/recordings",
|
|
49
|
+
query: query_params,
|
|
50
|
+
request_options: request_options
|
|
51
|
+
)
|
|
52
|
+
begin
|
|
53
|
+
response = @client.send(request)
|
|
54
|
+
rescue Net::HTTPRequestTimeout
|
|
55
|
+
raise Wavix::Errors::TimeoutError
|
|
56
|
+
end
|
|
57
|
+
code = response.code.to_i
|
|
58
|
+
if code.between?(200, 299)
|
|
59
|
+
Wavix::Types::CallRecordingListResponse.load(response.body)
|
|
60
|
+
else
|
|
61
|
+
error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
|
|
62
|
+
raise error_class.new(response.body, code: code)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Redirects to the recording file for the call identified by `call_id`. The download URL is returned in the
|
|
67
|
+
# `Location` header.
|
|
68
|
+
#
|
|
69
|
+
# @param request_options [Hash]
|
|
70
|
+
# @param params [Hash]
|
|
71
|
+
# @option request_options [String] :base_url
|
|
72
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
73
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
74
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
75
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
76
|
+
# @option params [String] :call_id
|
|
77
|
+
#
|
|
78
|
+
# @return [untyped]
|
|
79
|
+
def get_by_call(request_options: {}, **params)
|
|
80
|
+
params = Wavix::Internal::Types::Utils.normalize_keys(params)
|
|
81
|
+
request = Wavix::Internal::JSON::Request.new(
|
|
82
|
+
base_url: request_options[:base_url],
|
|
83
|
+
method: "GET",
|
|
84
|
+
path: "v1/recordings/#{URI.encode_uri_component(params[:call_id].to_s)}",
|
|
85
|
+
request_options: request_options
|
|
86
|
+
)
|
|
87
|
+
begin
|
|
88
|
+
response = @client.send(request)
|
|
89
|
+
rescue Net::HTTPRequestTimeout
|
|
90
|
+
raise Wavix::Errors::TimeoutError
|
|
91
|
+
end
|
|
92
|
+
code = response.code.to_i
|
|
93
|
+
return if code.between?(200, 299)
|
|
94
|
+
|
|
95
|
+
error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
|
|
96
|
+
raise error_class.new(response.body, code: code)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Returns the call recording identified by `id`, including its metadata and download URL.
|
|
100
|
+
#
|
|
101
|
+
# @param request_options [Hash]
|
|
102
|
+
# @param params [Hash]
|
|
103
|
+
# @option request_options [String] :base_url
|
|
104
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
105
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
106
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
107
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
108
|
+
# @option params [Integer] :id
|
|
109
|
+
#
|
|
110
|
+
# @return [Wavix::Types::Recording]
|
|
111
|
+
def get(request_options: {}, **params)
|
|
112
|
+
params = Wavix::Internal::Types::Utils.normalize_keys(params)
|
|
113
|
+
request = Wavix::Internal::JSON::Request.new(
|
|
114
|
+
base_url: request_options[:base_url],
|
|
115
|
+
method: "GET",
|
|
116
|
+
path: "v1/recordings/#{URI.encode_uri_component(params[:id].to_s)}",
|
|
117
|
+
request_options: request_options
|
|
118
|
+
)
|
|
119
|
+
begin
|
|
120
|
+
response = @client.send(request)
|
|
121
|
+
rescue Net::HTTPRequestTimeout
|
|
122
|
+
raise Wavix::Errors::TimeoutError
|
|
123
|
+
end
|
|
124
|
+
code = response.code.to_i
|
|
125
|
+
if code.between?(200, 299)
|
|
126
|
+
Wavix::Types::Recording.load(response.body)
|
|
127
|
+
else
|
|
128
|
+
error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
|
|
129
|
+
raise error_class.new(response.body, code: code)
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# Deletes the call recording identified by `id`. Deletion is permanent and removes the recording file.
|
|
134
|
+
#
|
|
135
|
+
# @param request_options [Hash]
|
|
136
|
+
# @param params [Hash]
|
|
137
|
+
# @option request_options [String] :base_url
|
|
138
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
139
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
140
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
141
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
142
|
+
# @option params [Integer] :id
|
|
143
|
+
#
|
|
144
|
+
# @return [Wavix::Types::SuccessResponse]
|
|
145
|
+
def delete(request_options: {}, **params)
|
|
146
|
+
params = Wavix::Internal::Types::Utils.normalize_keys(params)
|
|
147
|
+
request = Wavix::Internal::JSON::Request.new(
|
|
148
|
+
base_url: request_options[:base_url],
|
|
149
|
+
method: "DELETE",
|
|
150
|
+
path: "v1/recordings/#{URI.encode_uri_component(params[:id].to_s)}",
|
|
151
|
+
request_options: request_options
|
|
152
|
+
)
|
|
153
|
+
begin
|
|
154
|
+
response = @client.send(request)
|
|
155
|
+
rescue Net::HTTPRequestTimeout
|
|
156
|
+
raise Wavix::Errors::TimeoutError
|
|
157
|
+
end
|
|
158
|
+
code = response.code.to_i
|
|
159
|
+
if code.between?(200, 299)
|
|
160
|
+
Wavix::Types::SuccessResponse.load(response.body)
|
|
161
|
+
else
|
|
162
|
+
error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
|
|
163
|
+
raise error_class.new(response.body, code: code)
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Wavix
|
|
4
|
+
module CallRecording
|
|
5
|
+
module Types
|
|
6
|
+
class ListCallRecordingRequest < Internal::Types::Model
|
|
7
|
+
field :from_date, -> { String }, optional: true, nullable: false
|
|
8
|
+
|
|
9
|
+
field :to_date, -> { String }, optional: true, nullable: false
|
|
10
|
+
|
|
11
|
+
field :from, -> { String }, optional: true, nullable: false
|
|
12
|
+
|
|
13
|
+
field :to, -> { String }, optional: true, nullable: false
|
|
14
|
+
|
|
15
|
+
field :call_uuid, -> { String }, optional: true, nullable: false
|
|
16
|
+
|
|
17
|
+
field :sip_trunks, -> { String }, optional: true, nullable: false
|
|
18
|
+
|
|
19
|
+
field :page, -> { Integer }, optional: true, nullable: false
|
|
20
|
+
|
|
21
|
+
field :per_page, -> { Integer }, optional: true, nullable: false
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Wavix
|
|
4
|
+
module CallWebhooks
|
|
5
|
+
class Client
|
|
6
|
+
# @param client [Wavix::Internal::Http::RawClient]
|
|
7
|
+
#
|
|
8
|
+
# @return [void]
|
|
9
|
+
def initialize(client:)
|
|
10
|
+
@client = client
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Returns the configured call webhooks for the authenticated account. Wavix sends POST callbacks for `on-call` and
|
|
14
|
+
# `post-call` events.
|
|
15
|
+
#
|
|
16
|
+
# @param request_options [Hash]
|
|
17
|
+
# @param _params [Hash]
|
|
18
|
+
# @option request_options [String] :base_url
|
|
19
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
20
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
21
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
22
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
23
|
+
#
|
|
24
|
+
# @return [Array[Wavix::Types::CallWebhookListResponseItem]]
|
|
25
|
+
def list(request_options: {}, **_params)
|
|
26
|
+
request = Wavix::Internal::JSON::Request.new(
|
|
27
|
+
base_url: request_options[:base_url],
|
|
28
|
+
method: "GET",
|
|
29
|
+
path: "v1/calls/webhooks",
|
|
30
|
+
request_options: request_options
|
|
31
|
+
)
|
|
32
|
+
begin
|
|
33
|
+
response = @client.send(request)
|
|
34
|
+
rescue Net::HTTPRequestTimeout
|
|
35
|
+
raise Wavix::Errors::TimeoutError
|
|
36
|
+
end
|
|
37
|
+
code = response.code.to_i
|
|
38
|
+
if code.between?(200, 299)
|
|
39
|
+
Wavix::Types::CallWebhookListResponse.load(response.body)
|
|
40
|
+
else
|
|
41
|
+
error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
|
|
42
|
+
raise error_class.new(response.body, code: code)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Registers a callback URL for the `on-call` or `post-call` event. Wavix sends a POST callback to the URL when the
|
|
47
|
+
# event occurs.
|
|
48
|
+
#
|
|
49
|
+
# @param request_options [Hash]
|
|
50
|
+
# @param params [Wavix::CallWebhooks::Types::CallWebhooksCreateRequest]
|
|
51
|
+
# @option request_options [String] :base_url
|
|
52
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
53
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
54
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
55
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
56
|
+
#
|
|
57
|
+
# @return [Wavix::Types::CallWebhook]
|
|
58
|
+
def create(request_options: {}, **params)
|
|
59
|
+
params = Wavix::Internal::Types::Utils.normalize_keys(params)
|
|
60
|
+
request = Wavix::Internal::JSON::Request.new(
|
|
61
|
+
base_url: request_options[:base_url],
|
|
62
|
+
method: "POST",
|
|
63
|
+
path: "v1/calls/webhooks",
|
|
64
|
+
body: Wavix::CallWebhooks::Types::CallWebhooksCreateRequest.new(params).to_h,
|
|
65
|
+
request_options: request_options
|
|
66
|
+
)
|
|
67
|
+
begin
|
|
68
|
+
response = @client.send(request)
|
|
69
|
+
rescue Net::HTTPRequestTimeout
|
|
70
|
+
raise Wavix::Errors::TimeoutError
|
|
71
|
+
end
|
|
72
|
+
code = response.code.to_i
|
|
73
|
+
if code.between?(200, 299)
|
|
74
|
+
Wavix::Types::CallWebhook.load(response.body)
|
|
75
|
+
else
|
|
76
|
+
error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
|
|
77
|
+
raise error_class.new(response.body, code: code)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Removes the call webhook for the given event type. Wavix stops sending callbacks for that event.
|
|
82
|
+
#
|
|
83
|
+
# @param request_options [Hash]
|
|
84
|
+
# @param params [Hash]
|
|
85
|
+
# @option request_options [String] :base_url
|
|
86
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
87
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
88
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
89
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
90
|
+
# @option params [Wavix::CallWebhooks::Types::DeleteCallWebhooksRequestEventType] :event_type
|
|
91
|
+
#
|
|
92
|
+
# @return [Wavix::Types::SuccessResponse]
|
|
93
|
+
def delete(request_options: {}, **params)
|
|
94
|
+
params = Wavix::Internal::Types::Utils.normalize_keys(params)
|
|
95
|
+
query_params = {}
|
|
96
|
+
query_params["event_type"] = params[:event_type] if params.key?(:event_type)
|
|
97
|
+
|
|
98
|
+
request = Wavix::Internal::JSON::Request.new(
|
|
99
|
+
base_url: request_options[:base_url],
|
|
100
|
+
method: "DELETE",
|
|
101
|
+
path: "v1/calls/webhooks",
|
|
102
|
+
query: query_params,
|
|
103
|
+
request_options: request_options
|
|
104
|
+
)
|
|
105
|
+
begin
|
|
106
|
+
response = @client.send(request)
|
|
107
|
+
rescue Net::HTTPRequestTimeout
|
|
108
|
+
raise Wavix::Errors::TimeoutError
|
|
109
|
+
end
|
|
110
|
+
code = response.code.to_i
|
|
111
|
+
if code.between?(200, 299)
|
|
112
|
+
Wavix::Types::SuccessResponse.load(response.body)
|
|
113
|
+
else
|
|
114
|
+
error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
|
|
115
|
+
raise error_class.new(response.body, code: code)
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Wavix
|
|
4
|
+
module CallWebhooks
|
|
5
|
+
module Types
|
|
6
|
+
class CallWebhooksCreateRequest < Internal::Types::Model
|
|
7
|
+
field :url, -> { String }, optional: false, nullable: false
|
|
8
|
+
|
|
9
|
+
field :event_type, -> { Wavix::CallWebhooks::Types::CallWebhooksCreateRequestEventType }, optional: false, nullable: false
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Wavix
|
|
4
|
+
module CallWebhooks
|
|
5
|
+
module Types
|
|
6
|
+
class DeleteCallWebhooksRequest < Internal::Types::Model
|
|
7
|
+
field :event_type, -> { Wavix::CallWebhooks::Types::DeleteCallWebhooksRequestEventType }, optional: false, nullable: false
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Wavix
|
|
4
|
+
module Cart
|
|
5
|
+
class Client
|
|
6
|
+
# @param client [Wavix::Internal::Http::RawClient]
|
|
7
|
+
#
|
|
8
|
+
# @return [void]
|
|
9
|
+
def initialize(client:)
|
|
10
|
+
@client = client
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Returns the current purchase cart, including the phone numbers it contains and the documents each requires.
|
|
14
|
+
#
|
|
15
|
+
# @param request_options [Hash]
|
|
16
|
+
# @param _params [Hash]
|
|
17
|
+
# @option request_options [String] :base_url
|
|
18
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
19
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
20
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
21
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
22
|
+
#
|
|
23
|
+
# @return [Wavix::Cart::Types::GetCartResponse]
|
|
24
|
+
def get(request_options: {}, **_params)
|
|
25
|
+
request = Wavix::Internal::JSON::Request.new(
|
|
26
|
+
base_url: request_options[:base_url],
|
|
27
|
+
method: "GET",
|
|
28
|
+
path: "v1/buy/cart",
|
|
29
|
+
request_options: request_options
|
|
30
|
+
)
|
|
31
|
+
begin
|
|
32
|
+
response = @client.send(request)
|
|
33
|
+
rescue Net::HTTPRequestTimeout
|
|
34
|
+
raise Wavix::Errors::TimeoutError
|
|
35
|
+
end
|
|
36
|
+
code = response.code.to_i
|
|
37
|
+
if code.between?(200, 299)
|
|
38
|
+
Wavix::Cart::Types::GetCartResponse.load(response.body)
|
|
39
|
+
else
|
|
40
|
+
error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
|
|
41
|
+
raise error_class.new(response.body, code: code)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Adds the listed phone numbers to the purchase cart.
|
|
46
|
+
#
|
|
47
|
+
# @param request_options [Hash]
|
|
48
|
+
# @param params [Wavix::Cart::Types::AddCartRequest]
|
|
49
|
+
# @option request_options [String] :base_url
|
|
50
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
51
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
52
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
53
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
54
|
+
#
|
|
55
|
+
# @return [Array[Object]]
|
|
56
|
+
def add(request_options: {}, **params)
|
|
57
|
+
params = Wavix::Internal::Types::Utils.normalize_keys(params)
|
|
58
|
+
request = Wavix::Internal::JSON::Request.new(
|
|
59
|
+
base_url: request_options[:base_url],
|
|
60
|
+
method: "PUT",
|
|
61
|
+
path: "v1/buy/cart",
|
|
62
|
+
body: Wavix::Cart::Types::AddCartRequest.new(params).to_h,
|
|
63
|
+
request_options: request_options
|
|
64
|
+
)
|
|
65
|
+
begin
|
|
66
|
+
response = @client.send(request)
|
|
67
|
+
rescue Net::HTTPRequestTimeout
|
|
68
|
+
raise Wavix::Errors::TimeoutError
|
|
69
|
+
end
|
|
70
|
+
code = response.code.to_i
|
|
71
|
+
return if code.between?(200, 299)
|
|
72
|
+
|
|
73
|
+
error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
|
|
74
|
+
raise error_class.new(response.body, code: code)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Removes the listed phone numbers from the purchase cart.
|
|
78
|
+
#
|
|
79
|
+
# @param request_options [Hash]
|
|
80
|
+
# @param params [Wavix::Cart::Types::RemoveCartRequest]
|
|
81
|
+
# @option request_options [String] :base_url
|
|
82
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
83
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
84
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
85
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
86
|
+
#
|
|
87
|
+
# @return [Wavix::Cart::Types::RemoveCartResponse]
|
|
88
|
+
def remove(request_options: {}, **params)
|
|
89
|
+
params = Wavix::Internal::Types::Utils.normalize_keys(params)
|
|
90
|
+
request = Wavix::Internal::JSON::Request.new(
|
|
91
|
+
base_url: request_options[:base_url],
|
|
92
|
+
method: "DELETE",
|
|
93
|
+
path: "v1/buy/cart",
|
|
94
|
+
body: Wavix::Cart::Types::RemoveCartRequest.new(params).to_h,
|
|
95
|
+
request_options: request_options
|
|
96
|
+
)
|
|
97
|
+
begin
|
|
98
|
+
response = @client.send(request)
|
|
99
|
+
rescue Net::HTTPRequestTimeout
|
|
100
|
+
raise Wavix::Errors::TimeoutError
|
|
101
|
+
end
|
|
102
|
+
code = response.code.to_i
|
|
103
|
+
if code.between?(200, 299)
|
|
104
|
+
Wavix::Cart::Types::RemoveCartResponse.load(response.body)
|
|
105
|
+
else
|
|
106
|
+
error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
|
|
107
|
+
raise error_class.new(response.body, code: code)
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Purchases the listed phone numbers from the cart. Activation and monthly fees are deducted from the account
|
|
112
|
+
# balance.
|
|
113
|
+
#
|
|
114
|
+
# @param request_options [Hash]
|
|
115
|
+
# @param params [Wavix::Cart::Types::CheckoutCartRequest]
|
|
116
|
+
# @option request_options [String] :base_url
|
|
117
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
118
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
119
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
120
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
121
|
+
#
|
|
122
|
+
# @return [Wavix::Cart::Types::CheckoutCartResponse]
|
|
123
|
+
def checkout(request_options: {}, **params)
|
|
124
|
+
params = Wavix::Internal::Types::Utils.normalize_keys(params)
|
|
125
|
+
request = Wavix::Internal::JSON::Request.new(
|
|
126
|
+
base_url: request_options[:base_url],
|
|
127
|
+
method: "POST",
|
|
128
|
+
path: "v1/buy/cart/checkout",
|
|
129
|
+
body: Wavix::Cart::Types::CheckoutCartRequest.new(params).to_h,
|
|
130
|
+
request_options: request_options
|
|
131
|
+
)
|
|
132
|
+
begin
|
|
133
|
+
response = @client.send(request)
|
|
134
|
+
rescue Net::HTTPRequestTimeout
|
|
135
|
+
raise Wavix::Errors::TimeoutError
|
|
136
|
+
end
|
|
137
|
+
code = response.code.to_i
|
|
138
|
+
if code.between?(200, 299)
|
|
139
|
+
Wavix::Cart::Types::CheckoutCartResponse.load(response.body)
|
|
140
|
+
else
|
|
141
|
+
error_class = Wavix::Errors::ResponseError.subclass_for_code(code)
|
|
142
|
+
raise error_class.new(response.body, code: code)
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Wavix
|
|
4
|
+
module Cart
|
|
5
|
+
module Types
|
|
6
|
+
class GetCartResponse < Internal::Types::Model
|
|
7
|
+
field :dids, -> { Internal::Types::Array[Wavix::Types::AvailableNumber] }, optional: false, nullable: false
|
|
8
|
+
|
|
9
|
+
field :doc_types, -> { Internal::Types::Array[Wavix::Types::DocumentType] }, optional: false, nullable: false
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|