twilio-ruby 4.13.0 → 5.0.0.alpha1
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/.rubocop.yml +21 -0
- data/.rubocop_todo.yml +187 -0
- data/.travis.yml +13 -0
- data/AUTHORS.md +46 -32
- data/CHANGES.md +87 -65
- data/Gemfile +2 -2
- data/LICENSE.md +12 -12
- data/Makefile +13 -3
- data/README.md +50 -139
- data/Rakefile +54 -0
- data/VERSIONS.md +64 -0
- data/examples/examples.rb +46 -57
- data/examples/{print-call-log.rb → print_call_log.rb} +7 -7
- data/lib/rack/twilio_webhook_authentication.rb +5 -6
- data/lib/twilio-ruby.rb +30 -102
- 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.rb +36 -10
- data/lib/twilio-ruby/rest/accounts/v1.rb +39 -0
- data/lib/twilio-ruby/rest/accounts/v1/credential.rb +105 -0
- data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +370 -0
- data/lib/twilio-ruby/rest/api.rb +234 -0
- data/lib/twilio-ruby/rest/api/v2010.rb +147 -0
- data/lib/twilio-ruby/rest/api/v2010/account.rb +1098 -0
- data/lib/twilio-ruby/rest/api/v2010/account/address.rb +509 -0
- data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +265 -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.rb +370 -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/call.rb +799 -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/conference.rb +455 -0
- data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +515 -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.rb +823 -0
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +431 -0
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +350 -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/key.rb +336 -0
- data/lib/twilio-ruby/rest/api/v2010/account/message.rb +583 -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/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.rb +438 -0
- data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +345 -0
- data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +479 -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/add_on_result/payload.rb +378 -0
- data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +375 -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.rb +174 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +419 -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/domain.rb +570 -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/ip_access_control_list.rb +424 -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/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.rb +127 -0
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +418 -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/trigger.rb +507 -0
- data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +161 -0
- data/lib/twilio-ruby/rest/chat.rb +59 -0
- data/lib/twilio-ruby/rest/chat/v1.rb +56 -0
- data/lib/twilio-ruby/rest/chat/v1/credential.rb +403 -0
- data/lib/twilio-ruby/rest/chat/v1/service.rb +935 -0
- data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +554 -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/role.rb +396 -0
- data/lib/twilio-ruby/rest/chat/v1/service/user.rb +467 -0
- data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +244 -0
- data/lib/twilio-ruby/rest/chat/v2.rb +56 -0
- data/lib/twilio-ruby/rest/chat/v2/credential.rb +403 -0
- data/lib/twilio-ruby/rest/chat/v2/service.rb +688 -0
- data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +554 -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/role.rb +396 -0
- data/lib/twilio-ruby/rest/chat/v2/service/user.rb +467 -0
- data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +244 -0
- data/lib/twilio-ruby/rest/client.rb +352 -153
- data/lib/twilio-ruby/rest/fax.rb +44 -0
- data/lib/twilio-ruby/rest/fax/v1.rb +41 -0
- data/lib/twilio-ruby/rest/fax/v1/fax.rb +541 -0
- data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +326 -0
- data/lib/twilio-ruby/rest/ip_messaging.rb +59 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1.rb +56 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +403 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +935 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +554 -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/role.rb +396 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +467 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +244 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2.rb +56 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +403 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +688 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +554 -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/role.rb +396 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +467 -0
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +244 -0
- data/lib/twilio-ruby/rest/lookups.rb +44 -0
- data/lib/twilio-ruby/rest/lookups/v1.rb +41 -0
- data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +224 -0
- data/lib/twilio-ruby/rest/messaging.rb +44 -0
- data/lib/twilio-ruby/rest/messaging/v1.rb +41 -0
- data/lib/twilio-ruby/rest/messaging/v1/service.rb +637 -0
- data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +352 -0
- data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +359 -0
- data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +359 -0
- data/lib/twilio-ruby/rest/monitor.rb +52 -0
- data/lib/twilio-ruby/rest/monitor/v1.rb +56 -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/notify.rb +52 -0
- data/lib/twilio-ruby/rest/notify/v1.rb +56 -0
- data/lib/twilio-ruby/rest/notify/v1/credential.rb +403 -0
- data/lib/twilio-ruby/rest/notify/v1/service.rb +639 -0
- data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +430 -0
- data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +288 -0
- data/lib/twilio-ruby/rest/notify/v1/service/segment.rb +224 -0
- data/lib/twilio-ruby/rest/notify/v1/service/user.rb +445 -0
- data/lib/twilio-ruby/rest/notify/v1/service/user/segment_memberships.rb +254 -0
- data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +434 -0
- data/lib/twilio-ruby/rest/preview.rb +145 -0
- data/lib/twilio-ruby/rest/preview/bulk_exports.rb +56 -0
- data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +203 -0
- data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +210 -0
- data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +243 -0
- data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +42 -0
- data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +557 -0
- data/lib/twilio-ruby/rest/preview/marketplace.rb +58 -0
- data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +333 -0
- data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +301 -0
- data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +440 -0
- data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +341 -0
- data/lib/twilio-ruby/rest/preview/proxy.rb +41 -0
- data/lib/twilio-ruby/rest/preview/proxy/service.rb +500 -0
- data/lib/twilio-ruby/rest/preview/proxy/service/phone_number.rb +359 -0
- data/lib/twilio-ruby/rest/preview/proxy/service/session.rb +536 -0
- data/lib/twilio-ruby/rest/preview/proxy/service/session/interaction.rb +429 -0
- data/lib/twilio-ruby/rest/preview/proxy/service/session/participant.rb +506 -0
- data/lib/twilio-ruby/rest/preview/proxy/service/session/participant/message_interaction.rb +452 -0
- data/lib/twilio-ruby/rest/preview/proxy/service/short_code.rb +359 -0
- data/lib/twilio-ruby/rest/preview/sync.rb +41 -0
- data/lib/twilio-ruby/rest/preview/sync/service.rb +504 -0
- data/lib/twilio-ruby/rest/preview/sync/service/document.rb +445 -0
- data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +395 -0
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +438 -0
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +430 -0
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +395 -0
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +438 -0
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +432 -0
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +395 -0
- data/lib/twilio-ruby/rest/preview/wireless.rb +71 -0
- data/lib/twilio-ruby/rest/preview/wireless/command.rb +382 -0
- data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +435 -0
- data/lib/twilio-ruby/rest/preview/wireless/sim.rb +544 -0
- data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +236 -0
- data/lib/twilio-ruby/rest/pricing.rb +50 -2
- data/lib/twilio-ruby/rest/pricing/v1.rb +65 -0
- data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +129 -0
- data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +291 -0
- data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +129 -0
- data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +284 -0
- data/lib/twilio-ruby/rest/pricing/v1/voice.rb +150 -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/sync.rb +44 -0
- data/lib/twilio-ruby/rest/sync/v1.rb +41 -0
- data/lib/twilio-ruby/rest/sync/v1/service.rb +504 -0
- data/lib/twilio-ruby/rest/sync/v1/service/document.rb +445 -0
- data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +395 -0
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +438 -0
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +430 -0
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +395 -0
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +438 -0
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +432 -0
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +395 -0
- data/lib/twilio-ruby/rest/taskrouter.rb +44 -0
- data/lib/twilio-ruby/rest/taskrouter/v1.rb +41 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +712 -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.rb +584 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +461 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +315 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +527 -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/worker.rb +585 -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/workflow.rb +475 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +230 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +212 -0
- data/lib/twilio-ruby/rest/trunking.rb +44 -0
- data/lib/twilio-ruby/rest/trunking/v1.rb +41 -0
- data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +577 -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/video.rb +52 -0
- data/lib/twilio-ruby/rest/video/v1.rb +56 -0
- data/lib/twilio-ruby/rest/video/v1/recording.rb +382 -0
- data/lib/twilio-ruby/rest/video/v1/room.rb +485 -0
- data/lib/twilio-ruby/rest/video/v1/room/recording.rb +381 -0
- data/lib/twilio-ruby/rest/wireless.rb +60 -0
- data/lib/twilio-ruby/rest/wireless/v1.rb +71 -0
- data/lib/twilio-ruby/rest/wireless/v1/command.rb +367 -0
- data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +452 -0
- data/lib/twilio-ruby/rest/wireless/v1/sim.rb +548 -0
- data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +235 -0
- data/lib/twilio-ruby/{util → security}/request_validator.rb +21 -4
- 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.rb +1 -1
- data/lib/twilio-ruby/version.rb +1 -1
- 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/assigned_add_on/assigned_add_on_extension_spec.rb +135 -0
- data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +223 -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/fax/v1/fax/fax_media_spec.rb +126 -0
- data/spec/integration/fax/v1/fax_spec.rb +272 -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/messaging/v1/service/alpha_sender_spec.rb +170 -0
- data/spec/integration/messaging/v1/service/phone_number_spec.rb +201 -0
- data/spec/integration/messaging/v1/service/short_code_spec.rb +173 -0
- data/spec/integration/messaging/v1/service_spec.rb +263 -0
- data/spec/integration/monitor/v1/alert_spec.rb +161 -0
- data/spec/integration/monitor/v1/event_spec.rb +148 -0
- data/spec/integration/notify/v1/credential_spec.rb +223 -0
- data/spec/integration/notify/v1/service/binding_spec.rb +227 -0
- data/spec/integration/notify/v1/service/notification_spec.rb +97 -0
- data/spec/integration/notify/v1/service/segment_spec.rb +84 -0
- data/spec/integration/notify/v1/service/user/segment_memberships_spec.rb +118 -0
- data/spec/integration/notify/v1/service/user/user_binding_spec.rb +269 -0
- data/spec/integration/notify/v1/service/user_spec.rb +213 -0
- data/spec/integration/notify/v1/service_spec.rb +280 -0
- data/spec/integration/preview/bulk_exports/export/day_spec.rb +56 -0
- data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +79 -0
- data/spec/integration/preview/bulk_exports/export_spec.rb +43 -0
- data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +280 -0
- data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +121 -0
- data/spec/integration/preview/marketplace/available_add_on_spec.rb +142 -0
- data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +164 -0
- data/spec/integration/preview/marketplace/installed_add_on_spec.rb +252 -0
- data/spec/integration/preview/proxy/service/phone_number_spec.rb +173 -0
- data/spec/integration/preview/proxy/service/session/interaction_spec.rb +104 -0
- data/spec/integration/preview/proxy/service/session/participant/message_interaction_spec.rb +164 -0
- data/spec/integration/preview/proxy/service/session/participant_spec.rb +226 -0
- data/spec/integration/preview/proxy/service/session_spec.rb +216 -0
- data/spec/integration/preview/proxy/service/short_code_spec.rb +173 -0
- data/spec/integration/preview/proxy/service_spec.rb +200 -0
- data/spec/integration/preview/sync/service/document/document_permission_spec.rb +206 -0
- data/spec/integration/preview/sync/service/document_spec.rb +254 -0
- data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +256 -0
- data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +206 -0
- data/spec/integration/preview/sync/service/sync_list_spec.rb +207 -0
- data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +257 -0
- data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +206 -0
- data/spec/integration/preview/sync/service/sync_map_spec.rb +207 -0
- data/spec/integration/preview/sync/service_spec.rb +244 -0
- data/spec/integration/preview/wireless/command_spec.rb +169 -0
- data/spec/integration/preview/wireless/rate_plan_spec.rb +260 -0
- data/spec/integration/preview/wireless/sim/usage_spec.rb +49 -0
- data/spec/integration/preview/wireless/sim_spec.rb +208 -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/sync/v1/service/document/document_permission_spec.rb +206 -0
- data/spec/integration/sync/v1/service/document_spec.rb +254 -0
- data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +256 -0
- data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +206 -0
- data/spec/integration/sync/v1/service/sync_list_spec.rb +207 -0
- data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +257 -0
- data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +206 -0
- data/spec/integration/sync/v1/service/sync_map_spec.rb +207 -0
- data/spec/integration/sync/v1/service_spec.rb +244 -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/integration/wireless/v1/command_spec.rb +166 -0
- data/spec/integration/wireless/v1/rate_plan_spec.rb +268 -0
- data/spec/integration/wireless/v1/sim/usage_record_spec.rb +65 -0
- data/spec/integration/wireless/v1/sim_spec.rb +208 -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 +19 -23
- data/spec/{util → security}/request_validator_spec.rb +5 -5
- data/spec/spec_helper.rb +18 -1
- data/spec/support/fakeweb.rb +1 -1
- data/spec/twiml/messaging_response_spec.rb +90 -0
- data/spec/twiml/voice_response_spec.rb +474 -0
- data/twilio-ruby.gemspec +13 -8
- metadata +708 -251
- 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 -117
- data/docs/index.rst +0 -135
- 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/addresses.rst +0 -101
- data/docs/usage/applications.rst +0 -108
- data/docs/usage/basics.rst +0 -115
- data/docs/usage/caller-ids.rst +0 -47
- data/docs/usage/conferences.rst +0 -108
- data/docs/usage/errors.rst +0 -29
- data/docs/usage/lookups.rst +0 -62
- data/docs/usage/messages.rst +0 -137
- data/docs/usage/notifications.rst +0 -72
- data/docs/usage/phone-calls.rst +0 -185
- data/docs/usage/phone-numbers.rst +0 -189
- data/docs/usage/pricing.rst +0 -169
- data/docs/usage/queues.rst +0 -112
- data/docs/usage/recordings.rst +0 -98
- data/docs/usage/sip.rst +0 -104
- data/docs/usage/taskrouter-tokens.rst +0 -98
- data/docs/usage/taskrouter.rst +0 -440
- data/docs/usage/token-generation.rst +0 -115
- data/docs/usage/transcriptions.rst +0 -32
- data/docs/usage/twiml.rst +0 -69
- data/docs/usage/validation.rst +0 -107
- data/examples/taskrouter.examples.rb +0 -86
- data/issue_template.md +0 -25
- data/lib/twilio-ruby/rest/addresses.rb +0 -12
- data/lib/twilio-ruby/rest/addresses/dependent_phone_numbers.rb +0 -6
- 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.rb +0 -13
- 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/base_client.rb +0 -131
- data/lib/twilio-ruby/rest/call_feedback.rb +0 -28
- data/lib/twilio-ruby/rest/call_feedback_summary.rb +0 -13
- data/lib/twilio-ruby/rest/calls.rb +0 -33
- data/lib/twilio-ruby/rest/conferences.rb +0 -12
- data/lib/twilio-ruby/rest/conferences/participants.rb +0 -23
- 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.rb +0 -17
- 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/instance_resource.rb +0 -87
- data/lib/twilio-ruby/rest/ip-messaging/channels.rb +0 -15
- data/lib/twilio-ruby/rest/ip-messaging/credentials.rb +0 -19
- data/lib/twilio-ruby/rest/ip-messaging/members.rb +0 -8
- data/lib/twilio-ruby/rest/ip-messaging/messages.rb +0 -8
- data/lib/twilio-ruby/rest/ip-messaging/roles.rb +0 -8
- data/lib/twilio-ruby/rest/ip-messaging/services.rb +0 -17
- data/lib/twilio-ruby/rest/ip-messaging/users.rb +0 -8
- data/lib/twilio-ruby/rest/ip_messaging_client.rb +0 -100
- data/lib/twilio-ruby/rest/keys.rb +0 -6
- data/lib/twilio-ruby/rest/list_resource.rb +0 -100
- data/lib/twilio-ruby/rest/lookups/phone_numbers.rb +0 -17
- data/lib/twilio-ruby/rest/lookups_client.rb +0 -99
- data/lib/twilio-ruby/rest/media.rb +0 -14
- data/lib/twilio-ruby/rest/messages.rb +0 -22
- data/lib/twilio-ruby/rest/monitor/alerts.rb +0 -8
- data/lib/twilio-ruby/rest/monitor/events.rb +0 -8
- data/lib/twilio-ruby/rest/monitor_client.rb +0 -101
- data/lib/twilio-ruby/rest/next_gen_list_resource.rb +0 -36
- 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/pricing/countries.rb +0 -21
- data/lib/twilio-ruby/rest/pricing/messaging.rb +0 -15
- data/lib/twilio-ruby/rest/pricing/phone_numbers.rb +0 -14
- data/lib/twilio-ruby/rest/pricing/voice.rb +0 -15
- data/lib/twilio-ruby/rest/pricing/voice/numbers.rb +0 -19
- data/lib/twilio-ruby/rest/pricing_client.rb +0 -108
- data/lib/twilio-ruby/rest/queues.rb +0 -12
- data/lib/twilio-ruby/rest/queues/members.rb +0 -29
- data/lib/twilio-ruby/rest/recordings.rb +0 -35
- data/lib/twilio-ruby/rest/sandbox.rb +0 -5
- data/lib/twilio-ruby/rest/sip.rb +0 -10
- data/lib/twilio-ruby/rest/sip/credential_lists.rb +0 -11
- data/lib/twilio-ruby/rest/sip/credential_lists/credentials.rb +0 -6
- data/lib/twilio-ruby/rest/sip/domains.rb +0 -12
- 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/ip_access_control_lists.rb +0 -11
- data/lib/twilio-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +0 -6
- data/lib/twilio-ruby/rest/sms.rb +0 -11
- data/lib/twilio-ruby/rest/sms/messages.rb +0 -38
- data/lib/twilio-ruby/rest/sms/short_codes.rb +0 -8
- data/lib/twilio-ruby/rest/task_router/activities.rb +0 -8
- data/lib/twilio-ruby/rest/task_router/events.rb +0 -8
- data/lib/twilio-ruby/rest/task_router/reservations.rb +0 -8
- data/lib/twilio-ruby/rest/task_router/statistics.rb +0 -26
- data/lib/twilio-ruby/rest/task_router/task_queues.rb +0 -17
- data/lib/twilio-ruby/rest/task_router/task_queues_statistics.rb +0 -15
- data/lib/twilio-ruby/rest/task_router/tasks.rb +0 -15
- data/lib/twilio-ruby/rest/task_router/workers.rb +0 -19
- data/lib/twilio-ruby/rest/task_router/workers_statistics.rb +0 -8
- data/lib/twilio-ruby/rest/task_router/workflow_statistics.rb +0 -7
- data/lib/twilio-ruby/rest/task_router/workflows.rb +0 -11
- data/lib/twilio-ruby/rest/task_router/workspace_statistics.rb +0 -7
- data/lib/twilio-ruby/rest/task_router/workspaces.rb +0 -17
- data/lib/twilio-ruby/rest/task_router_client.rb +0 -176
- data/lib/twilio-ruby/rest/tokens.rb +0 -7
- data/lib/twilio-ruby/rest/transcriptions.rb +0 -6
- data/lib/twilio-ruby/rest/trunking/credential_lists.rb +0 -8
- data/lib/twilio-ruby/rest/trunking/ip_access_control_lists.rb +0 -8
- data/lib/twilio-ruby/rest/trunking/origination_urls.rb +0 -8
- data/lib/twilio-ruby/rest/trunking/phone_numbers.rb +0 -8
- data/lib/twilio-ruby/rest/trunking/trunks.rb +0 -19
- data/lib/twilio-ruby/rest/trunking_client.rb +0 -106
- data/lib/twilio-ruby/rest/usage.rb +0 -10
- 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/utils.rb +0 -49
- data/lib/twilio-ruby/task_router.rb +0 -0
- data/lib/twilio-ruby/task_router/capability.rb +0 -230
- data/lib/twilio-ruby/task_router/workflow_builder.rb +0 -135
- data/lib/twilio-ruby/twiml/response.rb +0 -16
- data/lib/twilio-ruby/util/access_token.rb +0 -158
- data/lib/twilio-ruby/util/capability.rb +0 -64
- data/lib/twilio-ruby/util/client_config.rb +0 -29
- data/spec/rest/account_spec.rb +0 -89
- data/spec/rest/address_spec.rb +0 -11
- data/spec/rest/call_feedback_spec.rb +0 -12
- data/spec/rest/call_feedback_summary_spec.rb +0 -9
- data/spec/rest/call_spec.rb +0 -22
- data/spec/rest/client_spec.rb +0 -277
- data/spec/rest/conference_spec.rb +0 -11
- data/spec/rest/instance_resource_spec.rb +0 -15
- data/spec/rest/ip-messaging/channel_spec.rb +0 -21
- data/spec/rest/ip-messaging/service_spec.rb +0 -30
- data/spec/rest/ip_messaging_client_spec.rb +0 -21
- data/spec/rest/key_spec.rb +0 -11
- data/spec/rest/lookups/phone_number_spec.rb +0 -28
- data/spec/rest/message_spec.rb +0 -12
- data/spec/rest/monitor_client_spec.rb +0 -17
- data/spec/rest/numbers_spec.rb +0 -58
- data/spec/rest/pricing_client_spec.rb +0 -60
- data/spec/rest/queue_spec.rb +0 -11
- data/spec/rest/recording_spec.rb +0 -11
- data/spec/rest/sms/message_spec.rb +0 -37
- data/spec/rest/sms/messages_spec.rb +0 -31
- data/spec/rest/task_router/reservation_spec.rb +0 -14
- data/spec/rest/task_router/statistics_spec.rb +0 -37
- data/spec/rest/task_router/task_queue_spec.rb +0 -9
- data/spec/rest/token_spec.rb +0 -7
- data/spec/rest/trunking/trunk_spec.rb +0 -36
- data/spec/rest/utils_spec.rb +0 -45
- data/spec/task_router/workflow_builder_spec.rb +0 -501
- data/spec/task_router_deprecated_spec.rb +0 -139
- data/spec/task_router_spec.rb +0 -110
- data/spec/task_router_taskqueue_spec.rb +0 -111
- data/spec/task_router_worker_spec.rb +0 -146
- data/spec/task_router_workspace_spec.rb +0 -110
- data/spec/util/access_token_spec.rb +0 -161
- data/spec/util/capability_spec.rb +0 -186
- data/spec/util/client_config_spec.rb +0 -21
data/docs/usage/recordings.rst
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
.. module:: twilio.rest.resources
|
|
2
|
-
|
|
3
|
-
================
|
|
4
|
-
Recordings
|
|
5
|
-
================
|
|
6
|
-
|
|
7
|
-
For more information, see the
|
|
8
|
-
`Recordings REST Resource <http://www.twilio.com/docs/api/rest/recording>`_
|
|
9
|
-
documentation.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
Audio Formats
|
|
13
|
-
-----------------
|
|
14
|
-
|
|
15
|
-
Each :class:`Recording` has a few special methods. To get the url
|
|
16
|
-
for the wav format of this recording, use :meth:`Recording.wav`. For the
|
|
17
|
-
mp3 format, use :meth:`Recording.mp3`. To make requests for either of
|
|
18
|
-
these formats use the same method with a '!' appended. These methods
|
|
19
|
-
both take a block to be executed as soon as the response returns.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Listing Your Recordings
|
|
23
|
-
----------------------------
|
|
24
|
-
|
|
25
|
-
The following code will print out the :attr:`duration`
|
|
26
|
-
for each :class:`Recording`.
|
|
27
|
-
|
|
28
|
-
.. code-block:: ruby
|
|
29
|
-
|
|
30
|
-
require 'twilio-ruby'
|
|
31
|
-
|
|
32
|
-
# To find these visit https://www.twilio.com/user/account
|
|
33
|
-
account_sid = "ACXXXXXXXXXXXXXXXXX"
|
|
34
|
-
auth_token = "YYYYYYYYYYYYYYYYYY"
|
|
35
|
-
|
|
36
|
-
@client = Twilio::REST::Client.new account_sid, auth_token
|
|
37
|
-
|
|
38
|
-
@client.recordings.list().each do |recording|
|
|
39
|
-
puts recording.duration
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
You can filter recordings by CallSid by passing the Sid as :attr:`call`.
|
|
43
|
-
Filter recordings using :attr:`DateCreated<` and :attr:`DateCreated>` dates.
|
|
44
|
-
|
|
45
|
-
The following will only show recordings made before January 1, 2011.
|
|
46
|
-
|
|
47
|
-
.. code-block:: ruby
|
|
48
|
-
|
|
49
|
-
require 'twilio-ruby'
|
|
50
|
-
|
|
51
|
-
# To find these visit https://www.twilio.com/user/account
|
|
52
|
-
account_sid = "ACXXXXXXXXXXXXXXXXX"
|
|
53
|
-
auth_token = "YYYYYYYYYYYYYYYYYY"
|
|
54
|
-
|
|
55
|
-
@client = Twilio::REST::Client.new account_sid, auth_token
|
|
56
|
-
@client.recordings.list('DateCreated<' => '2011-01-01').each do |recording|
|
|
57
|
-
puts recording.duration
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
Deleting Recordings
|
|
61
|
-
---------------------
|
|
62
|
-
|
|
63
|
-
The :class:`Recordings` resource allows you to delete unnecessary recordings.
|
|
64
|
-
|
|
65
|
-
.. code-block:: ruby
|
|
66
|
-
|
|
67
|
-
require 'twilio-ruby'
|
|
68
|
-
|
|
69
|
-
# To find these visit https://www.twilio.com/user/account
|
|
70
|
-
account_sid = "ACXXXXXXXXXXXXXXXXX"
|
|
71
|
-
auth_token = "YYYYYYYYYYYYYYYYYY"
|
|
72
|
-
|
|
73
|
-
@client = Twilio::REST::Client.new account_sid, auth_token
|
|
74
|
-
@client.recordings.get("RC123").delete()
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
Accessing Related Transcptions
|
|
78
|
-
-------------------------------
|
|
79
|
-
|
|
80
|
-
The :class:`Recordings` allows you to retrieve associated transcriptions.
|
|
81
|
-
The following prints out the text for each of the transcriptions associated
|
|
82
|
-
with this recording.
|
|
83
|
-
|
|
84
|
-
.. code-block:: ruby
|
|
85
|
-
|
|
86
|
-
require 'twilio-ruby'
|
|
87
|
-
|
|
88
|
-
# To find these visit https://www.twilio.com/user/account
|
|
89
|
-
account_sid = "ACXXXXXXXXXXXXXXXXX"
|
|
90
|
-
auth_token = "YYYYYYYYYYYYYYYYYY"
|
|
91
|
-
|
|
92
|
-
@client = Twilio::REST::Client.new account_sid, auth_token
|
|
93
|
-
@recording = @client.recordings.get("RC123")
|
|
94
|
-
|
|
95
|
-
@recording.transcriptions.list().each do |transcription|
|
|
96
|
-
puts transcription.transcription_text
|
|
97
|
-
end
|
|
98
|
-
|
data/docs/usage/sip.rst
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
=============
|
|
2
|
-
Sip In
|
|
3
|
-
=============
|
|
4
|
-
|
|
5
|
-
Getting started with Sip In
|
|
6
|
-
===========================
|
|
7
|
-
|
|
8
|
-
If you're unfamiliar with SIP, please see the `SIP API Documentation
|
|
9
|
-
<https://www.twilio.com/docs/api/rest/sip>`_ on our website. If you want
|
|
10
|
-
to make a regular phone call, take a look at :doc:`phone-calls`.
|
|
11
|
-
|
|
12
|
-
Creating a Sip Domain
|
|
13
|
-
=====================
|
|
14
|
-
|
|
15
|
-
The :class:`Domains` resource allows you to create a new domain. To
|
|
16
|
-
create a new domain, you'll need to choose a unique domain that lives
|
|
17
|
-
under sip.twilio.com.
|
|
18
|
-
|
|
19
|
-
.. code-block:: ruby
|
|
20
|
-
|
|
21
|
-
require 'twilio-ruby'
|
|
22
|
-
|
|
23
|
-
# To find these visit https://www.twilio.com/user/account
|
|
24
|
-
account_sid = "ACXXXXXXXXXXXXXXXXX"
|
|
25
|
-
auth_token = "YYYYYYYYYYYYYYYYYY"
|
|
26
|
-
|
|
27
|
-
@client = Twilio::REST::Client.new account_sid, auth_token
|
|
28
|
-
|
|
29
|
-
@domain = @client.sip.domains.create(
|
|
30
|
-
friendly_name: "The Office Domain",
|
|
31
|
-
voice_url: "http://example.com/voice"
|
|
32
|
-
domain_name: "dunder-mifflin-scranton.sip.twilio.com"
|
|
33
|
-
)
|
|
34
|
-
puts @domain.sid
|
|
35
|
-
|
|
36
|
-
Creating a new IpAccessControlList
|
|
37
|
-
==================================
|
|
38
|
-
|
|
39
|
-
To control access to your new domain, you'll need to explicitly grant access
|
|
40
|
-
to individual ip addresses. To do this, you'll first need to create an
|
|
41
|
-
:class:`IpAccessControlList` to hold the ip addresses you wish to allow.
|
|
42
|
-
|
|
43
|
-
.. code-block:: ruby
|
|
44
|
-
|
|
45
|
-
require 'twilio-ruby'
|
|
46
|
-
|
|
47
|
-
# To find these visit https://www.twilio.com/user/account
|
|
48
|
-
account_sid = "ACXXXXXXXXXXXXXXXXX"
|
|
49
|
-
auth_token = "YYYYYYYYYYYYYYYYYY"
|
|
50
|
-
|
|
51
|
-
@client = Twilio::REST::Client.new account_sid, auth_token
|
|
52
|
-
|
|
53
|
-
@ip_acl = @client.sip.ip_access_control_lists.create(
|
|
54
|
-
friendly_name: "The Office IpAccessControlList"
|
|
55
|
-
)
|
|
56
|
-
puts @ip_acl.sid
|
|
57
|
-
|
|
58
|
-
Adding a new IpAddress
|
|
59
|
-
=========================
|
|
60
|
-
|
|
61
|
-
Now it's time to add an :class:`IpAddress` to your new :class:`IpAccessControlList`.
|
|
62
|
-
|
|
63
|
-
.. code-block:: ruby
|
|
64
|
-
|
|
65
|
-
require 'twilio-ruby'
|
|
66
|
-
|
|
67
|
-
# To find these visit https://www.twilio.com/user/account
|
|
68
|
-
account_sid = "ACXXXXXXXXXXXXXXXXX"
|
|
69
|
-
auth_token = "YYYYYYYYYYYYYYYYYY"
|
|
70
|
-
|
|
71
|
-
@client = Twilio::REST::Client.new account_sid, auth_token
|
|
72
|
-
|
|
73
|
-
@ip_address = @client.sip.ip_access_control_lists.get(
|
|
74
|
-
"AL456", # IpAccessControlList sid
|
|
75
|
-
).ip_addresses.create(
|
|
76
|
-
friendly_name: "Dwights's Computer",
|
|
77
|
-
ip_address: "192.168.1.42"
|
|
78
|
-
)
|
|
79
|
-
puts @ip_address.sid
|
|
80
|
-
|
|
81
|
-
Adding an IpAccessControlList to a Domain
|
|
82
|
-
===========================================
|
|
83
|
-
|
|
84
|
-
Once you've created a :class:`Domain` and an :class:`IpAccessControlList` you need to
|
|
85
|
-
associate them. To do this, create an :class:`IpAccessControlListMapping`.
|
|
86
|
-
|
|
87
|
-
.. code-block:: ruby
|
|
88
|
-
|
|
89
|
-
require 'twilio-ruby'
|
|
90
|
-
|
|
91
|
-
# To find these visit https://www.twilio.com/user/account
|
|
92
|
-
account_sid = "ACXXXXXXXXXXXXXXXXX"
|
|
93
|
-
auth_token = "YYYYYYYYYYYYYYYYYY"
|
|
94
|
-
|
|
95
|
-
@client = Twilio::REST::Client.new account_sid, auth_token
|
|
96
|
-
|
|
97
|
-
@ip_acl_mapping = @client.sip.domains.get(
|
|
98
|
-
"SD456", # SIP Domain sid
|
|
99
|
-
).ip_access_control_list_mappings.create(
|
|
100
|
-
ip_access_control_list_sid: "AL789"
|
|
101
|
-
)
|
|
102
|
-
|
|
103
|
-
puts @ip_acl_mapping.sid
|
|
104
|
-
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
.. module:: twilio.task_router
|
|
2
|
-
|
|
3
|
-
============================
|
|
4
|
-
TaskRouter Capability Tokens
|
|
5
|
-
============================
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
TaskRouter's Worker.js library lets you add `TaskRouter
|
|
9
|
-
<https://www.twilio.com/docs/taskrouter>`_ Worker Activity controls
|
|
10
|
-
and event notifications to your web applications. Worker.js uses a Websocket
|
|
11
|
-
connection to TaskRouter to receive realtime notifications of Worker
|
|
12
|
-
Reservations and Task details, and provides a simple API for modifying a
|
|
13
|
-
Worker's current Activity.
|
|
14
|
-
|
|
15
|
-
TaskRouter uses Twilio capability tokens to delegate scoped access to
|
|
16
|
-
TaskRouter resources to your JavaScript application. Twilio capability tokens
|
|
17
|
-
conform to the JSON Web Token (commonly referred to as a JWT and pronounced
|
|
18
|
-
"jot") standard, which allow for limited-time use of credentials by a third
|
|
19
|
-
party. Your web server needs to generate a Twilio capability token and provide
|
|
20
|
-
it to your JavaScript application in order to register a TaskRouter worker.
|
|
21
|
-
|
|
22
|
-
:class:`Capability` is responsible for the creation of these
|
|
23
|
-
capability tokens. You'll need your Twilio AccountSid and AuthToken,
|
|
24
|
-
the Sid of the Workspace you want to authorize access to, and the Sid
|
|
25
|
-
of the Worker you're granting authorization for.
|
|
26
|
-
|
|
27
|
-
.. code-block:: ruby
|
|
28
|
-
|
|
29
|
-
require 'twilio-ruby'
|
|
30
|
-
|
|
31
|
-
# Get these values from https://twilio.com/user/account
|
|
32
|
-
account_sid = "AC123"
|
|
33
|
-
auth_token = "secret"
|
|
34
|
-
|
|
35
|
-
# Create a Workspace and Worker in the TaskRouter account portal
|
|
36
|
-
# or through the TaskRouter API
|
|
37
|
-
worker_sid = "WK789"
|
|
38
|
-
worker_sid = "WK789"
|
|
39
|
-
|
|
40
|
-
@capability = Twilio::TaskRouter::Capability.new account_sid, auth_token, workspace_sid, worker_sid
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
By default, the Capability object will allow the Worker.js process to
|
|
44
|
-
read from and write to the websockets used to communicate events, and also
|
|
45
|
-
to fetch the list of available activities in the workspace.
|
|
46
|
-
|
|
47
|
-
There are three additional permissions you can grant using the Capability
|
|
48
|
-
token, and in most cases you'll want to allow all of them for your application:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
Attribute Fetch
|
|
52
|
-
===============
|
|
53
|
-
|
|
54
|
-
This authorizes requests to retrieve the registered Worker's attributes from
|
|
55
|
-
the TaskRouter API.
|
|
56
|
-
|
|
57
|
-
.. code-block:: ruby
|
|
58
|
-
|
|
59
|
-
@capability.allow_worker_fetch_attributes
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
Worker Activity Update
|
|
63
|
-
======================
|
|
64
|
-
|
|
65
|
-
This authorizes updates to the registered Worker's current Activity.
|
|
66
|
-
|
|
67
|
-
.. code-block:: ruby
|
|
68
|
-
|
|
69
|
-
@capability.allow_worker_activity_updates
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
Task Reservation Update
|
|
73
|
-
=======================
|
|
74
|
-
|
|
75
|
-
This authorizes updates to a Task's reservation status.
|
|
76
|
-
|
|
77
|
-
.. code-block:: ruby
|
|
78
|
-
|
|
79
|
-
@capability.allow_task_reservation_updates
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Generate a Token
|
|
83
|
-
================
|
|
84
|
-
|
|
85
|
-
.. code-block:: ruby
|
|
86
|
-
|
|
87
|
-
token = @capability.generate_token
|
|
88
|
-
|
|
89
|
-
By default, this token will expire in one hour. If you'd like to change the
|
|
90
|
-
token expiration, :meth:`generate_token` takes an optional :attr:`ttl`
|
|
91
|
-
argument.
|
|
92
|
-
|
|
93
|
-
.. code-block:: ruby
|
|
94
|
-
|
|
95
|
-
token = @capability.generate_token(600)
|
|
96
|
-
|
|
97
|
-
This token will now expire in 10 minutes. If you haven't guessed already,
|
|
98
|
-
:attr:`ttl` is expressed in seconds.
|
data/docs/usage/taskrouter.rst
DELETED
|
@@ -1,440 +0,0 @@
|
|
|
1
|
-
.. module:: twilio.rest.resources.task_router
|
|
2
|
-
|
|
3
|
-
==========
|
|
4
|
-
TaskRouter
|
|
5
|
-
==========
|
|
6
|
-
|
|
7
|
-
Twilio TaskRouter is a system for distributing tasks such as phone calls,
|
|
8
|
-
leads, support tickets, and other work items to the people and processes that
|
|
9
|
-
can best handle them.
|
|
10
|
-
|
|
11
|
-
For more information, see the `TaskRouter documentation
|
|
12
|
-
<https://www.twilio.com/docs/taskrouter>_`.
|
|
13
|
-
|
|
14
|
-
Note: Passed in Form/Query Parameters are based on their json equivalent attribute.
|
|
15
|
-
|
|
16
|
-
Workspaces
|
|
17
|
-
--------------------
|
|
18
|
-
|
|
19
|
-
A Workspace is a container for your Tasks, Workers, TaskQueues, Workflows and
|
|
20
|
-
Activities. Each of these items exists within a single Workspace and will not
|
|
21
|
-
be shared across Workspaces.
|
|
22
|
-
|
|
23
|
-
.. code-block:: ruby
|
|
24
|
-
|
|
25
|
-
require 'twilio-ruby'
|
|
26
|
-
|
|
27
|
-
# To find these visit https://www.twilio.com/user/account
|
|
28
|
-
ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX"
|
|
29
|
-
AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY"
|
|
30
|
-
# You can create a workspace through the portal, or put a fake value
|
|
31
|
-
# here to create your first workspace with the Ruby library
|
|
32
|
-
WORKSPACE_SID = "WSZZZZZZZZZ"
|
|
33
|
-
|
|
34
|
-
@client = Twilio::REST::TaskRouterClient.new ACCOUNT_SID, AUTH_TOKEN, WORKSPACE_SID
|
|
35
|
-
|
|
36
|
-
# creating a workspace
|
|
37
|
-
@workspace = @client.workspaces.create(
|
|
38
|
-
friendly_name: "Customer Support",
|
|
39
|
-
template: "FIFO", # Sets up default activities and a FIFO TaskQueue
|
|
40
|
-
)
|
|
41
|
-
puts @workspace.sid
|
|
42
|
-
|
|
43
|
-
# fetching a workspace
|
|
44
|
-
@workspace = @client.workspace
|
|
45
|
-
puts @workspace.sid
|
|
46
|
-
puts @workspace.friendly_name
|
|
47
|
-
|
|
48
|
-
# fetching a list of workspaces
|
|
49
|
-
@client.workspaces.list.each do |workspace|
|
|
50
|
-
puts workspace.friendly_name
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
# updating a workspace
|
|
54
|
-
@client.workspace.update(friendly_name: 'MyWorkspace2')
|
|
55
|
-
|
|
56
|
-
# deleting a workspace
|
|
57
|
-
@client.workspace.delete
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
Workflows
|
|
61
|
-
---------
|
|
62
|
-
|
|
63
|
-
Workflows control how tasks will be prioritized and routed into TaskQueues, and
|
|
64
|
-
how Tasks should escalate in priority or move across queues over time.
|
|
65
|
-
Workflows are described in a simple JSON format and can be modified through the
|
|
66
|
-
REST API or through the account portal.
|
|
67
|
-
|
|
68
|
-
Creating a Workflow
|
|
69
|
-
--------------------
|
|
70
|
-
|
|
71
|
-
The following code will create a new :class:`Workflow` resource and print its
|
|
72
|
-
unique ID:
|
|
73
|
-
|
|
74
|
-
.. code-block:: ruby
|
|
75
|
-
|
|
76
|
-
require 'twilio-ruby'
|
|
77
|
-
|
|
78
|
-
# To find these visit https://www.twilio.com/user/account
|
|
79
|
-
ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX"
|
|
80
|
-
AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY"
|
|
81
|
-
|
|
82
|
-
# See previous examples to create a Workspace
|
|
83
|
-
WORKSPACE_SID = "WSZZZZZZZZZZZZZZ"
|
|
84
|
-
|
|
85
|
-
# Some JSON to configure the Workflow. See the documentation at
|
|
86
|
-
# http://www.twilio.com/docs/taskrouter for more details.
|
|
87
|
-
CONFIG = <<-EOS
|
|
88
|
-
{
|
|
89
|
-
"task_routing":{
|
|
90
|
-
"filters":[
|
|
91
|
-
{
|
|
92
|
-
"friendly_name":"Gold Tickets",
|
|
93
|
-
"expression":"customer_value == 'Gold' AND type == 'ticket'",
|
|
94
|
-
"targets":[
|
|
95
|
-
{
|
|
96
|
-
"queue":"YourGoldTicketQueueSid",
|
|
97
|
-
"priority":"2"
|
|
98
|
-
}
|
|
99
|
-
]
|
|
100
|
-
}
|
|
101
|
-
],
|
|
102
|
-
"default_filter":{
|
|
103
|
-
"queue":"YourDefaultQueueSid"
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
EOS
|
|
108
|
-
|
|
109
|
-
@client = Twilio::REST::TaskRouterClient.new ACCOUNT_SID, AUTH_TOKEN, WORKSPACE_SID
|
|
110
|
-
|
|
111
|
-
@workflow = @client.workspace.workflows.create(
|
|
112
|
-
friendly_name: "Incoming Call Flow",
|
|
113
|
-
assignment_callback_url: "https://example.com/callback",
|
|
114
|
-
fallback_assignment_callback_url: "https://example.com/callback2",
|
|
115
|
-
configuration: CONFIG
|
|
116
|
-
)
|
|
117
|
-
puts @workflow.sid
|
|
118
|
-
|
|
119
|
-
You can also utilize our Workflow Builder to make this process a bit easier utilizing objects:
|
|
120
|
-
|
|
121
|
-
.. code-block:: ruby
|
|
122
|
-
|
|
123
|
-
require twilio-ruby
|
|
124
|
-
|
|
125
|
-
# To find these visit https://www.twilio.com/user/account
|
|
126
|
-
ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX"
|
|
127
|
-
AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY"
|
|
128
|
-
|
|
129
|
-
# See previous examples to create a Workspace
|
|
130
|
-
WORKSPACE_SID = "WSZZZZZZZZZZZZZZ"
|
|
131
|
-
|
|
132
|
-
@client = Twilio::REST::TaskRouterClient.new ACCOUNT_SID, AUTH_TOKEN, WORKSPACE_SID
|
|
133
|
-
|
|
134
|
-
gold_ticket_queue_sid = 'YourGoldTicketQueueSid'
|
|
135
|
-
default_queue_sid = 'YourDefaultQueueSid'
|
|
136
|
-
|
|
137
|
-
gold_ticket_targets = [Twilio::TaskRouter::WorkflowRuleTarget.new(gold_ticket_queue_sid)]
|
|
138
|
-
gold_ticket_rule = Twilio::TaskRouter::WorkflowRule.new 'customer_value == "Gold" AND type == "ticket"', gold_ticket_targets, 'Gold Tickets'
|
|
139
|
-
|
|
140
|
-
@rules = [gold_ticket_rule]
|
|
141
|
-
@default_target = Twilio::TaskRouter::WorkflowRuleTarget.new default_queue_sid
|
|
142
|
-
|
|
143
|
-
@config = Twilio::TaskRouter::WorkflowConfiguration.new @rules, @default_target
|
|
144
|
-
puts @config.to_json
|
|
145
|
-
|
|
146
|
-
@workflow = @client.workspace.workflows.create(configuration: @config.to_json, friendly_name: 'Incoming Call Flow', assignment_callback_url: 'https://example.com/callback', fallback_assignment_callback_url: 'https://example.com/callback2')
|
|
147
|
-
puts @workflow.sid
|
|
148
|
-
|
|
149
|
-
Fetching, Updating, Deleting Workflows
|
|
150
|
-
--------------------
|
|
151
|
-
|
|
152
|
-
.. code-block:: ruby
|
|
153
|
-
|
|
154
|
-
require twilio-ruby
|
|
155
|
-
|
|
156
|
-
# To find these visit https://www.twilio.com/user/account
|
|
157
|
-
ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX"
|
|
158
|
-
AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY"
|
|
159
|
-
|
|
160
|
-
# See previous examples to create a Workspace
|
|
161
|
-
WORKSPACE_SID = "WSZZZZZZZZZZZZZZ"
|
|
162
|
-
WORKFLOW_SID = "WFZZZZZZZZZZZZZZZ"
|
|
163
|
-
|
|
164
|
-
# fetching a workflow
|
|
165
|
-
@client = Twilio::REST::TaskRouterClient.new ACCOUNT_SID, AUTH_TOKEN, WORKSPACE_SID
|
|
166
|
-
@workflow = @client.workspace.workflows.get(WORKFLOW_SID)
|
|
167
|
-
puts @workflow.sid
|
|
168
|
-
puts @workflow.friendly_name
|
|
169
|
-
|
|
170
|
-
# fetching a list of workflows
|
|
171
|
-
@client.workspace.workflows.list.each do |workflow|
|
|
172
|
-
puts workflow.friendly_name
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
# updating a workflow
|
|
176
|
-
@workflow.update(friendly_name: 'NewWorkflowName')
|
|
177
|
-
|
|
178
|
-
# deleting a workflow
|
|
179
|
-
@workflow.delete
|
|
180
|
-
|
|
181
|
-
Activities
|
|
182
|
-
----------
|
|
183
|
-
|
|
184
|
-
Activities describe the current status of your Workers, which determines
|
|
185
|
-
whether they are eligible to receive task assignments. Workers are always set
|
|
186
|
-
to a single Activity.
|
|
187
|
-
|
|
188
|
-
.. code-block:: ruby
|
|
189
|
-
|
|
190
|
-
require 'twilio-ruby'
|
|
191
|
-
|
|
192
|
-
# To find these visit https://www.twilio.com/user/account
|
|
193
|
-
ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX"
|
|
194
|
-
AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY"
|
|
195
|
-
|
|
196
|
-
# See previous examples to create a Workspace
|
|
197
|
-
WORKSPACE_SID = "WSZZZZZZZZZZZZZZ"
|
|
198
|
-
|
|
199
|
-
@client = Twilio::REST::TaskRouterClient.new ACCOUNT_SID, AUTH_TOKEN, WORKSPACE_SID
|
|
200
|
-
|
|
201
|
-
# creating an activity
|
|
202
|
-
@activity = @client.workspace.activities.create(
|
|
203
|
-
friendly_name: "Coffee Break",
|
|
204
|
-
available: false # Whether workers are available to handle tasks during this activity
|
|
205
|
-
)
|
|
206
|
-
puts @activity.sid
|
|
207
|
-
|
|
208
|
-
# fetching a list of activities
|
|
209
|
-
@client.workspace.activities.list.each do |activity|
|
|
210
|
-
puts activity.friendly_name
|
|
211
|
-
end
|
|
212
|
-
|
|
213
|
-
# fetching an activity
|
|
214
|
-
ACTIVITY_SID = "WAZZZZZZZZZZZZZZZZZ"
|
|
215
|
-
@activity = @client.workspace.activities.get(ACTIVITY_SID)
|
|
216
|
-
|
|
217
|
-
# updating an activity
|
|
218
|
-
@activity.update(friendly_name: 'NewFriendlyName')
|
|
219
|
-
|
|
220
|
-
# deleting an activity
|
|
221
|
-
@activity.delete
|
|
222
|
-
|
|
223
|
-
Workers
|
|
224
|
-
-------
|
|
225
|
-
|
|
226
|
-
Workers represent an entity that is able to perform tasks, such as an agent
|
|
227
|
-
working in a call center, or a salesperson handling leads.
|
|
228
|
-
|
|
229
|
-
.. code-block:: ruby
|
|
230
|
-
|
|
231
|
-
require 'twilio-ruby'
|
|
232
|
-
|
|
233
|
-
# To find these visit https://www.twilio.com/user/account
|
|
234
|
-
ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX"
|
|
235
|
-
AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY"
|
|
236
|
-
|
|
237
|
-
# See previous examples to create a Workspace
|
|
238
|
-
WORKSPACE_SID = "WSZZZZZZZZZZZZZZ"
|
|
239
|
-
|
|
240
|
-
@client = Twilio::REST::TaskRouterClient.new ACCOUNT_SID, AUTH_TOKEN, WORKSPACE_SID
|
|
241
|
-
|
|
242
|
-
# creating a worker
|
|
243
|
-
@worker = @client.workspace.workers.create(
|
|
244
|
-
friendly_name:"Jamie",
|
|
245
|
-
attributes:'{"phone": "+14155551234", "languages": ["EN", "ES"]}'
|
|
246
|
-
)
|
|
247
|
-
puts @worker.sid
|
|
248
|
-
|
|
249
|
-
# fetching a list of workers
|
|
250
|
-
@client.workspace.workers.list.each do |worker|
|
|
251
|
-
puts worker.friendly_name
|
|
252
|
-
end
|
|
253
|
-
|
|
254
|
-
# fetching a list of workers based on activity
|
|
255
|
-
@client.workspace.workers.list(activity_name: 'Offline').each do |worker|
|
|
256
|
-
puts worker.friendly_name + ' is offline'
|
|
257
|
-
end
|
|
258
|
-
|
|
259
|
-
# fetching an worker
|
|
260
|
-
WORKER_SID = "WKZZZZZZZZZZZZZZZZZ"
|
|
261
|
-
@worker = @client.workspace.workers.get(WORKER_SID)
|
|
262
|
-
|
|
263
|
-
# updating an worker
|
|
264
|
-
@worker.update(friendly_name: 'NewFriendlyName')
|
|
265
|
-
|
|
266
|
-
# deleting an worker
|
|
267
|
-
@worker.delete
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
TaskQueues
|
|
271
|
-
----------
|
|
272
|
-
|
|
273
|
-
TaskQueues are the resource you use to categorize Tasks and describe which
|
|
274
|
-
Workers are eligible to handle those Tasks. As your Workflows process Tasks,
|
|
275
|
-
those Tasks will pass through one or more TaskQueues until the Task is assigned
|
|
276
|
-
and accepted by an eligible Worker.
|
|
277
|
-
|
|
278
|
-
.. code-block:: ruby
|
|
279
|
-
|
|
280
|
-
require 'twilio-ruby'
|
|
281
|
-
|
|
282
|
-
# To find these visit https://www.twilio.com/user/account
|
|
283
|
-
ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX"
|
|
284
|
-
AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY"
|
|
285
|
-
|
|
286
|
-
# See previous examples to create a Workspace
|
|
287
|
-
WORKSPACE_SID = "WSZZZZZZZZZZZZZZ"
|
|
288
|
-
|
|
289
|
-
@client = Twilio::REST::TaskRouterClient.new ACCOUNT_SID, AUTH_TOKEN, WORKSPACE_SID
|
|
290
|
-
|
|
291
|
-
# creating a task_queue
|
|
292
|
-
@taskqueue = @client.workspace.task_queues.create(
|
|
293
|
-
friendly_name: "Sales",
|
|
294
|
-
# The Activity to assign workers when a task is reserved for them
|
|
295
|
-
reservation_activity_sid: "WA11111111111",
|
|
296
|
-
# The Activity to assign workers when a task is assigned to them
|
|
297
|
-
assignment_activity_sid: "WA222222222222",
|
|
298
|
-
)
|
|
299
|
-
puts @taskqueue.sid
|
|
300
|
-
|
|
301
|
-
# fetching a list of task_queues
|
|
302
|
-
@client.workspace.task_queues.list.each do |task_queue|
|
|
303
|
-
puts task_queue.friendly_name
|
|
304
|
-
end
|
|
305
|
-
|
|
306
|
-
# fetching an taskqueue
|
|
307
|
-
TASK_QUEUE_SID = "WQZZZZZZZZZZZZZZZZZ"
|
|
308
|
-
@taskqueue = @client.workspace.task_queues.get(TASK_QUEUE_SID)
|
|
309
|
-
|
|
310
|
-
# updating an taskqueue
|
|
311
|
-
@taskqueue.update(friendly_name: 'NewFriendlyName')
|
|
312
|
-
|
|
313
|
-
# deleting an taskqueue
|
|
314
|
-
@taskqueue.delete
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
Tasks
|
|
318
|
-
-----
|
|
319
|
-
|
|
320
|
-
A Task instance resource represents a single item of work waiting to be
|
|
321
|
-
processed.
|
|
322
|
-
|
|
323
|
-
.. code-block:: ruby
|
|
324
|
-
|
|
325
|
-
# To find these visit https://www.twilio.com/user/account
|
|
326
|
-
ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX"
|
|
327
|
-
AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY"
|
|
328
|
-
|
|
329
|
-
# See previous examples to create a Workspace
|
|
330
|
-
WORKSPACE_SID = "WSZZZZZZZZZZZZZZ"
|
|
331
|
-
|
|
332
|
-
@client = Twilio::REST::TaskRouterClient.new ACCOUNT_SID, AUTH_TOKEN, WORKSPACE_SID
|
|
333
|
-
|
|
334
|
-
# Some JSON containing attributes for this task. User-defined.
|
|
335
|
-
TASK_ATTRIBUTES = <<-EOS
|
|
336
|
-
{
|
|
337
|
-
"type": "call",
|
|
338
|
-
"contact": "+15558675309",
|
|
339
|
-
"customer-value": "gold",
|
|
340
|
-
"task-reason": "support",
|
|
341
|
-
"callSid": "CA42ed11..."
|
|
342
|
-
}
|
|
343
|
-
EOS
|
|
344
|
-
|
|
345
|
-
# creating a task
|
|
346
|
-
@task = @client.workspace.tasks.create(
|
|
347
|
-
attributes: TASK_ATTRIBUTES,
|
|
348
|
-
assignment_status: 'pending',
|
|
349
|
-
)
|
|
350
|
-
puts @task.sid
|
|
351
|
-
|
|
352
|
-
# fetching a list of tasks
|
|
353
|
-
@client.workspace.tasks.list.each do |task|
|
|
354
|
-
puts task.sid
|
|
355
|
-
end
|
|
356
|
-
|
|
357
|
-
# fetching a list of tasks that are pending
|
|
358
|
-
@client.workspace.tasks.list(assignment_status: 'pending').each do |task|
|
|
359
|
-
puts task.sid
|
|
360
|
-
end
|
|
361
|
-
|
|
362
|
-
# fetching an task
|
|
363
|
-
TASK_SID = "WTZZZZZZZZZZZZZZZZZ"
|
|
364
|
-
@task = @client.workspace.tasks.get(TASK_SID)
|
|
365
|
-
|
|
366
|
-
# updating an task
|
|
367
|
-
@task.update(friendly_name: 'NewFriendlyName')
|
|
368
|
-
|
|
369
|
-
# deleting an task
|
|
370
|
-
@task.delete
|
|
371
|
-
|
|
372
|
-
Reservations
|
|
373
|
-
-----
|
|
374
|
-
|
|
375
|
-
A Reservation instance resource represents a single matching item of work from a task to a worker.
|
|
376
|
-
|
|
377
|
-
.. code-block:: ruby
|
|
378
|
-
|
|
379
|
-
# To find these visit https://www.twilio.com/user/account
|
|
380
|
-
ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX"
|
|
381
|
-
AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY"
|
|
382
|
-
|
|
383
|
-
# See previous examples to create a Workspace
|
|
384
|
-
WORKSPACE_SID = "WSZZZZZZZZZZZZZZ"
|
|
385
|
-
|
|
386
|
-
@client = Twilio::REST::TaskRouterClient.new ACCOUNT_SID, AUTH_TOKEN, WORKSPACE_SID
|
|
387
|
-
|
|
388
|
-
# fetching an task
|
|
389
|
-
TASK_SID = "WTZZZZZZZZZZZZZZZZZ"
|
|
390
|
-
@task = @client.workspace.tasks.get(TASK_SID)
|
|
391
|
-
|
|
392
|
-
# fetching reservations for said task
|
|
393
|
-
@task.reservations.list.each do |reservation|
|
|
394
|
-
puts reservation.sid
|
|
395
|
-
end
|
|
396
|
-
|
|
397
|
-
Statistics
|
|
398
|
-
-----
|
|
399
|
-
|
|
400
|
-
A Statistics resource represents the statistics over a time period for a particular resource
|
|
401
|
-
|
|
402
|
-
.. code-block:: ruby
|
|
403
|
-
|
|
404
|
-
# To find these visit https://www.twilio.com/user/account
|
|
405
|
-
ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX"
|
|
406
|
-
AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY"
|
|
407
|
-
|
|
408
|
-
# See previous examples to create a Workspace
|
|
409
|
-
WORKSPACE_SID = "WSZZZZZZZZZZZZZZ"
|
|
410
|
-
|
|
411
|
-
@client = Twilio::REST::TaskRouterClient.new ACCOUNT_SID, AUTH_TOKEN, WORKSPACE_SID
|
|
412
|
-
|
|
413
|
-
# fetching statistics based on the last 4 hours
|
|
414
|
-
@workspace_stats = @client.workspace.statistics(minutes: '240')
|
|
415
|
-
@cumulative = @workspace_stats.cumulative
|
|
416
|
-
puts 'Avg Task Acceptance Time: ' + @cumulative['avg_task_acceptance_time'].to_s \
|
|
417
|
-
+ ' with ' + @cumulative['tasks_created'].to_s + ' tasks created'
|
|
418
|
-
|
|
419
|
-
Events
|
|
420
|
-
-----
|
|
421
|
-
|
|
422
|
-
A Event represents an internal TaskRouter event that occurred and has been logged.
|
|
423
|
-
You can query based on time the event occurred, a certain resource or combination.
|
|
424
|
-
|
|
425
|
-
.. code-block:: ruby
|
|
426
|
-
|
|
427
|
-
# To find these visit https://www.twilio.com/user/account
|
|
428
|
-
ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXX"
|
|
429
|
-
AUTH_TOKEN = "YYYYYYYYYYYYYYYYYY"
|
|
430
|
-
|
|
431
|
-
# See previous examples to create a Workspace
|
|
432
|
-
WORKSPACE_SID = "WSZZZZZZZZZZZZZZ"
|
|
433
|
-
|
|
434
|
-
@client = Twilio::REST::TaskRouterClient.new ACCOUNT_SID, AUTH_TOKEN, WORKSPACE_SID
|
|
435
|
-
|
|
436
|
-
# fetching events for a workspace for the last 15 minutes
|
|
437
|
-
@events = @client.workspace.events.list(minutes: '15')
|
|
438
|
-
@events.each do |event|
|
|
439
|
-
puts event.event_type + ' at ' + event.event_date
|
|
440
|
-
end
|