twilio-ruby 5.23.0 → 7.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.dockerignore +1 -0
- data/.github/workflows/pr-lint.yml +21 -0
- data/.github/workflows/test-and-deploy.yml +139 -0
- data/.gitignore +11 -1
- data/.rubocop.yml +22 -6
- data/.rubocop_todo.yml +147 -73
- data/CHANGES.md +2681 -0
- data/CODE_OF_CONDUCT.md +73 -0
- data/CONTRIBUTING.md +14 -10
- data/Dockerfile +2 -2
- data/Gemfile +3 -8
- data/ISSUE_TEMPLATE.md +17 -13
- data/{LICENSE.md → LICENSE} +2 -2
- data/Makefile +22 -24
- data/PULL_REQUEST_TEMPLATE.md +30 -3
- data/README.md +211 -54
- data/Rakefile +0 -54
- data/UPGRADE.md +21 -0
- data/VERSIONS.md +9 -10
- data/advanced-examples/custom-http-client.md +170 -0
- data/cluster_spec.rb +77 -0
- data/examples/examples.rb +1 -1
- data/githooks/pre-commit +0 -0
- data/lib/rack/twilio_webhook_authentication.rb +25 -1
- data/lib/twilio-ruby/base/client_base.rb +124 -0
- data/lib/twilio-ruby/framework/request.rb +8 -1
- data/lib/twilio-ruby/framework/{domain.rb → rest/domain.rb} +1 -1
- data/lib/twilio-ruby/framework/{error.rb → rest/error.rb} +3 -15
- data/lib/twilio-ruby/framework/{version.rb → rest/version.rb} +7 -11
- data/lib/twilio-ruby/http/http_client.rb +44 -17
- data/lib/twilio-ruby/http.rb +5 -0
- data/lib/twilio-ruby/jwt/access_token.rb +20 -61
- data/lib/twilio-ruby/jwt/jwt.rb +6 -0
- data/lib/twilio-ruby/jwt/task_router.rb +2 -2
- data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +209 -0
- data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +381 -350
- data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +381 -350
- data/lib/twilio-ruby/rest/accounts/v1/credential.rb +123 -115
- data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +176 -0
- data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +227 -0
- data/lib/twilio-ruby/rest/accounts/v1.rb +52 -29
- data/lib/twilio-ruby/rest/accounts.rb +10 -28
- data/lib/twilio-ruby/rest/accounts_base.rb +38 -0
- data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +372 -368
- data/lib/twilio-ruby/rest/api/v2010/account/address.rb +561 -532
- data/lib/twilio-ruby/rest/api/v2010/account/application.rb +625 -602
- data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +317 -329
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +395 -0
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +395 -0
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +395 -0
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +395 -0
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +395 -0
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +395 -0
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +395 -0
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +435 -0
- data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +140 -125
- data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +210 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +404 -439
- data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +327 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +504 -516
- data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +877 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +877 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +901 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +166 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +244 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call.rb +956 -851
- data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +669 -674
- data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +459 -471
- data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +495 -492
- data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +434 -420
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +324 -361
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +404 -432
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +540 -500
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +540 -499
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +540 -499
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +851 -884
- data/lib/twilio-ruby/rest/api/v2010/account/key.rb +343 -315
- data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +171 -172
- data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +346 -359
- data/lib/twilio-ruby/rest/api/v2010/account/message.rb +625 -619
- data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +161 -144
- data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +161 -144
- data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +404 -422
- data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +376 -371
- data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +346 -349
- data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +436 -415
- data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +364 -389
- data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +374 -394
- data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +370 -381
- data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +513 -492
- data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +423 -421
- data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +343 -319
- data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +385 -386
- data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +409 -391
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +353 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_ip_access_control_list_mapping.rb +353 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +141 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations/auth_registrations_credential_list_mapping.rb +353 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +127 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +96 -104
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +347 -353
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +347 -352
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +659 -587
- data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +422 -439
- data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +409 -392
- data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +143 -151
- data/lib/twilio-ruby/rest/api/v2010/account/token.rb +175 -160
- data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +370 -359
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +316 -335
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +316 -335
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +316 -335
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +316 -335
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +316 -335
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +316 -335
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +316 -335
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +316 -335
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +383 -412
- data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +495 -501
- data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +114 -105
- data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +176 -167
- data/lib/twilio-ruby/rest/api/v2010/account.rb +987 -961
- data/lib/twilio-ruby/rest/api/v2010.rb +127 -148
- data/lib/twilio-ruby/rest/api.rb +27 -36
- data/lib/twilio-ruby/rest/api_base.rb +38 -0
- data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +309 -0
- data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +308 -0
- data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +283 -0
- data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +257 -0
- data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +258 -0
- data/lib/twilio-ruby/rest/bulkexports/v1.rb +64 -0
- data/lib/twilio-ruby/rest/bulkexports.rb +25 -0
- data/lib/twilio-ruby/rest/bulkexports_base.rb +38 -0
- data/lib/twilio-ruby/rest/chat/v1/credential.rb +429 -421
- data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +382 -405
- data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +432 -458
- data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +448 -455
- data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +544 -533
- data/lib/twilio-ruby/rest/chat/v1/service/role.rb +406 -385
- data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +246 -242
- data/lib/twilio-ruby/rest/chat/v1/service/user.rb +475 -458
- data/lib/twilio-ruby/rest/chat/v1/service.rb +871 -912
- data/lib/twilio-ruby/rest/chat/v1.rb +58 -54
- data/lib/twilio-ruby/rest/chat/v2/credential.rb +429 -421
- data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +377 -381
- data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +382 -398
- data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +493 -531
- data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +520 -535
- data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +450 -483
- data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +613 -604
- data/lib/twilio-ruby/rest/chat/v2/service/role.rb +406 -385
- data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +370 -392
- data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +413 -385
- data/lib/twilio-ruby/rest/chat/v2/service/user.rb +517 -492
- data/lib/twilio-ruby/rest/chat/v2/service.rb +774 -798
- data/lib/twilio-ruby/rest/chat/v2.rb +58 -54
- data/lib/twilio-ruby/rest/chat/v3/channel.rb +299 -0
- data/lib/twilio-ruby/rest/chat/v3.rb +71 -0
- data/lib/twilio-ruby/rest/chat.rb +10 -38
- data/lib/twilio-ruby/rest/chat_base.rb +48 -0
- data/lib/twilio-ruby/rest/client.rb +329 -460
- data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +185 -0
- data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +209 -0
- data/lib/twilio-ruby/rest/content/v1/content.rb +788 -0
- data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +252 -0
- data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +266 -0
- data/lib/twilio-ruby/rest/content/v1.rb +61 -0
- data/lib/twilio-ruby/rest/content/v2/content.rb +316 -0
- data/lib/twilio-ruby/rest/content/v2/content_and_approvals.rb +309 -0
- data/lib/twilio-ruby/rest/content/v2.rb +46 -0
- data/lib/twilio-ruby/rest/content.rb +15 -0
- data/lib/twilio-ruby/rest/content_base.rb +43 -0
- data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +491 -0
- data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +286 -0
- data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +292 -0
- data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +348 -0
- data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +550 -0
- data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +511 -0
- data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +441 -0
- data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +636 -0
- data/lib/twilio-ruby/rest/conversations/v1/credential.rb +444 -0
- data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +313 -0
- data/lib/twilio-ruby/rest/conversations/v1/role.rb +403 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +376 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +339 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +285 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +319 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +359 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +563 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +524 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +454 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +645 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +318 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +412 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +464 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +497 -0
- data/lib/twilio-ruby/rest/conversations/v1/service.rb +493 -0
- data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +459 -0
- data/lib/twilio-ruby/rest/conversations/v1/user.rb +488 -0
- data/lib/twilio-ruby/rest/conversations/v1.rb +136 -0
- data/lib/twilio-ruby/rest/conversations.rb +79 -0
- data/lib/twilio-ruby/rest/conversations_base.rb +38 -0
- data/lib/twilio-ruby/rest/events/v1/event_type.rb +329 -0
- data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +302 -0
- data/lib/twilio-ruby/rest/events/v1/schema.rb +238 -0
- data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +132 -0
- data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +139 -0
- data/lib/twilio-ruby/rest/events/v1/sink.rb +453 -0
- data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +381 -0
- data/lib/twilio-ruby/rest/events/v1/subscription.rb +435 -0
- data/lib/twilio-ruby/rest/events/v1.rb +94 -0
- data/lib/twilio-ruby/rest/events.rb +43 -0
- data/lib/twilio-ruby/rest/events_base.rb +38 -0
- data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +449 -0
- data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +382 -0
- data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +548 -415
- data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +573 -506
- data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +329 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +229 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +445 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +360 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +445 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +362 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +217 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +157 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +143 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +196 -0
- data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +254 -0
- data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +354 -0
- data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +411 -0
- data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +272 -0
- data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +397 -0
- data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +446 -0
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +247 -0
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +393 -0
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +386 -0
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +233 -0
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +332 -0
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +256 -0
- data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +188 -0
- data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +397 -0
- data/lib/twilio-ruby/rest/flex_api/v1.rb +314 -44
- data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +290 -0
- data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +151 -0
- data/lib/twilio-ruby/rest/flex_api/v2.rb +77 -0
- data/lib/twilio-ruby/rest/flex_api.rb +49 -28
- data/lib/twilio-ruby/rest/flex_api_base.rb +43 -0
- data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +278 -0
- data/lib/twilio-ruby/rest/frontline_api/v1.rb +49 -0
- data/lib/twilio-ruby/rest/frontline_api.rb +15 -0
- data/lib/twilio-ruby/rest/frontline_api_base.rb +38 -0
- data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +322 -0
- data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +353 -0
- data/lib/twilio-ruby/rest/insights/v1/call/event.rb +277 -0
- data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +269 -0
- data/lib/twilio-ruby/rest/insights/v1/call.rb +271 -0
- data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +494 -0
- data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +491 -0
- data/lib/twilio-ruby/rest/insights/v1/conference.rb +508 -0
- data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +386 -0
- data/lib/twilio-ruby/rest/insights/v1/room.rb +501 -0
- data/lib/twilio-ruby/rest/insights/v1/setting.rb +259 -0
- data/lib/twilio-ruby/rest/insights/v1.rb +85 -37
- data/lib/twilio-ruby/rest/insights.rb +29 -29
- data/lib/twilio-ruby/rest/insights_base.rb +38 -0
- data/lib/twilio-ruby/rest/intelligence/v2/custom_operator.rb +447 -0
- data/lib/twilio-ruby/rest/intelligence/v2/operator.rb +356 -0
- data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +217 -0
- data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +197 -0
- data/lib/twilio-ruby/rest/intelligence/v2/operator_type.rb +358 -0
- data/lib/twilio-ruby/rest/intelligence/v2/prebuilt_operator.rb +356 -0
- data/lib/twilio-ruby/rest/intelligence/v2/service.rb +517 -0
- data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +227 -0
- data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +389 -0
- data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +249 -0
- data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +525 -0
- data/lib/twilio-ruby/rest/intelligence/v2.rb +176 -0
- data/lib/twilio-ruby/rest/intelligence.rb +6 -0
- data/lib/twilio-ruby/rest/intelligence_base.rb +38 -0
- data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +429 -421
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +382 -405
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +432 -458
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +448 -455
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +544 -533
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +406 -385
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +246 -242
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +475 -458
- data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +871 -912
- data/lib/twilio-ruby/rest/ip_messaging/v1.rb +58 -54
- data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +429 -421
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +377 -381
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +382 -398
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +493 -531
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +520 -535
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +450 -483
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +613 -604
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +406 -385
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +370 -392
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +405 -385
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +517 -492
- data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +774 -798
- data/lib/twilio-ruby/rest/ip_messaging/v2.rb +58 -54
- data/lib/twilio-ruby/rest/ip_messaging.rb +9 -49
- data/lib/twilio-ruby/rest/ip_messaging_base.rb +43 -0
- data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +247 -244
- data/lib/twilio-ruby/rest/lookups/v1.rb +43 -39
- data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +384 -0
- data/lib/twilio-ruby/rest/lookups/v2.rb +49 -0
- data/lib/twilio-ruby/rest/lookups.rb +3 -35
- data/lib/twilio-ruby/rest/lookups_base.rb +43 -0
- data/lib/twilio-ruby/rest/marketplace/v1/available_add_on/available_add_on_extension.rb +309 -0
- data/lib/twilio-ruby/rest/marketplace/v1/available_add_on.rb +336 -0
- data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_extension.rb +352 -0
- data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +170 -0
- data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on.rb +465 -0
- data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +284 -0
- data/lib/twilio-ruby/rest/marketplace/v1.rb +79 -0
- data/lib/twilio-ruby/rest/marketplace.rb +6 -0
- data/lib/twilio-ruby/rest/marketplace_base.rb +38 -0
- data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +139 -0
- data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +368 -0
- data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +509 -0
- data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +192 -0
- data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +285 -0
- data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +292 -0
- data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +239 -0
- data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +164 -0
- data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +217 -0
- data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +197 -0
- data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +357 -345
- data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +330 -0
- data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +364 -349
- data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +364 -352
- data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +620 -0
- data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +138 -0
- data/lib/twilio-ruby/rest/messaging/v1/service.rb +775 -627
- data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +803 -0
- data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +126 -0
- data/lib/twilio-ruby/rest/messaging/v1.rb +188 -60
- data/lib/twilio-ruby/rest/messaging.rb +47 -34
- data/lib/twilio-ruby/rest/messaging_base.rb +38 -0
- data/lib/twilio-ruby/rest/microvisor/v1/account_config.rb +365 -0
- data/lib/twilio-ruby/rest/microvisor/v1/account_secret.rb +358 -0
- data/lib/twilio-ruby/rest/microvisor/v1/app/app_manifest.rb +209 -0
- data/lib/twilio-ruby/rest/microvisor/v1/app.rb +352 -0
- data/lib/twilio-ruby/rest/microvisor/v1/device/device_config.rb +381 -0
- data/lib/twilio-ruby/rest/microvisor/v1/device/device_secret.rb +374 -0
- data/lib/twilio-ruby/rest/microvisor/v1/device.rb +430 -0
- data/lib/twilio-ruby/rest/microvisor/v1.rb +94 -0
- data/lib/twilio-ruby/rest/microvisor.rb +24 -0
- data/lib/twilio-ruby/rest/microvisor_base.rb +38 -0
- data/lib/twilio-ruby/rest/monitor/v1/alert.rb +402 -416
- data/lib/twilio-ruby/rest/monitor/v1/event.rb +385 -402
- data/lib/twilio-ruby/rest/monitor/v1.rb +58 -52
- data/lib/twilio-ruby/rest/monitor.rb +7 -36
- data/lib/twilio-ruby/rest/monitor_base.rb +38 -0
- data/lib/twilio-ruby/rest/notify/v1/credential.rb +429 -420
- data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +443 -465
- data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +317 -358
- data/lib/twilio-ruby/rest/notify/v1/service.rb +634 -611
- data/lib/twilio-ruby/rest/notify/v1.rb +58 -54
- data/lib/twilio-ruby/rest/notify.rb +3 -34
- data/lib/twilio-ruby/rest/notify_base.rb +38 -0
- data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +241 -0
- data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +128 -0
- data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +294 -0
- data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +315 -0
- data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +250 -0
- data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +149 -0
- data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +168 -0
- data/lib/twilio-ruby/rest/numbers/v1/signing_request_configuration.rb +177 -0
- data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +161 -0
- data/lib/twilio-ruby/rest/numbers/v1.rb +155 -0
- data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +344 -0
- data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +408 -0
- data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +266 -0
- data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +507 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +288 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +340 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +351 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +204 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +617 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +407 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +300 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +349 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +428 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +300 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +186 -0
- data/lib/twilio-ruby/rest/numbers/v2.rb +85 -0
- data/lib/twilio-ruby/rest/numbers.rb +12 -0
- data/lib/twilio-ruby/rest/numbers_base.rb +43 -0
- data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +144 -0
- data/lib/twilio-ruby/rest/oauth/v1/token.rb +182 -0
- data/lib/twilio-ruby/rest/oauth/v1.rb +46 -0
- data/lib/twilio-ruby/rest/oauth.rb +6 -0
- data/lib/twilio-ruby/rest/oauth_base.rb +38 -0
- data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +418 -393
- data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +402 -376
- data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +457 -436
- data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +415 -387
- data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +502 -477
- data/lib/twilio-ruby/rest/preview/deployed_devices.rb +43 -38
- data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +372 -396
- data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +452 -459
- data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +618 -643
- data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +58 -54
- data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +303 -304
- data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +327 -320
- data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +346 -340
- data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +437 -419
- data/lib/twilio-ruby/rest/preview/marketplace.rb +58 -54
- data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +384 -387
- data/lib/twilio-ruby/rest/preview/sync/service/document.rb +449 -414
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +440 -418
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +384 -387
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +425 -412
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +443 -415
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +384 -387
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +425 -412
- data/lib/twilio-ruby/rest/preview/sync/service.rb +503 -470
- data/lib/twilio-ruby/rest/preview/sync.rb +43 -37
- data/lib/twilio-ruby/rest/preview/wireless/command.rb +391 -378
- data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +456 -416
- data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +236 -212
- data/lib/twilio-ruby/rest/preview/wireless/sim.rb +578 -536
- data/lib/twilio-ruby/rest/preview/wireless.rb +73 -67
- data/lib/twilio-ruby/rest/preview.rb +23 -145
- data/lib/twilio-ruby/rest/preview_base.rb +58 -0
- data/lib/twilio-ruby/rest/preview_iam.rb +6 -0
- data/lib/twilio-ruby/rest/preview_iam_base.rb +33 -0
- data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +301 -284
- data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +109 -120
- data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +294 -277
- data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +109 -120
- data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +301 -284
- data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +224 -204
- data/lib/twilio-ruby/rest/pricing/v1/voice.rb +123 -136
- data/lib/twilio-ruby/rest/pricing/v1.rb +46 -43
- data/lib/twilio-ruby/rest/pricing/v2/country.rb +302 -0
- data/lib/twilio-ruby/rest/pricing/v2/number.rb +243 -0
- data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +301 -284
- data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +242 -225
- data/lib/twilio-ruby/rest/pricing/v2/voice.rb +123 -139
- data/lib/twilio-ruby/rest/pricing/v2.rb +64 -29
- data/lib/twilio-ruby/rest/pricing.rb +22 -38
- data/lib/twilio-ruby/rest/pricing_base.rb +43 -0
- data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +427 -419
- data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +412 -427
- data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +434 -463
- data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +427 -456
- data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +530 -540
- data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +407 -388
- data/lib/twilio-ruby/rest/proxy/v1/service.rb +567 -614
- data/lib/twilio-ruby/rest/proxy/v1.rb +43 -38
- data/lib/twilio-ruby/rest/proxy.rb +2 -34
- data/lib/twilio-ruby/rest/proxy_base.rb +38 -0
- data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +273 -0
- data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +273 -0
- data/lib/twilio-ruby/rest/routes/v2/trunk.rb +273 -0
- data/lib/twilio-ruby/rest/routes/v2.rb +79 -0
- data/lib/twilio-ruby/rest/routes.rb +32 -0
- data/lib/twilio-ruby/rest/routes_base.rb +38 -0
- data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +317 -365
- data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +420 -384
- data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +220 -0
- data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +413 -348
- data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +340 -355
- data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +373 -0
- data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +411 -400
- data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +462 -417
- data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +231 -0
- data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +344 -365
- data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +420 -384
- data/lib/twilio-ruby/rest/serverless/v1/service.rb +531 -472
- data/lib/twilio-ruby/rest/serverless/v1.rb +43 -38
- data/lib/twilio-ruby/rest/serverless.rb +4 -35
- data/lib/twilio-ruby/rest/serverless_base.rb +38 -0
- data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +210 -206
- data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +225 -227
- data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +365 -364
- data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +430 -407
- data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +210 -206
- data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +225 -227
- data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +365 -369
- data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +478 -434
- data/lib/twilio-ruby/rest/studio/v1/flow.rb +386 -364
- data/lib/twilio-ruby/rest/studio/v1.rb +43 -37
- data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +220 -0
- data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +231 -0
- data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +375 -0
- data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +477 -0
- data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +351 -0
- data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +237 -0
- data/lib/twilio-ruby/rest/studio/v2/flow.rb +538 -0
- data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +142 -0
- data/lib/twilio-ruby/rest/studio/v2.rb +55 -0
- data/lib/twilio-ruby/rest/studio.rb +11 -35
- data/lib/twilio-ruby/rest/studio_base.rb +43 -0
- data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +406 -0
- data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +487 -0
- data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +411 -0
- data/lib/twilio-ruby/rest/supersim/v1/network.rb +313 -0
- data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +349 -0
- data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +395 -0
- data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +257 -0
- data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +250 -0
- data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +208 -0
- data/lib/twilio-ruby/rest/supersim/v1/sim.rb +475 -0
- data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
- data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +314 -0
- data/lib/twilio-ruby/rest/supersim/v1.rb +151 -0
- data/lib/twilio-ruby/rest/supersim.rb +88 -0
- data/lib/twilio-ruby/rest/supersim_base.rb +38 -0
- data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +384 -388
- data/lib/twilio-ruby/rest/sync/v1/service/document.rb +465 -435
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +474 -478
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +384 -388
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +480 -459
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +477 -486
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +384 -388
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +480 -459
- data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +143 -142
- data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +429 -418
- data/lib/twilio-ruby/rest/sync/v1/service.rb +585 -521
- data/lib/twilio-ruby/rest/sync/v1.rb +43 -37
- data/lib/twilio-ruby/rest/sync.rb +4 -35
- data/lib/twilio-ruby/rest/sync_base.rb +38 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +415 -397
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +446 -458
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +710 -646
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +660 -628
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +419 -394
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +164 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +363 -363
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +283 -260
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +234 -241
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +241 -268
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +584 -577
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +692 -592
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +395 -399
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +239 -238
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +285 -269
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +219 -193
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +255 -239
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +631 -621
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +363 -370
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +249 -240
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +234 -241
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +533 -517
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +357 -357
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +236 -212
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +245 -237
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +730 -726
- data/lib/twilio-ruby/rest/taskrouter/v1.rb +43 -37
- data/lib/twilio-ruby/rest/taskrouter.rb +4 -35
- data/lib/twilio-ruby/rest/taskrouter_base.rb +38 -0
- data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +350 -334
- data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +350 -331
- data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +450 -437
- data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +483 -465
- data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +236 -0
- data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +633 -637
- data/lib/twilio-ruby/rest/trunking/v1.rb +43 -38
- data/lib/twilio-ruby/rest/trunking.rb +2 -34
- data/lib/twilio-ruby/rest/trunking_base.rb +38 -0
- data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +240 -0
- data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +357 -0
- data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +220 -0
- data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +371 -0
- data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +355 -0
- data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +345 -0
- data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +551 -0
- data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +402 -0
- data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +295 -0
- data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +288 -0
- data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +416 -0
- data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +295 -0
- data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +371 -0
- data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +355 -0
- data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +345 -0
- data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +551 -0
- data/lib/twilio-ruby/rest/trusthub/v1.rb +175 -0
- data/lib/twilio-ruby/rest/trusthub.rb +74 -0
- data/lib/twilio-ruby/rest/trusthub_base.rb +38 -0
- data/lib/twilio-ruby/rest/verify/v2/form.rb +204 -0
- data/lib/twilio-ruby/rest/verify/v2/safelist.rb +236 -0
- data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +284 -0
- data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +201 -0
- data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +515 -0
- data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +465 -0
- data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +272 -0
- data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +436 -0
- data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +395 -0
- data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +421 -0
- data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +436 -0
- data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +388 -345
- data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +222 -207
- data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +463 -0
- data/lib/twilio-ruby/rest/verify/v2/service.rb +817 -500
- data/lib/twilio-ruby/rest/verify/v2/template.rb +230 -0
- data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +385 -0
- data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +250 -0
- data/lib/twilio-ruby/rest/verify/v2.rb +100 -38
- data/lib/twilio-ruby/rest/verify.rb +36 -25
- data/lib/twilio-ruby/rest/verify_base.rb +38 -0
- data/lib/twilio-ruby/rest/video/v1/composition.rb +485 -511
- data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +535 -635
- data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +287 -278
- data/lib/twilio-ruby/rest/video/v1/recording.rb +432 -416
- data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +287 -278
- data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +262 -0
- data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +334 -0
- data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +186 -0
- data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +341 -0
- data/lib/twilio-ruby/rest/video/v1/room/participant.rb +503 -0
- data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +175 -0
- data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +428 -0
- data/lib/twilio-ruby/rest/video/v1/room.rb +614 -520
- data/lib/twilio-ruby/rest/video/v1.rb +100 -99
- data/lib/twilio-ruby/rest/video.rb +19 -46
- data/lib/twilio-ruby/rest/video_base.rb +38 -0
- data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +169 -0
- data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +520 -0
- data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +456 -0
- data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +410 -0
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +139 -127
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +197 -186
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +377 -404
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +221 -201
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +124 -124
- data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +396 -0
- data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +379 -0
- data/lib/twilio-ruby/rest/voice/v1.rb +131 -29
- data/lib/twilio-ruby/rest/voice.rb +41 -24
- data/lib/twilio-ruby/rest/voice_base.rb +38 -0
- data/lib/twilio-ruby/rest/wireless/v1/command.rb +416 -417
- data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +473 -446
- data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +300 -295
- data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +241 -240
- data/lib/twilio-ruby/rest/wireless/v1/sim.rb +642 -650
- data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +235 -0
- data/lib/twilio-ruby/rest/wireless/v1.rb +79 -69
- data/lib/twilio-ruby/rest/wireless.rb +11 -34
- data/lib/twilio-ruby/rest/wireless_base.rb +38 -0
- data/lib/twilio-ruby/rest.rb +14 -0
- data/lib/twilio-ruby/security/request_validator.rb +62 -9
- data/lib/twilio-ruby/twiml/fax_response.rb +6 -3
- data/lib/twilio-ruby/twiml/messaging_response.rb +2 -2
- data/lib/twilio-ruby/twiml/twiml.rb +4 -0
- data/lib/twilio-ruby/twiml/voice_response.rb +1243 -181
- data/lib/twilio-ruby/util/configuration.rb +22 -5
- data/lib/twilio-ruby/version.rb +1 -1
- data/lib/twilio-ruby.rb +9 -25
- data/sonar-project.properties +13 -0
- data/twilio-ruby.gemspec +14 -8
- metadata +432 -754
- data/.travis.yml +0 -26
- data/conf/cacert.pem +0 -3376
- data/lib/twilio-ruby/framework/twilio_response.rb +0 -19
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +0 -493
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +0 -493
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +0 -493
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +0 -493
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +0 -493
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +0 -493
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +0 -493
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +0 -472
- data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +0 -317
- data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +0 -325
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +0 -361
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +0 -361
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +0 -163
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +0 -361
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +0 -137
- data/lib/twilio-ruby/rest/authy/v1/form.rb +0 -197
- data/lib/twilio-ruby/rest/authy/v1/service/entity/factor/challenge.rb +0 -412
- data/lib/twilio-ruby/rest/authy/v1/service/entity/factor.rb +0 -486
- data/lib/twilio-ruby/rest/authy/v1/service/entity.rb +0 -379
- data/lib/twilio-ruby/rest/authy/v1/service.rb +0 -385
- data/lib/twilio-ruby/rest/authy/v1.rb +0 -59
- data/lib/twilio-ruby/rest/authy.rb +0 -55
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +0 -230
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +0 -220
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +0 -408
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +0 -435
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +0 -409
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +0 -463
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +0 -228
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +0 -399
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +0 -466
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +0 -265
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +0 -243
- data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +0 -524
- data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +0 -621
- data/lib/twilio-ruby/rest/autopilot/v1.rb +0 -44
- data/lib/twilio-ruby/rest/autopilot.rb +0 -47
- data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +0 -322
- data/lib/twilio-ruby/rest/fax/v1/fax.rb +0 -548
- data/lib/twilio-ruby/rest/fax/v1.rb +0 -44
- data/lib/twilio-ruby/rest/fax.rb +0 -47
- data/lib/twilio-ruby/rest/insights/v1/summary.rb +0 -302
- data/lib/twilio-ruby/rest/messaging/v1/session/message.rb +0 -441
- data/lib/twilio-ruby/rest/messaging/v1/session/participant.rb +0 -465
- data/lib/twilio-ruby/rest/messaging/v1/session/webhook.rb +0 -448
- data/lib/twilio-ruby/rest/messaging/v1/session.rb +0 -509
- data/lib/twilio-ruby/rest/messaging/v1/webhook.rb +0 -305
- data/lib/twilio-ruby/rest/preview/acc_security/service/verification.rb +0 -185
- data/lib/twilio-ruby/rest/preview/acc_security/service/verification_check.rb +0 -182
- data/lib/twilio-ruby/rest/preview/acc_security/service.rb +0 -395
- data/lib/twilio-ruby/rest/preview/acc_security.rb +0 -43
- data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +0 -211
- data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +0 -210
- data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +0 -234
- data/lib/twilio-ruby/rest/preview/bulk_exports.rb +0 -58
- data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +0 -217
- data/lib/twilio-ruby/rest/preview/trusted_comms/device.rb +0 -146
- data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +0 -169
- data/lib/twilio-ruby/rest/preview/trusted_comms.rb +0 -49
- data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +0 -222
- data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +0 -222
- data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +0 -212
- data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +0 -399
- data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +0 -424
- data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +0 -397
- data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +0 -454
- data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +0 -222
- data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +0 -386
- data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +0 -445
- data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +0 -251
- data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +0 -231
- data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +0 -512
- data/lib/twilio-ruby/rest/preview/understand/assistant.rb +0 -646
- data/lib/twilio-ruby/rest/preview/understand.rb +0 -44
- data/lib/twilio-ruby/rest/trunking/v1/trunk/terminating_sip_domain.rb +0 -418
- data/lib/twilio-ruby/rest/video/v1/room/recording.rb +0 -402
- data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +0 -340
- data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +0 -191
- data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +0 -347
- data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +0 -496
- data/spec/framework/request_spec.rb +0 -36
- data/spec/framework/serialize_spec.rb +0 -80
- data/spec/holodeck/holodeck.rb +0 -61
- data/spec/holodeck/hologram.rb +0 -4
- data/spec/http/http_client_spec.rb +0 -122
- data/spec/integration/accounts/v1/credential/aws_spec.rb +0 -226
- data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -226
- data/spec/integration/accounts/v1/credential_spec.rb +0 -12
- data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +0 -107
- data/spec/integration/api/v2010/account/address_spec.rb +0 -273
- data/spec/integration/api/v2010/account/application_spec.rb +0 -280
- data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +0 -139
- data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +0 -103
- data/spec/integration/api/v2010/account/available_phone_number/machine_to_machine_spec.rb +0 -103
- data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +0 -102
- data/spec/integration/api/v2010/account/available_phone_number/national_spec.rb +0 -103
- data/spec/integration/api/v2010/account/available_phone_number/shared_cost_spec.rb +0 -103
- data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +0 -102
- data/spec/integration/api/v2010/account/available_phone_number/voip_spec.rb +0 -103
- data/spec/integration/api/v2010/account/available_phone_number_spec.rb +0 -130
- data/spec/integration/api/v2010/account/balance_spec.rb +0 -45
- data/spec/integration/api/v2010/account/call/feedback_spec.rb +0 -139
- data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +0 -151
- data/spec/integration/api/v2010/account/call/notification_spec.rb +0 -181
- data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -287
- data/spec/integration/api/v2010/account/call_spec.rb +0 -361
- data/spec/integration/api/v2010/account/conference/participant_spec.rb +0 -350
- data/spec/integration/api/v2010/account/conference/recording_spec.rb +0 -237
- data/spec/integration/api/v2010/account/conference_spec.rb +0 -263
- data/spec/integration/api/v2010/account/connect_app_spec.rb +0 -201
- data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -137
- data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -223
- data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +0 -185
- data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +0 -185
- data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +0 -185
- data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +0 -341
- data/spec/integration/api/v2010/account/key_spec.rb +0 -180
- data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -50
- data/spec/integration/api/v2010/account/message/media_spec.rb +0 -164
- data/spec/integration/api/v2010/account/message_spec.rb +0 -290
- data/spec/integration/api/v2010/account/new_key_spec.rb +0 -47
- data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -47
- data/spec/integration/api/v2010/account/notification_spec.rb +0 -174
- data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +0 -195
- data/spec/integration/api/v2010/account/queue/member_spec.rb +0 -210
- data/spec/integration/api/v2010/account/queue_spec.rb +0 -248
- data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -177
- data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -168
- data/spec/integration/api/v2010/account/recording/transcription_spec.rb +0 -176
- data/spec/integration/api/v2010/account/recording_spec.rb +0 -187
- data/spec/integration/api/v2010/account/short_code_spec.rb +0 -182
- data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -180
- data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +0 -256
- data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +0 -244
- data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping_spec.rb +0 -220
- data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping_spec.rb +0 -220
- data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping_spec.rb +0 -12
- data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping_spec.rb +0 -220
- data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping_spec.rb +0 -12
- data/spec/integration/api/v2010/account/sip/domain/auth_types_spec.rb +0 -12
- data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +0 -210
- data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +0 -220
- data/spec/integration/api/v2010/account/sip/domain_spec.rb +0 -295
- data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +0 -258
- data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +0 -254
- data/spec/integration/api/v2010/account/sip_spec.rb +0 -12
- data/spec/integration/api/v2010/account/token_spec.rb +0 -58
- data/spec/integration/api/v2010/account/transcription_spec.rb +0 -169
- data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +0 -113
- data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +0 -113
- data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +0 -113
- data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +0 -113
- data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +0 -113
- data/spec/integration/api/v2010/account/usage/record/today_spec.rb +0 -113
- data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +0 -113
- data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +0 -113
- data/spec/integration/api/v2010/account/usage/record_spec.rb +0 -110
- data/spec/integration/api/v2010/account/usage/trigger_spec.rb +0 -285
- data/spec/integration/api/v2010/account/usage_spec.rb +0 -12
- data/spec/integration/api/v2010/account/validation_request_spec.rb +0 -48
- data/spec/integration/api/v2010/account_spec.rb +0 -275
- data/spec/integration/authy/v1/form_spec.rb +0 -48
- data/spec/integration/authy/v1/service/entity/factor/challenge_spec.rb +0 -267
- data/spec/integration/authy/v1/service/entity/factor_spec.rb +0 -273
- data/spec/integration/authy/v1/service/entity_spec.rb +0 -201
- data/spec/integration/authy/v1/service_spec.rb +0 -227
- data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +0 -81
- data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +0 -47
- data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +0 -210
- data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +0 -246
- data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +0 -241
- data/spec/integration/autopilot/v1/assistant/query_spec.rb +0 -306
- data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +0 -81
- data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +0 -207
- data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +0 -253
- data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +0 -87
- data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +0 -50
- data/spec/integration/autopilot/v1/assistant/task_spec.rb +0 -262
- data/spec/integration/autopilot/v1/assistant_spec.rb +0 -270
- data/spec/integration/chat/v1/credential_spec.rb +0 -223
- data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -210
- data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -284
- data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -294
- data/spec/integration/chat/v1/service/channel_spec.rb +0 -277
- data/spec/integration/chat/v1/service/role_spec.rb +0 -263
- data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -94
- data/spec/integration/chat/v1/service/user_spec.rb +0 -266
- data/spec/integration/chat/v1/service_spec.rb +0 -299
- data/spec/integration/chat/v2/credential_spec.rb +0 -223
- data/spec/integration/chat/v2/service/binding_spec.rb +0 -177
- data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -210
- data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -261
- data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -405
- data/spec/integration/chat/v2/service/channel/webhook_spec.rb +0 -307
- data/spec/integration/chat/v2/service/channel_spec.rb +0 -281
- data/spec/integration/chat/v2/service/role_spec.rb +0 -263
- data/spec/integration/chat/v2/service/user/user_binding_spec.rb +0 -180
- data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -192
- data/spec/integration/chat/v2/service/user_spec.rb +0 -270
- data/spec/integration/chat/v2/service_spec.rb +0 -354
- data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -128
- data/spec/integration/fax/v1/fax_spec.rb +0 -271
- data/spec/integration/flex_api/v1/configuration_spec.rb +0 -365
- data/spec/integration/flex_api/v1/flex_flow_spec.rb +0 -255
- data/spec/integration/insights/v1/summary_spec.rb +0 -61
- data/spec/integration/ip_messaging/v1/credential_spec.rb +0 -223
- data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -210
- data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +0 -284
- data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +0 -294
- data/spec/integration/ip_messaging/v1/service/channel_spec.rb +0 -277
- data/spec/integration/ip_messaging/v1/service/role_spec.rb +0 -263
- data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -94
- data/spec/integration/ip_messaging/v1/service/user_spec.rb +0 -266
- data/spec/integration/ip_messaging/v1/service_spec.rb +0 -299
- data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -223
- data/spec/integration/ip_messaging/v2/service/binding_spec.rb +0 -177
- data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -210
- data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -261
- data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -405
- data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +0 -307
- data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -281
- data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -263
- data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +0 -180
- data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -192
- data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -270
- data/spec/integration/ip_messaging/v2/service_spec.rb +0 -354
- data/spec/integration/lookups/v1/phone_number_spec.rb +0 -332
- data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -170
- data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -201
- data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -173
- data/spec/integration/messaging/v1/service_spec.rb +0 -271
- data/spec/integration/messaging/v1/session/message_spec.rb +0 -238
- data/spec/integration/messaging/v1/session/participant_spec.rb +0 -256
- data/spec/integration/messaging/v1/session/webhook_spec.rb +0 -300
- data/spec/integration/messaging/v1/session_spec.rb +0 -227
- data/spec/integration/messaging/v1/webhook_spec.rb +0 -94
- data/spec/integration/monitor/v1/alert_spec.rb +0 -163
- data/spec/integration/monitor/v1/event_spec.rb +0 -150
- data/spec/integration/notify/v1/credential_spec.rb +0 -223
- data/spec/integration/notify/v1/service/binding_spec.rb +0 -225
- data/spec/integration/notify/v1/service/notification_spec.rb +0 -99
- data/spec/integration/notify/v1/service_spec.rb +0 -286
- data/spec/integration/preview/acc_security/service/verification_check_spec.rb +0 -52
- data/spec/integration/preview/acc_security/service/verification_spec.rb +0 -52
- data/spec/integration/preview/acc_security/service_spec.rb +0 -185
- data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -58
- data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -79
- data/spec/integration/preview/bulk_exports/export_spec.rb +0 -45
- data/spec/integration/preview/deployed_devices/fleet/certificate_spec.rb +0 -238
- data/spec/integration/preview/deployed_devices/fleet/deployment_spec.rb +0 -233
- data/spec/integration/preview/deployed_devices/fleet/device_spec.rb +0 -249
- data/spec/integration/preview/deployed_devices/fleet/key_spec.rb +0 -237
- data/spec/integration/preview/deployed_devices/fleet_spec.rb +0 -246
- data/spec/integration/preview/hosted_numbers/authorization_document/dependent_hosted_number_order_spec.rb +0 -111
- data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +0 -227
- data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -393
- data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -123
- data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -144
- data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -164
- data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -254
- data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -204
- data/spec/integration/preview/sync/service/document_spec.rb +0 -254
- data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -254
- data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -204
- data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -209
- data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -254
- data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -204
- data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -209
- data/spec/integration/preview/sync/service_spec.rb +0 -246
- data/spec/integration/preview/trusted_comms/current_call_spec.rb +0 -46
- data/spec/integration/preview/trusted_comms/device_spec.rb +0 -45
- data/spec/integration/preview/trusted_comms/phone_call_spec.rb +0 -48
- data/spec/integration/preview/understand/assistant/assistant_fallback_actions_spec.rb +0 -81
- data/spec/integration/preview/understand/assistant/assistant_initiation_actions_spec.rb +0 -81
- data/spec/integration/preview/understand/assistant/dialogue_spec.rb +0 -47
- data/spec/integration/preview/understand/assistant/field_type/field_value_spec.rb +0 -210
- data/spec/integration/preview/understand/assistant/field_type_spec.rb +0 -246
- data/spec/integration/preview/understand/assistant/model_build_spec.rb +0 -241
- data/spec/integration/preview/understand/assistant/query_spec.rb +0 -306
- data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +0 -81
- data/spec/integration/preview/understand/assistant/task/field_spec.rb +0 -207
- data/spec/integration/preview/understand/assistant/task/sample_spec.rb +0 -253
- data/spec/integration/preview/understand/assistant/task/task_actions_spec.rb +0 -87
- data/spec/integration/preview/understand/assistant/task/task_statistics_spec.rb +0 -50
- data/spec/integration/preview/understand/assistant/task_spec.rb +0 -262
- data/spec/integration/preview/understand/assistant_spec.rb +0 -274
- data/spec/integration/preview/wireless/command_spec.rb +0 -169
- data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -262
- data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -51
- data/spec/integration/preview/wireless/sim_spec.rb +0 -210
- data/spec/integration/pricing/v1/messaging/country_spec.rb +0 -139
- data/spec/integration/pricing/v1/messaging_spec.rb +0 -12
- data/spec/integration/pricing/v1/phone_number/country_spec.rb +0 -130
- data/spec/integration/pricing/v1/phone_number_spec.rb +0 -12
- data/spec/integration/pricing/v1/voice/country_spec.rb +0 -140
- data/spec/integration/pricing/v1/voice/number_spec.rb +0 -56
- data/spec/integration/pricing/v1/voice_spec.rb +0 -12
- data/spec/integration/pricing/v2/voice/country_spec.rb +0 -181
- data/spec/integration/pricing/v2/voice/number_spec.rb +0 -62
- data/spec/integration/pricing/v2/voice_spec.rb +0 -12
- data/spec/integration/proxy/v1/service/phone_number_spec.rb +0 -236
- data/spec/integration/proxy/v1/service/session/interaction_spec.rb +0 -136
- data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +0 -166
- data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -243
- data/spec/integration/proxy/v1/service/session_spec.rb +0 -230
- data/spec/integration/proxy/v1/service/short_code_spec.rb +0 -229
- data/spec/integration/proxy/v1/service_spec.rb +0 -218
- data/spec/integration/serverless/v1/service/asset/asset_version_spec.rb +0 -144
- data/spec/integration/serverless/v1/service/asset_spec.rb +0 -177
- data/spec/integration/serverless/v1/service/build_spec.rb +0 -184
- data/spec/integration/serverless/v1/service/environment/deployment_spec.rb +0 -137
- data/spec/integration/serverless/v1/service/environment/variable_spec.rb +0 -181
- data/spec/integration/serverless/v1/service/environment_spec.rb +0 -143
- data/spec/integration/serverless/v1/service/function/function_version_spec.rb +0 -144
- data/spec/integration/serverless/v1/service/function_spec.rb +0 -177
- data/spec/integration/serverless/v1/service_spec.rb +0 -180
- data/spec/integration/studio/v1/flow/engagement/engagement_context_spec.rb +0 -51
- data/spec/integration/studio/v1/flow/engagement/step/step_context_spec.rb +0 -54
- data/spec/integration/studio/v1/flow/engagement/step_spec.rb +0 -101
- data/spec/integration/studio/v1/flow/engagement_spec.rb +0 -171
- data/spec/integration/studio/v1/flow/execution/execution_context_spec.rb +0 -51
- data/spec/integration/studio/v1/flow/execution/execution_step/execution_step_context_spec.rb +0 -54
- data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +0 -101
- data/spec/integration/studio/v1/flow/execution_spec.rb +0 -171
- data/spec/integration/studio/v1/flow_spec.rb +0 -117
- data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -204
- data/spec/integration/sync/v1/service/document_spec.rb +0 -257
- data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -257
- data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -204
- data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -257
- data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
- data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -204
- data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -257
- data/spec/integration/sync/v1/service/sync_stream/stream_message_spec.rb +0 -47
- data/spec/integration/sync/v1/service/sync_stream_spec.rb +0 -249
- data/spec/integration/sync/v1/service_spec.rb +0 -254
- data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +0 -236
- data/spec/integration/taskrouter/v1/workspace/event_spec.rb +0 -165
- data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +0 -225
- data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -316
- data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +0 -96
- data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +0 -82
- data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +0 -108
- data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +0 -146
- data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +0 -294
- data/spec/integration/taskrouter/v1/workspace/task_spec.rb +0 -326
- data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -194
- data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -188
- data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +0 -92
- data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +0 -89
- data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +0 -70
- data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +0 -116
- data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +0 -294
- data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +0 -97
- data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +0 -58
- data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +0 -71
- data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +0 -272
- data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +0 -94
- data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +0 -73
- data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +0 -105
- data/spec/integration/taskrouter/v1/workspace_spec.rb +0 -295
- data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +0 -192
- data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +0 -192
- data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +0 -252
- data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +0 -267
- data/spec/integration/trunking/v1/trunk/terminating_sip_domain_spec.rb +0 -231
- data/spec/integration/trunking/v1/trunk_spec.rb +0 -368
- data/spec/integration/verify/v2/service/verification_check_spec.rb +0 -54
- data/spec/integration/verify/v2/service/verification_spec.rb +0 -169
- data/spec/integration/verify/v2/service_spec.rb +0 -231
- data/spec/integration/video/v1/composition_hook_spec.rb +0 -410
- data/spec/integration/video/v1/composition_settings_spec.rb +0 -86
- data/spec/integration/video/v1/composition_spec.rb +0 -350
- data/spec/integration/video/v1/recording_settings_spec.rb +0 -86
- data/spec/integration/video/v1/recording_spec.rb +0 -179
- data/spec/integration/video/v1/room/recording_spec.rb +0 -188
- data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +0 -96
- data/spec/integration/video/v1/room/room_participant/room_participant_subscribe_rule_spec.rb +0 -92
- data/spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb +0 -97
- data/spec/integration/video/v1/room/room_participant_spec.rb +0 -190
- data/spec/integration/video/v1/room_spec.rb +0 -257
- data/spec/integration/voice/v1/dialing_permissions/bulk_country_update_spec.rb +0 -45
- data/spec/integration/voice/v1/dialing_permissions/country/highrisk_special_prefix_spec.rb +0 -61
- data/spec/integration/voice/v1/dialing_permissions/country_spec.rb +0 -112
- data/spec/integration/voice/v1/dialing_permissions/settings_spec.rb +0 -77
- data/spec/integration/voice/v1/dialing_permissions_spec.rb +0 -12
- data/spec/integration/wireless/v1/command_spec.rb +0 -289
- data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -270
- data/spec/integration/wireless/v1/sim/data_session_spec.rb +0 -89
- data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -67
- data/spec/integration/wireless/v1/sim_spec.rb +0 -245
- data/spec/jwt/access_token_spec.rb +0 -151
- data/spec/jwt/client_capability_spec.rb +0 -104
- data/spec/jwt/task_router_spec.rb +0 -172
- data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
- data/spec/rest/client_spec.rb +0 -61
- data/spec/security/request_validator_spec.rb +0 -84
- data/spec/spec_helper.rb +0 -38
- data/spec/support/fakeweb.rb +0 -2
- data/spec/twilio_spec.rb +0 -15
- data/spec/twiml/messaging_response_spec.rb +0 -235
- data/spec/twiml/voice_response_spec.rb +0 -847
- data/spec/util/configuration_spec.rb +0 -15
- data/spec/util/url_encode_spec.rb +0 -12
- /data/lib/twilio-ruby/framework/{helper.rb → rest/helper.rb} +0 -0
- /data/lib/twilio-ruby/framework/{obsolete_client.rb → rest/obsolete_client.rb} +0 -0
- /data/lib/twilio-ruby/framework/{page.rb → rest/page.rb} +0 -0
- /data/lib/twilio-ruby/framework/{resource.rb → rest/resource.rb} +0 -0
data/README.md
CHANGED
@@ -1,38 +1,51 @@
|
|
1
1
|
# twilio-ruby
|
2
2
|
|
3
|
-
[![
|
4
|
-
[![Gem Version](
|
3
|
+
[![Tests](https://github.com/twilio/twilio-ruby/actions/workflows/test-and-deploy.yml/badge.svg)][github-actions]
|
4
|
+
[![Gem Version](https://img.shields.io/gem/v/twilio-ruby.svg)](https://rubygems.org/gems/twilio-ruby)
|
5
|
+
[![Learn with TwilioQuest](https://img.shields.io/static/v1?label=TwilioQuest&message=Learn%20to%20contribute%21&color=F22F46&labelColor=1f243c&style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAASFBMVEUAAAAZGRkcHBwjIyMoKCgAAABgYGBoaGiAgICMjIyzs7PJycnMzMzNzc3UoBfd3d3m5ubqrhfrMEDu7u739/f4vSb/3AD///9tbdyEAAAABXRSTlMAAAAAAMJrBrEAAAKoSURBVHgB7ZrRcuI6EESdyxXGYoNFvMD//+l2bSszRgyUYpFAsXOeiJGmj4NkuWx1Qeh+Ekl9DgEXOBwOx+Px5xyQhDykfgq4wG63MxxaR4ddIkg6Ul3g84vCIcjPBA5gmUMeXESrlukuoK33+33uID8TWeLAdOWsKpJYzwVMB7bOzYSGOciyUlXSn0/ABXTosJ1M1SbypZ4O4MbZuIDMU02PMbauhhHMHXbmebmALIiEbbbbbUrpF1gwE9kFfRNAJaP+FQEXCCTGyJ4ngDrjOFo3jEL5JdqjF/pueR4cCeCGgAtwmuRS6gDwaRiGvu+DMFwSBLTE3+jF8JyuV1okPZ+AC4hDFhCHyHQjdjPHUKFDlHSJkHQXMB3KpSwXNGJPcwwTdZiXlRN0gSp0zpWxNtM0beYE0nRH6QIbO7rawwXaBYz0j78gxjokDuv12gVeUuBD0MDi0OQCLvDaAho4juP1Q/jkAncXqIcCfd+7gAu4QLMACCLxpRsSuQh0igu0C9Svhi7weAGZg50L3IE3cai4IfkNZAC8dfdhsUD3CgKBVC9JE5ABAFzg4QL/taYPAAWrHdYcgfLaIgAXWJ7OV38n1LEF8tt2TH29E+QAoDoO5Ve/LtCQDmKM9kPbvCEBApK+IXzbcSJ0cIGF6e8gpcRhUDogWZ8JnaWjPXc/fNnBBUKRngiHgTUSivSzDRDgHZQOLvBQgf8rRt+VdBUUhwkU6VpJ+xcOwQUqZr+mR0kvBUgv6cB4+37hQAkXqE8PwGisGhJtN4xAHMzrsgvI7rccXqSvKh6jltGlrOHA3Xk1At3LC4QiPdX9/0ndHpGVvTjR4bZA1ypAKgVcwE5vx74ulwIugDt8e/X7JgfkucBMIAr26ndnB4UCLnDOqvteQsHlgX9N4A+c4cW3DXSPbwAAAABJRU5ErkJggg==)](https://twil.io/learn-open-source)
|
5
6
|
|
6
|
-
|
7
|
+
## Documentation
|
8
|
+
|
9
|
+
The documentation for the Twilio API can be found [here][apidocs].
|
10
|
+
|
11
|
+
The individual releases [here][refdocs].
|
12
|
+
|
13
|
+
## Versions
|
14
|
+
|
15
|
+
`twilio-ruby` uses a modified version of [Semantic Versioning](https://semver.org) for all changes. [See this document](VERSIONS.md) for details.
|
16
|
+
|
17
|
+
### Supported Ruby Versions
|
7
18
|
|
8
|
-
|
19
|
+
This library supports the following Ruby implementations:
|
9
20
|
|
10
|
-
|
11
|
-
|
12
|
-
|
21
|
+
* Ruby 2.4
|
22
|
+
* Ruby 2.5
|
23
|
+
* Ruby 2.6
|
24
|
+
* Ruby 2.7
|
25
|
+
* Ruby 3.0
|
26
|
+
* Ruby 3.1
|
27
|
+
* Ruby 3.2
|
13
28
|
|
14
|
-
|
15
|
-
|
29
|
+
* JRuby 9.2
|
30
|
+
* JRuby 9.3
|
31
|
+
* JRuby 9.4
|
16
32
|
|
17
|
-
|
18
|
-
product lines that were historically hidden from you due to their Beta or
|
19
|
-
Developer Preview status. Such products are explicitly documented as
|
20
|
-
Beta/Developer Preview both in the Twilio docs and console, as well as through
|
21
|
-
in-line code documentation here in the library.
|
33
|
+
### Migrating from 5.x
|
22
34
|
|
35
|
+
[Upgrade Guide][upgrade]
|
23
36
|
|
24
37
|
## Installation
|
25
38
|
|
26
39
|
To install using [Bundler][bundler] grab the latest stable version:
|
27
40
|
|
28
41
|
```ruby
|
29
|
-
gem 'twilio-ruby', '~>
|
42
|
+
gem 'twilio-ruby', '~> 7.2.3'
|
30
43
|
```
|
31
44
|
|
32
45
|
To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
|
33
46
|
|
34
47
|
```bash
|
35
|
-
gem install twilio-ruby -v
|
48
|
+
gem install twilio-ruby -v 7.2.3
|
36
49
|
```
|
37
50
|
|
38
51
|
To build and install the development branch yourself from the latest source:
|
@@ -43,40 +56,86 @@ cd twilio-ruby
|
|
43
56
|
make install
|
44
57
|
```
|
45
58
|
|
46
|
-
|
47
|
-
|
59
|
+
> **Info**
|
60
|
+
> If the command line gives you an error message that says Permission Denied, try running the above commands with sudo.
|
61
|
+
>
|
62
|
+
> For example: `sudo gem install twilio-ruby`
|
48
63
|
|
49
|
-
|
50
|
-
[Here][documentation]
|
64
|
+
### Test your installation
|
51
65
|
|
52
|
-
|
53
|
-
The `Dockerfile` present in this repository and its respective `twilio/twilio-ruby` Docker image are currently used by Twilio for testing purposes only.
|
66
|
+
To make sure the installation was successful, try sending yourself an SMS message, like this:
|
54
67
|
|
55
|
-
|
68
|
+
```rb
|
69
|
+
require "twilio-ruby"
|
56
70
|
|
57
|
-
|
71
|
+
# Your Account SID and Auth Token from console.twilio.com
|
72
|
+
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
|
73
|
+
auth_token = "your_auth_token"
|
58
74
|
|
59
|
-
|
75
|
+
@client = Twilio::REST::Client.new account_sid, auth_token
|
76
|
+
message = @client.messages.create(
|
77
|
+
body: "Hello from Ruby",
|
78
|
+
to: "+12345678901", # Text this number
|
79
|
+
from: "+15005550006", # From a valid Twilio number
|
80
|
+
)
|
81
|
+
|
82
|
+
puts message.sid
|
83
|
+
```
|
60
84
|
|
61
|
-
|
85
|
+
> **Warning**
|
86
|
+
> It's okay to hardcode your credentials when testing locally, but you should use environment variables to keep them secret before committing any code or deploying to production. Check out [How to Set Environment Variables](https://www.twilio.com/blog/2017/01/how-to-set-environment-variables.html) for more information.
|
62
87
|
|
63
|
-
|
88
|
+
## Usage
|
89
|
+
|
90
|
+
### Authenticate the Client
|
64
91
|
|
65
92
|
```ruby
|
66
93
|
require 'twilio-ruby'
|
67
94
|
|
68
|
-
#
|
95
|
+
# Your Account SID and Auth Token from console.twilio.com
|
69
96
|
account_sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
|
70
97
|
auth_token = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
|
71
98
|
|
72
|
-
#
|
99
|
+
# Initialize the Twilio Client with your credentials
|
73
100
|
@client = Twilio::REST::Client.new account_sid, auth_token
|
74
101
|
```
|
75
102
|
|
103
|
+
### Use An API Key
|
104
|
+
|
105
|
+
```ruby
|
106
|
+
require 'twilio-ruby'
|
107
|
+
|
108
|
+
# Your Account SID from console.twilio.com
|
109
|
+
account_sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
|
110
|
+
# API Key from twilio.com/console/project/api-keys
|
111
|
+
api_key_sid = 'zzzzzzzzzzzzzzzzzzzzzz'
|
112
|
+
api_key_secret = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
|
113
|
+
|
114
|
+
# set up a client to talk to the Twilio REST API using an API Key
|
115
|
+
@client = Twilio::REST::Client.new api_key_sid, api_key_secret, account_sid
|
116
|
+
```
|
117
|
+
|
118
|
+
### Specify a Region and/or Edge
|
119
|
+
|
120
|
+
To take advantage of Twilio's [Global Infrastructure](https://www.twilio.com/docs/global-infrastructure), specify the target Region and/or Edge for the client:
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
# set up a client to talk to the Twilio REST API over a specific region and edge
|
124
|
+
@client = Twilio::REST::Client.new account_sid, auth_token, nil, 'au1'
|
125
|
+
@client.edge = 'sydney'
|
126
|
+
|
127
|
+
# you may also specify the region and/or edge after client creation
|
128
|
+
@client = Twilio::REST::Client.new account_sid, auth_token
|
129
|
+
@client.region = 'au1'
|
130
|
+
@client.edge = 'sydney'
|
131
|
+
```
|
132
|
+
|
133
|
+
This will result in the `hostname` transforming from `api.twilio.com` to `api.sydney.au1.twilio.com`.
|
134
|
+
|
76
135
|
### Make a Call
|
77
136
|
|
78
137
|
```ruby
|
79
|
-
@client.
|
138
|
+
@client.calls.create(
|
80
139
|
from: '+14159341234',
|
81
140
|
to: '+16105557069',
|
82
141
|
url: 'http://example.com'
|
@@ -86,7 +145,7 @@ auth_token = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
|
|
86
145
|
### Send an SMS
|
87
146
|
|
88
147
|
```ruby
|
89
|
-
@client.
|
148
|
+
@client.messages.create(
|
90
149
|
from: '+14159341234',
|
91
150
|
to: '+16105557069',
|
92
151
|
body: 'Hey there!'
|
@@ -96,7 +155,7 @@ auth_token = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
|
|
96
155
|
### List your SMS Messages
|
97
156
|
|
98
157
|
```ruby
|
99
|
-
@client.
|
158
|
+
@client.messages.list(limit: 20)
|
100
159
|
```
|
101
160
|
|
102
161
|
### Fetch a single SMS message by Sid
|
@@ -104,21 +163,116 @@ auth_token = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
|
|
104
163
|
```ruby
|
105
164
|
# put the message sid you want to retrieve here:
|
106
165
|
message_sid = 'SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
|
107
|
-
@client.
|
166
|
+
@client.messages(message_sid).fetch
|
167
|
+
```
|
168
|
+
|
169
|
+
### Iterate through records
|
170
|
+
|
171
|
+
The library automatically handles paging for you. Collections, such as `calls` and `messages`, have `list` and stream methods that page under the hood. With both `list` and `stream`, you can specify the number of records you want to receive (`limit`) and the maximum size you want each page fetch to be (`page_size`). The library will then handle the task for you.
|
172
|
+
|
173
|
+
`list` eagerly fetches all records and returns them as a list, whereas `stream` returns an enumerator and lazily retrieves pages of records as you iterate over the collection. You can also page manually using the `page` method.
|
174
|
+
|
175
|
+
For more information about these methods, view the [auto-generated library docs](https://www.twilio.com/docs/libraries/reference/twilio-ruby).
|
176
|
+
|
177
|
+
```rb
|
178
|
+
require 'twilio-ruby'
|
179
|
+
|
180
|
+
account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
|
181
|
+
auth_token = 'your_auth_token'
|
182
|
+
|
183
|
+
@client = Twilio::REST::Client.new(account_sid, auth_token)
|
184
|
+
|
185
|
+
@client.calls.list
|
186
|
+
.each do |call|
|
187
|
+
puts call.direction
|
188
|
+
end
|
108
189
|
```
|
109
190
|
|
110
|
-
###
|
111
|
-
|
112
|
-
|
191
|
+
### Enable Debug logging
|
192
|
+
|
193
|
+
In order to enable debug logging, pass in a 'logger' instance to the client with the level set to at least 'DEBUG'
|
194
|
+
|
195
|
+
```ruby
|
196
|
+
@client = Twilio::REST::Client.new account_sid, auth_token
|
197
|
+
myLogger = Logger.new(STDOUT)
|
198
|
+
myLogger.level = Logger::DEBUG
|
199
|
+
@client.logger = myLogger
|
200
|
+
|
201
|
+
@client = Twilio::REST::Client.new account_sid, auth_token
|
202
|
+
myLogger = Logger.new('my_log.log')
|
203
|
+
myLogger.level = Logger::DEBUG
|
204
|
+
@client.logger = myLogger
|
205
|
+
```
|
206
|
+
|
207
|
+
### Handle Exceptions {#exceptions}
|
208
|
+
|
209
|
+
If the Twilio API returns a 400 or a 500 level HTTP response, the `twilio-ruby`
|
210
|
+
library will throw a `Twilio::REST::RestError`. 400-level errors are normal
|
211
|
+
during API operation (`“Invalid number”`, `“Cannot deliver SMS to that number”`,
|
212
|
+
for example) and should be handled appropriately.
|
213
|
+
|
214
|
+
```rb
|
215
|
+
require 'twilio-ruby'
|
216
|
+
|
217
|
+
account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
|
218
|
+
auth_token = 'your_auth_token'
|
219
|
+
|
220
|
+
@client = Twilio::REST::Client.new account_sid, auth_token
|
221
|
+
|
222
|
+
begin
|
223
|
+
messages = @client.messages.list(limit: 20)
|
224
|
+
rescue Twilio::REST::RestError => e
|
225
|
+
puts e.message
|
226
|
+
end
|
227
|
+
```
|
228
|
+
|
229
|
+
### Debug API requests
|
230
|
+
|
231
|
+
To assist with debugging, the library allows you to access the underlying request and response objects. This capability is built into the default HTTP client that ships with the library.
|
232
|
+
|
233
|
+
For example, you can retrieve the status code of the last response like so:
|
234
|
+
|
235
|
+
```ruby
|
236
|
+
require 'rubygems' # Not necessary with ruby 1.9 but included for completeness
|
237
|
+
require 'twilio-ruby'
|
238
|
+
|
239
|
+
# Your Account SID and Auth Token from console.twilio.com
|
240
|
+
account_sid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
|
241
|
+
auth_token = 'your_auth_token'
|
242
|
+
|
243
|
+
@client = Twilio::REST::Client.new(account_sid, auth_token)
|
244
|
+
|
245
|
+
@message = @client.messages.create(
|
246
|
+
to: '+14158675309',
|
247
|
+
from: '+14258675310',
|
248
|
+
body: 'Ahoy!'
|
249
|
+
)
|
250
|
+
|
251
|
+
# Retrieve the status code of the last response from the HTTP client
|
252
|
+
puts @client.http_client.last_response.status_code
|
253
|
+
```
|
254
|
+
|
255
|
+
### Customize your HTTP Client
|
256
|
+
|
257
|
+
`twilio-ruby` uses [Faraday][faraday] to make HTTP requests. You can tell `Twilio::REST::Client` to use any of the Faraday adapters like so:
|
113
258
|
|
114
259
|
```ruby
|
115
260
|
@client.http_client.adapter = :typhoeus
|
116
261
|
```
|
117
262
|
|
118
|
-
|
263
|
+
To use a custom HTTP client with this helper library, please see the [advanced example of how to do so](./advanced-examples/custom-http-client.md).
|
264
|
+
|
265
|
+
To apply customizations such as middleware, you can use the `configure_connection` method like so:
|
266
|
+
|
267
|
+
```ruby
|
268
|
+
@client.http_client.configure_connection do |faraday|
|
269
|
+
faraday.use SomeMiddleware
|
270
|
+
end
|
271
|
+
```
|
272
|
+
|
273
|
+
### Get started With Client Capability Tokens
|
119
274
|
|
120
|
-
If you just need to generate a Capability Token for use with Twilio Client, you
|
121
|
-
can do this:
|
275
|
+
If you just need to generate a Capability Token for use with Twilio Client, you can do this:
|
122
276
|
|
123
277
|
```ruby
|
124
278
|
require 'twilio-ruby'
|
@@ -142,10 +296,11 @@ capability.add_scope(incoming_scope)
|
|
142
296
|
@token = capability.to_s
|
143
297
|
```
|
144
298
|
|
145
|
-
There is a slightly more detailed document in the [Capability][capability]
|
146
|
-
section of the wiki.
|
299
|
+
There is a slightly more detailed document in the [Capability][capability] section of the wiki.
|
147
300
|
|
148
|
-
|
301
|
+
### Generate TwiML
|
302
|
+
|
303
|
+
To control phone calls, your application needs to output [TwiML][twiml].
|
149
304
|
|
150
305
|
You can construct a TwiML response like this:
|
151
306
|
|
@@ -175,24 +330,26 @@ This will print the following (except for the whitespace):
|
|
175
330
|
</Response>
|
176
331
|
```
|
177
332
|
|
178
|
-
##
|
333
|
+
## Docker Image
|
179
334
|
|
180
|
-
|
181
|
-
implementations:
|
335
|
+
The `Dockerfile` present in this repository and its respective `twilio/twilio-ruby` Docker image are currently used by Twilio for testing purposes only.
|
182
336
|
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
337
|
+
## Getting help
|
338
|
+
|
339
|
+
If you need help installing or using the library, please check the [Twilio Support Help Center](https://support.twilio.com) first, and [file a support ticket](https://twilio.com/help/contact) if you don't find an answer to your question.
|
340
|
+
|
341
|
+
If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!
|
187
342
|
|
343
|
+
[apidocs]: https://www.twilio.com/docs/api
|
344
|
+
[twiml]: https://www.twilio.com/docs/api/twiml
|
345
|
+
[libdocs]: https://www.twilio.com/docs/libraries/reference/twilio-ruby/
|
346
|
+
[refdocs]: https://twilio.github.io/twilio-ruby
|
188
347
|
[capability]: https://github.com/twilio/twilio-ruby/wiki/JWT-Tokens
|
189
|
-
[examples]: https://github.com/twilio/twilio-ruby/blob/master/examples
|
190
|
-
[documentation]: http://twilio.github.io/twilio-ruby
|
191
348
|
[wiki]: https://github.com/twilio/twilio-ruby/wiki
|
192
|
-
[bundler]:
|
193
|
-
[rubygems]:
|
349
|
+
[bundler]: https://bundler.io
|
350
|
+
[rubygems]: https://rubygems.org
|
194
351
|
[gem]: https://rubygems.org/gems/twilio
|
195
|
-
[
|
352
|
+
[github-actions]: https://github.com/twilio/twilio-ruby/actions/workflows/test-and-deploy.yml
|
196
353
|
[upgrade]: https://github.com/twilio/twilio-ruby/wiki/Ruby-Version-5.x-Upgrade-Guide
|
197
354
|
[issues]: https://github.com/twilio/twilio-ruby/issues
|
198
355
|
[faraday]: https://github.com/lostisland/faraday
|
data/Rakefile
CHANGED
@@ -8,57 +8,3 @@ RSpec::Core::RakeTask.new(:spec)
|
|
8
8
|
|
9
9
|
task default: :spec
|
10
10
|
task test: :spec
|
11
|
-
|
12
|
-
task :authors do
|
13
|
-
`make authors`
|
14
|
-
end
|
15
|
-
|
16
|
-
task :deploy, [:version] => [:spec, :authors] do |t, args|
|
17
|
-
current_version = Twilio::VERSION
|
18
|
-
|
19
|
-
if args.version.nil?
|
20
|
-
version = Twilio::VERSION
|
21
|
-
version_parts = version.split('.')
|
22
|
-
increment = version_parts.pop
|
23
|
-
increment_prefix = increment.split(/\d/)[0]
|
24
|
-
|
25
|
-
increment = increment[increment_prefix.length..-1] if increment_prefix
|
26
|
-
|
27
|
-
increment = increment.to_i + 1
|
28
|
-
increment = "#{increment_prefix}#{increment}" if increment_prefix
|
29
|
-
|
30
|
-
version = [*version_parts, increment].join('.')
|
31
|
-
else
|
32
|
-
version = args.version
|
33
|
-
end
|
34
|
-
|
35
|
-
puts("Deploying #{version}")
|
36
|
-
|
37
|
-
# Update version.rb
|
38
|
-
version_file = <<SRC
|
39
|
-
module Twilio
|
40
|
-
VERSION = '#{version}'
|
41
|
-
end
|
42
|
-
SRC
|
43
|
-
File.write('lib/twilio-ruby/version.rb', version_file)
|
44
|
-
|
45
|
-
# Update README.md
|
46
|
-
current_readme = File.read('README.md')
|
47
|
-
new_readme = current_readme.gsub(Regexp.new(current_version.gsub('.', '\.')), version)
|
48
|
-
File.write('README.md', new_readme)
|
49
|
-
|
50
|
-
# Make a git commit
|
51
|
-
`git commit -am "Bumping to version #{version}"`
|
52
|
-
|
53
|
-
# Do the gem deployment
|
54
|
-
`make gem`
|
55
|
-
|
56
|
-
# Push the branch back up
|
57
|
-
`git push`
|
58
|
-
|
59
|
-
# Tag the branch
|
60
|
-
`git tag #{version}`
|
61
|
-
|
62
|
-
# Push the tags
|
63
|
-
`git push --tags`
|
64
|
-
end
|
data/UPGRADE.md
CHANGED
@@ -3,6 +3,27 @@
|
|
3
3
|
_After `5.0.0` all `MINOR` and `MAJOR` version bumps will have upgrade notes
|
4
4
|
posted here._
|
5
5
|
|
6
|
+
[2024-01-19] 6.x.x to 7.x.x
|
7
|
+
-----------------------------
|
8
|
+
### Overview
|
9
|
+
|
10
|
+
##### Twilio Ruby Helper Library’s major version 7.0.0 is now available. We ensured that you can upgrade to Ruby helper Library 7.0.0 version without any breaking changes of existing apis
|
11
|
+
|
12
|
+
Behind the scenes Ruby Helper is now auto-generated via OpenAPI with this release. This enables us to rapidly add new features and enhance consistency across versions and languages.
|
13
|
+
We're pleased to inform you that version 7.0.0 adds support for the application/json content type in the request body.
|
14
|
+
|
15
|
+
To learn more about the Ruby Helper Library, check out [our docs](https://www.twilio.com/docs/libraries/ruby).
|
16
|
+
|
17
|
+
[2023-05-03] 5.x.x to 6.x.x
|
18
|
+
-----------------------------
|
19
|
+
### Overview
|
20
|
+
|
21
|
+
##### Twilio Ruby Helper Library’s major version 6.0.0 is now available. We ensured that you can upgrade to Ruby helper Library 6.0.0 version without any breaking changes
|
22
|
+
|
23
|
+
Behind the scenes Ruby Helper is now auto-generated via OpenAPI with this release. This enables us to rapidly add new features and enhance consistency across versions and languages.
|
24
|
+
|
25
|
+
To learn more about the Ruby Helper Library, check out [our docs](https://www.twilio.com/docs/libraries/ruby).
|
26
|
+
|
6
27
|
[2017-09-29] 5.x.x to 5.3.x
|
7
28
|
---------------------------
|
8
29
|
|
data/VERSIONS.md
CHANGED
@@ -5,11 +5,11 @@ all changes to the helper library. It is strongly encouraged that you pin at
|
|
5
5
|
least the major version and potentially the minor version to avoid pulling in
|
6
6
|
breaking changes.
|
7
7
|
|
8
|
-
Semantic Versions take the form of `MAJOR
|
8
|
+
Semantic Versions take the form of `MAJOR.MINOR.PATCH`
|
9
9
|
|
10
|
-
When bugs are fixed in the library in a backwards
|
10
|
+
When bugs are fixed in the library in a backwards-compatible way, the `PATCH`
|
11
11
|
level will be incremented by one. When new features are added to the library
|
12
|
-
in a backwards
|
12
|
+
in a backwards-compatible way, the `PATCH` level will be incremented by one.
|
13
13
|
`PATCH` changes should _not_ break your code and are generally safe for upgrade.
|
14
14
|
|
15
15
|
When a new large feature set comes online or a small breaking change is
|
@@ -19,8 +19,8 @@ change for upgrade. These backwards-incompatible changes will generally be
|
|
19
19
|
limited to a small number of function signature changes.
|
20
20
|
|
21
21
|
The `MAJOR` version is used to indicate the family of technology represented by
|
22
|
-
the helper library. Breaking changes that
|
23
|
-
will
|
22
|
+
the helper library. Breaking changes that require extensive reworking of code
|
23
|
+
will cause the `MAJOR` version to be incremented by one, and the `MINOR` and
|
24
24
|
`PATCH` versions will be reset to zero. Twilio understands that this can be very
|
25
25
|
disruptive, so we will only introduce this type of breaking change when
|
26
26
|
absolutely necessary. New `MAJOR` versions will be communicated in advance with
|
@@ -28,9 +28,8 @@ absolutely necessary. New `MAJOR` versions will be communicated in advance with
|
|
28
28
|
|
29
29
|
## Supported Versions
|
30
30
|
|
31
|
-
`twilio-ruby`
|
32
|
-
functionality will only be added to
|
33
|
-
|
34
|
-
features.
|
31
|
+
Only the current `MAJOR` version of `twilio-ruby` is supported. New
|
32
|
+
features, functionality, bug fixes, and security updates will only be added to
|
33
|
+
the current `MAJOR` version.
|
35
34
|
|
36
|
-
[semver]:
|
35
|
+
[semver]: https://semver.org
|
@@ -0,0 +1,170 @@
|
|
1
|
+
# Custom HTTP Clients for the Twilio Ruby Helper Library
|
2
|
+
|
3
|
+
If you are working with the Twilio Ruby Helper Library, and you need to be able to modify the HTTP requests that the library makes to the Twilio servers, you’re in the right place. The most common need to alter the HTTP request is to connect and authenticate with an enterprise’s proxy server. We’ll provide sample code that you can drop right into your app to handle this use case.
|
4
|
+
|
5
|
+
Connect and authenticate with a proxy server
|
6
|
+
To connect and provide credentials to a proxy server that may be between your app and Twilio, you need a way to modify the HTTP requests that the Twilio helper library makes on your behalf to invoke the Twilio REST API.
|
7
|
+
|
8
|
+
The Twilio Ruby helper library uses the [Faraday](https://rubygems.org/gems/faraday) gem under the hood to make the HTTP requests. The following example shows a typical request, without a custom `http_client`:
|
9
|
+
|
10
|
+
```rb
|
11
|
+
@client = Twilio::REST::Client.new(account_sid, auth_token)
|
12
|
+
|
13
|
+
message = @client.messages
|
14
|
+
.create(
|
15
|
+
to: "+15558675310",
|
16
|
+
body: "Hey there!",
|
17
|
+
from: "+15017122661",
|
18
|
+
)
|
19
|
+
```
|
20
|
+
|
21
|
+
Out of the box, the helper library is creating a default `Twilio::Http::Client` for you, using the Twilio credentials you provide. However, you can create your own `Twilio::Http::Client`, and pass it to any Twilio REST API resource action you want.
|
22
|
+
|
23
|
+
Here’s an example of sending an SMS message with a custom client:
|
24
|
+
|
25
|
+
```rb
|
26
|
+
# Download the helper library from https://www.twilio.com/docs/ruby/install
|
27
|
+
require "rubygems"
|
28
|
+
require "twilio-ruby"
|
29
|
+
require "dotenv/load"
|
30
|
+
|
31
|
+
# Custom HTTP Client
|
32
|
+
require_relative "MyRequestClass"
|
33
|
+
|
34
|
+
# Your Account Sid and Auth Token from twilio.com/console
|
35
|
+
account_sid = ENV["ACCOUNT_SID"]
|
36
|
+
auth_token = ENV["AUTH_TOKEN"]
|
37
|
+
proxy_address = ENV["PROXY_ADDRESS"]
|
38
|
+
proxy_protocol = ENV["PROXY_PROTOCOL"]
|
39
|
+
proxy_port = ENV["PROXY_PORT"]
|
40
|
+
|
41
|
+
my_request_client = MyRequestClass.new(proxy_protocol, proxy_address, proxy_port)
|
42
|
+
|
43
|
+
@client = Twilio::REST::Client.new(account_sid, auth_token,
|
44
|
+
nil, nil, my_request_client)
|
45
|
+
|
46
|
+
message = @client.messages
|
47
|
+
.create(
|
48
|
+
to: "+593978613041",
|
49
|
+
body: "RB This is the ship that made the Kesssssel Run in fourteen parsecs?",
|
50
|
+
from: "+13212855389",
|
51
|
+
)
|
52
|
+
|
53
|
+
puts "Message SID: #{message.sid}"
|
54
|
+
```
|
55
|
+
|
56
|
+
## Create your custom TwilioRestClient
|
57
|
+
|
58
|
+
When you take a closer look at the constructor for `Twilio::Http::Client`, you see that this class provides it to the Twilio helper library to make the necessary HTTP requests.
|
59
|
+
|
60
|
+
## Call Twilio through the proxy server
|
61
|
+
|
62
|
+
Now that we understand how all the components fit together, we can create our own `http_client` that can connect through a proxy server. To make this reusable, here’s a class that you can use to create this `http_client` whenever you need one.
|
63
|
+
|
64
|
+
```rb
|
65
|
+
class MyRequestClass
|
66
|
+
attr_accessor :adapter
|
67
|
+
attr_reader :timeout, :last_response, :last_request
|
68
|
+
|
69
|
+
def initialize(proxy_prot = nil, proxy_addr = nil, proxy_port = nil, timeout: nil)
|
70
|
+
@proxy_prot = proxy_prot
|
71
|
+
@proxy_addr = proxy_addr
|
72
|
+
@proxy_port = proxy_port
|
73
|
+
@timeout = timeout
|
74
|
+
@adapter = Faraday.default_adapter
|
75
|
+
end
|
76
|
+
|
77
|
+
def _request(request)
|
78
|
+
@connection = Faraday.new(url: request.host + ":" + request.port.to_s, ssl: { verify: true }) do |f|
|
79
|
+
f.options.params_encoder = Faraday::FlatParamsEncoder
|
80
|
+
f.request :url_encoded
|
81
|
+
f.adapter @adapter
|
82
|
+
f.headers = request.headers
|
83
|
+
f.basic_auth(request.auth[0], request.auth[1])
|
84
|
+
if @proxy_addr
|
85
|
+
f.proxy = "#{@proxy_prot}://#{@proxy_addr}:#{@proxy_port}"
|
86
|
+
end
|
87
|
+
f.options.open_timeout = request.timeout || @timeout
|
88
|
+
f.options.timeout = request.timeout || @timeout
|
89
|
+
end
|
90
|
+
|
91
|
+
@last_request = request
|
92
|
+
@last_response = nil
|
93
|
+
response = @connection.send(request.method.downcase.to_sym,
|
94
|
+
request.url,
|
95
|
+
request.method == "GET" ? request.params : request.data)
|
96
|
+
|
97
|
+
if response.body && !response.body.empty?
|
98
|
+
object = response.body
|
99
|
+
elsif response.status == 400
|
100
|
+
object = { message: "Bad request", code: 400 }.to_json
|
101
|
+
end
|
102
|
+
|
103
|
+
twilio_response = Twilio::Response.new(response.status, object, headers: response.headers)
|
104
|
+
@last_response = twilio_response
|
105
|
+
|
106
|
+
twilio_response
|
107
|
+
end
|
108
|
+
|
109
|
+
def request(host, port, method, url, params = {}, data = {}, headers = {}, auth = nil, timeout = nil)
|
110
|
+
request = Twilio::Request.new(host, port, method, url, params, data, headers, auth, timeout)
|
111
|
+
_request(request)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
```
|
115
|
+
|
116
|
+
In this example, we are using some environment variables loaded at the program startup to retrieve various configuration settings:
|
117
|
+
|
118
|
+
- Your Twilio Account Sid and Auth Token ([found here, in the Twilio console](https://console.twilio.com))
|
119
|
+
- A proxy address in the form of `http://127.0.0.1:8888`
|
120
|
+
|
121
|
+
These settings are located in a file like `.env` like so:
|
122
|
+
|
123
|
+
```env
|
124
|
+
ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
125
|
+
AUTH_TOKEN= your_auth_token
|
126
|
+
|
127
|
+
HTTPS_PROXY=https://127.0.0.1:8888
|
128
|
+
HTTP_PROXY=http://127.0.0.1:8888
|
129
|
+
```
|
130
|
+
|
131
|
+
Here’s the full console program that sends a text message and shows how it all can work together. It loads the `.env` file.
|
132
|
+
|
133
|
+
```rb
|
134
|
+
# Download the helper library from https://www.twilio.com/docs/ruby/install
|
135
|
+
require "rubygems"
|
136
|
+
require "twilio-ruby"
|
137
|
+
require "dotenv/load"
|
138
|
+
|
139
|
+
# Custom HTTP Client
|
140
|
+
require_relative "MyRequestClass"
|
141
|
+
|
142
|
+
# Your Account Sid and Auth Token from twilio.com/console
|
143
|
+
account_sid = ENV["ACCOUNT_SID"]
|
144
|
+
auth_token = ENV["AUTH_TOKEN"]
|
145
|
+
proxy_address = ENV["PROXY_ADDRESS"]
|
146
|
+
proxy_protocol = ENV["PROXY_PROTOCOL"]
|
147
|
+
proxy_port = ENV["PROXY_PORT"]
|
148
|
+
|
149
|
+
my_request_client = MyRequestClass.new(proxy_protocol, proxy_address, proxy_port)
|
150
|
+
|
151
|
+
@client = Twilio::REST::Client.new(account_sid, auth_token,
|
152
|
+
nil, nil, my_request_client)
|
153
|
+
|
154
|
+
message = @client.messages
|
155
|
+
.create(
|
156
|
+
to: "+593978613041",
|
157
|
+
body: "RB This is the ship that made the Kesssssel Run in fourteen parsecs?",
|
158
|
+
from: "+13212855389",
|
159
|
+
)
|
160
|
+
|
161
|
+
puts "Message SID: #{message.sid}"
|
162
|
+
```
|
163
|
+
|
164
|
+
## What else can this technique be used for?
|
165
|
+
|
166
|
+
Now that you know how to inject your own `http_client` into the Twilio API request pipeline, you could use this technique to add custom HTTP headers and authorization to the requests (perhaps as required by an upstream proxy server).
|
167
|
+
|
168
|
+
You could also implement your own `http_client` to mock the Twilio API responses so your unit and integration tests can run quickly without the need to make a connection to Twilio. In fact, there’s already an example online showing [how to do exactly that with Node.js and Prism](https://www.twilio.com/docs/openapi/mock-api-generation-with-twilio-openapi-spec).
|
169
|
+
|
170
|
+
We can’t wait to see what you build!
|