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
|
@@ -6,8 +6,8 @@ module Sentdm
|
|
|
6
6
|
# @!attribute messages
|
|
7
7
|
# The messages on this page.
|
|
8
8
|
#
|
|
9
|
-
# @return [Array<Sentdm::Models::
|
|
10
|
-
optional :messages, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::
|
|
9
|
+
# @return [Array<Sentdm::Models::Message>, nil]
|
|
10
|
+
optional :messages, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Message] }
|
|
11
11
|
|
|
12
12
|
# @!attribute pagination
|
|
13
13
|
# Pagination metadata for list responses
|
|
@@ -18,436 +18,9 @@ module Sentdm
|
|
|
18
18
|
# @!method initialize(messages: nil, pagination: nil)
|
|
19
19
|
# A paginated list of messages — used by both conversation read endpoints.
|
|
20
20
|
#
|
|
21
|
-
# @param messages [Array<Sentdm::Models::
|
|
21
|
+
# @param messages [Array<Sentdm::Models::Message>] The messages on this page.
|
|
22
22
|
#
|
|
23
23
|
# @param pagination [Sentdm::Models::PaginationMeta] Pagination metadata for list responses
|
|
24
|
-
|
|
25
|
-
class Message < Sentdm::Internal::Type::BaseModel
|
|
26
|
-
# @!attribute id
|
|
27
|
-
#
|
|
28
|
-
# @return [String, nil]
|
|
29
|
-
optional :id, String
|
|
30
|
-
|
|
31
|
-
# @!attribute active_contact_price
|
|
32
|
-
#
|
|
33
|
-
# @return [Float, nil]
|
|
34
|
-
optional :active_contact_price, Float, nil?: true
|
|
35
|
-
|
|
36
|
-
# @!attribute channel
|
|
37
|
-
#
|
|
38
|
-
# @return [String, nil]
|
|
39
|
-
optional :channel, String
|
|
40
|
-
|
|
41
|
-
# @!attribute contact_id
|
|
42
|
-
#
|
|
43
|
-
# @return [String, nil]
|
|
44
|
-
optional :contact_id, String
|
|
45
|
-
|
|
46
|
-
# @!attribute created_at
|
|
47
|
-
#
|
|
48
|
-
# @return [Time, nil]
|
|
49
|
-
optional :created_at, Time
|
|
50
|
-
|
|
51
|
-
# @!attribute customer_id
|
|
52
|
-
#
|
|
53
|
-
# @return [String, nil]
|
|
54
|
-
optional :customer_id, String
|
|
55
|
-
|
|
56
|
-
# @!attribute direction
|
|
57
|
-
#
|
|
58
|
-
# @return [String, nil]
|
|
59
|
-
optional :direction, String
|
|
60
|
-
|
|
61
|
-
# @!attribute events
|
|
62
|
-
#
|
|
63
|
-
# @return [Array<Sentdm::Models::ConversationMessagesList::Message::Event>, nil]
|
|
64
|
-
optional :events,
|
|
65
|
-
-> { Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message::Event] },
|
|
66
|
-
nil?: true
|
|
67
|
-
|
|
68
|
-
# @!attribute message_body
|
|
69
|
-
# Structured message body format for database storage. Preserves channel-specific
|
|
70
|
-
# components (header, header media, body, footer, buttons, MMS subject and media).
|
|
71
|
-
#
|
|
72
|
-
# Persisted as the messageBody jsonb column on Messages. Every write path goes
|
|
73
|
-
# through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
|
|
74
|
-
# shape is stable regardless of channel or status. Anything that rebuilds this
|
|
75
|
-
# object field by field — the four IMessageBodyStrategy implementations and
|
|
76
|
-
# MessageUtils.BuildSegmentBody — has to carry every member, or that member is
|
|
77
|
-
# silently dropped on whichever path forgot it.
|
|
78
|
-
#
|
|
79
|
-
# @return [Sentdm::Models::ConversationMessagesList::Message::MessageBody, nil]
|
|
80
|
-
optional :message_body, -> { Sentdm::ConversationMessagesList::Message::MessageBody }, nil?: true
|
|
81
|
-
|
|
82
|
-
# @!attribute phone
|
|
83
|
-
#
|
|
84
|
-
# @return [String, nil]
|
|
85
|
-
optional :phone, String
|
|
86
|
-
|
|
87
|
-
# @!attribute phone_international
|
|
88
|
-
#
|
|
89
|
-
# @return [String, nil]
|
|
90
|
-
optional :phone_international, String
|
|
91
|
-
|
|
92
|
-
# @!attribute price
|
|
93
|
-
#
|
|
94
|
-
# @return [Float, nil]
|
|
95
|
-
optional :price, Float, nil?: true
|
|
96
|
-
|
|
97
|
-
# @!attribute reason
|
|
98
|
-
# A human-readable sentence for reason_code, for example "Insufficient balance".
|
|
99
|
-
# Omitted whenever reason_code is.
|
|
100
|
-
#
|
|
101
|
-
# @return [String, nil]
|
|
102
|
-
optional :reason, String, nil?: true
|
|
103
|
-
|
|
104
|
-
# @!attribute reason_code
|
|
105
|
-
# Why the message is at its current status, as a stable platform code such as
|
|
106
|
-
# DELIVERY_007, BUSINESS_003 or DELIVERY_003. Present when the current status is
|
|
107
|
-
# FAILED, FILTERED or BLOCKED and the lifecycle was loaded; omitted otherwise.
|
|
108
|
-
# Switch on this rather than on reason: the code is stable, the wording may be
|
|
109
|
-
# improved. It is the platform's classification of the outcome, never a carrier or
|
|
110
|
-
# vendor code.
|
|
111
|
-
#
|
|
112
|
-
# @return [String, nil]
|
|
113
|
-
optional :reason_code, String, nil?: true
|
|
114
|
-
|
|
115
|
-
# @!attribute region_code
|
|
116
|
-
#
|
|
117
|
-
# @return [String, nil]
|
|
118
|
-
optional :region_code, String
|
|
119
|
-
|
|
120
|
-
# @!attribute status
|
|
121
|
-
#
|
|
122
|
-
# @return [String, nil]
|
|
123
|
-
optional :status, String
|
|
124
|
-
|
|
125
|
-
# @!attribute template_category
|
|
126
|
-
#
|
|
127
|
-
# @return [String, nil]
|
|
128
|
-
optional :template_category, String, nil?: true
|
|
129
|
-
|
|
130
|
-
# @!attribute template_id
|
|
131
|
-
#
|
|
132
|
-
# @return [String, nil]
|
|
133
|
-
optional :template_id, String, nil?: true
|
|
134
|
-
|
|
135
|
-
# @!attribute template_name
|
|
136
|
-
#
|
|
137
|
-
# @return [String, nil]
|
|
138
|
-
optional :template_name, String, nil?: true
|
|
139
|
-
|
|
140
|
-
# @!method initialize(id: nil, active_contact_price: nil, channel: nil, contact_id: nil, created_at: nil, customer_id: nil, direction: nil, events: nil, message_body: nil, phone: nil, phone_international: nil, price: nil, reason: nil, reason_code: nil, region_code: nil, status: nil, template_category: nil, template_id: nil, template_name: nil)
|
|
141
|
-
# Some parameter documentations has been truncated, see
|
|
142
|
-
# {Sentdm::Models::ConversationMessagesList::Message} for more details.
|
|
143
|
-
#
|
|
144
|
-
# Message response for v3 API — same shape as v2 with snake_case JSON conventions.
|
|
145
|
-
#
|
|
146
|
-
# The shape of a message that was sent immediately: it never has a scheduled_at
|
|
147
|
-
# key. A message that is or was held for a later instant is a
|
|
148
|
-
# ScheduledMessageResponse, and the endpoint decides which of the two to answer
|
|
149
|
-
# with. From always returns this type.
|
|
150
|
-
#
|
|
151
|
-
# @param id [String]
|
|
152
|
-
#
|
|
153
|
-
# @param active_contact_price [Float, nil]
|
|
154
|
-
#
|
|
155
|
-
# @param channel [String]
|
|
156
|
-
#
|
|
157
|
-
# @param contact_id [String]
|
|
158
|
-
#
|
|
159
|
-
# @param created_at [Time]
|
|
160
|
-
#
|
|
161
|
-
# @param customer_id [String]
|
|
162
|
-
#
|
|
163
|
-
# @param direction [String]
|
|
164
|
-
#
|
|
165
|
-
# @param events [Array<Sentdm::Models::ConversationMessagesList::Message::Event>, nil]
|
|
166
|
-
#
|
|
167
|
-
# @param message_body [Sentdm::Models::ConversationMessagesList::Message::MessageBody, nil] Structured message body format for database storage.
|
|
168
|
-
#
|
|
169
|
-
# @param phone [String]
|
|
170
|
-
#
|
|
171
|
-
# @param phone_international [String]
|
|
172
|
-
#
|
|
173
|
-
# @param price [Float, nil]
|
|
174
|
-
#
|
|
175
|
-
# @param reason [String, nil] A human-readable sentence for reason_code, for example "Insufficient balance". O
|
|
176
|
-
#
|
|
177
|
-
# @param reason_code [String, nil] Why the message is at its current status, as a stable platform code such as
|
|
178
|
-
#
|
|
179
|
-
# @param region_code [String]
|
|
180
|
-
#
|
|
181
|
-
# @param status [String]
|
|
182
|
-
#
|
|
183
|
-
# @param template_category [String, nil]
|
|
184
|
-
#
|
|
185
|
-
# @param template_id [String, nil]
|
|
186
|
-
#
|
|
187
|
-
# @param template_name [String, nil]
|
|
188
|
-
|
|
189
|
-
class Event < Sentdm::Internal::Type::BaseModel
|
|
190
|
-
# @!attribute status
|
|
191
|
-
#
|
|
192
|
-
# @return [String]
|
|
193
|
-
required :status, String
|
|
194
|
-
|
|
195
|
-
# @!attribute timestamp
|
|
196
|
-
#
|
|
197
|
-
# @return [Time]
|
|
198
|
-
required :timestamp, Time
|
|
199
|
-
|
|
200
|
-
# @!attribute description
|
|
201
|
-
#
|
|
202
|
-
# @return [String, nil]
|
|
203
|
-
optional :description, String, nil?: true
|
|
204
|
-
|
|
205
|
-
# @!attribute reason
|
|
206
|
-
# A human-readable sentence for reason_code. Omitted whenever reason_code is.
|
|
207
|
-
#
|
|
208
|
-
# @return [String, nil]
|
|
209
|
-
optional :reason, String, nil?: true
|
|
210
|
-
|
|
211
|
-
# @!attribute reason_code
|
|
212
|
-
# Why the message reached this status, as a stable platform code such as
|
|
213
|
-
# DELIVERY_007. Present on FAILED, FILTERED and BLOCKED events; omitted on every
|
|
214
|
-
# status that needs no explanation. Same wire name and vocabulary as on the
|
|
215
|
-
# activities list and the webhook.
|
|
216
|
-
#
|
|
217
|
-
# @return [String, nil]
|
|
218
|
-
optional :reason_code, String, nil?: true
|
|
219
|
-
|
|
220
|
-
# @!method initialize(status:, timestamp:, description: nil, reason: nil, reason_code: nil)
|
|
221
|
-
# Some parameter documentations has been truncated, see
|
|
222
|
-
# {Sentdm::Models::ConversationMessagesList::Message::Event} for more details.
|
|
223
|
-
#
|
|
224
|
-
# Represents a status change event in a message's lifecycle (v3)
|
|
225
|
-
#
|
|
226
|
-
# @param status [String]
|
|
227
|
-
#
|
|
228
|
-
# @param timestamp [Time]
|
|
229
|
-
#
|
|
230
|
-
# @param description [String, nil]
|
|
231
|
-
#
|
|
232
|
-
# @param reason [String, nil] A human-readable sentence for reason_code. Omitted whenever reason_code is.
|
|
233
|
-
#
|
|
234
|
-
# @param reason_code [String, nil] Why the message reached this status, as a stable platform code such as
|
|
235
|
-
# DELIVERY\_
|
|
236
|
-
end
|
|
237
|
-
|
|
238
|
-
# @see Sentdm::Models::ConversationMessagesList::Message#message_body
|
|
239
|
-
class MessageBody < Sentdm::Internal::Type::BaseModel
|
|
240
|
-
# @!attribute buttons
|
|
241
|
-
#
|
|
242
|
-
# @return [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Button>, nil]
|
|
243
|
-
optional :buttons,
|
|
244
|
-
-> {
|
|
245
|
-
Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message::MessageBody::Button]
|
|
246
|
-
},
|
|
247
|
-
nil?: true
|
|
248
|
-
|
|
249
|
-
# @!attribute content
|
|
250
|
-
#
|
|
251
|
-
# @return [String, nil]
|
|
252
|
-
optional :content, String
|
|
253
|
-
|
|
254
|
-
# @!attribute footer
|
|
255
|
-
#
|
|
256
|
-
# @return [String, nil]
|
|
257
|
-
optional :footer, String, nil?: true
|
|
258
|
-
|
|
259
|
-
# @!attribute header
|
|
260
|
-
#
|
|
261
|
-
# @return [String, nil]
|
|
262
|
-
optional :header, String, nil?: true
|
|
263
|
-
|
|
264
|
-
# @!attribute header_media
|
|
265
|
-
# The media asset that rode a message's header, recorded as sent.
|
|
266
|
-
#
|
|
267
|
-
# @return [Sentdm::Models::ConversationMessagesList::Message::MessageBody::HeaderMedia, nil]
|
|
268
|
-
optional :header_media,
|
|
269
|
-
-> { Sentdm::ConversationMessagesList::Message::MessageBody::HeaderMedia },
|
|
270
|
-
api_name: :headerMedia,
|
|
271
|
-
nil?: true
|
|
272
|
-
|
|
273
|
-
# @!attribute media
|
|
274
|
-
# MMS attachments, as the publicly fetchable URLs handed to the carrier. Null on
|
|
275
|
-
# every other channel.
|
|
276
|
-
#
|
|
277
|
-
# Persisted rather than derived because a resend and a curfew release rebuild the
|
|
278
|
-
# send from the stored row — MessageReplayCommandBuilder reads templateId and
|
|
279
|
-
# templateVariables and nothing else — so media that lives only on the original
|
|
280
|
-
# request would silently turn a replayed MMS into a text message.
|
|
281
|
-
#
|
|
282
|
-
# @return [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Media>, nil]
|
|
283
|
-
optional :media,
|
|
284
|
-
-> {
|
|
285
|
-
Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message::MessageBody::Media]
|
|
286
|
-
},
|
|
287
|
-
nil?: true
|
|
288
|
-
|
|
289
|
-
# @!attribute subject
|
|
290
|
-
# MMS subject line. Null on every other channel.
|
|
291
|
-
#
|
|
292
|
-
# @return [String, nil]
|
|
293
|
-
optional :subject, String, nil?: true
|
|
294
|
-
|
|
295
|
-
# @!method initialize(buttons: nil, content: nil, footer: nil, header: nil, header_media: nil, media: nil, subject: nil)
|
|
296
|
-
# Some parameter documentations has been truncated, see
|
|
297
|
-
# {Sentdm::Models::ConversationMessagesList::Message::MessageBody} for more
|
|
298
|
-
# details.
|
|
299
|
-
#
|
|
300
|
-
# Structured message body format for database storage. Preserves channel-specific
|
|
301
|
-
# components (header, header media, body, footer, buttons, MMS subject and media).
|
|
302
|
-
#
|
|
303
|
-
# Persisted as the messageBody jsonb column on Messages. Every write path goes
|
|
304
|
-
# through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
|
|
305
|
-
# shape is stable regardless of channel or status. Anything that rebuilds this
|
|
306
|
-
# object field by field — the four IMessageBodyStrategy implementations and
|
|
307
|
-
# MessageUtils.BuildSegmentBody — has to carry every member, or that member is
|
|
308
|
-
# silently dropped on whichever path forgot it.
|
|
309
|
-
#
|
|
310
|
-
# @param buttons [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Button>, nil]
|
|
311
|
-
#
|
|
312
|
-
# @param content [String]
|
|
313
|
-
#
|
|
314
|
-
# @param footer [String, nil]
|
|
315
|
-
#
|
|
316
|
-
# @param header [String, nil]
|
|
317
|
-
#
|
|
318
|
-
# @param header_media [Sentdm::Models::ConversationMessagesList::Message::MessageBody::HeaderMedia, nil] The media asset that rode a message's header, recorded as sent.
|
|
319
|
-
#
|
|
320
|
-
# @param media [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Media>, nil] MMS attachments, as the publicly fetchable URLs handed to the carrier. Null on e
|
|
321
|
-
#
|
|
322
|
-
# @param subject [String, nil] MMS subject line. Null on every other channel.
|
|
323
|
-
|
|
324
|
-
class Button < Sentdm::Internal::Type::BaseModel
|
|
325
|
-
# @!attribute postback_data
|
|
326
|
-
#
|
|
327
|
-
# @return [String, nil]
|
|
328
|
-
optional :postback_data, String, api_name: :postbackData, nil?: true
|
|
329
|
-
|
|
330
|
-
# @!attribute text
|
|
331
|
-
#
|
|
332
|
-
# @return [String, nil]
|
|
333
|
-
optional :text, String, nil?: true
|
|
334
|
-
|
|
335
|
-
# @!attribute type
|
|
336
|
-
#
|
|
337
|
-
# @return [String, nil]
|
|
338
|
-
optional :type, String
|
|
339
|
-
|
|
340
|
-
# @!attribute value
|
|
341
|
-
#
|
|
342
|
-
# @return [String, nil]
|
|
343
|
-
optional :value, String
|
|
344
|
-
|
|
345
|
-
# @!method initialize(postback_data: nil, text: nil, type: nil, value: nil)
|
|
346
|
-
# @param postback_data [String, nil]
|
|
347
|
-
# @param text [String, nil]
|
|
348
|
-
# @param type [String]
|
|
349
|
-
# @param value [String]
|
|
350
|
-
end
|
|
351
|
-
|
|
352
|
-
# @see Sentdm::Models::ConversationMessagesList::Message::MessageBody#header_media
|
|
353
|
-
class HeaderMedia < Sentdm::Internal::Type::BaseModel
|
|
354
|
-
# @!attribute type
|
|
355
|
-
# "image", "video" or "document" — taken from the header's media variable.
|
|
356
|
-
#
|
|
357
|
-
# @return [String, nil]
|
|
358
|
-
optional :type, String
|
|
359
|
-
|
|
360
|
-
# @!attribute url
|
|
361
|
-
# The https URL the caller supplied for this send. Never the template's stored
|
|
362
|
-
# props.sample, which is Meta's expiring header_handle rather than what was
|
|
363
|
-
# delivered.
|
|
364
|
-
#
|
|
365
|
-
# @return [String, nil]
|
|
366
|
-
optional :url, String
|
|
367
|
-
|
|
368
|
-
# @!method initialize(type: nil, url: nil)
|
|
369
|
-
# Some parameter documentations has been truncated, see
|
|
370
|
-
# {Sentdm::Models::ConversationMessagesList::Message::MessageBody::HeaderMedia}
|
|
371
|
-
# for more details.
|
|
372
|
-
#
|
|
373
|
-
# The media asset that rode a message's header, recorded as sent.
|
|
374
|
-
#
|
|
375
|
-
# @param type [String] "image", "video" or "document" — taken from the header's media variable.
|
|
376
|
-
#
|
|
377
|
-
# @param url [String] The https URL the caller supplied for this send. Never the template's stored
|
|
378
|
-
end
|
|
379
|
-
|
|
380
|
-
class Media < Sentdm::Internal::Type::BaseModel
|
|
381
|
-
# @!attribute media_type
|
|
382
|
-
# One of MmsMediaTypes when the content type is known. Advisory — a reader should
|
|
383
|
-
# trust the fetched object's own Content-Type.
|
|
384
|
-
#
|
|
385
|
-
# @return [String, nil]
|
|
386
|
-
optional :media_type, String, api_name: :mediaType, nil?: true
|
|
387
|
-
|
|
388
|
-
# @!attribute mime_type
|
|
389
|
-
# Content type as the provider declared it. Null when it declared none.
|
|
390
|
-
#
|
|
391
|
-
# @return [String, nil]
|
|
392
|
-
optional :mime_type, String, api_name: :mimeType, nil?: true
|
|
393
|
-
|
|
394
|
-
# @!attribute size_bytes
|
|
395
|
-
# Size as the provider declared it. Never measured here — nothing downloads the
|
|
396
|
-
# file.
|
|
397
|
-
#
|
|
398
|
-
# @return [Integer, nil]
|
|
399
|
-
optional :size_bytes, Integer, api_name: :sizeBytes, nil?: true
|
|
400
|
-
|
|
401
|
-
# @!attribute source_hash_sha256
|
|
402
|
-
# Inbound only: the SHA-256 the provider declared alongside the attachment, when
|
|
403
|
-
# it declared one. Relayed to the customer so they can verify what they fetch
|
|
404
|
-
# matches what the carrier said it sent. It is the only integrity signal available
|
|
405
|
-
# on an attachment nobody here has read.
|
|
406
|
-
#
|
|
407
|
-
# @return [String, nil]
|
|
408
|
-
optional :source_hash_sha256, String, api_name: :sourceHashSha256, nil?: true
|
|
409
|
-
|
|
410
|
-
# @!attribute url
|
|
411
|
-
# Where the file lives. Outbound: the URL the customer gave us and the carrier
|
|
412
|
-
# fetched. Inbound: the URL the carrier hosts it at, relayed unchanged.
|
|
413
|
-
#
|
|
414
|
-
# @return [String, nil]
|
|
415
|
-
optional :url, String, nil?: true
|
|
416
|
-
|
|
417
|
-
# @!method initialize(media_type: nil, mime_type: nil, size_bytes: nil, source_hash_sha256: nil, url: nil)
|
|
418
|
-
# Some parameter documentations has been truncated, see
|
|
419
|
-
# {Sentdm::Models::ConversationMessagesList::Message::MessageBody::Media} for more
|
|
420
|
-
# details.
|
|
421
|
-
#
|
|
422
|
-
# One attachment on a message, in either direction — and in both, a URL somebody
|
|
423
|
-
# else hosts.
|
|
424
|
-
#
|
|
425
|
-
# Outbound: the customer supplied a public URL and we handed it to the carrier.
|
|
426
|
-
# Inbound: the carrier hosts the file and we record where. sent.dm never holds the
|
|
427
|
-
# bytes, so there is no key, no expiry bookkeeping and nothing minted per read —
|
|
428
|
-
# what is stored is what is served.
|
|
429
|
-
#
|
|
430
|
-
# An inbound link expires on the carrier's own schedule and is unauthenticated.
|
|
431
|
-
# That is the customer's to manage, and it is documented where they will see it
|
|
432
|
-
# rather than only here — a recipient who needs an attachment to outlive that
|
|
433
|
-
# window copies it on receipt.
|
|
434
|
-
#
|
|
435
|
-
# Storing a presigned URL is the specific mistake this shape still avoids:
|
|
436
|
-
# M260826130000 and M260826140000 exist because RCS assets were stored as signed
|
|
437
|
-
# URLs and went stale. Nothing here is signed.
|
|
438
|
-
#
|
|
439
|
-
# @param media_type [String, nil] One of MmsMediaTypes when the content type is known. Advisory — a reader should
|
|
440
|
-
#
|
|
441
|
-
# @param mime_type [String, nil] Content type as the provider declared it. Null when it declared none.
|
|
442
|
-
#
|
|
443
|
-
# @param size_bytes [Integer, nil] Size as the provider declared it. Never measured here — nothing downloads the fi
|
|
444
|
-
#
|
|
445
|
-
# @param source_hash_sha256 [String, nil] Inbound only: the SHA-256 the provider declared alongside the attachment, when i
|
|
446
|
-
#
|
|
447
|
-
# @param url [String, nil] Where the file lives. Outbound: the URL the customer gave us and the carrier fet
|
|
448
|
-
end
|
|
449
|
-
end
|
|
450
|
-
end
|
|
451
24
|
end
|
|
452
25
|
end
|
|
453
26
|
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module EntityType
|
|
6
|
+
extend Sentdm::Internal::Type::Enum
|
|
7
|
+
|
|
8
|
+
PRIVATE_PROFIT = :PRIVATE_PROFIT
|
|
9
|
+
PUBLIC_PROFIT = :PUBLIC_PROFIT
|
|
10
|
+
NON_PROFIT = :NON_PROFIT
|
|
11
|
+
SOLE_PROPRIETOR = :SOLE_PROPRIETOR
|
|
12
|
+
GOVERNMENT = :GOVERNMENT
|
|
13
|
+
|
|
14
|
+
# @!method self.values
|
|
15
|
+
# @return [Array<Symbol>]
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class InboundMedia < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
# @!attribute hash_sha256
|
|
7
|
+
# SHA-256 of the file as the carrier declared it, when it declares one. Verify
|
|
8
|
+
# what you download against this — sent.dm never reads the bytes, so it is the
|
|
9
|
+
# only integrity signal available.
|
|
10
|
+
#
|
|
11
|
+
# @return [String, nil]
|
|
12
|
+
optional :hash_sha256, String, nil?: true
|
|
13
|
+
|
|
14
|
+
# @!attribute mime_type
|
|
15
|
+
# Content type as the carrier reported it, for example image/jpeg.
|
|
16
|
+
#
|
|
17
|
+
# @return [String, nil]
|
|
18
|
+
optional :mime_type, String, nil?: true
|
|
19
|
+
|
|
20
|
+
# @!attribute size_bytes
|
|
21
|
+
# Size in bytes as the carrier declared it. Absent when it declared none.
|
|
22
|
+
#
|
|
23
|
+
# @return [Integer, nil]
|
|
24
|
+
optional :size_bytes, Integer, nil?: true
|
|
25
|
+
|
|
26
|
+
# @!attribute url
|
|
27
|
+
# Where the carrier hosts the attachment.
|
|
28
|
+
#
|
|
29
|
+
# This link expires and is not authenticated. sent.dm relays it rather than
|
|
30
|
+
# copying the file, so how long it stays fetchable is the carrier's decision and
|
|
31
|
+
# differs between them — assume days, not months. Anyone holding the URL can fetch
|
|
32
|
+
# it until it lapses. Copy the file on receipt if you need it to outlive that
|
|
33
|
+
# window; do not store this URL as a permanent reference.
|
|
34
|
+
#
|
|
35
|
+
# @return [String, nil]
|
|
36
|
+
optional :url, String, nil?: true
|
|
37
|
+
|
|
38
|
+
# @!method initialize(hash_sha256: nil, mime_type: nil, size_bytes: nil, url: nil)
|
|
39
|
+
# Some parameter documentations has been truncated, see
|
|
40
|
+
# {Sentdm::Models::InboundMedia} for more details.
|
|
41
|
+
#
|
|
42
|
+
# One attachment on an inbound message.
|
|
43
|
+
#
|
|
44
|
+
# @param hash_sha256 [String, nil] SHA-256 of the file as the carrier declared it, when it declares one. Verify wha
|
|
45
|
+
#
|
|
46
|
+
# @param mime_type [String, nil] Content type as the carrier reported it, for example image/jpeg.
|
|
47
|
+
#
|
|
48
|
+
# @param size_bytes [Integer, nil] Size in bytes as the carrier declared it. Absent when it declared none.
|
|
49
|
+
#
|
|
50
|
+
# @param url [String, nil] Where the carrier hosts the attachment.
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -39,10 +39,8 @@ module Sentdm
|
|
|
39
39
|
# lapses the entry remains with whatever the carrier declared about the file but
|
|
40
40
|
# the file is no longer reachable.
|
|
41
41
|
#
|
|
42
|
-
# @return [Array<Sentdm::Models::
|
|
43
|
-
optional :media,
|
|
44
|
-
-> { Sentdm::Internal::Type::ArrayOf[Sentdm::InboundMessageEventPayload::Media] },
|
|
45
|
-
nil?: true
|
|
42
|
+
# @return [Array<Sentdm::Models::InboundMedia>, nil]
|
|
43
|
+
optional :media, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::InboundMedia] }, nil?: true
|
|
46
44
|
|
|
47
45
|
# @!attribute message_id
|
|
48
46
|
# The inbound message.
|
|
@@ -100,7 +98,7 @@ module Sentdm
|
|
|
100
98
|
#
|
|
101
99
|
# @param channel [String] The channel the message arrived on, for example sms or mms.
|
|
102
100
|
#
|
|
103
|
-
# @param media [Array<Sentdm::Models::
|
|
101
|
+
# @param media [Array<Sentdm::Models::InboundMedia>, nil] Attachments the contact sent, present only on channels that carry them (mms toda
|
|
104
102
|
#
|
|
105
103
|
# @param message_id [String] The inbound message.
|
|
106
104
|
#
|
|
@@ -111,54 +109,6 @@ module Sentdm
|
|
|
111
109
|
# @param text [String, nil] The message body. Sent as null when the inbound message carried no text, for
|
|
112
110
|
#
|
|
113
111
|
# @param updated_at [String] When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ). Same value as
|
|
114
|
-
|
|
115
|
-
class Media < Sentdm::Internal::Type::BaseModel
|
|
116
|
-
# @!attribute hash_sha256
|
|
117
|
-
# SHA-256 of the file as the carrier declared it, when it declares one. Verify
|
|
118
|
-
# what you download against this — sent.dm never reads the bytes, so it is the
|
|
119
|
-
# only integrity signal available.
|
|
120
|
-
#
|
|
121
|
-
# @return [String, nil]
|
|
122
|
-
optional :hash_sha256, String, nil?: true
|
|
123
|
-
|
|
124
|
-
# @!attribute mime_type
|
|
125
|
-
# Content type as the carrier reported it, for example image/jpeg.
|
|
126
|
-
#
|
|
127
|
-
# @return [String, nil]
|
|
128
|
-
optional :mime_type, String, nil?: true
|
|
129
|
-
|
|
130
|
-
# @!attribute size_bytes
|
|
131
|
-
# Size in bytes as the carrier declared it. Absent when it declared none.
|
|
132
|
-
#
|
|
133
|
-
# @return [Integer, nil]
|
|
134
|
-
optional :size_bytes, Integer, nil?: true
|
|
135
|
-
|
|
136
|
-
# @!attribute url
|
|
137
|
-
# Where the carrier hosts the attachment.
|
|
138
|
-
#
|
|
139
|
-
# This link expires and is not authenticated. sent.dm relays it rather than
|
|
140
|
-
# copying the file, so how long it stays fetchable is the carrier's decision and
|
|
141
|
-
# differs between them — assume days, not months. Anyone holding the URL can fetch
|
|
142
|
-
# it until it lapses. Copy the file on receipt if you need it to outlive that
|
|
143
|
-
# window; do not store this URL as a permanent reference.
|
|
144
|
-
#
|
|
145
|
-
# @return [String, nil]
|
|
146
|
-
optional :url, String, nil?: true
|
|
147
|
-
|
|
148
|
-
# @!method initialize(hash_sha256: nil, mime_type: nil, size_bytes: nil, url: nil)
|
|
149
|
-
# Some parameter documentations has been truncated, see
|
|
150
|
-
# {Sentdm::Models::InboundMessageEventPayload::Media} for more details.
|
|
151
|
-
#
|
|
152
|
-
# One attachment on an inbound message.
|
|
153
|
-
#
|
|
154
|
-
# @param hash_sha256 [String, nil] SHA-256 of the file as the carrier declared it, when it declares one. Verify wha
|
|
155
|
-
#
|
|
156
|
-
# @param mime_type [String, nil] Content type as the carrier reported it, for example image/jpeg.
|
|
157
|
-
#
|
|
158
|
-
# @param size_bytes [Integer, nil] Size in bytes as the carrier declared it. Absent when it declared none.
|
|
159
|
-
#
|
|
160
|
-
# @param url [String, nil] Where the carrier hosts the attachment.
|
|
161
|
-
end
|
|
162
112
|
end
|
|
163
113
|
end
|
|
164
114
|
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class LinkEvent < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
# @!attribute event
|
|
7
|
+
# The specific event within the family, for example message.delivered,
|
|
8
|
+
# message.received or contact.opt_out. Absent on events that have no subtype, so
|
|
9
|
+
# treat it as optional.
|
|
10
|
+
#
|
|
11
|
+
# @return [String, nil]
|
|
12
|
+
optional :event, String, nil?: true
|
|
13
|
+
|
|
14
|
+
# @!attribute field
|
|
15
|
+
# The event family, for example message, templates or contact. Route on this
|
|
16
|
+
# first, then on event for the specific change.
|
|
17
|
+
#
|
|
18
|
+
# @return [String, nil]
|
|
19
|
+
optional :field, String
|
|
20
|
+
|
|
21
|
+
# @!attribute payload
|
|
22
|
+
# Body of a link event: something happened to a tracked link Sent published on the
|
|
23
|
+
# customer's behalf. A link points either at a URL the customer supplied or at a
|
|
24
|
+
# file Sent hosts for them; LinkKind says which. Delivered when an eligible
|
|
25
|
+
# request is served, or when a published link reaches the end of its life.
|
|
26
|
+
#
|
|
27
|
+
# A click is a request, not a read receipt. link.clicked means the redirect was
|
|
28
|
+
# served; link.downloaded means bytes went out. Neither proves a person saw
|
|
29
|
+
# anything — messaging providers and link scanners fetch URLs on their own, which
|
|
30
|
+
# is what TrafficClass exists to tell apart. Filter on it before reporting a
|
|
31
|
+
# click-through rate; treat likely_human as a hint, never as delivery
|
|
32
|
+
# confirmation.
|
|
33
|
+
#
|
|
34
|
+
# RecordId identifies the link; the X-Webhook-Event-ID header identifies the
|
|
35
|
+
# delivery. One link is hit many times, so those are the two keys a subscriber
|
|
36
|
+
# needs: group by the first, deduplicate on the second — exactly as on every other
|
|
37
|
+
# family. The payload carries no event identifier of its own, for the same reason
|
|
38
|
+
# none of the others do.
|
|
39
|
+
#
|
|
40
|
+
# Nothing here identifies the visitor. No IP address and no visitor token crosses
|
|
41
|
+
# this boundary. Country, Device and Browser are coarse buckets derived at the
|
|
42
|
+
# edge and are absent whenever the request did not supply enough to derive them.
|
|
43
|
+
#
|
|
44
|
+
# @return [Sentdm::Models::LinkEventPayload, nil]
|
|
45
|
+
optional :payload, -> { Sentdm::LinkEventPayload }, nil?: true
|
|
46
|
+
|
|
47
|
+
# @!attribute request_id
|
|
48
|
+
# The event-specific body.
|
|
49
|
+
#
|
|
50
|
+
# @return [String, nil]
|
|
51
|
+
optional :request_id, String, nil?: true
|
|
52
|
+
|
|
53
|
+
# @!attribute timestamp
|
|
54
|
+
# When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
|
|
55
|
+
# time, not the time the underlying change happened. Use the timestamp inside the
|
|
56
|
+
# payload for the latter.
|
|
57
|
+
#
|
|
58
|
+
# @return [String, nil]
|
|
59
|
+
optional :timestamp, String
|
|
60
|
+
|
|
61
|
+
# @!method initialize(event: nil, field: nil, payload: nil, request_id: nil, timestamp: nil)
|
|
62
|
+
# Some parameter documentations has been truncated, see
|
|
63
|
+
# {Sentdm::Models::LinkEvent} for more details.
|
|
64
|
+
#
|
|
65
|
+
# The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
|
|
66
|
+
# this shape and varies only in Payload.
|
|
67
|
+
#
|
|
68
|
+
# @param event [String, nil] The specific event within the family, for example message.delivered,
|
|
69
|
+
#
|
|
70
|
+
# @param field [String] The event family, for example message, templates or contact. Route on
|
|
71
|
+
#
|
|
72
|
+
# @param payload [Sentdm::Models::LinkEventPayload, nil] Body of a link event: something happened to a tracked link Sent published on the
|
|
73
|
+
#
|
|
74
|
+
# @param request_id [String, nil] The event-specific body.
|
|
75
|
+
#
|
|
76
|
+
# @param timestamp [String] When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|