# bandwidth # # This file was automatically generated by APIMATIC v2.0 # ( https://apimatic.io ). module Bandwidth module Voice # APIController class APIController < BaseController def initialize(config, http_call_back: nil) super(config, http_call_back: http_call_back) end # Creates an outbound call # @param [String] account_id Required parameter: Example: # @param [ApiCreateCallRequest] body Optional parameter: Example: # @return [ApiCallResponse] response from the API call def create_call(account_id, body: nil) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json', 'content-type' => 'application/json; charset=utf-8' } # Prepare and execute HttpRequest. _request = config.http_client.post( _query_url, headers: _headers, parameters: body.to_json ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) ApiResponse.new(_response, data: ApiCallResponse.from_hash(decoded)) end # Returns near-realtime metadata about the specified call # @param [String] account_id Required parameter: Example: # @param [String] call_id Required parameter: Example: # @return [ApiCallStateResponse] response from the API call def get_call_state(account_id, call_id) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'callId' => call_id ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json' } # Prepare and execute HttpRequest. _request = config.http_client.get( _query_url, headers: _headers ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) ApiResponse.new(_response, data: ApiCallStateResponse.from_hash(decoded)) end # Interrupts and replaces an active call's BXML document # @param [String] account_id Required parameter: Example: # @param [String] call_id Required parameter: Example: # @param [ApiModifyCallRequest] body Optional parameter: Example: # @return [void] response from the API call def modify_call(account_id, call_id, body: nil) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'callId' => call_id ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'content-type' => 'application/json; charset=utf-8' } # Prepare and execute HttpRequest. _request = config.http_client.post( _query_url, headers: _headers, parameters: body.to_json ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. ApiResponse.new(_response) end # Pauses or resumes a recording # @param [String] account_id Required parameter: Example: # @param [String] call_id Required parameter: Example: # @param [ModifyCallRecordingState] body Optional parameter: Example: # @return [void] response from the API call def modify_call_recording_state(account_id, call_id, body: nil) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recording' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'callId' => call_id ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'content-type' => 'application/json; charset=utf-8' } # Prepare and execute HttpRequest. _request = config.http_client.put( _query_url, headers: _headers, parameters: body.to_json ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. ApiResponse.new(_response) end # Returns a (potentially empty) list of metadata for the recordings that # took place during the specified call # @param [String] account_id Required parameter: Example: # @param [String] call_id Required parameter: Example: # @param [String] from Optional parameter: Example: # @param [String] to Optional parameter: Example: # @param [String] min_start_time Optional parameter: Example: # @param [String] max_start_time Optional parameter: Example: # @return [List of RecordingMetadataResponse] response from the API call def get_query_metadata_for_account_and_call(account_id, call_id, from: nil, to: nil, min_start_time: nil, max_start_time: nil) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'callId' => call_id ) _query_builder = APIHelper.append_url_with_query_parameters( _query_builder, 'from' => from, 'to' => to, 'minStartTime' => min_start_time, 'maxStartTime' => max_start_time ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json' } # Prepare and execute HttpRequest. _request = config.http_client.get( _query_url, headers: _headers ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) ApiResponse.new( _response, data: decoded.map { |element| RecordingMetadataResponse.from_hash(element) } ) end # Returns metadata for the specified recording # @param [String] account_id Required parameter: Example: # @param [String] call_id Required parameter: Example: # @param [String] recording_id Required parameter: Example: # @return [RecordingMetadataResponse] response from the API call def get_metadata_for_recording(account_id, call_id, recording_id) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'callId' => call_id, 'recordingId' => recording_id ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json' } # Prepare and execute HttpRequest. _request = config.http_client.get( _query_url, headers: _headers ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) ApiResponse.new(_response, data: RecordingMetadataResponse.from_hash(decoded)) end # Deletes the specified recording # @param [String] account_id Required parameter: Example: # @param [String] call_id Required parameter: Example: # @param [String] recording_id Required parameter: Example: # @return [void] response from the API call def delete_recording(account_id, call_id, recording_id) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'callId' => call_id, 'recordingId' => recording_id ) _query_url = APIHelper.clean_url _query_builder # Prepare and execute HttpRequest. _request = config.http_client.delete( _query_url ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. ApiResponse.new(_response) end # Downloads the specified recording # @param [String] account_id Required parameter: Example: # @param [String] call_id Required parameter: Example: # @param [String] recording_id Required parameter: Example: # @return [Binary] response from the API call def get_stream_recording_media(account_id, call_id, recording_id) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'callId' => call_id, 'recordingId' => recording_id ) _query_url = APIHelper.clean_url _query_builder # Prepare and execute HttpRequest. _request = config.http_client.get( _query_url ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request, binary: true) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. ApiResponse.new(_response, data: _response.raw_body) end # Deletes the specified recording's media # @param [String] account_id Required parameter: Example: # @param [String] call_id Required parameter: Example: # @param [String] recording_id Required parameter: Example: # @return [void] response from the API call def delete_recording_media(account_id, call_id, recording_id) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'callId' => call_id, 'recordingId' => recording_id ) _query_url = APIHelper.clean_url _query_builder # Prepare and execute HttpRequest. _request = config.http_client.delete( _query_url ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. ApiResponse.new(_response) end # Downloads the specified transcription # @param [String] account_id Required parameter: Example: # @param [String] call_id Required parameter: Example: # @param [String] recording_id Required parameter: Example: # @return [TranscriptionResponse] response from the API call def get_recording_transcription(account_id, call_id, recording_id) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'callId' => call_id, 'recordingId' => recording_id ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json' } # Prepare and execute HttpRequest. _request = config.http_client.get( _query_url, headers: _headers ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) ApiResponse.new(_response, data: TranscriptionResponse.from_hash(decoded)) end # Requests that the specified recording be transcribed # @param [String] account_id Required parameter: Example: # @param [String] call_id Required parameter: Example: # @param [String] recording_id Required parameter: Example: # @param [ApiTranscribeRecordingRequest] body Optional parameter: Example: # @return [void] response from the API call def create_transcribe_recording(account_id, call_id, recording_id, body: nil) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'callId' => call_id, 'recordingId' => recording_id ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'content-type' => 'application/json; charset=utf-8' } # Prepare and execute HttpRequest. _request = config.http_client.post( _query_url, headers: _headers, parameters: body.to_json ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 410 raise ApiErrorResponseException.new( 'The media for this recording has been deleted, so we can\'t' \ ' transcribe it', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. ApiResponse.new(_response) end # Deletes the specified recording's transcription # @param [String] account_id Required parameter: Example: # @param [String] call_id Required parameter: Example: # @param [String] recording_id Required parameter: Example: # @return [void] response from the API call def delete_recording_transcription(account_id, call_id, recording_id) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'callId' => call_id, 'recordingId' => recording_id ) _query_url = APIHelper.clean_url _query_builder # Prepare and execute HttpRequest. _request = config.http_client.delete( _query_url ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. ApiResponse.new(_response) end # Modify the conference state # @param [String] account_id Required parameter: Example: # @param [String] conference_id Required parameter: Example: # @param [CallEngineModifyConferenceRequest] body Optional parameter: # Example: # @return [void] response from the API call def modify_conference(account_id, conference_id, body: nil) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id, 'conferenceId' => conference_id ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'content-type' => 'application/json; charset=utf-8' } # Prepare and execute HttpRequest. _request = config.http_client.post( _query_url, headers: _headers, parameters: body.to_json ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. ApiResponse.new(_response) end # Returns a list of metadata for the recordings associated with the # specified account. The list can be filtered by the optional from, to, # minStartTime, and maxStartTime arguments. The list is capped at 1000 # entries and may be empty if no recordings match the specified criteria. # @param [String] account_id Required parameter: Example: # @param [String] from Optional parameter: Example: # @param [String] to Optional parameter: Example: # @param [String] min_start_time Optional parameter: Example: # @param [String] max_start_time Optional parameter: Example: # @return [List of RecordingMetadataResponse] response from the API call def get_query_metadata_for_account(account_id, from: nil, to: nil, min_start_time: nil, max_start_time: nil) # Prepare query url. _query_builder = config.get_base_uri(Server::VOICEDEFAULT) _query_builder << '/api/v2/accounts/{accountId}/recordings' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'accountId' => account_id ) _query_builder = APIHelper.append_url_with_query_parameters( _query_builder, 'from' => from, 'to' => to, 'minStartTime' => min_start_time, 'maxStartTime' => max_start_time ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json' } # Prepare and execute HttpRequest. _request = config.http_client.get( _query_url, headers: _headers ) VoiceBasicAuth.apply(config, _request) _response = execute_request(_request) # Validate response against endpoint and global error codes. if _response.status_code == 400 raise ApiErrorResponseException.new( 'Something\'s not quite right... Your request is invalid. Please' \ ' fix it before trying again.', _response ) elsif _response.status_code == 401 raise APIException.new( 'Your credentials are invalid. Please use your Bandwidth dashboard' \ ' credentials to authenticate to the API.', _response ) elsif _response.status_code == 403 raise ApiErrorResponseException.new( 'User unauthorized to perform this action.', _response ) elsif _response.status_code == 404 raise ApiErrorResponseException.new( 'The resource specified cannot be found or does not belong to you.', _response ) elsif _response.status_code == 415 raise ApiErrorResponseException.new( 'We don\'t support that media type. If a request body is required,' \ ' please send it to us as `application/json`.', _response ) elsif _response.status_code == 429 raise ApiErrorResponseException.new( 'You\'re sending requests to this endpoint too frequently. Please' \ ' slow your request rate down and try again.', _response ) elsif _response.status_code == 500 raise ApiErrorResponseException.new( 'Something unexpected happened. Please try again.', _response ) end validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) ApiResponse.new( _response, data: decoded.map { |element| RecordingMetadataResponse.from_hash(element) } ) end end end end