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
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class Message < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias { T.any(Sentdm::Message, Sentdm::Internal::AnyHash) }
|
|
8
|
+
|
|
9
|
+
sig { returns(T.nilable(String)) }
|
|
10
|
+
attr_reader :id
|
|
11
|
+
|
|
12
|
+
sig { params(id: String).void }
|
|
13
|
+
attr_writer :id
|
|
14
|
+
|
|
15
|
+
sig { returns(T.nilable(Float)) }
|
|
16
|
+
attr_accessor :active_contact_price
|
|
17
|
+
|
|
18
|
+
sig { returns(T.nilable(String)) }
|
|
19
|
+
attr_reader :channel
|
|
20
|
+
|
|
21
|
+
sig { params(channel: String).void }
|
|
22
|
+
attr_writer :channel
|
|
23
|
+
|
|
24
|
+
sig { returns(T.nilable(String)) }
|
|
25
|
+
attr_reader :contact_id
|
|
26
|
+
|
|
27
|
+
sig { params(contact_id: String).void }
|
|
28
|
+
attr_writer :contact_id
|
|
29
|
+
|
|
30
|
+
sig { returns(T.nilable(Time)) }
|
|
31
|
+
attr_reader :created_at
|
|
32
|
+
|
|
33
|
+
sig { params(created_at: Time).void }
|
|
34
|
+
attr_writer :created_at
|
|
35
|
+
|
|
36
|
+
sig { returns(T.nilable(String)) }
|
|
37
|
+
attr_reader :customer_id
|
|
38
|
+
|
|
39
|
+
sig { params(customer_id: String).void }
|
|
40
|
+
attr_writer :customer_id
|
|
41
|
+
|
|
42
|
+
sig { returns(T.nilable(String)) }
|
|
43
|
+
attr_reader :direction
|
|
44
|
+
|
|
45
|
+
sig { params(direction: String).void }
|
|
46
|
+
attr_writer :direction
|
|
47
|
+
|
|
48
|
+
sig { returns(T.nilable(T::Array[Sentdm::MessageStatusEvent])) }
|
|
49
|
+
attr_accessor :events
|
|
50
|
+
|
|
51
|
+
# Structured message body format for database storage. Preserves channel-specific
|
|
52
|
+
# components (header, header media, body, footer, buttons, MMS subject and media).
|
|
53
|
+
#
|
|
54
|
+
# Persisted as the messageBody jsonb column on Messages. Every write path goes
|
|
55
|
+
# through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
|
|
56
|
+
# shape is stable regardless of channel or status. Anything that rebuilds this
|
|
57
|
+
# object field by field — the four IMessageBodyStrategy implementations and
|
|
58
|
+
# MessageUtils.BuildSegmentBody — has to carry every member, or that member is
|
|
59
|
+
# silently dropped on whichever path forgot it.
|
|
60
|
+
sig { returns(T.nilable(Sentdm::MessageBody)) }
|
|
61
|
+
attr_reader :message_body
|
|
62
|
+
|
|
63
|
+
sig { params(message_body: T.nilable(Sentdm::MessageBody::OrHash)).void }
|
|
64
|
+
attr_writer :message_body
|
|
65
|
+
|
|
66
|
+
sig { returns(T.nilable(String)) }
|
|
67
|
+
attr_reader :phone
|
|
68
|
+
|
|
69
|
+
sig { params(phone: String).void }
|
|
70
|
+
attr_writer :phone
|
|
71
|
+
|
|
72
|
+
sig { returns(T.nilable(String)) }
|
|
73
|
+
attr_reader :phone_international
|
|
74
|
+
|
|
75
|
+
sig { params(phone_international: String).void }
|
|
76
|
+
attr_writer :phone_international
|
|
77
|
+
|
|
78
|
+
sig { returns(T.nilable(Float)) }
|
|
79
|
+
attr_accessor :price
|
|
80
|
+
|
|
81
|
+
# A human-readable sentence for reason_code, for example "Insufficient balance".
|
|
82
|
+
# Omitted whenever reason_code is.
|
|
83
|
+
sig { returns(T.nilable(String)) }
|
|
84
|
+
attr_accessor :reason
|
|
85
|
+
|
|
86
|
+
# Why the message is at its current status, as a stable platform code such as
|
|
87
|
+
# DELIVERY_007, BUSINESS_003 or DELIVERY_003. Present when the current status is
|
|
88
|
+
# FAILED, FILTERED or BLOCKED and the lifecycle was loaded; omitted otherwise.
|
|
89
|
+
# Switch on this rather than on reason: the code is stable, the wording may be
|
|
90
|
+
# improved. It is the platform's classification of the outcome, never a carrier or
|
|
91
|
+
# vendor code.
|
|
92
|
+
sig { returns(T.nilable(String)) }
|
|
93
|
+
attr_accessor :reason_code
|
|
94
|
+
|
|
95
|
+
sig { returns(T.nilable(String)) }
|
|
96
|
+
attr_reader :region_code
|
|
97
|
+
|
|
98
|
+
sig { params(region_code: String).void }
|
|
99
|
+
attr_writer :region_code
|
|
100
|
+
|
|
101
|
+
sig { returns(T.nilable(String)) }
|
|
102
|
+
attr_reader :status
|
|
103
|
+
|
|
104
|
+
sig { params(status: String).void }
|
|
105
|
+
attr_writer :status
|
|
106
|
+
|
|
107
|
+
sig { returns(T.nilable(String)) }
|
|
108
|
+
attr_accessor :template_category
|
|
109
|
+
|
|
110
|
+
sig { returns(T.nilable(String)) }
|
|
111
|
+
attr_accessor :template_id
|
|
112
|
+
|
|
113
|
+
sig { returns(T.nilable(String)) }
|
|
114
|
+
attr_accessor :template_name
|
|
115
|
+
|
|
116
|
+
# Message response for v3 API — same shape as v2 with snake_case JSON conventions.
|
|
117
|
+
#
|
|
118
|
+
# The shape of a message that was sent immediately: it never has a scheduled_at
|
|
119
|
+
# key. A message that is or was held for a later instant is a
|
|
120
|
+
# ScheduledMessageResponse, and the endpoint decides which of the two to answer
|
|
121
|
+
# with. From always returns this type.
|
|
122
|
+
sig do
|
|
123
|
+
params(
|
|
124
|
+
id: String,
|
|
125
|
+
active_contact_price: T.nilable(Float),
|
|
126
|
+
channel: String,
|
|
127
|
+
contact_id: String,
|
|
128
|
+
created_at: Time,
|
|
129
|
+
customer_id: String,
|
|
130
|
+
direction: String,
|
|
131
|
+
events: T.nilable(T::Array[Sentdm::MessageStatusEvent::OrHash]),
|
|
132
|
+
message_body: T.nilable(Sentdm::MessageBody::OrHash),
|
|
133
|
+
phone: String,
|
|
134
|
+
phone_international: String,
|
|
135
|
+
price: T.nilable(Float),
|
|
136
|
+
reason: T.nilable(String),
|
|
137
|
+
reason_code: T.nilable(String),
|
|
138
|
+
region_code: String,
|
|
139
|
+
status: String,
|
|
140
|
+
template_category: T.nilable(String),
|
|
141
|
+
template_id: T.nilable(String),
|
|
142
|
+
template_name: T.nilable(String)
|
|
143
|
+
).returns(T.attached_class)
|
|
144
|
+
end
|
|
145
|
+
def self.new(
|
|
146
|
+
id: nil,
|
|
147
|
+
active_contact_price: nil,
|
|
148
|
+
channel: nil,
|
|
149
|
+
contact_id: nil,
|
|
150
|
+
created_at: nil,
|
|
151
|
+
customer_id: nil,
|
|
152
|
+
direction: nil,
|
|
153
|
+
events: nil,
|
|
154
|
+
# Structured message body format for database storage. Preserves channel-specific
|
|
155
|
+
# components (header, header media, body, footer, buttons, MMS subject and media).
|
|
156
|
+
#
|
|
157
|
+
# Persisted as the messageBody jsonb column on Messages. Every write path goes
|
|
158
|
+
# through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
|
|
159
|
+
# shape is stable regardless of channel or status. Anything that rebuilds this
|
|
160
|
+
# object field by field — the four IMessageBodyStrategy implementations and
|
|
161
|
+
# MessageUtils.BuildSegmentBody — has to carry every member, or that member is
|
|
162
|
+
# silently dropped on whichever path forgot it.
|
|
163
|
+
message_body: nil,
|
|
164
|
+
phone: nil,
|
|
165
|
+
phone_international: nil,
|
|
166
|
+
price: nil,
|
|
167
|
+
# A human-readable sentence for reason_code, for example "Insufficient balance".
|
|
168
|
+
# Omitted whenever reason_code is.
|
|
169
|
+
reason: nil,
|
|
170
|
+
# Why the message is at its current status, as a stable platform code such as
|
|
171
|
+
# DELIVERY_007, BUSINESS_003 or DELIVERY_003. Present when the current status is
|
|
172
|
+
# FAILED, FILTERED or BLOCKED and the lifecycle was loaded; omitted otherwise.
|
|
173
|
+
# Switch on this rather than on reason: the code is stable, the wording may be
|
|
174
|
+
# improved. It is the platform's classification of the outcome, never a carrier or
|
|
175
|
+
# vendor code.
|
|
176
|
+
reason_code: nil,
|
|
177
|
+
region_code: nil,
|
|
178
|
+
status: nil,
|
|
179
|
+
template_category: nil,
|
|
180
|
+
template_id: nil,
|
|
181
|
+
template_name: nil
|
|
182
|
+
)
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
sig do
|
|
186
|
+
override.returns(
|
|
187
|
+
{
|
|
188
|
+
id: String,
|
|
189
|
+
active_contact_price: T.nilable(Float),
|
|
190
|
+
channel: String,
|
|
191
|
+
contact_id: String,
|
|
192
|
+
created_at: Time,
|
|
193
|
+
customer_id: String,
|
|
194
|
+
direction: String,
|
|
195
|
+
events: T.nilable(T::Array[Sentdm::MessageStatusEvent]),
|
|
196
|
+
message_body: T.nilable(Sentdm::MessageBody),
|
|
197
|
+
phone: String,
|
|
198
|
+
phone_international: String,
|
|
199
|
+
price: T.nilable(Float),
|
|
200
|
+
reason: T.nilable(String),
|
|
201
|
+
reason_code: T.nilable(String),
|
|
202
|
+
region_code: String,
|
|
203
|
+
status: String,
|
|
204
|
+
template_category: T.nilable(String),
|
|
205
|
+
template_id: T.nilable(String),
|
|
206
|
+
template_name: T.nilable(String)
|
|
207
|
+
}
|
|
208
|
+
)
|
|
209
|
+
end
|
|
210
|
+
def to_hash
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageActivities < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::MessageActivities, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# List of activity events ordered by most recent first
|
|
12
|
+
sig { returns(T.nilable(T::Array[Sentdm::MessageActivity])) }
|
|
13
|
+
attr_reader :activities
|
|
14
|
+
|
|
15
|
+
sig { params(activities: T::Array[Sentdm::MessageActivity::OrHash]).void }
|
|
16
|
+
attr_writer :activities
|
|
17
|
+
|
|
18
|
+
# The message ID these activities belong to
|
|
19
|
+
sig { returns(T.nilable(String)) }
|
|
20
|
+
attr_reader :message_id
|
|
21
|
+
|
|
22
|
+
sig { params(message_id: String).void }
|
|
23
|
+
attr_writer :message_id
|
|
24
|
+
|
|
25
|
+
# Pagination metadata for list responses
|
|
26
|
+
sig { returns(T.nilable(Sentdm::PaginationMeta)) }
|
|
27
|
+
attr_reader :pagination
|
|
28
|
+
|
|
29
|
+
sig { params(pagination: Sentdm::PaginationMeta::OrHash).void }
|
|
30
|
+
attr_writer :pagination
|
|
31
|
+
|
|
32
|
+
# Response for GET /messages/{id}/activities
|
|
33
|
+
sig do
|
|
34
|
+
params(
|
|
35
|
+
activities: T::Array[Sentdm::MessageActivity::OrHash],
|
|
36
|
+
message_id: String,
|
|
37
|
+
pagination: Sentdm::PaginationMeta::OrHash
|
|
38
|
+
).returns(T.attached_class)
|
|
39
|
+
end
|
|
40
|
+
def self.new(
|
|
41
|
+
# List of activity events ordered by most recent first
|
|
42
|
+
activities: nil,
|
|
43
|
+
# The message ID these activities belong to
|
|
44
|
+
message_id: nil,
|
|
45
|
+
# Pagination metadata for list responses
|
|
46
|
+
pagination: nil
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
sig do
|
|
51
|
+
override.returns(
|
|
52
|
+
{
|
|
53
|
+
activities: T::Array[Sentdm::MessageActivity],
|
|
54
|
+
message_id: String,
|
|
55
|
+
pagination: Sentdm::PaginationMeta
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
def to_hash
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageActivity < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::MessageActivity, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Active contact markup applied on top of the channel cost, formatted to 4 decimal
|
|
12
|
+
# places.
|
|
13
|
+
sig { returns(T.nilable(String)) }
|
|
14
|
+
attr_accessor :active_contact_price
|
|
15
|
+
|
|
16
|
+
# Human-readable description of the activity
|
|
17
|
+
sig { returns(T.nilable(String)) }
|
|
18
|
+
attr_reader :description
|
|
19
|
+
|
|
20
|
+
sig { params(description: String).void }
|
|
21
|
+
attr_writer :description
|
|
22
|
+
|
|
23
|
+
# Sender phone number for this activity (the customer's sending number for
|
|
24
|
+
# outbound, the external sender for inbound). Null when not reported by the
|
|
25
|
+
# provider.
|
|
26
|
+
sig { returns(T.nilable(String)) }
|
|
27
|
+
attr_accessor :from
|
|
28
|
+
|
|
29
|
+
# Channel cost for this activity (e.g., SMS/WhatsApp provider cost), formatted to
|
|
30
|
+
# 4 decimal places.
|
|
31
|
+
sig { returns(T.nilable(String)) }
|
|
32
|
+
attr_accessor :price
|
|
33
|
+
|
|
34
|
+
# A human-readable sentence for reason_code, for example "The recipient is not
|
|
35
|
+
# registered on this channel" Omitted whenever reason_code is.
|
|
36
|
+
sig { returns(T.nilable(String)) }
|
|
37
|
+
attr_accessor :reason
|
|
38
|
+
|
|
39
|
+
# Why the message reached this status, as a stable platform code such as
|
|
40
|
+
# DELIVERY_007 or BUSINESS_003. Present on FAILED, FILTERED and BLOCKED
|
|
41
|
+
# activities; omitted on every status that needs no explanation. Switch on this
|
|
42
|
+
# rather than on reason: the code is stable, the wording may be improved. Same
|
|
43
|
+
# wire name and vocabulary as on the message and the webhook.
|
|
44
|
+
sig { returns(T.nilable(String)) }
|
|
45
|
+
attr_accessor :reason_code
|
|
46
|
+
|
|
47
|
+
# SCHEDULED and CANCELLED activities only, in UTC: on a SCHEDULED entry, when the
|
|
48
|
+
# held message will be released for delivery; on a CANCELLED entry, the instant
|
|
49
|
+
# that was called off. Same wire name as on the send response, the message and the
|
|
50
|
+
# webhook. Omitted on every other activity. A message that quiet hours moved at
|
|
51
|
+
# release has two SCHEDULED entries, each carrying the instant as it stood at that
|
|
52
|
+
# moment.
|
|
53
|
+
sig { returns(T.nilable(Time)) }
|
|
54
|
+
attr_accessor :scheduled_at
|
|
55
|
+
|
|
56
|
+
# Activity status. Outbound: QUEUED, PROCESSED, ROUTED, SCHEDULED, SENT,
|
|
57
|
+
# DELIVERED, READ, FAILED. Inbound (from contact): RECEIVED (terminal).
|
|
58
|
+
sig { returns(T.nilable(String)) }
|
|
59
|
+
attr_reader :status
|
|
60
|
+
|
|
61
|
+
sig { params(status: String).void }
|
|
62
|
+
attr_writer :status
|
|
63
|
+
|
|
64
|
+
# When this activity occurred
|
|
65
|
+
sig { returns(T.nilable(Time)) }
|
|
66
|
+
attr_reader :timestamp
|
|
67
|
+
|
|
68
|
+
sig { params(timestamp: Time).void }
|
|
69
|
+
attr_writer :timestamp
|
|
70
|
+
|
|
71
|
+
# A single message activity event for v3 API.
|
|
72
|
+
#
|
|
73
|
+
# The activity list mixes statuses, so unlike a message it is one shape rather
|
|
74
|
+
# than two: a SCHEDULED entry carries scheduled_at, and every other entry has no
|
|
75
|
+
# such key.
|
|
76
|
+
sig do
|
|
77
|
+
params(
|
|
78
|
+
active_contact_price: T.nilable(String),
|
|
79
|
+
description: String,
|
|
80
|
+
from: T.nilable(String),
|
|
81
|
+
price: T.nilable(String),
|
|
82
|
+
reason: T.nilable(String),
|
|
83
|
+
reason_code: T.nilable(String),
|
|
84
|
+
scheduled_at: T.nilable(Time),
|
|
85
|
+
status: String,
|
|
86
|
+
timestamp: Time
|
|
87
|
+
).returns(T.attached_class)
|
|
88
|
+
end
|
|
89
|
+
def self.new(
|
|
90
|
+
# Active contact markup applied on top of the channel cost, formatted to 4 decimal
|
|
91
|
+
# places.
|
|
92
|
+
active_contact_price: nil,
|
|
93
|
+
# Human-readable description of the activity
|
|
94
|
+
description: nil,
|
|
95
|
+
# Sender phone number for this activity (the customer's sending number for
|
|
96
|
+
# outbound, the external sender for inbound). Null when not reported by the
|
|
97
|
+
# provider.
|
|
98
|
+
from: nil,
|
|
99
|
+
# Channel cost for this activity (e.g., SMS/WhatsApp provider cost), formatted to
|
|
100
|
+
# 4 decimal places.
|
|
101
|
+
price: nil,
|
|
102
|
+
# A human-readable sentence for reason_code, for example "The recipient is not
|
|
103
|
+
# registered on this channel" Omitted whenever reason_code is.
|
|
104
|
+
reason: nil,
|
|
105
|
+
# Why the message reached this status, as a stable platform code such as
|
|
106
|
+
# DELIVERY_007 or BUSINESS_003. Present on FAILED, FILTERED and BLOCKED
|
|
107
|
+
# activities; omitted on every status that needs no explanation. Switch on this
|
|
108
|
+
# rather than on reason: the code is stable, the wording may be improved. Same
|
|
109
|
+
# wire name and vocabulary as on the message and the webhook.
|
|
110
|
+
reason_code: nil,
|
|
111
|
+
# SCHEDULED and CANCELLED activities only, in UTC: on a SCHEDULED entry, when the
|
|
112
|
+
# held message will be released for delivery; on a CANCELLED entry, the instant
|
|
113
|
+
# that was called off. Same wire name as on the send response, the message and the
|
|
114
|
+
# webhook. Omitted on every other activity. A message that quiet hours moved at
|
|
115
|
+
# release has two SCHEDULED entries, each carrying the instant as it stood at that
|
|
116
|
+
# moment.
|
|
117
|
+
scheduled_at: nil,
|
|
118
|
+
# Activity status. Outbound: QUEUED, PROCESSED, ROUTED, SCHEDULED, SENT,
|
|
119
|
+
# DELIVERED, READ, FAILED. Inbound (from contact): RECEIVED (terminal).
|
|
120
|
+
status: nil,
|
|
121
|
+
# When this activity occurred
|
|
122
|
+
timestamp: nil
|
|
123
|
+
)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
sig do
|
|
127
|
+
override.returns(
|
|
128
|
+
{
|
|
129
|
+
active_contact_price: T.nilable(String),
|
|
130
|
+
description: String,
|
|
131
|
+
from: T.nilable(String),
|
|
132
|
+
price: T.nilable(String),
|
|
133
|
+
reason: T.nilable(String),
|
|
134
|
+
reason_code: T.nilable(String),
|
|
135
|
+
scheduled_at: T.nilable(Time),
|
|
136
|
+
status: String,
|
|
137
|
+
timestamp: Time
|
|
138
|
+
}
|
|
139
|
+
)
|
|
140
|
+
end
|
|
141
|
+
def to_hash
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageBody < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias { T.any(Sentdm::MessageBody, Sentdm::Internal::AnyHash) }
|
|
8
|
+
|
|
9
|
+
sig { returns(T.nilable(T::Array[Sentdm::MessageButton])) }
|
|
10
|
+
attr_accessor :buttons
|
|
11
|
+
|
|
12
|
+
sig { returns(T.nilable(String)) }
|
|
13
|
+
attr_reader :content
|
|
14
|
+
|
|
15
|
+
sig { params(content: String).void }
|
|
16
|
+
attr_writer :content
|
|
17
|
+
|
|
18
|
+
sig { returns(T.nilable(String)) }
|
|
19
|
+
attr_accessor :footer
|
|
20
|
+
|
|
21
|
+
sig { returns(T.nilable(String)) }
|
|
22
|
+
attr_accessor :header
|
|
23
|
+
|
|
24
|
+
# The media asset that rode a message's header, recorded as sent.
|
|
25
|
+
sig { returns(T.nilable(Sentdm::MessageHeaderMedia)) }
|
|
26
|
+
attr_reader :header_media
|
|
27
|
+
|
|
28
|
+
sig do
|
|
29
|
+
params(header_media: T.nilable(Sentdm::MessageHeaderMedia::OrHash)).void
|
|
30
|
+
end
|
|
31
|
+
attr_writer :header_media
|
|
32
|
+
|
|
33
|
+
# MMS attachments, as the publicly fetchable URLs handed to the carrier. Null on
|
|
34
|
+
# every other channel.
|
|
35
|
+
#
|
|
36
|
+
# Persisted rather than derived because a resend and a curfew release rebuild the
|
|
37
|
+
# send from the stored row — MessageReplayCommandBuilder reads templateId and
|
|
38
|
+
# templateVariables and nothing else — so media that lives only on the original
|
|
39
|
+
# request would silently turn a replayed MMS into a text message.
|
|
40
|
+
sig { returns(T.nilable(T::Array[Sentdm::MessageMedia])) }
|
|
41
|
+
attr_accessor :media
|
|
42
|
+
|
|
43
|
+
# MMS subject line. Null on every other channel.
|
|
44
|
+
sig { returns(T.nilable(String)) }
|
|
45
|
+
attr_accessor :subject
|
|
46
|
+
|
|
47
|
+
# Structured message body format for database storage. Preserves channel-specific
|
|
48
|
+
# components (header, header media, body, footer, buttons, MMS subject and media).
|
|
49
|
+
#
|
|
50
|
+
# Persisted as the messageBody jsonb column on Messages. Every write path goes
|
|
51
|
+
# through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
|
|
52
|
+
# shape is stable regardless of channel or status. Anything that rebuilds this
|
|
53
|
+
# object field by field — the four IMessageBodyStrategy implementations and
|
|
54
|
+
# MessageUtils.BuildSegmentBody — has to carry every member, or that member is
|
|
55
|
+
# silently dropped on whichever path forgot it.
|
|
56
|
+
sig do
|
|
57
|
+
params(
|
|
58
|
+
buttons: T.nilable(T::Array[Sentdm::MessageButton::OrHash]),
|
|
59
|
+
content: String,
|
|
60
|
+
footer: T.nilable(String),
|
|
61
|
+
header: T.nilable(String),
|
|
62
|
+
header_media: T.nilable(Sentdm::MessageHeaderMedia::OrHash),
|
|
63
|
+
media: T.nilable(T::Array[Sentdm::MessageMedia::OrHash]),
|
|
64
|
+
subject: T.nilable(String)
|
|
65
|
+
).returns(T.attached_class)
|
|
66
|
+
end
|
|
67
|
+
def self.new(
|
|
68
|
+
buttons: nil,
|
|
69
|
+
content: nil,
|
|
70
|
+
footer: nil,
|
|
71
|
+
header: nil,
|
|
72
|
+
# The media asset that rode a message's header, recorded as sent.
|
|
73
|
+
header_media: nil,
|
|
74
|
+
# MMS attachments, as the publicly fetchable URLs handed to the carrier. Null on
|
|
75
|
+
# every other channel.
|
|
76
|
+
#
|
|
77
|
+
# Persisted rather than derived because a resend and a curfew release rebuild the
|
|
78
|
+
# send from the stored row — MessageReplayCommandBuilder reads templateId and
|
|
79
|
+
# templateVariables and nothing else — so media that lives only on the original
|
|
80
|
+
# request would silently turn a replayed MMS into a text message.
|
|
81
|
+
media: nil,
|
|
82
|
+
# MMS subject line. Null on every other channel.
|
|
83
|
+
subject: nil
|
|
84
|
+
)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
sig do
|
|
88
|
+
override.returns(
|
|
89
|
+
{
|
|
90
|
+
buttons: T.nilable(T::Array[Sentdm::MessageButton]),
|
|
91
|
+
content: String,
|
|
92
|
+
footer: T.nilable(String),
|
|
93
|
+
header: T.nilable(String),
|
|
94
|
+
header_media: T.nilable(Sentdm::MessageHeaderMedia),
|
|
95
|
+
media: T.nilable(T::Array[Sentdm::MessageMedia]),
|
|
96
|
+
subject: T.nilable(String)
|
|
97
|
+
}
|
|
98
|
+
)
|
|
99
|
+
end
|
|
100
|
+
def to_hash
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageButton < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias { T.any(Sentdm::MessageButton, Sentdm::Internal::AnyHash) }
|
|
8
|
+
|
|
9
|
+
sig { returns(T.nilable(String)) }
|
|
10
|
+
attr_accessor :postback_data
|
|
11
|
+
|
|
12
|
+
sig { returns(T.nilable(String)) }
|
|
13
|
+
attr_accessor :text
|
|
14
|
+
|
|
15
|
+
sig { returns(T.nilable(String)) }
|
|
16
|
+
attr_reader :type
|
|
17
|
+
|
|
18
|
+
sig { params(type: String).void }
|
|
19
|
+
attr_writer :type
|
|
20
|
+
|
|
21
|
+
sig { returns(T.nilable(String)) }
|
|
22
|
+
attr_reader :value
|
|
23
|
+
|
|
24
|
+
sig { params(value: String).void }
|
|
25
|
+
attr_writer :value
|
|
26
|
+
|
|
27
|
+
sig do
|
|
28
|
+
params(
|
|
29
|
+
postback_data: T.nilable(String),
|
|
30
|
+
text: T.nilable(String),
|
|
31
|
+
type: String,
|
|
32
|
+
value: String
|
|
33
|
+
).returns(T.attached_class)
|
|
34
|
+
end
|
|
35
|
+
def self.new(postback_data: nil, text: nil, type: nil, value: nil)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
sig do
|
|
39
|
+
override.returns(
|
|
40
|
+
{
|
|
41
|
+
postback_data: T.nilable(String),
|
|
42
|
+
text: T.nilable(String),
|
|
43
|
+
type: String,
|
|
44
|
+
value: String
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
def to_hash
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageCancelParams < Sentdm::Models::MutationRequest
|
|
6
|
+
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include Sentdm::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(Sentdm::MessageCancelParams, Sentdm::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
attr_accessor :id
|
|
16
|
+
|
|
17
|
+
sig { returns(T.nilable(String)) }
|
|
18
|
+
attr_reader :idempotency_key
|
|
19
|
+
|
|
20
|
+
sig { params(idempotency_key: String).void }
|
|
21
|
+
attr_writer :idempotency_key
|
|
22
|
+
|
|
23
|
+
sig { returns(T.nilable(String)) }
|
|
24
|
+
attr_reader :x_profile_id
|
|
25
|
+
|
|
26
|
+
sig { params(x_profile_id: String).void }
|
|
27
|
+
attr_writer :x_profile_id
|
|
28
|
+
|
|
29
|
+
sig do
|
|
30
|
+
params(
|
|
31
|
+
id: String,
|
|
32
|
+
idempotency_key: String,
|
|
33
|
+
x_profile_id: String,
|
|
34
|
+
request_options: Sentdm::RequestOptions::OrHash
|
|
35
|
+
).returns(T.attached_class)
|
|
36
|
+
end
|
|
37
|
+
def self.new(
|
|
38
|
+
id:,
|
|
39
|
+
idempotency_key: nil,
|
|
40
|
+
x_profile_id: nil,
|
|
41
|
+
request_options: {}
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
sig do
|
|
46
|
+
override.returns(
|
|
47
|
+
{
|
|
48
|
+
id: String,
|
|
49
|
+
idempotency_key: String,
|
|
50
|
+
x_profile_id: String,
|
|
51
|
+
request_options: Sentdm::RequestOptions
|
|
52
|
+
}
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
def to_hash
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageChannelOptions < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::MessageChannelOptions, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Recipient country this entry is meant for (ISO 3166-1 alpha-2, e.g. US).
|
|
12
|
+
# Optional. Accepted and stored, not acted on yet.
|
|
13
|
+
sig { returns(T.nilable(String)) }
|
|
14
|
+
attr_accessor :country
|
|
15
|
+
|
|
16
|
+
# Sender numbers in E.164. Each must be an active sender on your account for this
|
|
17
|
+
# channel. That is account state rather than request shape, so it is decided per
|
|
18
|
+
# message: the request is accepted with 202 and a message naming an unusable
|
|
19
|
+
# number is recorded BLOCKED with error code BUSINESS_029.
|
|
20
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
21
|
+
attr_accessor :from
|
|
22
|
+
|
|
23
|
+
# How to pick a number from From, e.g. sticky or geo. Optional. Accepted and
|
|
24
|
+
# stored, not acted on yet.
|
|
25
|
+
sig { returns(T.nilable(String)) }
|
|
26
|
+
attr_accessor :strategy
|
|
27
|
+
|
|
28
|
+
# One entry of a channel's list in Channels, e.g. {"country": "US", "from":
|
|
29
|
+
# ["+15559990002", "+15559990003"], "strategy": "sticky"}.
|
|
30
|
+
sig do
|
|
31
|
+
params(
|
|
32
|
+
country: T.nilable(String),
|
|
33
|
+
from: T.nilable(T::Array[String]),
|
|
34
|
+
strategy: T.nilable(String)
|
|
35
|
+
).returns(T.attached_class)
|
|
36
|
+
end
|
|
37
|
+
def self.new(
|
|
38
|
+
# Recipient country this entry is meant for (ISO 3166-1 alpha-2, e.g. US).
|
|
39
|
+
# Optional. Accepted and stored, not acted on yet.
|
|
40
|
+
country: nil,
|
|
41
|
+
# Sender numbers in E.164. Each must be an active sender on your account for this
|
|
42
|
+
# channel. That is account state rather than request shape, so it is decided per
|
|
43
|
+
# message: the request is accepted with 202 and a message naming an unusable
|
|
44
|
+
# number is recorded BLOCKED with error code BUSINESS_029.
|
|
45
|
+
from: nil,
|
|
46
|
+
# How to pick a number from From, e.g. sticky or geo. Optional. Accepted and
|
|
47
|
+
# stored, not acted on yet.
|
|
48
|
+
strategy: nil
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
sig do
|
|
53
|
+
override.returns(
|
|
54
|
+
{
|
|
55
|
+
country: T.nilable(String),
|
|
56
|
+
from: T.nilable(T::Array[String]),
|
|
57
|
+
strategy: T.nilable(String)
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
end
|
|
61
|
+
def to_hash
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|