bandwidth-sdk 10.4.0 → 11.0.0.pre.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +9 -0
- data/Gemfile.lock +77 -0
- data/README.md +198 -140
- data/Rakefile +22 -0
- data/bandwidth-sdk.gemspec +40 -0
- data/bandwidth.yml +5544 -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 +40 -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 +366 -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 +64 -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 +97 -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 +100 -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 +544 -249
- 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 -34
- 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 -26
- 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 -120
- 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 -769
- data/test/test_helper.rb +0 -94
@@ -0,0 +1,365 @@
|
|
1
|
+
=begin
|
2
|
+
#Bandwidth
|
3
|
+
|
4
|
+
#Bandwidth's Communication APIs
|
5
|
+
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
|
+
Contact: letstalk@bandwidth.com
|
8
|
+
Generated by: https://openapi-generator.tech
|
9
|
+
OpenAPI Generator version: 6.4.0
|
10
|
+
|
11
|
+
=end
|
12
|
+
|
13
|
+
require 'date'
|
14
|
+
require 'time'
|
15
|
+
|
16
|
+
module Bandwidth
|
17
|
+
# If the originating call leaves the <Bridge>, then this callback is sent to the bridgeTargetCompleteUrl, and the BXML returned in it is executed on the target call. If this webhook is sent, the Bridge Complete webhook is NOT sent.
|
18
|
+
class BridgeTargetCompleteCallback
|
19
|
+
# The event type, value can be one of the following: answer, bridgeComplete, bridgeTargetComplete, conferenceCreated, conferenceRedirect, conferenceMemberJoin, conferenceMemberExit, conferenceCompleted, conferenceRecordingAvailable, disconnect, dtmf, gather, initiate, machineDetectionComplete, recordingComplete, recordingAvailable, redirect, transcriptionAvailable, transferAnswer, transferComplete, transferDisconnect.
|
20
|
+
attr_accessor :event_type
|
21
|
+
|
22
|
+
# The approximate UTC date and time when the event was generated by the Bandwidth server, in ISO 8601 format. This may not be exactly the time of event execution.
|
23
|
+
attr_accessor :event_time
|
24
|
+
|
25
|
+
# The user account associated with the call.
|
26
|
+
attr_accessor :account_id
|
27
|
+
|
28
|
+
# The id of the application associated with the call.
|
29
|
+
attr_accessor :application_id
|
30
|
+
|
31
|
+
# The provided identifier of the caller: can be a phone number in E.164 format (e.g. +15555555555) or one of Private, Restricted, Unavailable, or Anonymous.
|
32
|
+
attr_accessor :from
|
33
|
+
|
34
|
+
# The phone number that received the call, in E.164 format (e.g. +15555555555).
|
35
|
+
attr_accessor :to
|
36
|
+
|
37
|
+
attr_accessor :direction
|
38
|
+
|
39
|
+
# The call id associated with the event.
|
40
|
+
attr_accessor :call_id
|
41
|
+
|
42
|
+
# The URL of the call associated with the event.
|
43
|
+
attr_accessor :call_url
|
44
|
+
|
45
|
+
# (optional) If call queueing is enabled and this is an outbound call, time the call was queued, in ISO 8601 format.
|
46
|
+
attr_accessor :enqueued_time
|
47
|
+
|
48
|
+
# Time the call was started, in ISO 8601 format.
|
49
|
+
attr_accessor :start_time
|
50
|
+
|
51
|
+
# Time the call was answered, in ISO 8601 format.
|
52
|
+
attr_accessor :answer_time
|
53
|
+
|
54
|
+
# (optional) The tag specified on call creation. If no tag was specified or it was previously cleared, this field will not be present.
|
55
|
+
attr_accessor :tag
|
56
|
+
|
57
|
+
class EnumAttributeValidator
|
58
|
+
attr_reader :datatype
|
59
|
+
attr_reader :allowable_values
|
60
|
+
|
61
|
+
def initialize(datatype, allowable_values)
|
62
|
+
@allowable_values = allowable_values.map do |value|
|
63
|
+
case datatype.to_s
|
64
|
+
when /Integer/i
|
65
|
+
value.to_i
|
66
|
+
when /Float/i
|
67
|
+
value.to_f
|
68
|
+
else
|
69
|
+
value
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def valid?(value)
|
75
|
+
!value || allowable_values.include?(value)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
80
|
+
def self.attribute_map
|
81
|
+
{
|
82
|
+
:'event_type' => :'eventType',
|
83
|
+
:'event_time' => :'eventTime',
|
84
|
+
:'account_id' => :'accountId',
|
85
|
+
:'application_id' => :'applicationId',
|
86
|
+
:'from' => :'from',
|
87
|
+
:'to' => :'to',
|
88
|
+
:'direction' => :'direction',
|
89
|
+
:'call_id' => :'callId',
|
90
|
+
:'call_url' => :'callUrl',
|
91
|
+
:'enqueued_time' => :'enqueuedTime',
|
92
|
+
:'start_time' => :'startTime',
|
93
|
+
:'answer_time' => :'answerTime',
|
94
|
+
:'tag' => :'tag'
|
95
|
+
}
|
96
|
+
end
|
97
|
+
|
98
|
+
# Returns all the JSON keys this model knows about
|
99
|
+
def self.acceptable_attributes
|
100
|
+
attribute_map.values
|
101
|
+
end
|
102
|
+
|
103
|
+
# Attribute type mapping.
|
104
|
+
def self.openapi_types
|
105
|
+
{
|
106
|
+
:'event_type' => :'String',
|
107
|
+
:'event_time' => :'String',
|
108
|
+
:'account_id' => :'String',
|
109
|
+
:'application_id' => :'String',
|
110
|
+
:'from' => :'String',
|
111
|
+
:'to' => :'String',
|
112
|
+
:'direction' => :'CallDirectionEnum',
|
113
|
+
:'call_id' => :'String',
|
114
|
+
:'call_url' => :'String',
|
115
|
+
:'enqueued_time' => :'Time',
|
116
|
+
:'start_time' => :'Time',
|
117
|
+
:'answer_time' => :'Time',
|
118
|
+
:'tag' => :'String'
|
119
|
+
}
|
120
|
+
end
|
121
|
+
|
122
|
+
# List of attributes with nullable: true
|
123
|
+
def self.openapi_nullable
|
124
|
+
Set.new([
|
125
|
+
:'enqueued_time',
|
126
|
+
:'answer_time',
|
127
|
+
:'tag'
|
128
|
+
])
|
129
|
+
end
|
130
|
+
|
131
|
+
# Initializes the object
|
132
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
133
|
+
def initialize(attributes = {})
|
134
|
+
if (!attributes.is_a?(Hash))
|
135
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Bandwidth::BridgeTargetCompleteCallback` initialize method"
|
136
|
+
end
|
137
|
+
|
138
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
139
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
140
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
141
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Bandwidth::BridgeTargetCompleteCallback`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
142
|
+
end
|
143
|
+
h[k.to_sym] = v
|
144
|
+
}
|
145
|
+
|
146
|
+
if attributes.key?(:'event_type')
|
147
|
+
self.event_type = attributes[:'event_type']
|
148
|
+
end
|
149
|
+
|
150
|
+
if attributes.key?(:'event_time')
|
151
|
+
self.event_time = attributes[:'event_time']
|
152
|
+
end
|
153
|
+
|
154
|
+
if attributes.key?(:'account_id')
|
155
|
+
self.account_id = attributes[:'account_id']
|
156
|
+
end
|
157
|
+
|
158
|
+
if attributes.key?(:'application_id')
|
159
|
+
self.application_id = attributes[:'application_id']
|
160
|
+
end
|
161
|
+
|
162
|
+
if attributes.key?(:'from')
|
163
|
+
self.from = attributes[:'from']
|
164
|
+
end
|
165
|
+
|
166
|
+
if attributes.key?(:'to')
|
167
|
+
self.to = attributes[:'to']
|
168
|
+
end
|
169
|
+
|
170
|
+
if attributes.key?(:'direction')
|
171
|
+
self.direction = attributes[:'direction']
|
172
|
+
end
|
173
|
+
|
174
|
+
if attributes.key?(:'call_id')
|
175
|
+
self.call_id = attributes[:'call_id']
|
176
|
+
end
|
177
|
+
|
178
|
+
if attributes.key?(:'call_url')
|
179
|
+
self.call_url = attributes[:'call_url']
|
180
|
+
end
|
181
|
+
|
182
|
+
if attributes.key?(:'enqueued_time')
|
183
|
+
self.enqueued_time = attributes[:'enqueued_time']
|
184
|
+
end
|
185
|
+
|
186
|
+
if attributes.key?(:'start_time')
|
187
|
+
self.start_time = attributes[:'start_time']
|
188
|
+
end
|
189
|
+
|
190
|
+
if attributes.key?(:'answer_time')
|
191
|
+
self.answer_time = attributes[:'answer_time']
|
192
|
+
end
|
193
|
+
|
194
|
+
if attributes.key?(:'tag')
|
195
|
+
self.tag = attributes[:'tag']
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
200
|
+
# @return Array for valid properties with the reasons
|
201
|
+
def list_invalid_properties
|
202
|
+
invalid_properties = Array.new
|
203
|
+
invalid_properties
|
204
|
+
end
|
205
|
+
|
206
|
+
# Check to see if the all the properties in the model are valid
|
207
|
+
# @return true if the model is valid
|
208
|
+
def valid?
|
209
|
+
true
|
210
|
+
end
|
211
|
+
|
212
|
+
# Checks equality by comparing each attribute.
|
213
|
+
# @param [Object] Object to be compared
|
214
|
+
def ==(o)
|
215
|
+
return true if self.equal?(o)
|
216
|
+
self.class == o.class &&
|
217
|
+
event_type == o.event_type &&
|
218
|
+
event_time == o.event_time &&
|
219
|
+
account_id == o.account_id &&
|
220
|
+
application_id == o.application_id &&
|
221
|
+
from == o.from &&
|
222
|
+
to == o.to &&
|
223
|
+
direction == o.direction &&
|
224
|
+
call_id == o.call_id &&
|
225
|
+
call_url == o.call_url &&
|
226
|
+
enqueued_time == o.enqueued_time &&
|
227
|
+
start_time == o.start_time &&
|
228
|
+
answer_time == o.answer_time &&
|
229
|
+
tag == o.tag
|
230
|
+
end
|
231
|
+
|
232
|
+
# @see the `==` method
|
233
|
+
# @param [Object] Object to be compared
|
234
|
+
def eql?(o)
|
235
|
+
self == o
|
236
|
+
end
|
237
|
+
|
238
|
+
# Calculates hash code according to all attributes.
|
239
|
+
# @return [Integer] Hash code
|
240
|
+
def hash
|
241
|
+
[event_type, event_time, account_id, application_id, from, to, direction, call_id, call_url, enqueued_time, start_time, answer_time, tag].hash
|
242
|
+
end
|
243
|
+
|
244
|
+
# Builds the object from hash
|
245
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
246
|
+
# @return [Object] Returns the model itself
|
247
|
+
def self.build_from_hash(attributes)
|
248
|
+
new.build_from_hash(attributes)
|
249
|
+
end
|
250
|
+
|
251
|
+
# Builds the object from hash
|
252
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
253
|
+
# @return [Object] Returns the model itself
|
254
|
+
def build_from_hash(attributes)
|
255
|
+
return nil unless attributes.is_a?(Hash)
|
256
|
+
attributes = attributes.transform_keys(&:to_sym)
|
257
|
+
self.class.openapi_types.each_pair do |key, type|
|
258
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
259
|
+
self.send("#{key}=", nil)
|
260
|
+
elsif type =~ /\AArray<(.*)>/i
|
261
|
+
# check to ensure the input is an array given that the attribute
|
262
|
+
# is documented as an array but the input is not
|
263
|
+
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
264
|
+
self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
|
265
|
+
end
|
266
|
+
elsif !attributes[self.class.attribute_map[key]].nil?
|
267
|
+
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
268
|
+
end
|
269
|
+
end
|
270
|
+
|
271
|
+
self
|
272
|
+
end
|
273
|
+
|
274
|
+
# Deserializes the data based on type
|
275
|
+
# @param string type Data type
|
276
|
+
# @param string value Value to be deserialized
|
277
|
+
# @return [Object] Deserialized data
|
278
|
+
def _deserialize(type, value)
|
279
|
+
case type.to_sym
|
280
|
+
when :Time
|
281
|
+
Time.parse(value)
|
282
|
+
when :Date
|
283
|
+
Date.parse(value)
|
284
|
+
when :String
|
285
|
+
value.to_s
|
286
|
+
when :Integer
|
287
|
+
value.to_i
|
288
|
+
when :Float
|
289
|
+
value.to_f
|
290
|
+
when :Boolean
|
291
|
+
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
292
|
+
true
|
293
|
+
else
|
294
|
+
false
|
295
|
+
end
|
296
|
+
when :Object
|
297
|
+
# generic object (usually a Hash), return directly
|
298
|
+
value
|
299
|
+
when /\AArray<(?<inner_type>.+)>\z/
|
300
|
+
inner_type = Regexp.last_match[:inner_type]
|
301
|
+
value.map { |v| _deserialize(inner_type, v) }
|
302
|
+
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
303
|
+
k_type = Regexp.last_match[:k_type]
|
304
|
+
v_type = Regexp.last_match[:v_type]
|
305
|
+
{}.tap do |hash|
|
306
|
+
value.each do |k, v|
|
307
|
+
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
308
|
+
end
|
309
|
+
end
|
310
|
+
else # model
|
311
|
+
# models (e.g. Pet) or oneOf
|
312
|
+
klass = Bandwidth.const_get(type)
|
313
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
314
|
+
end
|
315
|
+
end
|
316
|
+
|
317
|
+
# Returns the string representation of the object
|
318
|
+
# @return [String] String presentation of the object
|
319
|
+
def to_s
|
320
|
+
to_hash.to_s
|
321
|
+
end
|
322
|
+
|
323
|
+
# to_body is an alias to to_hash (backward compatibility)
|
324
|
+
# @return [Hash] Returns the object in the form of hash
|
325
|
+
def to_body
|
326
|
+
to_hash
|
327
|
+
end
|
328
|
+
|
329
|
+
# Returns the object in the form of hash
|
330
|
+
# @return [Hash] Returns the object in the form of hash
|
331
|
+
def to_hash
|
332
|
+
hash = {}
|
333
|
+
self.class.attribute_map.each_pair do |attr, param|
|
334
|
+
value = self.send(attr)
|
335
|
+
if value.nil?
|
336
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
337
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
338
|
+
end
|
339
|
+
|
340
|
+
hash[param] = _to_hash(value)
|
341
|
+
end
|
342
|
+
hash
|
343
|
+
end
|
344
|
+
|
345
|
+
# Outputs non-array value in the form of hash
|
346
|
+
# For object, use to_hash. Otherwise, just return the value
|
347
|
+
# @param [Object] value Any valid value
|
348
|
+
# @return [Hash] Returns the value in the form of hash
|
349
|
+
def _to_hash(value)
|
350
|
+
if value.is_a?(Array)
|
351
|
+
value.compact.map { |v| _to_hash(v) }
|
352
|
+
elsif value.is_a?(Hash)
|
353
|
+
{}.tap do |hash|
|
354
|
+
value.each { |k, v| hash[k] = _to_hash(v) }
|
355
|
+
end
|
356
|
+
elsif value.respond_to? :to_hash
|
357
|
+
value.to_hash
|
358
|
+
else
|
359
|
+
value
|
360
|
+
end
|
361
|
+
end
|
362
|
+
|
363
|
+
end
|
364
|
+
|
365
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Bandwidth
|
2
|
+
module Bxml
|
3
|
+
class Bxml
|
4
|
+
include Bandwidth::Bxml::Root
|
5
|
+
|
6
|
+
# Initializer
|
7
|
+
# @param nested_verbs [Array<Verb>] XML element children. Defaults to an empty array.
|
8
|
+
def initialize(nested_verbs = [])
|
9
|
+
super(tag='Bxml', nested_verbs)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'ox'
|
2
|
+
|
3
|
+
module Bandwidth
|
4
|
+
module Bxml
|
5
|
+
module NestableVerb
|
6
|
+
include Bandwidth::Bxml::Verb
|
7
|
+
|
8
|
+
# Initializer
|
9
|
+
# @param tag [String] Name of the XML element.
|
10
|
+
# @param content [String] XML element content. Defaults to nil.
|
11
|
+
# @param nested_verbs [Array] XML element children. Defaults to an empty array.
|
12
|
+
# @param attributes [Hash] The attributes to add to the element. Defaults to an empty hash.
|
13
|
+
def initialize(tag, content = nil, nested_verbs = [], attributes = {})
|
14
|
+
@tag = tag
|
15
|
+
@content = content
|
16
|
+
@nested_verbs = nested_verbs
|
17
|
+
@attributes = attributes
|
18
|
+
@attribute_map = []
|
19
|
+
end
|
20
|
+
|
21
|
+
# Generate an XML element for the verb
|
22
|
+
# @return [Node] The XML element.
|
23
|
+
def generate_xml
|
24
|
+
root = Ox::Element.new(@tag)
|
25
|
+
if @content
|
26
|
+
root << @content
|
27
|
+
end
|
28
|
+
|
29
|
+
if @nested_verbs.length > 0
|
30
|
+
@nested_verbs.each do |verb|
|
31
|
+
root << verb.generate_xml
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
if !@attributes.empty?
|
36
|
+
@attributes.each do |key, value|
|
37
|
+
if @attribute_map.include? key.to_sym
|
38
|
+
root[@attribute_map[key.to_sym]] = value
|
39
|
+
else
|
40
|
+
raise NoMethodError.new("attribute '#{key}' is not a valid attribute for this verb")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
return root
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Bandwidth
|
2
|
+
module Bxml
|
3
|
+
class Response
|
4
|
+
include Bandwidth::Bxml::Root
|
5
|
+
|
6
|
+
# Initializer
|
7
|
+
# @param nested_verbs [Array<Verb>] XML element children. Defaults to an empty array.
|
8
|
+
def initialize(nested_verbs = [])
|
9
|
+
super(tag='Response', nested_verbs)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'ox'
|
2
|
+
|
3
|
+
module Bandwidth
|
4
|
+
module Bxml
|
5
|
+
SPEAK_SENTENCE_REGEX = /<SpeakSentence.*?>(.*?)<\/SpeakSentence>/
|
6
|
+
SSML_REGEX = /<([a-zA-Z\/\/].*?)>/
|
7
|
+
|
8
|
+
module Root
|
9
|
+
# Initializer
|
10
|
+
# @param tag [String] Name of the XML element.
|
11
|
+
# @param nested_verbs [Array<Verb>] XML element children. Defaults to an empty array.
|
12
|
+
def initialize(tag, nested_verbs = [])
|
13
|
+
@tag = tag
|
14
|
+
@nested_verbs = nested_verbs
|
15
|
+
end
|
16
|
+
|
17
|
+
# Generate an XML element for the BXML response
|
18
|
+
# @return [Document] The XML element.
|
19
|
+
def generate_xml
|
20
|
+
xml = Ox::Document.new
|
21
|
+
instruct = Ox::Instruct.new(:xml)
|
22
|
+
instruct[:version] = '1.0'
|
23
|
+
instruct[:encoding] = 'UTF-8'
|
24
|
+
xml << instruct
|
25
|
+
root = Ox::Element.new(@tag)
|
26
|
+
@nested_verbs.each do |verb|
|
27
|
+
root << verb.generate_xml
|
28
|
+
end
|
29
|
+
xml << root
|
30
|
+
return xml
|
31
|
+
end
|
32
|
+
|
33
|
+
# Add a verb to the nested verbs array
|
34
|
+
# @param *nested_verbs [Verb] or [Array<Verb>] Verb or verbs to add to the array.
|
35
|
+
def add_verb(nested_verbs)
|
36
|
+
@nested_verbs.push(*nested_verbs)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Return BXML representaion of this response
|
40
|
+
# @return [String] The XML response in string format.
|
41
|
+
def to_bxml
|
42
|
+
bxml = Ox.dump(generate_xml)
|
43
|
+
return bxml.gsub(SPEAK_SENTENCE_REGEX) { |text| text.gsub(SSML_REGEX, '<\1>')}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'ox'
|
2
|
+
|
3
|
+
module Bandwidth
|
4
|
+
module Bxml
|
5
|
+
module Verb
|
6
|
+
# Initializer
|
7
|
+
# @param tag [String] Name of the XML element.
|
8
|
+
# @param content [String] XML element content. Defaults to nil.
|
9
|
+
# @param attributes [Hash] The attributes to add to the element. Defaults to an empty hash.
|
10
|
+
def initialize(tag, content = nil, attributes = {})
|
11
|
+
@tag = tag
|
12
|
+
@content = content
|
13
|
+
@attributes = attributes
|
14
|
+
@attribute_map = []
|
15
|
+
end
|
16
|
+
|
17
|
+
# Set XML attributes for the verb
|
18
|
+
# @param attributes [Hash] The attributes to add to the element.
|
19
|
+
def set_attributes(attributes)
|
20
|
+
@attributes = attributes
|
21
|
+
end
|
22
|
+
|
23
|
+
# Generate an XML element for the verb
|
24
|
+
# @return [Node] The XML element.
|
25
|
+
def generate_xml
|
26
|
+
root = Ox::Element.new(@tag)
|
27
|
+
if @content
|
28
|
+
root << @content
|
29
|
+
end
|
30
|
+
|
31
|
+
if !@attributes.empty?
|
32
|
+
@attributes.each do |key, value|
|
33
|
+
if @attribute_map.include? key.to_sym
|
34
|
+
root[@attribute_map[key.to_sym]] = value
|
35
|
+
else
|
36
|
+
raise NoMethodError.new("attribute '#{key}' is not a valid attribute for this verb")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
return root
|
42
|
+
end
|
43
|
+
|
44
|
+
# Return BXML representaion of this element
|
45
|
+
# @return [String] The XML element in string format.
|
46
|
+
def to_bxml
|
47
|
+
return Ox.dump(generate_xml)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Bandwidth
|
2
|
+
module Bxml
|
3
|
+
class Bridge
|
4
|
+
include Bandwidth::Bxml::Verb
|
5
|
+
|
6
|
+
# Initializer
|
7
|
+
# @param target_call [String] The callId of the call to be bridged.
|
8
|
+
# @param attributes [Hash] The attributes to add to the element. Defaults to an empty hash.
|
9
|
+
def initialize(target_call, attributes = {})
|
10
|
+
super("Bridge", target_call, attributes)
|
11
|
+
|
12
|
+
@attribute_map = {
|
13
|
+
bridge_complete_url: 'bridgeCompleteUrl', # Optional [String]: URL to send the Bridge Complete event to and request new BXML. If this attribute is specified, then Verbs following the <Bridge> verb will be ignored and the BXML returned in this webhook is executed on the call. If this attribute is not specified then no webhook will be sent, and execution of the verbs following the <Bridge> verb continues. May be a relative URL. Defaults to None.
|
14
|
+
bridge_complete_method: 'bridgeCompleteMethod', # Optional [String]: The HTTP method to use for the request to bridgeCompleteUrl. GET or POST. Default value is POST.
|
15
|
+
bridge_complete_fallback_url: 'bridgeCompleteFallbackUrl', # Optional [String]: A fallback url which, if provided, will be used to retry the Bridge Complete webhook delivery in case bridgeCompleteUrl fails to respond. Defaults to None.
|
16
|
+
bridge_complete_fallback_method: 'bridgeCompleteFallbackMethod', # Optional [String]: The HTTP method to use to deliver the Bridge Complete webhook to bridgeCompleteFallbackUrl. GET or POST. Default value is POST.
|
17
|
+
bridge_target_complete_url: 'bridgeTargetCompleteUrl', # Optional [String]: URL to send the Bridge Target Complete event to and request new BXML. If this attribute is specified, then the BXML returned in this webhook is executed on the target call. If this attribute is not specified then no webhook will be sent, and the target call will be hung up. May be a relative URL. Defaults to None.
|
18
|
+
bridge_target_complete_method: 'bridgeTargetCompleteMethod', # Optional [String]: The HTTP method to use for the request to bridgeTargetCompleteUrl. GET or POST. Default value is POST.
|
19
|
+
bridge_target_complete_fallback_url: 'bridgeTargetCompleteFallbackUrl', # Optional [String]: A fallback url which, if provided, will be used to retry the Bridge Target Complete webhook delivery in case bridgeTargetCompleteUrl fails to respond. Defaults to None.
|
20
|
+
bridge_target_complete_fallback_method: 'bridgeTargetCompleteFallbackMethod', # Optional [String]: The HTTP method to use to deliver the Bridge Target Complete webhook to bridgeTargetCompleteFallbackUrl. GET or POST. Default value is POST.
|
21
|
+
username: 'username', # Optional [String]: The username to send in the HTTP request to bridgeCompleteUrl and to bridgeTargetCompleteUrl. Defaults to None.
|
22
|
+
password: 'password', # Optional [String]: The password to send in the HTTP request to bridgeCompleteUrl and to bridgeTargetCompleteUrl. Defaults to None.
|
23
|
+
fallback_username: 'fallbackUsername', # Optional [String]: The username to send in the HTTP request to bridgeCompleteFallbackUrl and to bridgeTargetCompleteFallbackUrl. Defaults to None.
|
24
|
+
fallback_password: 'fallbackPassword', # Optional [String]: The password to send in the HTTP request to bridgeCompleteFallbackUrl and to bridgeTargetCompleteFallbackUrl. Defaults to None.
|
25
|
+
tag: 'tag', # Optional [String]: A custom string that will be sent with the bridgeComplete webhook and all future webhooks of the call unless overwritten by a future tag attribute or <Tag> verb, or cleared. May be cleared by setting tag="". Max length 256 characters. Defaults to None.
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Bandwidth
|
2
|
+
module Bxml
|
3
|
+
class Conference
|
4
|
+
include Bandwidth::Bxml::Verb
|
5
|
+
|
6
|
+
# Initializer
|
7
|
+
# @param name [String] The name of the conference. Can contain up to 100 characters of letters, numbers, and the symbols -, _, and .
|
8
|
+
# @param attributes [Hash] The attributes to add to the element. Defaults to an empty hash.
|
9
|
+
def initialize(name, attributes = {})
|
10
|
+
super("Conference", name, attributes)
|
11
|
+
|
12
|
+
@attribute_map = {
|
13
|
+
mute: 'mute', # Optional [Boolean]: A boolean value to indicate whether the member should be on mute in the conference. When muted, a member can hear others speak, but others cannot hear them speak. Defaults to false.
|
14
|
+
hold: 'hold', # Optional [Boolean]: A boolean value to indicate whether the member should be on hold in the conference. When on hold, a member cannot hear others, and they cannot be heard. Defaults to false.
|
15
|
+
call_ids_to_coach: 'callIdsToCoach', # Optional [String]: A comma-separated list of call ids to coach. When a call joins a conference with this attribute set, it will coach the listed calls. Those calls will be able to hear and be heard by the coach, but other calls in the conference will not hear the coach.
|
16
|
+
conference_event_url: 'conferenceEventUrl', # Optional [String]: URL to send Conference events to. The URL, method, username, and password are set by the BXML document that creates the conference, and all events related to that conference will be delivered to that same endpoint. If more calls join afterwards and also have this property (or any other webhook related properties like username and password), they will be ignored and the original webhook information will be used. This URL may be a relative endpoint.
|
17
|
+
conference_event_method: 'conferenceEventMethod', # Optional [String]: The HTTP method to use for the request to conferenceEventUrl. GET or POST. Default value is POST.
|
18
|
+
conference_event_fallback_url: 'conferenceEventFallbackUrl', # Optional [String]: A fallback url which, if provided, will be used to retry the conference webhook deliveries in case conferenceEventUrl fails to respond.
|
19
|
+
conference_event_fallback_method: 'conferenceEventFallbackMethod', # Optional [String]: The HTTP method to use to deliver the conference webhooks to conferenceEventFallbackUrl. GET or POST. Default value is POST.
|
20
|
+
username: 'username', # Optional [String]: The username to send in the HTTP request to conferenceEventUrl.
|
21
|
+
password: 'password', # Optional [String]: The password to send in the HTTP request to conferenceEventUrl.
|
22
|
+
fallback_username: 'fallbackUsername', # Optional [String]: The username to send in the HTTP request to conferenceEventFallbackUrl.
|
23
|
+
fallback_password: 'fallbackPassword', # Optional [String]: The password to send in the HTTP request to conferenceEventFallbackUrl.
|
24
|
+
tag: 'tag', # Optional [String]: A custom string that will be sent with this and all future callbacks unless overwritten by a future tag attribute or <Tag> verb, or cleared. May be cleared by setting tag="". Max length 256 characters. Defaults to None.
|
25
|
+
callback_timeout: 'callbackTimeout', # Optional [Number]: This is the timeout (in seconds) to use when delivering webhooks for the conference. If not set, it will inherit the webhook timeout from the call that creates the conference. Can be any numeric value (including decimals) between 1 and 25.
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Bandwidth
|
2
|
+
module Bxml
|
3
|
+
class Forward
|
4
|
+
include Bandwidth::Bxml::Verb
|
5
|
+
|
6
|
+
# Initializer
|
7
|
+
# @param attributes [Hash] The attributes to add to the element. Defaults to an empty hash.
|
8
|
+
def initialize(attributes = {})
|
9
|
+
super("Forward", nil, attributes)
|
10
|
+
|
11
|
+
@attribute_map = {
|
12
|
+
to: 'to', # [String]: The phone number destination of the call.
|
13
|
+
from: 'from', # Optional [String]: The phone number that the recipient will receive the call from.
|
14
|
+
call_timeout: 'callTimeout', # Optional [Number]: The number of seconds to wait before timing out the call.
|
15
|
+
diversion_treatment: 'diversionTreatment', # Optional [String]: Can be any of the following: - none: No diversion headers are sent on the outbound leg of the transferred call. - propagate: Copy the Diversion header from the inbound leg to the outbound leg. Ignored if there is no Diversion header present on the inbound leg. - stack: After propagating any Diversion header from the inbound leg to the outbound leg, stack on top another Diversion header based on the Request-URI of the inbound call. If diversionTreatment is not specified, no diversion header will be included for the transfer even if one came with the inbound call. Defaults to None.
|
16
|
+
diversion_reason: 'diversionReason', # Optional [String]: Can be any of the following values: unknown, user-busy, no-answer, unavailable, unconditional, time-of-day, do-not-disturb, deflection, follow-me, out-of-service, away. This parameter is considered only when diversionTreatment is set to stack. Defaults to None.
|
17
|
+
uui: 'uui', # Optional [String]: The value of the User-To-User header to send within the outbound INVITE when forwarding to a SIP URI. Must include the encoding parameter as specified in RFC 7433. Only base64 and jwt encoding are currently allowed. This value, including the encoding specifier, may not exceed 256 characters.
|
18
|
+
}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Bandwidth
|
2
|
+
module Bxml
|
3
|
+
class Gather
|
4
|
+
include Bandwidth::Bxml::NestableVerb
|
5
|
+
|
6
|
+
# Initializer
|
7
|
+
# @param audio_verbs [Array] XML element children. Defaults to an empty array. Valid nested audio verbs are: SpeakSentence, PlayAudio.
|
8
|
+
# @param attributes [Hash] The attributes to add to the element. Defaults to an empty hash.
|
9
|
+
def initialize(audio_verbs = [], attributes = {})
|
10
|
+
super("Gather", nil, audio_verbs, attributes)
|
11
|
+
|
12
|
+
@attribute_map = {
|
13
|
+
gather_url: 'gatherUrl', # Optional [String]: URL to send Gather event to and request new BXML. May be a relative URL.
|
14
|
+
gather_method: 'gatherMethod', # Optional [String]: The HTTP method to use for the request to gather_url. GET or POST. Default value is POST.
|
15
|
+
gather_fallback_url: 'gatherFallbackUrl', # Optional [String]: A fallback url which, if provided, will be used to retry the Gather event callback delivery in case gather_url fails to respond.
|
16
|
+
gather_fallback_method: 'gatherFallbackMethod', # Optional [String]: The HTTP method to use to deliver the Gather event callback to gather_fallback_url. GET or POST. Default value is POST.
|
17
|
+
username: 'username', # Optional [String]: The username to send in the HTTP request to gather_url.
|
18
|
+
password: 'password', # Optional [String]: The password to send in the HTTP request to gather_url.
|
19
|
+
fallback_username: 'fallbackUsername', # Optional [String]: The username to send in the HTTP request to gather_fallback_url.
|
20
|
+
fallback_password: 'fallbackPassword', # Optional [String]: The password to send in the HTTP request to gather_fallback_url.
|
21
|
+
tag: 'tag', # Optional [String]: A custom string that will be sent with this and all future callbacks unless overwritten by a future tag attribute or <Tag> verb, or cleared. May be cleared by setting tag="". Max length 256 characters.
|
22
|
+
terminating_digits: 'terminatingDigits', # Optional [String]: When any of these digits are pressed, it will terminate the Gather. Default value is "", which disables this feature.
|
23
|
+
max_digits: 'maxDigits', # Optional [Number]: Max number of digits to collect. Default value is 50. Range: decimal values between 1 - 50.
|
24
|
+
inter_digit_timeout: 'interDigitTimeout', # Optional [Number]: Time (in seconds) allowed between digit presses before automatically terminating the Gather. Default value is 5. Range: decimal values between 1 - 60.
|
25
|
+
first_digit_timeout: 'firstDigitTimeout', # Optional [Number]: Time (in seconds) to pause after any audio from nested <SpeakSentence> or <PlayAudio> verb is played (in seconds) before terminating the Gather. Default value is 5. Range: decimal values between 0 - 60.
|
26
|
+
repeat_count: 'repeat_count', # Optional [Number]: The number of times the audio prompt should be played if no digits are pressed. For example, if this value is 3, the nested audio clip will be played a maximum of three times. The delay between repetitions will be equal to first_digit_timeout. Default value is 1. repeat_count * number of verbs must not be greater than 20.
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
# Return BXML representaion of this response
|
31
|
+
# @return [String] The XML response in string format.
|
32
|
+
def to_bxml
|
33
|
+
bxml = Ox.dump(generate_xml)
|
34
|
+
return bxml.gsub(SPEAK_SENTENCE_REGEX) { |text| text.gsub(SSML_REGEX, '<\1>')}
|
35
|
+
end
|
36
|
+
|
37
|
+
# Add audio verb/s to the nested verbs array
|
38
|
+
# @param audio_verbs [SpeakSentence] || [PlayAudio] or [Array<SpeakSentence || PlayAudio>] Verb or verbs to add to the array.
|
39
|
+
def add_audio_verb(audio_verbs)
|
40
|
+
@nested_verbs.push(*audio_verbs)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|