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,44 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageHeaderMedia < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::MessageHeaderMedia, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# "image", "video" or "document" — taken from the header's media variable.
|
|
12
|
+
sig { returns(T.nilable(String)) }
|
|
13
|
+
attr_reader :type
|
|
14
|
+
|
|
15
|
+
sig { params(type: String).void }
|
|
16
|
+
attr_writer :type
|
|
17
|
+
|
|
18
|
+
# The https URL the caller supplied for this send. Never the template's stored
|
|
19
|
+
# props.sample, which is Meta's expiring header_handle rather than what was
|
|
20
|
+
# delivered.
|
|
21
|
+
sig { returns(T.nilable(String)) }
|
|
22
|
+
attr_reader :url
|
|
23
|
+
|
|
24
|
+
sig { params(url: String).void }
|
|
25
|
+
attr_writer :url
|
|
26
|
+
|
|
27
|
+
# The media asset that rode a message's header, recorded as sent.
|
|
28
|
+
sig { params(type: String, url: String).returns(T.attached_class) }
|
|
29
|
+
def self.new(
|
|
30
|
+
# "image", "video" or "document" — taken from the header's media variable.
|
|
31
|
+
type: nil,
|
|
32
|
+
# The https URL the caller supplied for this send. Never the template's stored
|
|
33
|
+
# props.sample, which is Meta's expiring header_handle rather than what was
|
|
34
|
+
# delivered.
|
|
35
|
+
url: nil
|
|
36
|
+
)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
sig { override.returns({ type: String, url: String }) }
|
|
40
|
+
def to_hash
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageMedia < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias { T.any(Sentdm::MessageMedia, Sentdm::Internal::AnyHash) }
|
|
8
|
+
|
|
9
|
+
# One of MmsMediaTypes when the content type is known. Advisory — a reader should
|
|
10
|
+
# trust the fetched object's own Content-Type.
|
|
11
|
+
sig { returns(T.nilable(String)) }
|
|
12
|
+
attr_accessor :media_type
|
|
13
|
+
|
|
14
|
+
# Content type as the provider declared it. Null when it declared none.
|
|
15
|
+
sig { returns(T.nilable(String)) }
|
|
16
|
+
attr_accessor :mime_type
|
|
17
|
+
|
|
18
|
+
# Size as the provider declared it. Never measured here — nothing downloads the
|
|
19
|
+
# file.
|
|
20
|
+
sig { returns(T.nilable(Integer)) }
|
|
21
|
+
attr_accessor :size_bytes
|
|
22
|
+
|
|
23
|
+
# Inbound only: the SHA-256 the provider declared alongside the attachment, when
|
|
24
|
+
# it declared one. Relayed to the customer so they can verify what they fetch
|
|
25
|
+
# matches what the carrier said it sent. It is the only integrity signal available
|
|
26
|
+
# on an attachment nobody here has read.
|
|
27
|
+
sig { returns(T.nilable(String)) }
|
|
28
|
+
attr_accessor :source_hash_sha256
|
|
29
|
+
|
|
30
|
+
# Where the file lives. Outbound: the URL the customer gave us and the carrier
|
|
31
|
+
# fetched. Inbound: the URL the carrier hosts it at, relayed unchanged.
|
|
32
|
+
sig { returns(T.nilable(String)) }
|
|
33
|
+
attr_accessor :url
|
|
34
|
+
|
|
35
|
+
# One attachment on a message, in either direction — and in both, a URL somebody
|
|
36
|
+
# else hosts.
|
|
37
|
+
#
|
|
38
|
+
# Outbound: the customer supplied a public URL and we handed it to the carrier.
|
|
39
|
+
# Inbound: the carrier hosts the file and we record where. sent.dm never holds the
|
|
40
|
+
# bytes, so there is no key, no expiry bookkeeping and nothing minted per read —
|
|
41
|
+
# what is stored is what is served.
|
|
42
|
+
#
|
|
43
|
+
# An inbound link expires on the carrier's own schedule and is unauthenticated.
|
|
44
|
+
# That is the customer's to manage, and it is documented where they will see it
|
|
45
|
+
# rather than only here — a recipient who needs an attachment to outlive that
|
|
46
|
+
# window copies it on receipt.
|
|
47
|
+
#
|
|
48
|
+
# Storing a presigned URL is the specific mistake this shape still avoids:
|
|
49
|
+
# M260826130000 and M260826140000 exist because RCS assets were stored as signed
|
|
50
|
+
# URLs and went stale. Nothing here is signed.
|
|
51
|
+
sig do
|
|
52
|
+
params(
|
|
53
|
+
media_type: T.nilable(String),
|
|
54
|
+
mime_type: T.nilable(String),
|
|
55
|
+
size_bytes: T.nilable(Integer),
|
|
56
|
+
source_hash_sha256: T.nilable(String),
|
|
57
|
+
url: T.nilable(String)
|
|
58
|
+
).returns(T.attached_class)
|
|
59
|
+
end
|
|
60
|
+
def self.new(
|
|
61
|
+
# One of MmsMediaTypes when the content type is known. Advisory — a reader should
|
|
62
|
+
# trust the fetched object's own Content-Type.
|
|
63
|
+
media_type: nil,
|
|
64
|
+
# Content type as the provider declared it. Null when it declared none.
|
|
65
|
+
mime_type: nil,
|
|
66
|
+
# Size as the provider declared it. Never measured here — nothing downloads the
|
|
67
|
+
# file.
|
|
68
|
+
size_bytes: nil,
|
|
69
|
+
# Inbound only: the SHA-256 the provider declared alongside the attachment, when
|
|
70
|
+
# it declared one. Relayed to the customer so they can verify what they fetch
|
|
71
|
+
# matches what the carrier said it sent. It is the only integrity signal available
|
|
72
|
+
# on an attachment nobody here has read.
|
|
73
|
+
source_hash_sha256: nil,
|
|
74
|
+
# Where the file lives. Outbound: the URL the customer gave us and the carrier
|
|
75
|
+
# fetched. Inbound: the URL the carrier hosts it at, relayed unchanged.
|
|
76
|
+
url: nil
|
|
77
|
+
)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
sig do
|
|
81
|
+
override.returns(
|
|
82
|
+
{
|
|
83
|
+
media_type: T.nilable(String),
|
|
84
|
+
mime_type: T.nilable(String),
|
|
85
|
+
size_bytes: T.nilable(Integer),
|
|
86
|
+
source_hash_sha256: T.nilable(String),
|
|
87
|
+
url: T.nilable(String)
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
end
|
|
91
|
+
def to_hash
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageRecipient < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::MessageRecipient, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Resolved template body for this recipient's channel, or null when the channel is
|
|
12
|
+
# auto-detected.
|
|
13
|
+
sig { returns(T.nilable(String)) }
|
|
14
|
+
attr_accessor :body
|
|
15
|
+
|
|
16
|
+
# Channel this message will be sent on — sms, whatsapp — or null to auto-detect.
|
|
17
|
+
sig { returns(T.nilable(String)) }
|
|
18
|
+
attr_accessor :channel
|
|
19
|
+
|
|
20
|
+
# Identifier for tracking this recipient's message.
|
|
21
|
+
sig { returns(T.nilable(String)) }
|
|
22
|
+
attr_reader :message_id
|
|
23
|
+
|
|
24
|
+
sig { params(message_id: String).void }
|
|
25
|
+
attr_writer :message_id
|
|
26
|
+
|
|
27
|
+
# Phone number in E.164 format.
|
|
28
|
+
sig { returns(T.nilable(String)) }
|
|
29
|
+
attr_reader :to
|
|
30
|
+
|
|
31
|
+
sig { params(to: String).void }
|
|
32
|
+
attr_writer :to
|
|
33
|
+
|
|
34
|
+
# What one recipient of a send got, as the API reports it.
|
|
35
|
+
sig do
|
|
36
|
+
params(
|
|
37
|
+
body: T.nilable(String),
|
|
38
|
+
channel: T.nilable(String),
|
|
39
|
+
message_id: String,
|
|
40
|
+
to: String
|
|
41
|
+
).returns(T.attached_class)
|
|
42
|
+
end
|
|
43
|
+
def self.new(
|
|
44
|
+
# Resolved template body for this recipient's channel, or null when the channel is
|
|
45
|
+
# auto-detected.
|
|
46
|
+
body: nil,
|
|
47
|
+
# Channel this message will be sent on — sms, whatsapp — or null to auto-detect.
|
|
48
|
+
channel: nil,
|
|
49
|
+
# Identifier for tracking this recipient's message.
|
|
50
|
+
message_id: nil,
|
|
51
|
+
# Phone number in E.164 format.
|
|
52
|
+
to: nil
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
sig do
|
|
57
|
+
override.returns(
|
|
58
|
+
{
|
|
59
|
+
body: T.nilable(String),
|
|
60
|
+
channel: T.nilable(String),
|
|
61
|
+
message_id: String,
|
|
62
|
+
to: String
|
|
63
|
+
}
|
|
64
|
+
)
|
|
65
|
+
end
|
|
66
|
+
def to_hash
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -42,9 +42,7 @@ module Sentdm
|
|
|
42
42
|
# code BUSINESS_029 and reported on GET /v3/messages and the status webhook.
|
|
43
43
|
sig do
|
|
44
44
|
returns(
|
|
45
|
-
T.nilable(
|
|
46
|
-
T::Hash[Symbol, T::Array[Sentdm::MessageSendParams::Channel]]
|
|
47
|
-
)
|
|
45
|
+
T.nilable(T::Hash[Symbol, T::Array[Sentdm::MessageChannelOptions]])
|
|
48
46
|
)
|
|
49
47
|
end
|
|
50
48
|
attr_accessor :channels
|
|
@@ -97,14 +95,10 @@ module Sentdm
|
|
|
97
95
|
|
|
98
96
|
# SDK-style template reference: resolve by ID or by name, with optional
|
|
99
97
|
# parameters.
|
|
100
|
-
sig { returns(T.nilable(Sentdm::
|
|
98
|
+
sig { returns(T.nilable(Sentdm::TemplateRef)) }
|
|
101
99
|
attr_reader :template
|
|
102
100
|
|
|
103
|
-
sig
|
|
104
|
-
params(
|
|
105
|
-
template: T.nilable(Sentdm::MessageSendParams::Template::OrHash)
|
|
106
|
-
).void
|
|
107
|
-
end
|
|
101
|
+
sig { params(template: T.nilable(Sentdm::TemplateRef::OrHash)).void }
|
|
108
102
|
attr_writer :template
|
|
109
103
|
|
|
110
104
|
# Plain-text (free-form) message body. Provide either Template or this.
|
|
@@ -135,16 +129,13 @@ module Sentdm
|
|
|
135
129
|
channel: T.nilable(T::Array[String]),
|
|
136
130
|
channels:
|
|
137
131
|
T.nilable(
|
|
138
|
-
T::Hash[
|
|
139
|
-
Symbol,
|
|
140
|
-
T::Array[Sentdm::MessageSendParams::Channel::OrHash]
|
|
141
|
-
]
|
|
132
|
+
T::Hash[Symbol, T::Array[Sentdm::MessageChannelOptions::OrHash]]
|
|
142
133
|
),
|
|
143
134
|
media_urls: T.nilable(T::Array[String]),
|
|
144
135
|
sandbox: T::Boolean,
|
|
145
136
|
scheduled_at: T.nilable(Time),
|
|
146
137
|
subject: T.nilable(String),
|
|
147
|
-
template: T.nilable(Sentdm::
|
|
138
|
+
template: T.nilable(Sentdm::TemplateRef::OrHash),
|
|
148
139
|
text: T.nilable(String),
|
|
149
140
|
to: T::Array[String],
|
|
150
141
|
idempotency_key: String,
|
|
@@ -235,13 +226,13 @@ module Sentdm
|
|
|
235
226
|
channel: T.nilable(T::Array[String]),
|
|
236
227
|
channels:
|
|
237
228
|
T.nilable(
|
|
238
|
-
T::Hash[Symbol, T::Array[Sentdm::
|
|
229
|
+
T::Hash[Symbol, T::Array[Sentdm::MessageChannelOptions]]
|
|
239
230
|
),
|
|
240
231
|
media_urls: T.nilable(T::Array[String]),
|
|
241
232
|
sandbox: T::Boolean,
|
|
242
233
|
scheduled_at: T.nilable(Time),
|
|
243
234
|
subject: T.nilable(String),
|
|
244
|
-
template: T.nilable(Sentdm::
|
|
235
|
+
template: T.nilable(Sentdm::TemplateRef),
|
|
245
236
|
text: T.nilable(String),
|
|
246
237
|
to: T::Array[String],
|
|
247
238
|
idempotency_key: String,
|
|
@@ -252,145 +243,6 @@ module Sentdm
|
|
|
252
243
|
end
|
|
253
244
|
def to_hash
|
|
254
245
|
end
|
|
255
|
-
|
|
256
|
-
class Channel < Sentdm::Internal::Type::BaseModel
|
|
257
|
-
OrHash =
|
|
258
|
-
T.type_alias do
|
|
259
|
-
T.any(Sentdm::MessageSendParams::Channel, Sentdm::Internal::AnyHash)
|
|
260
|
-
end
|
|
261
|
-
|
|
262
|
-
# Recipient country this entry is meant for (ISO 3166-1 alpha-2, e.g. US).
|
|
263
|
-
# Optional. Accepted and stored, not acted on yet.
|
|
264
|
-
sig { returns(T.nilable(String)) }
|
|
265
|
-
attr_accessor :country
|
|
266
|
-
|
|
267
|
-
# Sender numbers in E.164. Each must be an active sender on your account for this
|
|
268
|
-
# channel. That is account state rather than request shape, so it is decided per
|
|
269
|
-
# message: the request is accepted with 202 and a message naming an unusable
|
|
270
|
-
# number is recorded BLOCKED with error code BUSINESS_029.
|
|
271
|
-
sig { returns(T.nilable(T::Array[String])) }
|
|
272
|
-
attr_accessor :from
|
|
273
|
-
|
|
274
|
-
# How to pick a number from From, e.g. sticky or geo. Optional. Accepted and
|
|
275
|
-
# stored, not acted on yet.
|
|
276
|
-
sig { returns(T.nilable(String)) }
|
|
277
|
-
attr_accessor :strategy
|
|
278
|
-
|
|
279
|
-
# One entry of a channel's list in Channels, e.g. {"country": "US", "from":
|
|
280
|
-
# ["+15559990002", "+15559990003"], "strategy": "sticky"}.
|
|
281
|
-
sig do
|
|
282
|
-
params(
|
|
283
|
-
country: T.nilable(String),
|
|
284
|
-
from: T.nilable(T::Array[String]),
|
|
285
|
-
strategy: T.nilable(String)
|
|
286
|
-
).returns(T.attached_class)
|
|
287
|
-
end
|
|
288
|
-
def self.new(
|
|
289
|
-
# Recipient country this entry is meant for (ISO 3166-1 alpha-2, e.g. US).
|
|
290
|
-
# Optional. Accepted and stored, not acted on yet.
|
|
291
|
-
country: nil,
|
|
292
|
-
# Sender numbers in E.164. Each must be an active sender on your account for this
|
|
293
|
-
# channel. That is account state rather than request shape, so it is decided per
|
|
294
|
-
# message: the request is accepted with 202 and a message naming an unusable
|
|
295
|
-
# number is recorded BLOCKED with error code BUSINESS_029.
|
|
296
|
-
from: nil,
|
|
297
|
-
# How to pick a number from From, e.g. sticky or geo. Optional. Accepted and
|
|
298
|
-
# stored, not acted on yet.
|
|
299
|
-
strategy: nil
|
|
300
|
-
)
|
|
301
|
-
end
|
|
302
|
-
|
|
303
|
-
sig do
|
|
304
|
-
override.returns(
|
|
305
|
-
{
|
|
306
|
-
country: T.nilable(String),
|
|
307
|
-
from: T.nilable(T::Array[String]),
|
|
308
|
-
strategy: T.nilable(String)
|
|
309
|
-
}
|
|
310
|
-
)
|
|
311
|
-
end
|
|
312
|
-
def to_hash
|
|
313
|
-
end
|
|
314
|
-
end
|
|
315
|
-
|
|
316
|
-
class Template < Sentdm::Internal::Type::BaseModel
|
|
317
|
-
OrHash =
|
|
318
|
-
T.type_alias do
|
|
319
|
-
T.any(
|
|
320
|
-
Sentdm::MessageSendParams::Template,
|
|
321
|
-
Sentdm::Internal::AnyHash
|
|
322
|
-
)
|
|
323
|
-
end
|
|
324
|
-
|
|
325
|
-
# Template ID (mutually exclusive with name)
|
|
326
|
-
sig { returns(T.nilable(String)) }
|
|
327
|
-
attr_accessor :id
|
|
328
|
-
|
|
329
|
-
# Template name (mutually exclusive with id)
|
|
330
|
-
sig { returns(T.nilable(String)) }
|
|
331
|
-
attr_accessor :name
|
|
332
|
-
|
|
333
|
-
# Template variable parameters for personalization, keyed by variable name.
|
|
334
|
-
#
|
|
335
|
-
# Every variable the template declares is required; GET /v3/templates/{id} lists
|
|
336
|
-
# them. Supplying a key the template does not declare is ignored.
|
|
337
|
-
#
|
|
338
|
-
# Media headers. A template whose header is an image (designed in WhatsApp Manager
|
|
339
|
-
# and imported into Sent) declares a reserved header_image key. Its value is a
|
|
340
|
-
# publicly reachable https URL that Meta fetches at send time — Sent does not host
|
|
341
|
-
# the asset, and the sample approved with the template is not reused. The key is
|
|
342
|
-
# derived from the header's media type, so header_video and header_document follow
|
|
343
|
-
# the same shape when those formats ship.
|
|
344
|
-
#
|
|
345
|
-
# "parameters": { "header_image": "https://cdn.example.com/banner.jpg", "name":
|
|
346
|
-
# "John Doe" }
|
|
347
|
-
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
348
|
-
attr_accessor :parameters
|
|
349
|
-
|
|
350
|
-
# SDK-style template reference: resolve by ID or by name, with optional
|
|
351
|
-
# parameters.
|
|
352
|
-
sig do
|
|
353
|
-
params(
|
|
354
|
-
id: T.nilable(String),
|
|
355
|
-
name: T.nilable(String),
|
|
356
|
-
parameters: T.nilable(T::Hash[Symbol, String])
|
|
357
|
-
).returns(T.attached_class)
|
|
358
|
-
end
|
|
359
|
-
def self.new(
|
|
360
|
-
# Template ID (mutually exclusive with name)
|
|
361
|
-
id: nil,
|
|
362
|
-
# Template name (mutually exclusive with id)
|
|
363
|
-
name: nil,
|
|
364
|
-
# Template variable parameters for personalization, keyed by variable name.
|
|
365
|
-
#
|
|
366
|
-
# Every variable the template declares is required; GET /v3/templates/{id} lists
|
|
367
|
-
# them. Supplying a key the template does not declare is ignored.
|
|
368
|
-
#
|
|
369
|
-
# Media headers. A template whose header is an image (designed in WhatsApp Manager
|
|
370
|
-
# and imported into Sent) declares a reserved header_image key. Its value is a
|
|
371
|
-
# publicly reachable https URL that Meta fetches at send time — Sent does not host
|
|
372
|
-
# the asset, and the sample approved with the template is not reused. The key is
|
|
373
|
-
# derived from the header's media type, so header_video and header_document follow
|
|
374
|
-
# the same shape when those formats ship.
|
|
375
|
-
#
|
|
376
|
-
# "parameters": { "header_image": "https://cdn.example.com/banner.jpg", "name":
|
|
377
|
-
# "John Doe" }
|
|
378
|
-
parameters: nil
|
|
379
|
-
)
|
|
380
|
-
end
|
|
381
|
-
|
|
382
|
-
sig do
|
|
383
|
-
override.returns(
|
|
384
|
-
{
|
|
385
|
-
id: T.nilable(String),
|
|
386
|
-
name: T.nilable(String),
|
|
387
|
-
parameters: T.nilable(T::Hash[Symbol, String])
|
|
388
|
-
}
|
|
389
|
-
)
|
|
390
|
-
end
|
|
391
|
-
def to_hash
|
|
392
|
-
end
|
|
393
|
-
end
|
|
394
246
|
end
|
|
395
247
|
end
|
|
396
248
|
end
|
|
@@ -20,12 +20,10 @@ module Sentdm
|
|
|
20
20
|
# The shape of an immediate send: it never has a scheduled_at key. A send that
|
|
21
21
|
# carried scheduled_at is a ScheduledSendMessageResponse, and the endpoint decides
|
|
22
22
|
# which of the two to answer with. From always returns this type.
|
|
23
|
-
sig { returns(T.nilable(Sentdm::
|
|
23
|
+
sig { returns(T.nilable(Sentdm::MessageSendResult)) }
|
|
24
24
|
attr_reader :data
|
|
25
25
|
|
|
26
|
-
sig
|
|
27
|
-
params(data: T.nilable(Sentdm::MessageSendResponse::Data::OrHash)).void
|
|
28
|
-
end
|
|
26
|
+
sig { params(data: T.nilable(Sentdm::MessageSendResult::OrHash)).void }
|
|
29
27
|
attr_writer :data
|
|
30
28
|
|
|
31
29
|
# Error information
|
|
@@ -52,7 +50,7 @@ module Sentdm
|
|
|
52
50
|
# Standard API response envelope for all v3 endpoints
|
|
53
51
|
sig do
|
|
54
52
|
params(
|
|
55
|
-
data: T.nilable(Sentdm::
|
|
53
|
+
data: T.nilable(Sentdm::MessageSendResult::OrHash),
|
|
56
54
|
error: T.nilable(Sentdm::ErrorDetail::OrHash),
|
|
57
55
|
meta: Sentdm::APIMeta::OrHash,
|
|
58
56
|
success: T::Boolean
|
|
@@ -84,7 +82,7 @@ module Sentdm
|
|
|
84
82
|
sig do
|
|
85
83
|
override.returns(
|
|
86
84
|
{
|
|
87
|
-
data: T.nilable(Sentdm::
|
|
85
|
+
data: T.nilable(Sentdm::MessageSendResult),
|
|
88
86
|
error: T.nilable(Sentdm::ErrorDetail),
|
|
89
87
|
meta: Sentdm::APIMeta,
|
|
90
88
|
success: T::Boolean
|
|
@@ -93,163 +91,6 @@ module Sentdm
|
|
|
93
91
|
end
|
|
94
92
|
def to_hash
|
|
95
93
|
end
|
|
96
|
-
|
|
97
|
-
class Data < Sentdm::Internal::Type::BaseModel
|
|
98
|
-
OrHash =
|
|
99
|
-
T.type_alias do
|
|
100
|
-
T.any(Sentdm::MessageSendResponse::Data, Sentdm::Internal::AnyHash)
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
sig do
|
|
104
|
-
returns(
|
|
105
|
-
T.nilable(T::Array[Sentdm::MessageSendResponse::Data::Recipient])
|
|
106
|
-
)
|
|
107
|
-
end
|
|
108
|
-
attr_reader :recipients
|
|
109
|
-
|
|
110
|
-
sig do
|
|
111
|
-
params(
|
|
112
|
-
recipients:
|
|
113
|
-
T::Array[Sentdm::MessageSendResponse::Data::Recipient::OrHash]
|
|
114
|
-
).void
|
|
115
|
-
end
|
|
116
|
-
attr_writer :recipients
|
|
117
|
-
|
|
118
|
-
# QUEUED: the batch is accepted. A request that carried scheduled_at is QUEUED
|
|
119
|
-
# here too; each message moves to SCHEDULED once it is held, as GET
|
|
120
|
-
# /v3/messages/{id} and the message.scheduled webhook report.
|
|
121
|
-
sig { returns(T.nilable(String)) }
|
|
122
|
-
attr_reader :status
|
|
123
|
-
|
|
124
|
-
sig { params(status: String).void }
|
|
125
|
-
attr_writer :status
|
|
126
|
-
|
|
127
|
-
sig { returns(T.nilable(String)) }
|
|
128
|
-
attr_reader :template_id
|
|
129
|
-
|
|
130
|
-
sig { params(template_id: String).void }
|
|
131
|
-
attr_writer :template_id
|
|
132
|
-
|
|
133
|
-
sig { returns(T.nilable(String)) }
|
|
134
|
-
attr_reader :template_name
|
|
135
|
-
|
|
136
|
-
sig { params(template_name: String).void }
|
|
137
|
-
attr_writer :template_name
|
|
138
|
-
|
|
139
|
-
# The result of a multi-recipient send.
|
|
140
|
-
#
|
|
141
|
-
# Declared here rather than in the service layer. POST /v3/messages used to
|
|
142
|
-
# publish MessageSendResult — a type in Common.Services.Messaging.Contracts — so
|
|
143
|
-
# the public contract was whatever the send service happened to return, and
|
|
144
|
-
# changing that service for an internal reason changed the API. The service keeps
|
|
145
|
-
# its result; this is what a caller sees, and the mapping between them is a
|
|
146
|
-
# decision the endpoint makes.
|
|
147
|
-
#
|
|
148
|
-
# The shape of an immediate send: it never has a scheduled_at key. A send that
|
|
149
|
-
# carried scheduled_at is a ScheduledSendMessageResponse, and the endpoint decides
|
|
150
|
-
# which of the two to answer with. From always returns this type.
|
|
151
|
-
sig do
|
|
152
|
-
params(
|
|
153
|
-
recipients:
|
|
154
|
-
T::Array[Sentdm::MessageSendResponse::Data::Recipient::OrHash],
|
|
155
|
-
status: String,
|
|
156
|
-
template_id: String,
|
|
157
|
-
template_name: String
|
|
158
|
-
).returns(T.attached_class)
|
|
159
|
-
end
|
|
160
|
-
def self.new(
|
|
161
|
-
recipients: nil,
|
|
162
|
-
# QUEUED: the batch is accepted. A request that carried scheduled_at is QUEUED
|
|
163
|
-
# here too; each message moves to SCHEDULED once it is held, as GET
|
|
164
|
-
# /v3/messages/{id} and the message.scheduled webhook report.
|
|
165
|
-
status: nil,
|
|
166
|
-
template_id: nil,
|
|
167
|
-
template_name: nil
|
|
168
|
-
)
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
sig do
|
|
172
|
-
override.returns(
|
|
173
|
-
{
|
|
174
|
-
recipients:
|
|
175
|
-
T::Array[Sentdm::MessageSendResponse::Data::Recipient],
|
|
176
|
-
status: String,
|
|
177
|
-
template_id: String,
|
|
178
|
-
template_name: String
|
|
179
|
-
}
|
|
180
|
-
)
|
|
181
|
-
end
|
|
182
|
-
def to_hash
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
class Recipient < Sentdm::Internal::Type::BaseModel
|
|
186
|
-
OrHash =
|
|
187
|
-
T.type_alias do
|
|
188
|
-
T.any(
|
|
189
|
-
Sentdm::MessageSendResponse::Data::Recipient,
|
|
190
|
-
Sentdm::Internal::AnyHash
|
|
191
|
-
)
|
|
192
|
-
end
|
|
193
|
-
|
|
194
|
-
# Resolved template body for this recipient's channel, or null when the channel is
|
|
195
|
-
# auto-detected.
|
|
196
|
-
sig { returns(T.nilable(String)) }
|
|
197
|
-
attr_accessor :body
|
|
198
|
-
|
|
199
|
-
# Channel this message will be sent on — sms, whatsapp — or null to auto-detect.
|
|
200
|
-
sig { returns(T.nilable(String)) }
|
|
201
|
-
attr_accessor :channel
|
|
202
|
-
|
|
203
|
-
# Identifier for tracking this recipient's message.
|
|
204
|
-
sig { returns(T.nilable(String)) }
|
|
205
|
-
attr_reader :message_id
|
|
206
|
-
|
|
207
|
-
sig { params(message_id: String).void }
|
|
208
|
-
attr_writer :message_id
|
|
209
|
-
|
|
210
|
-
# Phone number in E.164 format.
|
|
211
|
-
sig { returns(T.nilable(String)) }
|
|
212
|
-
attr_reader :to
|
|
213
|
-
|
|
214
|
-
sig { params(to: String).void }
|
|
215
|
-
attr_writer :to
|
|
216
|
-
|
|
217
|
-
# What one recipient of a send got, as the API reports it.
|
|
218
|
-
sig do
|
|
219
|
-
params(
|
|
220
|
-
body: T.nilable(String),
|
|
221
|
-
channel: T.nilable(String),
|
|
222
|
-
message_id: String,
|
|
223
|
-
to: String
|
|
224
|
-
).returns(T.attached_class)
|
|
225
|
-
end
|
|
226
|
-
def self.new(
|
|
227
|
-
# Resolved template body for this recipient's channel, or null when the channel is
|
|
228
|
-
# auto-detected.
|
|
229
|
-
body: nil,
|
|
230
|
-
# Channel this message will be sent on — sms, whatsapp — or null to auto-detect.
|
|
231
|
-
channel: nil,
|
|
232
|
-
# Identifier for tracking this recipient's message.
|
|
233
|
-
message_id: nil,
|
|
234
|
-
# Phone number in E.164 format.
|
|
235
|
-
to: nil
|
|
236
|
-
)
|
|
237
|
-
end
|
|
238
|
-
|
|
239
|
-
sig do
|
|
240
|
-
override.returns(
|
|
241
|
-
{
|
|
242
|
-
body: T.nilable(String),
|
|
243
|
-
channel: T.nilable(String),
|
|
244
|
-
message_id: String,
|
|
245
|
-
to: String
|
|
246
|
-
}
|
|
247
|
-
)
|
|
248
|
-
end
|
|
249
|
-
def to_hash
|
|
250
|
-
end
|
|
251
|
-
end
|
|
252
|
-
end
|
|
253
94
|
end
|
|
254
95
|
end
|
|
255
96
|
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class MessageSendResult < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::MessageSendResult, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
sig { returns(T.nilable(T::Array[Sentdm::MessageRecipient])) }
|
|
12
|
+
attr_reader :recipients
|
|
13
|
+
|
|
14
|
+
sig do
|
|
15
|
+
params(recipients: T::Array[Sentdm::MessageRecipient::OrHash]).void
|
|
16
|
+
end
|
|
17
|
+
attr_writer :recipients
|
|
18
|
+
|
|
19
|
+
# QUEUED: the batch is accepted. A request that carried scheduled_at is QUEUED
|
|
20
|
+
# here too; each message moves to SCHEDULED once it is held, as GET
|
|
21
|
+
# /v3/messages/{id} and the message.scheduled webhook report.
|
|
22
|
+
sig { returns(T.nilable(String)) }
|
|
23
|
+
attr_reader :status
|
|
24
|
+
|
|
25
|
+
sig { params(status: String).void }
|
|
26
|
+
attr_writer :status
|
|
27
|
+
|
|
28
|
+
sig { returns(T.nilable(String)) }
|
|
29
|
+
attr_reader :template_id
|
|
30
|
+
|
|
31
|
+
sig { params(template_id: String).void }
|
|
32
|
+
attr_writer :template_id
|
|
33
|
+
|
|
34
|
+
sig { returns(T.nilable(String)) }
|
|
35
|
+
attr_reader :template_name
|
|
36
|
+
|
|
37
|
+
sig { params(template_name: String).void }
|
|
38
|
+
attr_writer :template_name
|
|
39
|
+
|
|
40
|
+
# The result of a multi-recipient send.
|
|
41
|
+
#
|
|
42
|
+
# Declared here rather than in the service layer. POST /v3/messages used to
|
|
43
|
+
# publish MessageSendResult — a type in Common.Services.Messaging.Contracts — so
|
|
44
|
+
# the public contract was whatever the send service happened to return, and
|
|
45
|
+
# changing that service for an internal reason changed the API. The service keeps
|
|
46
|
+
# its result; this is what a caller sees, and the mapping between them is a
|
|
47
|
+
# decision the endpoint makes.
|
|
48
|
+
#
|
|
49
|
+
# The shape of an immediate send: it never has a scheduled_at key. A send that
|
|
50
|
+
# carried scheduled_at is a ScheduledSendMessageResponse, and the endpoint decides
|
|
51
|
+
# which of the two to answer with. From always returns this type.
|
|
52
|
+
sig do
|
|
53
|
+
params(
|
|
54
|
+
recipients: T::Array[Sentdm::MessageRecipient::OrHash],
|
|
55
|
+
status: String,
|
|
56
|
+
template_id: String,
|
|
57
|
+
template_name: String
|
|
58
|
+
).returns(T.attached_class)
|
|
59
|
+
end
|
|
60
|
+
def self.new(
|
|
61
|
+
recipients: nil,
|
|
62
|
+
# QUEUED: the batch is accepted. A request that carried scheduled_at is QUEUED
|
|
63
|
+
# here too; each message moves to SCHEDULED once it is held, as GET
|
|
64
|
+
# /v3/messages/{id} and the message.scheduled webhook report.
|
|
65
|
+
status: nil,
|
|
66
|
+
template_id: nil,
|
|
67
|
+
template_name: nil
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
sig do
|
|
72
|
+
override.returns(
|
|
73
|
+
{
|
|
74
|
+
recipients: T::Array[Sentdm::MessageRecipient],
|
|
75
|
+
status: String,
|
|
76
|
+
template_id: String,
|
|
77
|
+
template_name: String
|
|
78
|
+
}
|
|
79
|
+
)
|
|
80
|
+
end
|
|
81
|
+
def to_hash
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|