bandwidth-sdk 10.3.0 → 11.0.0.pre.beta.1.1
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 +4 -4
- data/Gemfile +9 -0
- data/Gemfile.lock +76 -0
- data/README.md +197 -139
- data/Rakefile +22 -0
- data/bandwidth-sdk.gemspec +40 -0
- data/bandwidth.yml +5551 -0
- data/docs/AccountStatistics.md +20 -0
- data/docs/AnswerCallback.md +44 -0
- data/docs/BridgeCompleteCallback.md +48 -0
- data/docs/BridgeTargetCompleteCallback.md +42 -0
- data/docs/CallDirectionEnum.md +15 -0
- data/docs/CallRecordingMetadata.md +52 -0
- data/docs/CallState.md +52 -0
- data/docs/CallStateEnum.md +15 -0
- data/docs/CallbackMethodEnum.md +15 -0
- data/docs/CallsApi.md +304 -0
- data/docs/CodeRequest.md +28 -0
- data/docs/Conference.md +32 -0
- data/docs/ConferenceCompletedCallback.md +26 -0
- data/docs/ConferenceCreatedCallback.md +26 -0
- data/docs/ConferenceMember.md +28 -0
- data/docs/ConferenceMemberExitCallback.md +32 -0
- data/docs/ConferenceMemberJoinCallback.md +32 -0
- data/docs/ConferenceRecordingAvailableCallback.md +44 -0
- data/docs/ConferenceRecordingMetadata.md +38 -0
- data/docs/ConferenceRedirectCallback.md +26 -0
- data/docs/ConferenceStateEnum.md +15 -0
- data/docs/ConferencesApi.md +688 -0
- data/docs/CreateCall.md +54 -0
- data/docs/CreateCallResponse.md +58 -0
- data/docs/CreateLookupResponse.md +20 -0
- data/docs/CreateMessageRequestError.md +22 -0
- data/docs/CreateParticipantRequest.md +24 -0
- data/docs/CreateParticipantResponse.md +20 -0
- data/docs/DeferredResult.md +20 -0
- data/docs/DeviceApiVersionEnum.md +15 -0
- data/docs/DisconenctCallback.md +50 -0
- data/docs/DisconnectCallback.md +50 -0
- data/docs/Diversion.md +30 -0
- data/docs/DtmfCallback.md +50 -0
- data/docs/FieldError.md +20 -0
- data/docs/FileFormatEnum.md +15 -0
- data/docs/ForbiddenRequest.md +18 -0
- data/docs/GatherCallback.md +52 -0
- data/docs/InboundMessageCallback.md +26 -0
- data/docs/InboundMessageCallbackMessage.md +40 -0
- data/docs/InitiateCallback.md +40 -0
- data/docs/ListMessageDirectionEnum.md +15 -0
- data/docs/ListMessageItem.md +48 -0
- data/docs/LookupRequest.md +18 -0
- data/docs/LookupResult.md +34 -0
- data/docs/LookupStatus.md +24 -0
- data/docs/LookupStatusEnum.md +15 -0
- data/docs/MFAApi.md +226 -0
- data/docs/MachineDetectionCompleteCallback.md +44 -0
- data/docs/MachineDetectionConfiguration.md +46 -0
- data/docs/MachineDetectionModeEnum.md +15 -0
- data/docs/Media.md +22 -0
- data/docs/MediaApi.md +307 -0
- data/docs/Message.md +42 -0
- data/docs/MessageDeliveredCallback.md +26 -0
- data/docs/MessageDeliveredCallbackMessage.md +40 -0
- data/docs/MessageDirectionEnum.md +15 -0
- data/docs/MessageFailedCallback.md +28 -0
- data/docs/MessageFailedCallbackMessage.md +40 -0
- data/docs/MessageRequest.md +32 -0
- data/docs/MessageSendingCallback.md +26 -0
- data/docs/MessageSendingCallbackMessage.md +40 -0
- data/docs/MessageStatusEnum.md +15 -0
- data/docs/MessageTypeEnum.md +15 -0
- data/docs/MessagesApi.md +179 -0
- data/docs/MessagesList.md +22 -0
- data/docs/MessagingCodeResponse.md +18 -0
- data/docs/MessagingRequestError.md +20 -0
- data/docs/MfaForbiddenRequestError.md +18 -0
- data/docs/MfaRequestError.md +20 -0
- data/docs/MfaUnauthorizedRequestError.md +18 -0
- data/docs/PageInfo.md +24 -0
- data/docs/Participant.md +30 -0
- data/docs/ParticipantSubscription.md +20 -0
- data/docs/ParticipantsApi.md +227 -0
- data/docs/PhoneNumberLookupApi.md +153 -0
- data/docs/PriorityEnum.md +15 -0
- data/docs/PublishPermissionsEnum.md +15 -0
- data/docs/RecordingAvailableCallback.md +60 -0
- data/docs/RecordingCompleteCallback.md +60 -0
- data/docs/RecordingStateEnum.md +15 -0
- data/docs/RecordingsApi.md +758 -0
- data/docs/RedirectCallback.md +48 -0
- data/docs/RedirectMethodEnum.md +15 -0
- data/docs/RequestError.md +20 -0
- data/docs/Session.md +20 -0
- data/docs/SessionsApi.md +605 -0
- data/docs/StatisticsApi.md +78 -0
- data/docs/StirShaken.md +22 -0
- data/docs/Subscriptions.md +20 -0
- data/docs/Tag.md +20 -0
- data/docs/TnLookupRequestError.md +18 -0
- data/docs/TranscribeRecording.md +28 -0
- data/docs/Transcription.md +20 -0
- data/docs/TranscriptionAvailableCallback.md +58 -0
- data/docs/TranscriptionList.md +18 -0
- data/docs/TranscriptionMetadata.md +24 -0
- data/docs/TransferAnswerCallback.md +46 -0
- data/docs/TransferCompleteCallback.md +52 -0
- data/docs/TransferDisconnectCallback.md +56 -0
- data/docs/UnauthorizedRequest.md +18 -0
- data/docs/UpdateCall.md +36 -0
- data/docs/UpdateCallRecording.md +18 -0
- data/docs/UpdateConference.md +34 -0
- data/docs/UpdateConferenceMember.md +22 -0
- data/docs/VerifyCodeRequest.md +24 -0
- data/docs/VerifyCodeResponse.md +18 -0
- data/docs/VoiceApiError.md +22 -0
- data/docs/VoiceCodeResponse.md +18 -0
- data/git_push.sh +57 -0
- data/lib/bandwidth-sdk/api/calls_api.rb +325 -0
- data/lib/bandwidth-sdk/api/conferences_api.rb +717 -0
- data/lib/bandwidth-sdk/api/media_api.rb +312 -0
- data/lib/bandwidth-sdk/api/messages_api.rb +198 -0
- data/lib/bandwidth-sdk/api/mfa_api.rb +244 -0
- data/lib/bandwidth-sdk/api/phone_number_lookup_api.rb +165 -0
- data/lib/bandwidth-sdk/api/recordings_api.rb +782 -0
- data/lib/bandwidth-sdk/api/statistics_api.rb +85 -0
- data/lib/bandwidth-sdk/api_client.rb +428 -0
- data/lib/bandwidth-sdk/api_error.rb +58 -0
- data/lib/bandwidth-sdk/configuration.rb +589 -0
- data/lib/bandwidth-sdk/models/account_statistics.rb +230 -0
- data/lib/bandwidth-sdk/models/answer_callback.rb +376 -0
- data/lib/bandwidth-sdk/models/bridge_complete_callback.rb +397 -0
- data/lib/bandwidth-sdk/models/bridge_target_complete_callback.rb +365 -0
- data/lib/bandwidth-sdk/models/bxml/bxml.rb +13 -0
- data/lib/bandwidth-sdk/models/bxml/nestable_verb.rb +50 -0
- data/lib/bandwidth-sdk/models/bxml/response.rb +13 -0
- data/lib/bandwidth-sdk/models/bxml/root.rb +47 -0
- data/lib/bandwidth-sdk/models/bxml/verb.rb +51 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/bridge.rb +30 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/conference.rb +31 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/forward.rb +22 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/gather.rb +44 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/hangup.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/pause.rb +17 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/pause_recording.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/phone_number.rb +28 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/play_audio.rb +19 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/record.rb +34 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/redirect.rb +25 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/resume_recording.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/ring.rb +18 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/send_dtmf.rb +19 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/sip_uri.rb +29 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/speak_sentence.rb +27 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/start_gather.rb +21 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/start_recording.rb +26 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/start_stream.rb +30 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stop_gather.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stop_recording.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stop_stream.rb +17 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stream_param.rb +18 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/tag.rb +13 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/transfer.rb +36 -0
- data/lib/bandwidth-sdk/models/call_direction_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/call_recording_metadata.rb +411 -0
- data/lib/bandwidth-sdk/models/call_state.rb +423 -0
- data/lib/bandwidth-sdk/models/call_state_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/callback_method_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/code_request.rb +427 -0
- data/lib/bandwidth-sdk/models/conference.rb +320 -0
- data/lib/bandwidth-sdk/models/conference_completed_callback.rb +262 -0
- data/lib/bandwidth-sdk/models/conference_created_callback.rb +262 -0
- data/lib/bandwidth-sdk/models/conference_member.rb +273 -0
- data/lib/bandwidth-sdk/models/conference_member_exit_callback.rb +292 -0
- data/lib/bandwidth-sdk/models/conference_member_join_callback.rb +292 -0
- data/lib/bandwidth-sdk/models/conference_recording_available_callback.rb +374 -0
- data/lib/bandwidth-sdk/models/conference_recording_metadata.rb +342 -0
- data/lib/bandwidth-sdk/models/conference_redirect_callback.rb +262 -0
- data/lib/bandwidth-sdk/models/conference_state_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/create_call.rb +651 -0
- data/lib/bandwidth-sdk/models/create_call_response.rb +552 -0
- data/lib/bandwidth-sdk/models/create_lookup_response.rb +252 -0
- data/lib/bandwidth-sdk/models/create_message_request_error.rb +249 -0
- data/lib/bandwidth-sdk/models/deferred_result.rb +228 -0
- data/lib/bandwidth-sdk/models/disconenct_callback.rb +407 -0
- data/lib/bandwidth-sdk/models/disconnect_callback.rb +407 -0
- data/lib/bandwidth-sdk/models/diversion.rb +280 -0
- data/lib/bandwidth-sdk/models/dtmf_callback.rb +405 -0
- data/lib/bandwidth-sdk/models/field_error.rb +230 -0
- data/lib/bandwidth-sdk/models/file_format_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/gather_callback.rb +415 -0
- data/lib/bandwidth-sdk/models/inbound_message_callback.rb +281 -0
- data/lib/bandwidth-sdk/models/inbound_message_callback_message.rb +399 -0
- data/lib/bandwidth-sdk/models/initiate_callback.rb +350 -0
- data/lib/bandwidth-sdk/models/list_message_direction_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/list_message_item.rb +394 -0
- data/lib/bandwidth-sdk/models/lookup_request.rb +227 -0
- data/lib/bandwidth-sdk/models/lookup_result.rb +301 -0
- data/lib/bandwidth-sdk/models/lookup_status.rb +276 -0
- data/lib/bandwidth-sdk/models/lookup_status_enum.rb +42 -0
- data/lib/bandwidth-sdk/models/machine_detection_complete_callback.rb +376 -0
- data/lib/bandwidth-sdk/models/machine_detection_configuration.rb +500 -0
- data/lib/bandwidth-sdk/models/machine_detection_mode_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/media.rb +237 -0
- data/lib/bandwidth-sdk/models/message.rb +376 -0
- data/lib/bandwidth-sdk/models/message_delivered_callback.rb +281 -0
- data/lib/bandwidth-sdk/models/message_delivered_callback_message.rb +404 -0
- data/lib/bandwidth-sdk/models/message_direction_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/message_failed_callback.rb +295 -0
- data/lib/bandwidth-sdk/models/message_failed_callback_message.rb +409 -0
- data/lib/bandwidth-sdk/models/message_request.rb +355 -0
- data/lib/bandwidth-sdk/models/message_sending_callback.rb +281 -0
- data/lib/bandwidth-sdk/models/message_sending_callback_message.rb +409 -0
- data/lib/bandwidth-sdk/models/message_status_enum.rb +46 -0
- data/lib/bandwidth-sdk/models/message_type_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/messages_list.rb +240 -0
- data/lib/bandwidth-sdk/models/messaging_code_response.rb +220 -0
- data/lib/bandwidth-sdk/models/messaging_request_error.rb +238 -0
- data/lib/bandwidth-sdk/models/mfa_forbidden_request_error.rb +220 -0
- data/lib/bandwidth-sdk/models/mfa_request_error.rb +230 -0
- data/lib/bandwidth-sdk/models/mfa_unauthorized_request_error.rb +220 -0
- data/lib/bandwidth-sdk/models/page_info.rb +250 -0
- data/lib/bandwidth-sdk/models/priority_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/recording_available_callback.rb +454 -0
- data/lib/bandwidth-sdk/models/recording_complete_callback.rb +455 -0
- data/lib/bandwidth-sdk/models/recording_state_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/redirect_callback.rb +395 -0
- data/lib/bandwidth-sdk/models/redirect_method_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/stir_shaken.rb +240 -0
- data/lib/bandwidth-sdk/models/tag.rb +228 -0
- data/lib/bandwidth-sdk/models/tn_lookup_request_error.rb +220 -0
- data/lib/bandwidth-sdk/models/transcribe_recording.rb +354 -0
- data/lib/bandwidth-sdk/models/transcription.rb +230 -0
- data/lib/bandwidth-sdk/models/transcription_available_callback.rb +443 -0
- data/lib/bandwidth-sdk/models/transcription_list.rb +221 -0
- data/lib/bandwidth-sdk/models/transcription_metadata.rb +251 -0
- data/lib/bandwidth-sdk/models/transfer_answer_callback.rb +385 -0
- data/lib/bandwidth-sdk/models/transfer_complete_callback.rb +417 -0
- data/lib/bandwidth-sdk/models/transfer_disconnect_callback.rb +437 -0
- data/lib/bandwidth-sdk/models/update_call.rb +411 -0
- data/lib/bandwidth-sdk/models/update_call_recording.rb +246 -0
- data/lib/bandwidth-sdk/models/update_conference.rb +394 -0
- data/lib/bandwidth-sdk/models/update_conference_member.rb +243 -0
- data/lib/bandwidth-sdk/models/verify_code_request.rb +342 -0
- data/lib/bandwidth-sdk/models/verify_code_response.rb +220 -0
- data/lib/bandwidth-sdk/models/voice_api_error.rb +238 -0
- data/lib/bandwidth-sdk/models/voice_code_response.rb +220 -0
- data/lib/bandwidth-sdk/version.rb +15 -0
- data/lib/bandwidth-sdk.rb +166 -0
- data/openapi-config.yml +11 -0
- data/ruby-notes.md +15 -0
- data/spec/call_utils.rb +74 -0
- data/spec/fixtures/ruby_cat.jpeg +0 -0
- data/spec/integration/calls_api_integration_spec.rb +181 -0
- data/spec/integration/conferences_api_integration_spec.rb +163 -0
- data/spec/integration/media_api_integration_spec.rb +86 -0
- data/spec/integration/messages_api_integration_spec.rb +125 -0
- data/spec/integration/mfa_api_integration_spec.rb +109 -0
- data/spec/integration/phone_number_lookup_api_integration_spec.rb +92 -0
- data/spec/integration/recordings_api_integration_spec.rb +219 -0
- data/spec/integration/statistics_api_integration_spec.rb +57 -0
- data/spec/spec_helper.rb +154 -0
- data/spec/unit/api/calls_api_spec.rb +89 -0
- data/spec/unit/api/conferences_api_spec.rb +163 -0
- data/spec/unit/api/media_api_spec.rb +90 -0
- data/spec/unit/api/messages_api_spec.rb +73 -0
- data/spec/unit/api/mfa_api_spec.rb +74 -0
- data/spec/unit/api/phone_number_lookup_api_spec.rb +61 -0
- data/spec/unit/api/recordings_api_spec.rb +177 -0
- data/spec/unit/api/statistics_api_spec.rb +47 -0
- data/spec/unit/models/account_statistics_spec.rb +40 -0
- data/spec/unit/models/answer_callback_spec.rb +112 -0
- data/spec/unit/models/bridge_complete_callback_spec.rb +124 -0
- data/spec/unit/models/bridge_target_complete_callback_spec.rb +106 -0
- data/spec/unit/models/bxml/bxml_spec.rb +18 -0
- data/spec/unit/models/bxml/nestable_verb_spec.rb +13 -0
- data/spec/unit/models/bxml/response_spec.rb +18 -0
- data/spec/unit/models/bxml/verb_spec.rb +28 -0
- data/spec/unit/models/bxml/verbs/bridge_spec.rb +60 -0
- data/spec/unit/models/bxml/verbs/conference_spec.rb +60 -0
- data/spec/unit/models/bxml/verbs/forward_spec.rb +46 -0
- data/spec/unit/models/bxml/verbs/gather_spec.rb +88 -0
- data/spec/unit/models/bxml/verbs/hangup_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/pause_recording_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/pause_spec.rb +36 -0
- data/spec/unit/models/bxml/verbs/phone_number_spec.rb +56 -0
- data/spec/unit/models/bxml/verbs/play_audio_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/record_spec.rb +70 -0
- data/spec/unit/models/bxml/verbs/redirect_spec.rb +52 -0
- data/spec/unit/models/bxml/verbs/resume_recording_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/ring_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/send_dtmf_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/sip_uri_spec.rb +58 -0
- data/spec/unit/models/bxml/verbs/speak_sentence_spec.rb +40 -0
- data/spec/unit/models/bxml/verbs/start_gather_spec.rb +44 -0
- data/spec/unit/models/bxml/verbs/start_recording_spec.rb +54 -0
- data/spec/unit/models/bxml/verbs/start_stream_spec.rb +74 -0
- data/spec/unit/models/bxml/verbs/stop_gather_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/stop_recording_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/stop_stream_spec.rb +36 -0
- data/spec/unit/models/bxml/verbs/stream_param_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/tag_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/transfer_spec.rb +86 -0
- data/spec/unit/models/call_direction_enum_spec.rb +28 -0
- data/spec/unit/models/call_recording_metadata_spec.rb +136 -0
- data/spec/unit/models/call_state_enum_spec.rb +28 -0
- data/spec/unit/models/call_state_spec.rb +136 -0
- data/spec/unit/models/callback_method_enum_spec.rb +28 -0
- data/spec/unit/models/code_request_spec.rb +64 -0
- data/spec/unit/models/conference_completed_callback_spec.rb +58 -0
- data/spec/unit/models/conference_created_callback_spec.rb +58 -0
- data/spec/unit/models/conference_member_exit_callback_spec.rb +76 -0
- data/spec/unit/models/conference_member_join_callback_spec.rb +76 -0
- data/spec/unit/models/conference_member_spec.rb +64 -0
- data/spec/unit/models/conference_recording_available_callback_spec.rb +112 -0
- data/spec/unit/models/conference_recording_metadata_spec.rb +94 -0
- data/spec/unit/models/conference_redirect_callback_spec.rb +58 -0
- data/spec/unit/models/conference_spec.rb +76 -0
- data/spec/unit/models/conference_state_enum_spec.rb +28 -0
- data/spec/unit/models/create_call_response_spec.rb +154 -0
- data/spec/unit/models/create_call_spec.rb +142 -0
- data/spec/unit/models/create_lookup_response_spec.rb +40 -0
- data/spec/unit/models/create_message_request_error_spec.rb +46 -0
- data/spec/unit/models/deferred_result_spec.rb +40 -0
- data/spec/unit/models/disconnect_callback_spec.rb +130 -0
- data/spec/unit/models/diversion_spec.rb +70 -0
- data/spec/unit/models/dtmf_callback_spec.rb +130 -0
- data/spec/unit/models/field_error_spec.rb +40 -0
- data/spec/unit/models/file_format_enum_spec.rb +28 -0
- data/spec/unit/models/gather_callback_spec.rb +136 -0
- data/spec/unit/models/inbound_message_callback_message_spec.rb +100 -0
- data/spec/unit/models/inbound_message_callback_spec.rb +58 -0
- data/spec/unit/models/initiate_callback_spec.rb +100 -0
- data/spec/unit/models/list_message_direction_enum_spec.rb +28 -0
- data/spec/unit/models/list_message_item_spec.rb +124 -0
- data/spec/unit/models/lookup_request_spec.rb +34 -0
- data/spec/unit/models/lookup_result_spec.rb +82 -0
- data/spec/unit/models/lookup_status_enum_spec.rb +28 -0
- data/spec/unit/models/lookup_status_spec.rb +52 -0
- data/spec/unit/models/machine_detection_complete_callback_spec.rb +112 -0
- data/spec/unit/models/machine_detection_configuration_spec.rb +118 -0
- data/spec/unit/models/machine_detection_mode_enum_spec.rb +28 -0
- data/spec/unit/models/media_spec.rb +46 -0
- data/spec/unit/models/message_delivered_callback_message_spec.rb +100 -0
- data/spec/unit/models/message_delivered_callback_spec.rb +58 -0
- data/spec/unit/models/message_direction_enum_spec.rb +28 -0
- data/spec/unit/models/message_failed_callback_message_spec.rb +100 -0
- data/spec/unit/models/message_failed_callback_spec.rb +64 -0
- data/spec/unit/models/message_request_spec.rb +76 -0
- data/spec/unit/models/message_sending_callback_message_spec.rb +100 -0
- data/spec/unit/models/message_sending_callback_spec.rb +58 -0
- data/spec/unit/models/message_spec.rb +106 -0
- data/spec/unit/models/message_status_enum_spec.rb +28 -0
- data/spec/unit/models/message_type_enum_spec.rb +28 -0
- data/spec/unit/models/messages_list_spec.rb +46 -0
- data/spec/unit/models/messaging_code_response_spec.rb +34 -0
- data/spec/unit/models/messaging_request_error_spec.rb +40 -0
- data/spec/unit/models/mfa_forbidden_request_error_spec.rb +34 -0
- data/spec/unit/models/mfa_request_error_spec.rb +40 -0
- data/spec/unit/models/mfa_unauthorized_request_error_spec.rb +34 -0
- data/spec/unit/models/page_info_spec.rb +52 -0
- data/spec/unit/models/priority_enum_spec.rb +28 -0
- data/spec/unit/models/recording_available_callback_spec.rb +160 -0
- data/spec/unit/models/recording_complete_callback_spec.rb +160 -0
- data/spec/unit/models/recording_state_enum_spec.rb +28 -0
- data/spec/unit/models/redirect_callback_spec.rb +124 -0
- data/spec/unit/models/redirect_method_enum_spec.rb +28 -0
- data/spec/unit/models/stir_shaken_spec.rb +46 -0
- data/spec/unit/models/tag_spec.rb +40 -0
- data/spec/unit/models/tn_lookup_request_error_spec.rb +34 -0
- data/spec/unit/models/transcribe_recording_spec.rb +64 -0
- data/spec/unit/models/transcription_available_callback_spec.rb +154 -0
- data/spec/unit/models/transcription_list_spec.rb +34 -0
- data/spec/unit/models/transcription_metadata_spec.rb +52 -0
- data/spec/unit/models/transcription_spec.rb +40 -0
- data/spec/unit/models/transfer_answer_callback_spec.rb +118 -0
- data/spec/unit/models/transfer_complete_callback_spec.rb +136 -0
- data/spec/unit/models/transfer_disconnect_callback_spec.rb +148 -0
- data/spec/unit/models/update_call_recording_spec.rb +34 -0
- data/spec/unit/models/update_call_spec.rb +88 -0
- data/spec/unit/models/update_conference_member_spec.rb +46 -0
- data/spec/unit/models/update_conference_spec.rb +82 -0
- data/spec/unit/models/verify_code_request_spec.rb +52 -0
- data/spec/unit/models/verify_code_response_spec.rb +34 -0
- data/spec/unit/models/voice_api_error_spec.rb +46 -0
- data/spec/unit/models/voice_code_response_spec.rb +34 -0
- metadata +543 -248
- data/LICENSE +0 -28
- data/lib/bandwidth/api_helper.rb +0 -280
- data/lib/bandwidth/client.rb +0 -75
- data/lib/bandwidth/configuration.rb +0 -209
- data/lib/bandwidth/exceptions/api_exception.rb +0 -20
- data/lib/bandwidth/http/api_response.rb +0 -38
- data/lib/bandwidth/http/auth/messaging_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/multi_factor_auth_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/phone_number_lookup_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/voice_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/web_rtc_basic_auth.rb +0 -22
- data/lib/bandwidth/http/faraday_client.rb +0 -70
- data/lib/bandwidth/http/http_call_back.rb +0 -24
- data/lib/bandwidth/http/http_client.rb +0 -104
- data/lib/bandwidth/http/http_method_enum.rb +0 -13
- data/lib/bandwidth/http/http_request.rb +0 -50
- data/lib/bandwidth/http/http_response.rb +0 -29
- data/lib/bandwidth/messaging_lib/messaging/client.rb +0 -60
- data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +0 -491
- data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/messaging_lib/messaging/exceptions/messaging_exception.rb +0 -37
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_callback_message.rb +0 -100
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +0 -174
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message_item.rb +0 -203
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_messages_list.rb +0 -79
- data/lib/bandwidth/messaging_lib/messaging/models/deferred_result.rb +0 -60
- data/lib/bandwidth/messaging_lib/messaging/models/media.rb +0 -70
- data/lib/bandwidth/messaging_lib/messaging/models/message_request.rb +0 -122
- data/lib/bandwidth/messaging_lib/messaging/models/page_info.rb +0 -82
- data/lib/bandwidth/messaging_lib/messaging/models/priority_enum.rb +0 -19
- data/lib/bandwidth/messaging_lib/messaging/models/tag.rb +0 -60
- data/lib/bandwidth/messaging_lib/messaging.rb +0 -25
- data/lib/bandwidth/models/base_model.rb +0 -58
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/client.rb +0 -60
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/controllers/mfa_controller.rb +0 -214
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/error_with_request_exception.rb +0 -37
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/forbidden_request_exception.rb +0 -32
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/unauthorized_request_exception.rb +0 -32
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_code_request_schema.rb +0 -103
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_messaging_response.rb +0 -50
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_verify_code_response.rb +0 -50
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_verify_request_schema.rb +0 -94
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_voice_response.rb +0 -50
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth.rb +0 -23
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/client.rb +0 -60
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/api_controller.rb +0 -1553
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/exceptions/accounts_tnlookup400_error_exception.rb +0 -32
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_request.rb +0 -50
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_response.rb +0 -61
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_status.rb +0 -95
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/result.rb +0 -132
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup.rb +0 -20
- data/lib/bandwidth/utilities/date_time_helper.rb +0 -156
- data/lib/bandwidth/utilities/file_wrapper.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/bxml.rb +0 -36
- data/lib/bandwidth/voice_lib/bxml/response.rb +0 -39
- data/lib/bandwidth/voice_lib/bxml/verbs/bridge.rb +0 -28
- data/lib/bandwidth/voice_lib/bxml/verbs/conference.rb +0 -32
- data/lib/bandwidth/voice_lib/bxml/verbs/forward.rb +0 -18
- data/lib/bandwidth/voice_lib/bxml/verbs/gather.rb +0 -49
- data/lib/bandwidth/voice_lib/bxml/verbs/hangup.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/pause.rb +0 -15
- data/lib/bandwidth/voice_lib/bxml/verbs/pause_recording.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/phone_number.rb +0 -24
- data/lib/bandwidth/voice_lib/bxml/verbs/play_audio.rb +0 -17
- data/lib/bandwidth/voice_lib/bxml/verbs/record.rb +0 -33
- data/lib/bandwidth/voice_lib/bxml/verbs/redirect.rb +0 -24
- data/lib/bandwidth/voice_lib/bxml/verbs/resume_recording.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/ring.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/verbs/send_dtmf.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/verbs/sip_uri.rb +0 -25
- data/lib/bandwidth/voice_lib/bxml/verbs/speak_sentence.rb +0 -18
- data/lib/bandwidth/voice_lib/bxml/verbs/start_gather.rb +0 -20
- data/lib/bandwidth/voice_lib/bxml/verbs/start_recording.rb +0 -25
- data/lib/bandwidth/voice_lib/bxml/verbs/start_stream.rb +0 -41
- data/lib/bandwidth/voice_lib/bxml/verbs/stop_gather.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/stop_recording.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/stop_stream.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/verbs/stream_param.rb +0 -17
- data/lib/bandwidth/voice_lib/bxml/verbs/tag.rb +0 -13
- data/lib/bandwidth/voice_lib/bxml/verbs/transfer.rb +0 -48
- data/lib/bandwidth/voice_lib/bxml/verbs/xml_verb.rb +0 -26
- data/lib/bandwidth/voice_lib/voice/client.rb +0 -60
- data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +0 -1820
- data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/voice_lib/voice/exceptions/api_error_exception.rb +0 -42
- data/lib/bandwidth/voice_lib/voice/models/answer_fallback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/answer_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/call_callback.rb +0 -343
- data/lib/bandwidth/voice_lib/voice/models/call_recording_metadata.rb +0 -250
- data/lib/bandwidth/voice_lib/voice/models/call_state.rb +0 -301
- data/lib/bandwidth/voice_lib/voice/models/callback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/conference_callback.rb +0 -211
- data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/conference_member_state.rb +0 -103
- data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata.rb +0 -173
- data/lib/bandwidth/voice_lib/voice/models/conference_state.rb +0 -153
- data/lib/bandwidth/voice_lib/voice/models/create_call_request.rb +0 -236
- data/lib/bandwidth/voice_lib/voice/models/create_call_response.rb +0 -266
- data/lib/bandwidth/voice_lib/voice/models/direction_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/disconnect_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/diversion.rb +0 -80
- data/lib/bandwidth/voice_lib/voice/models/fallback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/file_format_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/machine_detection_configuration.rb +0 -231
- data/lib/bandwidth/voice_lib/voice/models/mode_enum.rb +0 -20
- data/lib/bandwidth/voice_lib/voice/models/modify_call_recording_request.rb +0 -48
- data/lib/bandwidth/voice_lib/voice/models/modify_call_request.rb +0 -156
- data/lib/bandwidth/voice_lib/voice/models/modify_conference_request.rb +0 -144
- data/lib/bandwidth/voice_lib/voice/models/redirect_fallback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/redirect_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/state1_enum.rb +0 -20
- data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/status_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/transcribe_recording_request.rb +0 -108
- data/lib/bandwidth/voice_lib/voice/models/transcript.rb +0 -60
- data/lib/bandwidth/voice_lib/voice/models/transcription.rb +0 -80
- data/lib/bandwidth/voice_lib/voice/models/transcription_metadata.rb +0 -89
- data/lib/bandwidth/voice_lib/voice/models/transcription_response.rb +0 -59
- data/lib/bandwidth/voice_lib/voice.rb +0 -48
- data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +0 -18
- data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +0 -60
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +0 -703
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/web_rtc_lib/web_rtc/exceptions/error_exception.rb +0 -37
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/accounts_participants_response.rb +0 -62
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/device_api_version_enum.rb +0 -17
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant.rb +0 -115
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant_subscription.rb +0 -48
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/publish_permission_enum.rb +0 -17
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/session.rb +0 -60
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/subscriptions.rb +0 -71
- data/lib/bandwidth/web_rtc_lib/web_rtc.rb +0 -22
- data/lib/bandwidth.rb +0 -72
- data/test/controllers/controller_test_base.rb +0 -21
- data/test/http_response_catcher.rb +0 -19
- data/test/integration/test_integration.rb +0 -767
- data/test/test_helper.rb +0 -94
|
@@ -1,1820 +0,0 @@
|
|
|
1
|
-
# bandwidth
|
|
2
|
-
#
|
|
3
|
-
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
-
# ( https://apimatic.io ).
|
|
5
|
-
|
|
6
|
-
module Bandwidth
|
|
7
|
-
module Voice
|
|
8
|
-
# APIController
|
|
9
|
-
class APIController < BaseController
|
|
10
|
-
def initialize(config, http_call_back: nil)
|
|
11
|
-
super(config, http_call_back: http_call_back)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# Creates an outbound phone call.
|
|
15
|
-
# @param [String] account_id Required parameter: Example:
|
|
16
|
-
# @param [CreateCallRequest] body Required parameter: Example:
|
|
17
|
-
# @return [CreateCallResponse] response from the API call
|
|
18
|
-
def create_call(account_id,
|
|
19
|
-
body)
|
|
20
|
-
# Prepare query url.
|
|
21
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
22
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls'
|
|
23
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
24
|
-
_query_builder,
|
|
25
|
-
'accountId' => { 'value' => account_id, 'encode' => false }
|
|
26
|
-
)
|
|
27
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
28
|
-
|
|
29
|
-
# Prepare headers.
|
|
30
|
-
_headers = {
|
|
31
|
-
'accept' => 'application/json',
|
|
32
|
-
'content-type' => 'application/json; charset=utf-8'
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
# Prepare and execute HttpRequest.
|
|
36
|
-
_request = config.http_client.post(
|
|
37
|
-
_query_url,
|
|
38
|
-
headers: _headers,
|
|
39
|
-
parameters: body.to_json
|
|
40
|
-
)
|
|
41
|
-
VoiceBasicAuth.apply(config, _request)
|
|
42
|
-
_response = execute_request(_request)
|
|
43
|
-
|
|
44
|
-
# Validate response against endpoint and global error codes.
|
|
45
|
-
case _response.status_code
|
|
46
|
-
when 400
|
|
47
|
-
raise ApiErrorException.new(
|
|
48
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
49
|
-
' fix it before trying again.',
|
|
50
|
-
_response
|
|
51
|
-
)
|
|
52
|
-
when 401
|
|
53
|
-
raise APIException.new(
|
|
54
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
55
|
-
' credentials to authenticate to the API.',
|
|
56
|
-
_response
|
|
57
|
-
)
|
|
58
|
-
when 403
|
|
59
|
-
raise ApiErrorException.new(
|
|
60
|
-
'User unauthorized to perform this action.',
|
|
61
|
-
_response
|
|
62
|
-
)
|
|
63
|
-
when 404
|
|
64
|
-
raise ApiErrorException.new(
|
|
65
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
66
|
-
_response
|
|
67
|
-
)
|
|
68
|
-
when 415
|
|
69
|
-
raise ApiErrorException.new(
|
|
70
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
71
|
-
' please send it to us as `application/json`.',
|
|
72
|
-
_response
|
|
73
|
-
)
|
|
74
|
-
when 429
|
|
75
|
-
raise ApiErrorException.new(
|
|
76
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
77
|
-
' slow your request rate down and try again.',
|
|
78
|
-
_response
|
|
79
|
-
)
|
|
80
|
-
when 500
|
|
81
|
-
raise ApiErrorException.new(
|
|
82
|
-
'Something unexpected happened. Please try again.',
|
|
83
|
-
_response
|
|
84
|
-
)
|
|
85
|
-
end
|
|
86
|
-
validate_response(_response)
|
|
87
|
-
|
|
88
|
-
# Return appropriate response type.
|
|
89
|
-
decoded = APIHelper.json_deserialize(_response.raw_body)
|
|
90
|
-
ApiResponse.new(
|
|
91
|
-
_response, data: CreateCallResponse.from_hash(decoded)
|
|
92
|
-
)
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
# Returns near-realtime metadata about the specified call.
|
|
96
|
-
# @param [String] account_id Required parameter: Example:
|
|
97
|
-
# @param [String] call_id Required parameter: Example:
|
|
98
|
-
# @return [CallState] response from the API call
|
|
99
|
-
def get_call(account_id,
|
|
100
|
-
call_id)
|
|
101
|
-
# Prepare query url.
|
|
102
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
103
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}'
|
|
104
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
105
|
-
_query_builder,
|
|
106
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
107
|
-
'callId' => { 'value' => call_id, 'encode' => false }
|
|
108
|
-
)
|
|
109
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
110
|
-
|
|
111
|
-
# Prepare headers.
|
|
112
|
-
_headers = {
|
|
113
|
-
'accept' => 'application/json'
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
# Prepare and execute HttpRequest.
|
|
117
|
-
_request = config.http_client.get(
|
|
118
|
-
_query_url,
|
|
119
|
-
headers: _headers
|
|
120
|
-
)
|
|
121
|
-
VoiceBasicAuth.apply(config, _request)
|
|
122
|
-
_response = execute_request(_request)
|
|
123
|
-
|
|
124
|
-
# Validate response against endpoint and global error codes.
|
|
125
|
-
case _response.status_code
|
|
126
|
-
when 400
|
|
127
|
-
raise ApiErrorException.new(
|
|
128
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
129
|
-
' fix it before trying again.',
|
|
130
|
-
_response
|
|
131
|
-
)
|
|
132
|
-
when 401
|
|
133
|
-
raise APIException.new(
|
|
134
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
135
|
-
' credentials to authenticate to the API.',
|
|
136
|
-
_response
|
|
137
|
-
)
|
|
138
|
-
when 403
|
|
139
|
-
raise ApiErrorException.new(
|
|
140
|
-
'User unauthorized to perform this action.',
|
|
141
|
-
_response
|
|
142
|
-
)
|
|
143
|
-
when 404
|
|
144
|
-
raise ApiErrorException.new(
|
|
145
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
146
|
-
_response
|
|
147
|
-
)
|
|
148
|
-
when 415
|
|
149
|
-
raise ApiErrorException.new(
|
|
150
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
151
|
-
' please send it to us as `application/json`.',
|
|
152
|
-
_response
|
|
153
|
-
)
|
|
154
|
-
when 429
|
|
155
|
-
raise ApiErrorException.new(
|
|
156
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
157
|
-
' slow your request rate down and try again.',
|
|
158
|
-
_response
|
|
159
|
-
)
|
|
160
|
-
when 500
|
|
161
|
-
raise ApiErrorException.new(
|
|
162
|
-
'Something unexpected happened. Please try again.',
|
|
163
|
-
_response
|
|
164
|
-
)
|
|
165
|
-
end
|
|
166
|
-
validate_response(_response)
|
|
167
|
-
|
|
168
|
-
# Return appropriate response type.
|
|
169
|
-
decoded = APIHelper.json_deserialize(_response.raw_body)
|
|
170
|
-
ApiResponse.new(
|
|
171
|
-
_response, data: CallState.from_hash(decoded)
|
|
172
|
-
)
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
# Interrupts and replaces an active call's BXML document.
|
|
176
|
-
# @param [String] account_id Required parameter: Example:
|
|
177
|
-
# @param [String] call_id Required parameter: Example:
|
|
178
|
-
# @param [ModifyCallRequest] body Required parameter: Example:
|
|
179
|
-
# @return [void] response from the API call
|
|
180
|
-
def modify_call(account_id,
|
|
181
|
-
call_id,
|
|
182
|
-
body)
|
|
183
|
-
# Prepare query url.
|
|
184
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
185
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}'
|
|
186
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
187
|
-
_query_builder,
|
|
188
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
189
|
-
'callId' => { 'value' => call_id, 'encode' => false }
|
|
190
|
-
)
|
|
191
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
192
|
-
|
|
193
|
-
# Prepare headers.
|
|
194
|
-
_headers = {
|
|
195
|
-
'content-type' => 'application/json; charset=utf-8'
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
# Prepare and execute HttpRequest.
|
|
199
|
-
_request = config.http_client.post(
|
|
200
|
-
_query_url,
|
|
201
|
-
headers: _headers,
|
|
202
|
-
parameters: body.to_json
|
|
203
|
-
)
|
|
204
|
-
VoiceBasicAuth.apply(config, _request)
|
|
205
|
-
_response = execute_request(_request)
|
|
206
|
-
|
|
207
|
-
# Validate response against endpoint and global error codes.
|
|
208
|
-
case _response.status_code
|
|
209
|
-
when 400
|
|
210
|
-
raise ApiErrorException.new(
|
|
211
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
212
|
-
' fix it before trying again.',
|
|
213
|
-
_response
|
|
214
|
-
)
|
|
215
|
-
when 401
|
|
216
|
-
raise APIException.new(
|
|
217
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
218
|
-
' credentials to authenticate to the API.',
|
|
219
|
-
_response
|
|
220
|
-
)
|
|
221
|
-
when 403
|
|
222
|
-
raise ApiErrorException.new(
|
|
223
|
-
'User unauthorized to perform this action.',
|
|
224
|
-
_response
|
|
225
|
-
)
|
|
226
|
-
when 404
|
|
227
|
-
raise ApiErrorException.new(
|
|
228
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
229
|
-
_response
|
|
230
|
-
)
|
|
231
|
-
when 415
|
|
232
|
-
raise ApiErrorException.new(
|
|
233
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
234
|
-
' please send it to us as `application/json`.',
|
|
235
|
-
_response
|
|
236
|
-
)
|
|
237
|
-
when 429
|
|
238
|
-
raise ApiErrorException.new(
|
|
239
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
240
|
-
' slow your request rate down and try again.',
|
|
241
|
-
_response
|
|
242
|
-
)
|
|
243
|
-
when 500
|
|
244
|
-
raise ApiErrorException.new(
|
|
245
|
-
'Something unexpected happened. Please try again.',
|
|
246
|
-
_response
|
|
247
|
-
)
|
|
248
|
-
end
|
|
249
|
-
validate_response(_response)
|
|
250
|
-
|
|
251
|
-
# Return appropriate response type.
|
|
252
|
-
ApiResponse.new(_response)
|
|
253
|
-
end
|
|
254
|
-
|
|
255
|
-
# Makes a PUT request to /api/v2/accounts/{accountId}/calls/{callId}/bxml
|
|
256
|
-
# @param [String] account_id Required parameter: Example:
|
|
257
|
-
# @param [String] call_id Required parameter: Example:
|
|
258
|
-
# @param [String] body Required parameter: Example:
|
|
259
|
-
# @return [void] response from the API call
|
|
260
|
-
def modify_call_bxml(account_id,
|
|
261
|
-
call_id,
|
|
262
|
-
body
|
|
263
|
-
)
|
|
264
|
-
# Prepare query url.
|
|
265
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
266
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/bxml'
|
|
267
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
268
|
-
_query_builder,
|
|
269
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
270
|
-
'callId' => { 'value' => call_id, 'encode' => false }
|
|
271
|
-
)
|
|
272
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
273
|
-
|
|
274
|
-
# Prepare headers.
|
|
275
|
-
_headers = {
|
|
276
|
-
'content-type' => 'application/xml; charset=utf-8'
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
# Prepare and execute HttpRequest.
|
|
280
|
-
_request = config.http_client.put(
|
|
281
|
-
_query_url,
|
|
282
|
-
headers: _headers,
|
|
283
|
-
parameters: body.to_json
|
|
284
|
-
)
|
|
285
|
-
VoiceBasicAuth.apply(config, _request)
|
|
286
|
-
_response = execute_request(_request)
|
|
287
|
-
|
|
288
|
-
# Validate response against endpoint and global error codes.
|
|
289
|
-
case _response.status_code
|
|
290
|
-
when 400
|
|
291
|
-
raise ApiErrorException.new(
|
|
292
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
293
|
-
' fix it before trying again.',
|
|
294
|
-
_response
|
|
295
|
-
)
|
|
296
|
-
when 401
|
|
297
|
-
raise APIException.new(
|
|
298
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
299
|
-
' credentials to authenticate to the API.',
|
|
300
|
-
_response
|
|
301
|
-
)
|
|
302
|
-
when 403
|
|
303
|
-
raise ApiErrorException.new(
|
|
304
|
-
'User unauthorized to perform this action.',
|
|
305
|
-
_response
|
|
306
|
-
)
|
|
307
|
-
when 404
|
|
308
|
-
raise ApiErrorException.new(
|
|
309
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
310
|
-
_response
|
|
311
|
-
)
|
|
312
|
-
when 415
|
|
313
|
-
raise ApiErrorException.new(
|
|
314
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
315
|
-
' please send it to us as `application/xml`.',
|
|
316
|
-
_response
|
|
317
|
-
)
|
|
318
|
-
when 429
|
|
319
|
-
raise ApiErrorException.new(
|
|
320
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
321
|
-
' slow your request rate down and try again.',
|
|
322
|
-
_response
|
|
323
|
-
)
|
|
324
|
-
when 500
|
|
325
|
-
raise ApiErrorException.new(
|
|
326
|
-
'Something unexpected happened. Please try again.',
|
|
327
|
-
_response
|
|
328
|
-
)
|
|
329
|
-
end
|
|
330
|
-
validate_response(_response)
|
|
331
|
-
|
|
332
|
-
# Return appropriate response type.
|
|
333
|
-
ApiResponse.new(_response)
|
|
334
|
-
end
|
|
335
|
-
|
|
336
|
-
# Pauses or resumes a recording.
|
|
337
|
-
# @param [String] account_id Required parameter: Example:
|
|
338
|
-
# @param [String] call_id Required parameter: Example:
|
|
339
|
-
# @param [ModifyCallRecordingRequest] body Required parameter: Example:
|
|
340
|
-
# @return [void] response from the API call
|
|
341
|
-
def modify_call_recording_state(account_id,
|
|
342
|
-
call_id,
|
|
343
|
-
body)
|
|
344
|
-
# Prepare query url.
|
|
345
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
346
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recording'
|
|
347
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
348
|
-
_query_builder,
|
|
349
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
350
|
-
'callId' => { 'value' => call_id, 'encode' => false }
|
|
351
|
-
)
|
|
352
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
353
|
-
|
|
354
|
-
# Prepare headers.
|
|
355
|
-
_headers = {
|
|
356
|
-
'content-type' => 'application/json; charset=utf-8'
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
# Prepare and execute HttpRequest.
|
|
360
|
-
_request = config.http_client.put(
|
|
361
|
-
_query_url,
|
|
362
|
-
headers: _headers,
|
|
363
|
-
parameters: body.to_json
|
|
364
|
-
)
|
|
365
|
-
VoiceBasicAuth.apply(config, _request)
|
|
366
|
-
_response = execute_request(_request)
|
|
367
|
-
|
|
368
|
-
# Validate response against endpoint and global error codes.
|
|
369
|
-
case _response.status_code
|
|
370
|
-
when 400
|
|
371
|
-
raise ApiErrorException.new(
|
|
372
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
373
|
-
' fix it before trying again.',
|
|
374
|
-
_response
|
|
375
|
-
)
|
|
376
|
-
when 401
|
|
377
|
-
raise APIException.new(
|
|
378
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
379
|
-
' credentials to authenticate to the API.',
|
|
380
|
-
_response
|
|
381
|
-
)
|
|
382
|
-
when 403
|
|
383
|
-
raise ApiErrorException.new(
|
|
384
|
-
'User unauthorized to perform this action.',
|
|
385
|
-
_response
|
|
386
|
-
)
|
|
387
|
-
when 404
|
|
388
|
-
raise ApiErrorException.new(
|
|
389
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
390
|
-
_response
|
|
391
|
-
)
|
|
392
|
-
when 415
|
|
393
|
-
raise ApiErrorException.new(
|
|
394
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
395
|
-
' please send it to us as `application/json`.',
|
|
396
|
-
_response
|
|
397
|
-
)
|
|
398
|
-
when 429
|
|
399
|
-
raise ApiErrorException.new(
|
|
400
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
401
|
-
' slow your request rate down and try again.',
|
|
402
|
-
_response
|
|
403
|
-
)
|
|
404
|
-
when 500
|
|
405
|
-
raise ApiErrorException.new(
|
|
406
|
-
'Something unexpected happened. Please try again.',
|
|
407
|
-
_response
|
|
408
|
-
)
|
|
409
|
-
end
|
|
410
|
-
validate_response(_response)
|
|
411
|
-
|
|
412
|
-
# Return appropriate response type.
|
|
413
|
-
ApiResponse.new(_response)
|
|
414
|
-
end
|
|
415
|
-
|
|
416
|
-
# Returns a (potentially empty) list of metadata for the recordings that
|
|
417
|
-
# took place during the specified call.
|
|
418
|
-
# @param [String] account_id Required parameter: Example:
|
|
419
|
-
# @param [String] call_id Required parameter: Example:
|
|
420
|
-
# @return [List of CallRecordingMetadata] response from the API call
|
|
421
|
-
def get_call_recordings(account_id,
|
|
422
|
-
call_id)
|
|
423
|
-
# Prepare query url.
|
|
424
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
425
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings'
|
|
426
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
427
|
-
_query_builder,
|
|
428
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
429
|
-
'callId' => { 'value' => call_id, 'encode' => false }
|
|
430
|
-
)
|
|
431
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
432
|
-
|
|
433
|
-
# Prepare headers.
|
|
434
|
-
_headers = {
|
|
435
|
-
'accept' => 'application/json'
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
# Prepare and execute HttpRequest.
|
|
439
|
-
_request = config.http_client.get(
|
|
440
|
-
_query_url,
|
|
441
|
-
headers: _headers
|
|
442
|
-
)
|
|
443
|
-
VoiceBasicAuth.apply(config, _request)
|
|
444
|
-
_response = execute_request(_request)
|
|
445
|
-
|
|
446
|
-
# Validate response against endpoint and global error codes.
|
|
447
|
-
case _response.status_code
|
|
448
|
-
when 400
|
|
449
|
-
raise ApiErrorException.new(
|
|
450
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
451
|
-
' fix it before trying again.',
|
|
452
|
-
_response
|
|
453
|
-
)
|
|
454
|
-
when 401
|
|
455
|
-
raise APIException.new(
|
|
456
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
457
|
-
' credentials to authenticate to the API.',
|
|
458
|
-
_response
|
|
459
|
-
)
|
|
460
|
-
when 403
|
|
461
|
-
raise ApiErrorException.new(
|
|
462
|
-
'User unauthorized to perform this action.',
|
|
463
|
-
_response
|
|
464
|
-
)
|
|
465
|
-
when 404
|
|
466
|
-
raise ApiErrorException.new(
|
|
467
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
468
|
-
_response
|
|
469
|
-
)
|
|
470
|
-
when 415
|
|
471
|
-
raise ApiErrorException.new(
|
|
472
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
473
|
-
' please send it to us as `application/json`.',
|
|
474
|
-
_response
|
|
475
|
-
)
|
|
476
|
-
when 429
|
|
477
|
-
raise ApiErrorException.new(
|
|
478
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
479
|
-
' slow your request rate down and try again.',
|
|
480
|
-
_response
|
|
481
|
-
)
|
|
482
|
-
when 500
|
|
483
|
-
raise ApiErrorException.new(
|
|
484
|
-
'Something unexpected happened. Please try again.',
|
|
485
|
-
_response
|
|
486
|
-
)
|
|
487
|
-
end
|
|
488
|
-
validate_response(_response)
|
|
489
|
-
|
|
490
|
-
# Return appropriate response type.
|
|
491
|
-
decoded = APIHelper.json_deserialize(_response.raw_body)
|
|
492
|
-
ApiResponse.new(
|
|
493
|
-
_response,
|
|
494
|
-
data: decoded.map { |element| CallRecordingMetadata.from_hash(element) }
|
|
495
|
-
)
|
|
496
|
-
end
|
|
497
|
-
|
|
498
|
-
# Returns metadata for the specified recording.
|
|
499
|
-
# @param [String] account_id Required parameter: Example:
|
|
500
|
-
# @param [String] call_id Required parameter: Example:
|
|
501
|
-
# @param [String] recording_id Required parameter: Example:
|
|
502
|
-
# @return [CallRecordingMetadata] response from the API call
|
|
503
|
-
def get_call_recording(account_id,
|
|
504
|
-
call_id,
|
|
505
|
-
recording_id)
|
|
506
|
-
# Prepare query url.
|
|
507
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
508
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}'
|
|
509
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
510
|
-
_query_builder,
|
|
511
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
512
|
-
'callId' => { 'value' => call_id, 'encode' => false },
|
|
513
|
-
'recordingId' => { 'value' => recording_id, 'encode' => false }
|
|
514
|
-
)
|
|
515
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
516
|
-
|
|
517
|
-
# Prepare headers.
|
|
518
|
-
_headers = {
|
|
519
|
-
'accept' => 'application/json'
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
# Prepare and execute HttpRequest.
|
|
523
|
-
_request = config.http_client.get(
|
|
524
|
-
_query_url,
|
|
525
|
-
headers: _headers
|
|
526
|
-
)
|
|
527
|
-
VoiceBasicAuth.apply(config, _request)
|
|
528
|
-
_response = execute_request(_request)
|
|
529
|
-
|
|
530
|
-
# Validate response against endpoint and global error codes.
|
|
531
|
-
case _response.status_code
|
|
532
|
-
when 400
|
|
533
|
-
raise ApiErrorException.new(
|
|
534
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
535
|
-
' fix it before trying again.',
|
|
536
|
-
_response
|
|
537
|
-
)
|
|
538
|
-
when 401
|
|
539
|
-
raise APIException.new(
|
|
540
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
541
|
-
' credentials to authenticate to the API.',
|
|
542
|
-
_response
|
|
543
|
-
)
|
|
544
|
-
when 403
|
|
545
|
-
raise ApiErrorException.new(
|
|
546
|
-
'User unauthorized to perform this action.',
|
|
547
|
-
_response
|
|
548
|
-
)
|
|
549
|
-
when 404
|
|
550
|
-
raise ApiErrorException.new(
|
|
551
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
552
|
-
_response
|
|
553
|
-
)
|
|
554
|
-
when 415
|
|
555
|
-
raise ApiErrorException.new(
|
|
556
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
557
|
-
' please send it to us as `application/json`.',
|
|
558
|
-
_response
|
|
559
|
-
)
|
|
560
|
-
when 429
|
|
561
|
-
raise ApiErrorException.new(
|
|
562
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
563
|
-
' slow your request rate down and try again.',
|
|
564
|
-
_response
|
|
565
|
-
)
|
|
566
|
-
when 500
|
|
567
|
-
raise ApiErrorException.new(
|
|
568
|
-
'Something unexpected happened. Please try again.',
|
|
569
|
-
_response
|
|
570
|
-
)
|
|
571
|
-
end
|
|
572
|
-
validate_response(_response)
|
|
573
|
-
|
|
574
|
-
# Return appropriate response type.
|
|
575
|
-
decoded = APIHelper.json_deserialize(_response.raw_body)
|
|
576
|
-
ApiResponse.new(
|
|
577
|
-
_response, data: CallRecordingMetadata.from_hash(decoded)
|
|
578
|
-
)
|
|
579
|
-
end
|
|
580
|
-
|
|
581
|
-
# Deletes the specified recording.
|
|
582
|
-
# @param [String] account_id Required parameter: Example:
|
|
583
|
-
# @param [String] call_id Required parameter: Example:
|
|
584
|
-
# @param [String] recording_id Required parameter: Example:
|
|
585
|
-
# @return [void] response from the API call
|
|
586
|
-
def delete_recording(account_id,
|
|
587
|
-
call_id,
|
|
588
|
-
recording_id)
|
|
589
|
-
# Prepare query url.
|
|
590
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
591
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}'
|
|
592
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
593
|
-
_query_builder,
|
|
594
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
595
|
-
'callId' => { 'value' => call_id, 'encode' => false },
|
|
596
|
-
'recordingId' => { 'value' => recording_id, 'encode' => false }
|
|
597
|
-
)
|
|
598
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
599
|
-
|
|
600
|
-
# Prepare and execute HttpRequest.
|
|
601
|
-
_request = config.http_client.delete(
|
|
602
|
-
_query_url
|
|
603
|
-
)
|
|
604
|
-
VoiceBasicAuth.apply(config, _request)
|
|
605
|
-
_response = execute_request(_request)
|
|
606
|
-
|
|
607
|
-
# Validate response against endpoint and global error codes.
|
|
608
|
-
case _response.status_code
|
|
609
|
-
when 400
|
|
610
|
-
raise ApiErrorException.new(
|
|
611
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
612
|
-
' fix it before trying again.',
|
|
613
|
-
_response
|
|
614
|
-
)
|
|
615
|
-
when 401
|
|
616
|
-
raise APIException.new(
|
|
617
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
618
|
-
' credentials to authenticate to the API.',
|
|
619
|
-
_response
|
|
620
|
-
)
|
|
621
|
-
when 403
|
|
622
|
-
raise ApiErrorException.new(
|
|
623
|
-
'User unauthorized to perform this action.',
|
|
624
|
-
_response
|
|
625
|
-
)
|
|
626
|
-
when 404
|
|
627
|
-
raise ApiErrorException.new(
|
|
628
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
629
|
-
_response
|
|
630
|
-
)
|
|
631
|
-
when 415
|
|
632
|
-
raise ApiErrorException.new(
|
|
633
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
634
|
-
' please send it to us as `application/json`.',
|
|
635
|
-
_response
|
|
636
|
-
)
|
|
637
|
-
when 429
|
|
638
|
-
raise ApiErrorException.new(
|
|
639
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
640
|
-
' slow your request rate down and try again.',
|
|
641
|
-
_response
|
|
642
|
-
)
|
|
643
|
-
when 500
|
|
644
|
-
raise ApiErrorException.new(
|
|
645
|
-
'Something unexpected happened. Please try again.',
|
|
646
|
-
_response
|
|
647
|
-
)
|
|
648
|
-
end
|
|
649
|
-
validate_response(_response)
|
|
650
|
-
|
|
651
|
-
# Return appropriate response type.
|
|
652
|
-
ApiResponse.new(_response)
|
|
653
|
-
end
|
|
654
|
-
|
|
655
|
-
# Downloads the specified recording.
|
|
656
|
-
# @param [String] account_id Required parameter: Example:
|
|
657
|
-
# @param [String] call_id Required parameter: Example:
|
|
658
|
-
# @param [String] recording_id Required parameter: Example:
|
|
659
|
-
# @return [Mixed] response from the API call
|
|
660
|
-
def get_download_call_recording(account_id,
|
|
661
|
-
call_id,
|
|
662
|
-
recording_id)
|
|
663
|
-
# Prepare query url.
|
|
664
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
665
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media'
|
|
666
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
667
|
-
_query_builder,
|
|
668
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
669
|
-
'callId' => { 'value' => call_id, 'encode' => false },
|
|
670
|
-
'recordingId' => { 'value' => recording_id, 'encode' => false }
|
|
671
|
-
)
|
|
672
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
673
|
-
|
|
674
|
-
# Prepare and execute HttpRequest.
|
|
675
|
-
_request = config.http_client.get(
|
|
676
|
-
_query_url
|
|
677
|
-
)
|
|
678
|
-
VoiceBasicAuth.apply(config, _request)
|
|
679
|
-
_response = execute_request(_request)
|
|
680
|
-
|
|
681
|
-
# Validate response against endpoint and global error codes.
|
|
682
|
-
case _response.status_code
|
|
683
|
-
when 400
|
|
684
|
-
raise ApiErrorException.new(
|
|
685
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
686
|
-
' fix it before trying again.',
|
|
687
|
-
_response
|
|
688
|
-
)
|
|
689
|
-
when 401
|
|
690
|
-
raise APIException.new(
|
|
691
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
692
|
-
' credentials to authenticate to the API.',
|
|
693
|
-
_response
|
|
694
|
-
)
|
|
695
|
-
when 403
|
|
696
|
-
raise ApiErrorException.new(
|
|
697
|
-
'User unauthorized to perform this action.',
|
|
698
|
-
_response
|
|
699
|
-
)
|
|
700
|
-
when 404
|
|
701
|
-
raise ApiErrorException.new(
|
|
702
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
703
|
-
_response
|
|
704
|
-
)
|
|
705
|
-
when 415
|
|
706
|
-
raise ApiErrorException.new(
|
|
707
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
708
|
-
' please send it to us as `application/json`.',
|
|
709
|
-
_response
|
|
710
|
-
)
|
|
711
|
-
when 429
|
|
712
|
-
raise ApiErrorException.new(
|
|
713
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
714
|
-
' slow your request rate down and try again.',
|
|
715
|
-
_response
|
|
716
|
-
)
|
|
717
|
-
when 500
|
|
718
|
-
raise ApiErrorException.new(
|
|
719
|
-
'Something unexpected happened. Please try again.',
|
|
720
|
-
_response
|
|
721
|
-
)
|
|
722
|
-
end
|
|
723
|
-
validate_response(_response)
|
|
724
|
-
|
|
725
|
-
# Return appropriate response type.
|
|
726
|
-
ApiResponse.new(
|
|
727
|
-
_response, data: _response.raw_body
|
|
728
|
-
)
|
|
729
|
-
end
|
|
730
|
-
|
|
731
|
-
# Deletes the specified recording's media.
|
|
732
|
-
# @param [String] account_id Required parameter: Example:
|
|
733
|
-
# @param [String] call_id Required parameter: Example:
|
|
734
|
-
# @param [String] recording_id Required parameter: Example:
|
|
735
|
-
# @return [void] response from the API call
|
|
736
|
-
def delete_recording_media(account_id,
|
|
737
|
-
call_id,
|
|
738
|
-
recording_id)
|
|
739
|
-
# Prepare query url.
|
|
740
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
741
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media'
|
|
742
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
743
|
-
_query_builder,
|
|
744
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
745
|
-
'callId' => { 'value' => call_id, 'encode' => false },
|
|
746
|
-
'recordingId' => { 'value' => recording_id, 'encode' => false }
|
|
747
|
-
)
|
|
748
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
749
|
-
|
|
750
|
-
# Prepare and execute HttpRequest.
|
|
751
|
-
_request = config.http_client.delete(
|
|
752
|
-
_query_url
|
|
753
|
-
)
|
|
754
|
-
VoiceBasicAuth.apply(config, _request)
|
|
755
|
-
_response = execute_request(_request)
|
|
756
|
-
|
|
757
|
-
# Validate response against endpoint and global error codes.
|
|
758
|
-
case _response.status_code
|
|
759
|
-
when 400
|
|
760
|
-
raise ApiErrorException.new(
|
|
761
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
762
|
-
' fix it before trying again.',
|
|
763
|
-
_response
|
|
764
|
-
)
|
|
765
|
-
when 401
|
|
766
|
-
raise APIException.new(
|
|
767
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
768
|
-
' credentials to authenticate to the API.',
|
|
769
|
-
_response
|
|
770
|
-
)
|
|
771
|
-
when 403
|
|
772
|
-
raise ApiErrorException.new(
|
|
773
|
-
'User unauthorized to perform this action.',
|
|
774
|
-
_response
|
|
775
|
-
)
|
|
776
|
-
when 404
|
|
777
|
-
raise ApiErrorException.new(
|
|
778
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
779
|
-
_response
|
|
780
|
-
)
|
|
781
|
-
when 415
|
|
782
|
-
raise ApiErrorException.new(
|
|
783
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
784
|
-
' please send it to us as `application/json`.',
|
|
785
|
-
_response
|
|
786
|
-
)
|
|
787
|
-
when 429
|
|
788
|
-
raise ApiErrorException.new(
|
|
789
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
790
|
-
' slow your request rate down and try again.',
|
|
791
|
-
_response
|
|
792
|
-
)
|
|
793
|
-
when 500
|
|
794
|
-
raise ApiErrorException.new(
|
|
795
|
-
'Something unexpected happened. Please try again.',
|
|
796
|
-
_response
|
|
797
|
-
)
|
|
798
|
-
end
|
|
799
|
-
validate_response(_response)
|
|
800
|
-
|
|
801
|
-
# Return appropriate response type.
|
|
802
|
-
ApiResponse.new(_response)
|
|
803
|
-
end
|
|
804
|
-
|
|
805
|
-
# Downloads the specified transcription.
|
|
806
|
-
# @param [String] account_id Required parameter: Example:
|
|
807
|
-
# @param [String] call_id Required parameter: Example:
|
|
808
|
-
# @param [String] recording_id Required parameter: Example:
|
|
809
|
-
# @return [TranscriptionResponse] response from the API call
|
|
810
|
-
def get_call_transcription(account_id,
|
|
811
|
-
call_id,
|
|
812
|
-
recording_id)
|
|
813
|
-
# Prepare query url.
|
|
814
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
815
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription'
|
|
816
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
817
|
-
_query_builder,
|
|
818
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
819
|
-
'callId' => { 'value' => call_id, 'encode' => false },
|
|
820
|
-
'recordingId' => { 'value' => recording_id, 'encode' => false }
|
|
821
|
-
)
|
|
822
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
823
|
-
|
|
824
|
-
# Prepare headers.
|
|
825
|
-
_headers = {
|
|
826
|
-
'accept' => 'application/json'
|
|
827
|
-
}
|
|
828
|
-
|
|
829
|
-
# Prepare and execute HttpRequest.
|
|
830
|
-
_request = config.http_client.get(
|
|
831
|
-
_query_url,
|
|
832
|
-
headers: _headers
|
|
833
|
-
)
|
|
834
|
-
VoiceBasicAuth.apply(config, _request)
|
|
835
|
-
_response = execute_request(_request)
|
|
836
|
-
|
|
837
|
-
# Validate response against endpoint and global error codes.
|
|
838
|
-
case _response.status_code
|
|
839
|
-
when 400
|
|
840
|
-
raise ApiErrorException.new(
|
|
841
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
842
|
-
' fix it before trying again.',
|
|
843
|
-
_response
|
|
844
|
-
)
|
|
845
|
-
when 401
|
|
846
|
-
raise APIException.new(
|
|
847
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
848
|
-
' credentials to authenticate to the API.',
|
|
849
|
-
_response
|
|
850
|
-
)
|
|
851
|
-
when 403
|
|
852
|
-
raise ApiErrorException.new(
|
|
853
|
-
'User unauthorized to perform this action.',
|
|
854
|
-
_response
|
|
855
|
-
)
|
|
856
|
-
when 404
|
|
857
|
-
raise ApiErrorException.new(
|
|
858
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
859
|
-
_response
|
|
860
|
-
)
|
|
861
|
-
when 415
|
|
862
|
-
raise ApiErrorException.new(
|
|
863
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
864
|
-
' please send it to us as `application/json`.',
|
|
865
|
-
_response
|
|
866
|
-
)
|
|
867
|
-
when 429
|
|
868
|
-
raise ApiErrorException.new(
|
|
869
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
870
|
-
' slow your request rate down and try again.',
|
|
871
|
-
_response
|
|
872
|
-
)
|
|
873
|
-
when 500
|
|
874
|
-
raise ApiErrorException.new(
|
|
875
|
-
'Something unexpected happened. Please try again.',
|
|
876
|
-
_response
|
|
877
|
-
)
|
|
878
|
-
end
|
|
879
|
-
validate_response(_response)
|
|
880
|
-
|
|
881
|
-
# Return appropriate response type.
|
|
882
|
-
decoded = APIHelper.json_deserialize(_response.raw_body)
|
|
883
|
-
ApiResponse.new(
|
|
884
|
-
_response, data: TranscriptionResponse.from_hash(decoded)
|
|
885
|
-
)
|
|
886
|
-
end
|
|
887
|
-
|
|
888
|
-
# Requests that the specified recording be transcribed.
|
|
889
|
-
# @param [String] account_id Required parameter: Example:
|
|
890
|
-
# @param [String] call_id Required parameter: Example:
|
|
891
|
-
# @param [String] recording_id Required parameter: Example:
|
|
892
|
-
# @param [TranscribeRecordingRequest] body Required parameter: Example:
|
|
893
|
-
# @return [void] response from the API call
|
|
894
|
-
def create_transcribe_call_recording(account_id,
|
|
895
|
-
call_id,
|
|
896
|
-
recording_id,
|
|
897
|
-
body)
|
|
898
|
-
# Prepare query url.
|
|
899
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
900
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription'
|
|
901
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
902
|
-
_query_builder,
|
|
903
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
904
|
-
'callId' => { 'value' => call_id, 'encode' => false },
|
|
905
|
-
'recordingId' => { 'value' => recording_id, 'encode' => false }
|
|
906
|
-
)
|
|
907
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
908
|
-
|
|
909
|
-
# Prepare headers.
|
|
910
|
-
_headers = {
|
|
911
|
-
'content-type' => 'application/json; charset=utf-8'
|
|
912
|
-
}
|
|
913
|
-
|
|
914
|
-
# Prepare and execute HttpRequest.
|
|
915
|
-
_request = config.http_client.post(
|
|
916
|
-
_query_url,
|
|
917
|
-
headers: _headers,
|
|
918
|
-
parameters: body.to_json
|
|
919
|
-
)
|
|
920
|
-
VoiceBasicAuth.apply(config, _request)
|
|
921
|
-
_response = execute_request(_request)
|
|
922
|
-
|
|
923
|
-
# Validate response against endpoint and global error codes.
|
|
924
|
-
case _response.status_code
|
|
925
|
-
when 400
|
|
926
|
-
raise ApiErrorException.new(
|
|
927
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
928
|
-
' fix it before trying again.',
|
|
929
|
-
_response
|
|
930
|
-
)
|
|
931
|
-
when 401
|
|
932
|
-
raise APIException.new(
|
|
933
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
934
|
-
' credentials to authenticate to the API.',
|
|
935
|
-
_response
|
|
936
|
-
)
|
|
937
|
-
when 403
|
|
938
|
-
raise ApiErrorException.new(
|
|
939
|
-
'User unauthorized to perform this action.',
|
|
940
|
-
_response
|
|
941
|
-
)
|
|
942
|
-
when 404
|
|
943
|
-
raise ApiErrorException.new(
|
|
944
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
945
|
-
_response
|
|
946
|
-
)
|
|
947
|
-
when 410
|
|
948
|
-
raise ApiErrorException.new(
|
|
949
|
-
'The media for this recording has been deleted, so we can\'t' \
|
|
950
|
-
' transcribe it',
|
|
951
|
-
_response
|
|
952
|
-
)
|
|
953
|
-
when 415
|
|
954
|
-
raise ApiErrorException.new(
|
|
955
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
956
|
-
' please send it to us as `application/json`.',
|
|
957
|
-
_response
|
|
958
|
-
)
|
|
959
|
-
when 429
|
|
960
|
-
raise ApiErrorException.new(
|
|
961
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
962
|
-
' slow your request rate down and try again.',
|
|
963
|
-
_response
|
|
964
|
-
)
|
|
965
|
-
when 500
|
|
966
|
-
raise ApiErrorException.new(
|
|
967
|
-
'Something unexpected happened. Please try again.',
|
|
968
|
-
_response
|
|
969
|
-
)
|
|
970
|
-
end
|
|
971
|
-
validate_response(_response)
|
|
972
|
-
|
|
973
|
-
# Return appropriate response type.
|
|
974
|
-
ApiResponse.new(_response)
|
|
975
|
-
end
|
|
976
|
-
|
|
977
|
-
# Deletes the specified recording's transcription.
|
|
978
|
-
# @param [String] account_id Required parameter: Example:
|
|
979
|
-
# @param [String] call_id Required parameter: Example:
|
|
980
|
-
# @param [String] recording_id Required parameter: Example:
|
|
981
|
-
# @return [void] response from the API call
|
|
982
|
-
def delete_call_transcription(account_id,
|
|
983
|
-
call_id,
|
|
984
|
-
recording_id)
|
|
985
|
-
# Prepare query url.
|
|
986
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
987
|
-
_query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription'
|
|
988
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
989
|
-
_query_builder,
|
|
990
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
991
|
-
'callId' => { 'value' => call_id, 'encode' => false },
|
|
992
|
-
'recordingId' => { 'value' => recording_id, 'encode' => false }
|
|
993
|
-
)
|
|
994
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
995
|
-
|
|
996
|
-
# Prepare and execute HttpRequest.
|
|
997
|
-
_request = config.http_client.delete(
|
|
998
|
-
_query_url
|
|
999
|
-
)
|
|
1000
|
-
VoiceBasicAuth.apply(config, _request)
|
|
1001
|
-
_response = execute_request(_request)
|
|
1002
|
-
|
|
1003
|
-
# Validate response against endpoint and global error codes.
|
|
1004
|
-
case _response.status_code
|
|
1005
|
-
when 400
|
|
1006
|
-
raise ApiErrorException.new(
|
|
1007
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
1008
|
-
' fix it before trying again.',
|
|
1009
|
-
_response
|
|
1010
|
-
)
|
|
1011
|
-
when 401
|
|
1012
|
-
raise APIException.new(
|
|
1013
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
1014
|
-
' credentials to authenticate to the API.',
|
|
1015
|
-
_response
|
|
1016
|
-
)
|
|
1017
|
-
when 403
|
|
1018
|
-
raise ApiErrorException.new(
|
|
1019
|
-
'User unauthorized to perform this action.',
|
|
1020
|
-
_response
|
|
1021
|
-
)
|
|
1022
|
-
when 404
|
|
1023
|
-
raise ApiErrorException.new(
|
|
1024
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
1025
|
-
_response
|
|
1026
|
-
)
|
|
1027
|
-
when 415
|
|
1028
|
-
raise ApiErrorException.new(
|
|
1029
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
1030
|
-
' please send it to us as `application/json`.',
|
|
1031
|
-
_response
|
|
1032
|
-
)
|
|
1033
|
-
when 429
|
|
1034
|
-
raise ApiErrorException.new(
|
|
1035
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
1036
|
-
' slow your request rate down and try again.',
|
|
1037
|
-
_response
|
|
1038
|
-
)
|
|
1039
|
-
when 500
|
|
1040
|
-
raise ApiErrorException.new(
|
|
1041
|
-
'Something unexpected happened. Please try again.',
|
|
1042
|
-
_response
|
|
1043
|
-
)
|
|
1044
|
-
end
|
|
1045
|
-
validate_response(_response)
|
|
1046
|
-
|
|
1047
|
-
# Return appropriate response type.
|
|
1048
|
-
ApiResponse.new(_response)
|
|
1049
|
-
end
|
|
1050
|
-
|
|
1051
|
-
# Returns information about the conferences in the account.
|
|
1052
|
-
# @param [String] account_id Required parameter: Example:
|
|
1053
|
-
# @param [String] name Optional parameter: Example:
|
|
1054
|
-
# @param [String] min_created_time Optional parameter: Example:
|
|
1055
|
-
# @param [String] max_created_time Optional parameter: Example:
|
|
1056
|
-
# @param [Integer] page_size Optional parameter: Example:1000
|
|
1057
|
-
# @param [String] page_token Optional parameter: Example:
|
|
1058
|
-
# @return [List of ConferenceState] response from the API call
|
|
1059
|
-
def get_conferences(account_id,
|
|
1060
|
-
name: nil,
|
|
1061
|
-
min_created_time: nil,
|
|
1062
|
-
max_created_time: nil,
|
|
1063
|
-
page_size: 1000,
|
|
1064
|
-
page_token: nil)
|
|
1065
|
-
# Prepare query url.
|
|
1066
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
1067
|
-
_query_builder << '/api/v2/accounts/{accountId}/conferences'
|
|
1068
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
1069
|
-
_query_builder,
|
|
1070
|
-
'accountId' => { 'value' => account_id, 'encode' => false }
|
|
1071
|
-
)
|
|
1072
|
-
_query_builder = APIHelper.append_url_with_query_parameters(
|
|
1073
|
-
_query_builder,
|
|
1074
|
-
'name' => name,
|
|
1075
|
-
'minCreatedTime' => min_created_time,
|
|
1076
|
-
'maxCreatedTime' => max_created_time,
|
|
1077
|
-
'pageSize' => page_size,
|
|
1078
|
-
'pageToken' => page_token
|
|
1079
|
-
)
|
|
1080
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
1081
|
-
|
|
1082
|
-
# Prepare headers.
|
|
1083
|
-
_headers = {
|
|
1084
|
-
'accept' => 'application/json'
|
|
1085
|
-
}
|
|
1086
|
-
|
|
1087
|
-
# Prepare and execute HttpRequest.
|
|
1088
|
-
_request = config.http_client.get(
|
|
1089
|
-
_query_url,
|
|
1090
|
-
headers: _headers
|
|
1091
|
-
)
|
|
1092
|
-
VoiceBasicAuth.apply(config, _request)
|
|
1093
|
-
_response = execute_request(_request)
|
|
1094
|
-
|
|
1095
|
-
# Validate response against endpoint and global error codes.
|
|
1096
|
-
case _response.status_code
|
|
1097
|
-
when 400
|
|
1098
|
-
raise ApiErrorException.new(
|
|
1099
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
1100
|
-
' fix it before trying again.',
|
|
1101
|
-
_response
|
|
1102
|
-
)
|
|
1103
|
-
when 401
|
|
1104
|
-
raise APIException.new(
|
|
1105
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
1106
|
-
' credentials to authenticate to the API.',
|
|
1107
|
-
_response
|
|
1108
|
-
)
|
|
1109
|
-
when 403
|
|
1110
|
-
raise ApiErrorException.new(
|
|
1111
|
-
'User unauthorized to perform this action.',
|
|
1112
|
-
_response
|
|
1113
|
-
)
|
|
1114
|
-
when 404
|
|
1115
|
-
raise ApiErrorException.new(
|
|
1116
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
1117
|
-
_response
|
|
1118
|
-
)
|
|
1119
|
-
when 415
|
|
1120
|
-
raise ApiErrorException.new(
|
|
1121
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
1122
|
-
' please send it to us as `application/json`.',
|
|
1123
|
-
_response
|
|
1124
|
-
)
|
|
1125
|
-
when 429
|
|
1126
|
-
raise ApiErrorException.new(
|
|
1127
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
1128
|
-
' slow your request rate down and try again.',
|
|
1129
|
-
_response
|
|
1130
|
-
)
|
|
1131
|
-
when 500
|
|
1132
|
-
raise ApiErrorException.new(
|
|
1133
|
-
'Something unexpected happened. Please try again.',
|
|
1134
|
-
_response
|
|
1135
|
-
)
|
|
1136
|
-
end
|
|
1137
|
-
validate_response(_response)
|
|
1138
|
-
|
|
1139
|
-
# Return appropriate response type.
|
|
1140
|
-
decoded = APIHelper.json_deserialize(_response.raw_body)
|
|
1141
|
-
ApiResponse.new(
|
|
1142
|
-
_response,
|
|
1143
|
-
data: decoded.map { |element| ConferenceState.from_hash(element) }
|
|
1144
|
-
)
|
|
1145
|
-
end
|
|
1146
|
-
|
|
1147
|
-
# Returns information about the specified conference.
|
|
1148
|
-
# @param [String] account_id Required parameter: Example:
|
|
1149
|
-
# @param [String] conference_id Required parameter: Example:
|
|
1150
|
-
# @return [ConferenceState] response from the API call
|
|
1151
|
-
def get_conference(account_id,
|
|
1152
|
-
conference_id)
|
|
1153
|
-
# Prepare query url.
|
|
1154
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
1155
|
-
_query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}'
|
|
1156
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
1157
|
-
_query_builder,
|
|
1158
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
1159
|
-
'conferenceId' => { 'value' => conference_id, 'encode' => false }
|
|
1160
|
-
)
|
|
1161
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
1162
|
-
|
|
1163
|
-
# Prepare headers.
|
|
1164
|
-
_headers = {
|
|
1165
|
-
'accept' => 'application/json'
|
|
1166
|
-
}
|
|
1167
|
-
|
|
1168
|
-
# Prepare and execute HttpRequest.
|
|
1169
|
-
_request = config.http_client.get(
|
|
1170
|
-
_query_url,
|
|
1171
|
-
headers: _headers
|
|
1172
|
-
)
|
|
1173
|
-
VoiceBasicAuth.apply(config, _request)
|
|
1174
|
-
_response = execute_request(_request)
|
|
1175
|
-
|
|
1176
|
-
# Validate response against endpoint and global error codes.
|
|
1177
|
-
case _response.status_code
|
|
1178
|
-
when 400
|
|
1179
|
-
raise ApiErrorException.new(
|
|
1180
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
1181
|
-
' fix it before trying again.',
|
|
1182
|
-
_response
|
|
1183
|
-
)
|
|
1184
|
-
when 401
|
|
1185
|
-
raise APIException.new(
|
|
1186
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
1187
|
-
' credentials to authenticate to the API.',
|
|
1188
|
-
_response
|
|
1189
|
-
)
|
|
1190
|
-
when 403
|
|
1191
|
-
raise ApiErrorException.new(
|
|
1192
|
-
'User unauthorized to perform this action.',
|
|
1193
|
-
_response
|
|
1194
|
-
)
|
|
1195
|
-
when 404
|
|
1196
|
-
raise ApiErrorException.new(
|
|
1197
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
1198
|
-
_response
|
|
1199
|
-
)
|
|
1200
|
-
when 415
|
|
1201
|
-
raise ApiErrorException.new(
|
|
1202
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
1203
|
-
' please send it to us as `application/json`.',
|
|
1204
|
-
_response
|
|
1205
|
-
)
|
|
1206
|
-
when 429
|
|
1207
|
-
raise ApiErrorException.new(
|
|
1208
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
1209
|
-
' slow your request rate down and try again.',
|
|
1210
|
-
_response
|
|
1211
|
-
)
|
|
1212
|
-
when 500
|
|
1213
|
-
raise ApiErrorException.new(
|
|
1214
|
-
'Something unexpected happened. Please try again.',
|
|
1215
|
-
_response
|
|
1216
|
-
)
|
|
1217
|
-
end
|
|
1218
|
-
validate_response(_response)
|
|
1219
|
-
|
|
1220
|
-
# Return appropriate response type.
|
|
1221
|
-
decoded = APIHelper.json_deserialize(_response.raw_body)
|
|
1222
|
-
ApiResponse.new(
|
|
1223
|
-
_response, data: ConferenceState.from_hash(decoded)
|
|
1224
|
-
)
|
|
1225
|
-
end
|
|
1226
|
-
|
|
1227
|
-
# Modify the conference state.
|
|
1228
|
-
# @param [String] account_id Required parameter: Example:
|
|
1229
|
-
# @param [String] conference_id Required parameter: Example:
|
|
1230
|
-
# @param [ModifyConferenceRequest] body Required parameter: Example:
|
|
1231
|
-
# @return [void] response from the API call
|
|
1232
|
-
def modify_conference(account_id,
|
|
1233
|
-
conference_id,
|
|
1234
|
-
body)
|
|
1235
|
-
# Prepare query url.
|
|
1236
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
1237
|
-
_query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}'
|
|
1238
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
1239
|
-
_query_builder,
|
|
1240
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
1241
|
-
'conferenceId' => { 'value' => conference_id, 'encode' => false }
|
|
1242
|
-
)
|
|
1243
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
1244
|
-
|
|
1245
|
-
# Prepare headers.
|
|
1246
|
-
_headers = {
|
|
1247
|
-
'content-type' => 'application/json; charset=utf-8'
|
|
1248
|
-
}
|
|
1249
|
-
|
|
1250
|
-
# Prepare and execute HttpRequest.
|
|
1251
|
-
_request = config.http_client.post(
|
|
1252
|
-
_query_url,
|
|
1253
|
-
headers: _headers,
|
|
1254
|
-
parameters: body.to_json
|
|
1255
|
-
)
|
|
1256
|
-
VoiceBasicAuth.apply(config, _request)
|
|
1257
|
-
_response = execute_request(_request)
|
|
1258
|
-
|
|
1259
|
-
# Validate response against endpoint and global error codes.
|
|
1260
|
-
case _response.status_code
|
|
1261
|
-
when 400
|
|
1262
|
-
raise ApiErrorException.new(
|
|
1263
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
1264
|
-
' fix it before trying again.',
|
|
1265
|
-
_response
|
|
1266
|
-
)
|
|
1267
|
-
when 401
|
|
1268
|
-
raise APIException.new(
|
|
1269
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
1270
|
-
' credentials to authenticate to the API.',
|
|
1271
|
-
_response
|
|
1272
|
-
)
|
|
1273
|
-
when 403
|
|
1274
|
-
raise ApiErrorException.new(
|
|
1275
|
-
'User unauthorized to perform this action.',
|
|
1276
|
-
_response
|
|
1277
|
-
)
|
|
1278
|
-
when 404
|
|
1279
|
-
raise ApiErrorException.new(
|
|
1280
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
1281
|
-
_response
|
|
1282
|
-
)
|
|
1283
|
-
when 415
|
|
1284
|
-
raise ApiErrorException.new(
|
|
1285
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
1286
|
-
' please send it to us as `application/json`.',
|
|
1287
|
-
_response
|
|
1288
|
-
)
|
|
1289
|
-
when 429
|
|
1290
|
-
raise ApiErrorException.new(
|
|
1291
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
1292
|
-
' slow your request rate down and try again.',
|
|
1293
|
-
_response
|
|
1294
|
-
)
|
|
1295
|
-
when 500
|
|
1296
|
-
raise ApiErrorException.new(
|
|
1297
|
-
'Something unexpected happened. Please try again.',
|
|
1298
|
-
_response
|
|
1299
|
-
)
|
|
1300
|
-
end
|
|
1301
|
-
validate_response(_response)
|
|
1302
|
-
|
|
1303
|
-
# Return appropriate response type.
|
|
1304
|
-
ApiResponse.new(_response)
|
|
1305
|
-
end
|
|
1306
|
-
|
|
1307
|
-
# Updates settings for a particular conference member.
|
|
1308
|
-
# @param [String] account_id Required parameter: Example:
|
|
1309
|
-
# @param [String] conference_id Required parameter: Example:
|
|
1310
|
-
# @param [String] call_id Required parameter: Example:
|
|
1311
|
-
# @param [ConferenceMemberState] body Required parameter: Example:
|
|
1312
|
-
# @return [void] response from the API call
|
|
1313
|
-
def modify_conference_member(account_id,
|
|
1314
|
-
conference_id,
|
|
1315
|
-
call_id,
|
|
1316
|
-
body)
|
|
1317
|
-
# Prepare query url.
|
|
1318
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
1319
|
-
_query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/members/{callId}'
|
|
1320
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
1321
|
-
_query_builder,
|
|
1322
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
1323
|
-
'conferenceId' => { 'value' => conference_id, 'encode' => false },
|
|
1324
|
-
'callId' => { 'value' => call_id, 'encode' => false }
|
|
1325
|
-
)
|
|
1326
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
1327
|
-
|
|
1328
|
-
# Prepare headers.
|
|
1329
|
-
_headers = {
|
|
1330
|
-
'content-type' => 'application/json; charset=utf-8'
|
|
1331
|
-
}
|
|
1332
|
-
|
|
1333
|
-
# Prepare and execute HttpRequest.
|
|
1334
|
-
_request = config.http_client.put(
|
|
1335
|
-
_query_url,
|
|
1336
|
-
headers: _headers,
|
|
1337
|
-
parameters: body.to_json
|
|
1338
|
-
)
|
|
1339
|
-
VoiceBasicAuth.apply(config, _request)
|
|
1340
|
-
_response = execute_request(_request)
|
|
1341
|
-
|
|
1342
|
-
# Validate response against endpoint and global error codes.
|
|
1343
|
-
case _response.status_code
|
|
1344
|
-
when 400
|
|
1345
|
-
raise ApiErrorException.new(
|
|
1346
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
1347
|
-
' fix it before trying again.',
|
|
1348
|
-
_response
|
|
1349
|
-
)
|
|
1350
|
-
when 401
|
|
1351
|
-
raise APIException.new(
|
|
1352
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
1353
|
-
' credentials to authenticate to the API.',
|
|
1354
|
-
_response
|
|
1355
|
-
)
|
|
1356
|
-
when 403
|
|
1357
|
-
raise ApiErrorException.new(
|
|
1358
|
-
'User unauthorized to perform this action.',
|
|
1359
|
-
_response
|
|
1360
|
-
)
|
|
1361
|
-
when 404
|
|
1362
|
-
raise ApiErrorException.new(
|
|
1363
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
1364
|
-
_response
|
|
1365
|
-
)
|
|
1366
|
-
when 415
|
|
1367
|
-
raise ApiErrorException.new(
|
|
1368
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
1369
|
-
' please send it to us as `application/json`.',
|
|
1370
|
-
_response
|
|
1371
|
-
)
|
|
1372
|
-
when 429
|
|
1373
|
-
raise ApiErrorException.new(
|
|
1374
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
1375
|
-
' slow your request rate down and try again.',
|
|
1376
|
-
_response
|
|
1377
|
-
)
|
|
1378
|
-
when 500
|
|
1379
|
-
raise ApiErrorException.new(
|
|
1380
|
-
'Something unexpected happened. Please try again.',
|
|
1381
|
-
_response
|
|
1382
|
-
)
|
|
1383
|
-
end
|
|
1384
|
-
validate_response(_response)
|
|
1385
|
-
|
|
1386
|
-
# Return appropriate response type.
|
|
1387
|
-
ApiResponse.new(_response)
|
|
1388
|
-
end
|
|
1389
|
-
|
|
1390
|
-
# Returns information about the specified conference member.
|
|
1391
|
-
# @param [String] account_id Required parameter: Example:
|
|
1392
|
-
# @param [String] conference_id Required parameter: Example:
|
|
1393
|
-
# @param [String] member_id Required parameter: Example:
|
|
1394
|
-
# @return [ConferenceMemberState] response from the API call
|
|
1395
|
-
def get_conference_member(account_id,
|
|
1396
|
-
conference_id,
|
|
1397
|
-
member_id)
|
|
1398
|
-
# Prepare query url.
|
|
1399
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
1400
|
-
_query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/members/{memberId}'
|
|
1401
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
1402
|
-
_query_builder,
|
|
1403
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
1404
|
-
'conferenceId' => { 'value' => conference_id, 'encode' => false },
|
|
1405
|
-
'memberId' => { 'value' => member_id, 'encode' => false }
|
|
1406
|
-
)
|
|
1407
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
1408
|
-
|
|
1409
|
-
# Prepare headers.
|
|
1410
|
-
_headers = {
|
|
1411
|
-
'accept' => 'application/json'
|
|
1412
|
-
}
|
|
1413
|
-
|
|
1414
|
-
# Prepare and execute HttpRequest.
|
|
1415
|
-
_request = config.http_client.get(
|
|
1416
|
-
_query_url,
|
|
1417
|
-
headers: _headers
|
|
1418
|
-
)
|
|
1419
|
-
VoiceBasicAuth.apply(config, _request)
|
|
1420
|
-
_response = execute_request(_request)
|
|
1421
|
-
|
|
1422
|
-
# Validate response against endpoint and global error codes.
|
|
1423
|
-
case _response.status_code
|
|
1424
|
-
when 400
|
|
1425
|
-
raise ApiErrorException.new(
|
|
1426
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
1427
|
-
' fix it before trying again.',
|
|
1428
|
-
_response
|
|
1429
|
-
)
|
|
1430
|
-
when 401
|
|
1431
|
-
raise APIException.new(
|
|
1432
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
1433
|
-
' credentials to authenticate to the API.',
|
|
1434
|
-
_response
|
|
1435
|
-
)
|
|
1436
|
-
when 403
|
|
1437
|
-
raise ApiErrorException.new(
|
|
1438
|
-
'User unauthorized to perform this action.',
|
|
1439
|
-
_response
|
|
1440
|
-
)
|
|
1441
|
-
when 404
|
|
1442
|
-
raise ApiErrorException.new(
|
|
1443
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
1444
|
-
_response
|
|
1445
|
-
)
|
|
1446
|
-
when 415
|
|
1447
|
-
raise ApiErrorException.new(
|
|
1448
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
1449
|
-
' please send it to us as `application/json`.',
|
|
1450
|
-
_response
|
|
1451
|
-
)
|
|
1452
|
-
when 429
|
|
1453
|
-
raise ApiErrorException.new(
|
|
1454
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
1455
|
-
' slow your request rate down and try again.',
|
|
1456
|
-
_response
|
|
1457
|
-
)
|
|
1458
|
-
when 500
|
|
1459
|
-
raise ApiErrorException.new(
|
|
1460
|
-
'Something unexpected happened. Please try again.',
|
|
1461
|
-
_response
|
|
1462
|
-
)
|
|
1463
|
-
end
|
|
1464
|
-
validate_response(_response)
|
|
1465
|
-
|
|
1466
|
-
# Return appropriate response type.
|
|
1467
|
-
decoded = APIHelper.json_deserialize(_response.raw_body)
|
|
1468
|
-
ApiResponse.new(
|
|
1469
|
-
_response, data: ConferenceMemberState.from_hash(decoded)
|
|
1470
|
-
)
|
|
1471
|
-
end
|
|
1472
|
-
|
|
1473
|
-
# Returns a (potentially empty) list of metadata for the recordings that
|
|
1474
|
-
# took place during the specified conference
|
|
1475
|
-
# @param [String] account_id Required parameter: Example:
|
|
1476
|
-
# @param [String] conference_id Required parameter: Example:
|
|
1477
|
-
# @return [List of ConferenceRecordingMetadata] response from the API call
|
|
1478
|
-
def get_conference_recordings(account_id,
|
|
1479
|
-
conference_id)
|
|
1480
|
-
# Prepare query url.
|
|
1481
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
1482
|
-
_query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/recordings'
|
|
1483
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
1484
|
-
_query_builder,
|
|
1485
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
1486
|
-
'conferenceId' => { 'value' => conference_id, 'encode' => false }
|
|
1487
|
-
)
|
|
1488
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
1489
|
-
|
|
1490
|
-
# Prepare headers.
|
|
1491
|
-
_headers = {
|
|
1492
|
-
'accept' => 'application/json'
|
|
1493
|
-
}
|
|
1494
|
-
|
|
1495
|
-
# Prepare and execute HttpRequest.
|
|
1496
|
-
_request = config.http_client.get(
|
|
1497
|
-
_query_url,
|
|
1498
|
-
headers: _headers
|
|
1499
|
-
)
|
|
1500
|
-
VoiceBasicAuth.apply(config, _request)
|
|
1501
|
-
_response = execute_request(_request)
|
|
1502
|
-
|
|
1503
|
-
# Validate response against endpoint and global error codes.
|
|
1504
|
-
case _response.status_code
|
|
1505
|
-
when 400
|
|
1506
|
-
raise ApiErrorException.new(
|
|
1507
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
1508
|
-
' fix it before trying again.',
|
|
1509
|
-
_response
|
|
1510
|
-
)
|
|
1511
|
-
when 401
|
|
1512
|
-
raise APIException.new(
|
|
1513
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
1514
|
-
' credentials to authenticate to the API.',
|
|
1515
|
-
_response
|
|
1516
|
-
)
|
|
1517
|
-
when 403
|
|
1518
|
-
raise ApiErrorException.new(
|
|
1519
|
-
'User unauthorized to perform this action.',
|
|
1520
|
-
_response
|
|
1521
|
-
)
|
|
1522
|
-
when 404
|
|
1523
|
-
raise ApiErrorException.new(
|
|
1524
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
1525
|
-
_response
|
|
1526
|
-
)
|
|
1527
|
-
when 415
|
|
1528
|
-
raise ApiErrorException.new(
|
|
1529
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
1530
|
-
' please send it to us as `application/json`.',
|
|
1531
|
-
_response
|
|
1532
|
-
)
|
|
1533
|
-
when 429
|
|
1534
|
-
raise ApiErrorException.new(
|
|
1535
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
1536
|
-
' slow your request rate down and try again.',
|
|
1537
|
-
_response
|
|
1538
|
-
)
|
|
1539
|
-
when 500
|
|
1540
|
-
raise ApiErrorException.new(
|
|
1541
|
-
'Something unexpected happened. Please try again.',
|
|
1542
|
-
_response
|
|
1543
|
-
)
|
|
1544
|
-
end
|
|
1545
|
-
validate_response(_response)
|
|
1546
|
-
|
|
1547
|
-
# Return appropriate response type.
|
|
1548
|
-
decoded = APIHelper.json_deserialize(_response.raw_body)
|
|
1549
|
-
ApiResponse.new(
|
|
1550
|
-
_response,
|
|
1551
|
-
data: decoded.map { |element| ConferenceRecordingMetadata.from_hash(element) }
|
|
1552
|
-
)
|
|
1553
|
-
end
|
|
1554
|
-
|
|
1555
|
-
# Returns metadata for the specified recording.
|
|
1556
|
-
# @param [String] account_id Required parameter: Example:
|
|
1557
|
-
# @param [String] conference_id Required parameter: Example:
|
|
1558
|
-
# @param [String] recording_id Required parameter: Example:
|
|
1559
|
-
# @return [CallRecordingMetadata] response from the API call
|
|
1560
|
-
def get_conference_recording(account_id,
|
|
1561
|
-
conference_id,
|
|
1562
|
-
recording_id)
|
|
1563
|
-
# Prepare query url.
|
|
1564
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
1565
|
-
_query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}'
|
|
1566
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
1567
|
-
_query_builder,
|
|
1568
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
1569
|
-
'conferenceId' => { 'value' => conference_id, 'encode' => false },
|
|
1570
|
-
'recordingId' => { 'value' => recording_id, 'encode' => false }
|
|
1571
|
-
)
|
|
1572
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
1573
|
-
|
|
1574
|
-
# Prepare headers.
|
|
1575
|
-
_headers = {
|
|
1576
|
-
'accept' => 'application/json'
|
|
1577
|
-
}
|
|
1578
|
-
|
|
1579
|
-
# Prepare and execute HttpRequest.
|
|
1580
|
-
_request = config.http_client.get(
|
|
1581
|
-
_query_url,
|
|
1582
|
-
headers: _headers
|
|
1583
|
-
)
|
|
1584
|
-
VoiceBasicAuth.apply(config, _request)
|
|
1585
|
-
_response = execute_request(_request)
|
|
1586
|
-
|
|
1587
|
-
# Validate response against endpoint and global error codes.
|
|
1588
|
-
case _response.status_code
|
|
1589
|
-
when 400
|
|
1590
|
-
raise ApiErrorException.new(
|
|
1591
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
1592
|
-
' fix it before trying again.',
|
|
1593
|
-
_response
|
|
1594
|
-
)
|
|
1595
|
-
when 401
|
|
1596
|
-
raise APIException.new(
|
|
1597
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
1598
|
-
' credentials to authenticate to the API.',
|
|
1599
|
-
_response
|
|
1600
|
-
)
|
|
1601
|
-
when 403
|
|
1602
|
-
raise ApiErrorException.new(
|
|
1603
|
-
'User unauthorized to perform this action.',
|
|
1604
|
-
_response
|
|
1605
|
-
)
|
|
1606
|
-
when 404
|
|
1607
|
-
raise ApiErrorException.new(
|
|
1608
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
1609
|
-
_response
|
|
1610
|
-
)
|
|
1611
|
-
when 415
|
|
1612
|
-
raise ApiErrorException.new(
|
|
1613
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
1614
|
-
' please send it to us as `application/json`.',
|
|
1615
|
-
_response
|
|
1616
|
-
)
|
|
1617
|
-
when 429
|
|
1618
|
-
raise ApiErrorException.new(
|
|
1619
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
1620
|
-
' slow your request rate down and try again.',
|
|
1621
|
-
_response
|
|
1622
|
-
)
|
|
1623
|
-
when 500
|
|
1624
|
-
raise ApiErrorException.new(
|
|
1625
|
-
'Something unexpected happened. Please try again.',
|
|
1626
|
-
_response
|
|
1627
|
-
)
|
|
1628
|
-
end
|
|
1629
|
-
validate_response(_response)
|
|
1630
|
-
|
|
1631
|
-
# Return appropriate response type.
|
|
1632
|
-
decoded = APIHelper.json_deserialize(_response.raw_body)
|
|
1633
|
-
ApiResponse.new(
|
|
1634
|
-
_response, data: CallRecordingMetadata.from_hash(decoded)
|
|
1635
|
-
)
|
|
1636
|
-
end
|
|
1637
|
-
|
|
1638
|
-
# Downloads the specified recording.
|
|
1639
|
-
# @param [String] account_id Required parameter: Example:
|
|
1640
|
-
# @param [String] conference_id Required parameter: Example:
|
|
1641
|
-
# @param [String] recording_id Required parameter: Example:
|
|
1642
|
-
# @return [Mixed] response from the API call
|
|
1643
|
-
def get_download_conference_recording(account_id,
|
|
1644
|
-
conference_id,
|
|
1645
|
-
recording_id)
|
|
1646
|
-
# Prepare query url.
|
|
1647
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
1648
|
-
_query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}/media'
|
|
1649
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
1650
|
-
_query_builder,
|
|
1651
|
-
'accountId' => { 'value' => account_id, 'encode' => false },
|
|
1652
|
-
'conferenceId' => { 'value' => conference_id, 'encode' => false },
|
|
1653
|
-
'recordingId' => { 'value' => recording_id, 'encode' => false }
|
|
1654
|
-
)
|
|
1655
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
1656
|
-
|
|
1657
|
-
# Prepare headers.
|
|
1658
|
-
_headers = {
|
|
1659
|
-
'accept' => 'application/json'
|
|
1660
|
-
}
|
|
1661
|
-
|
|
1662
|
-
# Prepare and execute HttpRequest.
|
|
1663
|
-
_request = config.http_client.get(
|
|
1664
|
-
_query_url,
|
|
1665
|
-
headers: _headers
|
|
1666
|
-
)
|
|
1667
|
-
VoiceBasicAuth.apply(config, _request)
|
|
1668
|
-
_response = execute_request(_request)
|
|
1669
|
-
|
|
1670
|
-
# Validate response against endpoint and global error codes.
|
|
1671
|
-
case _response.status_code
|
|
1672
|
-
when 400
|
|
1673
|
-
raise ApiErrorException.new(
|
|
1674
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
1675
|
-
' fix it before trying again.',
|
|
1676
|
-
_response
|
|
1677
|
-
)
|
|
1678
|
-
when 401
|
|
1679
|
-
raise APIException.new(
|
|
1680
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
1681
|
-
' credentials to authenticate to the API.',
|
|
1682
|
-
_response
|
|
1683
|
-
)
|
|
1684
|
-
when 403
|
|
1685
|
-
raise ApiErrorException.new(
|
|
1686
|
-
'User unauthorized to perform this action.',
|
|
1687
|
-
_response
|
|
1688
|
-
)
|
|
1689
|
-
when 404
|
|
1690
|
-
raise ApiErrorException.new(
|
|
1691
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
1692
|
-
_response
|
|
1693
|
-
)
|
|
1694
|
-
when 415
|
|
1695
|
-
raise ApiErrorException.new(
|
|
1696
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
1697
|
-
' please send it to us as `application/json`.',
|
|
1698
|
-
_response
|
|
1699
|
-
)
|
|
1700
|
-
when 429
|
|
1701
|
-
raise ApiErrorException.new(
|
|
1702
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
1703
|
-
' slow your request rate down and try again.',
|
|
1704
|
-
_response
|
|
1705
|
-
)
|
|
1706
|
-
when 500
|
|
1707
|
-
raise ApiErrorException.new(
|
|
1708
|
-
'Something unexpected happened. Please try again.',
|
|
1709
|
-
_response
|
|
1710
|
-
)
|
|
1711
|
-
end
|
|
1712
|
-
validate_response(_response)
|
|
1713
|
-
|
|
1714
|
-
# Return appropriate response type.
|
|
1715
|
-
decoded = APIHelper.json_deserialize(_response.raw_body) unless
|
|
1716
|
-
_response.raw_body.nil? ||
|
|
1717
|
-
_response.raw_body.to_s.strip.empty?
|
|
1718
|
-
ApiResponse.new(
|
|
1719
|
-
_response, data: decoded
|
|
1720
|
-
)
|
|
1721
|
-
end
|
|
1722
|
-
|
|
1723
|
-
# Returns a list of metadata for the recordings associated with the
|
|
1724
|
-
# specified account. The list can be filtered by the optional from, to,
|
|
1725
|
-
# minStartTime, and maxStartTime arguments. The list is capped at 1000
|
|
1726
|
-
# entries and may be empty if no recordings match the specified criteria.
|
|
1727
|
-
# @param [String] account_id Required parameter: Example:
|
|
1728
|
-
# @param [String] from Optional parameter: Example:
|
|
1729
|
-
# @param [String] to Optional parameter: Example:
|
|
1730
|
-
# @param [String] min_start_time Optional parameter: Example:
|
|
1731
|
-
# @param [String] max_start_time Optional parameter: Example:
|
|
1732
|
-
# @return [List of CallRecordingMetadata] response from the API call
|
|
1733
|
-
def get_query_call_recordings(account_id,
|
|
1734
|
-
from: nil,
|
|
1735
|
-
to: nil,
|
|
1736
|
-
min_start_time: nil,
|
|
1737
|
-
max_start_time: nil)
|
|
1738
|
-
# Prepare query url.
|
|
1739
|
-
_query_builder = config.get_base_uri(Server::VOICEDEFAULT)
|
|
1740
|
-
_query_builder << '/api/v2/accounts/{accountId}/recordings'
|
|
1741
|
-
_query_builder = APIHelper.append_url_with_template_parameters(
|
|
1742
|
-
_query_builder,
|
|
1743
|
-
'accountId' => { 'value' => account_id, 'encode' => false }
|
|
1744
|
-
)
|
|
1745
|
-
_query_builder = APIHelper.append_url_with_query_parameters(
|
|
1746
|
-
_query_builder,
|
|
1747
|
-
'from' => from,
|
|
1748
|
-
'to' => to,
|
|
1749
|
-
'minStartTime' => min_start_time,
|
|
1750
|
-
'maxStartTime' => max_start_time
|
|
1751
|
-
)
|
|
1752
|
-
_query_url = APIHelper.clean_url _query_builder
|
|
1753
|
-
|
|
1754
|
-
# Prepare headers.
|
|
1755
|
-
_headers = {
|
|
1756
|
-
'accept' => 'application/json'
|
|
1757
|
-
}
|
|
1758
|
-
|
|
1759
|
-
# Prepare and execute HttpRequest.
|
|
1760
|
-
_request = config.http_client.get(
|
|
1761
|
-
_query_url,
|
|
1762
|
-
headers: _headers
|
|
1763
|
-
)
|
|
1764
|
-
VoiceBasicAuth.apply(config, _request)
|
|
1765
|
-
_response = execute_request(_request)
|
|
1766
|
-
|
|
1767
|
-
# Validate response against endpoint and global error codes.
|
|
1768
|
-
case _response.status_code
|
|
1769
|
-
when 400
|
|
1770
|
-
raise ApiErrorException.new(
|
|
1771
|
-
'Something\'s not quite right... Your request is invalid. Please' \
|
|
1772
|
-
' fix it before trying again.',
|
|
1773
|
-
_response
|
|
1774
|
-
)
|
|
1775
|
-
when 401
|
|
1776
|
-
raise APIException.new(
|
|
1777
|
-
'Your credentials are invalid. Please use your Bandwidth dashboard' \
|
|
1778
|
-
' credentials to authenticate to the API.',
|
|
1779
|
-
_response
|
|
1780
|
-
)
|
|
1781
|
-
when 403
|
|
1782
|
-
raise ApiErrorException.new(
|
|
1783
|
-
'User unauthorized to perform this action.',
|
|
1784
|
-
_response
|
|
1785
|
-
)
|
|
1786
|
-
when 404
|
|
1787
|
-
raise ApiErrorException.new(
|
|
1788
|
-
'The resource specified cannot be found or does not belong to you.',
|
|
1789
|
-
_response
|
|
1790
|
-
)
|
|
1791
|
-
when 415
|
|
1792
|
-
raise ApiErrorException.new(
|
|
1793
|
-
'We don\'t support that media type. If a request body is required,' \
|
|
1794
|
-
' please send it to us as `application/json`.',
|
|
1795
|
-
_response
|
|
1796
|
-
)
|
|
1797
|
-
when 429
|
|
1798
|
-
raise ApiErrorException.new(
|
|
1799
|
-
'You\'re sending requests to this endpoint too frequently. Please' \
|
|
1800
|
-
' slow your request rate down and try again.',
|
|
1801
|
-
_response
|
|
1802
|
-
)
|
|
1803
|
-
when 500
|
|
1804
|
-
raise ApiErrorException.new(
|
|
1805
|
-
'Something unexpected happened. Please try again.',
|
|
1806
|
-
_response
|
|
1807
|
-
)
|
|
1808
|
-
end
|
|
1809
|
-
validate_response(_response)
|
|
1810
|
-
|
|
1811
|
-
# Return appropriate response type.
|
|
1812
|
-
decoded = APIHelper.json_deserialize(_response.raw_body)
|
|
1813
|
-
ApiResponse.new(
|
|
1814
|
-
_response,
|
|
1815
|
-
data: decoded.map { |element| CallRecordingMetadata.from_hash(element) }
|
|
1816
|
-
)
|
|
1817
|
-
end
|
|
1818
|
-
end
|
|
1819
|
-
end
|
|
1820
|
-
end
|