twilio-ruby 7.3.3 → 7.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.dockerignore +1 -1
- data/.github/ISSUE_TEMPLATE/bug_report.yml +69 -0
- data/.github/workflows/test-and-deploy.yml +10 -2
- data/.gitignore +1 -0
- data/.rubocop.yml +1 -0
- data/CHANGES.md +543 -0
- data/Dockerfile +2 -1
- data/Gemfile +2 -0
- data/Makefile +1 -1
- data/README.md +7 -2
- data/cluster/cluster_oauth_spec.rb +19 -0
- data/cluster/cluster_orgs_spec.rb +40 -0
- data/{cluster_spec.rb → cluster/cluster_spec.rb} +0 -2
- data/examples/public_oauth.rb +13 -0
- data/lib/twilio-ruby/auth_strategy/auth_strategy.rb +19 -0
- data/lib/twilio-ruby/auth_strategy/no_auth_strategy.rb +17 -0
- data/lib/twilio-ruby/auth_strategy/token_auth_strategy.rb +39 -0
- data/lib/twilio-ruby/base/client_base.rb +8 -1
- data/lib/twilio-ruby/credential/auth_type.rb +17 -0
- data/lib/twilio-ruby/credential/client_credential_provider.rb +28 -0
- data/lib/twilio-ruby/credential/credential_provider.rb +11 -0
- data/lib/twilio-ruby/credential/orgs_credential_provider.rb +30 -0
- data/lib/twilio-ruby/framework/rest/api_v1_version.rb +22 -0
- data/lib/twilio-ruby/framework/rest/domain.rb +0 -1
- data/lib/twilio-ruby/framework/rest/error.rb +27 -0
- data/lib/twilio-ruby/framework/rest/page.rb +1 -0
- data/lib/twilio-ruby/framework/rest/page_metadata.rb +83 -0
- data/lib/twilio-ruby/framework/rest/resource.rb +16 -0
- data/lib/twilio-ruby/framework/rest/token_page.rb +73 -0
- data/lib/twilio-ruby/framework/rest/version.rb +91 -4
- data/lib/twilio-ruby/http/client_token_manager.rb +31 -0
- data/lib/twilio-ruby/http/http_client.rb +9 -0
- data/lib/twilio-ruby/http/org_token_manager.rb +31 -0
- data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +139 -0
- data/lib/twilio-ruby/rest/accounts/v1/bulk_consents.rb +99 -1
- data/lib/twilio-ruby/rest/accounts/v1/bulk_contacts.rb +98 -0
- data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +266 -2
- data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +266 -2
- data/lib/twilio-ruby/rest/accounts/v1/credential.rb +63 -0
- data/lib/twilio-ruby/rest/accounts/v1/messaging_geopermissions.rb +285 -0
- data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +164 -4
- data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +161 -0
- data/lib/twilio-ruby/rest/accounts/v1.rb +6 -0
- data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +90 -2
- data/lib/twilio-ruby/rest/api/v2010/account/address.rb +333 -7
- data/lib/twilio-ruby/rest/api/v2010/account/application.rb +355 -2
- data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +168 -2
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +129 -5
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +129 -5
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +129 -5
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +129 -5
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +129 -5
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +129 -5
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +129 -5
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +168 -2
- data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +92 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +90 -2
- data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +177 -2
- data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +240 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +290 -2
- data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +792 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +792 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +235 -1
- data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +103 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +176 -0
- data/lib/twilio-ruby/rest/api/v2010/account/call.rb +428 -15
- data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +464 -8
- data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +238 -2
- data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +228 -3
- data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +248 -2
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +170 -2
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +228 -2
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +200 -2
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +200 -2
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +200 -2
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +413 -2
- data/lib/twilio-ruby/rest/api/v2010/account/key.rb +227 -2
- data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +100 -0
- data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +197 -2
- data/lib/twilio-ruby/rest/api/v2010/account/message.rb +354 -8
- data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +99 -0
- data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +99 -0
- data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +176 -2
- data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +231 -2
- data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +210 -2
- data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +269 -2
- data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload/data.rb +143 -0
- data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +192 -2
- data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +191 -2
- data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +191 -2
- data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +209 -3
- data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +224 -2
- data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +227 -2
- data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +269 -2
- data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +263 -2
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +228 -2
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_ip_access_control_list_mapping.rb +228 -2
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +63 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations/auth_registrations_credential_list_mapping.rb +228 -2
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +63 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +63 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +228 -2
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +228 -2
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +335 -2
- data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +278 -2
- data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +263 -2
- data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +63 -0
- data/lib/twilio-ruby/rest/api/v2010/account/token.rb +99 -0
- data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +190 -2
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +102 -6
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +102 -6
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +102 -6
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +102 -6
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +102 -6
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +102 -6
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +102 -6
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +102 -6
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +102 -6
- data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +298 -7
- data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +63 -0
- data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +114 -0
- data/lib/twilio-ruby/rest/api/v2010/account.rb +245 -2
- data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_knowledge.rb +197 -2
- data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_tool.rb +190 -2
- data/lib/twilio-ruby/rest/assistants/v1/assistant/feedback.rb +126 -6
- data/lib/twilio-ruby/rest/assistants/v1/assistant/message.rb +100 -5
- data/lib/twilio-ruby/rest/assistants/v1/assistant.rb +282 -32
- data/lib/twilio-ruby/rest/assistants/v1/knowledge/chunk.rb +90 -2
- data/lib/twilio-ruby/rest/assistants/v1/knowledge/knowledge_status.rb +140 -0
- data/lib/twilio-ruby/rest/assistants/v1/knowledge.rb +309 -38
- data/lib/twilio-ruby/rest/assistants/v1/policy.rb +94 -2
- data/lib/twilio-ruby/rest/assistants/v1/session/message.rb +90 -2
- data/lib/twilio-ruby/rest/assistants/v1/session.rb +167 -2
- data/lib/twilio-ruby/rest/assistants/v1/tool.rb +292 -40
- data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +168 -2
- data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +142 -3
- data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +163 -1
- data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +140 -0
- data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +182 -0
- data/lib/twilio-ruby/rest/chat/v1/credential.rb +293 -2
- data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +234 -2
- data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +275 -2
- data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +277 -2
- data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +281 -2
- data/lib/twilio-ruby/rest/chat/v1/service/role.rb +269 -2
- data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +90 -2
- data/lib/twilio-ruby/rest/chat/v1/service/user.rb +278 -2
- data/lib/twilio-ruby/rest/chat/v1/service.rb +419 -2
- data/lib/twilio-ruby/rest/chat/v2/credential.rb +293 -2
- data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +196 -2
- data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +234 -2
- data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +309 -2
- data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +308 -2
- data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +299 -2
- data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +306 -2
- data/lib/twilio-ruby/rest/chat/v2/service/role.rb +269 -2
- data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +194 -2
- data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +238 -2
- data/lib/twilio-ruby/rest/chat/v2/service/user.rb +282 -2
- data/lib/twilio-ruby/rest/chat/v2/service.rb +350 -2
- data/lib/twilio-ruby/rest/chat/v3/channel.rb +153 -0
- data/lib/twilio-ruby/rest/client.rb +10 -5
- data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +97 -2
- data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +140 -0
- data/lib/twilio-ruby/rest/content/v1/content.rb +1096 -126
- data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +90 -2
- data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +90 -2
- data/lib/twilio-ruby/rest/content/v2/content.rb +111 -2
- data/lib/twilio-ruby/rest/content/v2/content_and_approvals.rb +111 -2
- data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +319 -2
- data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +189 -3
- data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +183 -0
- data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +169 -2
- data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +311 -2
- data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +315 -2
- data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +293 -2
- data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +356 -25
- data/lib/twilio-ruby/rest/conversations/v1/conversation_with_participants.rb +392 -0
- data/lib/twilio-ruby/rest/conversations/v1/credential.rb +296 -2
- data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +94 -2
- data/lib/twilio-ruby/rest/conversations/v1/role.rb +266 -2
- data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +199 -5
- data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +212 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +185 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +201 -16
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +170 -2
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +314 -2
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +318 -2
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +296 -2
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +360 -26
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation_with_participants.rb +399 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +94 -2
- data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +269 -2
- data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +235 -2
- data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +285 -2
- data/lib/twilio-ruby/rest/conversations/v1/service.rb +261 -20
- data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +233 -2
- data/lib/twilio-ruby/rest/conversations/v1/user.rb +282 -2
- data/lib/twilio-ruby/rest/conversations/v1.rb +6 -0
- data/lib/twilio-ruby/rest/events/v1/event_type.rb +169 -2
- data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +168 -2
- data/lib/twilio-ruby/rest/events/v1/schema.rb +140 -0
- data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +92 -0
- data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +99 -0
- data/lib/twilio-ruby/rest/events/v1/sink.rb +270 -2
- data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +266 -2
- data/lib/twilio-ruby/rest/events/v1/subscription.rb +270 -10
- data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +253 -5
- data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +251 -2
- data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +175 -0
- data/lib/twilio-ruby/rest/flex_api/v1/create_flex_instance.rb +382 -0
- data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +358 -2
- data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +151 -5
- data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +94 -2
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +292 -2
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +240 -2
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +267 -2
- data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +97 -2
- data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +142 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +94 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +94 -0
- data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +142 -0
- data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +127 -2
- data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +219 -2
- data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_transfer.rb +547 -0
- data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +235 -2
- data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +266 -1
- data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +226 -2
- data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +256 -2
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +143 -0
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +173 -2
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +215 -2
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +143 -0
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +209 -2
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +144 -0
- data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +139 -0
- data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +278 -2
- data/lib/twilio-ruby/rest/flex_api/v1.rb +6 -0
- data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +184 -39
- data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +115 -0
- data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +185 -0
- data/lib/twilio-ruby/rest/iam/v1/api_key.rb +201 -0
- data/lib/twilio-ruby/rest/iam/v1/get_api_keys.rb +99 -2
- data/lib/twilio-ruby/rest/iam/v1/{key.rb → new_api_key.rb} +127 -20
- data/lib/twilio-ruby/rest/iam/v1/o_auth_app.rb +646 -0
- data/lib/twilio-ruby/rest/iam/v1/token.rb +301 -0
- data/lib/twilio-ruby/rest/iam/v1.rb +25 -4
- data/lib/twilio-ruby/rest/iam_base.rb +1 -6
- data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +194 -0
- data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +146 -0
- data/lib/twilio-ruby/rest/insights/v1/call/event.rb +92 -2
- data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +94 -2
- data/lib/twilio-ruby/rest/insights/v1/call.rb +140 -0
- data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +188 -4
- data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +183 -2
- data/lib/twilio-ruby/rest/insights/v1/conference.rb +187 -2
- data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +168 -2
- data/lib/twilio-ruby/rest/insights/v1/room.rb +179 -2
- data/lib/twilio-ruby/rest/insights/v1/setting.rb +186 -0
- data/lib/twilio-ruby/rest/intelligence/v2/custom_operator.rb +275 -2
- data/lib/twilio-ruby/rest/intelligence/v2/operator.rb +171 -2
- data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +163 -0
- data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +140 -0
- data/lib/twilio-ruby/rest/intelligence/v2/operator_type.rb +167 -2
- data/lib/twilio-ruby/rest/intelligence/v2/prebuilt_operator.rb +171 -2
- data/lib/twilio-ruby/rest/intelligence/v2/service.rb +330 -3
- data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_operator_results.rb +359 -0
- data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_sentences.rb +359 -0
- data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +146 -0
- data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +183 -2
- data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +97 -5
- data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +292 -2
- data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +293 -2
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +234 -2
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +275 -2
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +277 -2
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +281 -2
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +269 -2
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +90 -2
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +278 -2
- data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +419 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +293 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +196 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +234 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +309 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +308 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +299 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +306 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +269 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +194 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +235 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +282 -2
- data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +350 -2
- data/lib/twilio-ruby/rest/{microvisor/v1/app.rb → knowledge/v1/knowledge/chunk.rb} +133 -168
- data/lib/twilio-ruby/rest/knowledge/v1/knowledge/knowledge_status.rb +349 -0
- data/lib/twilio-ruby/rest/knowledge/v1/knowledge.rb +856 -0
- data/lib/twilio-ruby/rest/{preview/sync.rb → knowledge/v1.rb} +16 -16
- data/lib/twilio-ruby/rest/knowledge.rb +6 -0
- data/lib/twilio-ruby/rest/{microvisor_base.rb → knowledge_base.rb} +6 -6
- data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +157 -2
- data/lib/twilio-ruby/rest/lookups/v2/bucket.rb +500 -0
- data/lib/twilio-ruby/rest/lookups/v2/lookup_override.rb +603 -0
- data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +209 -15
- data/lib/twilio-ruby/rest/lookups/v2/query.rb +351 -0
- data/lib/twilio-ruby/rest/lookups/v2/rate_limit.rb +229 -0
- data/lib/twilio-ruby/rest/lookups/v2.rb +86 -0
- data/lib/twilio-ruby/rest/marketplace/v1/available_add_on/available_add_on_extension.rb +168 -2
- data/lib/twilio-ruby/rest/marketplace/v1/available_add_on.rb +167 -2
- data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_extension.rb +205 -2
- data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +97 -2
- data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on.rb +272 -2
- data/lib/twilio-ruby/rest/marketplace/v1/module_data.rb +342 -0
- data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +201 -0
- data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +99 -63
- data/lib/twilio-ruby/rest/marketplace/v1.rb +8 -2
- data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +92 -0
- data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +209 -2
- data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +261 -2
- data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +145 -0
- data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +198 -0
- data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +185 -0
- data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +140 -0
- data/lib/twilio-ruby/rest/messaging/v1/domain_validate_dn.rb +344 -0
- data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +104 -0
- data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +163 -0
- data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +140 -0
- data/lib/twilio-ruby/rest/messaging/v1/request_managed_cert.rb +379 -0
- data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +226 -2
- data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +226 -2
- data/lib/twilio-ruby/rest/messaging/v1/service/destination_alpha_sender.rb +608 -0
- data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +226 -2
- data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +226 -2
- data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +326 -2
- data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +98 -0
- data/lib/twilio-ruby/rest/messaging/v1/service.rb +381 -6
- data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +731 -7
- data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +91 -0
- data/lib/twilio-ruby/rest/messaging/v1.rb +30 -0
- data/lib/twilio-ruby/rest/messaging/v2/channels_sender.rb +1002 -0
- data/lib/twilio-ruby/rest/messaging/v2/domain_certs.rb +386 -0
- data/lib/twilio-ruby/rest/messaging/v2/typing_indicator.rb +237 -0
- data/lib/twilio-ruby/rest/messaging/v2.rb +70 -0
- data/lib/twilio-ruby/rest/messaging_base.rb +6 -1
- data/lib/twilio-ruby/rest/monitor/v1/alert.rb +173 -2
- data/lib/twilio-ruby/rest/monitor/v1/event.rb +180 -3
- data/lib/twilio-ruby/rest/notify/v1/credential.rb +293 -2
- data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +254 -2
- data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +150 -0
- data/lib/twilio-ruby/rest/notify/v1/service.rb +340 -2
- data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +170 -0
- data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +93 -0
- data/lib/twilio-ruby/rest/numbers/v1/porting_all_port_in.rb +367 -0
- data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +330 -8
- data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +163 -0
- data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +149 -0
- data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +93 -0
- data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +133 -0
- data/lib/twilio-ruby/rest/numbers/v1/signing_request_configuration.rb +124 -2
- data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +91 -0
- data/lib/twilio-ruby/rest/numbers/v1.rb +6 -0
- data/lib/twilio-ruby/rest/numbers/v2/application.rb +562 -0
- data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +98 -2
- data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +243 -2
- data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +176 -0
- data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +153 -0
- data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +411 -3
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +126 -2
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +197 -2
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +226 -2
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +99 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +312 -2
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +269 -2
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +167 -2
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +181 -2
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +269 -2
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +167 -2
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +63 -0
- data/lib/twilio-ruby/rest/numbers/v2.rb +15 -0
- data/lib/twilio-ruby/rest/numbers/v3/hosted_number_order.rb +484 -0
- data/lib/twilio-ruby/rest/numbers/v3.rb +40 -0
- data/lib/twilio-ruby/rest/numbers_base.rb +5 -0
- data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +109 -0
- data/lib/twilio-ruby/rest/oauth/v1/token.rb +119 -0
- data/lib/twilio-ruby/rest/oauth/v2/authorize.rb +253 -0
- data/lib/twilio-ruby/rest/oauth/v2/token.rb +311 -0
- data/lib/twilio-ruby/rest/oauth/v2.rb +46 -0
- data/lib/twilio-ruby/rest/oauth_base.rb +6 -1
- data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +100 -2
- data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +275 -2
- data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +345 -2
- data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +168 -2
- data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +167 -2
- data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +205 -2
- data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +272 -2
- data/lib/twilio-ruby/rest/preview/wireless/command.rb +228 -2
- data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +290 -2
- data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +149 -0
- data/lib/twilio-ruby/rest/preview/wireless/sim.rb +258 -2
- data/lib/twilio-ruby/rest/preview.rb +0 -9
- data/lib/twilio-ruby/rest/preview_base.rb +0 -5
- data/lib/twilio-ruby/rest/preview_iam/v1/authorize.rb +253 -0
- data/lib/twilio-ruby/rest/preview_iam/v1/token.rb +301 -0
- data/lib/twilio-ruby/rest/preview_iam/v1.rb +46 -0
- data/lib/twilio-ruby/rest/preview_iam/versionless/organization/account.rb +468 -0
- data/lib/twilio-ruby/rest/preview_iam/versionless/organization/role_assignment.rb +559 -0
- data/lib/twilio-ruby/rest/preview_iam/versionless/organization/user.rb +768 -0
- data/lib/twilio-ruby/rest/preview_iam/versionless/organization.rb +413 -0
- data/lib/twilio-ruby/rest/preview_iam/versionless.rb +49 -0
- data/lib/twilio-ruby/rest/preview_iam.rb +9 -0
- data/lib/twilio-ruby/rest/preview_iam_base.rb +38 -0
- data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +167 -2
- data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +63 -0
- data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +167 -2
- data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +63 -0
- data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +167 -2
- data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +140 -0
- data/lib/twilio-ruby/rest/pricing/v1/voice.rb +63 -0
- data/lib/twilio-ruby/rest/pricing/v2/country.rb +167 -2
- data/lib/twilio-ruby/rest/pricing/v2/number.rb +146 -0
- data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +167 -2
- data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +146 -0
- data/lib/twilio-ruby/rest/pricing/v2/voice.rb +63 -0
- data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +269 -2
- data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +191 -2
- data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +211 -2
- data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +237 -2
- data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +284 -2
- data/lib/twilio-ruby/rest/proxy/v1/service.rb +302 -29
- data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +179 -0
- data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +179 -0
- data/lib/twilio-ruby/rest/routes/v2/trunk.rb +179 -0
- data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +169 -2
- data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +263 -2
- data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +141 -0
- data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +235 -2
- data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +209 -2
- data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +176 -3
- data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +272 -2
- data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +229 -2
- data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +142 -0
- data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +169 -2
- data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +263 -2
- data/lib/twilio-ruby/rest/serverless/v1/service.rb +275 -2
- data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +141 -0
- data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +142 -0
- data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +183 -2
- data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +232 -2
- data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +141 -0
- data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +142 -0
- data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +183 -2
- data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +273 -2
- data/lib/twilio-ruby/rest/studio/v1/flow.rb +189 -2
- data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +141 -0
- data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +142 -0
- data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +183 -2
- data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +273 -2
- data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +168 -2
- data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +176 -0
- data/lib/twilio-ruby/rest/studio/v2/flow.rb +278 -2
- data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +107 -0
- data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +217 -2
- data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +282 -2
- data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +225 -2
- data/lib/twilio-ruby/rest/supersim/v1/network.rb +173 -2
- data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +226 -2
- data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +241 -2
- data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +94 -2
- data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +90 -2
- data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +90 -2
- data/lib/twilio-ruby/rest/supersim/v1/sim.rb +262 -2
- data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +217 -2
- data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +106 -2
- data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +235 -2
- data/lib/twilio-ruby/rest/sync/v1/service/document.rb +275 -3
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +295 -2
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +235 -2
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +274 -4
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +298 -2
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +235 -2
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +274 -4
- data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +100 -0
- data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +267 -3
- data/lib/twilio-ruby/rest/sync/v1/service.rb +299 -5
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +270 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +190 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +374 -4
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +329 -3
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +272 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +94 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +159 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +147 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +159 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +102 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +301 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +366 -4
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +210 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +156 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +155 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +146 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +164 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +299 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +159 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +147 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +159 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +292 -2
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +158 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +146 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +158 -0
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +295 -2
- data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +226 -2
- data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +226 -2
- data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +287 -2
- data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +227 -3
- data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +179 -0
- data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +309 -2
- data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +195 -4
- data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +299 -0
- data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +255 -1
- data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +233 -2
- data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +228 -2
- data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +204 -2
- data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +284 -2
- data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +269 -2
- data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +167 -2
- data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +167 -2
- data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +269 -2
- data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +167 -2
- data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +233 -2
- data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +228 -2
- data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +204 -2
- data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +284 -2
- data/lib/twilio-ruby/rest/verify/v2/form.rb +140 -0
- data/lib/twilio-ruby/rest/verify/v2/safelist.rb +197 -0
- data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +186 -0
- data/lib/twilio-ruby/rest/verify/v2/service/approve_challenge.rb +402 -0
- data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +101 -0
- data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +268 -2
- data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +253 -2
- data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +146 -0
- data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +226 -2
- data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +266 -2
- data/lib/twilio-ruby/rest/verify/v2/service/new_challenge.rb +478 -0
- data/lib/twilio-ruby/rest/verify/v2/service/new_factor.rb +387 -0
- data/lib/twilio-ruby/rest/verify/v2/service/new_verify_factor.rb +357 -0
- data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +272 -2
- data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +266 -2
- data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +265 -0
- data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +114 -0
- data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +287 -2
- data/lib/twilio-ruby/rest/verify/v2/service.rb +547 -3
- data/lib/twilio-ruby/rest/verify/v2/template.rb +92 -2
- data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +186 -5
- data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +163 -3
- data/lib/twilio-ruby/rest/video/v1/composition.rb +256 -2
- data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +322 -2
- data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +189 -0
- data/lib/twilio-ruby/rest/video/v1/recording.rb +202 -2
- data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +189 -0
- data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +141 -0
- data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +169 -2
- data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +130 -0
- data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +169 -2
- data/lib/twilio-ruby/rest/video/v1/room/participant.rb +213 -2
- data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +128 -0
- data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +198 -2
- data/lib/twilio-ruby/rest/video/v1/room/transcriptions.rb +648 -0
- data/lib/twilio-ruby/rest/video/v1/room.rb +341 -16
- data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +133 -0
- data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +314 -2
- data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +287 -2
- data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +260 -2
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +98 -0
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +90 -2
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +179 -2
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +174 -0
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +63 -0
- data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +266 -2
- data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +263 -2
- data/lib/twilio-ruby/rest/wireless/v1/command.rb +250 -2
- data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +300 -3
- data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +90 -2
- data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +96 -2
- data/lib/twilio-ruby/rest/wireless/v1/sim.rb +286 -2
- data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +96 -2
- data/lib/twilio-ruby/twiml/voice_response.rb +305 -10
- data/lib/twilio-ruby/version.rb +1 -1
- data/twilio-ruby.gemspec +1 -1
- metadata +76 -32
- data/lib/twilio-ruby/rest/microvisor/v1/account_config.rb +0 -365
- data/lib/twilio-ruby/rest/microvisor/v1/account_secret.rb +0 -358
- data/lib/twilio-ruby/rest/microvisor/v1/app/app_manifest.rb +0 -209
- data/lib/twilio-ruby/rest/microvisor/v1/device/device_config.rb +0 -381
- data/lib/twilio-ruby/rest/microvisor/v1/device/device_secret.rb +0 -374
- data/lib/twilio-ruby/rest/microvisor/v1/device.rb +0 -430
- data/lib/twilio-ruby/rest/microvisor/v1.rb +0 -94
- data/lib/twilio-ruby/rest/microvisor.rb +0 -24
- data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +0 -394
- data/lib/twilio-ruby/rest/preview/sync/service/document.rb +0 -455
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +0 -450
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +0 -394
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +0 -431
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +0 -453
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +0 -394
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +0 -431
- data/lib/twilio-ruby/rest/preview/sync/service.rb +0 -512
- data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +0 -413
data/Makefile
CHANGED
data/README.md
CHANGED
|
@@ -39,13 +39,13 @@ This library supports the following Ruby implementations:
|
|
|
39
39
|
To install using [Bundler][bundler] grab the latest stable version:
|
|
40
40
|
|
|
41
41
|
```ruby
|
|
42
|
-
gem 'twilio-ruby', '~> 7.
|
|
42
|
+
gem 'twilio-ruby', '~> 7.10.1'
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
gem install twilio-ruby -v 7.
|
|
48
|
+
gem install twilio-ruby -v 7.10.1
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
To build and install the development branch yourself from the latest source:
|
|
@@ -298,6 +298,11 @@ capability.add_scope(incoming_scope)
|
|
|
298
298
|
|
|
299
299
|
There is a slightly more detailed document in the [Capability][capability] section of the wiki.
|
|
300
300
|
|
|
301
|
+
## OAuth Feature for Twilio APIs
|
|
302
|
+
We are introducing Client Credentials Flow-based OAuth 2.0 authentication. This feature is currently in beta and its implementation is subject to change.
|
|
303
|
+
|
|
304
|
+
API examples [here](https://github.com/twilio/twilio-ruby/blob/main/examples/public_oauth.rb)
|
|
305
|
+
|
|
301
306
|
### Generate TwiML
|
|
302
307
|
|
|
303
308
|
To control phone calls, your application needs to output [TwiML][twiml].
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'rspec/matchers'
|
|
2
|
+
require 'twilio-ruby'
|
|
3
|
+
require './lib/twilio-ruby/credential/client_credential_provider'
|
|
4
|
+
|
|
5
|
+
describe 'Cluster Test' do
|
|
6
|
+
before(:each) do
|
|
7
|
+
@account_sid = ENV['TWILIO_ACCOUNT_SID']
|
|
8
|
+
@client_secret = ENV['TWILIO_CLIENT_SECRET']
|
|
9
|
+
@client_id = ENV['TWILIO_CLIENT_ID']
|
|
10
|
+
@message_sid = ENV['TWILIO_MESSAGE_SID']
|
|
11
|
+
@credential = Twilio::REST::ClientCredentialProvider.new(@client_id, @client_secret)
|
|
12
|
+
@client = Twilio::REST::Client.new(@account_sid).credential_provider(@credential)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'can fetch a message' do
|
|
16
|
+
response = @client.messages(@message_sid).fetch
|
|
17
|
+
expect(response).to_not be_nil
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require 'rspec/matchers'
|
|
2
|
+
require 'twilio-ruby'
|
|
3
|
+
require './lib/twilio-ruby/credential/client_credential_provider'
|
|
4
|
+
|
|
5
|
+
describe 'Cluster Test' do
|
|
6
|
+
before(:each) do
|
|
7
|
+
@client_secret = ENV['TWILIO_ORGS_CLIENT_SECRET']
|
|
8
|
+
@client_id = ENV['TWILIO_ORGS_CLIENT_ID']
|
|
9
|
+
@org_sid = ENV['TWILIO_ORG_SID']
|
|
10
|
+
@user_sid = ENV['TWILIO_USER_SID']
|
|
11
|
+
@account_sid = ENV['TWILIO_ORGS_ACCOUNT_SID']
|
|
12
|
+
@credential = Twilio::REST::ClientCredentialProvider.new(@client_id, @client_secret)
|
|
13
|
+
@client = Twilio::REST::Client.new.credential_provider(@credential)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'can list accounts' do
|
|
17
|
+
response = @client.preview_iam.organizations(@org_sid).accounts.list
|
|
18
|
+
expect(response).to_not be_nil
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'can fetch specific account' do
|
|
22
|
+
response = @client.preview_iam.organizations(@org_sid).accounts(@account_sid).fetch
|
|
23
|
+
expect(response).to_not be_nil
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'can access role assignments list' do
|
|
27
|
+
response = @client.preview_iam.organizations(@org_sid).role_assignments.list(scope: @account_sid)
|
|
28
|
+
expect(response).to_not be_nil
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'can get user list' do
|
|
32
|
+
response = @client.preview_iam.organizations(@org_sid).users.list
|
|
33
|
+
expect(response).to_not be_nil
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it 'can get single user' do
|
|
37
|
+
response = @client.preview_iam.organizations(@org_sid).users(@user_sid).fetch
|
|
38
|
+
expect(response).to_not be_nil
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
require 'rspec/matchers'
|
|
2
2
|
require 'twilio-ruby'
|
|
3
3
|
|
|
4
|
-
# rubocop:disable Metrics/BlockLength
|
|
5
4
|
describe 'Cluster Test' do
|
|
6
5
|
before(:each) do
|
|
7
6
|
@account_sid = ENV['TWILIO_ACCOUNT_SID']
|
|
@@ -74,4 +73,3 @@ describe 'Cluster Test' do
|
|
|
74
73
|
expect(@client.events.v1.sinks(sink.sid).delete).to eq(true)
|
|
75
74
|
end
|
|
76
75
|
end
|
|
77
|
-
# rubocop:enable Metrics/BlockLength
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'twilio-ruby'
|
|
2
|
+
require 'twilio-ruby/credential/client_credential_provider'
|
|
3
|
+
|
|
4
|
+
credential_provider = Twilio::REST::ClientCredentialProvider.new(ENV['CLIENT_ID'], ENV['CLIENT_SECRET'])
|
|
5
|
+
# passing account sid is not mandatory
|
|
6
|
+
client = Twilio::REST::Client.new(ENV['ACCOUNT_SID']).credential_provider(credential_provider)
|
|
7
|
+
|
|
8
|
+
# send messages
|
|
9
|
+
client.messages.create(
|
|
10
|
+
from: ENV['TWILIO_PHONE_NUMBER'],
|
|
11
|
+
to: ENV['PHONE_NUMBER'],
|
|
12
|
+
body: 'Hello from Ruby!'
|
|
13
|
+
)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Twilio
|
|
2
|
+
module REST
|
|
3
|
+
class AuthStrategy
|
|
4
|
+
attr_accessor :auth_type
|
|
5
|
+
|
|
6
|
+
def initialize(auth_type)
|
|
7
|
+
@auth_type = auth_type
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def auth_string
|
|
11
|
+
raise NotImplementedError, 'Subclasses must implement this method'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def requires_authentication
|
|
15
|
+
raise NotImplementedError, 'Subclasses must implement this method'
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require_relative 'auth_strategy'
|
|
2
|
+
require_relative './../credential/auth_type'
|
|
3
|
+
require 'jwt'
|
|
4
|
+
module Twilio
|
|
5
|
+
module REST
|
|
6
|
+
class TokenAuthStrategy < AuthStrategy
|
|
7
|
+
attr_accessor :token_manager, :token, :lock
|
|
8
|
+
|
|
9
|
+
def initialize(token_manager)
|
|
10
|
+
super(AuthType::ORGS_TOKEN)
|
|
11
|
+
@token = nil
|
|
12
|
+
@token_manager = token_manager
|
|
13
|
+
@lock = Mutex.new
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def auth_string
|
|
17
|
+
token = fetch_token
|
|
18
|
+
"Bearer #{token}"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def fetch_token
|
|
22
|
+
@lock.synchronize do
|
|
23
|
+
@token = @token_manager.fetch_access_token if @token.nil? || token_expired? || @token == ''
|
|
24
|
+
return @token
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def token_expired?
|
|
29
|
+
decoded_token = ::JWT.decode(@token, nil, false)
|
|
30
|
+
exp = decoded_token[0]['exp']
|
|
31
|
+
Time.at(exp) < Time.now
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def requires_authentication
|
|
35
|
+
true
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -6,7 +6,7 @@ module Twilio
|
|
|
6
6
|
# rubocop:enable Style/ClassVars
|
|
7
7
|
|
|
8
8
|
attr_accessor :http_client, :username, :password, :account_sid, :auth_token, :region, :edge, :logger,
|
|
9
|
-
:user_agent_extensions
|
|
9
|
+
:user_agent_extensions, :credentials
|
|
10
10
|
|
|
11
11
|
# rubocop:disable Metrics/ParameterLists
|
|
12
12
|
def initialize(username = nil, password = nil, account_sid = nil, region = nil, http_client = nil, logger = nil,
|
|
@@ -22,6 +22,11 @@ module Twilio
|
|
|
22
22
|
@logger = logger || Twilio.logger
|
|
23
23
|
@user_agent_extensions = user_agent_extensions || []
|
|
24
24
|
end
|
|
25
|
+
|
|
26
|
+
def credential_provider(credential_provider = nil)
|
|
27
|
+
@credentials = credential_provider
|
|
28
|
+
self
|
|
29
|
+
end
|
|
25
30
|
# rubocop:enable Metrics/ParameterLists
|
|
26
31
|
|
|
27
32
|
##
|
|
@@ -47,6 +52,8 @@ module Twilio
|
|
|
47
52
|
@logger.debug("Request Params:#{params}")
|
|
48
53
|
end
|
|
49
54
|
|
|
55
|
+
auth = @credentials.to_auth_strategy.auth_string unless @credentials.nil?
|
|
56
|
+
|
|
50
57
|
response = @http_client.request(
|
|
51
58
|
host,
|
|
52
59
|
port,
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Twilio
|
|
4
|
+
module REST
|
|
5
|
+
class AuthType
|
|
6
|
+
BASIC = 'basic'
|
|
7
|
+
ORGS_TOKEN = 'orgs_token'
|
|
8
|
+
API_KEY = 'api_key'
|
|
9
|
+
NOAUTH = 'noauth'
|
|
10
|
+
CLIENT_CREDENTIALS = 'client_credentials'
|
|
11
|
+
|
|
12
|
+
def to_s
|
|
13
|
+
name
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require_relative 'credential_provider'
|
|
2
|
+
require_relative 'auth_type'
|
|
3
|
+
require_relative './../http/client_token_manager'
|
|
4
|
+
require_relative './../auth_strategy/token_auth_strategy'
|
|
5
|
+
module Twilio
|
|
6
|
+
module REST
|
|
7
|
+
class ClientCredentialProvider < CredentialProvider
|
|
8
|
+
attr_accessor :grant_type, :client_id, :client_secret, :orgs_token, :auth_strategy
|
|
9
|
+
|
|
10
|
+
def initialize(client_id, client_secret, orgs_token = nil)
|
|
11
|
+
super(AuthType::ORGS_TOKEN)
|
|
12
|
+
raise ArgumentError, 'client_id and client_secret are required' if client_id.nil? || client_secret.nil?
|
|
13
|
+
|
|
14
|
+
@grant_type = 'client_credentials'
|
|
15
|
+
@client_id = client_id
|
|
16
|
+
@client_secret = client_secret
|
|
17
|
+
@orgs_token = orgs_token
|
|
18
|
+
@auth_strategy = nil
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def to_auth_strategy
|
|
22
|
+
@orgs_token = ClientTokenManager.new(@grant_type, @client_id, @client_secret) if @orgs_token.nil?
|
|
23
|
+
@auth_strategy = TokenAuthStrategy.new(@orgs_token) if @auth_strategy.nil?
|
|
24
|
+
@auth_strategy
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'credential_provider'
|
|
4
|
+
require_relative 'auth_type'
|
|
5
|
+
require_relative './../http/org_token_manager'
|
|
6
|
+
require_relative './../auth_strategy/token_auth_strategy'
|
|
7
|
+
module Twilio
|
|
8
|
+
module REST
|
|
9
|
+
class OrgsCredentialProvider < CredentialProvider
|
|
10
|
+
attr_accessor :grant_type, :client_id, :client_secret, :orgs_token, :auth_strategy
|
|
11
|
+
|
|
12
|
+
def initialize(client_id, client_secret, orgs_token = nil)
|
|
13
|
+
super(AuthType::ORGS_TOKEN)
|
|
14
|
+
raise ArgumentError, 'client_id and client_secret are required' if client_id.nil? || client_secret.nil?
|
|
15
|
+
|
|
16
|
+
@grant_type = 'client_credentials'
|
|
17
|
+
@client_id = client_id
|
|
18
|
+
@client_secret = client_secret
|
|
19
|
+
@orgs_token = orgs_token
|
|
20
|
+
@auth_strategy = nil
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def to_auth_strategy
|
|
24
|
+
@orgs_token = OrgTokenManager.new(@grant_type, @client_id, @client_secret) if @orgs_token.nil?
|
|
25
|
+
@auth_strategy = TokenAuthStrategy.new(@orgs_token) if @auth_strategy.nil?
|
|
26
|
+
@auth_strategy
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'version'
|
|
4
|
+
require_relative 'error'
|
|
5
|
+
|
|
6
|
+
module Twilio
|
|
7
|
+
module REST
|
|
8
|
+
class ApiV1Version < Version
|
|
9
|
+
attr_accessor :api_version
|
|
10
|
+
|
|
11
|
+
def initialize(domain, version)
|
|
12
|
+
super(domain)
|
|
13
|
+
@version = version.version
|
|
14
|
+
@api_version = 'v1'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def exception(response, _)
|
|
18
|
+
RestErrorV10.new(response.body)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -35,5 +35,32 @@ module Twilio
|
|
|
35
35
|
|
|
36
36
|
class ObsoleteError < StandardError
|
|
37
37
|
end
|
|
38
|
+
|
|
39
|
+
class RestErrorV10 < TwilioError
|
|
40
|
+
attr_accessor :code, :message, :http_status_code, :params, :user_error
|
|
41
|
+
|
|
42
|
+
def initialize(response)
|
|
43
|
+
@code = response['code']
|
|
44
|
+
@message = response['message']
|
|
45
|
+
@http_status_code = response['httpsStatusCode']
|
|
46
|
+
@params = response['params']
|
|
47
|
+
@user_error = response['userError']
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def to_s
|
|
51
|
+
message
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
private
|
|
55
|
+
|
|
56
|
+
def format_message(initial_message)
|
|
57
|
+
message_response = "[HTTP #{status_code}] #{code} : #{initial_message}"
|
|
58
|
+
message_response += "\n#{message}" if message
|
|
59
|
+
message_response += "\n#{http_status_code}" if http_status_code
|
|
60
|
+
message_response += "\n#{params}" if params
|
|
61
|
+
message_response += "\n#{user_error}" if user_error
|
|
62
|
+
message_response + "\n\n"
|
|
63
|
+
end
|
|
64
|
+
end
|
|
38
65
|
end
|
|
39
66
|
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Twilio
|
|
4
|
+
module REST
|
|
5
|
+
# Page Base Class
|
|
6
|
+
class PageMetadata
|
|
7
|
+
META_KEYS = [
|
|
8
|
+
'end',
|
|
9
|
+
'first_page_uri',
|
|
10
|
+
'next_page_uri',
|
|
11
|
+
'last_page_uri',
|
|
12
|
+
'page',
|
|
13
|
+
'page_size',
|
|
14
|
+
'previous_page_uri',
|
|
15
|
+
'total',
|
|
16
|
+
'num_pages',
|
|
17
|
+
'start',
|
|
18
|
+
'uri'
|
|
19
|
+
].freeze
|
|
20
|
+
|
|
21
|
+
def initialize(version, response)
|
|
22
|
+
payload = process_response(response)
|
|
23
|
+
|
|
24
|
+
@version = version
|
|
25
|
+
@payload = payload
|
|
26
|
+
@solution = {}
|
|
27
|
+
@records = payload
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def process_response(response)
|
|
31
|
+
return response if response.status_code == 200
|
|
32
|
+
|
|
33
|
+
raise Twilio::REST::RestError.new('Unable to fetch page', response)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def get_key(payload)
|
|
37
|
+
return 'Resources' if payload['Resources']
|
|
38
|
+
|
|
39
|
+
return payload['meta']['key'] if payload['meta'] && payload['meta']['key']
|
|
40
|
+
|
|
41
|
+
keys = payload.keys
|
|
42
|
+
key = keys - META_KEYS
|
|
43
|
+
return key.first if key.size == 1
|
|
44
|
+
|
|
45
|
+
raise Twilio::REST::TwilioError, 'Page Records can not be deserialized'
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def previous_page_url
|
|
49
|
+
# rubocop:disable Layout/LineLength
|
|
50
|
+
return @version.domain.absolute_url(URI.parse(@payload['meta']['previous_page_url']).request_uri) if @payload['meta'] && @payload['meta']['previous_page_url']
|
|
51
|
+
# rubocop:enable Layout/LineLength
|
|
52
|
+
return @version.domain.absolute_url(@payload['previous_page_uri']) if @payload['previous_page_uri']
|
|
53
|
+
|
|
54
|
+
nil
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def next_page_url
|
|
58
|
+
# rubocop:disable Layout/LineLength
|
|
59
|
+
return @version.domain.absolute_url(URI.parse(@payload.body['meta']['next_page_url']).request_uri) if @payload.body['meta'] && @payload.body['meta']['next_page_url']
|
|
60
|
+
# rubocop:enable Layout/LineLength
|
|
61
|
+
return @version.domain.absolute_url(@payload.body['next_page_uri']) if @payload.body['next_page_uri']
|
|
62
|
+
|
|
63
|
+
nil
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def previous_page
|
|
67
|
+
return nil unless previous_page_url
|
|
68
|
+
|
|
69
|
+
@version.domain.request('GET', previous_page_url)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def next_page
|
|
73
|
+
return nil unless next_page_url
|
|
74
|
+
|
|
75
|
+
@version.domain.request('GET', next_page_url)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def to_s
|
|
79
|
+
'#<PageMetadata>'
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -19,5 +19,21 @@ module Twilio
|
|
|
19
19
|
@version = version
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
|
+
|
|
23
|
+
class InstanceResourceMetadata
|
|
24
|
+
def initialize(payload, headers, status_code)
|
|
25
|
+
@payload = payload
|
|
26
|
+
@headers = headers
|
|
27
|
+
@status_code = status_code
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class InstanceListResource
|
|
32
|
+
def initialize(version, headers, status_code)
|
|
33
|
+
@version = version
|
|
34
|
+
@headers = headers
|
|
35
|
+
@status_code = status_code
|
|
36
|
+
end
|
|
37
|
+
end
|
|
22
38
|
end
|
|
23
39
|
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Twilio
|
|
4
|
+
module REST
|
|
5
|
+
class TokenPage < Page
|
|
6
|
+
attr_accessor :key, :page_size, :url
|
|
7
|
+
|
|
8
|
+
def initialize(version, response)
|
|
9
|
+
super(version, response)
|
|
10
|
+
|
|
11
|
+
@client = @version.domain.client.http_client
|
|
12
|
+
@url = ''
|
|
13
|
+
if @client.last_request
|
|
14
|
+
full_url = @client.last_request.url
|
|
15
|
+
uri = URI.parse(full_url)
|
|
16
|
+
@url = uri.path
|
|
17
|
+
@params = @client.last_request.params
|
|
18
|
+
end
|
|
19
|
+
@page_size = @payload['meta'] && @payload['meta']['pageSize']
|
|
20
|
+
@next_token = @payload['meta'] && @payload['meta']['nextToken']
|
|
21
|
+
@previous_token = @payload['meta'] && @payload['meta']['previousToken']
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def previous_token
|
|
25
|
+
@payload['meta'] && @payload['meta']['previousToken']
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def previous_page
|
|
29
|
+
cached_url = previous_page_url
|
|
30
|
+
return nil unless cached_url
|
|
31
|
+
|
|
32
|
+
response = @version.domain.request('GET', cached_url, @params)
|
|
33
|
+
|
|
34
|
+
self.class.new(@version, response, @solution)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def next_token
|
|
38
|
+
@payload['meta'] && @payload['meta']['nextToken']
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def previous_page_url
|
|
42
|
+
return nil if previous_token.nil?
|
|
43
|
+
|
|
44
|
+
@params['pageToken'] = previous_token
|
|
45
|
+
@version.domain.absolute_url(@url)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def next_page_url
|
|
49
|
+
token = next_token
|
|
50
|
+
return nil if token.nil? || token.to_s.empty?
|
|
51
|
+
|
|
52
|
+
@params['pageToken'] = token
|
|
53
|
+
@version.domain.absolute_url(@url)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def next_page
|
|
57
|
+
cached_url = next_page_url
|
|
58
|
+
return nil unless cached_url
|
|
59
|
+
|
|
60
|
+
response = @version.domain.request('GET', cached_url, @params)
|
|
61
|
+
|
|
62
|
+
self.class.new(@version, response, @solution)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def load_page(payload)
|
|
66
|
+
@key ||= payload['meta'] && payload['meta']['key']
|
|
67
|
+
return @payload[@key] if @key && @payload[@key]
|
|
68
|
+
|
|
69
|
+
raise Twilio::REST::TwilioError, 'Page Records can not be deserialized'
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|