sentdm 0.45.0 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +11 -11
- data/lib/sentdm/client.rb +66 -0
- data/lib/sentdm/internal/sender_profiles_page.rb +140 -0
- data/lib/sentdm/internal/type/enum.rb +11 -11
- data/lib/sentdm/models/account.rb +173 -0
- data/lib/sentdm/models/account_channels.rb +39 -0
- data/lib/sentdm/models/account_profile.rb +86 -0
- data/lib/sentdm/models/account_rcs_channel.rb +26 -0
- data/lib/sentdm/models/account_sms_channel.rb +26 -0
- data/lib/sentdm/models/account_whatsapp_channel.rb +35 -0
- data/lib/sentdm/models/api_response_of_account.rb +48 -0
- data/lib/sentdm/models/api_response_of_cancelled_message.rb +43 -0
- data/lib/sentdm/models/api_response_of_channels_state.rb +48 -0
- data/lib/sentdm/models/api_response_of_compliance_requirements.rb +47 -0
- data/lib/sentdm/models/api_response_of_contacts_list.rb +42 -0
- data/lib/sentdm/models/api_response_of_message.rb +51 -0
- data/lib/sentdm/models/api_response_of_message_activities.rb +43 -0
- data/lib/sentdm/models/api_response_of_number_lookup_result.rb +43 -0
- data/lib/sentdm/models/api_response_of_profile_completion_accepted.rb +47 -0
- data/lib/sentdm/models/api_response_of_profile_completion_result.rb +47 -0
- data/lib/sentdm/models/api_response_of_profiles_list.rb +43 -0
- data/lib/sentdm/models/api_response_of_sender_profile.rb +54 -0
- data/lib/sentdm/models/api_response_of_sender_profiles_list.rb +42 -0
- data/lib/sentdm/models/api_response_of_templates_list.rb +42 -0
- data/lib/sentdm/models/api_response_of_users_list.rb +43 -0
- data/lib/sentdm/models/api_response_of_webhook_event_types_list.rb +43 -0
- data/lib/sentdm/models/api_response_of_webhook_events_list.rb +42 -0
- data/lib/sentdm/models/{webhook_rotate_secret_response.rb → api_response_of_webhook_secret.rb} +4 -17
- data/lib/sentdm/models/{webhook_test_response.rb → api_response_of_webhook_test.rb} +4 -23
- data/lib/sentdm/models/api_response_of_webhooks_list.rb +42 -0
- data/lib/sentdm/models/billing_contact.rb +35 -0
- data/lib/sentdm/models/brand_business.rb +96 -0
- data/lib/sentdm/models/brand_business_info.rb +3 -20
- data/lib/sentdm/models/brand_compliance.rb +75 -0
- data/lib/sentdm/models/brand_contact.rb +56 -0
- data/lib/sentdm/models/brand_with_kyc.rb +129 -0
- data/lib/sentdm/models/cancelled_message.rb +28 -0
- data/lib/sentdm/models/channel_event_payload.rb +3 -114
- data/lib/sentdm/models/channel_list_params.rb +20 -0
- data/lib/sentdm/models/channel_score.rb +35 -0
- data/lib/sentdm/models/channels/api_response_of_list_of_sms_market.rb +45 -0
- data/lib/sentdm/models/channels/api_response_of_rcs_agent.rb +60 -0
- data/lib/sentdm/models/channels/api_response_of_sms_market.rb +54 -0
- data/lib/sentdm/models/channels/api_response_of_whatsapp_channel.rb +47 -0
- data/lib/sentdm/models/channels/market_compliance.rb +409 -0
- data/lib/sentdm/models/channels/rc_create_params.rb +260 -0
- data/lib/sentdm/models/channels/rcs_address.rb +43 -0
- data/lib/sentdm/models/channels/rcs_agent.rb +278 -0
- data/lib/sentdm/models/channels/sms_create_params.rb +173 -0
- data/lib/sentdm/models/channels/sms_list_params.rb +22 -0
- data/lib/sentdm/models/channels/sms_market.rb +158 -0
- data/lib/sentdm/models/channels/sms_number.rb +41 -0
- data/lib/sentdm/models/channels/sms_number_request.rb +33 -0
- data/lib/sentdm/models/channels/sms_retrieve_params.rb +34 -0
- data/lib/sentdm/models/channels/sms_update_params.rb +64 -0
- data/lib/sentdm/models/channels/supplied_compliance.rb +89 -0
- data/lib/sentdm/models/channels/supplied_document.rb +35 -0
- data/lib/sentdm/models/channels/whatsapp_channel.rb +109 -0
- data/lib/sentdm/models/channels/whatsapp_create_params.rb +65 -0
- data/lib/sentdm/models/channels_state.rb +89 -0
- data/lib/sentdm/models/compliance_attachment_template.rb +36 -0
- data/lib/sentdm/models/compliance_requirement.rb +112 -0
- data/lib/sentdm/models/compliance_requirements.rb +98 -0
- data/lib/sentdm/models/compliance_retrieve_requirements_params.rb +52 -0
- data/lib/sentdm/models/compliance_setup_step.rb +78 -0
- data/lib/sentdm/models/contact_message_summary.rb +3 -34
- data/lib/sentdm/models/contacts_list.rb +26 -0
- data/lib/sentdm/models/conversation_messages_list.rb +3 -430
- data/lib/sentdm/models/entity_type.rb +18 -0
- data/lib/sentdm/models/inbound_media.rb +53 -0
- data/lib/sentdm/models/inbound_message_event_payload.rb +3 -53
- data/lib/sentdm/models/link_event.rb +79 -0
- data/lib/sentdm/models/link_event_payload.rb +211 -0
- data/lib/sentdm/models/message.rb +168 -0
- data/lib/sentdm/models/message_activities.rb +34 -0
- data/lib/sentdm/models/message_activity.rb +105 -0
- data/lib/sentdm/models/message_body.rb +79 -0
- data/lib/sentdm/models/message_button.rb +33 -0
- data/lib/sentdm/models/message_cancel_params.rb +32 -0
- data/lib/sentdm/models/message_channel_options.rb +43 -0
- data/lib/sentdm/models/message_header_media.rb +31 -0
- data/lib/sentdm/models/message_media.rb +74 -0
- data/lib/sentdm/models/message_recipient.rb +46 -0
- data/lib/sentdm/models/message_send_params.rb +6 -90
- data/lib/sentdm/models/message_send_response.rb +3 -95
- data/lib/sentdm/models/message_send_result.rb +55 -0
- data/lib/sentdm/models/message_status_event.rb +54 -0
- data/lib/sentdm/models/mms_market.rb +48 -0
- data/lib/sentdm/models/number_lookup_result.rb +63 -0
- data/lib/sentdm/models/pagination_cursors.rb +27 -0
- data/lib/sentdm/models/pagination_meta.rb +3 -27
- data/lib/sentdm/models/profile_completion_accepted.rb +20 -0
- data/lib/sentdm/models/profile_completion_result.rb +31 -0
- data/lib/sentdm/models/profile_detail.rb +6 -408
- data/lib/sentdm/models/profiles/brand_campaign.rb +3 -15
- data/lib/sentdm/models/profiles_list.rb +26 -0
- data/lib/sentdm/models/sender_profile.rb +138 -0
- data/lib/sentdm/models/sender_profile_billing.rb +21 -0
- data/lib/sentdm/models/sender_profile_billing_request.rb +33 -0
- data/lib/sentdm/models/sender_profile_channels.rb +90 -0
- data/lib/sentdm/models/sender_profile_create_params.rb +116 -0
- data/lib/sentdm/models/sender_profile_delete_params.rb +20 -0
- data/lib/sentdm/models/sender_profile_list_params.rb +30 -0
- data/lib/sentdm/models/sender_profile_rcs.rb +209 -0
- data/lib/sentdm/models/sender_profile_retrieve_params.rb +20 -0
- data/lib/sentdm/models/sender_profile_sms.rb +106 -0
- data/lib/sentdm/models/sender_profile_update_params.rb +71 -0
- data/lib/sentdm/models/sender_profile_whatsapp.rb +61 -0
- data/lib/sentdm/models/sender_profiles_list.rb +26 -0
- data/lib/sentdm/models/tcr_brand_identity_status.rb +17 -0
- data/lib/sentdm/models/tcr_brand_status.rb +16 -0
- data/lib/sentdm/models/tcr_campaign_status.rb +16 -0
- data/lib/sentdm/models/template_body.rb +3 -70
- data/lib/sentdm/models/template_header.rb +3 -37
- data/lib/sentdm/models/template_header_location.rb +38 -0
- data/lib/sentdm/models/template_media_item.rb +34 -0
- data/lib/sentdm/models/template_mms_body_content.rb +49 -0
- data/lib/sentdm/models/template_ref.rb +51 -0
- data/lib/sentdm/models/template_variable.rb +3 -64
- data/lib/sentdm/models/template_variable_props.rb +65 -0
- data/lib/sentdm/models/templates_list.rb +26 -0
- data/lib/sentdm/models/users_list.rb +26 -0
- data/lib/sentdm/models/voice/call.rb +3 -54
- data/lib/sentdm/models/voice/call_leg.rb +58 -0
- data/lib/sentdm/models/webhook_create_params.rb +3 -25
- data/lib/sentdm/models/webhook_delivery.rb +160 -0
- data/lib/sentdm/models/webhook_event_types_list.rb +26 -0
- data/lib/sentdm/models/webhook_events_list.rb +26 -0
- data/lib/sentdm/models/webhook_response.rb +3 -28
- data/lib/sentdm/models/webhook_secret.rb +15 -0
- data/lib/sentdm/models/webhook_sender_profile.rb +29 -0
- data/lib/sentdm/models/webhook_sender_profile_config.rb +27 -0
- data/lib/sentdm/models/webhook_test.rb +21 -0
- data/lib/sentdm/models/webhook_update_params.rb +3 -25
- data/lib/sentdm/models/webhooks_list.rb +26 -0
- data/lib/sentdm/models.rb +188 -0
- data/lib/sentdm/resources/channels/rcs.rb +177 -0
- data/lib/sentdm/resources/channels/sms.rb +417 -0
- data/lib/sentdm/resources/channels/whatsapp.rb +106 -0
- data/lib/sentdm/resources/channels.rb +162 -0
- data/lib/sentdm/resources/compliance.rb +127 -0
- data/lib/sentdm/resources/conversations.rb +4 -4
- data/lib/sentdm/resources/me.rb +2 -2
- data/lib/sentdm/resources/messages.rb +71 -6
- data/lib/sentdm/resources/numbers.rb +2 -2
- data/lib/sentdm/resources/profiles.rb +4 -4
- data/lib/sentdm/resources/sender_profiles.rb +463 -0
- data/lib/sentdm/resources/users.rb +2 -2
- data/lib/sentdm/resources/webhooks.rb +10 -10
- data/lib/sentdm/version.rb +1 -1
- data/lib/sentdm.rb +120 -11
- data/rbi/sentdm/client.rbi +64 -0
- data/rbi/sentdm/internal/sender_profiles_page.rbi +122 -0
- data/rbi/sentdm/models/account.rbi +242 -0
- data/rbi/sentdm/models/account_channels.rbi +66 -0
- data/rbi/sentdm/models/account_profile.rbi +116 -0
- data/rbi/sentdm/models/account_rcs_channel.rbi +45 -0
- data/rbi/sentdm/models/account_sms_channel.rbi +45 -0
- data/rbi/sentdm/models/account_whatsapp_channel.rbi +58 -0
- data/rbi/sentdm/models/api_response_of_account.rbi +78 -0
- data/rbi/sentdm/models/{webhook_rotate_secret_response.rbi → api_response_of_cancelled_message.rbi} +6 -41
- data/rbi/sentdm/models/api_response_of_channels_state.rbi +78 -0
- data/rbi/sentdm/models/api_response_of_compliance_requirements.rbi +81 -0
- data/rbi/sentdm/models/api_response_of_contacts_list.rbi +74 -0
- data/rbi/sentdm/models/api_response_of_message.rbi +84 -0
- data/rbi/sentdm/models/api_response_of_message_activities.rbi +77 -0
- data/rbi/sentdm/models/{webhook_test_response.rbi → api_response_of_number_lookup_result.rbi} +9 -43
- data/rbi/sentdm/models/api_response_of_profile_completion_accepted.rbi +83 -0
- data/rbi/sentdm/models/{profile_complete_response.rbi → api_response_of_profile_completion_result.rbi} +6 -52
- data/rbi/sentdm/models/api_response_of_profiles_list.rbi +74 -0
- data/rbi/sentdm/models/api_response_of_sender_profile.rbi +90 -0
- data/rbi/sentdm/models/api_response_of_sender_profiles_list.rbi +77 -0
- data/rbi/sentdm/models/api_response_of_templates_list.rbi +74 -0
- data/rbi/sentdm/models/api_response_of_users_list.rbi +74 -0
- data/rbi/sentdm/models/api_response_of_webhook_event_types_list.rbi +79 -0
- data/rbi/sentdm/models/api_response_of_webhook_events_list.rbi +77 -0
- data/rbi/sentdm/models/api_response_of_webhook_secret.rbi +74 -0
- data/rbi/sentdm/models/api_response_of_webhook_test.rbi +74 -0
- data/rbi/sentdm/models/api_response_of_webhooks_list.rbi +74 -0
- data/rbi/sentdm/models/billing_contact.rbi +49 -0
- data/rbi/sentdm/models/brand_business.rbi +115 -0
- data/rbi/sentdm/models/brand_business_info.rbi +3 -49
- data/rbi/sentdm/models/brand_compliance.rbi +108 -0
- data/rbi/sentdm/models/brand_contact.rbi +78 -0
- data/rbi/sentdm/models/brand_with_kyc.rbi +167 -0
- data/rbi/sentdm/models/cancelled_message.rbi +37 -0
- data/rbi/sentdm/models/channel_event_payload.rbi +4 -204
- data/rbi/sentdm/models/channel_list_params.rbi +38 -0
- data/rbi/sentdm/models/channel_score.rbi +56 -0
- data/rbi/sentdm/models/channels/api_response_of_list_of_sms_market.rbi +76 -0
- data/rbi/sentdm/models/channels/api_response_of_rcs_agent.rbi +103 -0
- data/rbi/sentdm/models/channels/api_response_of_sms_market.rbi +93 -0
- data/rbi/sentdm/models/channels/api_response_of_whatsapp_channel.rbi +85 -0
- data/rbi/sentdm/models/channels/market_compliance.rbi +770 -0
- data/rbi/sentdm/models/channels/rc_create_params.rbi +397 -0
- data/rbi/sentdm/models/channels/rcs_address.rbi +62 -0
- data/rbi/sentdm/models/channels/rcs_agent.rbi +320 -0
- data/rbi/sentdm/models/channels/sms_create_params.rbi +291 -0
- data/rbi/sentdm/models/channels/sms_list_params.rbi +40 -0
- data/rbi/sentdm/models/channels/sms_market.rbi +247 -0
- data/rbi/sentdm/models/channels/sms_number.rbi +60 -0
- data/rbi/sentdm/models/channels/sms_number_request.rbi +48 -0
- data/rbi/sentdm/models/channels/sms_retrieve_params.rbi +56 -0
- data/rbi/sentdm/models/channels/sms_update_params.rbi +93 -0
- data/rbi/sentdm/models/channels/supplied_compliance.rbi +140 -0
- data/rbi/sentdm/models/channels/supplied_document.rbi +57 -0
- data/rbi/sentdm/models/channels/whatsapp_channel.rbi +172 -0
- data/rbi/sentdm/models/channels/whatsapp_create_params.rbi +104 -0
- data/rbi/sentdm/models/channels_state.rbi +151 -0
- data/rbi/sentdm/models/compliance_attachment_template.rbi +56 -0
- data/rbi/sentdm/models/compliance_requirement.rbi +149 -0
- data/rbi/sentdm/models/compliance_requirements.rbi +165 -0
- data/rbi/sentdm/models/compliance_retrieve_requirements_params.rbi +79 -0
- data/rbi/sentdm/models/compliance_setup_step.rbi +115 -0
- data/rbi/sentdm/models/contact_message_summary.rbi +4 -69
- data/rbi/sentdm/models/contacts_list.rbi +50 -0
- data/rbi/sentdm/models/conversation_messages_list.rbi +4 -669
- data/rbi/sentdm/models/entity_type.rbi +23 -0
- data/rbi/sentdm/models/inbound_media.rbi +76 -0
- data/rbi/sentdm/models/inbound_message_event_payload.rbi +3 -85
- data/rbi/sentdm/models/link_event.rbi +128 -0
- data/rbi/sentdm/models/link_event_payload.rbi +279 -0
- data/rbi/sentdm/models/message.rbi +214 -0
- data/rbi/sentdm/models/message_activities.rbi +63 -0
- data/rbi/sentdm/models/message_activity.rbi +145 -0
- data/rbi/sentdm/models/message_body.rbi +104 -0
- data/rbi/sentdm/models/message_button.rbi +52 -0
- data/rbi/sentdm/models/message_cancel_params.rbi +59 -0
- data/rbi/sentdm/models/message_channel_options.rbi +65 -0
- data/rbi/sentdm/models/message_header_media.rbi +44 -0
- data/rbi/sentdm/models/message_media.rbi +95 -0
- data/rbi/sentdm/models/message_recipient.rbi +70 -0
- data/rbi/sentdm/models/message_send_params.rbi +7 -155
- data/rbi/sentdm/models/message_send_response.rbi +4 -163
- data/rbi/sentdm/models/message_send_result.rbi +85 -0
- data/rbi/sentdm/models/message_status_event.rbi +70 -0
- data/rbi/sentdm/models/mms_market.rbi +66 -0
- data/rbi/sentdm/models/number_lookup_result.rbi +89 -0
- data/rbi/sentdm/models/pagination_cursors.rbi +42 -0
- data/rbi/sentdm/models/pagination_meta.rbi +4 -43
- data/rbi/sentdm/models/profile_completion_accepted.rbi +33 -0
- data/rbi/sentdm/models/profile_completion_result.rbi +43 -0
- data/rbi/sentdm/models/profile_detail.rbi +8 -621
- data/rbi/sentdm/models/profiles/brand_campaign.rbi +3 -45
- data/rbi/sentdm/models/profiles_list.rbi +50 -0
- data/rbi/sentdm/models/sender_profile.rbi +204 -0
- data/rbi/sentdm/models/sender_profile_billing.rbi +34 -0
- data/rbi/sentdm/models/sender_profile_billing_request.rbi +46 -0
- data/rbi/sentdm/models/sender_profile_channels.rbi +163 -0
- data/rbi/sentdm/models/sender_profile_create_params.rbi +190 -0
- data/rbi/sentdm/models/sender_profile_delete_params.rbi +35 -0
- data/rbi/sentdm/models/sender_profile_list_params.rbi +57 -0
- data/rbi/sentdm/models/sender_profile_rcs.rbi +211 -0
- data/rbi/sentdm/models/sender_profile_retrieve_params.rbi +35 -0
- data/rbi/sentdm/models/sender_profile_sms.rbi +156 -0
- data/rbi/sentdm/models/sender_profile_update_params.rbi +96 -0
- data/rbi/sentdm/models/sender_profile_whatsapp.rbi +83 -0
- data/rbi/sentdm/models/sender_profiles_list.rbi +54 -0
- data/rbi/sentdm/models/tcr_brand_identity_status.rbi +27 -0
- data/rbi/sentdm/models/tcr_brand_status.rbi +20 -0
- data/rbi/sentdm/models/tcr_campaign_status.rbi +23 -0
- data/rbi/sentdm/models/template_body.rbi +6 -114
- data/rbi/sentdm/models/template_header.rbi +4 -53
- data/rbi/sentdm/models/template_header_location.rbi +47 -0
- data/rbi/sentdm/models/template_media_item.rbi +51 -0
- data/rbi/sentdm/models/template_mms_body_content.rbi +73 -0
- data/rbi/sentdm/models/template_ref.rbi +79 -0
- data/rbi/sentdm/models/template_variable.rbi +4 -80
- data/rbi/sentdm/models/template_variable_props.rbi +81 -0
- data/rbi/sentdm/models/templates_list.rbi +50 -0
- data/rbi/sentdm/models/users_list.rbi +50 -0
- data/rbi/sentdm/models/voice/call.rbi +3 -86
- data/rbi/sentdm/models/voice/call_leg.rbi +90 -0
- data/rbi/sentdm/models/webhook_create_params.rbi +4 -49
- data/rbi/sentdm/models/webhook_delivery.rbi +211 -0
- data/rbi/sentdm/models/webhook_event_types_list.rbi +54 -0
- data/rbi/sentdm/models/webhook_events_list.rbi +52 -0
- data/rbi/sentdm/models/webhook_response.rbi +4 -50
- data/rbi/sentdm/models/webhook_secret.rbi +24 -0
- data/rbi/sentdm/models/webhook_sender_profile.rbi +46 -0
- data/rbi/sentdm/models/webhook_sender_profile_config.rbi +44 -0
- data/rbi/sentdm/models/webhook_test.rbi +32 -0
- data/rbi/sentdm/models/webhook_update_params.rbi +4 -49
- data/rbi/sentdm/models/webhooks_list.rbi +50 -0
- data/rbi/sentdm/models.rbi +197 -0
- data/rbi/sentdm/resources/channels/rcs.rbi +208 -0
- data/rbi/sentdm/resources/channels/sms.rbi +437 -0
- data/rbi/sentdm/resources/channels/whatsapp.rbi +108 -0
- data/rbi/sentdm/resources/channels.rbi +149 -0
- data/rbi/sentdm/resources/compliance.rbi +121 -0
- data/rbi/sentdm/resources/conversations.rbi +2 -10
- data/rbi/sentdm/resources/me.rbi +1 -1
- data/rbi/sentdm/resources/messages.rbi +64 -7
- data/rbi/sentdm/resources/numbers.rbi +1 -1
- data/rbi/sentdm/resources/profiles.rbi +2 -2
- data/rbi/sentdm/resources/sender_profiles.rbi +461 -0
- data/rbi/sentdm/resources/users.rbi +1 -1
- data/rbi/sentdm/resources/webhooks.rbi +6 -12
- data/sig/sentdm/client.rbs +4 -0
- data/sig/sentdm/internal/sender_profiles_page.rbs +80 -0
- data/sig/sentdm/models/account.rbs +111 -0
- data/sig/sentdm/models/account_channels.rbs +38 -0
- data/sig/sentdm/models/account_profile.rbs +68 -0
- data/sig/sentdm/models/account_rcs_channel.rbs +17 -0
- data/sig/sentdm/models/account_sms_channel.rbs +17 -0
- data/sig/sentdm/models/account_whatsapp_channel.rbs +28 -0
- data/sig/sentdm/models/api_response_of_account.rbs +39 -0
- data/sig/sentdm/models/api_response_of_cancelled_message.rbs +39 -0
- data/sig/sentdm/models/api_response_of_channels_state.rbs +39 -0
- data/sig/sentdm/models/api_response_of_compliance_requirements.rbs +39 -0
- data/sig/sentdm/models/api_response_of_contacts_list.rbs +39 -0
- data/sig/sentdm/models/api_response_of_message.rbs +39 -0
- data/sig/sentdm/models/api_response_of_message_activities.rbs +39 -0
- data/sig/sentdm/models/api_response_of_number_lookup_result.rbs +39 -0
- data/sig/sentdm/models/api_response_of_profile_completion_accepted.rbs +39 -0
- data/sig/sentdm/models/api_response_of_profile_completion_result.rbs +39 -0
- data/sig/sentdm/models/api_response_of_profiles_list.rbs +39 -0
- data/sig/sentdm/models/api_response_of_sender_profile.rbs +39 -0
- data/sig/sentdm/models/api_response_of_sender_profiles_list.rbs +39 -0
- data/sig/sentdm/models/api_response_of_templates_list.rbs +39 -0
- data/sig/sentdm/models/api_response_of_users_list.rbs +39 -0
- data/sig/sentdm/models/api_response_of_webhook_event_types_list.rbs +39 -0
- data/sig/sentdm/models/api_response_of_webhook_events_list.rbs +39 -0
- data/sig/sentdm/models/api_response_of_webhook_secret.rbs +39 -0
- data/sig/sentdm/models/api_response_of_webhook_test.rbs +39 -0
- data/sig/sentdm/models/api_response_of_webhooks_list.rbs +39 -0
- data/sig/sentdm/models/billing_contact.rbs +30 -0
- data/sig/sentdm/models/brand_business.rbs +70 -0
- data/sig/sentdm/models/brand_business_info.rbs +4 -23
- data/sig/sentdm/models/brand_compliance.rbs +56 -0
- data/sig/sentdm/models/brand_contact.rbs +47 -0
- data/sig/sentdm/models/brand_with_kyc.rbs +93 -0
- data/sig/sentdm/models/cancelled_message.rbs +15 -0
- data/sig/sentdm/models/channel_event_payload.rbs +4 -56
- data/sig/sentdm/models/channel_list_params.rbs +25 -0
- data/sig/sentdm/models/channel_score.rbs +32 -0
- data/sig/sentdm/models/channels/api_response_of_list_of_sms_market.rbs +41 -0
- data/sig/sentdm/models/channels/api_response_of_rcs_agent.rbs +41 -0
- data/sig/sentdm/models/channels/api_response_of_sms_market.rbs +41 -0
- data/sig/sentdm/models/channels/api_response_of_whatsapp_channel.rbs +43 -0
- data/sig/sentdm/models/channels/market_compliance.rbs +338 -0
- data/sig/sentdm/models/channels/rc_create_params.rbs +242 -0
- data/sig/sentdm/models/channels/rcs_address.rbs +42 -0
- data/sig/sentdm/models/channels/rcs_agent.rbs +181 -0
- data/sig/sentdm/models/channels/sms_create_params.rbs +116 -0
- data/sig/sentdm/models/channels/sms_list_params.rbs +27 -0
- data/sig/sentdm/models/channels/sms_market.rbs +85 -0
- data/sig/sentdm/models/channels/sms_number.rbs +28 -0
- data/sig/sentdm/models/channels/sms_number_request.rbs +17 -0
- data/sig/sentdm/models/channels/sms_retrieve_params.rbs +36 -0
- data/sig/sentdm/models/channels/sms_update_params.rbs +63 -0
- data/sig/sentdm/models/channels/supplied_compliance.rbs +32 -0
- data/sig/sentdm/models/channels/supplied_document.rbs +30 -0
- data/sig/sentdm/models/channels/whatsapp_channel.rbs +78 -0
- data/sig/sentdm/models/channels/whatsapp_create_params.rbs +56 -0
- data/sig/sentdm/models/channels_state.rbs +55 -0
- data/sig/sentdm/models/compliance_attachment_template.rbs +26 -0
- data/sig/sentdm/models/compliance_requirement.rbs +76 -0
- data/sig/sentdm/models/compliance_requirements.rbs +66 -0
- data/sig/sentdm/models/compliance_retrieve_requirements_params.rbs +43 -0
- data/sig/sentdm/models/compliance_setup_step.rbs +62 -0
- data/sig/sentdm/models/contact_message_summary.rbs +6 -35
- data/sig/sentdm/models/contacts_list.rbs +31 -0
- data/sig/sentdm/models/conversation_messages_list.rbs +5 -312
- data/sig/sentdm/models/entity_type.rbs +22 -0
- data/sig/sentdm/models/inbound_media.rbs +35 -0
- data/sig/sentdm/models/inbound_message_event_payload.rbs +4 -36
- data/sig/sentdm/models/link_event.rbs +44 -0
- data/sig/sentdm/models/link_event_payload.rbs +106 -0
- data/sig/sentdm/models/message.rbs +130 -0
- data/sig/sentdm/models/message_activities.rbs +38 -0
- data/sig/sentdm/models/message_activity.rbs +66 -0
- data/sig/sentdm/models/message_body.rbs +52 -0
- data/sig/sentdm/models/message_button.rbs +34 -0
- data/sig/sentdm/models/message_cancel_params.rbs +38 -0
- data/sig/sentdm/models/message_channel_options.rbs +26 -0
- data/sig/sentdm/models/message_header_media.rbs +19 -0
- data/sig/sentdm/models/message_media.rbs +40 -0
- data/sig/sentdm/models/message_recipient.rbs +34 -0
- data/sig/sentdm/models/message_send_params.rbs +8 -54
- data/sig/sentdm/models/message_send_response.rbs +4 -77
- data/sig/sentdm/models/message_send_result.rbs +45 -0
- data/sig/sentdm/models/message_status_event.rbs +40 -0
- data/sig/sentdm/models/mms_market.rbs +35 -0
- data/sig/sentdm/models/number_lookup_result.rbs +64 -0
- data/sig/sentdm/models/pagination_cursors.rbs +15 -0
- data/sig/sentdm/models/pagination_meta.rbs +4 -16
- data/sig/sentdm/models/profile_completion_accepted.rbs +15 -0
- data/sig/sentdm/models/profile_completion_result.rbs +19 -0
- data/sig/sentdm/models/profile_detail.rbs +8 -315
- data/sig/sentdm/models/profiles/brand_campaign.rbs +4 -16
- data/sig/sentdm/models/profiles_list.rbs +31 -0
- data/sig/sentdm/models/sender_profile.rbs +76 -0
- data/sig/sentdm/models/sender_profile_billing.rbs +15 -0
- data/sig/sentdm/models/sender_profile_billing_request.rbs +15 -0
- data/sig/sentdm/models/sender_profile_channels.rbs +30 -0
- data/sig/sentdm/models/sender_profile_create_params.rbs +78 -0
- data/sig/sentdm/models/sender_profile_delete_params.rbs +20 -0
- data/sig/sentdm/models/sender_profile_list_params.rbs +32 -0
- data/sig/sentdm/models/sender_profile_rcs.rbs +150 -0
- data/sig/sentdm/models/sender_profile_retrieve_params.rbs +20 -0
- data/sig/sentdm/models/sender_profile_sms.rbs +40 -0
- data/sig/sentdm/models/sender_profile_update_params.rbs +62 -0
- data/sig/sentdm/models/sender_profile_whatsapp.rbs +16 -0
- data/sig/sentdm/models/sender_profiles_list.rbs +31 -0
- data/sig/sentdm/models/tcr_brand_identity_status.rbs +17 -0
- data/sig/sentdm/models/tcr_brand_status.rbs +15 -0
- data/sig/sentdm/models/tcr_campaign_status.rbs +15 -0
- data/sig/sentdm/models/template_body.rbs +4 -43
- data/sig/sentdm/models/template_header.rbs +4 -31
- data/sig/sentdm/models/template_header_location.rbs +30 -0
- data/sig/sentdm/models/template_media_item.rbs +17 -0
- data/sig/sentdm/models/template_mms_body_content.rbs +28 -0
- data/sig/sentdm/models/template_ref.rbs +26 -0
- data/sig/sentdm/models/template_variable.rbs +4 -51
- data/sig/sentdm/models/template_variable_props.rbs +50 -0
- data/sig/sentdm/models/templates_list.rbs +29 -0
- data/sig/sentdm/models/users_list.rbs +31 -0
- data/sig/sentdm/models/voice/call.rbs +4 -49
- data/sig/sentdm/models/voice/call_leg.rbs +50 -0
- data/sig/sentdm/models/webhook_create_params.rbs +4 -28
- data/sig/sentdm/models/webhook_delivery.rbs +99 -0
- data/sig/sentdm/models/webhook_event_types_list.rbs +31 -0
- data/sig/sentdm/models/webhook_events_list.rbs +31 -0
- data/sig/sentdm/models/webhook_response.rbs +4 -28
- data/sig/sentdm/models/webhook_secret.rbs +15 -0
- data/sig/sentdm/models/webhook_sender_profile.rbs +27 -0
- data/sig/sentdm/models/webhook_sender_profile_config.rbs +27 -0
- data/sig/sentdm/models/webhook_test.rbs +19 -0
- data/sig/sentdm/models/webhook_update_params.rbs +4 -28
- data/sig/sentdm/models/webhooks_list.rbs +31 -0
- data/sig/sentdm/models.rbs +188 -0
- data/sig/sentdm/resources/channels/rcs.rbs +41 -0
- data/sig/sentdm/resources/channels/sms.rbs +44 -0
- data/sig/sentdm/resources/channels/whatsapp.rbs +18 -0
- data/sig/sentdm/resources/channels.rbs +11 -0
- data/sig/sentdm/resources/compliance.rbs +15 -0
- data/sig/sentdm/resources/conversations.rbs +2 -2
- data/sig/sentdm/resources/me.rbs +1 -1
- data/sig/sentdm/resources/messages.rbs +12 -4
- data/sig/sentdm/resources/numbers.rbs +1 -1
- data/sig/sentdm/resources/profiles.rbs +2 -2
- data/sig/sentdm/resources/sender_profiles.rbs +44 -0
- data/sig/sentdm/resources/users.rbs +1 -1
- data/sig/sentdm/resources/webhooks.rbs +6 -6
- metadata +362 -35
- data/lib/sentdm/models/me_retrieve_response.rb +0 -409
- data/lib/sentdm/models/message_retrieve_activities_response.rb +0 -175
- data/lib/sentdm/models/message_retrieve_status_response.rb +0 -477
- data/lib/sentdm/models/number_lookup_response.rb +0 -104
- data/lib/sentdm/models/profile_complete_response.rb +0 -74
- data/lib/sentdm/models/profile_list_response.rb +0 -65
- data/lib/sentdm/models/user_list_response.rb +0 -65
- data/lib/sentdm/models/webhook_list_event_types_response.rb +0 -65
- data/lib/sentdm/models/webhook_list_events_response.rb +0 -445
- data/rbi/sentdm/models/me_retrieve_response.rbi +0 -705
- data/rbi/sentdm/models/message_retrieve_activities_response.rbi +0 -319
- data/rbi/sentdm/models/message_retrieve_status_response.rbi +0 -765
- data/rbi/sentdm/models/number_lookup_response.rbi +0 -166
- data/rbi/sentdm/models/profile_list_response.rbi +0 -128
- data/rbi/sentdm/models/user_list_response.rbi +0 -128
- data/rbi/sentdm/models/webhook_list_event_types_response.rbi +0 -142
- data/rbi/sentdm/models/webhook_list_events_response.rbi +0 -647
- data/sig/sentdm/models/me_retrieve_response.rbs +0 -306
- data/sig/sentdm/models/message_retrieve_activities_response.rbs +0 -137
- data/sig/sentdm/models/message_retrieve_status_response.rbs +0 -341
- data/sig/sentdm/models/number_lookup_response.rbs +0 -100
- data/sig/sentdm/models/profile_complete_response.rbs +0 -55
- data/sig/sentdm/models/profile_list_response.rbs +0 -67
- data/sig/sentdm/models/user_list_response.rbs +0 -67
- data/sig/sentdm/models/webhook_list_event_types_response.rbs +0 -67
- data/sig/sentdm/models/webhook_list_events_response.rbs +0 -243
- data/sig/sentdm/models/webhook_rotate_secret_response.rbs +0 -51
- data/sig/sentdm/models/webhook_test_response.rbs +0 -55
|
@@ -9,16 +9,10 @@ module Sentdm
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
# The messages on this page.
|
|
12
|
-
sig
|
|
13
|
-
returns(T.nilable(T::Array[Sentdm::ConversationMessagesList::Message]))
|
|
14
|
-
end
|
|
12
|
+
sig { returns(T.nilable(T::Array[Sentdm::Message])) }
|
|
15
13
|
attr_reader :messages
|
|
16
14
|
|
|
17
|
-
sig
|
|
18
|
-
params(
|
|
19
|
-
messages: T::Array[Sentdm::ConversationMessagesList::Message::OrHash]
|
|
20
|
-
).void
|
|
21
|
-
end
|
|
15
|
+
sig { params(messages: T::Array[Sentdm::Message::OrHash]).void }
|
|
22
16
|
attr_writer :messages
|
|
23
17
|
|
|
24
18
|
# Pagination metadata for list responses
|
|
@@ -31,7 +25,7 @@ module Sentdm
|
|
|
31
25
|
# A paginated list of messages — used by both conversation read endpoints.
|
|
32
26
|
sig do
|
|
33
27
|
params(
|
|
34
|
-
messages: T::Array[Sentdm::
|
|
28
|
+
messages: T::Array[Sentdm::Message::OrHash],
|
|
35
29
|
pagination: Sentdm::PaginationMeta::OrHash
|
|
36
30
|
).returns(T.attached_class)
|
|
37
31
|
end
|
|
@@ -46,672 +40,13 @@ module Sentdm
|
|
|
46
40
|
sig do
|
|
47
41
|
override.returns(
|
|
48
42
|
{
|
|
49
|
-
messages: T::Array[Sentdm::
|
|
43
|
+
messages: T::Array[Sentdm::Message],
|
|
50
44
|
pagination: Sentdm::PaginationMeta
|
|
51
45
|
}
|
|
52
46
|
)
|
|
53
47
|
end
|
|
54
48
|
def to_hash
|
|
55
49
|
end
|
|
56
|
-
|
|
57
|
-
class Message < Sentdm::Internal::Type::BaseModel
|
|
58
|
-
OrHash =
|
|
59
|
-
T.type_alias do
|
|
60
|
-
T.any(
|
|
61
|
-
Sentdm::ConversationMessagesList::Message,
|
|
62
|
-
Sentdm::Internal::AnyHash
|
|
63
|
-
)
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
sig { returns(T.nilable(String)) }
|
|
67
|
-
attr_reader :id
|
|
68
|
-
|
|
69
|
-
sig { params(id: String).void }
|
|
70
|
-
attr_writer :id
|
|
71
|
-
|
|
72
|
-
sig { returns(T.nilable(Float)) }
|
|
73
|
-
attr_accessor :active_contact_price
|
|
74
|
-
|
|
75
|
-
sig { returns(T.nilable(String)) }
|
|
76
|
-
attr_reader :channel
|
|
77
|
-
|
|
78
|
-
sig { params(channel: String).void }
|
|
79
|
-
attr_writer :channel
|
|
80
|
-
|
|
81
|
-
sig { returns(T.nilable(String)) }
|
|
82
|
-
attr_reader :contact_id
|
|
83
|
-
|
|
84
|
-
sig { params(contact_id: String).void }
|
|
85
|
-
attr_writer :contact_id
|
|
86
|
-
|
|
87
|
-
sig { returns(T.nilable(Time)) }
|
|
88
|
-
attr_reader :created_at
|
|
89
|
-
|
|
90
|
-
sig { params(created_at: Time).void }
|
|
91
|
-
attr_writer :created_at
|
|
92
|
-
|
|
93
|
-
sig { returns(T.nilable(String)) }
|
|
94
|
-
attr_reader :customer_id
|
|
95
|
-
|
|
96
|
-
sig { params(customer_id: String).void }
|
|
97
|
-
attr_writer :customer_id
|
|
98
|
-
|
|
99
|
-
sig { returns(T.nilable(String)) }
|
|
100
|
-
attr_reader :direction
|
|
101
|
-
|
|
102
|
-
sig { params(direction: String).void }
|
|
103
|
-
attr_writer :direction
|
|
104
|
-
|
|
105
|
-
sig do
|
|
106
|
-
returns(
|
|
107
|
-
T.nilable(
|
|
108
|
-
T::Array[Sentdm::ConversationMessagesList::Message::Event]
|
|
109
|
-
)
|
|
110
|
-
)
|
|
111
|
-
end
|
|
112
|
-
attr_accessor :events
|
|
113
|
-
|
|
114
|
-
# Structured message body format for database storage. Preserves channel-specific
|
|
115
|
-
# components (header, header media, body, footer, buttons, MMS subject and media).
|
|
116
|
-
#
|
|
117
|
-
# Persisted as the messageBody jsonb column on Messages. Every write path goes
|
|
118
|
-
# through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
|
|
119
|
-
# shape is stable regardless of channel or status. Anything that rebuilds this
|
|
120
|
-
# object field by field — the four IMessageBodyStrategy implementations and
|
|
121
|
-
# MessageUtils.BuildSegmentBody — has to carry every member, or that member is
|
|
122
|
-
# silently dropped on whichever path forgot it.
|
|
123
|
-
sig do
|
|
124
|
-
returns(
|
|
125
|
-
T.nilable(Sentdm::ConversationMessagesList::Message::MessageBody)
|
|
126
|
-
)
|
|
127
|
-
end
|
|
128
|
-
attr_reader :message_body
|
|
129
|
-
|
|
130
|
-
sig do
|
|
131
|
-
params(
|
|
132
|
-
message_body:
|
|
133
|
-
T.nilable(
|
|
134
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::OrHash
|
|
135
|
-
)
|
|
136
|
-
).void
|
|
137
|
-
end
|
|
138
|
-
attr_writer :message_body
|
|
139
|
-
|
|
140
|
-
sig { returns(T.nilable(String)) }
|
|
141
|
-
attr_reader :phone
|
|
142
|
-
|
|
143
|
-
sig { params(phone: String).void }
|
|
144
|
-
attr_writer :phone
|
|
145
|
-
|
|
146
|
-
sig { returns(T.nilable(String)) }
|
|
147
|
-
attr_reader :phone_international
|
|
148
|
-
|
|
149
|
-
sig { params(phone_international: String).void }
|
|
150
|
-
attr_writer :phone_international
|
|
151
|
-
|
|
152
|
-
sig { returns(T.nilable(Float)) }
|
|
153
|
-
attr_accessor :price
|
|
154
|
-
|
|
155
|
-
# A human-readable sentence for reason_code, for example "Insufficient balance".
|
|
156
|
-
# Omitted whenever reason_code is.
|
|
157
|
-
sig { returns(T.nilable(String)) }
|
|
158
|
-
attr_accessor :reason
|
|
159
|
-
|
|
160
|
-
# Why the message is at its current status, as a stable platform code such as
|
|
161
|
-
# DELIVERY_007, BUSINESS_003 or DELIVERY_003. Present when the current status is
|
|
162
|
-
# FAILED, FILTERED or BLOCKED and the lifecycle was loaded; omitted otherwise.
|
|
163
|
-
# Switch on this rather than on reason: the code is stable, the wording may be
|
|
164
|
-
# improved. It is the platform's classification of the outcome, never a carrier or
|
|
165
|
-
# vendor code.
|
|
166
|
-
sig { returns(T.nilable(String)) }
|
|
167
|
-
attr_accessor :reason_code
|
|
168
|
-
|
|
169
|
-
sig { returns(T.nilable(String)) }
|
|
170
|
-
attr_reader :region_code
|
|
171
|
-
|
|
172
|
-
sig { params(region_code: String).void }
|
|
173
|
-
attr_writer :region_code
|
|
174
|
-
|
|
175
|
-
sig { returns(T.nilable(String)) }
|
|
176
|
-
attr_reader :status
|
|
177
|
-
|
|
178
|
-
sig { params(status: String).void }
|
|
179
|
-
attr_writer :status
|
|
180
|
-
|
|
181
|
-
sig { returns(T.nilable(String)) }
|
|
182
|
-
attr_accessor :template_category
|
|
183
|
-
|
|
184
|
-
sig { returns(T.nilable(String)) }
|
|
185
|
-
attr_accessor :template_id
|
|
186
|
-
|
|
187
|
-
sig { returns(T.nilable(String)) }
|
|
188
|
-
attr_accessor :template_name
|
|
189
|
-
|
|
190
|
-
# Message response for v3 API — same shape as v2 with snake_case JSON conventions.
|
|
191
|
-
#
|
|
192
|
-
# The shape of a message that was sent immediately: it never has a scheduled_at
|
|
193
|
-
# key. A message that is or was held for a later instant is a
|
|
194
|
-
# ScheduledMessageResponse, and the endpoint decides which of the two to answer
|
|
195
|
-
# with. From always returns this type.
|
|
196
|
-
sig do
|
|
197
|
-
params(
|
|
198
|
-
id: String,
|
|
199
|
-
active_contact_price: T.nilable(Float),
|
|
200
|
-
channel: String,
|
|
201
|
-
contact_id: String,
|
|
202
|
-
created_at: Time,
|
|
203
|
-
customer_id: String,
|
|
204
|
-
direction: String,
|
|
205
|
-
events:
|
|
206
|
-
T.nilable(
|
|
207
|
-
T::Array[
|
|
208
|
-
Sentdm::ConversationMessagesList::Message::Event::OrHash
|
|
209
|
-
]
|
|
210
|
-
),
|
|
211
|
-
message_body:
|
|
212
|
-
T.nilable(
|
|
213
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::OrHash
|
|
214
|
-
),
|
|
215
|
-
phone: String,
|
|
216
|
-
phone_international: String,
|
|
217
|
-
price: T.nilable(Float),
|
|
218
|
-
reason: T.nilable(String),
|
|
219
|
-
reason_code: T.nilable(String),
|
|
220
|
-
region_code: String,
|
|
221
|
-
status: String,
|
|
222
|
-
template_category: T.nilable(String),
|
|
223
|
-
template_id: T.nilable(String),
|
|
224
|
-
template_name: T.nilable(String)
|
|
225
|
-
).returns(T.attached_class)
|
|
226
|
-
end
|
|
227
|
-
def self.new(
|
|
228
|
-
id: nil,
|
|
229
|
-
active_contact_price: nil,
|
|
230
|
-
channel: nil,
|
|
231
|
-
contact_id: nil,
|
|
232
|
-
created_at: nil,
|
|
233
|
-
customer_id: nil,
|
|
234
|
-
direction: nil,
|
|
235
|
-
events: nil,
|
|
236
|
-
# Structured message body format for database storage. Preserves channel-specific
|
|
237
|
-
# components (header, header media, body, footer, buttons, MMS subject and media).
|
|
238
|
-
#
|
|
239
|
-
# Persisted as the messageBody jsonb column on Messages. Every write path goes
|
|
240
|
-
# through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
|
|
241
|
-
# shape is stable regardless of channel or status. Anything that rebuilds this
|
|
242
|
-
# object field by field — the four IMessageBodyStrategy implementations and
|
|
243
|
-
# MessageUtils.BuildSegmentBody — has to carry every member, or that member is
|
|
244
|
-
# silently dropped on whichever path forgot it.
|
|
245
|
-
message_body: nil,
|
|
246
|
-
phone: nil,
|
|
247
|
-
phone_international: nil,
|
|
248
|
-
price: nil,
|
|
249
|
-
# A human-readable sentence for reason_code, for example "Insufficient balance".
|
|
250
|
-
# Omitted whenever reason_code is.
|
|
251
|
-
reason: nil,
|
|
252
|
-
# Why the message is at its current status, as a stable platform code such as
|
|
253
|
-
# DELIVERY_007, BUSINESS_003 or DELIVERY_003. Present when the current status is
|
|
254
|
-
# FAILED, FILTERED or BLOCKED and the lifecycle was loaded; omitted otherwise.
|
|
255
|
-
# Switch on this rather than on reason: the code is stable, the wording may be
|
|
256
|
-
# improved. It is the platform's classification of the outcome, never a carrier or
|
|
257
|
-
# vendor code.
|
|
258
|
-
reason_code: nil,
|
|
259
|
-
region_code: nil,
|
|
260
|
-
status: nil,
|
|
261
|
-
template_category: nil,
|
|
262
|
-
template_id: nil,
|
|
263
|
-
template_name: nil
|
|
264
|
-
)
|
|
265
|
-
end
|
|
266
|
-
|
|
267
|
-
sig do
|
|
268
|
-
override.returns(
|
|
269
|
-
{
|
|
270
|
-
id: String,
|
|
271
|
-
active_contact_price: T.nilable(Float),
|
|
272
|
-
channel: String,
|
|
273
|
-
contact_id: String,
|
|
274
|
-
created_at: Time,
|
|
275
|
-
customer_id: String,
|
|
276
|
-
direction: String,
|
|
277
|
-
events:
|
|
278
|
-
T.nilable(
|
|
279
|
-
T::Array[Sentdm::ConversationMessagesList::Message::Event]
|
|
280
|
-
),
|
|
281
|
-
message_body:
|
|
282
|
-
T.nilable(
|
|
283
|
-
Sentdm::ConversationMessagesList::Message::MessageBody
|
|
284
|
-
),
|
|
285
|
-
phone: String,
|
|
286
|
-
phone_international: String,
|
|
287
|
-
price: T.nilable(Float),
|
|
288
|
-
reason: T.nilable(String),
|
|
289
|
-
reason_code: T.nilable(String),
|
|
290
|
-
region_code: String,
|
|
291
|
-
status: String,
|
|
292
|
-
template_category: T.nilable(String),
|
|
293
|
-
template_id: T.nilable(String),
|
|
294
|
-
template_name: T.nilable(String)
|
|
295
|
-
}
|
|
296
|
-
)
|
|
297
|
-
end
|
|
298
|
-
def to_hash
|
|
299
|
-
end
|
|
300
|
-
|
|
301
|
-
class Event < Sentdm::Internal::Type::BaseModel
|
|
302
|
-
OrHash =
|
|
303
|
-
T.type_alias do
|
|
304
|
-
T.any(
|
|
305
|
-
Sentdm::ConversationMessagesList::Message::Event,
|
|
306
|
-
Sentdm::Internal::AnyHash
|
|
307
|
-
)
|
|
308
|
-
end
|
|
309
|
-
|
|
310
|
-
sig { returns(String) }
|
|
311
|
-
attr_accessor :status
|
|
312
|
-
|
|
313
|
-
sig { returns(Time) }
|
|
314
|
-
attr_accessor :timestamp
|
|
315
|
-
|
|
316
|
-
sig { returns(T.nilable(String)) }
|
|
317
|
-
attr_accessor :description
|
|
318
|
-
|
|
319
|
-
# A human-readable sentence for reason_code. Omitted whenever reason_code is.
|
|
320
|
-
sig { returns(T.nilable(String)) }
|
|
321
|
-
attr_accessor :reason
|
|
322
|
-
|
|
323
|
-
# Why the message reached this status, as a stable platform code such as
|
|
324
|
-
# DELIVERY_007. Present on FAILED, FILTERED and BLOCKED events; omitted on every
|
|
325
|
-
# status that needs no explanation. Same wire name and vocabulary as on the
|
|
326
|
-
# activities list and the webhook.
|
|
327
|
-
sig { returns(T.nilable(String)) }
|
|
328
|
-
attr_accessor :reason_code
|
|
329
|
-
|
|
330
|
-
# Represents a status change event in a message's lifecycle (v3)
|
|
331
|
-
sig do
|
|
332
|
-
params(
|
|
333
|
-
status: String,
|
|
334
|
-
timestamp: Time,
|
|
335
|
-
description: T.nilable(String),
|
|
336
|
-
reason: T.nilable(String),
|
|
337
|
-
reason_code: T.nilable(String)
|
|
338
|
-
).returns(T.attached_class)
|
|
339
|
-
end
|
|
340
|
-
def self.new(
|
|
341
|
-
status:,
|
|
342
|
-
timestamp:,
|
|
343
|
-
description: nil,
|
|
344
|
-
# A human-readable sentence for reason_code. Omitted whenever reason_code is.
|
|
345
|
-
reason: nil,
|
|
346
|
-
# Why the message reached this status, as a stable platform code such as
|
|
347
|
-
# DELIVERY_007. Present on FAILED, FILTERED and BLOCKED events; omitted on every
|
|
348
|
-
# status that needs no explanation. Same wire name and vocabulary as on the
|
|
349
|
-
# activities list and the webhook.
|
|
350
|
-
reason_code: nil
|
|
351
|
-
)
|
|
352
|
-
end
|
|
353
|
-
|
|
354
|
-
sig do
|
|
355
|
-
override.returns(
|
|
356
|
-
{
|
|
357
|
-
status: String,
|
|
358
|
-
timestamp: Time,
|
|
359
|
-
description: T.nilable(String),
|
|
360
|
-
reason: T.nilable(String),
|
|
361
|
-
reason_code: T.nilable(String)
|
|
362
|
-
}
|
|
363
|
-
)
|
|
364
|
-
end
|
|
365
|
-
def to_hash
|
|
366
|
-
end
|
|
367
|
-
end
|
|
368
|
-
|
|
369
|
-
class MessageBody < Sentdm::Internal::Type::BaseModel
|
|
370
|
-
OrHash =
|
|
371
|
-
T.type_alias do
|
|
372
|
-
T.any(
|
|
373
|
-
Sentdm::ConversationMessagesList::Message::MessageBody,
|
|
374
|
-
Sentdm::Internal::AnyHash
|
|
375
|
-
)
|
|
376
|
-
end
|
|
377
|
-
|
|
378
|
-
sig do
|
|
379
|
-
returns(
|
|
380
|
-
T.nilable(
|
|
381
|
-
T::Array[
|
|
382
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::Button
|
|
383
|
-
]
|
|
384
|
-
)
|
|
385
|
-
)
|
|
386
|
-
end
|
|
387
|
-
attr_accessor :buttons
|
|
388
|
-
|
|
389
|
-
sig { returns(T.nilable(String)) }
|
|
390
|
-
attr_reader :content
|
|
391
|
-
|
|
392
|
-
sig { params(content: String).void }
|
|
393
|
-
attr_writer :content
|
|
394
|
-
|
|
395
|
-
sig { returns(T.nilable(String)) }
|
|
396
|
-
attr_accessor :footer
|
|
397
|
-
|
|
398
|
-
sig { returns(T.nilable(String)) }
|
|
399
|
-
attr_accessor :header
|
|
400
|
-
|
|
401
|
-
# The media asset that rode a message's header, recorded as sent.
|
|
402
|
-
sig do
|
|
403
|
-
returns(
|
|
404
|
-
T.nilable(
|
|
405
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::HeaderMedia
|
|
406
|
-
)
|
|
407
|
-
)
|
|
408
|
-
end
|
|
409
|
-
attr_reader :header_media
|
|
410
|
-
|
|
411
|
-
sig do
|
|
412
|
-
params(
|
|
413
|
-
header_media:
|
|
414
|
-
T.nilable(
|
|
415
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::HeaderMedia::OrHash
|
|
416
|
-
)
|
|
417
|
-
).void
|
|
418
|
-
end
|
|
419
|
-
attr_writer :header_media
|
|
420
|
-
|
|
421
|
-
# MMS attachments, as the publicly fetchable URLs handed to the carrier. Null on
|
|
422
|
-
# every other channel.
|
|
423
|
-
#
|
|
424
|
-
# Persisted rather than derived because a resend and a curfew release rebuild the
|
|
425
|
-
# send from the stored row — MessageReplayCommandBuilder reads templateId and
|
|
426
|
-
# templateVariables and nothing else — so media that lives only on the original
|
|
427
|
-
# request would silently turn a replayed MMS into a text message.
|
|
428
|
-
sig do
|
|
429
|
-
returns(
|
|
430
|
-
T.nilable(
|
|
431
|
-
T::Array[
|
|
432
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::Media
|
|
433
|
-
]
|
|
434
|
-
)
|
|
435
|
-
)
|
|
436
|
-
end
|
|
437
|
-
attr_accessor :media
|
|
438
|
-
|
|
439
|
-
# MMS subject line. Null on every other channel.
|
|
440
|
-
sig { returns(T.nilable(String)) }
|
|
441
|
-
attr_accessor :subject
|
|
442
|
-
|
|
443
|
-
# Structured message body format for database storage. Preserves channel-specific
|
|
444
|
-
# components (header, header media, body, footer, buttons, MMS subject and media).
|
|
445
|
-
#
|
|
446
|
-
# Persisted as the messageBody jsonb column on Messages. Every write path goes
|
|
447
|
-
# through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
|
|
448
|
-
# shape is stable regardless of channel or status. Anything that rebuilds this
|
|
449
|
-
# object field by field — the four IMessageBodyStrategy implementations and
|
|
450
|
-
# MessageUtils.BuildSegmentBody — has to carry every member, or that member is
|
|
451
|
-
# silently dropped on whichever path forgot it.
|
|
452
|
-
sig do
|
|
453
|
-
params(
|
|
454
|
-
buttons:
|
|
455
|
-
T.nilable(
|
|
456
|
-
T::Array[
|
|
457
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::Button::OrHash
|
|
458
|
-
]
|
|
459
|
-
),
|
|
460
|
-
content: String,
|
|
461
|
-
footer: T.nilable(String),
|
|
462
|
-
header: T.nilable(String),
|
|
463
|
-
header_media:
|
|
464
|
-
T.nilable(
|
|
465
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::HeaderMedia::OrHash
|
|
466
|
-
),
|
|
467
|
-
media:
|
|
468
|
-
T.nilable(
|
|
469
|
-
T::Array[
|
|
470
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::Media::OrHash
|
|
471
|
-
]
|
|
472
|
-
),
|
|
473
|
-
subject: T.nilable(String)
|
|
474
|
-
).returns(T.attached_class)
|
|
475
|
-
end
|
|
476
|
-
def self.new(
|
|
477
|
-
buttons: nil,
|
|
478
|
-
content: nil,
|
|
479
|
-
footer: nil,
|
|
480
|
-
header: nil,
|
|
481
|
-
# The media asset that rode a message's header, recorded as sent.
|
|
482
|
-
header_media: nil,
|
|
483
|
-
# MMS attachments, as the publicly fetchable URLs handed to the carrier. Null on
|
|
484
|
-
# every other channel.
|
|
485
|
-
#
|
|
486
|
-
# Persisted rather than derived because a resend and a curfew release rebuild the
|
|
487
|
-
# send from the stored row — MessageReplayCommandBuilder reads templateId and
|
|
488
|
-
# templateVariables and nothing else — so media that lives only on the original
|
|
489
|
-
# request would silently turn a replayed MMS into a text message.
|
|
490
|
-
media: nil,
|
|
491
|
-
# MMS subject line. Null on every other channel.
|
|
492
|
-
subject: nil
|
|
493
|
-
)
|
|
494
|
-
end
|
|
495
|
-
|
|
496
|
-
sig do
|
|
497
|
-
override.returns(
|
|
498
|
-
{
|
|
499
|
-
buttons:
|
|
500
|
-
T.nilable(
|
|
501
|
-
T::Array[
|
|
502
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::Button
|
|
503
|
-
]
|
|
504
|
-
),
|
|
505
|
-
content: String,
|
|
506
|
-
footer: T.nilable(String),
|
|
507
|
-
header: T.nilable(String),
|
|
508
|
-
header_media:
|
|
509
|
-
T.nilable(
|
|
510
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::HeaderMedia
|
|
511
|
-
),
|
|
512
|
-
media:
|
|
513
|
-
T.nilable(
|
|
514
|
-
T::Array[
|
|
515
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::Media
|
|
516
|
-
]
|
|
517
|
-
),
|
|
518
|
-
subject: T.nilable(String)
|
|
519
|
-
}
|
|
520
|
-
)
|
|
521
|
-
end
|
|
522
|
-
def to_hash
|
|
523
|
-
end
|
|
524
|
-
|
|
525
|
-
class Button < Sentdm::Internal::Type::BaseModel
|
|
526
|
-
OrHash =
|
|
527
|
-
T.type_alias do
|
|
528
|
-
T.any(
|
|
529
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::Button,
|
|
530
|
-
Sentdm::Internal::AnyHash
|
|
531
|
-
)
|
|
532
|
-
end
|
|
533
|
-
|
|
534
|
-
sig { returns(T.nilable(String)) }
|
|
535
|
-
attr_accessor :postback_data
|
|
536
|
-
|
|
537
|
-
sig { returns(T.nilable(String)) }
|
|
538
|
-
attr_accessor :text
|
|
539
|
-
|
|
540
|
-
sig { returns(T.nilable(String)) }
|
|
541
|
-
attr_reader :type
|
|
542
|
-
|
|
543
|
-
sig { params(type: String).void }
|
|
544
|
-
attr_writer :type
|
|
545
|
-
|
|
546
|
-
sig { returns(T.nilable(String)) }
|
|
547
|
-
attr_reader :value
|
|
548
|
-
|
|
549
|
-
sig { params(value: String).void }
|
|
550
|
-
attr_writer :value
|
|
551
|
-
|
|
552
|
-
sig do
|
|
553
|
-
params(
|
|
554
|
-
postback_data: T.nilable(String),
|
|
555
|
-
text: T.nilable(String),
|
|
556
|
-
type: String,
|
|
557
|
-
value: String
|
|
558
|
-
).returns(T.attached_class)
|
|
559
|
-
end
|
|
560
|
-
def self.new(postback_data: nil, text: nil, type: nil, value: nil)
|
|
561
|
-
end
|
|
562
|
-
|
|
563
|
-
sig do
|
|
564
|
-
override.returns(
|
|
565
|
-
{
|
|
566
|
-
postback_data: T.nilable(String),
|
|
567
|
-
text: T.nilable(String),
|
|
568
|
-
type: String,
|
|
569
|
-
value: String
|
|
570
|
-
}
|
|
571
|
-
)
|
|
572
|
-
end
|
|
573
|
-
def to_hash
|
|
574
|
-
end
|
|
575
|
-
end
|
|
576
|
-
|
|
577
|
-
class HeaderMedia < Sentdm::Internal::Type::BaseModel
|
|
578
|
-
OrHash =
|
|
579
|
-
T.type_alias do
|
|
580
|
-
T.any(
|
|
581
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::HeaderMedia,
|
|
582
|
-
Sentdm::Internal::AnyHash
|
|
583
|
-
)
|
|
584
|
-
end
|
|
585
|
-
|
|
586
|
-
# "image", "video" or "document" — taken from the header's media variable.
|
|
587
|
-
sig { returns(T.nilable(String)) }
|
|
588
|
-
attr_reader :type
|
|
589
|
-
|
|
590
|
-
sig { params(type: String).void }
|
|
591
|
-
attr_writer :type
|
|
592
|
-
|
|
593
|
-
# The https URL the caller supplied for this send. Never the template's stored
|
|
594
|
-
# props.sample, which is Meta's expiring header_handle rather than what was
|
|
595
|
-
# delivered.
|
|
596
|
-
sig { returns(T.nilable(String)) }
|
|
597
|
-
attr_reader :url
|
|
598
|
-
|
|
599
|
-
sig { params(url: String).void }
|
|
600
|
-
attr_writer :url
|
|
601
|
-
|
|
602
|
-
# The media asset that rode a message's header, recorded as sent.
|
|
603
|
-
sig { params(type: String, url: String).returns(T.attached_class) }
|
|
604
|
-
def self.new(
|
|
605
|
-
# "image", "video" or "document" — taken from the header's media variable.
|
|
606
|
-
type: nil,
|
|
607
|
-
# The https URL the caller supplied for this send. Never the template's stored
|
|
608
|
-
# props.sample, which is Meta's expiring header_handle rather than what was
|
|
609
|
-
# delivered.
|
|
610
|
-
url: nil
|
|
611
|
-
)
|
|
612
|
-
end
|
|
613
|
-
|
|
614
|
-
sig { override.returns({ type: String, url: String }) }
|
|
615
|
-
def to_hash
|
|
616
|
-
end
|
|
617
|
-
end
|
|
618
|
-
|
|
619
|
-
class Media < Sentdm::Internal::Type::BaseModel
|
|
620
|
-
OrHash =
|
|
621
|
-
T.type_alias do
|
|
622
|
-
T.any(
|
|
623
|
-
Sentdm::ConversationMessagesList::Message::MessageBody::Media,
|
|
624
|
-
Sentdm::Internal::AnyHash
|
|
625
|
-
)
|
|
626
|
-
end
|
|
627
|
-
|
|
628
|
-
# One of MmsMediaTypes when the content type is known. Advisory — a reader should
|
|
629
|
-
# trust the fetched object's own Content-Type.
|
|
630
|
-
sig { returns(T.nilable(String)) }
|
|
631
|
-
attr_accessor :media_type
|
|
632
|
-
|
|
633
|
-
# Content type as the provider declared it. Null when it declared none.
|
|
634
|
-
sig { returns(T.nilable(String)) }
|
|
635
|
-
attr_accessor :mime_type
|
|
636
|
-
|
|
637
|
-
# Size as the provider declared it. Never measured here — nothing downloads the
|
|
638
|
-
# file.
|
|
639
|
-
sig { returns(T.nilable(Integer)) }
|
|
640
|
-
attr_accessor :size_bytes
|
|
641
|
-
|
|
642
|
-
# Inbound only: the SHA-256 the provider declared alongside the attachment, when
|
|
643
|
-
# it declared one. Relayed to the customer so they can verify what they fetch
|
|
644
|
-
# matches what the carrier said it sent. It is the only integrity signal available
|
|
645
|
-
# on an attachment nobody here has read.
|
|
646
|
-
sig { returns(T.nilable(String)) }
|
|
647
|
-
attr_accessor :source_hash_sha256
|
|
648
|
-
|
|
649
|
-
# Where the file lives. Outbound: the URL the customer gave us and the carrier
|
|
650
|
-
# fetched. Inbound: the URL the carrier hosts it at, relayed unchanged.
|
|
651
|
-
sig { returns(T.nilable(String)) }
|
|
652
|
-
attr_accessor :url
|
|
653
|
-
|
|
654
|
-
# One attachment on a message, in either direction — and in both, a URL somebody
|
|
655
|
-
# else hosts.
|
|
656
|
-
#
|
|
657
|
-
# Outbound: the customer supplied a public URL and we handed it to the carrier.
|
|
658
|
-
# Inbound: the carrier hosts the file and we record where. sent.dm never holds the
|
|
659
|
-
# bytes, so there is no key, no expiry bookkeeping and nothing minted per read —
|
|
660
|
-
# what is stored is what is served.
|
|
661
|
-
#
|
|
662
|
-
# An inbound link expires on the carrier's own schedule and is unauthenticated.
|
|
663
|
-
# That is the customer's to manage, and it is documented where they will see it
|
|
664
|
-
# rather than only here — a recipient who needs an attachment to outlive that
|
|
665
|
-
# window copies it on receipt.
|
|
666
|
-
#
|
|
667
|
-
# Storing a presigned URL is the specific mistake this shape still avoids:
|
|
668
|
-
# M260826130000 and M260826140000 exist because RCS assets were stored as signed
|
|
669
|
-
# URLs and went stale. Nothing here is signed.
|
|
670
|
-
sig do
|
|
671
|
-
params(
|
|
672
|
-
media_type: T.nilable(String),
|
|
673
|
-
mime_type: T.nilable(String),
|
|
674
|
-
size_bytes: T.nilable(Integer),
|
|
675
|
-
source_hash_sha256: T.nilable(String),
|
|
676
|
-
url: T.nilable(String)
|
|
677
|
-
).returns(T.attached_class)
|
|
678
|
-
end
|
|
679
|
-
def self.new(
|
|
680
|
-
# One of MmsMediaTypes when the content type is known. Advisory — a reader should
|
|
681
|
-
# trust the fetched object's own Content-Type.
|
|
682
|
-
media_type: nil,
|
|
683
|
-
# Content type as the provider declared it. Null when it declared none.
|
|
684
|
-
mime_type: nil,
|
|
685
|
-
# Size as the provider declared it. Never measured here — nothing downloads the
|
|
686
|
-
# file.
|
|
687
|
-
size_bytes: nil,
|
|
688
|
-
# Inbound only: the SHA-256 the provider declared alongside the attachment, when
|
|
689
|
-
# it declared one. Relayed to the customer so they can verify what they fetch
|
|
690
|
-
# matches what the carrier said it sent. It is the only integrity signal available
|
|
691
|
-
# on an attachment nobody here has read.
|
|
692
|
-
source_hash_sha256: nil,
|
|
693
|
-
# Where the file lives. Outbound: the URL the customer gave us and the carrier
|
|
694
|
-
# fetched. Inbound: the URL the carrier hosts it at, relayed unchanged.
|
|
695
|
-
url: nil
|
|
696
|
-
)
|
|
697
|
-
end
|
|
698
|
-
|
|
699
|
-
sig do
|
|
700
|
-
override.returns(
|
|
701
|
-
{
|
|
702
|
-
media_type: T.nilable(String),
|
|
703
|
-
mime_type: T.nilable(String),
|
|
704
|
-
size_bytes: T.nilable(Integer),
|
|
705
|
-
source_hash_sha256: T.nilable(String),
|
|
706
|
-
url: T.nilable(String)
|
|
707
|
-
}
|
|
708
|
-
)
|
|
709
|
-
end
|
|
710
|
-
def to_hash
|
|
711
|
-
end
|
|
712
|
-
end
|
|
713
|
-
end
|
|
714
|
-
end
|
|
715
50
|
end
|
|
716
51
|
end
|
|
717
52
|
end
|