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,57 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module Channels
|
|
6
|
+
class SuppliedDocument < Sentdm::Internal::Type::BaseModel
|
|
7
|
+
OrHash =
|
|
8
|
+
T.type_alias do
|
|
9
|
+
T.any(Sentdm::Channels::SuppliedDocument, Sentdm::Internal::AnyHash)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Identifier of the upload, for fetching it back through the documents endpoints.
|
|
13
|
+
sig { returns(T.nilable(String)) }
|
|
14
|
+
attr_accessor :document_id
|
|
15
|
+
|
|
16
|
+
sig { returns(T.nilable(String)) }
|
|
17
|
+
attr_accessor :file_name
|
|
18
|
+
|
|
19
|
+
# The catalog's name for this document, matching the requirement it satisfies.
|
|
20
|
+
sig { returns(T.nilable(String)) }
|
|
21
|
+
attr_reader :key
|
|
22
|
+
|
|
23
|
+
sig { params(key: String).void }
|
|
24
|
+
attr_writer :key
|
|
25
|
+
|
|
26
|
+
# A document a market asked for and has been given.
|
|
27
|
+
sig do
|
|
28
|
+
params(
|
|
29
|
+
document_id: T.nilable(String),
|
|
30
|
+
file_name: T.nilable(String),
|
|
31
|
+
key: String
|
|
32
|
+
).returns(T.attached_class)
|
|
33
|
+
end
|
|
34
|
+
def self.new(
|
|
35
|
+
# Identifier of the upload, for fetching it back through the documents endpoints.
|
|
36
|
+
document_id: nil,
|
|
37
|
+
file_name: nil,
|
|
38
|
+
# The catalog's name for this document, matching the requirement it satisfies.
|
|
39
|
+
key: nil
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
sig do
|
|
44
|
+
override.returns(
|
|
45
|
+
{
|
|
46
|
+
document_id: T.nilable(String),
|
|
47
|
+
file_name: T.nilable(String),
|
|
48
|
+
key: String
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
def to_hash
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
WhatsappChannel = Channels::WhatsappChannel
|
|
6
|
+
|
|
7
|
+
module Channels
|
|
8
|
+
class WhatsappChannel < Sentdm::Internal::Type::BaseModel
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(Sentdm::Channels::WhatsappChannel, Sentdm::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Derived from the organization's shared-account listing, like SolutionId.
|
|
15
|
+
sig { returns(T.nilable(String)) }
|
|
16
|
+
attr_accessor :owner_business_id
|
|
17
|
+
|
|
18
|
+
# The Meta phone-number id the profile sends from, or null when the account is
|
|
19
|
+
# connected but no number has been named yet — which is what a provisioning status
|
|
20
|
+
# means here.
|
|
21
|
+
sig { returns(T.nilable(String)) }
|
|
22
|
+
attr_accessor :phone_number_id
|
|
23
|
+
|
|
24
|
+
# A sentence for reason_code, saying what to do where it is yours. Omitted while
|
|
25
|
+
# ACTIVE.
|
|
26
|
+
sig { returns(T.nilable(String)) }
|
|
27
|
+
attr_accessor :reason
|
|
28
|
+
|
|
29
|
+
# Why the account is not ACTIVE, as a stable code: an ErrorCodes CHANNEL_xxx value
|
|
30
|
+
# such as CHANNEL_001 (something you owe) or CHANNEL_009 (under review). Switch on
|
|
31
|
+
# this rather than on reason. Omitted while ACTIVE. Read-only; when nothing more
|
|
32
|
+
# specific is known it is the generic reason for the status.
|
|
33
|
+
sig { returns(T.nilable(String)) }
|
|
34
|
+
attr_accessor :reason_code
|
|
35
|
+
|
|
36
|
+
# Derived, not echoed. The request no longer accepts this — it is read off the
|
|
37
|
+
# organization's shared-account listing at connect time and reported back so a
|
|
38
|
+
# caller can see which partnership the account actually arrived through.
|
|
39
|
+
sig { returns(T.nilable(String)) }
|
|
40
|
+
attr_accessor :solution_id
|
|
41
|
+
|
|
42
|
+
# Read-only. Never carries a token — the row holds that and it is not returned.
|
|
43
|
+
# ACTION_NEEDED when no account is connected or the account has no phone number:
|
|
44
|
+
# both are yours to do.
|
|
45
|
+
sig do
|
|
46
|
+
returns(
|
|
47
|
+
T.nilable(Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol)
|
|
48
|
+
)
|
|
49
|
+
end
|
|
50
|
+
attr_accessor :status
|
|
51
|
+
|
|
52
|
+
sig { returns(T.nilable(String)) }
|
|
53
|
+
attr_accessor :waba_id
|
|
54
|
+
|
|
55
|
+
# The profile's WhatsApp account. Its status is Meta's verification state.
|
|
56
|
+
sig do
|
|
57
|
+
params(
|
|
58
|
+
owner_business_id: T.nilable(String),
|
|
59
|
+
phone_number_id: T.nilable(String),
|
|
60
|
+
reason: T.nilable(String),
|
|
61
|
+
reason_code: T.nilable(String),
|
|
62
|
+
solution_id: T.nilable(String),
|
|
63
|
+
status:
|
|
64
|
+
T.nilable(Sentdm::Channels::WhatsappChannel::Status::OrSymbol),
|
|
65
|
+
waba_id: T.nilable(String)
|
|
66
|
+
).returns(T.attached_class)
|
|
67
|
+
end
|
|
68
|
+
def self.new(
|
|
69
|
+
# Derived from the organization's shared-account listing, like SolutionId.
|
|
70
|
+
owner_business_id: nil,
|
|
71
|
+
# The Meta phone-number id the profile sends from, or null when the account is
|
|
72
|
+
# connected but no number has been named yet — which is what a provisioning status
|
|
73
|
+
# means here.
|
|
74
|
+
phone_number_id: nil,
|
|
75
|
+
# A sentence for reason_code, saying what to do where it is yours. Omitted while
|
|
76
|
+
# ACTIVE.
|
|
77
|
+
reason: nil,
|
|
78
|
+
# Why the account is not ACTIVE, as a stable code: an ErrorCodes CHANNEL_xxx value
|
|
79
|
+
# such as CHANNEL_001 (something you owe) or CHANNEL_009 (under review). Switch on
|
|
80
|
+
# this rather than on reason. Omitted while ACTIVE. Read-only; when nothing more
|
|
81
|
+
# specific is known it is the generic reason for the status.
|
|
82
|
+
reason_code: nil,
|
|
83
|
+
# Derived, not echoed. The request no longer accepts this — it is read off the
|
|
84
|
+
# organization's shared-account listing at connect time and reported back so a
|
|
85
|
+
# caller can see which partnership the account actually arrived through.
|
|
86
|
+
solution_id: nil,
|
|
87
|
+
# Read-only. Never carries a token — the row holds that and it is not returned.
|
|
88
|
+
# ACTION_NEEDED when no account is connected or the account has no phone number:
|
|
89
|
+
# both are yours to do.
|
|
90
|
+
status: nil,
|
|
91
|
+
waba_id: nil
|
|
92
|
+
)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
sig do
|
|
96
|
+
override.returns(
|
|
97
|
+
{
|
|
98
|
+
owner_business_id: T.nilable(String),
|
|
99
|
+
phone_number_id: T.nilable(String),
|
|
100
|
+
reason: T.nilable(String),
|
|
101
|
+
reason_code: T.nilable(String),
|
|
102
|
+
solution_id: T.nilable(String),
|
|
103
|
+
status:
|
|
104
|
+
T.nilable(
|
|
105
|
+
Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
|
|
106
|
+
),
|
|
107
|
+
waba_id: T.nilable(String)
|
|
108
|
+
}
|
|
109
|
+
)
|
|
110
|
+
end
|
|
111
|
+
def to_hash
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# Read-only. Never carries a token — the row holds that and it is not returned.
|
|
115
|
+
# ACTION_NEEDED when no account is connected or the account has no phone number:
|
|
116
|
+
# both are yours to do.
|
|
117
|
+
module Status
|
|
118
|
+
extend Sentdm::Internal::Type::Enum
|
|
119
|
+
|
|
120
|
+
TaggedSymbol =
|
|
121
|
+
T.type_alias do
|
|
122
|
+
T.all(Symbol, Sentdm::Channels::WhatsappChannel::Status)
|
|
123
|
+
end
|
|
124
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
125
|
+
|
|
126
|
+
# We are working on it and there is nothing for you to do — a number is being procured, or a registration is being assembled. Minutes to hours.
|
|
127
|
+
PROVISIONING =
|
|
128
|
+
T.let(
|
|
129
|
+
:PROVISIONING,
|
|
130
|
+
Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
# **Waiting on you.** Something the market asks for has not been supplied, a regulator rejected what was, or we have asked you to correct and resubmit your identity data. Nothing progresses until you act. For an SMS market, `GET /v3/channels/sms/{country}/{type}` names what it wants and `PATCH` on the same path supplies it — compliance values, documents and numbers alike.
|
|
134
|
+
ACTION_NEEDED =
|
|
135
|
+
T.let(
|
|
136
|
+
:ACTION_NEEDED,
|
|
137
|
+
Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
# With a regulator or carrier — filed, or assembled and queued for us to file — and their answer is what moves it, to `ACTIVE` or back to `ACTION_NEEDED`. Nothing on your side changes it. Days for SMS, weeks for RCS.
|
|
141
|
+
PENDING_REVIEW =
|
|
142
|
+
T.let(
|
|
143
|
+
:PENDING_REVIEW,
|
|
144
|
+
Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
# Can carry traffic now. A channel a sender profile runs on its organization's reads `ACTIVE` too — it sends, which is what the field is about.
|
|
148
|
+
ACTIVE =
|
|
149
|
+
T.let(
|
|
150
|
+
:ACTIVE,
|
|
151
|
+
Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
# **It had a working sender and no longer does** — the number was released, or the campaign it carried lapsed. Distinct from `PROVISIONING`, which means it has never sent yet: the same absence of a sender, opposite news. Sends will fail until it returns to `ACTIVE`.
|
|
155
|
+
INACTIVE =
|
|
156
|
+
T.let(
|
|
157
|
+
:INACTIVE,
|
|
158
|
+
Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
sig do
|
|
162
|
+
override.returns(
|
|
163
|
+
T::Array[Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol]
|
|
164
|
+
)
|
|
165
|
+
end
|
|
166
|
+
def self.values
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
end
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module Channels
|
|
6
|
+
class WhatsappCreateParams < Sentdm::Internal::Type::BaseModel
|
|
7
|
+
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
8
|
+
include Sentdm::Internal::Type::RequestParameters
|
|
9
|
+
|
|
10
|
+
OrHash =
|
|
11
|
+
T.type_alias do
|
|
12
|
+
T.any(
|
|
13
|
+
Sentdm::Channels::WhatsappCreateParams,
|
|
14
|
+
Sentdm::Internal::AnyHash
|
|
15
|
+
)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# The Meta phone-number id of the number on WabaId, which assigns it to this
|
|
19
|
+
# profile as the number it sends from. It is not checked against the account here,
|
|
20
|
+
# so name the account's number; it is refused if another profile already uses it.
|
|
21
|
+
#
|
|
22
|
+
# Optional: omit it to connect the account and settle the number later. Nothing
|
|
23
|
+
# picks one on your behalf.
|
|
24
|
+
sig { returns(T.nilable(String)) }
|
|
25
|
+
attr_accessor :phone_number_id
|
|
26
|
+
|
|
27
|
+
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
28
|
+
# for testing integrations without actual execution
|
|
29
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
30
|
+
attr_reader :sandbox
|
|
31
|
+
|
|
32
|
+
sig { params(sandbox: T::Boolean).void }
|
|
33
|
+
attr_writer :sandbox
|
|
34
|
+
|
|
35
|
+
# WhatsApp Business Account id — one of the accounts shared into your
|
|
36
|
+
# organization. Required: the organization holds one per client, and nothing but
|
|
37
|
+
# the caller says which is meant here.
|
|
38
|
+
sig { returns(T.nilable(String)) }
|
|
39
|
+
attr_reader :waba_id
|
|
40
|
+
|
|
41
|
+
sig { params(waba_id: String).void }
|
|
42
|
+
attr_writer :waba_id
|
|
43
|
+
|
|
44
|
+
sig { returns(T.nilable(String)) }
|
|
45
|
+
attr_reader :idempotency_key
|
|
46
|
+
|
|
47
|
+
sig { params(idempotency_key: String).void }
|
|
48
|
+
attr_writer :idempotency_key
|
|
49
|
+
|
|
50
|
+
sig { returns(T.nilable(String)) }
|
|
51
|
+
attr_reader :x_profile_id
|
|
52
|
+
|
|
53
|
+
sig { params(x_profile_id: String).void }
|
|
54
|
+
attr_writer :x_profile_id
|
|
55
|
+
|
|
56
|
+
sig do
|
|
57
|
+
params(
|
|
58
|
+
phone_number_id: T.nilable(String),
|
|
59
|
+
sandbox: T::Boolean,
|
|
60
|
+
waba_id: String,
|
|
61
|
+
idempotency_key: String,
|
|
62
|
+
x_profile_id: String,
|
|
63
|
+
request_options: Sentdm::RequestOptions::OrHash
|
|
64
|
+
).returns(T.attached_class)
|
|
65
|
+
end
|
|
66
|
+
def self.new(
|
|
67
|
+
# The Meta phone-number id of the number on WabaId, which assigns it to this
|
|
68
|
+
# profile as the number it sends from. It is not checked against the account here,
|
|
69
|
+
# so name the account's number; it is refused if another profile already uses it.
|
|
70
|
+
#
|
|
71
|
+
# Optional: omit it to connect the account and settle the number later. Nothing
|
|
72
|
+
# picks one on your behalf.
|
|
73
|
+
phone_number_id: nil,
|
|
74
|
+
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
75
|
+
# for testing integrations without actual execution
|
|
76
|
+
sandbox: nil,
|
|
77
|
+
# WhatsApp Business Account id — one of the accounts shared into your
|
|
78
|
+
# organization. Required: the organization holds one per client, and nothing but
|
|
79
|
+
# the caller says which is meant here.
|
|
80
|
+
waba_id: nil,
|
|
81
|
+
idempotency_key: nil,
|
|
82
|
+
x_profile_id: nil,
|
|
83
|
+
request_options: {}
|
|
84
|
+
)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
sig do
|
|
88
|
+
override.returns(
|
|
89
|
+
{
|
|
90
|
+
phone_number_id: T.nilable(String),
|
|
91
|
+
sandbox: T::Boolean,
|
|
92
|
+
waba_id: String,
|
|
93
|
+
idempotency_key: String,
|
|
94
|
+
x_profile_id: String,
|
|
95
|
+
request_options: Sentdm::RequestOptions
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
end
|
|
99
|
+
def to_hash
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ChannelsState < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias { T.any(Sentdm::ChannelsState, Sentdm::Internal::AnyHash) }
|
|
8
|
+
|
|
9
|
+
# Which customer these channels belong to — the key's own, or the profile named in
|
|
10
|
+
# x-profile-id.
|
|
11
|
+
#
|
|
12
|
+
# Same reason the brand carries one: as the response to /v3/channels there is no
|
|
13
|
+
# other id in the document, and under x-profile-id this is the profile the call
|
|
14
|
+
# resolved to rather than the caller. Absent when nested inside a sender profile,
|
|
15
|
+
# whose own id already says whose they are.
|
|
16
|
+
sig { returns(T.nilable(String)) }
|
|
17
|
+
attr_accessor :customer_id
|
|
18
|
+
|
|
19
|
+
# The markets this profile can send MMS in, one entry per country, or empty when
|
|
20
|
+
# none.
|
|
21
|
+
#
|
|
22
|
+
# Appears alongside sms rather than replacing an entry in it: the two are separate
|
|
23
|
+
# senders on the same number and a caller needs to see both — a market can be live
|
|
24
|
+
# for SMS while its MMS row is still provisioning, or MMS-incapable entirely
|
|
25
|
+
# because the market's sender-type SKU does not carry it.
|
|
26
|
+
sig { returns(T.nilable(T::Array[Sentdm::MmsMarket])) }
|
|
27
|
+
attr_reader :mms
|
|
28
|
+
|
|
29
|
+
sig { params(mms: T::Array[Sentdm::MmsMarket::OrHash]).void }
|
|
30
|
+
attr_writer :mms
|
|
31
|
+
|
|
32
|
+
# An RCS agent as its owner sees it: the order form back, plus where the
|
|
33
|
+
# submission stands.
|
|
34
|
+
#
|
|
35
|
+
# Not RcsSenderResponse. That one is the admin projection and carries the pipeline
|
|
36
|
+
# we track about a customer's request — internalStatus, statusReason, isLaunched —
|
|
37
|
+
# and the S3 keys behind the assets. None of that is the customer's to read: an
|
|
38
|
+
# internal status is a note to ourselves, and an S3 key is a storage detail that
|
|
39
|
+
# would become a contract the moment it was published.
|
|
40
|
+
#
|
|
41
|
+
# What is here is what the caller sent, in the names it sent them under, plus the
|
|
42
|
+
# three things only we can answer: the record's id, its status, and the number it
|
|
43
|
+
# sends from. So a read after a write shows the form as stored rather than as
|
|
44
|
+
# echoed.
|
|
45
|
+
sig { returns(T.nilable(Sentdm::Channels::RcsAgent)) }
|
|
46
|
+
attr_reader :rcs
|
|
47
|
+
|
|
48
|
+
sig { params(rcs: T.nilable(Sentdm::Channels::RcsAgent::OrHash)).void }
|
|
49
|
+
attr_writer :rcs
|
|
50
|
+
|
|
51
|
+
sig { returns(T.nilable(T::Array[Sentdm::Channels::SMSMarket])) }
|
|
52
|
+
attr_reader :sms
|
|
53
|
+
|
|
54
|
+
sig { params(sms: T::Array[Sentdm::Channels::SMSMarket::OrHash]).void }
|
|
55
|
+
attr_writer :sms
|
|
56
|
+
|
|
57
|
+
# The numbers this profile carries phone calls on, one entry per number, or empty
|
|
58
|
+
# when none. Voice is per number like an SMS market is per country: each number is
|
|
59
|
+
# its own channel row, turned on and off on its own, and one of them is the line
|
|
60
|
+
# app-originated calls fall back to.
|
|
61
|
+
sig { returns(T.nilable(T::Array[Sentdm::Channels::VoiceNumber])) }
|
|
62
|
+
attr_reader :voice
|
|
63
|
+
|
|
64
|
+
sig do
|
|
65
|
+
params(voice: T::Array[Sentdm::Channels::VoiceNumber::OrHash]).void
|
|
66
|
+
end
|
|
67
|
+
attr_writer :voice
|
|
68
|
+
|
|
69
|
+
# The profile's WhatsApp account. Its status is Meta's verification state.
|
|
70
|
+
sig { returns(T.nilable(Sentdm::Channels::WhatsappChannel)) }
|
|
71
|
+
attr_reader :whatsapp
|
|
72
|
+
|
|
73
|
+
sig do
|
|
74
|
+
params(
|
|
75
|
+
whatsapp: T.nilable(Sentdm::Channels::WhatsappChannel::OrHash)
|
|
76
|
+
).void
|
|
77
|
+
end
|
|
78
|
+
attr_writer :whatsapp
|
|
79
|
+
|
|
80
|
+
# The channels a profile sends on. SMS is a list because a profile can send in
|
|
81
|
+
# several markets; WhatsApp and RCS are single, because a profile has one business
|
|
82
|
+
# account and one agent.
|
|
83
|
+
sig do
|
|
84
|
+
params(
|
|
85
|
+
customer_id: T.nilable(String),
|
|
86
|
+
mms: T::Array[Sentdm::MmsMarket::OrHash],
|
|
87
|
+
rcs: T.nilable(Sentdm::Channels::RcsAgent::OrHash),
|
|
88
|
+
sms: T::Array[Sentdm::Channels::SMSMarket::OrHash],
|
|
89
|
+
voice: T::Array[Sentdm::Channels::VoiceNumber::OrHash],
|
|
90
|
+
whatsapp: T.nilable(Sentdm::Channels::WhatsappChannel::OrHash)
|
|
91
|
+
).returns(T.attached_class)
|
|
92
|
+
end
|
|
93
|
+
def self.new(
|
|
94
|
+
# Which customer these channels belong to — the key's own, or the profile named in
|
|
95
|
+
# x-profile-id.
|
|
96
|
+
#
|
|
97
|
+
# Same reason the brand carries one: as the response to /v3/channels there is no
|
|
98
|
+
# other id in the document, and under x-profile-id this is the profile the call
|
|
99
|
+
# resolved to rather than the caller. Absent when nested inside a sender profile,
|
|
100
|
+
# whose own id already says whose they are.
|
|
101
|
+
customer_id: nil,
|
|
102
|
+
# The markets this profile can send MMS in, one entry per country, or empty when
|
|
103
|
+
# none.
|
|
104
|
+
#
|
|
105
|
+
# Appears alongside sms rather than replacing an entry in it: the two are separate
|
|
106
|
+
# senders on the same number and a caller needs to see both — a market can be live
|
|
107
|
+
# for SMS while its MMS row is still provisioning, or MMS-incapable entirely
|
|
108
|
+
# because the market's sender-type SKU does not carry it.
|
|
109
|
+
mms: nil,
|
|
110
|
+
# An RCS agent as its owner sees it: the order form back, plus where the
|
|
111
|
+
# submission stands.
|
|
112
|
+
#
|
|
113
|
+
# Not RcsSenderResponse. That one is the admin projection and carries the pipeline
|
|
114
|
+
# we track about a customer's request — internalStatus, statusReason, isLaunched —
|
|
115
|
+
# and the S3 keys behind the assets. None of that is the customer's to read: an
|
|
116
|
+
# internal status is a note to ourselves, and an S3 key is a storage detail that
|
|
117
|
+
# would become a contract the moment it was published.
|
|
118
|
+
#
|
|
119
|
+
# What is here is what the caller sent, in the names it sent them under, plus the
|
|
120
|
+
# three things only we can answer: the record's id, its status, and the number it
|
|
121
|
+
# sends from. So a read after a write shows the form as stored rather than as
|
|
122
|
+
# echoed.
|
|
123
|
+
rcs: nil,
|
|
124
|
+
sms: nil,
|
|
125
|
+
# The numbers this profile carries phone calls on, one entry per number, or empty
|
|
126
|
+
# when none. Voice is per number like an SMS market is per country: each number is
|
|
127
|
+
# its own channel row, turned on and off on its own, and one of them is the line
|
|
128
|
+
# app-originated calls fall back to.
|
|
129
|
+
voice: nil,
|
|
130
|
+
# The profile's WhatsApp account. Its status is Meta's verification state.
|
|
131
|
+
whatsapp: nil
|
|
132
|
+
)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
sig do
|
|
136
|
+
override.returns(
|
|
137
|
+
{
|
|
138
|
+
customer_id: T.nilable(String),
|
|
139
|
+
mms: T::Array[Sentdm::MmsMarket],
|
|
140
|
+
rcs: T.nilable(Sentdm::Channels::RcsAgent),
|
|
141
|
+
sms: T::Array[Sentdm::Channels::SMSMarket],
|
|
142
|
+
voice: T::Array[Sentdm::Channels::VoiceNumber],
|
|
143
|
+
whatsapp: T.nilable(Sentdm::Channels::WhatsappChannel)
|
|
144
|
+
}
|
|
145
|
+
)
|
|
146
|
+
end
|
|
147
|
+
def to_hash
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ComplianceAttachmentTemplate < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::ComplianceAttachmentTemplate, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# The multipart field name to attach the file under.
|
|
12
|
+
sig { returns(T.nilable(String)) }
|
|
13
|
+
attr_reader :field_name
|
|
14
|
+
|
|
15
|
+
sig { params(field_name: String).void }
|
|
16
|
+
attr_writer :field_name
|
|
17
|
+
|
|
18
|
+
sig { returns(T.nilable(String)) }
|
|
19
|
+
attr_accessor :label
|
|
20
|
+
|
|
21
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
22
|
+
attr_reader :required
|
|
23
|
+
|
|
24
|
+
sig { params(required: T::Boolean).void }
|
|
25
|
+
attr_writer :required
|
|
26
|
+
|
|
27
|
+
# A file this market wants, and the multipart field to send it as.
|
|
28
|
+
#
|
|
29
|
+
# Separate from compliance because a file is not JSON: the channel call accepts
|
|
30
|
+
# multipart, and each file is named after the key it satisfies. Listing documents
|
|
31
|
+
# among the JSON entries would describe a request nobody could send.
|
|
32
|
+
sig do
|
|
33
|
+
params(
|
|
34
|
+
field_name: String,
|
|
35
|
+
label: T.nilable(String),
|
|
36
|
+
required: T::Boolean
|
|
37
|
+
).returns(T.attached_class)
|
|
38
|
+
end
|
|
39
|
+
def self.new(
|
|
40
|
+
# The multipart field name to attach the file under.
|
|
41
|
+
field_name: nil,
|
|
42
|
+
label: nil,
|
|
43
|
+
required: nil
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
sig do
|
|
48
|
+
override.returns(
|
|
49
|
+
{ field_name: String, label: T.nilable(String), required: T::Boolean }
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
def to_hash
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ComplianceRequirement < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::ComplianceRequirement, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Refinement of type where the market demands a specific shape, e.g. e164, url,
|
|
12
|
+
# email, iso3166_alpha2, csv_keywords.
|
|
13
|
+
sig { returns(T.nilable(String)) }
|
|
14
|
+
attr_accessor :format_
|
|
15
|
+
|
|
16
|
+
# Shape of each entry, when this requirement is a list of objects rather than of
|
|
17
|
+
# scalars.
|
|
18
|
+
#
|
|
19
|
+
# The compliance value stays null in the setup body like every other blank — a
|
|
20
|
+
# body that carries a half-filled object is one the endpoint refuses, which would
|
|
21
|
+
# break the promise that the published body can be sent as it stands. So the shape
|
|
22
|
+
# is described here instead, and each entry the caller composes has these keys.
|
|
23
|
+
sig { returns(T.nilable(T::Array[Sentdm::ComplianceRequirement])) }
|
|
24
|
+
attr_accessor :item_fields
|
|
25
|
+
|
|
26
|
+
# Key to use in the compliance map.
|
|
27
|
+
sig { returns(T.nilable(String)) }
|
|
28
|
+
attr_reader :key
|
|
29
|
+
|
|
30
|
+
sig { params(key: String).void }
|
|
31
|
+
attr_writer :key
|
|
32
|
+
|
|
33
|
+
# Human label, suitable for a form field.
|
|
34
|
+
sig { returns(T.nilable(String)) }
|
|
35
|
+
attr_accessor :label
|
|
36
|
+
|
|
37
|
+
# Most entries this value accepts, where the market caps it.
|
|
38
|
+
sig { returns(T.nilable(Integer)) }
|
|
39
|
+
attr_accessor :max_items
|
|
40
|
+
|
|
41
|
+
# Shortest acceptable value, where the market sets one. TCR refuses a consent
|
|
42
|
+
# narrative under 40 characters, and finding that out at submission time is the
|
|
43
|
+
# round trip this exists to save.
|
|
44
|
+
sig { returns(T.nilable(Integer)) }
|
|
45
|
+
attr_accessor :min_length
|
|
46
|
+
|
|
47
|
+
# Why the market asks for this.
|
|
48
|
+
sig { returns(T.nilable(String)) }
|
|
49
|
+
attr_accessor :notes
|
|
50
|
+
|
|
51
|
+
# Accepted values, when the type is an enum or a constrained array.
|
|
52
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
53
|
+
attr_accessor :options
|
|
54
|
+
|
|
55
|
+
# Whether the market always demands this value.
|
|
56
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
57
|
+
attr_reader :required
|
|
58
|
+
|
|
59
|
+
sig { params(required: T::Boolean).void }
|
|
60
|
+
attr_writer :required
|
|
61
|
+
|
|
62
|
+
# Condition that makes this value required, when it is only required in some cases
|
|
63
|
+
# — e.g. brand.entity_type == PUBLIC_PROFIT. Evaluate it against your own payload
|
|
64
|
+
# to know whether to collect the field.
|
|
65
|
+
sig { returns(T.nilable(String)) }
|
|
66
|
+
attr_accessor :required_when
|
|
67
|
+
|
|
68
|
+
# Value type: string, number, boolean, date, enum, object, array or document.
|
|
69
|
+
sig { returns(T.nilable(String)) }
|
|
70
|
+
attr_reader :type
|
|
71
|
+
|
|
72
|
+
sig { params(type: String).void }
|
|
73
|
+
attr_writer :type
|
|
74
|
+
|
|
75
|
+
# One value a market expects in a channel call's compliance map.
|
|
76
|
+
sig do
|
|
77
|
+
params(
|
|
78
|
+
format_: T.nilable(String),
|
|
79
|
+
item_fields: T.nilable(T::Array[Sentdm::ComplianceRequirement]),
|
|
80
|
+
key: String,
|
|
81
|
+
label: T.nilable(String),
|
|
82
|
+
max_items: T.nilable(Integer),
|
|
83
|
+
min_length: T.nilable(Integer),
|
|
84
|
+
notes: T.nilable(String),
|
|
85
|
+
options: T.nilable(T::Array[String]),
|
|
86
|
+
required: T::Boolean,
|
|
87
|
+
required_when: T.nilable(String),
|
|
88
|
+
type: String
|
|
89
|
+
).returns(T.attached_class)
|
|
90
|
+
end
|
|
91
|
+
def self.new(
|
|
92
|
+
# Refinement of type where the market demands a specific shape, e.g. e164, url,
|
|
93
|
+
# email, iso3166_alpha2, csv_keywords.
|
|
94
|
+
format_: nil,
|
|
95
|
+
# Shape of each entry, when this requirement is a list of objects rather than of
|
|
96
|
+
# scalars.
|
|
97
|
+
#
|
|
98
|
+
# The compliance value stays null in the setup body like every other blank — a
|
|
99
|
+
# body that carries a half-filled object is one the endpoint refuses, which would
|
|
100
|
+
# break the promise that the published body can be sent as it stands. So the shape
|
|
101
|
+
# is described here instead, and each entry the caller composes has these keys.
|
|
102
|
+
item_fields: nil,
|
|
103
|
+
# Key to use in the compliance map.
|
|
104
|
+
key: nil,
|
|
105
|
+
# Human label, suitable for a form field.
|
|
106
|
+
label: nil,
|
|
107
|
+
# Most entries this value accepts, where the market caps it.
|
|
108
|
+
max_items: nil,
|
|
109
|
+
# Shortest acceptable value, where the market sets one. TCR refuses a consent
|
|
110
|
+
# narrative under 40 characters, and finding that out at submission time is the
|
|
111
|
+
# round trip this exists to save.
|
|
112
|
+
min_length: nil,
|
|
113
|
+
# Why the market asks for this.
|
|
114
|
+
notes: nil,
|
|
115
|
+
# Accepted values, when the type is an enum or a constrained array.
|
|
116
|
+
options: nil,
|
|
117
|
+
# Whether the market always demands this value.
|
|
118
|
+
required: nil,
|
|
119
|
+
# Condition that makes this value required, when it is only required in some cases
|
|
120
|
+
# — e.g. brand.entity_type == PUBLIC_PROFIT. Evaluate it against your own payload
|
|
121
|
+
# to know whether to collect the field.
|
|
122
|
+
required_when: nil,
|
|
123
|
+
# Value type: string, number, boolean, date, enum, object, array or document.
|
|
124
|
+
type: nil
|
|
125
|
+
)
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
sig do
|
|
129
|
+
override.returns(
|
|
130
|
+
{
|
|
131
|
+
format_: T.nilable(String),
|
|
132
|
+
item_fields: T.nilable(T::Array[Sentdm::ComplianceRequirement]),
|
|
133
|
+
key: String,
|
|
134
|
+
label: T.nilable(String),
|
|
135
|
+
max_items: T.nilable(Integer),
|
|
136
|
+
min_length: T.nilable(Integer),
|
|
137
|
+
notes: T.nilable(String),
|
|
138
|
+
options: T.nilable(T::Array[String]),
|
|
139
|
+
required: T::Boolean,
|
|
140
|
+
required_when: T.nilable(String),
|
|
141
|
+
type: String
|
|
142
|
+
}
|
|
143
|
+
)
|
|
144
|
+
end
|
|
145
|
+
def to_hash
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
end
|