twilio-ruby 7.11.1 → 7.11.3
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/.github/workflows/test-and-deploy.yml +13 -1
- data/CHANGES.md +417 -0
- data/Gemfile.lock +2 -2
- data/README.md +2 -2
- data/githooks/pre-commit +11 -0
- data/lib/rack/twilio_webhook_authentication.rb +45 -2
- data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +0 -59
- data/lib/twilio-ruby/rest/accounts/v1/bulk_consents.rb +0 -59
- data/lib/twilio-ruby/rest/accounts/v1/bulk_contacts.rb +0 -59
- data/lib/twilio-ruby/rest/accounts/v1/credential.rb +0 -59
- data/lib/twilio-ruby/rest/accounts/v1/messaging_geopermissions.rb +0 -59
- data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +0 -59
- data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/message.rb +6 -0
- data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload/data.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/token.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +0 -59
- data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +0 -59
- data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +0 -59
- data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +0 -59
- data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +0 -59
- data/lib/twilio-ruby/rest/chat/v3/channel.rb +0 -59
- data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +0 -59
- data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +0 -59
- data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +0 -59
- data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +0 -59
- data/lib/twilio-ruby/rest/conversations/v1/conversation_with_participants.rb +0 -59
- data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +0 -59
- data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +0 -59
- data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +0 -59
- data/lib/twilio-ruby/rest/conversations/v1/service/conversation_with_participants.rb +0 -59
- data/lib/twilio-ruby/rest/conversations/v2/action.rb +0 -59
- data/lib/twilio-ruby/rest/conversations/v2/configuration.rb +525 -0
- data/lib/twilio-ruby/rest/conversations/v2/conversation.rb +101 -12
- data/lib/twilio-ruby/rest/conversations/v2/operation.rb +0 -59
- data/lib/twilio-ruby/rest/conversations/v2.rb +10 -4
- data/lib/twilio-ruby/rest/events/v1/schema.rb +0 -59
- data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +0 -59
- data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +12 -14
- data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +12 -14
- data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +12 -14
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +12 -14
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +2 -4
- data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +12 -14
- data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +12 -14
- data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_transfer.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +2 -4
- data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +2 -4
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +2 -4
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +2 -4
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +2 -4
- data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +0 -59
- data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +0 -59
- data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +0 -59
- data/lib/twilio-ruby/rest/iam/v1/api_key.rb +0 -59
- data/lib/twilio-ruby/rest/iam/v1/new_api_key.rb +0 -59
- data/lib/twilio-ruby/rest/iam/v1/o_auth_app.rb +0 -59
- data/lib/twilio-ruby/rest/iam/v1/token.rb +0 -59
- data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +0 -59
- data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +0 -59
- data/lib/twilio-ruby/rest/insights/v1/call.rb +0 -59
- data/lib/twilio-ruby/rest/insights/v1/setting.rb +0 -59
- data/lib/twilio-ruby/rest/insights/v2/inbound.rb +2 -261
- data/lib/twilio-ruby/rest/insights/v2/inbound_report.rb +258 -0
- data/lib/twilio-ruby/rest/insights/v2/outbound.rb +18 -299
- data/lib/twilio-ruby/rest/insights/v2/outbound_report.rb +258 -0
- data/lib/twilio-ruby/rest/insights/v2/report.rb +27 -184
- data/lib/twilio-ruby/rest/insights/v2.rb +14 -4
- data/lib/twilio-ruby/rest/insights/v3/capacity.rb +161 -0
- data/lib/twilio-ruby/rest/insights/v3/custom_field_mapping.rb +279 -0
- data/lib/twilio-ruby/rest/insights/v3/metadata.rb +1 -60
- data/lib/twilio-ruby/rest/insights/v3/query.rb +1 -60
- data/lib/twilio-ruby/rest/insights/v3/query_job.rb +654 -0
- data/lib/twilio-ruby/rest/insights/v3/result.rb +195 -0
- data/lib/twilio-ruby/rest/insights/v3.rb +29 -1
- data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +0 -59
- data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +0 -59
- data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_operator_results.rb +0 -59
- data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_sentences.rb +0 -59
- data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +0 -59
- data/lib/twilio-ruby/rest/intelligence/v3/rule_execution.rb +33 -60
- data/lib/twilio-ruby/rest/knowledge/v1/knowledge/knowledge_status.rb +0 -59
- data/lib/twilio-ruby/rest/knowledge/v2/operation.rb +0 -59
- data/lib/twilio-ruby/rest/knowledge/v2/search.rb +0 -59
- data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +0 -59
- data/lib/twilio-ruby/rest/lookups/v2/bucket.rb +0 -59
- data/lib/twilio-ruby/rest/lookups/v2/lookup_override.rb +0 -59
- data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +0 -59
- data/lib/twilio-ruby/rest/lookups/v2/query.rb +0 -59
- data/lib/twilio-ruby/rest/lookups/v2/rate_limit.rb +0 -59
- data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +0 -59
- data/lib/twilio-ruby/rest/marketplace/v1/module_data.rb +0 -59
- data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +0 -59
- data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +0 -59
- data/lib/twilio-ruby/rest/memory/v1/bulk.rb +0 -59
- data/lib/twilio-ruby/rest/memory/v1/conversation_summary.rb +2 -4
- data/lib/twilio-ruby/rest/memory/v1/data_mapping.rb +3 -3
- data/lib/twilio-ruby/rest/memory/v1/identifier.rb +0 -80
- data/lib/twilio-ruby/rest/memory/v1/identity_resolution_setting.rb +0 -59
- data/lib/twilio-ruby/rest/memory/v1/lookup.rb +0 -59
- data/lib/twilio-ruby/rest/memory/v1/observation.rb +2 -4
- data/lib/twilio-ruby/rest/memory/v1/operation.rb +0 -59
- data/lib/twilio-ruby/rest/memory/v1/recall.rb +0 -59
- data/lib/twilio-ruby/rest/memory/v1/revision.rb +2 -4
- data/lib/twilio-ruby/rest/memory/v1/store.rb +3 -3
- data/lib/twilio-ruby/rest/memory/v1/trait_group.rb +3 -3
- data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v1/domain_validate_dn.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v1/request_managed_cert.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +2 -4
- data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v2/domain_certs.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v2/typing_indicator.rb +0 -59
- data/lib/twilio-ruby/rest/messaging/v3/typing_indicator.rb +0 -59
- data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/embedded_session.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/sender_id_registration.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/sms_verification.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/sms_verification_check.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/voice_verification.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/voice_verification_check.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +0 -59
- data/lib/twilio-ruby/rest/numbers/v2.rb +0 -16
- data/lib/twilio-ruby/rest/numbers/v3/hosted_number_order.rb +0 -59
- data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +0 -59
- data/lib/twilio-ruby/rest/oauth/v1/token.rb +0 -59
- data/lib/twilio-ruby/rest/oauth/v2/authorize.rb +0 -59
- data/lib/twilio-ruby/rest/oauth/v2/oauth_authorization_server.rb +0 -59
- data/lib/twilio-ruby/rest/oauth/v2/token.rb +2 -61
- data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +0 -59
- data/lib/twilio-ruby/rest/preview_iam/v1/authorize.rb +0 -59
- data/lib/twilio-ruby/rest/preview_iam/v1/token.rb +0 -59
- data/lib/twilio-ruby/rest/preview_iam/versionless/organization.rb +0 -59
- data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +0 -59
- data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +0 -59
- data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +0 -59
- data/lib/twilio-ruby/rest/pricing/v1/voice.rb +0 -59
- data/lib/twilio-ruby/rest/pricing/v2/number.rb +0 -59
- data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +0 -59
- data/lib/twilio-ruby/rest/pricing/v2/voice.rb +0 -59
- data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +0 -59
- data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +0 -59
- data/lib/twilio-ruby/rest/routes/v2/trunk.rb +0 -59
- data/lib/twilio-ruby/rest/routes/v3/phone_number.rb +0 -59
- data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +0 -59
- data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +0 -59
- data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +0 -59
- data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +0 -59
- data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +0 -59
- data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +0 -59
- data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +0 -59
- data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +0 -59
- data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +0 -59
- data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +0 -59
- data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +0 -59
- data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +0 -59
- data/lib/twilio-ruby/rest/trusthub/v1/a2p_brand_registration.rb +0 -59
- data/lib/twilio-ruby/rest/trusthub/v1/a2p_brand_registration_embedded_session.rb +0 -59
- data/lib/twilio-ruby/rest/trusthub/v1/a2p_campaign_registration.rb +0 -59
- data/lib/twilio-ruby/rest/trusthub/v1/a2p_campaign_registration_embedded_session.rb +0 -59
- data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +0 -59
- data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +0 -59
- data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +0 -59
- data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles_provisional_copy.rb +0 -59
- data/lib/twilio-ruby/rest/trusthub/v1/trust_products_provisional_copy.rb +0 -59
- data/lib/twilio-ruby/rest/verify/v2/form.rb +0 -59
- data/lib/twilio-ruby/rest/verify/v2/safelist.rb +0 -59
- data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +0 -59
- data/lib/twilio-ruby/rest/verify/v2/service/approve_challenge.rb +0 -59
- data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +0 -59
- data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +1 -1
- data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +0 -59
- data/lib/twilio-ruby/rest/verify/v2/service/new_challenge.rb +3 -62
- data/lib/twilio-ruby/rest/verify/v2/service/new_factor.rb +0 -59
- data/lib/twilio-ruby/rest/verify/v2/service/new_verify_factor.rb +1 -60
- data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +8 -61
- data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +0 -59
- data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +0 -59
- data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +0 -59
- data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +0 -59
- data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +0 -59
- data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +0 -59
- data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v2/account_default_configuration.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v2/configuration/default.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v2/configuration.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v2/recording.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v2/recording_account_default_configuration.rb +547 -0
- data/lib/twilio-ruby/rest/voice/v2/transcription.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v2/type.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v2.rb +6 -0
- data/lib/twilio-ruby/rest/voice/v3/transcription.rb +259 -50
- data/lib/twilio-ruby/twiml/voice_response.rb +12 -6
- data/lib/twilio-ruby/version.rb +1 -1
- metadata +9 -4
- data/lib/twilio-ruby/rest/memory/v1/event.rb +0 -320
- data/lib/twilio-ruby/rest/numbers/v2/caller_id.rb +0 -515
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 92782df8271f1b9a7f8ee80b10514048392c27dc6d58c3513e21a8fa2592a74e
|
|
4
|
+
data.tar.gz: 031343a9310ec971d5d015aaadd5df55ab781a9cacfd15b53dc6bf79b95fae05
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cdcf4946f4391697754789328369c248036fc05a7217ee4d60a4bad9ef2e61f6e0ec4fbcaddbca51b141d7d771ce1fefc55dcba49bd775af43521b8b73a86e28
|
|
7
|
+
data.tar.gz: 170130144ac18fbe7dc463683ea7ddea4494ba27fc329f29a801a44f317fb4c19ba9fbeb72d0d506c4c94d50efe239cc46e78c157c425de0200186662a7fbd59
|
|
@@ -49,7 +49,19 @@ jobs:
|
|
|
49
49
|
- run: bundle exec rake install
|
|
50
50
|
|
|
51
51
|
- name: Run linter
|
|
52
|
-
|
|
52
|
+
# rubocop's ConfigStore path cache (config_store.rb) does a non-atomic
|
|
53
|
+
# `@path_cache[dir] ||= ...` read-modify-write. --parallel runs worker
|
|
54
|
+
# threads via Parallel.in_threads, and on JRuby (no GIL, true parallel
|
|
55
|
+
# threads) that race can hand a thread a nil config path, crashing with
|
|
56
|
+
# "no implicit conversion of nil into String" in File.absolute_path.
|
|
57
|
+
# CRuby's GIL happens to serialize the Hash access enough to avoid it.
|
|
58
|
+
# Run JRuby serially and uncached to sidestep the race.
|
|
59
|
+
run: |
|
|
60
|
+
if [[ "${{ matrix.ruby }}" == jruby-* ]]; then
|
|
61
|
+
bundle exec rubocop -d
|
|
62
|
+
else
|
|
63
|
+
bundle exec rubocop -d --cache true --parallel
|
|
64
|
+
fi
|
|
53
65
|
if: ${{ matrix.ruby != '2.4'}}
|
|
54
66
|
|
|
55
67
|
- name: Run Unit Tests
|
data/CHANGES.md
CHANGED
|
@@ -1,5 +1,422 @@
|
|
|
1
1
|
twilio-ruby changelog
|
|
2
2
|
=====================
|
|
3
|
+
[2026-09-28] Version 7.11.3
|
|
4
|
+
---------------------------
|
|
5
|
+
**Library - Fix**
|
|
6
|
+
- [PR #809](https://github.com/twilio/twilio-ruby/pull/809): validate webhook signatures on percent-encoded request paths. Thanks to [@manisha1997](https://github.com/manisha1997)!
|
|
7
|
+
|
|
8
|
+
**Twiml**
|
|
9
|
+
- Add `audio_format` and `sample_rate` to Stream for HDCodec
|
|
10
|
+
|
|
11
|
+
**Api**
|
|
12
|
+
- # API Changes
|
|
13
|
+
- ## 2026-09-22
|
|
14
|
+
- Simplified the `criteria` field description.
|
|
15
|
+
- ## 2026-09-18
|
|
16
|
+
- Moved `readOnly` on the snapshot count fields (`profileCount`, `partitionCount`) from the shared schema to the response usage sites, so the counts stay read-only in responses (no change for API consumers).
|
|
17
|
+
- ## 2026-09-17
|
|
18
|
+
- Renamed 3 `Get*` operations to `Fetch*` to match the operationId standard: `FetchCohort`, `FetchSnapshot`, `FetchOperation`.
|
|
19
|
+
- Removed the unused `ExpressionId` schema and made the operation error example cohort-native, so no `aud_` identifiers remain in the spec.
|
|
20
|
+
- Kept `libraryVisibility: hidden` across the whole surface (info, path items, and operations).
|
|
21
|
+
- ## 2026-09-08
|
|
22
|
+
- Removed the deprecated header-based-versioning unified specs, consolidating audiences onto the path-based `api.twilio.com/v1` surface.
|
|
23
|
+
- ## 2026-08-31
|
|
24
|
+
- Published the unified audiences spec at `api.twilio.com/v1`.
|
|
25
|
+
- ## 2026-08-26
|
|
26
|
+
- Fixed the Cohort operation response mapping in the unified audiences API.
|
|
27
|
+
- ## 2026-08-19
|
|
28
|
+
- Migrated the unified audiences spec to the Cohort surface (Audiences renamed to Cohorts).
|
|
29
|
+
- Switched `downstreamServiceName` to `audiences-domain`.
|
|
30
|
+
- ## 2026-08-05
|
|
31
|
+
- Added the `api.unified.version.preview` beta feature.
|
|
32
|
+
- Made the unified APIs available in prod us1.
|
|
33
|
+
- ## 2026-07-30
|
|
34
|
+
- Fixed example values.
|
|
35
|
+
- ## 2026-07-29
|
|
36
|
+
- Added the initial version of the audiences API to the unified APIs.
|
|
37
|
+
- ## 2026-07-20
|
|
38
|
+
- Deployed the audiences-domain OAS to the dev edge.
|
|
39
|
+
- ## 2026-07-06
|
|
40
|
+
- Added the prod-us1 realm to the audiences public API.
|
|
41
|
+
- ## 2026-06-23
|
|
42
|
+
- Changed the `storeType` enum from `MEMORA` to `TWILIO`.
|
|
43
|
+
- ## 2026-05-04
|
|
44
|
+
- Added the stage-us1 realm and `x-rate-limit` to the audiences API.
|
|
45
|
+
- ## 2026-04-08
|
|
46
|
+
- Added the initial audiences endpoints.
|
|
47
|
+
- Add `TwimlProcessStatusCallbackEvents` parameter to CreateTwimlProcess endpoint
|
|
48
|
+
- Add `twiml_process` resource alongside `twiml_session` (`twiml_session` is deprecated and will be removed in a future release)
|
|
49
|
+
|
|
50
|
+
**Audiences**
|
|
51
|
+
- ## 2026-09-14
|
|
52
|
+
- Minor updates (formatting, metadata)
|
|
53
|
+
- ## 2026-09-11
|
|
54
|
+
- **Content updates**:
|
|
55
|
+
- Updated summary for `AdminFetchRecord`
|
|
56
|
+
- Updated summary for `AdminFetchCohort`
|
|
57
|
+
- Updated summary for `AdminFetchCohortSnapshot`
|
|
58
|
+
- Updated summary for `AdminFetchCohortOperation`
|
|
59
|
+
- Updated schema description for `ResourceLabels`
|
|
60
|
+
- ## 2026-09-22
|
|
61
|
+
- **Content updates**:
|
|
62
|
+
- Updated schema description for `Criteria`
|
|
63
|
+
- ## 2026-09-18
|
|
64
|
+
- Minor updates (formatting, metadata)
|
|
65
|
+
- ## 2026-09-17
|
|
66
|
+
- Minor updates (formatting, metadata)
|
|
67
|
+
- ## 2026-09-17
|
|
68
|
+
- **Content updates**:
|
|
69
|
+
- Updated description for `CreateCohort`
|
|
70
|
+
- Updated description for `ListCohortSnapshots`
|
|
71
|
+
- Updated description for `CreateCohortSnapshot`
|
|
72
|
+
- Updated description for `FetchCohortSnapshot`
|
|
73
|
+
- Updated description for `ListCohortSnapshotProfiles`
|
|
74
|
+
- Updated schema description for `Criteria`
|
|
75
|
+
- Updated schema description for `Cohort`
|
|
76
|
+
- Updated schema description for `CohortSnapshot`
|
|
77
|
+
- Updated schema description for `CohortOperationResult`
|
|
78
|
+
- Updated schema description for `CohortOperation`
|
|
79
|
+
- ## 2026-09-15
|
|
80
|
+
- Minor updates (formatting, metadata)
|
|
81
|
+
- ## 2026-09-14
|
|
82
|
+
- **Content updates**:
|
|
83
|
+
- Updated summary for `FetchCohort`
|
|
84
|
+
- Updated summary for `FetchCohortSnapshot`
|
|
85
|
+
- Updated summary for `FetchCohortOperation`
|
|
86
|
+
- Updated schema description for `ResourceLabels`
|
|
87
|
+
|
|
88
|
+
**Capabilities**
|
|
89
|
+
- Add a feature-gated preview endpoint to create Capabilities.
|
|
90
|
+
|
|
91
|
+
**Conversations**
|
|
92
|
+
- Add the feature-gated Capabilities list and create endpoints to Conversations v2.
|
|
93
|
+
|
|
94
|
+
**Data-ingress**
|
|
95
|
+
- ## 2026-09-07
|
|
96
|
+
- Minor updates (formatting, metadata)
|
|
97
|
+
- ## 2026-09-09
|
|
98
|
+
- **Added 16 new path(s)**:
|
|
99
|
+
- `/v1/DataSyncs/{syncId}` (FetchDataSync)
|
|
100
|
+
- `/v1/CloudAppSources/{sourceId}/Objects` (ListCloudAppObjects)
|
|
101
|
+
- `/v1/WarehouseSources/{sourceId}/Preview` (CreateWarehousePreview)
|
|
102
|
+
- `/v1/WarehouseSources/{sourceId}/Preview/{operationId}` (FetchWarehousePreview)
|
|
103
|
+
- `/v1/DataSample/{operationId}` (FetchDataSample)
|
|
104
|
+
- `/v1/ControlPlane/CloudAppSources/{sourceId}` (FetchCloudAppSource, PatchCloudAppSource, DeleteCloudAppSource)
|
|
105
|
+
- `/v1/ControlPlane/CloudAppSources/{sourceId}/Datasets` (ListCloudAppDatasets, CreateCloudAppDataset)
|
|
106
|
+
- `/v1/ControlPlane/CloudAppSources/{sourceId}/Datasets/{datasetId}` (FetchCloudAppDataset, PatchCloudAppDataset, DeleteCloudAppDataset)
|
|
107
|
+
- `/v1/ControlPlane/WarehouseSources/{sourceId}` (FetchWarehouseSource, PatchWarehouseSource, DeleteWarehouseSource)
|
|
108
|
+
- `/v1/ControlPlane/WarehouseSources/{sourceId}/Datasets` (ListWarehouseDatasets, CreateWarehouseDataset)
|
|
109
|
+
- ...and 6 more paths
|
|
110
|
+
- **Removed 31 path(s)**:
|
|
111
|
+
- `/v1/DataSyncs/{SyncId}` (FetchDataSync)
|
|
112
|
+
- `/v1/CloudAppSources/{SourceId}/Objects` (ListCloudAppObjects)
|
|
113
|
+
- `/v1/WarehouseSources/{SourceId}/Preview` (CreateWarehousePreview)
|
|
114
|
+
- `/v1/WarehouseSources/{SourceId}/Preview/{OperationId}` (FetchWarehousePreview)
|
|
115
|
+
- `/v1/DataSample/{OperationId}` (FetchDataSample)
|
|
116
|
+
- `/v1/ControlPlane/CloudAppSources/{SourceId}` (FetchCloudAppSource, PatchCloudAppSource, DeleteCloudAppSource)
|
|
117
|
+
- `/v1/ControlPlane/CloudAppSources/{SourceId}/Datasets` (ListCloudAppDatasets, CreateCloudAppDataset)
|
|
118
|
+
- `/v1/ControlPlane/CloudAppSources/{SourceId}/Datasets/{DatasetId}` (FetchCloudAppDataset, PatchCloudAppDataset, DeleteCloudAppDataset)
|
|
119
|
+
- `/v1/ControlPlane/WarehouseSources/{SourceId}` (FetchWarehouseSource, PatchWarehouseSource, DeleteWarehouseSource)
|
|
120
|
+
- `/v1/ControlPlane/WarehouseSources/{SourceId}/Datasets` (ListWarehouseDatasets, CreateWarehouseDataset)
|
|
121
|
+
- ...and 21 more paths
|
|
122
|
+
|
|
123
|
+
**Destinations**
|
|
124
|
+
- ## 2026-09-24
|
|
125
|
+
- **Content updates**:
|
|
126
|
+
- Removed `GET` from the `method` enum on the `webhook` destination type's config options
|
|
127
|
+
- ## 2026-09-22
|
|
128
|
+
- **Content updates**:
|
|
129
|
+
- Added `CDP` to the `categories` enum on `DestinationType`
|
|
130
|
+
- ## 2026-09-14
|
|
131
|
+
- Enable admin APIs for stage-us1 and prod-ie1 realms
|
|
132
|
+
- ## 2026-09-11
|
|
133
|
+
- **Content updates**:
|
|
134
|
+
- Updated description for `CreateDestination`
|
|
135
|
+
- Updated description for `UpdateDestination`
|
|
136
|
+
- Updated description for `DeleteDestination`
|
|
137
|
+
- Updated schema description for `CredentialInput`
|
|
138
|
+
- Updated schema description for `DestinationCredentialOptions`
|
|
139
|
+
- ## 2026-09-11
|
|
140
|
+
- **Content updates**:
|
|
141
|
+
- Updated description for `ListDestinationTypes`
|
|
142
|
+
- Updated description for `GetDestinationType`
|
|
143
|
+
- Updated description for `CreateDestination`
|
|
144
|
+
- Updated description for `UpdateDestination`
|
|
145
|
+
- ## 2026-09-10
|
|
146
|
+
- Made `ListDestinationTypes` and `GetDestinationType` unauthenticated (`security: []`).
|
|
147
|
+
- Removed `iamOperation`, `addAuthorizationHeader`, and `betaFeature` from these operations.
|
|
148
|
+
|
|
149
|
+
**Iam**
|
|
150
|
+
- Removed user_context from the POST /v1/actions/post_login (PostLoginActionRequest) webhook payload; the login email is read from authentication_context.methods
|
|
151
|
+
- Replaced acr and completed_factors with authentication_context (acr, amr, methods) on the POST /v1/actions/post_login (PostLoginActionRequest) webhook payload
|
|
152
|
+
- Made request_context and request_context.ip_address required on the POST /v1/actions/post_login (PostLoginActionRequest) webhook payload
|
|
153
|
+
|
|
154
|
+
**Intelligence**
|
|
155
|
+
- Added optional `rule.operators[]` parameter override field to `POST /v3/RuleExecutions
|
|
156
|
+
- Change Summary in `POST /v3/RuleExecutions`
|
|
157
|
+
|
|
158
|
+
**Knowledge**
|
|
159
|
+
- ## 2026-09-23
|
|
160
|
+
- **Content updates**:
|
|
161
|
+
- Added properties to `WebSourceDetails`: errors
|
|
162
|
+
- **Routing updates**:
|
|
163
|
+
- Changed `downstreamServiceName` from `memora-domain` to `enterprise-knowledge-domain` for all operations
|
|
164
|
+
|
|
165
|
+
**Memory**
|
|
166
|
+
- ## 2026-09-18
|
|
167
|
+
- **Added 2 new path(s)**:
|
|
168
|
+
- `/v1/ControlPlane/TraitExtractionStrategies` (AdminListTraitExtractionStrategies)
|
|
169
|
+
- `/v1/ControlPlane/TraitExtractionStrategies/{traitStrategyId}` (AdminFetchTraitExtractionStrategy)
|
|
170
|
+
- ## 2026-09-03
|
|
171
|
+
- No path changes (schema description only)
|
|
172
|
+
- Clarified the `DataMappingCore` description: the PATCH body requires at least one field.
|
|
173
|
+
- ## 2026-09-10
|
|
174
|
+
- **Added 2 new path(s)** for Observation Extraction Strategies:
|
|
175
|
+
- `/v1/ControlPlane/ObservationExtractionStrategies` (ListObservationExtractionStrategies, CreateObservationExtractionStrategy)
|
|
176
|
+
- `/v1/ControlPlane/ObservationExtractionStrategies/{observationExtractionStrategyId}` (FetchObservationExtractionStrategy, UpdateObservationExtractionStrategy, DeleteObservationExtractionStrategy)
|
|
177
|
+
- **Content updates**:
|
|
178
|
+
- Updated `CreateObservationExtractionStrategyInput` description to document that at least one of `allowedCategories`/`prohibitedCategories` must be provided with a non-empty list
|
|
179
|
+
- ## 2026-09-07
|
|
180
|
+
- **Added 1 new path(s)** for Profile:
|
|
181
|
+
- `/v1/Stores/{storeId}/Profiles/BulkDeletions` (CreateProfilesBulkDeletion)
|
|
182
|
+
- ## 2026-09-03
|
|
183
|
+
- `UpdateStore`, `UpdateTraitGroup`, `UpdateDataMapping`, and `UpdateTraitExtractionStrategy` now require a body with at least one property. An empty `{}` gets a 400.
|
|
184
|
+
|
|
185
|
+
**Routes**
|
|
186
|
+
- Add `GET`/`POST` `/v3/ShortCodes/{isoCountryCode}/{shortCode}` to assign and fetch the Inbound Processing Region for short codes
|
|
187
|
+
|
|
188
|
+
**Verify**
|
|
189
|
+
- Add `aaguid` and `date_last_approved` to passkeys factors `metadata`.
|
|
190
|
+
|
|
191
|
+
**Voice**
|
|
192
|
+
- Add typed Recording AccountDefaultConfiguration public API endpoints.
|
|
193
|
+
|
|
194
|
+
**Webhooks**
|
|
195
|
+
- ## 2026-09-24
|
|
196
|
+
- **Changed**: `GET /v1/Webhooks/Settings` now documents each item as the full `Setting` rather than `SettingSummary`, adding `auth`, `signature`, `connection` and `edgeZones` to the list response. The service already returned these fields; only the schema understated them. Additive for consumers — no field is removed or renamed. The now-unreferenced `SettingSummary` schema is removed.
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
[2026-09-09] Version 7.11.2
|
|
200
|
+
---------------------------
|
|
201
|
+
**Library - Chore**
|
|
202
|
+
- [PR #804](https://github.com/twilio/twilio-ruby/pull/804): Update RubyGems publishing steps in workflow. Thanks to [@manisha1997](https://github.com/manisha1997)!
|
|
203
|
+
- [PR #803](https://github.com/twilio/twilio-ruby/pull/803): Update Rakefile. Thanks to [@manisha1997](https://github.com/manisha1997)!
|
|
204
|
+
- [PR #799](https://github.com/twilio/twilio-ruby/pull/799): release gems. Thanks to [@manisha1997](https://github.com/manisha1997)!
|
|
205
|
+
- [PR #798](https://github.com/twilio/twilio-ruby/pull/798): Remove docker push. Thanks to [@manisha1997](https://github.com/manisha1997)!
|
|
206
|
+
- [PR #797](https://github.com/twilio/twilio-ruby/pull/797): version upgrade. Thanks to [@manisha1997](https://github.com/manisha1997)!
|
|
207
|
+
- [PR #796](https://github.com/twilio/twilio-ruby/pull/796): change permission. Thanks to [@manisha1997](https://github.com/manisha1997)!
|
|
208
|
+
|
|
209
|
+
**Audiences**
|
|
210
|
+
- ## 2026-09-01
|
|
211
|
+
- Backticked brace- and angle-bracket-bearing tokens in descriptions for MDX safety.
|
|
212
|
+
- Updated a prose reference to the renamed `FetchCohortSnapshot` operation.
|
|
213
|
+
- ## 2026-08-26
|
|
214
|
+
- **Removed 5 path(s)**:
|
|
215
|
+
- `/preview/Audiences` (AdminListAudiences)
|
|
216
|
+
- `/preview/Audiences/{audienceId}` (AdminGetAudience)
|
|
217
|
+
- `/preview/Snapshots` (AdminListSnapshots)
|
|
218
|
+
- `/preview/Snapshots/{snapshotId}` (AdminGetSnapshot)
|
|
219
|
+
- `/preview/Operations/{operationId}` (AdminGetOperation)
|
|
220
|
+
- ## 2026-08-25
|
|
221
|
+
- Minor updates (formatting, metadata)
|
|
222
|
+
- ## 2026-08-24
|
|
223
|
+
- **Added 1 new path(s)**:
|
|
224
|
+
- `/preview/Snapshots/{cohortSnapshotId}/Operations` (AdminListSnapshotOperations)
|
|
225
|
+
- **Removed 1 path(s)**:
|
|
226
|
+
- `/preview/Snapshots/{snapshotId}/Operations` (ListAdminSnapshotOperations)
|
|
227
|
+
- ## 2026-08-20
|
|
228
|
+
- Renamed all 13 operations so the operationId keyword leads (`AdminGetCohort` -> `FetchAdminCohort`) to meet standard.
|
|
229
|
+
- Set `info` `libraryVisibility` to `hidden` to exclude this admin spec from generation.
|
|
230
|
+
- Added the standard `pageSize`/`pageToken` query parameters to `ListAdminSnapshotOperations`, the only list operation missing them.
|
|
231
|
+
- ## 2026-08-19
|
|
232
|
+
- **Added 5 new path(s)**:
|
|
233
|
+
- `/preview/Cohorts` (AdminListCohorts)
|
|
234
|
+
- `/preview/Cohorts/{cohortId}` (AdminGetCohort)
|
|
235
|
+
- `/preview/CohortSnapshots` (AdminListCohortSnapshots)
|
|
236
|
+
- `/preview/CohortSnapshots/{cohortSnapshotId}` (AdminGetCohortSnapshot)
|
|
237
|
+
- `/preview/CohortOperations/{cohortOperationId}` (AdminGetCohortOperation)
|
|
238
|
+
- ## 2026-09-01
|
|
239
|
+
- Renamed 3 `Get*` operations to `Fetch*` to match the operationId standard: `FetchCohort`, `FetchCohortSnapshot`, `FetchCohortOperation`. The transpiler skips operations whose operationId does not start with a standard keyword, which had been dropping all three from generated output.
|
|
240
|
+
- Set `libraryVisibility` to `private` (was `hidden`) so the spec is eligible for the private docs pipeline.
|
|
241
|
+
- Backticked brace- and angle-bracket-bearing tokens in descriptions for MDX safety.
|
|
242
|
+
- ## 2026-08-28
|
|
243
|
+
- **Removed 6 path(s)**:
|
|
244
|
+
- `/preview/Audiences` (ListAudiences, CreateAudience)
|
|
245
|
+
- `/preview/Audiences/{audienceId}` (FetchAudience, UpdateAudience, DeleteAudience)
|
|
246
|
+
- `/preview/Snapshots` (ListSnapshots, CreateSnapshot)
|
|
247
|
+
- `/preview/Snapshots/{snapshotId}` (FetchSnapshot, DeleteSnapshot)
|
|
248
|
+
- `/preview/Snapshots/{snapshotId}/Profiles` (ListSnapshotProfiles)
|
|
249
|
+
- `/preview/Operations/{operationId}` (FetchOperation)
|
|
250
|
+
- ## 2026-08-20
|
|
251
|
+
- Renamed 6 `Get*` operations to `Fetch*` to match the operationId standard.
|
|
252
|
+
- Hid the deprecated Audiences/Snapshots paths and `/preview/Operations/{operationId}`.
|
|
253
|
+
- Backticked 11 brace-bearing tokens in descriptions for MDX safety.
|
|
254
|
+
|
|
255
|
+
**Conversations**
|
|
256
|
+
- Add PATCH support for partial updates to Configuration
|
|
257
|
+
- Add `VIDEO` to the Conversations v2 Communication channel enum.
|
|
258
|
+
|
|
259
|
+
**Data-ingress**
|
|
260
|
+
- # API Changes
|
|
261
|
+
- ## 2026-09-01
|
|
262
|
+
- Minor updates (formatting, metadata)
|
|
263
|
+
- ## 2026-08-12
|
|
264
|
+
- Minor updates (formatting, metadata)
|
|
265
|
+
- ## 2026-08-12
|
|
266
|
+
- Initial release with 13 paths and 13 operations
|
|
267
|
+
|
|
268
|
+
**Destinations**
|
|
269
|
+
- ## 2026-09-08
|
|
270
|
+
- Added `prod-ie1` to `supportedRealms` and `iamOperationEnabledRealms` for all endpoints
|
|
271
|
+
- ## 2026-09-01
|
|
272
|
+
- Removed the unused `admin-api` placeholder from `supportedRealms` on the public endpoints;
|
|
273
|
+
- One Admin routes now live in `admin_openapi.yaml`.
|
|
274
|
+
- **Added 6 new path(s)** (admin_openapi.yaml):
|
|
275
|
+
- `/v1/ControlPlane/Destinations` (AdminListDestinations)
|
|
276
|
+
- `/v1/ControlPlane/Destinations/{destinationId}` (AdminGetDestination)
|
|
277
|
+
- `/v1/ControlPlane/Subscriptions` (AdminListSubscriptions)
|
|
278
|
+
- `/v1/ControlPlane/Subscriptions/{subscriptionId}` (AdminGetSubscription)
|
|
279
|
+
- `/v1/ControlPlane/Subscriptions/{subscriptionId}/EventTypes` (AdminListSubscribedEvents)
|
|
280
|
+
- `/v1/ControlPlane/Subscriptions/{subscriptionId}/EventTypes/{eventType}` (AdminGetSubscribedEvent)
|
|
281
|
+
- ## 2026-08-26
|
|
282
|
+
- Minor updates (formatting, metadata)
|
|
283
|
+
- ## 2026-08-26
|
|
284
|
+
- Minor updates (formatting, metadata)
|
|
285
|
+
- ## 2026-08-25
|
|
286
|
+
- **Content updates**:
|
|
287
|
+
- Updated description for `CreateDestination`
|
|
288
|
+
- ## 2026-08-12
|
|
289
|
+
- Minor updates (formatting, metadata)
|
|
290
|
+
|
|
291
|
+
**Email**
|
|
292
|
+
- # API Changes
|
|
293
|
+
- ## 2026-09-02
|
|
294
|
+
- **Added 1 new path(s)**:
|
|
295
|
+
- `/v1/Sends/Cohorts` (sendCohort)
|
|
296
|
+
- ## 2026-08-28
|
|
297
|
+
- **Content updates**:
|
|
298
|
+
- Updated summary for `sendTransactional`
|
|
299
|
+
- Added parameter(s) to `sendTransactional`: X-Twilio-Version
|
|
300
|
+
- Updated schema description for `SuppressionsGroup`
|
|
301
|
+
- Added properties to `SuppressionsGroup`: type
|
|
302
|
+
- Removed properties from `SuppressionsGroup`: mode
|
|
303
|
+
- Updated schema description for `SuppressionsGlobal`
|
|
304
|
+
- Added properties to `SuppressionsGlobal`: type
|
|
305
|
+
- Removed properties from `SuppressionsGlobal`: mode
|
|
306
|
+
- Updated schema description for `Suppressions`
|
|
307
|
+
- Updated schema description for `LongRunningOperationResponse`
|
|
308
|
+
- ## 2026-08-27
|
|
309
|
+
- **Content updates**:
|
|
310
|
+
- Updated description for `SendEmail`
|
|
311
|
+
- Added parameter(s) to `SendEmail`: Content-Encoding, Idempotency-Key
|
|
312
|
+
- Updated schema description for `Envelope`
|
|
313
|
+
- Updated schema description for `SuppressionsGroup`
|
|
314
|
+
- Updated schema description for `SuppressionsGlobal`
|
|
315
|
+
|
|
316
|
+
**Iam**
|
|
317
|
+
- Removed redirect_urls from the GET /v1/Account/AuthorizedApps/{consentSid} response
|
|
318
|
+
- Added company_name, homepage_url, tos_url, and redirect_urls to the GET /v1/Account/AuthorizedApps/{consentSid} response
|
|
319
|
+
- Added GET /v1/Account/AuthorizedApps/{consentSid} - fetch authorized app details, including allowed permissions, by consent identifier SID
|
|
320
|
+
- added container-scoped entitlements endpoint (GET /v2/Container/{containerId}/Entitlements)
|
|
321
|
+
|
|
322
|
+
**Instrumentation**
|
|
323
|
+
- # API Changes
|
|
324
|
+
- ## 2026-09-04
|
|
325
|
+
- **Content updates**:
|
|
326
|
+
- Added `IdempotencyKeyHeader` to Create/Patch/Delete `AutoInstrumentationRule`; corrected the shared header's description
|
|
327
|
+
- Added `operationId`/`createdAt` to `LongRunningOperationResponse`; corrected example `status` from `RUNNING` to `PENDING`
|
|
328
|
+
- Renamed `Signal.timestamp` → `occurredAt`, `HourlyStats.hourTimestamp` → `hourAt`; uppercased `Signal.type` and `ListSignals`' `signalType` enums to SCREAMING_SNAKE_CASE
|
|
329
|
+
- Renamed `UserBehaviors` request/response fields to camelCase; added the `summaryDelivery` webhook callback
|
|
330
|
+
- Reshaped `PaginationMeta` (added required `key`, corrected `pageSize` bounds) and all 6 list operations (`ListEventSources`, `ListEventSourceDatasets`, `ListEventSchemas`, `ListAutoInstrumentationRules`, `ListSignals`, `ListSignalStats`) to the `meta` envelope; added `ListSignalStats`' `500` response
|
|
331
|
+
- Narrowed the domain's default `supportedRealms` to `dev-us1` only; `POST /v1/UserBehaviors` (`AnalyzeUserBehaviors`) keeps its own `dev-us1`/`stage-us1` override (prod withheld pending stage validation) — every other operation is now dev-only
|
|
332
|
+
- ## 2026-08-31
|
|
333
|
+
- **Content updates**:
|
|
334
|
+
- Fixed stale `tdi_` TTID prefix throughout (path params, examples, transaction URLs) to `events_`; unified dataset/schema ID formats (`tdi_dat_`/`tdi_dataset_` → `events_dataset_`, `tdi_schema_` → `events_evsch_`); fixed rule-version examples to match the real `version: integer` field
|
|
335
|
+
- Fixed `operationId` to use the domain-agnostic `proc_job_` TTID prefix; corrected the `OperationId` parameter's length constraint (`max=34` → `max=35`) and added a `pattern`
|
|
336
|
+
- Fixed two length constraints hardcoded for the old `tdi_` prefix length: `IngestEventBatch`'s `sourceId` path parameter (`maxLength` 37 → 40); removed the stale, redundant `Twilio-Write-Key` header parameter
|
|
337
|
+
- Added the missing `AutoInstrumentationRuleId` regex `pattern`
|
|
338
|
+
- Fixed `info.title` ("Twilio Data Ingress - Instrumentation API" → "Events Domain - Instrumentation API")
|
|
339
|
+
- **Added 1 new API path**:
|
|
340
|
+
- `/v1/UserBehaviors` (AnalyzeUserBehaviors)
|
|
341
|
+
- ## 2026-07-28
|
|
342
|
+
- **Initial release** — 21 paths, 37 operations across three API surfaces:
|
|
343
|
+
- **Control Plane** (`/v1/ControlPlane/…`):
|
|
344
|
+
- `/v1/ControlPlane/EventSources` (CreateEventSource, ListEventSources)
|
|
345
|
+
- `/v1/ControlPlane/EventSources/{sourceId}` (FetchEventSource, PatchEventSource, DeleteEventSource)
|
|
346
|
+
- `/v1/ControlPlane/EventSources/{sourceId}/WriteKeys` (CreateWriteKey, ListWriteKeys)
|
|
347
|
+
- `/v1/ControlPlane/EventSources/{sourceId}/WriteKeys/{writeKey}` (DeleteWriteKey)
|
|
348
|
+
- `/v1/ControlPlane/EventSources/{sourceId}/Datasets` (CreateEventSourceDataset, ListEventSourceDatasets)
|
|
349
|
+
- `/v1/ControlPlane/EventSources/{sourceId}/Datasets/{datasetId}` (FetchEventSourceDataset, PatchEventSourceDataset, DeleteEventSourceDataset)
|
|
350
|
+
- `/v1/ControlPlane/EventSources/{sourceId}/EventSchemas` (CreateEventSchema, ListEventSchemas)
|
|
351
|
+
- `/v1/ControlPlane/EventSources/{sourceId}/EventSchemas/{schemaId}` (FetchEventSchema, PatchEventSchema, DeleteEventSchema)
|
|
352
|
+
- `/v1/ControlPlane/EventSources/{sourceId}/AutoInstrumentationRules` (CreateAutoInstrumentationRule, ListAutoInstrumentationRules)
|
|
353
|
+
- `/v1/ControlPlane/EventSources/{sourceId}/AutoInstrumentationRules/{autoInstrumentationRuleId}` (FetchAutoInstrumentationRule, PatchAutoInstrumentationRule, DeleteAutoInstrumentationRule)
|
|
354
|
+
- `/v1/ControlPlane/EventSources/{sourceId}/AutoInstrumentationRules/{autoInstrumentationRuleId}/Versions` (ListAutoInstrumentationRuleVersions)
|
|
355
|
+
- `/v1/ControlPlane/EventSources/{sourceId}/AutoInstrumentationRules/{autoInstrumentationRuleId}/Versions/{version}` (FetchAutoInstrumentationRuleVersion)
|
|
356
|
+
- `/v1/ControlPlane/Datasets` (ListDatasets)
|
|
357
|
+
- `/v1/ControlPlane/Datasets/{datasetId}` (FetchDataset)
|
|
358
|
+
- `/v1/ControlPlane/Operations/{operationId}` (FetchControlPlaneOperationStatus)
|
|
359
|
+
- `/v1/ControlPlane/Datasets` (ListDatasets)
|
|
360
|
+
- `/v1/ControlPlane/Datasets/{datasetId}` (FetchDataset)
|
|
361
|
+
- **Event Ingestion** (`/v1/EventSources/…`):
|
|
362
|
+
- `/v1/EventSources/{sourceId}/Batch` (IngestEventBatch)
|
|
363
|
+
- `/v1/EventSources/{sourceId}/AutoInstrumentationRules/{autoInstrumentationRuleId}/Preview` (TriggerAutoInstrumentationPreview)
|
|
364
|
+
- `/v1/EventSources/{sourceId}/AutoInstrumentationRules/{autoInstrumentationRuleId}/Preview/{operationId}` (GetAutoInstrumentationPreviewResult)
|
|
365
|
+
- **Signal API** (`/v1/EventSources/…`):
|
|
366
|
+
- `/v1/EventSources/{sourceId}/Signals` (IngestSignals, ListSignals)
|
|
367
|
+
- `/v1/EventSources/{sourceId}/Signals/{signalKey}` (GetSignalBySignalKey)
|
|
368
|
+
- `/v1/EventSources/{sourceId}/SignalStats` (ListSignalStats)
|
|
369
|
+
|
|
370
|
+
**Memory**
|
|
371
|
+
- ## 2026-08-18
|
|
372
|
+
- **Breaking change**:
|
|
373
|
+
- Removed the deprecated `CSV` and `DATASET` values from the `DataMappingType` enum.
|
|
374
|
+
- `INGRESS`, `DATASET_CLOUDAPP`, and `DATASET_WAREHOUSE` are the only valid values now.
|
|
375
|
+
- Removed the `DataMappingFromCSV` and `DataMappingFromDataSet` schemas and their
|
|
376
|
+
- `oneOf`/discriminator entries on `DataMappingFromTypes`, along with the corresponding
|
|
377
|
+
- `CSV`/`DATASET` discriminator mapping keys.
|
|
378
|
+
- Any caller still sending `type: CSV` or `type: DATASET` on `AdminListDataMappings`
|
|
379
|
+
- (filtering by those values) will get a 400.
|
|
380
|
+
- ## 2026-08-27
|
|
381
|
+
- **Added 2 new path(s)** for Trait Extraction Strategies:
|
|
382
|
+
- `/v1/ControlPlane/TraitExtractionStrategies` (ListTraitExtractionStrategies, CreateTraitExtractionStrategy)
|
|
383
|
+
- `/v1/ControlPlane/TraitExtractionStrategies/{traitStrategyId}` (FetchTraitExtractionStrategy, UpdateTraitExtractionStrategy, DeleteTraitExtractionStrategy)
|
|
384
|
+
- ## 2026-08-18
|
|
385
|
+
- **Breaking change**:
|
|
386
|
+
- Removed the deprecated `CSV` and `DATASET` values from the `DataMappingType` enum.
|
|
387
|
+
- `INGRESS`, `DATASET_CLOUDAPP`, and `DATASET_WAREHOUSE` are the only valid values now.
|
|
388
|
+
- Removed the `DataMappingFromCSV` and `DataMappingFromDataSet` schemas and their
|
|
389
|
+
- `oneOf`/discriminator entries on `DataMappingFromTypes`, along with the corresponding
|
|
390
|
+
- `CSV`/`DATASET` discriminator mapping keys.
|
|
391
|
+
- Any caller still sending `type: CSV` or `type: DATASET` on `CreateDataMapping` or
|
|
392
|
+
- `UpdateDataMapping` (or filtering `ListDataMappings`/`ListDataMappingSuggestions` by
|
|
393
|
+
- those values) will get a 400.
|
|
394
|
+
|
|
395
|
+
**Messaging**
|
|
396
|
+
- Add SenderIdentity, SenderType, and SenderRegion filter query parameters to list numbers and senders endpoint (beta)
|
|
397
|
+
- Add capabilities field to the numbers and senders response (beta)
|
|
398
|
+
- Remove the WhatsApp Senders v1 endpoints (`/v1/Channels/WhatsApp/Senders`) from RestProxy; the sender was routed to the sunsetting `messaging-whatsapp-k8s-orch` downstream. Use the Senders v2 API (`/v2/Channels/Senders`) instead.
|
|
399
|
+
|
|
400
|
+
**Verify**
|
|
401
|
+
- Add `Templates` optional parameter on Verification creation (a stringified JSON array of `sid`/`substitutions` entries). When provided, `Templates` takes precedence over `TemplateSid`.
|
|
402
|
+
|
|
403
|
+
**Voice**
|
|
404
|
+
- ## 2026-09-03
|
|
405
|
+
- Added `links.conversation` to Transcription resources as the absolute Conversations API URL for the
|
|
406
|
+
- transcript's `conversationId`. It is present once the transcript has been stored; the `links` object
|
|
407
|
+
- is omitted otherwise.
|
|
408
|
+
- ## 2026-09-01
|
|
409
|
+
- Removed `mediaUrl` from `CreateRequestWithMediaUrl`'s required fields so a request with neither `sourceId` nor `mediaUrl` reaches the downstream service, which rejects it with the specific error code 17500 instead of a generic gateway 400
|
|
410
|
+
- Set `additionalProperties: false` on both `CreateRequestWithSourceId` and `CreateRequestWithMediaUrl` so the two `oneOf` variants stay mutually exclusive: `sourceId` is undeclared on the media-URL variant and `mediaUrl` is undeclared on the source-ID variant, keeping every request shape resolvable to exactly one variant
|
|
411
|
+
- ## 2026-08-05
|
|
412
|
+
- Added GET /v3/Transcriptions to list and filter transcriptions (status, sourceId, languageCode, createdAfter/createdBefore) with pageSize/pageToken pagination. createdAfter is inclusive and createdBefore exclusive. Returns 422 (error code 17535) when a sourceId's historical item count exceeds the service scan cap
|
|
413
|
+
|
|
414
|
+
**Webhooks**
|
|
415
|
+
- # API Changes
|
|
416
|
+
- ## 2026-08-24
|
|
417
|
+
- **Changed**: Created Webhooks Config API ( https://docs.google.com/document/d/1zkAJD8a8MgoxWifdYDl_d465Az3W6CcD9fuCC2xlSXE/edit?tab=t.0#heading=h.u9e0ry6oe89j ), that includes 7 new resource(s)**: SharedKeys, AuthProfiles, Settings, Rules, Operations, Tests, EdgeZones in /v1/Webhooks referencing webhooks-config downstream.
|
|
418
|
+
|
|
419
|
+
|
|
3
420
|
[2026-08-13] Version 7.11.1
|
|
4
421
|
---------------------------
|
|
5
422
|
- chore: change permission
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
twilio-ruby (7.11.
|
|
4
|
+
twilio-ruby (7.11.3)
|
|
5
5
|
faraday (>= 2.0, < 3.0)
|
|
6
6
|
jwt (>= 1.5, < 4.0)
|
|
7
7
|
nokogiri (>= 1.6, < 2.0)
|
|
@@ -144,7 +144,7 @@ CHECKSUMS
|
|
|
144
144
|
rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
|
|
145
145
|
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
|
146
146
|
simplecov (1.0.3) sha256=38ef0514f16ae7562f0d0f4df02610071115103d301b6de7dacbcc000082e39b
|
|
147
|
-
twilio-ruby (7.11.
|
|
147
|
+
twilio-ruby (7.11.3)
|
|
148
148
|
unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
|
|
149
149
|
unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
|
|
150
150
|
uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
|
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.11.
|
|
42
|
+
gem 'twilio-ruby', '~> 7.11.3'
|
|
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.11.
|
|
48
|
+
gem install twilio-ruby -v 7.11.3
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
To build and install the development branch yourself from the latest source:
|
data/githooks/pre-commit
CHANGED
|
@@ -1 +1,12 @@
|
|
|
1
|
+
if git diff --cached --name-only | grep -q '^Gemfile\.lock$'; then
|
|
2
|
+
if grep -qE 'https://[^[:space:]]+/artifactory/api/gems/[^/[:space:]]+/?' Gemfile.lock; then
|
|
3
|
+
# A committed lockfile must only reference public registry hosts (enforced in CI by
|
|
4
|
+
# gems-lockfile-hygiene) - rewrite before it lands in the commit.
|
|
5
|
+
sed -E -i.bak 's#https://[^[:space:]]+/artifactory/api/gems/[^/[:space:]]+/?#https://rubygems.org/#' Gemfile.lock
|
|
6
|
+
rm -f Gemfile.lock.bak
|
|
7
|
+
git add Gemfile.lock
|
|
8
|
+
echo "pre-commit: rewrote internal registry URLs in Gemfile.lock to rubygems.org"
|
|
9
|
+
fi
|
|
10
|
+
fi
|
|
11
|
+
|
|
1
12
|
make test
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'rack/media_type'
|
|
4
|
+
require 'rack/utils'
|
|
4
5
|
|
|
5
6
|
module Rack
|
|
6
7
|
# Middleware that authenticates webhooks from Twilio using the request
|
|
@@ -33,7 +34,7 @@ module Rack
|
|
|
33
34
|
end
|
|
34
35
|
|
|
35
36
|
def call(env)
|
|
36
|
-
return @app.call(env) unless env['PATH_INFO']
|
|
37
|
+
return @app.call(env) unless protected_path?(env['PATH_INFO'])
|
|
37
38
|
request = Rack::Request.new(env)
|
|
38
39
|
original_url = request.url
|
|
39
40
|
params = extract_params!(request)
|
|
@@ -51,6 +52,48 @@ module Rack
|
|
|
51
52
|
end
|
|
52
53
|
end
|
|
53
54
|
|
|
55
|
+
# Decide whether a request path needs its signature validated.
|
|
56
|
+
#
|
|
57
|
+
# PATH_INFO arrives percent-encoded, but the routers we sit in front of
|
|
58
|
+
# (Rails, Sinatra) decode and normalize the path before matching it against
|
|
59
|
+
# their routes. Comparing the configured patterns against the raw PATH_INFO
|
|
60
|
+
# alone therefore lets a request like `/%76oice` slip past this middleware
|
|
61
|
+
# unvalidated and still reach the `/voice` action.
|
|
62
|
+
#
|
|
63
|
+
# We compare against every form the path could take downstream and validate
|
|
64
|
+
# if any of them matches. Erring towards validating means a path we can't
|
|
65
|
+
# make sense of is still checked rather than waved through.
|
|
66
|
+
def protected_path?(path)
|
|
67
|
+
path = path.to_s
|
|
68
|
+
candidates = [path, decode(path)]
|
|
69
|
+
candidates << remove_dot_segments(candidates.last)
|
|
70
|
+
candidates.uniq.any? { |candidate| candidate.match(@path_regex) }
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Percent-decode a path the way a downstream router would. `unescape_path`
|
|
74
|
+
# (rather than `unescape`) leaves `+` alone, since a plus is a literal plus
|
|
75
|
+
# in a path and only means a space in a query string. Undecodable bytes are
|
|
76
|
+
# scrubbed, as matching a Regexp against invalid UTF-8 raises.
|
|
77
|
+
def decode(path)
|
|
78
|
+
decoded = Rack::Utils.unescape_path(path)
|
|
79
|
+
decoded.valid_encoding? ? decoded : decoded.scrub
|
|
80
|
+
rescue ArgumentError
|
|
81
|
+
path
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Collapse `.`, `..` and repeated slashes, so an anchored pattern such as
|
|
85
|
+
# %r{\A/voice\z} still recognizes `/sms/../voice`.
|
|
86
|
+
def remove_dot_segments(path)
|
|
87
|
+
segments = path.split('/').each_with_object([]) do |segment, resolved|
|
|
88
|
+
case segment
|
|
89
|
+
when '', '.' then next
|
|
90
|
+
when '..' then resolved.pop
|
|
91
|
+
else resolved << segment
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
"/#{segments.join('/')}"
|
|
95
|
+
end
|
|
96
|
+
|
|
54
97
|
# Extract the params from the the request that we can use to determine the
|
|
55
98
|
# signature. This _may_ modify the passed in request since it may read/rewind
|
|
56
99
|
# the body.
|
|
@@ -67,6 +110,6 @@ module Rack
|
|
|
67
110
|
end
|
|
68
111
|
end
|
|
69
112
|
|
|
70
|
-
private :extract_params
|
|
113
|
+
private :extract_params!, :protected_path?, :decode, :remove_dot_segments
|
|
71
114
|
end
|
|
72
115
|
end
|
|
@@ -205,65 +205,6 @@ module Twilio
|
|
|
205
205
|
end
|
|
206
206
|
end
|
|
207
207
|
|
|
208
|
-
class AuthTokenPromotionPageMetadata < PageMetadata
|
|
209
|
-
attr_reader :auth_token_promotion_page
|
|
210
|
-
|
|
211
|
-
def initialize(version, response, solution, limit)
|
|
212
|
-
super(version, response)
|
|
213
|
-
@auth_token_promotion_page = []
|
|
214
|
-
@limit = limit
|
|
215
|
-
key = get_key(response.body)
|
|
216
|
-
records = 0
|
|
217
|
-
while( limit != :unset && records < limit )
|
|
218
|
-
@auth_token_promotion_page << AuthTokenPromotionListResponse.new(version, @payload, key, limit - records)
|
|
219
|
-
@payload = self.next_page
|
|
220
|
-
break unless @payload
|
|
221
|
-
records += (@payload.body[key] || []).size
|
|
222
|
-
end
|
|
223
|
-
# Path Solution
|
|
224
|
-
@solution = solution
|
|
225
|
-
end
|
|
226
|
-
|
|
227
|
-
def each
|
|
228
|
-
@auth_token_promotion_page.each do |record|
|
|
229
|
-
yield record
|
|
230
|
-
end
|
|
231
|
-
end
|
|
232
|
-
|
|
233
|
-
def to_s
|
|
234
|
-
'<Twilio::REST::Accounts::V1PageMetadata>';
|
|
235
|
-
end
|
|
236
|
-
end
|
|
237
|
-
class AuthTokenPromotionListResponse < InstanceListResource
|
|
238
|
-
|
|
239
|
-
# @param [Array<AuthTokenPromotionInstance>] instance
|
|
240
|
-
# @param [Hash{String => Object}] headers
|
|
241
|
-
# @param [Integer] status_code
|
|
242
|
-
def initialize(version, payload, key, limit = :unset)
|
|
243
|
-
data_list = payload.body[key] || []
|
|
244
|
-
if limit != :unset
|
|
245
|
-
data_list = data_list[0, limit]
|
|
246
|
-
end
|
|
247
|
-
@auth_token_promotion = data_list.map do |data|
|
|
248
|
-
AuthTokenPromotionInstance.new(version, data)
|
|
249
|
-
end
|
|
250
|
-
@headers = payload.headers
|
|
251
|
-
@status_code = payload.status_code
|
|
252
|
-
end
|
|
253
|
-
|
|
254
|
-
def auth_token_promotion
|
|
255
|
-
@auth_token_promotion
|
|
256
|
-
end
|
|
257
|
-
|
|
258
|
-
def headers
|
|
259
|
-
@headers
|
|
260
|
-
end
|
|
261
|
-
|
|
262
|
-
def status_code
|
|
263
|
-
@status_code
|
|
264
|
-
end
|
|
265
|
-
end
|
|
266
|
-
|
|
267
208
|
class AuthTokenPromotionInstance < InstanceResource
|
|
268
209
|
##
|
|
269
210
|
# Initialize the AuthTokenPromotionInstance
|