twilio-ruby 7.11.1 → 7.11.2
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/CHANGES.md +221 -0
- data/Gemfile.lock +2 -2
- data/README.md +2 -2
- 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/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/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 +17 -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 +0 -59
- 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/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/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/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 +0 -59
- 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/transcription.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v2/type.rb +0 -59
- data/lib/twilio-ruby/rest/voice/v3/transcription.rb +259 -50
- data/lib/twilio-ruby/version.rb +1 -1
- metadata +6 -4
- data/lib/twilio-ruby/rest/memory/v1/event.rb +0 -320
- data/lib/twilio-ruby/rest/numbers/v2/caller_id.rb +0 -515
|
@@ -171,6 +171,395 @@ module Twilio
|
|
|
171
171
|
end
|
|
172
172
|
end
|
|
173
173
|
|
|
174
|
+
class PatchConfigurationRequest
|
|
175
|
+
# @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
|
|
176
|
+
# @param [description]: [String] Human-readable description for the configuration.
|
|
177
|
+
# @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
|
|
178
|
+
# @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
|
|
179
|
+
# @param [channel_settings]: [Hash<String, PatchConfigurationRequestChannelSettingsValue>] Channel-specific settings to merge onto the existing channelSettings map. A channel key mapped to a value replaces that channel's settings; a channel key explicitly mapped to null removes it; an omitted channel key is left untouched.
|
|
180
|
+
# @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
|
|
181
|
+
# @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
|
|
182
|
+
# @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration.
|
|
183
|
+
# @param [conversations_v1_bridge]: [ConfigurationList.PatchConfigurationRequestConversationsV1Bridge]
|
|
184
|
+
attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
|
|
185
|
+
def initialize(payload)
|
|
186
|
+
@display_name = payload["display_name"]
|
|
187
|
+
@description = payload["description"]
|
|
188
|
+
@conversation_grouping_type = payload["conversation_grouping_type"]
|
|
189
|
+
@memory_store_id = payload["memory_store_id"]
|
|
190
|
+
@channel_settings = payload["channel_settings"]
|
|
191
|
+
@status_callbacks = payload["status_callbacks"]
|
|
192
|
+
@intelligence_configuration_ids = payload["intelligence_configuration_ids"]
|
|
193
|
+
@memory_extraction_enabled = payload["memory_extraction_enabled"]
|
|
194
|
+
@conversations_v1_bridge = payload["conversations_v1_bridge"]
|
|
195
|
+
end
|
|
196
|
+
def to_json(options = {})
|
|
197
|
+
{
|
|
198
|
+
"displayName": @display_name,
|
|
199
|
+
"description": @description,
|
|
200
|
+
"conversationGroupingType": @conversation_grouping_type,
|
|
201
|
+
"memoryStoreId": @memory_store_id,
|
|
202
|
+
"channelSettings": @channel_settings,
|
|
203
|
+
"statusCallbacks": @status_callbacks,
|
|
204
|
+
"intelligenceConfigurationIds": @intelligence_configuration_ids,
|
|
205
|
+
"memoryExtractionEnabled": @memory_extraction_enabled,
|
|
206
|
+
"conversationsV1Bridge": @conversations_v1_bridge,
|
|
207
|
+
}.to_json(options)
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
class PatchConfigurationRequestChannelSettingsValue
|
|
212
|
+
# @param [status_timeouts]: [UpdateConfigurationRequestChannelSettingsValueStatusTimeouts]
|
|
213
|
+
# @param [capture_rules]: [Array<UpdateConfigurationRequestChannelSettingsValueCaptureRules>]
|
|
214
|
+
attr_accessor :status_timeouts, :capture_rules
|
|
215
|
+
def initialize(payload)
|
|
216
|
+
@status_timeouts = payload["status_timeouts"]
|
|
217
|
+
@capture_rules = payload["capture_rules"]
|
|
218
|
+
end
|
|
219
|
+
def to_json(options = {})
|
|
220
|
+
{
|
|
221
|
+
"statusTimeouts": @status_timeouts,
|
|
222
|
+
"captureRules": @capture_rules,
|
|
223
|
+
}.to_json(options)
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
class PatchConfigurationRequestConversationsV1Bridge
|
|
228
|
+
# @param [service_id]: [String] The Conversations V1 Service SID (IS prefix). One configuration per V1 Service SID.
|
|
229
|
+
attr_accessor :service_id
|
|
230
|
+
def initialize(payload)
|
|
231
|
+
@service_id = payload["service_id"]
|
|
232
|
+
end
|
|
233
|
+
def to_json(options = {})
|
|
234
|
+
{
|
|
235
|
+
"serviceId": @service_id,
|
|
236
|
+
}.to_json(options)
|
|
237
|
+
end
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
class UpdateConfigurationRequest
|
|
241
|
+
# @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
|
|
242
|
+
# @param [description]: [String] Human-readable description for the configuration.
|
|
243
|
+
# @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
|
|
244
|
+
# @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
|
|
245
|
+
# @param [channel_settings]: [Hash<String, UpdateConfigurationRequestChannelSettingsValue>]
|
|
246
|
+
# @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
|
|
247
|
+
# @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
|
|
248
|
+
# @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
|
|
249
|
+
# @param [conversations_v1_bridge]: [ConfigurationList.CreateConfigurationRequestConversationsV1Bridge]
|
|
250
|
+
attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
|
|
251
|
+
def initialize(payload)
|
|
252
|
+
@display_name = payload["display_name"]
|
|
253
|
+
@description = payload["description"]
|
|
254
|
+
@conversation_grouping_type = payload["conversation_grouping_type"]
|
|
255
|
+
@memory_store_id = payload["memory_store_id"]
|
|
256
|
+
@channel_settings = payload["channel_settings"]
|
|
257
|
+
@status_callbacks = payload["status_callbacks"]
|
|
258
|
+
@intelligence_configuration_ids = payload["intelligence_configuration_ids"]
|
|
259
|
+
@memory_extraction_enabled = payload["memory_extraction_enabled"]
|
|
260
|
+
@conversations_v1_bridge = payload["conversations_v1_bridge"]
|
|
261
|
+
end
|
|
262
|
+
def to_json(options = {})
|
|
263
|
+
{
|
|
264
|
+
"displayName": @display_name,
|
|
265
|
+
"description": @description,
|
|
266
|
+
"conversationGroupingType": @conversation_grouping_type,
|
|
267
|
+
"memoryStoreId": @memory_store_id,
|
|
268
|
+
"channelSettings": @channel_settings,
|
|
269
|
+
"statusCallbacks": @status_callbacks,
|
|
270
|
+
"intelligenceConfigurationIds": @intelligence_configuration_ids,
|
|
271
|
+
"memoryExtractionEnabled": @memory_extraction_enabled,
|
|
272
|
+
"conversationsV1Bridge": @conversations_v1_bridge,
|
|
273
|
+
}.to_json(options)
|
|
274
|
+
end
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
class UpdateConfigurationRequestChannelSettingsValue
|
|
278
|
+
# @param [status_timeouts]: [UpdateConfigurationRequestChannelSettingsValueStatusTimeouts]
|
|
279
|
+
# @param [capture_rules]: [Array<UpdateConfigurationRequestChannelSettingsValueCaptureRules>]
|
|
280
|
+
attr_accessor :status_timeouts, :capture_rules
|
|
281
|
+
def initialize(payload)
|
|
282
|
+
@status_timeouts = payload["status_timeouts"]
|
|
283
|
+
@capture_rules = payload["capture_rules"]
|
|
284
|
+
end
|
|
285
|
+
def to_json(options = {})
|
|
286
|
+
{
|
|
287
|
+
"statusTimeouts": @status_timeouts,
|
|
288
|
+
"captureRules": @capture_rules,
|
|
289
|
+
}.to_json(options)
|
|
290
|
+
end
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
class UpdateConfigurationRequestChannelSettingsValueCaptureRules
|
|
294
|
+
# @param [from]: [String]
|
|
295
|
+
# @param [to]: [String]
|
|
296
|
+
# @param [metadata]: [Hash<String, String>]
|
|
297
|
+
attr_accessor :from, :to, :metadata
|
|
298
|
+
def initialize(payload)
|
|
299
|
+
@from = payload["from"]
|
|
300
|
+
@to = payload["to"]
|
|
301
|
+
@metadata = payload["metadata"]
|
|
302
|
+
end
|
|
303
|
+
def to_json(options = {})
|
|
304
|
+
{
|
|
305
|
+
"from": @from,
|
|
306
|
+
"to": @to,
|
|
307
|
+
"metadata": @metadata,
|
|
308
|
+
}.to_json(options)
|
|
309
|
+
end
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
class UpdateConfigurationRequestChannelSettingsValueStatusTimeouts
|
|
313
|
+
# @param [inactive]: [Integer]
|
|
314
|
+
# @param [closed]: [Integer]
|
|
315
|
+
attr_accessor :inactive, :closed
|
|
316
|
+
def initialize(payload)
|
|
317
|
+
@inactive = payload["inactive"]
|
|
318
|
+
@closed = payload["closed"]
|
|
319
|
+
end
|
|
320
|
+
def to_json(options = {})
|
|
321
|
+
{
|
|
322
|
+
"inactive": @inactive,
|
|
323
|
+
"closed": @closed,
|
|
324
|
+
}.to_json(options)
|
|
325
|
+
end
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
class UpdateConfigurationRequestStatusCallbacks
|
|
329
|
+
# @param [url]: [String]
|
|
330
|
+
# @param [method]: [String]
|
|
331
|
+
attr_accessor :url, :method
|
|
332
|
+
def initialize(payload)
|
|
333
|
+
@url = payload["url"]
|
|
334
|
+
@method = payload["method"]
|
|
335
|
+
end
|
|
336
|
+
def to_json(options = {})
|
|
337
|
+
{
|
|
338
|
+
"url": @url,
|
|
339
|
+
"method": @method,
|
|
340
|
+
}.to_json(options)
|
|
341
|
+
end
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
class ConversationsV2CaptureRule
|
|
346
|
+
# @param [from]: [String] The from address. Use `*` for wildcard to match any from address.
|
|
347
|
+
# @param [to]: [String] The to address. Use `*` for wildcard to match any to address.
|
|
348
|
+
# @param [metadata]: [Hash<String, String>] Additional matching criteria for the capture rule. For voice calls, can include `callType` (`PSTN`, `SIP`, and similar).
|
|
349
|
+
attr_accessor :from, :to, :metadata
|
|
350
|
+
def initialize(payload)
|
|
351
|
+
@from = payload["from"]
|
|
352
|
+
@to = payload["to"]
|
|
353
|
+
@metadata = payload["metadata"]
|
|
354
|
+
end
|
|
355
|
+
def to_json(options = {})
|
|
356
|
+
{
|
|
357
|
+
"from": @from,
|
|
358
|
+
"to": @to,
|
|
359
|
+
"metadata": @metadata,
|
|
360
|
+
}.to_json(options)
|
|
361
|
+
end
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
class ConversationsV2StatusTimeouts
|
|
365
|
+
# @param [inactive]: [Integer] Inactivity timeout in minutes.
|
|
366
|
+
# @param [closed]: [Integer] Close timeout in minutes.
|
|
367
|
+
attr_accessor :inactive, :closed
|
|
368
|
+
def initialize(payload)
|
|
369
|
+
@inactive = payload["inactive"]
|
|
370
|
+
@closed = payload["closed"]
|
|
371
|
+
end
|
|
372
|
+
def to_json(options = {})
|
|
373
|
+
{
|
|
374
|
+
"inactive": @inactive,
|
|
375
|
+
"closed": @closed,
|
|
376
|
+
}.to_json(options)
|
|
377
|
+
end
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
class CreateConfigurationRequest
|
|
381
|
+
# @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
|
|
382
|
+
# @param [description]: [String] Human-readable description for the configuration.
|
|
383
|
+
# @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
|
|
384
|
+
# @param [memory_store_id]: [String] The memory store ID that Conversation Orchestrator uses for profile resolution.
|
|
385
|
+
# @param [channel_settings]: [Hash<String, CreateConfigurationRequestChannelSettingsValue>]
|
|
386
|
+
# @param [status_callbacks]: [Array<ConfigurationList.CreateConfigurationRequestStatusCallbacks>] A list of webhook configurations.
|
|
387
|
+
# @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
|
|
388
|
+
# @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration. Defaults to false.
|
|
389
|
+
# @param [conversations_v1_bridge]: [ConfigurationList.CreateConfigurationRequestConversationsV1Bridge]
|
|
390
|
+
attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
|
|
391
|
+
def initialize(payload)
|
|
392
|
+
@display_name = payload["display_name"]
|
|
393
|
+
@description = payload["description"]
|
|
394
|
+
@conversation_grouping_type = payload["conversation_grouping_type"]
|
|
395
|
+
@memory_store_id = payload["memory_store_id"]
|
|
396
|
+
@channel_settings = payload["channel_settings"]
|
|
397
|
+
@status_callbacks = payload["status_callbacks"]
|
|
398
|
+
@intelligence_configuration_ids = payload["intelligence_configuration_ids"]
|
|
399
|
+
@memory_extraction_enabled = payload["memory_extraction_enabled"]
|
|
400
|
+
@conversations_v1_bridge = payload["conversations_v1_bridge"]
|
|
401
|
+
end
|
|
402
|
+
def to_json(options = {})
|
|
403
|
+
{
|
|
404
|
+
"displayName": @display_name,
|
|
405
|
+
"description": @description,
|
|
406
|
+
"conversationGroupingType": @conversation_grouping_type,
|
|
407
|
+
"memoryStoreId": @memory_store_id,
|
|
408
|
+
"channelSettings": @channel_settings,
|
|
409
|
+
"statusCallbacks": @status_callbacks,
|
|
410
|
+
"intelligenceConfigurationIds": @intelligence_configuration_ids,
|
|
411
|
+
"memoryExtractionEnabled": @memory_extraction_enabled,
|
|
412
|
+
"conversationsV1Bridge": @conversations_v1_bridge,
|
|
413
|
+
}.to_json(options)
|
|
414
|
+
end
|
|
415
|
+
end
|
|
416
|
+
|
|
417
|
+
class CreateConfigurationRequestChannelSettingsValue
|
|
418
|
+
# @param [status_timeouts]: [CreateConfigurationRequestChannelSettingsValueStatusTimeouts]
|
|
419
|
+
# @param [capture_rules]: [Array<CreateConfigurationRequestChannelSettingsValueCaptureRules>]
|
|
420
|
+
attr_accessor :status_timeouts, :capture_rules
|
|
421
|
+
def initialize(payload)
|
|
422
|
+
@status_timeouts = payload["status_timeouts"]
|
|
423
|
+
@capture_rules = payload["capture_rules"]
|
|
424
|
+
end
|
|
425
|
+
def to_json(options = {})
|
|
426
|
+
{
|
|
427
|
+
"statusTimeouts": @status_timeouts,
|
|
428
|
+
"captureRules": @capture_rules,
|
|
429
|
+
}.to_json(options)
|
|
430
|
+
end
|
|
431
|
+
end
|
|
432
|
+
|
|
433
|
+
class CreateConfigurationRequestChannelSettingsValueCaptureRules
|
|
434
|
+
# @param [from]: [String] The from address. Use '*' for wildcard.
|
|
435
|
+
# @param [to]: [String] The to address. Use '*' for wildcard.
|
|
436
|
+
# @param [metadata]: [Hash<String, String>]
|
|
437
|
+
attr_accessor :from, :to, :metadata
|
|
438
|
+
def initialize(payload)
|
|
439
|
+
@from = payload["from"]
|
|
440
|
+
@to = payload["to"]
|
|
441
|
+
@metadata = payload["metadata"]
|
|
442
|
+
end
|
|
443
|
+
def to_json(options = {})
|
|
444
|
+
{
|
|
445
|
+
"from": @from,
|
|
446
|
+
"to": @to,
|
|
447
|
+
"metadata": @metadata,
|
|
448
|
+
}.to_json(options)
|
|
449
|
+
end
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
class CreateConfigurationRequestChannelSettingsValueStatusTimeouts
|
|
453
|
+
# @param [inactive]: [Integer] The inactivity timeout in minutes. For more information, see [Conversation lifecycle](/docs/platform/conversations/concepts/lifecycle).
|
|
454
|
+
# @param [closed]: [Integer] The close timeout in minutes. For more information, see [Conversation lifecycle](/docs/platform/conversations/concepts/lifecycle).
|
|
455
|
+
attr_accessor :inactive, :closed
|
|
456
|
+
def initialize(payload)
|
|
457
|
+
@inactive = payload["inactive"]
|
|
458
|
+
@closed = payload["closed"]
|
|
459
|
+
end
|
|
460
|
+
def to_json(options = {})
|
|
461
|
+
{
|
|
462
|
+
"inactive": @inactive,
|
|
463
|
+
"closed": @closed,
|
|
464
|
+
}.to_json(options)
|
|
465
|
+
end
|
|
466
|
+
end
|
|
467
|
+
|
|
468
|
+
class CreateConfigurationRequestConversationsV1Bridge
|
|
469
|
+
# @param [service_id]: [String] The Conversations V1 Service SID (IS prefix). One configuration per V1 Service SID.
|
|
470
|
+
attr_accessor :service_id
|
|
471
|
+
def initialize(payload)
|
|
472
|
+
@service_id = payload["service_id"]
|
|
473
|
+
end
|
|
474
|
+
def to_json(options = {})
|
|
475
|
+
{
|
|
476
|
+
"serviceId": @service_id,
|
|
477
|
+
}.to_json(options)
|
|
478
|
+
end
|
|
479
|
+
end
|
|
480
|
+
|
|
481
|
+
class CreateConfigurationRequestStatusCallbacks
|
|
482
|
+
# @param [url]: [String] The destination URL for webhooks.
|
|
483
|
+
# @param [method]: [String] The HTTP method used to invoke the webhook URL.
|
|
484
|
+
attr_accessor :url, :method
|
|
485
|
+
def initialize(payload)
|
|
486
|
+
@url = payload["url"]
|
|
487
|
+
@method = payload["method"]
|
|
488
|
+
end
|
|
489
|
+
def to_json(options = {})
|
|
490
|
+
{
|
|
491
|
+
"url": @url,
|
|
492
|
+
"method": @method,
|
|
493
|
+
}.to_json(options)
|
|
494
|
+
end
|
|
495
|
+
end
|
|
496
|
+
|
|
497
|
+
class PatchConfigurationRequest
|
|
498
|
+
# @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
|
|
499
|
+
# @param [description]: [String] Human-readable description for the configuration.
|
|
500
|
+
# @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
|
|
501
|
+
# @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
|
|
502
|
+
# @param [channel_settings]: [Hash<String, PatchConfigurationRequestChannelSettingsValue>] Channel-specific settings to merge onto the existing channelSettings map. A channel key mapped to a value replaces that channel's settings; a channel key explicitly mapped to null removes it; an omitted channel key is left untouched.
|
|
503
|
+
# @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
|
|
504
|
+
# @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
|
|
505
|
+
# @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration.
|
|
506
|
+
# @param [conversations_v1_bridge]: [ConfigurationList.PatchConfigurationRequestConversationsV1Bridge]
|
|
507
|
+
attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
|
|
508
|
+
def initialize(payload)
|
|
509
|
+
@display_name = payload["display_name"]
|
|
510
|
+
@description = payload["description"]
|
|
511
|
+
@conversation_grouping_type = payload["conversation_grouping_type"]
|
|
512
|
+
@memory_store_id = payload["memory_store_id"]
|
|
513
|
+
@channel_settings = payload["channel_settings"]
|
|
514
|
+
@status_callbacks = payload["status_callbacks"]
|
|
515
|
+
@intelligence_configuration_ids = payload["intelligence_configuration_ids"]
|
|
516
|
+
@memory_extraction_enabled = payload["memory_extraction_enabled"]
|
|
517
|
+
@conversations_v1_bridge = payload["conversations_v1_bridge"]
|
|
518
|
+
end
|
|
519
|
+
def to_json(options = {})
|
|
520
|
+
{
|
|
521
|
+
"displayName": @display_name,
|
|
522
|
+
"description": @description,
|
|
523
|
+
"conversationGroupingType": @conversation_grouping_type,
|
|
524
|
+
"memoryStoreId": @memory_store_id,
|
|
525
|
+
"channelSettings": @channel_settings,
|
|
526
|
+
"statusCallbacks": @status_callbacks,
|
|
527
|
+
"intelligenceConfigurationIds": @intelligence_configuration_ids,
|
|
528
|
+
"memoryExtractionEnabled": @memory_extraction_enabled,
|
|
529
|
+
"conversationsV1Bridge": @conversations_v1_bridge,
|
|
530
|
+
}.to_json(options)
|
|
531
|
+
end
|
|
532
|
+
end
|
|
533
|
+
|
|
534
|
+
class PatchConfigurationRequestChannelSettingsValue
|
|
535
|
+
# @param [status_timeouts]: [UpdateConfigurationRequestChannelSettingsValueStatusTimeouts]
|
|
536
|
+
# @param [capture_rules]: [Array<UpdateConfigurationRequestChannelSettingsValueCaptureRules>]
|
|
537
|
+
attr_accessor :status_timeouts, :capture_rules
|
|
538
|
+
def initialize(payload)
|
|
539
|
+
@status_timeouts = payload["status_timeouts"]
|
|
540
|
+
@capture_rules = payload["capture_rules"]
|
|
541
|
+
end
|
|
542
|
+
def to_json(options = {})
|
|
543
|
+
{
|
|
544
|
+
"statusTimeouts": @status_timeouts,
|
|
545
|
+
"captureRules": @capture_rules,
|
|
546
|
+
}.to_json(options)
|
|
547
|
+
end
|
|
548
|
+
end
|
|
549
|
+
|
|
550
|
+
class PatchConfigurationRequestConversationsV1Bridge
|
|
551
|
+
# @param [service_id]: [String] The Conversations V1 Service SID (IS prefix). One configuration per V1 Service SID.
|
|
552
|
+
attr_accessor :service_id
|
|
553
|
+
def initialize(payload)
|
|
554
|
+
@service_id = payload["service_id"]
|
|
555
|
+
end
|
|
556
|
+
def to_json(options = {})
|
|
557
|
+
{
|
|
558
|
+
"serviceId": @service_id,
|
|
559
|
+
}.to_json(options)
|
|
560
|
+
end
|
|
561
|
+
end
|
|
562
|
+
|
|
174
563
|
class UpdateConfigurationRequest
|
|
175
564
|
# @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
|
|
176
565
|
# @param [description]: [String] Human-readable description for the configuration.
|
|
@@ -428,6 +817,72 @@ module Twilio
|
|
|
428
817
|
end
|
|
429
818
|
end
|
|
430
819
|
|
|
820
|
+
class PatchConfigurationRequest
|
|
821
|
+
# @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
|
|
822
|
+
# @param [description]: [String] Human-readable description for the configuration.
|
|
823
|
+
# @param [conversation_grouping_type]: [String] Type of Conversation grouping strategy: - `GROUP_BY_PROFILE`: Groups Communications by resolved Profile from the Memory Store. A Profile is looked up or created for `CUSTOMER` Participant types. All Communications from the same Profile are in the same Conversation, regardless of address or channel. - `GROUP_BY_PARTICIPANT_ADDRESSES`: Groups Communications by Participant addresses across all channels. A customer using +18005550100 will be in the same Conversation whether they contact by SMS, WhatsApp, or RCS. - `GROUP_BY_PARTICIPANT_ADDRESSES_AND_CHANNEL_TYPE`: Groups Communications by both Participant addresses AND channel. A customer using +18005550100 by SMS will be in a different Conversation than the same customer by Voice.
|
|
824
|
+
# @param [memory_store_id]: [String] The Memory Store ID for profile resolution.
|
|
825
|
+
# @param [channel_settings]: [Hash<String, PatchConfigurationRequestChannelSettingsValue>] Channel-specific settings to merge onto the existing channelSettings map. A channel key mapped to a value replaces that channel's settings; a channel key explicitly mapped to null removes it; an omitted channel key is left untouched.
|
|
826
|
+
# @param [status_callbacks]: [Array<ConfigurationList.UpdateConfigurationRequestStatusCallbacks>]
|
|
827
|
+
# @param [intelligence_configuration_ids]: [Array<String>] A list of Conversational Intelligence configuration IDs.
|
|
828
|
+
# @param [memory_extraction_enabled]: [Boolean] Whether memory extraction is enabled for conversations under this configuration.
|
|
829
|
+
# @param [conversations_v1_bridge]: [ConfigurationList.PatchConfigurationRequestConversationsV1Bridge]
|
|
830
|
+
attr_accessor :display_name, :description, :conversation_grouping_type, :memory_store_id, :channel_settings, :status_callbacks, :intelligence_configuration_ids, :memory_extraction_enabled, :conversations_v1_bridge
|
|
831
|
+
def initialize(payload)
|
|
832
|
+
@display_name = payload["display_name"]
|
|
833
|
+
@description = payload["description"]
|
|
834
|
+
@conversation_grouping_type = payload["conversation_grouping_type"]
|
|
835
|
+
@memory_store_id = payload["memory_store_id"]
|
|
836
|
+
@channel_settings = payload["channel_settings"]
|
|
837
|
+
@status_callbacks = payload["status_callbacks"]
|
|
838
|
+
@intelligence_configuration_ids = payload["intelligence_configuration_ids"]
|
|
839
|
+
@memory_extraction_enabled = payload["memory_extraction_enabled"]
|
|
840
|
+
@conversations_v1_bridge = payload["conversations_v1_bridge"]
|
|
841
|
+
end
|
|
842
|
+
def to_json(options = {})
|
|
843
|
+
{
|
|
844
|
+
"displayName": @display_name,
|
|
845
|
+
"description": @description,
|
|
846
|
+
"conversationGroupingType": @conversation_grouping_type,
|
|
847
|
+
"memoryStoreId": @memory_store_id,
|
|
848
|
+
"channelSettings": @channel_settings,
|
|
849
|
+
"statusCallbacks": @status_callbacks,
|
|
850
|
+
"intelligenceConfigurationIds": @intelligence_configuration_ids,
|
|
851
|
+
"memoryExtractionEnabled": @memory_extraction_enabled,
|
|
852
|
+
"conversationsV1Bridge": @conversations_v1_bridge,
|
|
853
|
+
}.to_json(options)
|
|
854
|
+
end
|
|
855
|
+
end
|
|
856
|
+
|
|
857
|
+
class PatchConfigurationRequestChannelSettingsValue
|
|
858
|
+
# @param [status_timeouts]: [UpdateConfigurationRequestChannelSettingsValueStatusTimeouts]
|
|
859
|
+
# @param [capture_rules]: [Array<UpdateConfigurationRequestChannelSettingsValueCaptureRules>]
|
|
860
|
+
attr_accessor :status_timeouts, :capture_rules
|
|
861
|
+
def initialize(payload)
|
|
862
|
+
@status_timeouts = payload["status_timeouts"]
|
|
863
|
+
@capture_rules = payload["capture_rules"]
|
|
864
|
+
end
|
|
865
|
+
def to_json(options = {})
|
|
866
|
+
{
|
|
867
|
+
"statusTimeouts": @status_timeouts,
|
|
868
|
+
"captureRules": @capture_rules,
|
|
869
|
+
}.to_json(options)
|
|
870
|
+
end
|
|
871
|
+
end
|
|
872
|
+
|
|
873
|
+
class PatchConfigurationRequestConversationsV1Bridge
|
|
874
|
+
# @param [service_id]: [String] The Conversations V1 Service SID (IS prefix). One configuration per V1 Service SID.
|
|
875
|
+
attr_accessor :service_id
|
|
876
|
+
def initialize(payload)
|
|
877
|
+
@service_id = payload["service_id"]
|
|
878
|
+
end
|
|
879
|
+
def to_json(options = {})
|
|
880
|
+
{
|
|
881
|
+
"serviceId": @service_id,
|
|
882
|
+
}.to_json(options)
|
|
883
|
+
end
|
|
884
|
+
end
|
|
885
|
+
|
|
431
886
|
class UpdateConfigurationRequest
|
|
432
887
|
# @param [display_name]: [String] A human-readable name for the configuration. Limited to 32 characters.
|
|
433
888
|
# @param [description]: [String] Human-readable description for the configuration.
|
|
@@ -841,6 +1296,60 @@ module Twilio
|
|
|
841
1296
|
)
|
|
842
1297
|
end
|
|
843
1298
|
|
|
1299
|
+
##
|
|
1300
|
+
# Patch the ConfigurationInstance
|
|
1301
|
+
# @param [String] idempotency_key Client-generated UUID key to ensure idempotent behavior. Submitting the same key returns the original response without creating a duplicate operation. Keys are scoped to account + region with a 24-hour TTL.
|
|
1302
|
+
# @param [PatchConfigurationRequest] patch_configuration_request The partial configuration update.
|
|
1303
|
+
# @return [ConfigurationInstance] Patched ConfigurationInstance
|
|
1304
|
+
def patch(
|
|
1305
|
+
idempotency_key: :unset,
|
|
1306
|
+
patch_configuration_request: :unset
|
|
1307
|
+
)
|
|
1308
|
+
|
|
1309
|
+
headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
|
|
1310
|
+
headers['Content-Type'] = 'application/json'
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
|
|
1314
|
+
|
|
1315
|
+
payload = @version.patch('PATCH', @uri, headers: headers, data: patch_configuration_request.to_json)
|
|
1316
|
+
ConfigurationInstance.new(
|
|
1317
|
+
@version,
|
|
1318
|
+
payload,
|
|
1319
|
+
id: @solution[:id],
|
|
1320
|
+
)
|
|
1321
|
+
end
|
|
1322
|
+
|
|
1323
|
+
##
|
|
1324
|
+
# Patch the ConfigurationInstanceMetadata
|
|
1325
|
+
# @param [String] idempotency_key Client-generated UUID key to ensure idempotent behavior. Submitting the same key returns the original response without creating a duplicate operation. Keys are scoped to account + region with a 24-hour TTL.
|
|
1326
|
+
# @param [PatchConfigurationRequest] patch_configuration_request The partial configuration update.
|
|
1327
|
+
# @return [ConfigurationInstance] Patchd ConfigurationInstance
|
|
1328
|
+
def patch_with_metadata(
|
|
1329
|
+
idempotency_key: :unset,
|
|
1330
|
+
patch_configuration_request: :unset
|
|
1331
|
+
)
|
|
1332
|
+
|
|
1333
|
+
headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', 'Idempotency-Key' => idempotency_key, })
|
|
1334
|
+
headers['Content-Type'] = 'application/json'
|
|
1335
|
+
|
|
1336
|
+
|
|
1337
|
+
|
|
1338
|
+
|
|
1339
|
+
response = @version.patch_with_metadata('PATCH', @uri, headers: headers, data: patch_configuration_request.to_json)
|
|
1340
|
+
configuration_instance = ConfigurationInstance.new(
|
|
1341
|
+
@version,
|
|
1342
|
+
response.body,
|
|
1343
|
+
id: @solution[:id],
|
|
1344
|
+
)
|
|
1345
|
+
ConfigurationInstanceMetadata.new(
|
|
1346
|
+
@version,
|
|
1347
|
+
configuration_instance,
|
|
1348
|
+
response.headers,
|
|
1349
|
+
response.status_code
|
|
1350
|
+
)
|
|
1351
|
+
end
|
|
1352
|
+
|
|
844
1353
|
##
|
|
845
1354
|
# Update the ConfigurationInstance
|
|
846
1355
|
# @param [String] idempotency_key Client-generated UUID key to ensure idempotent behavior. Submitting the same key returns the original response without creating a duplicate operation. Keys are scoped to account + region with a 24-hour TTL.
|
|
@@ -1209,6 +1718,22 @@ module Twilio
|
|
|
1209
1718
|
context.fetch
|
|
1210
1719
|
end
|
|
1211
1720
|
|
|
1721
|
+
##
|
|
1722
|
+
# Patch the ConfigurationInstance
|
|
1723
|
+
# @param [String] idempotency_key Client-generated UUID key to ensure idempotent behavior. Submitting the same key returns the original response without creating a duplicate operation. Keys are scoped to account + region with a 24-hour TTL.
|
|
1724
|
+
# @param [PatchConfigurationRequest] patch_configuration_request The partial configuration update.
|
|
1725
|
+
# @return [ConfigurationInstance] Patched ConfigurationInstance
|
|
1726
|
+
def patch(
|
|
1727
|
+
idempotency_key: :unset,
|
|
1728
|
+
patch_configuration_request: :unset
|
|
1729
|
+
)
|
|
1730
|
+
|
|
1731
|
+
context.patch(
|
|
1732
|
+
idempotency_key: idempotency_key,
|
|
1733
|
+
patch_configuration_request: patch_configuration_request,
|
|
1734
|
+
)
|
|
1735
|
+
end
|
|
1736
|
+
|
|
1212
1737
|
##
|
|
1213
1738
|
# Update the ConfigurationInstance
|
|
1214
1739
|
# @param [String] idempotency_key Client-generated UUID key to ensure idempotent behavior. Submitting the same key returns the original response without creating a duplicate operation. Keys are scoped to account + region with a 24-hour TTL.
|
|
@@ -197,65 +197,6 @@ module Twilio
|
|
|
197
197
|
end
|
|
198
198
|
end
|
|
199
199
|
|
|
200
|
-
class OperationPageMetadata < PageMetadata
|
|
201
|
-
attr_reader :operation_page
|
|
202
|
-
|
|
203
|
-
def initialize(version, response, solution, limit)
|
|
204
|
-
super(version, response)
|
|
205
|
-
@operation_page = []
|
|
206
|
-
@limit = limit
|
|
207
|
-
key = get_key(response.body)
|
|
208
|
-
records = 0
|
|
209
|
-
while( limit != :unset && records < limit )
|
|
210
|
-
@operation_page << OperationListResponse.new(version, @payload, key, limit - records)
|
|
211
|
-
@payload = self.next_page
|
|
212
|
-
break unless @payload
|
|
213
|
-
records += (@payload.body[key] || []).size
|
|
214
|
-
end
|
|
215
|
-
# Path Solution
|
|
216
|
-
@solution = solution
|
|
217
|
-
end
|
|
218
|
-
|
|
219
|
-
def each
|
|
220
|
-
@operation_page.each do |record|
|
|
221
|
-
yield record
|
|
222
|
-
end
|
|
223
|
-
end
|
|
224
|
-
|
|
225
|
-
def to_s
|
|
226
|
-
'<Twilio::REST::Conversations::V2PageMetadata>';
|
|
227
|
-
end
|
|
228
|
-
end
|
|
229
|
-
class OperationListResponse < InstanceListResource
|
|
230
|
-
|
|
231
|
-
# @param [Array<OperationInstance>] instance
|
|
232
|
-
# @param [Hash{String => Object}] headers
|
|
233
|
-
# @param [Integer] status_code
|
|
234
|
-
def initialize(version, payload, key, limit = :unset)
|
|
235
|
-
data_list = payload.body[key] || []
|
|
236
|
-
if limit != :unset
|
|
237
|
-
data_list = data_list[0, limit]
|
|
238
|
-
end
|
|
239
|
-
@operation = data_list.map do |data|
|
|
240
|
-
OperationInstance.new(version, data)
|
|
241
|
-
end
|
|
242
|
-
@headers = payload.headers
|
|
243
|
-
@status_code = payload.status_code
|
|
244
|
-
end
|
|
245
|
-
|
|
246
|
-
def operation
|
|
247
|
-
@operation
|
|
248
|
-
end
|
|
249
|
-
|
|
250
|
-
def headers
|
|
251
|
-
@headers
|
|
252
|
-
end
|
|
253
|
-
|
|
254
|
-
def status_code
|
|
255
|
-
@status_code
|
|
256
|
-
end
|
|
257
|
-
end
|
|
258
|
-
|
|
259
200
|
class OperationInstance < InstanceResource
|
|
260
201
|
##
|
|
261
202
|
# Initialize the OperationInstance
|
|
@@ -31,17 +31,23 @@ module Twilio
|
|
|
31
31
|
|
|
32
32
|
##
|
|
33
33
|
# @param [String] conversation_id
|
|
34
|
-
# @
|
|
34
|
+
# @param [String] action_id
|
|
35
|
+
# @return [Twilio::REST::Conversations::V2::ActionContext] if action_id was passed.
|
|
35
36
|
# @return [Twilio::REST::Conversations::V2::ActionList]
|
|
36
|
-
def actions(conversation_id=:unset)
|
|
37
|
+
def actions(conversation_id=:unset, action_id=:unset)
|
|
37
38
|
if conversation_id.nil?
|
|
38
39
|
raise ArgumentError, 'conversation_id cannot be nil'
|
|
39
40
|
end
|
|
41
|
+
if action_id.nil?
|
|
42
|
+
raise ArgumentError, 'action_id cannot be nil'
|
|
43
|
+
end
|
|
40
44
|
|
|
41
|
-
if conversation_id == :unset
|
|
45
|
+
if conversation_id == :unset && action_id == :unset
|
|
42
46
|
@actions ||= ActionList.new self
|
|
47
|
+
elsif conversation_id != :unset && action_id == :unset
|
|
48
|
+
ActionList.new(self, conversation_id: conversation_id)
|
|
43
49
|
else
|
|
44
|
-
ActionContext.new(self, conversation_id)
|
|
50
|
+
ActionContext.new(self, conversation_id, action_id)
|
|
45
51
|
end
|
|
46
52
|
end
|
|
47
53
|
##
|