twilio-ruby 3.11.5 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +4 -1
- data/.rubocop.yml +21 -0
- data/.rubocop_todo.yml +187 -0
- data/.travis.yml +10 -10
- data/AUTHORS.md +21 -0
- data/CHANGES.md +351 -0
- data/Gemfile +8 -1
- data/{LICENSE → LICENSE.md} +13 -11
- data/Makefile +15 -3
- data/README.md +90 -95
- data/Rakefile +59 -7
- data/VERSIONS.md +64 -0
- data/examples/examples.rb +62 -49
- data/examples/{print-call-log.rb → print_call_log.rb} +7 -7
- data/lib/rack/twilio_webhook_authentication.rb +46 -0
- data/lib/twilio-ruby/framework/domain.rb +34 -0
- data/lib/twilio-ruby/framework/error.rb +30 -0
- data/lib/twilio-ruby/framework/helper.rb +9 -0
- data/lib/twilio-ruby/framework/page.rb +101 -0
- data/lib/twilio-ruby/framework/resource.rb +21 -0
- data/lib/twilio-ruby/framework/serialize.rb +70 -0
- data/lib/twilio-ruby/framework/twilio_response.rb +15 -0
- data/lib/twilio-ruby/framework/values.rb +7 -0
- data/lib/twilio-ruby/framework/version.rb +164 -0
- data/lib/twilio-ruby/http/http_client.rb +46 -0
- data/lib/twilio-ruby/jwt/access_token.rb +232 -0
- data/lib/twilio-ruby/jwt/client_capability.rb +102 -0
- data/lib/twilio-ruby/jwt/jwt.rb +50 -0
- data/lib/twilio-ruby/jwt/task_router.rb +174 -0
- data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +370 -0
- data/lib/twilio-ruby/rest/accounts/v1/credential.rb +105 -0
- data/lib/twilio-ruby/rest/accounts/v1.rb +39 -0
- data/lib/twilio-ruby/rest/accounts.rb +36 -9
- data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +265 -0
- data/lib/twilio-ruby/rest/api/v2010/account/address.rb +509 -0
- data/lib/twilio-ruby/rest/api/v2010/account/application.rb +620 -0
- data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +331 -0
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +389 -0
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +389 -0
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +389 -0
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +370 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +296 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +317 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +427 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +379 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call.rb +799 -0
- data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +515 -0
- data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +455 -0
- data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +413 -0
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +445 -0
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +445 -0
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +445 -0
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +786 -0
- data/lib/twilio-ruby/rest/api/v2010/account/key.rb +336 -0
- data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +165 -0
- data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +355 -0
- data/lib/twilio-ruby/rest/api/v2010/account/message.rb +583 -0
- data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +153 -0
- data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +153 -0
- data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +418 -0
- data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +377 -0
- data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +345 -0
- data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +438 -0
- data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +378 -0
- data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +397 -0
- data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +375 -0
- data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +479 -0
- data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +430 -0
- data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +336 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +395 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +419 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +361 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +361 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +570 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +406 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +424 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +174 -0
- data/lib/twilio-ruby/rest/api/v2010/account/token.rb +168 -0
- data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +366 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +304 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +304 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +304 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +304 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +304 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +304 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +304 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +304 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +418 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +507 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +127 -0
- data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +161 -0
- data/lib/twilio-ruby/rest/api/v2010/account.rb +1098 -0
- data/lib/twilio-ruby/rest/api/v2010.rb +147 -0
- data/lib/twilio-ruby/rest/api.rb +234 -0
- data/lib/twilio-ruby/rest/chat/v1/credential.rb +403 -0
- data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +386 -0
- data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +431 -0
- data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +447 -0
- data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +554 -0
- data/lib/twilio-ruby/rest/chat/v1/service/role.rb +396 -0
- data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +244 -0
- data/lib/twilio-ruby/rest/chat/v1/service/user.rb +467 -0
- data/lib/twilio-ruby/rest/chat/v1/service.rb +935 -0
- data/lib/twilio-ruby/rest/chat/v1.rb +56 -0
- data/lib/twilio-ruby/rest/chat/v2/credential.rb +403 -0
- data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +386 -0
- data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +431 -0
- data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +447 -0
- data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +554 -0
- data/lib/twilio-ruby/rest/chat/v2/service/role.rb +396 -0
- data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +244 -0
- data/lib/twilio-ruby/rest/chat/v2/service/user.rb +467 -0
- data/lib/twilio-ruby/rest/chat/v2/service.rb +688 -0
- data/lib/twilio-ruby/rest/chat/v2.rb +56 -0
- data/lib/twilio-ruby/rest/chat.rb +59 -0
- data/lib/twilio-ruby/rest/client.rb +307 -215
- data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +403 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +386 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +431 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +447 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +554 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +396 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +244 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +467 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +935 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1.rb +56 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +403 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +386 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +431 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +447 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +554 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +396 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +244 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +467 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +688 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2.rb +56 -0
- data/lib/twilio-ruby/rest/ip_messaging.rb +59 -0
- data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +224 -0
- data/lib/twilio-ruby/rest/lookups/v1.rb +41 -0
- data/lib/twilio-ruby/rest/lookups.rb +44 -0
- data/lib/twilio-ruby/rest/monitor/v1/alert.rb +398 -0
- data/lib/twilio-ruby/rest/monitor/v1/event.rb +381 -0
- data/lib/twilio-ruby/rest/monitor/v1.rb +56 -0
- data/lib/twilio-ruby/rest/monitor.rb +52 -0
- data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +291 -0
- data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +129 -0
- data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +284 -0
- data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +129 -0
- data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +291 -0
- data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +208 -0
- data/lib/twilio-ruby/rest/pricing/v1/voice.rb +150 -0
- data/lib/twilio-ruby/rest/pricing/v1.rb +65 -0
- data/lib/twilio-ruby/rest/pricing.rb +54 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +399 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +418 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +461 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +584 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +315 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +230 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +243 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +527 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +461 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +406 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +223 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +226 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +585 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +230 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +475 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +212 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +712 -0
- data/lib/twilio-ruby/rest/taskrouter/v1.rb +41 -0
- data/lib/twilio-ruby/rest/taskrouter.rb +44 -0
- data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +345 -0
- data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +345 -0
- data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +430 -0
- data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +478 -0
- data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +577 -0
- data/lib/twilio-ruby/rest/trunking/v1.rb +41 -0
- data/lib/twilio-ruby/rest/trunking.rb +44 -0
- data/lib/twilio-ruby/rest/video/v1/recording.rb +382 -0
- data/lib/twilio-ruby/rest/video/v1/room/recording.rb +381 -0
- data/lib/twilio-ruby/rest/video/v1/room.rb +485 -0
- data/lib/twilio-ruby/rest/video/v1.rb +56 -0
- data/lib/twilio-ruby/rest/video.rb +52 -0
- data/lib/twilio-ruby/security/request_validator.rb +54 -0
- data/lib/twilio-ruby/twiml/messaging_response.rb +141 -0
- data/lib/twilio-ruby/twiml/twiml.rb +69 -0
- data/lib/twilio-ruby/twiml/voice_response.rb +916 -0
- data/lib/twilio-ruby/util/configuration.rb +7 -0
- data/lib/twilio-ruby/util.rb +1 -1
- data/lib/twilio-ruby/version.rb +1 -1
- data/lib/twilio-ruby.rb +52 -49
- data/spec/framework/serialize_spec.rb +59 -0
- data/spec/holodeck/holodeck.rb +61 -0
- data/spec/holodeck/hologram.rb +4 -0
- data/spec/integration/accounts/v1/credential/public_key_spec.rb +226 -0
- data/spec/integration/accounts/v1/credential_spec.rb +10 -0
- data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +90 -0
- data/spec/integration/api/v2010/account/address_spec.rb +267 -0
- data/spec/integration/api/v2010/account/application_spec.rb +286 -0
- data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +137 -0
- data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +101 -0
- data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +100 -0
- data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +100 -0
- data/spec/integration/api/v2010/account/available_phone_number_spec.rb +128 -0
- data/spec/integration/api/v2010/account/call/feedback_spec.rb +141 -0
- data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +149 -0
- data/spec/integration/api/v2010/account/call/notification_spec.rb +179 -0
- data/spec/integration/api/v2010/account/call/recording_spec.rb +178 -0
- data/spec/integration/api/v2010/account/call_spec.rb +319 -0
- data/spec/integration/api/v2010/account/conference/participant_spec.rb +283 -0
- data/spec/integration/api/v2010/account/conference_spec.rb +174 -0
- data/spec/integration/api/v2010/account/connect_app_spec.rb +177 -0
- data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +181 -0
- data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +181 -0
- data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +181 -0
- data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +331 -0
- data/spec/integration/api/v2010/account/key_spec.rb +178 -0
- data/spec/integration/api/v2010/account/message/feedback_spec.rb +48 -0
- data/spec/integration/api/v2010/account/message/media_spec.rb +162 -0
- data/spec/integration/api/v2010/account/message_spec.rb +297 -0
- data/spec/integration/api/v2010/account/new_key_spec.rb +45 -0
- data/spec/integration/api/v2010/account/new_signing_key_spec.rb +45 -0
- data/spec/integration/api/v2010/account/notification_spec.rb +172 -0
- data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +193 -0
- data/spec/integration/api/v2010/account/queue/member_spec.rb +170 -0
- data/spec/integration/api/v2010/account/queue_spec.rb +242 -0
- data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +175 -0
- data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +166 -0
- data/spec/integration/api/v2010/account/recording/transcription_spec.rb +174 -0
- data/spec/integration/api/v2010/account/recording_spec.rb +179 -0
- data/spec/integration/api/v2010/account/short_code_spec.rb +180 -0
- data/spec/integration/api/v2010/account/signing_key_spec.rb +178 -0
- data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +257 -0
- data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +246 -0
- data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +210 -0
- data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +220 -0
- data/spec/integration/api/v2010/account/sip/domain_spec.rb +283 -0
- data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +261 -0
- data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +256 -0
- data/spec/integration/api/v2010/account/sip_spec.rb +10 -0
- data/spec/integration/api/v2010/account/token_spec.rb +56 -0
- data/spec/integration/api/v2010/account/transcription_spec.rb +167 -0
- data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +111 -0
- data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +111 -0
- data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +111 -0
- data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +111 -0
- data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +111 -0
- data/spec/integration/api/v2010/account/usage/record/today_spec.rb +111 -0
- data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +111 -0
- data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +111 -0
- data/spec/integration/api/v2010/account/usage/record_spec.rb +108 -0
- data/spec/integration/api/v2010/account/usage/trigger_spec.rb +283 -0
- data/spec/integration/api/v2010/account/usage_spec.rb +10 -0
- data/spec/integration/api/v2010/account/validation_request_spec.rb +48 -0
- data/spec/integration/api/v2010/account_spec.rb +254 -0
- data/spec/integration/chat/v1/credential_spec.rb +223 -0
- data/spec/integration/chat/v1/service/channel/invite_spec.rb +210 -0
- data/spec/integration/chat/v1/service/channel/member_spec.rb +284 -0
- data/spec/integration/chat/v1/service/channel/message_spec.rb +294 -0
- data/spec/integration/chat/v1/service/channel_spec.rb +275 -0
- data/spec/integration/chat/v1/service/role_spec.rb +263 -0
- data/spec/integration/chat/v1/service/user/user_channel_spec.rb +92 -0
- data/spec/integration/chat/v1/service/user_spec.rb +266 -0
- data/spec/integration/chat/v1/service_spec.rb +299 -0
- data/spec/integration/chat/v2/credential_spec.rb +223 -0
- data/spec/integration/chat/v2/service/channel/invite_spec.rb +210 -0
- data/spec/integration/chat/v2/service/channel/member_spec.rb +284 -0
- data/spec/integration/chat/v2/service/channel/message_spec.rb +294 -0
- data/spec/integration/chat/v2/service/channel_spec.rb +275 -0
- data/spec/integration/chat/v2/service/role_spec.rb +263 -0
- data/spec/integration/chat/v2/service/user/user_channel_spec.rb +92 -0
- data/spec/integration/chat/v2/service/user_spec.rb +266 -0
- data/spec/integration/chat/v2/service_spec.rb +325 -0
- data/spec/integration/ip_messaging/v1/credential_spec.rb +223 -0
- data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +210 -0
- data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +284 -0
- data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +294 -0
- data/spec/integration/ip_messaging/v1/service/channel_spec.rb +275 -0
- data/spec/integration/ip_messaging/v1/service/role_spec.rb +263 -0
- data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +92 -0
- data/spec/integration/ip_messaging/v1/service/user_spec.rb +266 -0
- data/spec/integration/ip_messaging/v1/service_spec.rb +299 -0
- data/spec/integration/ip_messaging/v2/credential_spec.rb +223 -0
- data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +210 -0
- data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +284 -0
- data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +294 -0
- data/spec/integration/ip_messaging/v2/service/channel_spec.rb +275 -0
- data/spec/integration/ip_messaging/v2/service/role_spec.rb +263 -0
- data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +92 -0
- data/spec/integration/ip_messaging/v2/service/user_spec.rb +266 -0
- data/spec/integration/ip_messaging/v2/service_spec.rb +325 -0
- data/spec/integration/lookups/v1/phone_number_spec.rb +60 -0
- data/spec/integration/monitor/v1/alert_spec.rb +161 -0
- data/spec/integration/monitor/v1/event_spec.rb +148 -0
- data/spec/integration/pricing/v1/messaging/country_spec.rb +137 -0
- data/spec/integration/pricing/v1/messaging_spec.rb +10 -0
- data/spec/integration/pricing/v1/phone_number/country_spec.rb +128 -0
- data/spec/integration/pricing/v1/phone_number_spec.rb +10 -0
- data/spec/integration/pricing/v1/voice/country_spec.rb +266 -0
- data/spec/integration/pricing/v1/voice/number_spec.rb +54 -0
- data/spec/integration/pricing/v1/voice_spec.rb +10 -0
- data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +236 -0
- data/spec/integration/taskrouter/v1/workspace/event_spec.rb +157 -0
- data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +192 -0
- data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +127 -0
- data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +106 -0
- data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +144 -0
- data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +292 -0
- data/spec/integration/taskrouter/v1/workspace/task_spec.rb +324 -0
- data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +192 -0
- data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +201 -0
- data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +107 -0
- data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +141 -0
- data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +282 -0
- data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +69 -0
- data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +265 -0
- data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +103 -0
- data/spec/integration/taskrouter/v1/workspace_spec.rb +287 -0
- data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +192 -0
- data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +192 -0
- data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +250 -0
- data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +267 -0
- data/spec/integration/trunking/v1/trunk_spec.rb +276 -0
- data/spec/integration/video/v1/recording_spec.rb +165 -0
- data/spec/integration/video/v1/room/recording_spec.rb +146 -0
- data/spec/integration/video/v1/room_spec.rb +237 -0
- data/spec/jwt/access_token_spec.rb +130 -0
- data/spec/jwt/client_capability_spec.rb +104 -0
- data/spec/jwt/task_router_spec.rb +172 -0
- data/spec/rack/twilio_webhook_authentication_spec.rb +106 -0
- data/spec/security/request_validator_spec.rb +113 -0
- data/spec/spec_helper.rb +29 -3
- data/spec/support/fakeweb.rb +2 -0
- data/spec/twilio_spec.rb +15 -0
- data/spec/twiml/messaging_response_spec.rb +90 -0
- data/spec/twiml/voice_response_spec.rb +474 -0
- data/spec/util/configuration_spec.rb +15 -0
- data/spec/util/url_encode_spec.rb +2 -2
- data/twilio-ruby.gemspec +32 -26
- metadata +502 -152
- data/CHANGES +0 -47
- data/docs/Makefile +0 -130
- data/docs/_themes/LICENSE +0 -45
- data/docs/_themes/README.rst +0 -25
- data/docs/_themes/flask_theme_support.py +0 -86
- data/docs/_themes/kr/layout.html +0 -32
- data/docs/_themes/kr/relations.html +0 -19
- data/docs/_themes/kr/static/flasky.css_t +0 -469
- data/docs/_themes/kr/static/small_flask.css +0 -70
- data/docs/_themes/kr/theme.conf +0 -7
- data/docs/_themes/kr_small/layout.html +0 -22
- data/docs/_themes/kr_small/static/flasky.css_t +0 -287
- data/docs/_themes/kr_small/theme.conf +0 -10
- data/docs/changelog.rst +0 -1
- data/docs/conf.py +0 -266
- data/docs/faq.rst +0 -42
- data/docs/getting-started.rst +0 -91
- data/docs/index.rst +0 -109
- data/docs/make.bat +0 -170
- data/docs/src/pip-delete-this-directory.txt +0 -5
- data/docs/usage/accounts.rst +0 -89
- data/docs/usage/applications.rst +0 -108
- data/docs/usage/basics.rst +0 -102
- data/docs/usage/caller-ids.rst +0 -45
- data/docs/usage/conferences.rst +0 -108
- data/docs/usage/errors.rst +0 -29
- data/docs/usage/messages.rst +0 -109
- data/docs/usage/notifications.rst +0 -70
- data/docs/usage/phone-calls.rst +0 -166
- data/docs/usage/phone-numbers.rst +0 -174
- data/docs/usage/queues.rst +0 -112
- data/docs/usage/recordings.rst +0 -96
- data/docs/usage/sip.rst +0 -103
- data/docs/usage/token-generation.rst +0 -81
- data/docs/usage/transcriptions.rst +0 -31
- data/docs/usage/twiml.rst +0 -69
- data/docs/usage/validation.rst +0 -71
- data/lib/twilio-ruby/rest/applications.rb +0 -6
- data/lib/twilio-ruby/rest/authorized_connect_apps.rb +0 -6
- data/lib/twilio-ruby/rest/available_phone_numbers/country.rb +0 -10
- data/lib/twilio-ruby/rest/available_phone_numbers/local.rb +0 -11
- data/lib/twilio-ruby/rest/available_phone_numbers/mobile.rb +0 -11
- data/lib/twilio-ruby/rest/available_phone_numbers/toll_free.rb +0 -11
- data/lib/twilio-ruby/rest/available_phone_numbers.rb +0 -13
- data/lib/twilio-ruby/rest/calls.rb +0 -28
- data/lib/twilio-ruby/rest/conferences/participants.rb +0 -23
- data/lib/twilio-ruby/rest/conferences.rb +0 -12
- data/lib/twilio-ruby/rest/connect_apps.rb +0 -6
- data/lib/twilio-ruby/rest/errors.rb +0 -14
- data/lib/twilio-ruby/rest/incoming_phone_numbers/local.rb +0 -13
- data/lib/twilio-ruby/rest/incoming_phone_numbers/mobile.rb +0 -13
- data/lib/twilio-ruby/rest/incoming_phone_numbers/toll_free.rb +0 -13
- data/lib/twilio-ruby/rest/incoming_phone_numbers.rb +0 -17
- data/lib/twilio-ruby/rest/instance_resource.rb +0 -101
- data/lib/twilio-ruby/rest/list_resource.rb +0 -110
- data/lib/twilio-ruby/rest/media.rb +0 -14
- data/lib/twilio-ruby/rest/messages.rb +0 -17
- data/lib/twilio-ruby/rest/notifications.rb +0 -6
- data/lib/twilio-ruby/rest/outgoing_caller_ids.rb +0 -25
- data/lib/twilio-ruby/rest/queues/members.rb +0 -29
- data/lib/twilio-ruby/rest/queues.rb +0 -12
- data/lib/twilio-ruby/rest/recordings.rb +0 -35
- data/lib/twilio-ruby/rest/sandbox.rb +0 -5
- data/lib/twilio-ruby/rest/sip/credential_lists/credentials.rb +0 -6
- data/lib/twilio-ruby/rest/sip/credential_lists.rb +0 -11
- data/lib/twilio-ruby/rest/sip/domains/credential_list_mappings.rb +0 -6
- data/lib/twilio-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +0 -6
- data/lib/twilio-ruby/rest/sip/domains.rb +0 -12
- data/lib/twilio-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +0 -6
- data/lib/twilio-ruby/rest/sip/ip_access_control_lists.rb +0 -11
- data/lib/twilio-ruby/rest/sip.rb +0 -12
- data/lib/twilio-ruby/rest/sms/messages.rb +0 -15
- data/lib/twilio-ruby/rest/sms/short_codes.rb +0 -8
- data/lib/twilio-ruby/rest/sms.rb +0 -11
- data/lib/twilio-ruby/rest/transcriptions.rb +0 -6
- data/lib/twilio-ruby/rest/usage/records.rb +0 -21
- data/lib/twilio-ruby/rest/usage/triggers.rb +0 -12
- data/lib/twilio-ruby/rest/usage.rb +0 -10
- data/lib/twilio-ruby/rest/utils.rb +0 -25
- data/lib/twilio-ruby/twiml/response.rb +0 -15
- data/lib/twilio-ruby/util/capability.rb +0 -61
- data/lib/twilio-ruby/util/request_validator.rb +0 -22
- data/spec/rest/account_spec.rb +0 -58
- data/spec/rest/call_spec.rb +0 -18
- data/spec/rest/client_spec.rb +0 -100
- data/spec/rest/conference_spec.rb +0 -9
- data/spec/rest/instance_resource_spec.rb +0 -15
- data/spec/rest/message_spec.rb +0 -12
- data/spec/rest/numbers_spec.rb +0 -46
- data/spec/rest/queue_spec.rb +0 -9
- data/spec/rest/recording_spec.rb +0 -9
- data/spec/util/capability_spec.rb +0 -137
- data/spec/util/request_validator_spec.rb +0 -65
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
class Participants < ListResource
|
|
4
|
-
def initialize(path, client)
|
|
5
|
-
super
|
|
6
|
-
# hard-code the json key since participants don't have sids
|
|
7
|
-
@instance_id_key = 'call_sid'
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
class Participant < InstanceResource
|
|
12
|
-
def mute
|
|
13
|
-
update :muted => 'true'
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def unmute
|
|
17
|
-
update :muted => 'false'
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
alias :kick :delete
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
module NumberType
|
|
4
|
-
class Local < ListResource
|
|
5
|
-
def initialize(path, client)
|
|
6
|
-
@path, @client = path, client
|
|
7
|
-
@instance_class = Twilio::REST::IncomingPhoneNumber
|
|
8
|
-
@list_key, @instance_id_key = 'incoming_phone_numbers', 'sid'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
module NumberType
|
|
4
|
-
class Mobile < ListResource
|
|
5
|
-
def initialize(path, client)
|
|
6
|
-
@path, @client = path, client
|
|
7
|
-
@instance_class = Twilio::REST::IncomingPhoneNumber
|
|
8
|
-
@list_key, @instance_id_key = 'incoming_phone_numbers', 'sid'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
module NumberType
|
|
4
|
-
class TollFree < ListResource
|
|
5
|
-
def initialize(path, client)
|
|
6
|
-
@path, @client = path, client
|
|
7
|
-
@instance_class = Twilio::REST::IncomingPhoneNumber
|
|
8
|
-
@list_key, @instance_id_key = 'incoming_phone_numbers', 'sid'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
class IncomingPhoneNumbers < ListResource
|
|
4
|
-
def initialize(path, client)
|
|
5
|
-
super
|
|
6
|
-
@submodule = :NumberType
|
|
7
|
-
resource :mobile, :local, :toll_free
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def buy(phone_number)
|
|
11
|
-
create :phone_number => phone_number
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
class IncomingPhoneNumber < InstanceResource; end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
##
|
|
4
|
-
# A class to wrap an instance resource (like a call or application) within
|
|
5
|
-
# the Twilio API. All other instance resource classes within this library
|
|
6
|
-
# inherit from this class. You shouldn't need to instantiate this class
|
|
7
|
-
# directly. But reviewing the available methods is informative since they
|
|
8
|
-
# are rarely overridden in the inheriting class.
|
|
9
|
-
class InstanceResource
|
|
10
|
-
include Utils
|
|
11
|
-
|
|
12
|
-
##
|
|
13
|
-
# Instantiate a new instance resource object. You must pass the +path+ of
|
|
14
|
-
# the instance (e.g. /2010-04-01/Accounts/AC123/Calls/CA456) as well as a
|
|
15
|
-
# +client+ object that responds to #get #post and #delete. This client
|
|
16
|
-
# is meant to be an instance of Twilio::REST::Client but could just as
|
|
17
|
-
# well be a mock object if you want to test the interface. The optional
|
|
18
|
-
# +params+ hash will be converted into attributes on the instantiated
|
|
19
|
-
# object.
|
|
20
|
-
def initialize(path, client, params = {})
|
|
21
|
-
@path, @client = path, client
|
|
22
|
-
set_up_properties_from params
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def inspect # :nodoc:
|
|
26
|
-
"<#{self.class} @path=#{@path}>"
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
##
|
|
30
|
-
# Update the properties of this instance resource using the key/value
|
|
31
|
-
# pairs in +params+. This makes an HTTP POST request to <tt>@path</tt>
|
|
32
|
-
# to handle the update. For example, to update the +VoiceUrl+ of a Twilio
|
|
33
|
-
# Application you could write:
|
|
34
|
-
#
|
|
35
|
-
# @app.update :voice_url => 'http://my.other.app.com/handle_voice'
|
|
36
|
-
#
|
|
37
|
-
# After returning, the object will contain the most recent state of the
|
|
38
|
-
# instance resource, including the newly updated properties.
|
|
39
|
-
def update(params = {})
|
|
40
|
-
raise "Can't update a resource without a REST Client" unless @client
|
|
41
|
-
set_up_properties_from(@client.post(@path, params))
|
|
42
|
-
self
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
##
|
|
46
|
-
# Refresh the attributes of this instance resource object by fetching it
|
|
47
|
-
# from Twilio. Calling this makes an HTTP GET request to <tt>@path</tt>.
|
|
48
|
-
def refresh
|
|
49
|
-
raise "Can't refresh a resource without a REST Client" unless @client
|
|
50
|
-
@updated = false
|
|
51
|
-
set_up_properties_from(@client.get(@path))
|
|
52
|
-
self
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
##
|
|
56
|
-
# Delete an instance resource from Twilio. This operation isn't always
|
|
57
|
-
# supported. For instance, you can't delete an SMS. Calling this method
|
|
58
|
-
# makes an HTTP DELETE request to <tt>@path</tt>.
|
|
59
|
-
def delete
|
|
60
|
-
raise "Can't delete a resource without a REST Client" unless @client
|
|
61
|
-
@client.delete @path
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
##
|
|
65
|
-
# Lazily load attributes of the instance resource by waiting to fetch it
|
|
66
|
-
# until an attempt is made to access an unknown attribute.
|
|
67
|
-
def method_missing(method, *args)
|
|
68
|
-
super if @updated
|
|
69
|
-
set_up_properties_from(@client.get(@path))
|
|
70
|
-
self.send method, *args
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
protected
|
|
74
|
-
|
|
75
|
-
def set_up_properties_from(hash)
|
|
76
|
-
eigenclass = class << self; self; end
|
|
77
|
-
hash.each do |p,v|
|
|
78
|
-
property = detwilify p
|
|
79
|
-
unless ['client', 'updated'].include? property
|
|
80
|
-
eigenclass.send :define_method, property.to_sym, &lambda {v}
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
@updated = !hash.keys.empty?
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def resource(*resources)
|
|
87
|
-
custom_resource_names = {:sms => 'SMS', :sip => 'SIP'}
|
|
88
|
-
resources.each do |r|
|
|
89
|
-
resource = twilify r
|
|
90
|
-
relative_path = custom_resource_names.fetch(r, resource)
|
|
91
|
-
path = "#{@path}/#{relative_path}"
|
|
92
|
-
enclosing_module = @submodule == nil ? (Twilio::REST) : (Twilio::REST.const_get(@submodule))
|
|
93
|
-
resource_class = enclosing_module.const_get resource
|
|
94
|
-
instance_variable_set("@#{r}", resource_class.new(path, @client))
|
|
95
|
-
end
|
|
96
|
-
self.class.instance_eval {attr_reader *resources}
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
class ListResource
|
|
4
|
-
include Utils
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def initialize(path, client)
|
|
8
|
-
custom_names = {"Media" => "MediaInstance", "IpAddresses" => "IpAddress"}
|
|
9
|
-
@path, @client = path, client
|
|
10
|
-
resource_name = self.class.name.split('::')[-1]
|
|
11
|
-
instance_name = custom_names.fetch(resource_name, resource_name.chop)
|
|
12
|
-
|
|
13
|
-
# The next line grabs the enclosing module. Necessary for resources
|
|
14
|
-
# contained in their own submodule like /SMS/Messages
|
|
15
|
-
parent_module = self.class.to_s.split('::')[-2]
|
|
16
|
-
full_module_path = parent_module == "REST" ? (Twilio::REST) : (Twilio::REST.const_get parent_module)
|
|
17
|
-
|
|
18
|
-
@instance_class = full_module_path.const_get instance_name
|
|
19
|
-
@list_key, @instance_id_key = detwilify(resource_name), 'sid'
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def inspect # :nodoc:
|
|
23
|
-
"<#{self.class} @path=#{@path}>"
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
##
|
|
27
|
-
# Grab a list of this kind of resource and return it as an array. The
|
|
28
|
-
# array includes a special attribute named +total+ which will return the
|
|
29
|
-
# total number of items in the list on Twilio's server. This may differ
|
|
30
|
-
# from the +size+ and +length+ attributes of the returned array since
|
|
31
|
-
# by default Twilio will only return 50 resources, and the maximum number
|
|
32
|
-
# of resources you can request is 1000.
|
|
33
|
-
#
|
|
34
|
-
# The optional +params+ hash allows you to filter the list returned. The
|
|
35
|
-
# filters for each list resource type are defined by Twilio.
|
|
36
|
-
def list(params={}, full_path=false)
|
|
37
|
-
raise "Can't get a resource list without a REST Client" unless @client
|
|
38
|
-
response = @client.get @path, params, full_path
|
|
39
|
-
resources = response[@list_key]
|
|
40
|
-
path = full_path ? @path.split('.')[0] : @path
|
|
41
|
-
resource_list = resources.map do |resource|
|
|
42
|
-
@instance_class.new "#{path}/#{resource[@instance_id_key]}", @client,
|
|
43
|
-
resource
|
|
44
|
-
end
|
|
45
|
-
# set the +total+ and +next_page+ properties on the array
|
|
46
|
-
client, list_class = @client, self.class
|
|
47
|
-
resource_list.instance_eval do
|
|
48
|
-
eigenclass = class << self; self; end
|
|
49
|
-
eigenclass.send :define_method, :total, &lambda {response['total']}
|
|
50
|
-
eigenclass.send :define_method, :next_page, &lambda {
|
|
51
|
-
if response['next_page_uri']
|
|
52
|
-
list_class.new(response['next_page_uri'], client).list({}, true)
|
|
53
|
-
else
|
|
54
|
-
[]
|
|
55
|
-
end
|
|
56
|
-
}
|
|
57
|
-
end
|
|
58
|
-
resource_list
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
##
|
|
62
|
-
# Ask Twilio for the total number of items in the list.
|
|
63
|
-
# Calling this method makes an HTTP GET request to <tt>@path</tt> with a
|
|
64
|
-
# page size parameter of 1 to minimize data over the wire while still
|
|
65
|
-
# obtaining the total. Don't use this if you are planning to
|
|
66
|
-
# call #list anyway, since the array returned from #list will have a
|
|
67
|
-
# +total+ attribute as well.
|
|
68
|
-
def total
|
|
69
|
-
raise "Can't get a resource total without a REST Client" unless @client
|
|
70
|
-
@client.get(@path, :page_size => 1)['total']
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
##
|
|
74
|
-
# Return an empty instance resource object with the proper path. Note that
|
|
75
|
-
# this will never raise a Twilio::REST::RequestError on 404 since no HTTP
|
|
76
|
-
# request is made. The HTTP request is made when attempting to access an
|
|
77
|
-
# attribute of the returned instance resource object, such as
|
|
78
|
-
# its #date_created or #voice_url attributes.
|
|
79
|
-
def get(sid)
|
|
80
|
-
@instance_class.new "#{@path}/#{sid}", @client
|
|
81
|
-
end
|
|
82
|
-
alias :find :get # for the ActiveRecord lovers
|
|
83
|
-
|
|
84
|
-
##
|
|
85
|
-
# Return a newly created resource. Some +params+ may be required. Consult
|
|
86
|
-
# the Twilio REST API documentation related to the kind of resource you
|
|
87
|
-
# are attempting to create for details. Calling this method makes an HTTP
|
|
88
|
-
# POST request to <tt>@path</tt> with the given params
|
|
89
|
-
def create(params={})
|
|
90
|
-
raise "Can't create a resource without a REST Client" unless @client
|
|
91
|
-
response = @client.post @path, params
|
|
92
|
-
@instance_class.new "#{@path}/#{response[@instance_id_key]}", @client,
|
|
93
|
-
response
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def resource(*resources)
|
|
97
|
-
custom_resource_names = {:sms => 'SMS', :sip => 'SIP'}
|
|
98
|
-
resources.each do |r|
|
|
99
|
-
resource = twilify r
|
|
100
|
-
relative_path = custom_resource_names.fetch(r, resource)
|
|
101
|
-
path = "#{@path}/#{relative_path}"
|
|
102
|
-
enclosing_module = @submodule == nil ? (Twilio::REST) : (Twilio::REST.const_get(@submodule))
|
|
103
|
-
resource_class = enclosing_module.const_get resource
|
|
104
|
-
instance_variable_set("@#{r}", resource_class.new(path, @client))
|
|
105
|
-
end
|
|
106
|
-
self.class.instance_eval {attr_reader *resources}
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
class Messages < ListResource
|
|
4
|
-
def initialize(path, client)
|
|
5
|
-
path.gsub! '/SMS', ''
|
|
6
|
-
super
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
class Message < InstanceResource
|
|
11
|
-
def initialize(path, client, params={})
|
|
12
|
-
super
|
|
13
|
-
resource :media
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
class OutgoingCallerIds < ListResource
|
|
4
|
-
def add(phone_number)
|
|
5
|
-
create :phone_number => phone_number
|
|
6
|
-
end
|
|
7
|
-
alias :verify :add
|
|
8
|
-
|
|
9
|
-
##
|
|
10
|
-
# Override ListResource#create to instantiate the proper instance class.
|
|
11
|
-
# This doesn't actually matter since all properties are lazily loaded into
|
|
12
|
-
# whatever object is instantiated. But it might matter in the future.
|
|
13
|
-
def create(params={}) # :nodoc:
|
|
14
|
-
old_instance_class = @instance_class
|
|
15
|
-
@instance_class = Twilio::REST::PhoneNumberVerificationRequest
|
|
16
|
-
verification_request = super
|
|
17
|
-
@instance_class = old_instance_class
|
|
18
|
-
verification_request
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
class OutgoingCallerId < InstanceResource; end
|
|
23
|
-
class PhoneNumberVerificationRequest < InstanceResource; end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
class Members < ListResource
|
|
4
|
-
def initialize(path, client)
|
|
5
|
-
super
|
|
6
|
-
# hard-code the json keys since members are special
|
|
7
|
-
@list_key, @instance_id_key = 'queue_members', 'call_sid'
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def front
|
|
11
|
-
@instance_class.new "#{@path}/Front", @client
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def front!
|
|
15
|
-
front.refresh
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def dequeue(url, method='POST')
|
|
19
|
-
front.dequeue url, method
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
class Member < InstanceResource
|
|
24
|
-
def dequeue(url, method='POST')
|
|
25
|
-
update :url => url, :method => method
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
class Recordings < ListResource; end
|
|
4
|
-
|
|
5
|
-
class Recording < InstanceResource
|
|
6
|
-
def initialize(path, client, params={})
|
|
7
|
-
path.sub! /\/Calls\/CA[^\/]+/, ''
|
|
8
|
-
super path, client, params
|
|
9
|
-
resource :transcriptions
|
|
10
|
-
# grab a reference to the client's connection object for streaming
|
|
11
|
-
@connection = @client.instance_variable_get :@connection
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
##
|
|
15
|
-
# Return the wav URL for this recording.
|
|
16
|
-
def wav
|
|
17
|
-
"https://#{@connection.address}#{@path}.wav"
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def wav!(&block)
|
|
21
|
-
@connection.request_get @path, &block
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
##
|
|
25
|
-
# Return the mp3 URL for this recording.
|
|
26
|
-
def mp3
|
|
27
|
-
"https://#{@connection.address}#{@path}.mp3"
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def mp3!(&block)
|
|
31
|
-
@connection.request_get "#{@path}.mp3", &block
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
data/lib/twilio-ruby/rest/sip.rb
DELETED
data/lib/twilio-ruby/rest/sms.rb
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module Twilio
|
|
2
|
-
module REST
|
|
3
|
-
class Records < ListResource
|
|
4
|
-
|
|
5
|
-
SUBRESOURCES = [:daily, :monthly, :yearly, :all_time, :today, :yesterday,
|
|
6
|
-
:this_month, :last_month]
|
|
7
|
-
|
|
8
|
-
def initialize(path, client)
|
|
9
|
-
super
|
|
10
|
-
@list_key = 'usage_records'
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def method_missing(method, *args)
|
|
14
|
-
return super unless SUBRESOURCES.include? method
|
|
15
|
-
self.class.new "#{@path}/#{twilify(method)}", @client
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
class Record < InstanceResource; end
|
|
20
|
-
end
|
|
21
|
-
end
|