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
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
##
|
|
2
|
+
# This code was generated by
|
|
3
|
+
# \ / _ _ _| _ _
|
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
|
5
|
+
# / /
|
|
6
|
+
|
|
7
|
+
module Twilio
|
|
8
|
+
module REST
|
|
9
|
+
class Video < Domain
|
|
10
|
+
class V1 < Version
|
|
11
|
+
class RoomList < ListResource
|
|
12
|
+
##
|
|
13
|
+
# Initialize the RoomList
|
|
14
|
+
# @param [Version] version Version that contains the resource
|
|
15
|
+
# @return [RoomList] RoomList
|
|
16
|
+
def initialize(version)
|
|
17
|
+
super(version)
|
|
18
|
+
|
|
19
|
+
# Path Solution
|
|
20
|
+
@solution = {}
|
|
21
|
+
@uri = "/Rooms"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
##
|
|
25
|
+
# Retrieve a single page of RoomInstance records from the API.
|
|
26
|
+
# Request is executed immediately.
|
|
27
|
+
# @param [Boolean] enable_turn The enable_turn
|
|
28
|
+
# @param [room.RoomType] type The type
|
|
29
|
+
# @param [String] unique_name The unique_name
|
|
30
|
+
# @param [String] status_callback The status_callback
|
|
31
|
+
# @param [String] status_callback_method The status_callback_method
|
|
32
|
+
# @param [String] max_participants The max_participants
|
|
33
|
+
# @param [Boolean] record_participants_on_connect The
|
|
34
|
+
# record_participants_on_connect
|
|
35
|
+
# @return [RoomInstance] Newly created RoomInstance
|
|
36
|
+
def create(enable_turn: :unset, type: :unset, unique_name: :unset, status_callback: :unset, status_callback_method: :unset, max_participants: :unset, record_participants_on_connect: :unset)
|
|
37
|
+
data = Twilio::Values.of({
|
|
38
|
+
'EnableTurn' => enable_turn,
|
|
39
|
+
'Type' => type,
|
|
40
|
+
'UniqueName' => unique_name,
|
|
41
|
+
'StatusCallback' => status_callback,
|
|
42
|
+
'StatusCallbackMethod' => status_callback_method,
|
|
43
|
+
'MaxParticipants' => max_participants,
|
|
44
|
+
'RecordParticipantsOnConnect' => record_participants_on_connect,
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
payload = @version.create(
|
|
48
|
+
'POST',
|
|
49
|
+
@uri,
|
|
50
|
+
data: data
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
RoomInstance.new(
|
|
54
|
+
@version,
|
|
55
|
+
payload,
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
##
|
|
60
|
+
# Lists RoomInstance records from the API as a list.
|
|
61
|
+
# Unlike stream(), this operation is eager and will load `limit` records into
|
|
62
|
+
# memory before returning.
|
|
63
|
+
# @param [room.RoomStatus] status The status
|
|
64
|
+
# @param [String] unique_name The unique_name
|
|
65
|
+
# @param [Time] date_created_after The date_created_after
|
|
66
|
+
# @param [Time] date_created_before The date_created_before
|
|
67
|
+
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
|
68
|
+
# guarantees to never return more than limit. Default is no limit
|
|
69
|
+
# @param [Integer] page_size Number of records to fetch per request, when not set will use
|
|
70
|
+
# the default value of 50 records. If no page_size is defined
|
|
71
|
+
# but a limit is defined, stream() will attempt to read the
|
|
72
|
+
# limit with the most efficient page size, i.e. min(limit, 1000)
|
|
73
|
+
# @return [Array] Array of up to limit results
|
|
74
|
+
def list(status: :unset, unique_name: :unset, date_created_after: :unset, date_created_before: :unset, limit: nil, page_size: nil)
|
|
75
|
+
self.stream(
|
|
76
|
+
status: status,
|
|
77
|
+
unique_name: unique_name,
|
|
78
|
+
date_created_after: date_created_after,
|
|
79
|
+
date_created_before: date_created_before,
|
|
80
|
+
limit: limit,
|
|
81
|
+
page_size: page_size
|
|
82
|
+
).entries
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
##
|
|
86
|
+
# Streams RoomInstance records from the API as an Enumerable.
|
|
87
|
+
# This operation lazily loads records as efficiently as possible until the limit
|
|
88
|
+
# is reached.
|
|
89
|
+
# @param [room.RoomStatus] status The status
|
|
90
|
+
# @param [String] unique_name The unique_name
|
|
91
|
+
# @param [Time] date_created_after The date_created_after
|
|
92
|
+
# @param [Time] date_created_before The date_created_before
|
|
93
|
+
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
|
94
|
+
# guarantees to never return more than limit. Default is no limit
|
|
95
|
+
# @param [Integer] page_size Number of records to fetch per request, when not set will use
|
|
96
|
+
# the default value of 50 records. If no page_size is defined
|
|
97
|
+
# but a limit is defined, stream() will attempt to read the
|
|
98
|
+
# limit with the most efficient page size, i.e. min(limit, 1000)
|
|
99
|
+
# @return [Enumerable] Enumerable that will yield up to limit results
|
|
100
|
+
def stream(status: :unset, unique_name: :unset, date_created_after: :unset, date_created_before: :unset, limit: nil, page_size: nil)
|
|
101
|
+
limits = @version.read_limits(limit, page_size)
|
|
102
|
+
|
|
103
|
+
page = self.page(
|
|
104
|
+
status: status,
|
|
105
|
+
unique_name: unique_name,
|
|
106
|
+
date_created_after: date_created_after,
|
|
107
|
+
date_created_before: date_created_before,
|
|
108
|
+
page_size: limits[:page_size],
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
@version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
##
|
|
115
|
+
# When passed a block, yields RoomInstance records from the API.
|
|
116
|
+
# This operation lazily loads records as efficiently as possible until the limit
|
|
117
|
+
# is reached.
|
|
118
|
+
def each
|
|
119
|
+
limits = @version.read_limits
|
|
120
|
+
|
|
121
|
+
page = self.page(
|
|
122
|
+
page_size: limits[:page_size],
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
@version.stream(page,
|
|
126
|
+
limit: limits[:limit],
|
|
127
|
+
page_limit: limits[:page_limit]).each {|x| yield x}
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
##
|
|
131
|
+
# Retrieve a single page of RoomInstance records from the API.
|
|
132
|
+
# Request is executed immediately.
|
|
133
|
+
# @param [room.RoomStatus] status The status
|
|
134
|
+
# @param [String] unique_name The unique_name
|
|
135
|
+
# @param [Time] date_created_after The date_created_after
|
|
136
|
+
# @param [Time] date_created_before The date_created_before
|
|
137
|
+
# @param [String] page_token PageToken provided by the API
|
|
138
|
+
# @param [Integer] page_number Page Number, this value is simply for client state
|
|
139
|
+
# @param [Integer] page_size Number of records to return, defaults to 50
|
|
140
|
+
# @return [Page] Page of RoomInstance
|
|
141
|
+
def page(status: :unset, unique_name: :unset, date_created_after: :unset, date_created_before: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
|
|
142
|
+
params = Twilio::Values.of({
|
|
143
|
+
'Status' => status,
|
|
144
|
+
'UniqueName' => unique_name,
|
|
145
|
+
'DateCreatedAfter' => Twilio.serialize_iso8601_datetime(date_created_after),
|
|
146
|
+
'DateCreatedBefore' => Twilio.serialize_iso8601_datetime(date_created_before),
|
|
147
|
+
'PageToken' => page_token,
|
|
148
|
+
'Page' => page_number,
|
|
149
|
+
'PageSize' => page_size,
|
|
150
|
+
})
|
|
151
|
+
response = @version.page(
|
|
152
|
+
'GET',
|
|
153
|
+
@uri,
|
|
154
|
+
params
|
|
155
|
+
)
|
|
156
|
+
RoomPage.new(@version, response, @solution)
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
##
|
|
160
|
+
# Retrieve a single page of RoomInstance records from the API.
|
|
161
|
+
# Request is executed immediately.
|
|
162
|
+
# @param [String] target_url API-generated URL for the requested results page
|
|
163
|
+
# @return [Page] Page of RoomInstance
|
|
164
|
+
def get_page(target_url)
|
|
165
|
+
response = @version.domain.request(
|
|
166
|
+
'GET',
|
|
167
|
+
target_url
|
|
168
|
+
)
|
|
169
|
+
RoomPage.new(@version, response, @solution)
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
##
|
|
173
|
+
# Provide a user friendly representation
|
|
174
|
+
def to_s
|
|
175
|
+
'#<Twilio.Video.V1.RoomList>'
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
class RoomPage < Page
|
|
180
|
+
##
|
|
181
|
+
# Initialize the RoomPage
|
|
182
|
+
# @param [Version] version Version that contains the resource
|
|
183
|
+
# @param [Response] response Response from the API
|
|
184
|
+
# @param [Hash] solution Path solution for the resource
|
|
185
|
+
# @return [RoomPage] RoomPage
|
|
186
|
+
def initialize(version, response, solution)
|
|
187
|
+
super(version, response)
|
|
188
|
+
|
|
189
|
+
# Path Solution
|
|
190
|
+
@solution = solution
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
##
|
|
194
|
+
# Build an instance of RoomInstance
|
|
195
|
+
# @param [Hash] payload Payload response from the API
|
|
196
|
+
# @return [RoomInstance] RoomInstance
|
|
197
|
+
def get_instance(payload)
|
|
198
|
+
RoomInstance.new(
|
|
199
|
+
@version,
|
|
200
|
+
payload,
|
|
201
|
+
)
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
##
|
|
205
|
+
# Provide a user friendly representation
|
|
206
|
+
def to_s
|
|
207
|
+
'<Twilio.Video.V1.RoomPage>'
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
class RoomContext < InstanceContext
|
|
212
|
+
##
|
|
213
|
+
# Initialize the RoomContext
|
|
214
|
+
# @param [Version] version Version that contains the resource
|
|
215
|
+
# @param [String] sid The sid
|
|
216
|
+
# @return [RoomContext] RoomContext
|
|
217
|
+
def initialize(version, sid)
|
|
218
|
+
super(version)
|
|
219
|
+
|
|
220
|
+
# Path Solution
|
|
221
|
+
@solution = {
|
|
222
|
+
sid: sid,
|
|
223
|
+
}
|
|
224
|
+
@uri = "/Rooms/#{@solution[:sid]}"
|
|
225
|
+
|
|
226
|
+
# Dependents
|
|
227
|
+
@recordings = nil
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
##
|
|
231
|
+
# Fetch a RoomInstance
|
|
232
|
+
# @return [RoomInstance] Fetched RoomInstance
|
|
233
|
+
def fetch
|
|
234
|
+
params = Twilio::Values.of({})
|
|
235
|
+
|
|
236
|
+
payload = @version.fetch(
|
|
237
|
+
'GET',
|
|
238
|
+
@uri,
|
|
239
|
+
params,
|
|
240
|
+
)
|
|
241
|
+
|
|
242
|
+
RoomInstance.new(
|
|
243
|
+
@version,
|
|
244
|
+
payload,
|
|
245
|
+
sid: @solution[:sid],
|
|
246
|
+
)
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
##
|
|
250
|
+
# Update the RoomInstance
|
|
251
|
+
# @param [room.RoomStatus] status The status
|
|
252
|
+
# @return [RoomInstance] Updated RoomInstance
|
|
253
|
+
def update(status: nil)
|
|
254
|
+
data = Twilio::Values.of({
|
|
255
|
+
'Status' => status,
|
|
256
|
+
})
|
|
257
|
+
|
|
258
|
+
payload = @version.update(
|
|
259
|
+
'POST',
|
|
260
|
+
@uri,
|
|
261
|
+
data: data,
|
|
262
|
+
)
|
|
263
|
+
|
|
264
|
+
RoomInstance.new(
|
|
265
|
+
@version,
|
|
266
|
+
payload,
|
|
267
|
+
sid: @solution[:sid],
|
|
268
|
+
)
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
##
|
|
272
|
+
# Access the recordings
|
|
273
|
+
# @return [RoomRecordingList]
|
|
274
|
+
# @return [RoomRecordingContext] if sid was passed.
|
|
275
|
+
def recordings(sid=:unset)
|
|
276
|
+
raise ArgumentError, 'sid cannot be nil' if sid.nil?
|
|
277
|
+
|
|
278
|
+
if sid != :unset
|
|
279
|
+
return RoomRecordingContext.new(
|
|
280
|
+
@version,
|
|
281
|
+
@solution[:sid],
|
|
282
|
+
sid,
|
|
283
|
+
)
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
unless @recordings
|
|
287
|
+
@recordings = RoomRecordingList.new(
|
|
288
|
+
@version,
|
|
289
|
+
room_sid: @solution[:sid],
|
|
290
|
+
)
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
@recordings
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
##
|
|
297
|
+
# Provide a user friendly representation
|
|
298
|
+
def to_s
|
|
299
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
|
300
|
+
"#<Twilio.Video.V1.RoomContext #{context}>"
|
|
301
|
+
end
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
class RoomInstance < InstanceResource
|
|
305
|
+
##
|
|
306
|
+
# Initialize the RoomInstance
|
|
307
|
+
# @param [Version] version Version that contains the resource
|
|
308
|
+
# @param [Hash] payload payload that contains response from Twilio
|
|
309
|
+
# @param [String] sid The sid
|
|
310
|
+
# @return [RoomInstance] RoomInstance
|
|
311
|
+
def initialize(version, payload, sid: nil)
|
|
312
|
+
super(version)
|
|
313
|
+
|
|
314
|
+
# Marshaled Properties
|
|
315
|
+
@properties = {
|
|
316
|
+
'sid' => payload['sid'],
|
|
317
|
+
'status' => payload['status'],
|
|
318
|
+
'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
|
|
319
|
+
'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
|
|
320
|
+
'account_sid' => payload['account_sid'],
|
|
321
|
+
'enable_turn' => payload['enable_turn'],
|
|
322
|
+
'unique_name' => payload['unique_name'],
|
|
323
|
+
'status_callback' => payload['status_callback'],
|
|
324
|
+
'status_callback_method' => payload['status_callback_method'],
|
|
325
|
+
'end_time' => Twilio.deserialize_iso8601_datetime(payload['end_time']),
|
|
326
|
+
'duration' => payload['duration'] == nil ? payload['duration'] : payload['duration'].to_i,
|
|
327
|
+
'type' => payload['type'],
|
|
328
|
+
'max_participants' => payload['max_participants'].to_i,
|
|
329
|
+
'record_participants_on_connect' => payload['record_participants_on_connect'],
|
|
330
|
+
'url' => payload['url'],
|
|
331
|
+
'links' => payload['links'],
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
# Context
|
|
335
|
+
@instance_context = nil
|
|
336
|
+
@params = {
|
|
337
|
+
'sid' => sid || @properties['sid'],
|
|
338
|
+
}
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
##
|
|
342
|
+
# Generate an instance context for the instance, the context is capable of
|
|
343
|
+
# performing various actions. All instance actions are proxied to the context
|
|
344
|
+
# @return [RoomContext] RoomContext for this RoomInstance
|
|
345
|
+
def context
|
|
346
|
+
unless @instance_context
|
|
347
|
+
@instance_context = RoomContext.new(
|
|
348
|
+
@version,
|
|
349
|
+
@params['sid'],
|
|
350
|
+
)
|
|
351
|
+
end
|
|
352
|
+
@instance_context
|
|
353
|
+
end
|
|
354
|
+
|
|
355
|
+
##
|
|
356
|
+
# @return [String] The sid
|
|
357
|
+
def sid
|
|
358
|
+
@properties['sid']
|
|
359
|
+
end
|
|
360
|
+
|
|
361
|
+
##
|
|
362
|
+
# @return [room.RoomStatus] The status
|
|
363
|
+
def status
|
|
364
|
+
@properties['status']
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
##
|
|
368
|
+
# @return [Time] The date_created
|
|
369
|
+
def date_created
|
|
370
|
+
@properties['date_created']
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
##
|
|
374
|
+
# @return [Time] The date_updated
|
|
375
|
+
def date_updated
|
|
376
|
+
@properties['date_updated']
|
|
377
|
+
end
|
|
378
|
+
|
|
379
|
+
##
|
|
380
|
+
# @return [String] The account_sid
|
|
381
|
+
def account_sid
|
|
382
|
+
@properties['account_sid']
|
|
383
|
+
end
|
|
384
|
+
|
|
385
|
+
##
|
|
386
|
+
# @return [Boolean] The enable_turn
|
|
387
|
+
def enable_turn
|
|
388
|
+
@properties['enable_turn']
|
|
389
|
+
end
|
|
390
|
+
|
|
391
|
+
##
|
|
392
|
+
# @return [String] The unique_name
|
|
393
|
+
def unique_name
|
|
394
|
+
@properties['unique_name']
|
|
395
|
+
end
|
|
396
|
+
|
|
397
|
+
##
|
|
398
|
+
# @return [String] The status_callback
|
|
399
|
+
def status_callback
|
|
400
|
+
@properties['status_callback']
|
|
401
|
+
end
|
|
402
|
+
|
|
403
|
+
##
|
|
404
|
+
# @return [String] The status_callback_method
|
|
405
|
+
def status_callback_method
|
|
406
|
+
@properties['status_callback_method']
|
|
407
|
+
end
|
|
408
|
+
|
|
409
|
+
##
|
|
410
|
+
# @return [Time] The end_time
|
|
411
|
+
def end_time
|
|
412
|
+
@properties['end_time']
|
|
413
|
+
end
|
|
414
|
+
|
|
415
|
+
##
|
|
416
|
+
# @return [String] The duration
|
|
417
|
+
def duration
|
|
418
|
+
@properties['duration']
|
|
419
|
+
end
|
|
420
|
+
|
|
421
|
+
##
|
|
422
|
+
# @return [room.RoomType] The type
|
|
423
|
+
def type
|
|
424
|
+
@properties['type']
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
##
|
|
428
|
+
# @return [String] The max_participants
|
|
429
|
+
def max_participants
|
|
430
|
+
@properties['max_participants']
|
|
431
|
+
end
|
|
432
|
+
|
|
433
|
+
##
|
|
434
|
+
# @return [Boolean] The record_participants_on_connect
|
|
435
|
+
def record_participants_on_connect
|
|
436
|
+
@properties['record_participants_on_connect']
|
|
437
|
+
end
|
|
438
|
+
|
|
439
|
+
##
|
|
440
|
+
# @return [String] The url
|
|
441
|
+
def url
|
|
442
|
+
@properties['url']
|
|
443
|
+
end
|
|
444
|
+
|
|
445
|
+
##
|
|
446
|
+
# @return [String] The links
|
|
447
|
+
def links
|
|
448
|
+
@properties['links']
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
##
|
|
452
|
+
# Fetch a RoomInstance
|
|
453
|
+
# @return [RoomInstance] Fetched RoomInstance
|
|
454
|
+
def fetch
|
|
455
|
+
context.fetch
|
|
456
|
+
end
|
|
457
|
+
|
|
458
|
+
##
|
|
459
|
+
# Update the RoomInstance
|
|
460
|
+
# @param [room.RoomStatus] status The status
|
|
461
|
+
# @return [RoomInstance] Updated RoomInstance
|
|
462
|
+
def update(status: nil)
|
|
463
|
+
context.update(
|
|
464
|
+
status: status,
|
|
465
|
+
)
|
|
466
|
+
end
|
|
467
|
+
|
|
468
|
+
##
|
|
469
|
+
# Access the recordings
|
|
470
|
+
# @return [recordings] recordings
|
|
471
|
+
def recordings
|
|
472
|
+
context.recordings
|
|
473
|
+
end
|
|
474
|
+
|
|
475
|
+
##
|
|
476
|
+
# Provide a user friendly representation
|
|
477
|
+
def to_s
|
|
478
|
+
values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
|
|
479
|
+
"<Twilio.Video.V1.RoomInstance #{values}>"
|
|
480
|
+
end
|
|
481
|
+
end
|
|
482
|
+
end
|
|
483
|
+
end
|
|
484
|
+
end
|
|
485
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
##
|
|
2
|
+
# This code was generated by
|
|
3
|
+
# \ / _ _ _| _ _
|
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
|
5
|
+
# / /
|
|
6
|
+
|
|
7
|
+
module Twilio
|
|
8
|
+
module REST
|
|
9
|
+
class Video
|
|
10
|
+
class V1 < Version
|
|
11
|
+
##
|
|
12
|
+
# Initialize the V1 version of Video
|
|
13
|
+
def initialize(domain)
|
|
14
|
+
super
|
|
15
|
+
@version = 'v1'
|
|
16
|
+
@recordings = nil
|
|
17
|
+
@rooms = nil
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# @param [String] sid The sid
|
|
22
|
+
# @return [Twilio::REST::Video::V1::RecordingInstance] if sid was passed.
|
|
23
|
+
# @return [Twilio::REST::Video::V1::RecordingList]
|
|
24
|
+
def recordings(sid=:unset)
|
|
25
|
+
if sid.nil?
|
|
26
|
+
raise ArgumentError, 'sid cannot be nil'
|
|
27
|
+
elsif sid == :unset
|
|
28
|
+
@recordings ||= RecordingList.new self
|
|
29
|
+
else
|
|
30
|
+
RecordingContext.new(self, sid)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
##
|
|
35
|
+
# @param [String] sid The sid
|
|
36
|
+
# @return [Twilio::REST::Video::V1::RoomInstance] if sid was passed.
|
|
37
|
+
# @return [Twilio::REST::Video::V1::RoomList]
|
|
38
|
+
def rooms(sid=:unset)
|
|
39
|
+
if sid.nil?
|
|
40
|
+
raise ArgumentError, 'sid cannot be nil'
|
|
41
|
+
elsif sid == :unset
|
|
42
|
+
@rooms ||= RoomList.new self
|
|
43
|
+
else
|
|
44
|
+
RoomContext.new(self, sid)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
##
|
|
49
|
+
# Provide a user friendly representation
|
|
50
|
+
def to_s
|
|
51
|
+
'<Twilio::REST::Video::V1>'
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
##
|
|
2
|
+
# This code was generated by
|
|
3
|
+
# \ / _ _ _| _ _
|
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
|
5
|
+
# / /
|
|
6
|
+
|
|
7
|
+
module Twilio
|
|
8
|
+
module REST
|
|
9
|
+
class Video < Domain
|
|
10
|
+
##
|
|
11
|
+
# Initialize the Video Domain
|
|
12
|
+
def initialize(twilio)
|
|
13
|
+
super
|
|
14
|
+
|
|
15
|
+
@base_url = 'https://video.twilio.com'
|
|
16
|
+
@host = 'video.twilio.com'
|
|
17
|
+
@port = 443
|
|
18
|
+
|
|
19
|
+
# Versions
|
|
20
|
+
@v1 = nil
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
##
|
|
24
|
+
# Version v1 of video
|
|
25
|
+
def v1
|
|
26
|
+
@v1 ||= V1.new self
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
##
|
|
30
|
+
# @param [String] sid The sid
|
|
31
|
+
# @return [Twilio::REST::Video::V1::RecordingInstance] if sid was passed.
|
|
32
|
+
# @return [Twilio::REST::Video::V1::RecordingList]
|
|
33
|
+
def recordings(sid=:unset)
|
|
34
|
+
self.v1.recordings(sid)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
##
|
|
38
|
+
# @param [String] sid The sid
|
|
39
|
+
# @return [Twilio::REST::Video::V1::RoomInstance] if sid was passed.
|
|
40
|
+
# @return [Twilio::REST::Video::V1::RoomList]
|
|
41
|
+
def rooms(sid=:unset)
|
|
42
|
+
self.v1.rooms(sid)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
##
|
|
46
|
+
# Provide a user friendly representation
|
|
47
|
+
def to_s
|
|
48
|
+
'#<Twilio::REST::Video>'
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
module Twilio
|
|
2
|
+
module Security
|
|
3
|
+
class RequestValidator
|
|
4
|
+
def initialize(auth_token = nil)
|
|
5
|
+
@auth_token = auth_token || Twilio.auth_token
|
|
6
|
+
raise ArgumentError, 'Auth token is required' if @auth_token.nil?
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def validate(url, params, signature)
|
|
10
|
+
params_hash = params_to_hash(params)
|
|
11
|
+
expected = build_signature_for(url, params_hash)
|
|
12
|
+
secure_compare(expected, signature)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def build_signature_for(url, params)
|
|
16
|
+
data = url + params.sort.join
|
|
17
|
+
digest = OpenSSL::Digest.new('sha1')
|
|
18
|
+
Base64.encode64(OpenSSL::HMAC.digest(digest, @auth_token, data)).strip
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
# Compares two strings in constant time to avoid timing attacks.
|
|
24
|
+
# Borrowed from ActiveSupport::MessageVerifier.
|
|
25
|
+
# https://github.com/rails/rails/blob/master/activesupport/lib/active_support/message_verifier.rb
|
|
26
|
+
def secure_compare(a, b)
|
|
27
|
+
return false unless a.bytesize == b.bytesize
|
|
28
|
+
|
|
29
|
+
l = a.unpack("C#{a.bytesize}")
|
|
30
|
+
|
|
31
|
+
res = 0
|
|
32
|
+
b.each_byte { |byte| res |= byte ^ l.shift }
|
|
33
|
+
res.zero?
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# `ActionController::Parameters` no longer, as of Rails 5, inherits
|
|
37
|
+
# from `Hash` so the `sort` method, used above in `build_signature_for`
|
|
38
|
+
# is deprecated.
|
|
39
|
+
#
|
|
40
|
+
# `to_unsafe_h` was introduced in Rails 4.2.1, before then it is still
|
|
41
|
+
# possible to sort on an ActionController::Parameters object.
|
|
42
|
+
#
|
|
43
|
+
# We use `to_unsafe_h` as `to_h` returns a hash of the permitted
|
|
44
|
+
# parameters only and we need all the parameters to create the signature.
|
|
45
|
+
def params_to_hash(params)
|
|
46
|
+
if params.respond_to?(:to_unsafe_h)
|
|
47
|
+
params.to_unsafe_h
|
|
48
|
+
else
|
|
49
|
+
params
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|