sentdm 0.45.0 → 0.47.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 +22 -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 +148 -0
- data/lib/sentdm/models/channels/sms_number.rb +52 -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_campaign.rb +10 -0
- data/lib/sentdm/models/channels/supplied_compliance.rb +115 -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 +14 -16
- 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 +7 -57
- 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 +420 -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/campaigns.rb +4 -1
- data/lib/sentdm/resources/profiles.rb +4 -4
- data/lib/sentdm/resources/sender_profiles.rb +465 -0
- data/lib/sentdm/resources/users.rb +2 -2
- data/lib/sentdm/resources/voice/calls/participants.rb +5 -5
- data/lib/sentdm/resources/webhooks.rb +10 -10
- data/lib/sentdm/version.rb +1 -1
- data/lib/sentdm.rb +121 -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 +235 -0
- data/rbi/sentdm/models/channels/sms_number.rbi +74 -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_campaign.rbi +13 -0
- data/rbi/sentdm/models/channels/supplied_compliance.rbi +180 -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 +18 -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 +11 -92
- 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 +440 -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/campaigns.rbi +4 -1
- data/rbi/sentdm/resources/profiles.rbi +2 -2
- data/rbi/sentdm/resources/sender_profiles.rbi +463 -0
- data/rbi/sentdm/resources/users.rbi +1 -1
- data/rbi/sentdm/resources/voice/calls/participants.rbi +5 -5
- 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 +80 -0
- data/sig/sentdm/models/channels/sms_number.rbs +37 -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_campaign.rbs +9 -0
- data/sig/sentdm/models/channels/supplied_compliance.rbs +37 -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 +11 -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 +365 -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,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
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ComplianceRequirements < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::ComplianceRequirements, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Channel the requirements apply to — sms, whatsapp or rcs.
|
|
12
|
+
#
|
|
13
|
+
# Echoed so the document says which channel it describes. It always described one:
|
|
14
|
+
# setup's last step is a specific channel path, and every type is an SMS sender
|
|
15
|
+
# type — but a caller reading the payload had to infer that from the path to know
|
|
16
|
+
# it.
|
|
17
|
+
sig { returns(T.nilable(String)) }
|
|
18
|
+
attr_reader :channel
|
|
19
|
+
|
|
20
|
+
sig { params(channel: String).void }
|
|
21
|
+
attr_writer :channel
|
|
22
|
+
|
|
23
|
+
# ISO 3166-1 alpha-2 country the requirements apply to.
|
|
24
|
+
sig { returns(T.nilable(String)) }
|
|
25
|
+
attr_reader :country
|
|
26
|
+
|
|
27
|
+
sig { params(country: String).void }
|
|
28
|
+
attr_writer :country
|
|
29
|
+
|
|
30
|
+
# Whether this market demands anything before a sender can be registered. When
|
|
31
|
+
# false, the compliance array may be omitted entirely and the profile is ready
|
|
32
|
+
# once provisioned.
|
|
33
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
34
|
+
attr_reader :required
|
|
35
|
+
|
|
36
|
+
sig { params(required: T::Boolean).void }
|
|
37
|
+
attr_writer :required
|
|
38
|
+
|
|
39
|
+
# Values to supply in compliance. Empty when the market demands nothing. Values
|
|
40
|
+
# Sent supplies on your behalf are never listed, and neither are ones it derives
|
|
41
|
+
# from what you send.
|
|
42
|
+
sig { returns(T.nilable(T::Array[Sentdm::ComplianceRequirement])) }
|
|
43
|
+
attr_reader :requirements
|
|
44
|
+
|
|
45
|
+
sig do
|
|
46
|
+
params(
|
|
47
|
+
requirements: T::Array[Sentdm::ComplianceRequirement::OrHash]
|
|
48
|
+
).void
|
|
49
|
+
end
|
|
50
|
+
attr_writer :requirements
|
|
51
|
+
|
|
52
|
+
# Pattern the sender's own value must match, where the market dictates one —
|
|
53
|
+
# alphanumeric sender ids and short codes. Null when the value is
|
|
54
|
+
# carrier-assigned.
|
|
55
|
+
sig { returns(T.nilable(String)) }
|
|
56
|
+
attr_accessor :sender_id_pattern
|
|
57
|
+
|
|
58
|
+
# The calls that set this market up, in the order they have to be made, each
|
|
59
|
+
# carrying a body that can be sent as it stands.
|
|
60
|
+
#
|
|
61
|
+
# This is the answer to "what do I actually do". Requirements describes each value
|
|
62
|
+
# the market wants; this assembles those descriptions into the requests that
|
|
63
|
+
# supply them, so a caller — or an agent acting for one — copies a body out and
|
|
64
|
+
# sends it rather than building one from a table.
|
|
65
|
+
#
|
|
66
|
+
# The last step is always the channel itself, and it is where the regime's own
|
|
67
|
+
# values are supplied. The one before it, where there is one, is the brand a
|
|
68
|
+
# registering market files against — so it is a step of its own and the channel
|
|
69
|
+
# call refuses until it exists. A market that registers with nobody has one step.
|
|
70
|
+
sig { returns(T.nilable(T::Array[Sentdm::ComplianceSetupStep])) }
|
|
71
|
+
attr_reader :setup
|
|
72
|
+
|
|
73
|
+
sig { params(setup: T::Array[Sentdm::ComplianceSetupStep::OrHash]).void }
|
|
74
|
+
attr_writer :setup
|
|
75
|
+
|
|
76
|
+
# Sender type the requirements apply to.
|
|
77
|
+
#
|
|
78
|
+
# Non-nullable while sms is the only channel answered here, because it is the only
|
|
79
|
+
# channel whose senders have a type — the day another one is answered, this
|
|
80
|
+
# becomes nullable along with it. Not nullable in advance: nothing can emit null
|
|
81
|
+
# today, and publishing a shape the API never sends is the same mistake as
|
|
82
|
+
# publishing a field it does not have.
|
|
83
|
+
sig { returns(T.nilable(String)) }
|
|
84
|
+
attr_reader :type
|
|
85
|
+
|
|
86
|
+
sig { params(type: String).void }
|
|
87
|
+
attr_writer :type
|
|
88
|
+
|
|
89
|
+
# Everything a market expects of a sender, for one channel, country and sender
|
|
90
|
+
# type.
|
|
91
|
+
sig do
|
|
92
|
+
params(
|
|
93
|
+
channel: String,
|
|
94
|
+
country: String,
|
|
95
|
+
required: T::Boolean,
|
|
96
|
+
requirements: T::Array[Sentdm::ComplianceRequirement::OrHash],
|
|
97
|
+
sender_id_pattern: T.nilable(String),
|
|
98
|
+
setup: T::Array[Sentdm::ComplianceSetupStep::OrHash],
|
|
99
|
+
type: String
|
|
100
|
+
).returns(T.attached_class)
|
|
101
|
+
end
|
|
102
|
+
def self.new(
|
|
103
|
+
# Channel the requirements apply to — sms, whatsapp or rcs.
|
|
104
|
+
#
|
|
105
|
+
# Echoed so the document says which channel it describes. It always described one:
|
|
106
|
+
# setup's last step is a specific channel path, and every type is an SMS sender
|
|
107
|
+
# type — but a caller reading the payload had to infer that from the path to know
|
|
108
|
+
# it.
|
|
109
|
+
channel: nil,
|
|
110
|
+
# ISO 3166-1 alpha-2 country the requirements apply to.
|
|
111
|
+
country: nil,
|
|
112
|
+
# Whether this market demands anything before a sender can be registered. When
|
|
113
|
+
# false, the compliance array may be omitted entirely and the profile is ready
|
|
114
|
+
# once provisioned.
|
|
115
|
+
required: nil,
|
|
116
|
+
# Values to supply in compliance. Empty when the market demands nothing. Values
|
|
117
|
+
# Sent supplies on your behalf are never listed, and neither are ones it derives
|
|
118
|
+
# from what you send.
|
|
119
|
+
requirements: nil,
|
|
120
|
+
# Pattern the sender's own value must match, where the market dictates one —
|
|
121
|
+
# alphanumeric sender ids and short codes. Null when the value is
|
|
122
|
+
# carrier-assigned.
|
|
123
|
+
sender_id_pattern: nil,
|
|
124
|
+
# The calls that set this market up, in the order they have to be made, each
|
|
125
|
+
# carrying a body that can be sent as it stands.
|
|
126
|
+
#
|
|
127
|
+
# This is the answer to "what do I actually do". Requirements describes each value
|
|
128
|
+
# the market wants; this assembles those descriptions into the requests that
|
|
129
|
+
# supply them, so a caller — or an agent acting for one — copies a body out and
|
|
130
|
+
# sends it rather than building one from a table.
|
|
131
|
+
#
|
|
132
|
+
# The last step is always the channel itself, and it is where the regime's own
|
|
133
|
+
# values are supplied. The one before it, where there is one, is the brand a
|
|
134
|
+
# registering market files against — so it is a step of its own and the channel
|
|
135
|
+
# call refuses until it exists. A market that registers with nobody has one step.
|
|
136
|
+
setup: nil,
|
|
137
|
+
# Sender type the requirements apply to.
|
|
138
|
+
#
|
|
139
|
+
# Non-nullable while sms is the only channel answered here, because it is the only
|
|
140
|
+
# channel whose senders have a type — the day another one is answered, this
|
|
141
|
+
# becomes nullable along with it. Not nullable in advance: nothing can emit null
|
|
142
|
+
# today, and publishing a shape the API never sends is the same mistake as
|
|
143
|
+
# publishing a field it does not have.
|
|
144
|
+
type: nil
|
|
145
|
+
)
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
sig do
|
|
149
|
+
override.returns(
|
|
150
|
+
{
|
|
151
|
+
channel: String,
|
|
152
|
+
country: String,
|
|
153
|
+
required: T::Boolean,
|
|
154
|
+
requirements: T::Array[Sentdm::ComplianceRequirement],
|
|
155
|
+
sender_id_pattern: T.nilable(String),
|
|
156
|
+
setup: T::Array[Sentdm::ComplianceSetupStep],
|
|
157
|
+
type: String
|
|
158
|
+
}
|
|
159
|
+
)
|
|
160
|
+
end
|
|
161
|
+
def to_hash
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ComplianceRetrieveRequirementsParams < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include Sentdm::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
Sentdm::ComplianceRetrieveRequirementsParams,
|
|
13
|
+
Sentdm::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Channel the sender is for: sms, whatsapp or rcs. Defaults to sms, which is the
|
|
18
|
+
# only one answered today — the other two are 501 until their requirements are
|
|
19
|
+
# declared.
|
|
20
|
+
sig { returns(T.nilable(String)) }
|
|
21
|
+
attr_accessor :channel
|
|
22
|
+
|
|
23
|
+
# ISO 3166-1 alpha-2 country code, e.g. US, XK, IN
|
|
24
|
+
sig { returns(T.nilable(String)) }
|
|
25
|
+
attr_accessor :country
|
|
26
|
+
|
|
27
|
+
# Sender type: LOCAL, MOBILE, TEN_DLC, TOLL_FREE, SHORT_CODE, ALPHANUMERIC. 10DLC
|
|
28
|
+
# is accepted as a synonym of TEN_DLC, the same as on POST /v3/sender-profiles.
|
|
29
|
+
# Applies to channel=sms, the only channel whose senders have a type.
|
|
30
|
+
sig { returns(T.nilable(String)) }
|
|
31
|
+
attr_accessor :type
|
|
32
|
+
|
|
33
|
+
sig { returns(T.nilable(String)) }
|
|
34
|
+
attr_reader :x_profile_id
|
|
35
|
+
|
|
36
|
+
sig { params(x_profile_id: String).void }
|
|
37
|
+
attr_writer :x_profile_id
|
|
38
|
+
|
|
39
|
+
sig do
|
|
40
|
+
params(
|
|
41
|
+
channel: T.nilable(String),
|
|
42
|
+
country: T.nilable(String),
|
|
43
|
+
type: T.nilable(String),
|
|
44
|
+
x_profile_id: String,
|
|
45
|
+
request_options: Sentdm::RequestOptions::OrHash
|
|
46
|
+
).returns(T.attached_class)
|
|
47
|
+
end
|
|
48
|
+
def self.new(
|
|
49
|
+
# Channel the sender is for: sms, whatsapp or rcs. Defaults to sms, which is the
|
|
50
|
+
# only one answered today — the other two are 501 until their requirements are
|
|
51
|
+
# declared.
|
|
52
|
+
channel: nil,
|
|
53
|
+
# ISO 3166-1 alpha-2 country code, e.g. US, XK, IN
|
|
54
|
+
country: nil,
|
|
55
|
+
# Sender type: LOCAL, MOBILE, TEN_DLC, TOLL_FREE, SHORT_CODE, ALPHANUMERIC. 10DLC
|
|
56
|
+
# is accepted as a synonym of TEN_DLC, the same as on POST /v3/sender-profiles.
|
|
57
|
+
# Applies to channel=sms, the only channel whose senders have a type.
|
|
58
|
+
type: nil,
|
|
59
|
+
x_profile_id: nil,
|
|
60
|
+
request_options: {}
|
|
61
|
+
)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
sig do
|
|
65
|
+
override.returns(
|
|
66
|
+
{
|
|
67
|
+
channel: T.nilable(String),
|
|
68
|
+
country: T.nilable(String),
|
|
69
|
+
type: T.nilable(String),
|
|
70
|
+
x_profile_id: String,
|
|
71
|
+
request_options: Sentdm::RequestOptions
|
|
72
|
+
}
|
|
73
|
+
)
|
|
74
|
+
end
|
|
75
|
+
def to_hash
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ComplianceSetupStep < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::ComplianceSetupStep, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Files to attach as multipart, when this call takes any. Absent when it does not.
|
|
12
|
+
sig { returns(T.nilable(T::Array[Sentdm::ComplianceAttachmentTemplate])) }
|
|
13
|
+
attr_accessor :attachments
|
|
14
|
+
|
|
15
|
+
# The request body, with every key this market wants already present and the
|
|
16
|
+
# values left blank. Send it as it stands and the response names each blank that
|
|
17
|
+
# still has to be filled.
|
|
18
|
+
sig { returns(T.nilable(T.anything)) }
|
|
19
|
+
attr_reader :body
|
|
20
|
+
|
|
21
|
+
sig { params(body: T.anything).void }
|
|
22
|
+
attr_writer :body
|
|
23
|
+
|
|
24
|
+
sig { returns(T.nilable(String)) }
|
|
25
|
+
attr_reader :method_
|
|
26
|
+
|
|
27
|
+
sig { params(method_: String).void }
|
|
28
|
+
attr_writer :method_
|
|
29
|
+
|
|
30
|
+
# Path to call. Add the x-profile-id header with an organization key to make the
|
|
31
|
+
# same call for one of your sender profiles — there is no separate path for that.
|
|
32
|
+
sig { returns(T.nilable(String)) }
|
|
33
|
+
attr_reader :path
|
|
34
|
+
|
|
35
|
+
sig { params(path: String).void }
|
|
36
|
+
attr_writer :path
|
|
37
|
+
|
|
38
|
+
# What this call sets up: brand or channel.
|
|
39
|
+
sig { returns(T.nilable(String)) }
|
|
40
|
+
attr_reader :resource
|
|
41
|
+
|
|
42
|
+
sig { params(resource: String).void }
|
|
43
|
+
attr_writer :resource
|
|
44
|
+
|
|
45
|
+
# Position in the sequence, from 1. Steps must be performed in this order.
|
|
46
|
+
sig { returns(T.nilable(Integer)) }
|
|
47
|
+
attr_reader :step
|
|
48
|
+
|
|
49
|
+
sig { params(step: Integer).void }
|
|
50
|
+
attr_writer :step
|
|
51
|
+
|
|
52
|
+
# Why this market needs this call, in one sentence.
|
|
53
|
+
sig { returns(T.nilable(String)) }
|
|
54
|
+
attr_reader :why
|
|
55
|
+
|
|
56
|
+
sig { params(why: String).void }
|
|
57
|
+
attr_writer :why
|
|
58
|
+
|
|
59
|
+
# One call to make, with a body that can be sent as it stands.
|
|
60
|
+
#
|
|
61
|
+
# The steps are ordered and the order is load-bearing: a channel that registers
|
|
62
|
+
# with a regime is filed against a brand, so the brand call comes first and the
|
|
63
|
+
# channel call refuses until it has been made. Doing them in order is the whole of
|
|
64
|
+
# setting a market up.
|
|
65
|
+
sig do
|
|
66
|
+
params(
|
|
67
|
+
attachments:
|
|
68
|
+
T.nilable(T::Array[Sentdm::ComplianceAttachmentTemplate::OrHash]),
|
|
69
|
+
body: T.anything,
|
|
70
|
+
method_: String,
|
|
71
|
+
path: String,
|
|
72
|
+
resource: String,
|
|
73
|
+
step: Integer,
|
|
74
|
+
why: String
|
|
75
|
+
).returns(T.attached_class)
|
|
76
|
+
end
|
|
77
|
+
def self.new(
|
|
78
|
+
# Files to attach as multipart, when this call takes any. Absent when it does not.
|
|
79
|
+
attachments: nil,
|
|
80
|
+
# The request body, with every key this market wants already present and the
|
|
81
|
+
# values left blank. Send it as it stands and the response names each blank that
|
|
82
|
+
# still has to be filled.
|
|
83
|
+
body: nil,
|
|
84
|
+
method_: nil,
|
|
85
|
+
# Path to call. Add the x-profile-id header with an organization key to make the
|
|
86
|
+
# same call for one of your sender profiles — there is no separate path for that.
|
|
87
|
+
path: nil,
|
|
88
|
+
# What this call sets up: brand or channel.
|
|
89
|
+
resource: nil,
|
|
90
|
+
# Position in the sequence, from 1. Steps must be performed in this order.
|
|
91
|
+
step: nil,
|
|
92
|
+
# Why this market needs this call, in one sentence.
|
|
93
|
+
why: nil
|
|
94
|
+
)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
sig do
|
|
98
|
+
override.returns(
|
|
99
|
+
{
|
|
100
|
+
attachments:
|
|
101
|
+
T.nilable(T::Array[Sentdm::ComplianceAttachmentTemplate]),
|
|
102
|
+
body: T.anything,
|
|
103
|
+
method_: String,
|
|
104
|
+
path: String,
|
|
105
|
+
resource: String,
|
|
106
|
+
step: Integer,
|
|
107
|
+
why: String
|
|
108
|
+
}
|
|
109
|
+
)
|
|
110
|
+
end
|
|
111
|
+
def to_hash
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
@@ -8,18 +8,11 @@ module Sentdm
|
|
|
8
8
|
T.any(Sentdm::ContactMessageSummary, Sentdm::Internal::AnyHash)
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
sig
|
|
12
|
-
returns(
|
|
13
|
-
T.nilable(T::Array[Sentdm::ContactMessageSummary::ChannelScore])
|
|
14
|
-
)
|
|
15
|
-
end
|
|
11
|
+
sig { returns(T.nilable(T::Array[Sentdm::ChannelScore])) }
|
|
16
12
|
attr_reader :channel_scores
|
|
17
13
|
|
|
18
14
|
sig do
|
|
19
|
-
params(
|
|
20
|
-
channel_scores:
|
|
21
|
-
T::Array[Sentdm::ContactMessageSummary::ChannelScore::OrHash]
|
|
22
|
-
).void
|
|
15
|
+
params(channel_scores: T::Array[Sentdm::ChannelScore::OrHash]).void
|
|
23
16
|
end
|
|
24
17
|
attr_writer :channel_scores
|
|
25
18
|
|
|
@@ -49,8 +42,7 @@ module Sentdm
|
|
|
49
42
|
|
|
50
43
|
sig do
|
|
51
44
|
params(
|
|
52
|
-
channel_scores:
|
|
53
|
-
T::Array[Sentdm::ContactMessageSummary::ChannelScore::OrHash],
|
|
45
|
+
channel_scores: T::Array[Sentdm::ChannelScore::OrHash],
|
|
54
46
|
channels_used: T::Array[String],
|
|
55
47
|
contact_id: String,
|
|
56
48
|
first_message_at: T.nilable(Time),
|
|
@@ -71,8 +63,7 @@ module Sentdm
|
|
|
71
63
|
sig do
|
|
72
64
|
override.returns(
|
|
73
65
|
{
|
|
74
|
-
channel_scores:
|
|
75
|
-
T::Array[Sentdm::ContactMessageSummary::ChannelScore],
|
|
66
|
+
channel_scores: T::Array[Sentdm::ChannelScore],
|
|
76
67
|
channels_used: T::Array[String],
|
|
77
68
|
contact_id: String,
|
|
78
69
|
first_message_at: T.nilable(Time),
|
|
@@ -83,62 +74,6 @@ module Sentdm
|
|
|
83
74
|
end
|
|
84
75
|
def to_hash
|
|
85
76
|
end
|
|
86
|
-
|
|
87
|
-
class ChannelScore < Sentdm::Internal::Type::BaseModel
|
|
88
|
-
OrHash =
|
|
89
|
-
T.type_alias do
|
|
90
|
-
T.any(
|
|
91
|
-
Sentdm::ContactMessageSummary::ChannelScore,
|
|
92
|
-
Sentdm::Internal::AnyHash
|
|
93
|
-
)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
sig { returns(T.nilable(String)) }
|
|
97
|
-
attr_reader :channel
|
|
98
|
-
|
|
99
|
-
sig { params(channel: String).void }
|
|
100
|
-
attr_writer :channel
|
|
101
|
-
|
|
102
|
-
# Percentage (0-100) of messages on this channel that ended in FAILED.
|
|
103
|
-
sig { returns(T.nilable(Integer)) }
|
|
104
|
-
attr_reader :fail_score
|
|
105
|
-
|
|
106
|
-
sig { params(fail_score: Integer).void }
|
|
107
|
-
attr_writer :fail_score
|
|
108
|
-
|
|
109
|
-
# Percentage (0-100) of messages on this channel that reached a successful
|
|
110
|
-
# terminal state: SENT/DELIVERED/READ for outbound, RECEIVED for inbound.
|
|
111
|
-
sig { returns(T.nilable(Integer)) }
|
|
112
|
-
attr_reader :success_score
|
|
113
|
-
|
|
114
|
-
sig { params(success_score: Integer).void }
|
|
115
|
-
attr_writer :success_score
|
|
116
|
-
|
|
117
|
-
sig do
|
|
118
|
-
params(
|
|
119
|
-
channel: String,
|
|
120
|
-
fail_score: Integer,
|
|
121
|
-
success_score: Integer
|
|
122
|
-
).returns(T.attached_class)
|
|
123
|
-
end
|
|
124
|
-
def self.new(
|
|
125
|
-
channel: nil,
|
|
126
|
-
# Percentage (0-100) of messages on this channel that ended in FAILED.
|
|
127
|
-
fail_score: nil,
|
|
128
|
-
# Percentage (0-100) of messages on this channel that reached a successful
|
|
129
|
-
# terminal state: SENT/DELIVERED/READ for outbound, RECEIVED for inbound.
|
|
130
|
-
success_score: nil
|
|
131
|
-
)
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
sig do
|
|
135
|
-
override.returns(
|
|
136
|
-
{ channel: String, fail_score: Integer, success_score: Integer }
|
|
137
|
-
)
|
|
138
|
-
end
|
|
139
|
-
def to_hash
|
|
140
|
-
end
|
|
141
|
-
end
|
|
142
77
|
end
|
|
143
78
|
end
|
|
144
79
|
end
|