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,230 @@
|
|
|
1
|
+
##
|
|
2
|
+
# This code was generated by
|
|
3
|
+
# \ / _ _ _| _ _
|
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
|
5
|
+
# / /
|
|
6
|
+
|
|
7
|
+
module Twilio
|
|
8
|
+
module REST
|
|
9
|
+
class Taskrouter < Domain
|
|
10
|
+
class V1 < Version
|
|
11
|
+
class WorkspaceContext < InstanceContext
|
|
12
|
+
class WorkflowContext < InstanceContext
|
|
13
|
+
class WorkflowStatisticsList < ListResource
|
|
14
|
+
##
|
|
15
|
+
# Initialize the WorkflowStatisticsList
|
|
16
|
+
# @param [Version] version Version that contains the resource
|
|
17
|
+
# @param [String] workspace_sid The workspace_sid
|
|
18
|
+
# @param [String] workflow_sid The workflow_sid
|
|
19
|
+
# @return [WorkflowStatisticsList] WorkflowStatisticsList
|
|
20
|
+
def initialize(version, workspace_sid: nil, workflow_sid: nil)
|
|
21
|
+
super(version)
|
|
22
|
+
|
|
23
|
+
# Path Solution
|
|
24
|
+
@solution = {
|
|
25
|
+
workspace_sid: workspace_sid,
|
|
26
|
+
workflow_sid: workflow_sid
|
|
27
|
+
}
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
##
|
|
31
|
+
# Provide a user friendly representation
|
|
32
|
+
def to_s
|
|
33
|
+
'#<Twilio.Taskrouter.V1.WorkflowStatisticsList>'
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
class WorkflowStatisticsPage < Page
|
|
38
|
+
##
|
|
39
|
+
# Initialize the WorkflowStatisticsPage
|
|
40
|
+
# @param [Version] version Version that contains the resource
|
|
41
|
+
# @param [Response] response Response from the API
|
|
42
|
+
# @param [Hash] solution Path solution for the resource
|
|
43
|
+
# @return [WorkflowStatisticsPage] WorkflowStatisticsPage
|
|
44
|
+
def initialize(version, response, solution)
|
|
45
|
+
super(version, response)
|
|
46
|
+
|
|
47
|
+
# Path Solution
|
|
48
|
+
@solution = solution
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
##
|
|
52
|
+
# Build an instance of WorkflowStatisticsInstance
|
|
53
|
+
# @param [Hash] payload Payload response from the API
|
|
54
|
+
# @return [WorkflowStatisticsInstance] WorkflowStatisticsInstance
|
|
55
|
+
def get_instance(payload)
|
|
56
|
+
WorkflowStatisticsInstance.new(
|
|
57
|
+
@version,
|
|
58
|
+
payload,
|
|
59
|
+
workspace_sid: @solution[:workspace_sid],
|
|
60
|
+
workflow_sid: @solution[:workflow_sid],
|
|
61
|
+
)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
##
|
|
65
|
+
# Provide a user friendly representation
|
|
66
|
+
def to_s
|
|
67
|
+
'<Twilio.Taskrouter.V1.WorkflowStatisticsPage>'
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
class WorkflowStatisticsContext < InstanceContext
|
|
72
|
+
##
|
|
73
|
+
# Initialize the WorkflowStatisticsContext
|
|
74
|
+
# @param [Version] version Version that contains the resource
|
|
75
|
+
# @param [String] workspace_sid The workspace_sid
|
|
76
|
+
# @param [String] workflow_sid The workflow_sid
|
|
77
|
+
# @return [WorkflowStatisticsContext] WorkflowStatisticsContext
|
|
78
|
+
def initialize(version, workspace_sid, workflow_sid)
|
|
79
|
+
super(version)
|
|
80
|
+
|
|
81
|
+
# Path Solution
|
|
82
|
+
@solution = {
|
|
83
|
+
workspace_sid: workspace_sid,
|
|
84
|
+
workflow_sid: workflow_sid,
|
|
85
|
+
}
|
|
86
|
+
@uri = "/Workspaces/#{@solution[:workspace_sid]}/Workflows/#{@solution[:workflow_sid]}/Statistics"
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
##
|
|
90
|
+
# Fetch a WorkflowStatisticsInstance
|
|
91
|
+
# @param [String] minutes The minutes
|
|
92
|
+
# @param [Time] start_date The start_date
|
|
93
|
+
# @param [Time] end_date The end_date
|
|
94
|
+
# @return [WorkflowStatisticsInstance] Fetched WorkflowStatisticsInstance
|
|
95
|
+
def fetch(minutes: :unset, start_date: :unset, end_date: :unset)
|
|
96
|
+
params = Twilio::Values.of({
|
|
97
|
+
'Minutes' => minutes,
|
|
98
|
+
'StartDate' => Twilio.serialize_iso8601_datetime(start_date),
|
|
99
|
+
'EndDate' => Twilio.serialize_iso8601_datetime(end_date),
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
payload = @version.fetch(
|
|
103
|
+
'GET',
|
|
104
|
+
@uri,
|
|
105
|
+
params,
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
WorkflowStatisticsInstance.new(
|
|
109
|
+
@version,
|
|
110
|
+
payload,
|
|
111
|
+
workspace_sid: @solution[:workspace_sid],
|
|
112
|
+
workflow_sid: @solution[:workflow_sid],
|
|
113
|
+
)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
##
|
|
117
|
+
# Provide a user friendly representation
|
|
118
|
+
def to_s
|
|
119
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
|
120
|
+
"#<Twilio.Taskrouter.V1.WorkflowStatisticsContext #{context}>"
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
class WorkflowStatisticsInstance < InstanceResource
|
|
125
|
+
##
|
|
126
|
+
# Initialize the WorkflowStatisticsInstance
|
|
127
|
+
# @param [Version] version Version that contains the resource
|
|
128
|
+
# @param [Hash] payload payload that contains response from Twilio
|
|
129
|
+
# @param [String] workspace_sid The workspace_sid
|
|
130
|
+
# @param [String] workflow_sid The workflow_sid
|
|
131
|
+
# @return [WorkflowStatisticsInstance] WorkflowStatisticsInstance
|
|
132
|
+
def initialize(version, payload, workspace_sid: nil, workflow_sid: nil)
|
|
133
|
+
super(version)
|
|
134
|
+
|
|
135
|
+
# Marshaled Properties
|
|
136
|
+
@properties = {
|
|
137
|
+
'account_sid' => payload['account_sid'],
|
|
138
|
+
'cumulative' => payload['cumulative'],
|
|
139
|
+
'realtime' => payload['realtime'],
|
|
140
|
+
'workflow_sid' => payload['workflow_sid'],
|
|
141
|
+
'workspace_sid' => payload['workspace_sid'],
|
|
142
|
+
'url' => payload['url'],
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
# Context
|
|
146
|
+
@instance_context = nil
|
|
147
|
+
@params = {
|
|
148
|
+
'workspace_sid' => workspace_sid,
|
|
149
|
+
'workflow_sid' => workflow_sid,
|
|
150
|
+
}
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
##
|
|
154
|
+
# Generate an instance context for the instance, the context is capable of
|
|
155
|
+
# performing various actions. All instance actions are proxied to the context
|
|
156
|
+
# @return [WorkflowStatisticsContext] WorkflowStatisticsContext for this WorkflowStatisticsInstance
|
|
157
|
+
def context
|
|
158
|
+
unless @instance_context
|
|
159
|
+
@instance_context = WorkflowStatisticsContext.new(
|
|
160
|
+
@version,
|
|
161
|
+
@params['workspace_sid'],
|
|
162
|
+
@params['workflow_sid'],
|
|
163
|
+
)
|
|
164
|
+
end
|
|
165
|
+
@instance_context
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
##
|
|
169
|
+
# @return [String] The account_sid
|
|
170
|
+
def account_sid
|
|
171
|
+
@properties['account_sid']
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
##
|
|
175
|
+
# @return [Hash] The cumulative
|
|
176
|
+
def cumulative
|
|
177
|
+
@properties['cumulative']
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
##
|
|
181
|
+
# @return [Hash] The realtime
|
|
182
|
+
def realtime
|
|
183
|
+
@properties['realtime']
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
##
|
|
187
|
+
# @return [String] The workflow_sid
|
|
188
|
+
def workflow_sid
|
|
189
|
+
@properties['workflow_sid']
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
##
|
|
193
|
+
# @return [String] The workspace_sid
|
|
194
|
+
def workspace_sid
|
|
195
|
+
@properties['workspace_sid']
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
##
|
|
199
|
+
# @return [String] The url
|
|
200
|
+
def url
|
|
201
|
+
@properties['url']
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
##
|
|
205
|
+
# Fetch a WorkflowStatisticsInstance
|
|
206
|
+
# @param [String] minutes The minutes
|
|
207
|
+
# @param [Time] start_date The start_date
|
|
208
|
+
# @param [Time] end_date The end_date
|
|
209
|
+
# @return [WorkflowStatisticsInstance] Fetched WorkflowStatisticsInstance
|
|
210
|
+
def fetch(minutes: :unset, start_date: :unset, end_date: :unset)
|
|
211
|
+
context.fetch(
|
|
212
|
+
minutes: minutes,
|
|
213
|
+
start_date: start_date,
|
|
214
|
+
end_date: end_date,
|
|
215
|
+
)
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
##
|
|
219
|
+
# Provide a user friendly representation
|
|
220
|
+
def to_s
|
|
221
|
+
values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
|
|
222
|
+
"<Twilio.Taskrouter.V1.WorkflowStatisticsInstance #{values}>"
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
end
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
end
|
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
##
|
|
2
|
+
# This code was generated by
|
|
3
|
+
# \ / _ _ _| _ _
|
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
|
5
|
+
# / /
|
|
6
|
+
|
|
7
|
+
module Twilio
|
|
8
|
+
module REST
|
|
9
|
+
class Taskrouter < Domain
|
|
10
|
+
class V1 < Version
|
|
11
|
+
class WorkspaceContext < InstanceContext
|
|
12
|
+
class WorkflowList < ListResource
|
|
13
|
+
##
|
|
14
|
+
# Initialize the WorkflowList
|
|
15
|
+
# @param [Version] version Version that contains the resource
|
|
16
|
+
# @param [String] workspace_sid The workspace_sid
|
|
17
|
+
# @return [WorkflowList] WorkflowList
|
|
18
|
+
def initialize(version, workspace_sid: nil)
|
|
19
|
+
super(version)
|
|
20
|
+
|
|
21
|
+
# Path Solution
|
|
22
|
+
@solution = {
|
|
23
|
+
workspace_sid: workspace_sid
|
|
24
|
+
}
|
|
25
|
+
@uri = "/Workspaces/#{@solution[:workspace_sid]}/Workflows"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
##
|
|
29
|
+
# Lists WorkflowInstance records from the API as a list.
|
|
30
|
+
# Unlike stream(), this operation is eager and will load `limit` records into
|
|
31
|
+
# memory before returning.
|
|
32
|
+
# @param [String] friendly_name The friendly_name
|
|
33
|
+
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
|
34
|
+
# guarantees to never return more than limit. Default is no limit
|
|
35
|
+
# @param [Integer] page_size Number of records to fetch per request, when not set will use
|
|
36
|
+
# the default value of 50 records. If no page_size is defined
|
|
37
|
+
# but a limit is defined, stream() will attempt to read the
|
|
38
|
+
# limit with the most efficient page size, i.e. min(limit, 1000)
|
|
39
|
+
# @return [Array] Array of up to limit results
|
|
40
|
+
def list(friendly_name: :unset, limit: nil, page_size: nil)
|
|
41
|
+
self.stream(
|
|
42
|
+
friendly_name: friendly_name,
|
|
43
|
+
limit: limit,
|
|
44
|
+
page_size: page_size
|
|
45
|
+
).entries
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
##
|
|
49
|
+
# Streams WorkflowInstance records from the API as an Enumerable.
|
|
50
|
+
# This operation lazily loads records as efficiently as possible until the limit
|
|
51
|
+
# is reached.
|
|
52
|
+
# @param [String] friendly_name The friendly_name
|
|
53
|
+
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
|
54
|
+
# guarantees to never return more than limit. Default is no limit
|
|
55
|
+
# @param [Integer] page_size Number of records to fetch per request, when not set will use
|
|
56
|
+
# the default value of 50 records. If no page_size is defined
|
|
57
|
+
# but a limit is defined, stream() will attempt to read the
|
|
58
|
+
# limit with the most efficient page size, i.e. min(limit, 1000)
|
|
59
|
+
# @return [Enumerable] Enumerable that will yield up to limit results
|
|
60
|
+
def stream(friendly_name: :unset, limit: nil, page_size: nil)
|
|
61
|
+
limits = @version.read_limits(limit, page_size)
|
|
62
|
+
|
|
63
|
+
page = self.page(
|
|
64
|
+
friendly_name: friendly_name,
|
|
65
|
+
page_size: limits[:page_size],
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
@version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
##
|
|
72
|
+
# When passed a block, yields WorkflowInstance records from the API.
|
|
73
|
+
# This operation lazily loads records as efficiently as possible until the limit
|
|
74
|
+
# is reached.
|
|
75
|
+
def each
|
|
76
|
+
limits = @version.read_limits
|
|
77
|
+
|
|
78
|
+
page = self.page(
|
|
79
|
+
page_size: limits[:page_size],
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
@version.stream(page,
|
|
83
|
+
limit: limits[:limit],
|
|
84
|
+
page_limit: limits[:page_limit]).each {|x| yield x}
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
##
|
|
88
|
+
# Retrieve a single page of WorkflowInstance records from the API.
|
|
89
|
+
# Request is executed immediately.
|
|
90
|
+
# @param [String] friendly_name The friendly_name
|
|
91
|
+
# @param [String] page_token PageToken provided by the API
|
|
92
|
+
# @param [Integer] page_number Page Number, this value is simply for client state
|
|
93
|
+
# @param [Integer] page_size Number of records to return, defaults to 50
|
|
94
|
+
# @return [Page] Page of WorkflowInstance
|
|
95
|
+
def page(friendly_name: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
|
|
96
|
+
params = Twilio::Values.of({
|
|
97
|
+
'FriendlyName' => friendly_name,
|
|
98
|
+
'PageToken' => page_token,
|
|
99
|
+
'Page' => page_number,
|
|
100
|
+
'PageSize' => page_size,
|
|
101
|
+
})
|
|
102
|
+
response = @version.page(
|
|
103
|
+
'GET',
|
|
104
|
+
@uri,
|
|
105
|
+
params
|
|
106
|
+
)
|
|
107
|
+
WorkflowPage.new(@version, response, @solution)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
##
|
|
111
|
+
# Retrieve a single page of WorkflowInstance records from the API.
|
|
112
|
+
# Request is executed immediately.
|
|
113
|
+
# @param [String] target_url API-generated URL for the requested results page
|
|
114
|
+
# @return [Page] Page of WorkflowInstance
|
|
115
|
+
def get_page(target_url)
|
|
116
|
+
response = @version.domain.request(
|
|
117
|
+
'GET',
|
|
118
|
+
target_url
|
|
119
|
+
)
|
|
120
|
+
WorkflowPage.new(@version, response, @solution)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
##
|
|
124
|
+
# Retrieve a single page of WorkflowInstance records from the API.
|
|
125
|
+
# Request is executed immediately.
|
|
126
|
+
# @param [String] friendly_name The friendly_name
|
|
127
|
+
# @param [String] configuration The configuration
|
|
128
|
+
# @param [String] assignment_callback_url The assignment_callback_url
|
|
129
|
+
# @param [String] fallback_assignment_callback_url The
|
|
130
|
+
# fallback_assignment_callback_url
|
|
131
|
+
# @param [String] task_reservation_timeout The task_reservation_timeout
|
|
132
|
+
# @return [WorkflowInstance] Newly created WorkflowInstance
|
|
133
|
+
def create(friendly_name: nil, configuration: nil, assignment_callback_url: :unset, fallback_assignment_callback_url: :unset, task_reservation_timeout: :unset)
|
|
134
|
+
data = Twilio::Values.of({
|
|
135
|
+
'FriendlyName' => friendly_name,
|
|
136
|
+
'Configuration' => configuration,
|
|
137
|
+
'AssignmentCallbackUrl' => assignment_callback_url,
|
|
138
|
+
'FallbackAssignmentCallbackUrl' => fallback_assignment_callback_url,
|
|
139
|
+
'TaskReservationTimeout' => task_reservation_timeout,
|
|
140
|
+
})
|
|
141
|
+
|
|
142
|
+
payload = @version.create(
|
|
143
|
+
'POST',
|
|
144
|
+
@uri,
|
|
145
|
+
data: data
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
WorkflowInstance.new(
|
|
149
|
+
@version,
|
|
150
|
+
payload,
|
|
151
|
+
workspace_sid: @solution[:workspace_sid],
|
|
152
|
+
)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
##
|
|
156
|
+
# Provide a user friendly representation
|
|
157
|
+
def to_s
|
|
158
|
+
'#<Twilio.Taskrouter.V1.WorkflowList>'
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
class WorkflowPage < Page
|
|
163
|
+
##
|
|
164
|
+
# Initialize the WorkflowPage
|
|
165
|
+
# @param [Version] version Version that contains the resource
|
|
166
|
+
# @param [Response] response Response from the API
|
|
167
|
+
# @param [Hash] solution Path solution for the resource
|
|
168
|
+
# @return [WorkflowPage] WorkflowPage
|
|
169
|
+
def initialize(version, response, solution)
|
|
170
|
+
super(version, response)
|
|
171
|
+
|
|
172
|
+
# Path Solution
|
|
173
|
+
@solution = solution
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
##
|
|
177
|
+
# Build an instance of WorkflowInstance
|
|
178
|
+
# @param [Hash] payload Payload response from the API
|
|
179
|
+
# @return [WorkflowInstance] WorkflowInstance
|
|
180
|
+
def get_instance(payload)
|
|
181
|
+
WorkflowInstance.new(
|
|
182
|
+
@version,
|
|
183
|
+
payload,
|
|
184
|
+
workspace_sid: @solution[:workspace_sid],
|
|
185
|
+
)
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
##
|
|
189
|
+
# Provide a user friendly representation
|
|
190
|
+
def to_s
|
|
191
|
+
'<Twilio.Taskrouter.V1.WorkflowPage>'
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
class WorkflowContext < InstanceContext
|
|
196
|
+
##
|
|
197
|
+
# Initialize the WorkflowContext
|
|
198
|
+
# @param [Version] version Version that contains the resource
|
|
199
|
+
# @param [String] workspace_sid The workspace_sid
|
|
200
|
+
# @param [String] sid The sid
|
|
201
|
+
# @return [WorkflowContext] WorkflowContext
|
|
202
|
+
def initialize(version, workspace_sid, sid)
|
|
203
|
+
super(version)
|
|
204
|
+
|
|
205
|
+
# Path Solution
|
|
206
|
+
@solution = {
|
|
207
|
+
workspace_sid: workspace_sid,
|
|
208
|
+
sid: sid,
|
|
209
|
+
}
|
|
210
|
+
@uri = "/Workspaces/#{@solution[:workspace_sid]}/Workflows/#{@solution[:sid]}"
|
|
211
|
+
|
|
212
|
+
# Dependents
|
|
213
|
+
@statistics = nil
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
##
|
|
217
|
+
# Fetch a WorkflowInstance
|
|
218
|
+
# @return [WorkflowInstance] Fetched WorkflowInstance
|
|
219
|
+
def fetch
|
|
220
|
+
params = Twilio::Values.of({})
|
|
221
|
+
|
|
222
|
+
payload = @version.fetch(
|
|
223
|
+
'GET',
|
|
224
|
+
@uri,
|
|
225
|
+
params,
|
|
226
|
+
)
|
|
227
|
+
|
|
228
|
+
WorkflowInstance.new(
|
|
229
|
+
@version,
|
|
230
|
+
payload,
|
|
231
|
+
workspace_sid: @solution[:workspace_sid],
|
|
232
|
+
sid: @solution[:sid],
|
|
233
|
+
)
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
##
|
|
237
|
+
# Update the WorkflowInstance
|
|
238
|
+
# @param [String] friendly_name The friendly_name
|
|
239
|
+
# @param [String] assignment_callback_url The assignment_callback_url
|
|
240
|
+
# @param [String] fallback_assignment_callback_url The
|
|
241
|
+
# fallback_assignment_callback_url
|
|
242
|
+
# @param [String] configuration The configuration
|
|
243
|
+
# @param [String] task_reservation_timeout The task_reservation_timeout
|
|
244
|
+
# @return [WorkflowInstance] Updated WorkflowInstance
|
|
245
|
+
def update(friendly_name: :unset, assignment_callback_url: :unset, fallback_assignment_callback_url: :unset, configuration: :unset, task_reservation_timeout: :unset)
|
|
246
|
+
data = Twilio::Values.of({
|
|
247
|
+
'FriendlyName' => friendly_name,
|
|
248
|
+
'AssignmentCallbackUrl' => assignment_callback_url,
|
|
249
|
+
'FallbackAssignmentCallbackUrl' => fallback_assignment_callback_url,
|
|
250
|
+
'Configuration' => configuration,
|
|
251
|
+
'TaskReservationTimeout' => task_reservation_timeout,
|
|
252
|
+
})
|
|
253
|
+
|
|
254
|
+
payload = @version.update(
|
|
255
|
+
'POST',
|
|
256
|
+
@uri,
|
|
257
|
+
data: data,
|
|
258
|
+
)
|
|
259
|
+
|
|
260
|
+
WorkflowInstance.new(
|
|
261
|
+
@version,
|
|
262
|
+
payload,
|
|
263
|
+
workspace_sid: @solution[:workspace_sid],
|
|
264
|
+
sid: @solution[:sid],
|
|
265
|
+
)
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
##
|
|
269
|
+
# Deletes the WorkflowInstance
|
|
270
|
+
# @return [Boolean] true if delete succeeds, true otherwise
|
|
271
|
+
def delete
|
|
272
|
+
@version.delete('delete', @uri)
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
##
|
|
276
|
+
# Access the statistics
|
|
277
|
+
# @return [WorkflowStatisticsList]
|
|
278
|
+
# @return [WorkflowStatisticsContext]
|
|
279
|
+
def statistics
|
|
280
|
+
WorkflowStatisticsContext.new(
|
|
281
|
+
@version,
|
|
282
|
+
@solution[:workspace_sid],
|
|
283
|
+
@solution[:sid],
|
|
284
|
+
)
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
##
|
|
288
|
+
# Provide a user friendly representation
|
|
289
|
+
def to_s
|
|
290
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
|
291
|
+
"#<Twilio.Taskrouter.V1.WorkflowContext #{context}>"
|
|
292
|
+
end
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
class WorkflowInstance < InstanceResource
|
|
296
|
+
##
|
|
297
|
+
# Initialize the WorkflowInstance
|
|
298
|
+
# @param [Version] version Version that contains the resource
|
|
299
|
+
# @param [Hash] payload payload that contains response from Twilio
|
|
300
|
+
# @param [String] workspace_sid The workspace_sid
|
|
301
|
+
# @param [String] sid The sid
|
|
302
|
+
# @return [WorkflowInstance] WorkflowInstance
|
|
303
|
+
def initialize(version, payload, workspace_sid: nil, sid: nil)
|
|
304
|
+
super(version)
|
|
305
|
+
|
|
306
|
+
# Marshaled Properties
|
|
307
|
+
@properties = {
|
|
308
|
+
'account_sid' => payload['account_sid'],
|
|
309
|
+
'assignment_callback_url' => payload['assignment_callback_url'],
|
|
310
|
+
'configuration' => payload['configuration'],
|
|
311
|
+
'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
|
|
312
|
+
'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
|
|
313
|
+
'document_content_type' => payload['document_content_type'],
|
|
314
|
+
'fallback_assignment_callback_url' => payload['fallback_assignment_callback_url'],
|
|
315
|
+
'friendly_name' => payload['friendly_name'],
|
|
316
|
+
'sid' => payload['sid'],
|
|
317
|
+
'task_reservation_timeout' => payload['task_reservation_timeout'].to_i,
|
|
318
|
+
'workspace_sid' => payload['workspace_sid'],
|
|
319
|
+
'url' => payload['url'],
|
|
320
|
+
'links' => payload['links'],
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
# Context
|
|
324
|
+
@instance_context = nil
|
|
325
|
+
@params = {
|
|
326
|
+
'workspace_sid' => workspace_sid,
|
|
327
|
+
'sid' => sid || @properties['sid'],
|
|
328
|
+
}
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
##
|
|
332
|
+
# Generate an instance context for the instance, the context is capable of
|
|
333
|
+
# performing various actions. All instance actions are proxied to the context
|
|
334
|
+
# @return [WorkflowContext] WorkflowContext for this WorkflowInstance
|
|
335
|
+
def context
|
|
336
|
+
unless @instance_context
|
|
337
|
+
@instance_context = WorkflowContext.new(
|
|
338
|
+
@version,
|
|
339
|
+
@params['workspace_sid'],
|
|
340
|
+
@params['sid'],
|
|
341
|
+
)
|
|
342
|
+
end
|
|
343
|
+
@instance_context
|
|
344
|
+
end
|
|
345
|
+
|
|
346
|
+
##
|
|
347
|
+
# @return [String] The account_sid
|
|
348
|
+
def account_sid
|
|
349
|
+
@properties['account_sid']
|
|
350
|
+
end
|
|
351
|
+
|
|
352
|
+
##
|
|
353
|
+
# @return [String] The assignment_callback_url
|
|
354
|
+
def assignment_callback_url
|
|
355
|
+
@properties['assignment_callback_url']
|
|
356
|
+
end
|
|
357
|
+
|
|
358
|
+
##
|
|
359
|
+
# @return [String] The configuration
|
|
360
|
+
def configuration
|
|
361
|
+
@properties['configuration']
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
##
|
|
365
|
+
# @return [Time] The date_created
|
|
366
|
+
def date_created
|
|
367
|
+
@properties['date_created']
|
|
368
|
+
end
|
|
369
|
+
|
|
370
|
+
##
|
|
371
|
+
# @return [Time] The date_updated
|
|
372
|
+
def date_updated
|
|
373
|
+
@properties['date_updated']
|
|
374
|
+
end
|
|
375
|
+
|
|
376
|
+
##
|
|
377
|
+
# @return [String] The document_content_type
|
|
378
|
+
def document_content_type
|
|
379
|
+
@properties['document_content_type']
|
|
380
|
+
end
|
|
381
|
+
|
|
382
|
+
##
|
|
383
|
+
# @return [String] The fallback_assignment_callback_url
|
|
384
|
+
def fallback_assignment_callback_url
|
|
385
|
+
@properties['fallback_assignment_callback_url']
|
|
386
|
+
end
|
|
387
|
+
|
|
388
|
+
##
|
|
389
|
+
# @return [String] The friendly_name
|
|
390
|
+
def friendly_name
|
|
391
|
+
@properties['friendly_name']
|
|
392
|
+
end
|
|
393
|
+
|
|
394
|
+
##
|
|
395
|
+
# @return [String] The sid
|
|
396
|
+
def sid
|
|
397
|
+
@properties['sid']
|
|
398
|
+
end
|
|
399
|
+
|
|
400
|
+
##
|
|
401
|
+
# @return [String] The task_reservation_timeout
|
|
402
|
+
def task_reservation_timeout
|
|
403
|
+
@properties['task_reservation_timeout']
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
##
|
|
407
|
+
# @return [String] The workspace_sid
|
|
408
|
+
def workspace_sid
|
|
409
|
+
@properties['workspace_sid']
|
|
410
|
+
end
|
|
411
|
+
|
|
412
|
+
##
|
|
413
|
+
# @return [String] The url
|
|
414
|
+
def url
|
|
415
|
+
@properties['url']
|
|
416
|
+
end
|
|
417
|
+
|
|
418
|
+
##
|
|
419
|
+
# @return [String] The links
|
|
420
|
+
def links
|
|
421
|
+
@properties['links']
|
|
422
|
+
end
|
|
423
|
+
|
|
424
|
+
##
|
|
425
|
+
# Fetch a WorkflowInstance
|
|
426
|
+
# @return [WorkflowInstance] Fetched WorkflowInstance
|
|
427
|
+
def fetch
|
|
428
|
+
context.fetch
|
|
429
|
+
end
|
|
430
|
+
|
|
431
|
+
##
|
|
432
|
+
# Update the WorkflowInstance
|
|
433
|
+
# @param [String] friendly_name The friendly_name
|
|
434
|
+
# @param [String] assignment_callback_url The assignment_callback_url
|
|
435
|
+
# @param [String] fallback_assignment_callback_url The
|
|
436
|
+
# fallback_assignment_callback_url
|
|
437
|
+
# @param [String] configuration The configuration
|
|
438
|
+
# @param [String] task_reservation_timeout The task_reservation_timeout
|
|
439
|
+
# @return [WorkflowInstance] Updated WorkflowInstance
|
|
440
|
+
def update(friendly_name: :unset, assignment_callback_url: :unset, fallback_assignment_callback_url: :unset, configuration: :unset, task_reservation_timeout: :unset)
|
|
441
|
+
context.update(
|
|
442
|
+
friendly_name: friendly_name,
|
|
443
|
+
assignment_callback_url: assignment_callback_url,
|
|
444
|
+
fallback_assignment_callback_url: fallback_assignment_callback_url,
|
|
445
|
+
configuration: configuration,
|
|
446
|
+
task_reservation_timeout: task_reservation_timeout,
|
|
447
|
+
)
|
|
448
|
+
end
|
|
449
|
+
|
|
450
|
+
##
|
|
451
|
+
# Deletes the WorkflowInstance
|
|
452
|
+
# @return [Boolean] true if delete succeeds, true otherwise
|
|
453
|
+
def delete
|
|
454
|
+
context.delete
|
|
455
|
+
end
|
|
456
|
+
|
|
457
|
+
##
|
|
458
|
+
# Access the statistics
|
|
459
|
+
# @return [statistics] statistics
|
|
460
|
+
def statistics
|
|
461
|
+
context.statistics
|
|
462
|
+
end
|
|
463
|
+
|
|
464
|
+
##
|
|
465
|
+
# Provide a user friendly representation
|
|
466
|
+
def to_s
|
|
467
|
+
values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
|
|
468
|
+
"<Twilio.Taskrouter.V1.WorkflowInstance #{values}>"
|
|
469
|
+
end
|
|
470
|
+
end
|
|
471
|
+
end
|
|
472
|
+
end
|
|
473
|
+
end
|
|
474
|
+
end
|
|
475
|
+
end
|