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
|
@@ -87,11 +87,7 @@ module Sentdm
|
|
|
87
87
|
sig { returns(T.nilable(String)) }
|
|
88
88
|
attr_accessor :privacy_policy_link
|
|
89
89
|
|
|
90
|
-
sig
|
|
91
|
-
returns(
|
|
92
|
-
T.nilable(Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol)
|
|
93
|
-
)
|
|
94
|
-
end
|
|
90
|
+
sig { returns(T.nilable(Sentdm::TcrCampaignStatus::TaggedSymbol)) }
|
|
95
91
|
attr_accessor :status
|
|
96
92
|
|
|
97
93
|
sig { returns(T.nilable(Time)) }
|
|
@@ -163,8 +159,7 @@ module Sentdm
|
|
|
163
159
|
optout_keywords: T.nilable(String),
|
|
164
160
|
optout_message: T.nilable(String),
|
|
165
161
|
privacy_policy_link: T.nilable(String),
|
|
166
|
-
status:
|
|
167
|
-
T.nilable(Sentdm::Profiles::BrandCampaign::Status::OrSymbol),
|
|
162
|
+
status: T.nilable(Sentdm::TcrCampaignStatus::OrSymbol),
|
|
168
163
|
submitted_at: T.nilable(Time),
|
|
169
164
|
submitted_to_tcr: T::Boolean,
|
|
170
165
|
tcr_campaign_id: T.nilable(String),
|
|
@@ -241,10 +236,7 @@ module Sentdm
|
|
|
241
236
|
optout_keywords: T.nilable(String),
|
|
242
237
|
optout_message: T.nilable(String),
|
|
243
238
|
privacy_policy_link: T.nilable(String),
|
|
244
|
-
status:
|
|
245
|
-
T.nilable(
|
|
246
|
-
Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol
|
|
247
|
-
),
|
|
239
|
+
status: T.nilable(Sentdm::TcrCampaignStatus::TaggedSymbol),
|
|
248
240
|
submitted_at: T.nilable(Time),
|
|
249
241
|
submitted_to_tcr: T::Boolean,
|
|
250
242
|
tcr_campaign_id: T.nilable(String),
|
|
@@ -259,40 +251,6 @@ module Sentdm
|
|
|
259
251
|
end
|
|
260
252
|
def to_hash
|
|
261
253
|
end
|
|
262
|
-
|
|
263
|
-
module Status
|
|
264
|
-
extend Sentdm::Internal::Type::Enum
|
|
265
|
-
|
|
266
|
-
TaggedSymbol =
|
|
267
|
-
T.type_alias do
|
|
268
|
-
T.all(Symbol, Sentdm::Profiles::BrandCampaign::Status)
|
|
269
|
-
end
|
|
270
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
271
|
-
|
|
272
|
-
SENT_CREATED =
|
|
273
|
-
T.let(
|
|
274
|
-
:SENT_CREATED,
|
|
275
|
-
Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol
|
|
276
|
-
)
|
|
277
|
-
ACTIVE =
|
|
278
|
-
T.let(
|
|
279
|
-
:ACTIVE,
|
|
280
|
-
Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol
|
|
281
|
-
)
|
|
282
|
-
EXPIRED =
|
|
283
|
-
T.let(
|
|
284
|
-
:EXPIRED,
|
|
285
|
-
Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol
|
|
286
|
-
)
|
|
287
|
-
|
|
288
|
-
sig do
|
|
289
|
-
override.returns(
|
|
290
|
-
T::Array[Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol]
|
|
291
|
-
)
|
|
292
|
-
end
|
|
293
|
-
def self.values
|
|
294
|
-
end
|
|
295
|
-
end
|
|
296
254
|
end
|
|
297
255
|
end
|
|
298
256
|
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class ProfilesList < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias { T.any(Sentdm::ProfilesList, Sentdm::Internal::AnyHash) }
|
|
8
|
+
|
|
9
|
+
# Pagination metadata for list responses
|
|
10
|
+
sig { returns(T.nilable(Sentdm::PaginationMeta)) }
|
|
11
|
+
attr_reader :pagination
|
|
12
|
+
|
|
13
|
+
sig { params(pagination: Sentdm::PaginationMeta::OrHash).void }
|
|
14
|
+
attr_writer :pagination
|
|
15
|
+
|
|
16
|
+
# The profiles on this page.
|
|
17
|
+
sig { returns(T.nilable(T::Array[Sentdm::ProfileDetail])) }
|
|
18
|
+
attr_reader :profiles
|
|
19
|
+
|
|
20
|
+
sig { params(profiles: T::Array[Sentdm::ProfileDetail::OrHash]).void }
|
|
21
|
+
attr_writer :profiles
|
|
22
|
+
|
|
23
|
+
# The profiles in the organization.
|
|
24
|
+
sig do
|
|
25
|
+
params(
|
|
26
|
+
pagination: Sentdm::PaginationMeta::OrHash,
|
|
27
|
+
profiles: T::Array[Sentdm::ProfileDetail::OrHash]
|
|
28
|
+
).returns(T.attached_class)
|
|
29
|
+
end
|
|
30
|
+
def self.new(
|
|
31
|
+
# Pagination metadata for list responses
|
|
32
|
+
pagination: nil,
|
|
33
|
+
# The profiles on this page.
|
|
34
|
+
profiles: nil
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
sig do
|
|
39
|
+
override.returns(
|
|
40
|
+
{
|
|
41
|
+
pagination: Sentdm::PaginationMeta,
|
|
42
|
+
profiles: T::Array[Sentdm::ProfileDetail]
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
def to_hash
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class SenderProfile < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias { T.any(Sentdm::SenderProfile, Sentdm::Internal::AnyHash) }
|
|
8
|
+
|
|
9
|
+
sig { returns(T.nilable(String)) }
|
|
10
|
+
attr_reader :id
|
|
11
|
+
|
|
12
|
+
sig { params(id: String).void }
|
|
13
|
+
attr_writer :id
|
|
14
|
+
|
|
15
|
+
# The API key for this profile.
|
|
16
|
+
#
|
|
17
|
+
# Returned by create and by nothing else. It is shown once; a read that repeated
|
|
18
|
+
# it would turn every profile list into a credential dump and put the key into any
|
|
19
|
+
# log or cache that keeps a response body.
|
|
20
|
+
#
|
|
21
|
+
# Omitted rather than null on a read. A key field that is always present and
|
|
22
|
+
# always empty suggests it could be populated, which is an invitation to populate
|
|
23
|
+
# it; absent says there is nothing to look for. Doing it with a serializer
|
|
24
|
+
# condition rather than a second response type keeps create and read on one shape,
|
|
25
|
+
# which is what stops them drifting.
|
|
26
|
+
sig { returns(T.nilable(String)) }
|
|
27
|
+
attr_accessor :api_key
|
|
28
|
+
|
|
29
|
+
# Who pays for a sender profile's traffic, as a read reports it.
|
|
30
|
+
#
|
|
31
|
+
# Its own type, field for field the same as BillingRequest. Same reason as the
|
|
32
|
+
# brand: a response is not a request, whatever it carries.
|
|
33
|
+
sig { returns(T.nilable(Sentdm::SenderProfileBilling)) }
|
|
34
|
+
attr_reader :billing
|
|
35
|
+
|
|
36
|
+
sig do
|
|
37
|
+
params(billing: T.nilable(Sentdm::SenderProfileBilling::OrHash)).void
|
|
38
|
+
end
|
|
39
|
+
attr_writer :billing
|
|
40
|
+
|
|
41
|
+
# The channels a profile sends on. SMS is a list because a profile can send in
|
|
42
|
+
# several markets; WhatsApp and RCS are single, because a profile has one business
|
|
43
|
+
# account and one agent.
|
|
44
|
+
sig { returns(T.nilable(Sentdm::ChannelsState)) }
|
|
45
|
+
attr_reader :channels
|
|
46
|
+
|
|
47
|
+
sig { params(channels: T.nilable(Sentdm::ChannelsState::OrHash)).void }
|
|
48
|
+
attr_writer :channels
|
|
49
|
+
|
|
50
|
+
# What a market has been given: the identity it registers under, its programme,
|
|
51
|
+
# and any documents attached.
|
|
52
|
+
#
|
|
53
|
+
# What it does not carry is what the market asks for. That is the subject of GET
|
|
54
|
+
# /v3/compliance/requirements, and it is the same answer for every caller — a
|
|
55
|
+
# description of what a compliance regime wants, not a record of one customer's
|
|
56
|
+
# progress through it. It was reported here as well for a while, which put the
|
|
57
|
+
# same array in six response shapes and left a caller deciding which of two
|
|
58
|
+
# sources to believe.
|
|
59
|
+
#
|
|
60
|
+
# Present on a list read for markets that register (carrying brand and campaign),
|
|
61
|
+
# but with documents absent — documents are not fetched for a list, because a
|
|
62
|
+
# catalog lookup and a document read per market would multiply across a page.
|
|
63
|
+
# Absent documents is distinct from an empty list: absent says they were not
|
|
64
|
+
# fetched; empty says the market has been given none. The parent object is null
|
|
65
|
+
# only when the market registers with nobody and compliance was not computed —
|
|
66
|
+
# nothing to show at all.
|
|
67
|
+
sig { returns(T.nilable(Sentdm::Channels::SuppliedCompliance)) }
|
|
68
|
+
attr_reader :compliance
|
|
69
|
+
|
|
70
|
+
sig do
|
|
71
|
+
params(
|
|
72
|
+
compliance: T.nilable(Sentdm::Channels::SuppliedCompliance::OrHash)
|
|
73
|
+
).void
|
|
74
|
+
end
|
|
75
|
+
attr_writer :compliance
|
|
76
|
+
|
|
77
|
+
sig { returns(T.nilable(Time)) }
|
|
78
|
+
attr_reader :created_at
|
|
79
|
+
|
|
80
|
+
sig { params(created_at: Time).void }
|
|
81
|
+
attr_writer :created_at
|
|
82
|
+
|
|
83
|
+
sig { returns(T.nilable(String)) }
|
|
84
|
+
attr_accessor :description
|
|
85
|
+
|
|
86
|
+
sig { returns(T.nilable(String)) }
|
|
87
|
+
attr_reader :name
|
|
88
|
+
|
|
89
|
+
sig { params(name: String).void }
|
|
90
|
+
attr_writer :name
|
|
91
|
+
|
|
92
|
+
# Who is notified about this profile's events: ORGANIZATION, SENDER_PROFILE, or
|
|
93
|
+
# ORGANIZATION_AND_SENDER_PROFILE. Always present — a profile that never chose
|
|
94
|
+
# reports as ORGANIZATION, the value a create would send to get the default
|
|
95
|
+
# behaviour.
|
|
96
|
+
sig { returns(T.nilable(String)) }
|
|
97
|
+
attr_accessor :notifications
|
|
98
|
+
|
|
99
|
+
sig { returns(T.nilable(String)) }
|
|
100
|
+
attr_accessor :organization_id
|
|
101
|
+
|
|
102
|
+
sig { returns(T.nilable(String)) }
|
|
103
|
+
attr_accessor :short_name
|
|
104
|
+
|
|
105
|
+
# A sender profile as the API reports it — the same document the create call
|
|
106
|
+
# accepts, plus the read-only facts it cannot: each market's status and what it
|
|
107
|
+
# still owes.
|
|
108
|
+
#
|
|
109
|
+
# No status at the profile, brand or campaign level. Brand and campaign are
|
|
110
|
+
# identity, and identity has no lifecycle. What has one is the registration of a
|
|
111
|
+
# sender in a market, and the approval of a channel — so status lives there, where
|
|
112
|
+
# it says which specific thing is blocked rather than flattening several answers
|
|
113
|
+
# into one.
|
|
114
|
+
sig do
|
|
115
|
+
params(
|
|
116
|
+
id: String,
|
|
117
|
+
api_key: T.nilable(String),
|
|
118
|
+
billing: T.nilable(Sentdm::SenderProfileBilling::OrHash),
|
|
119
|
+
channels: T.nilable(Sentdm::ChannelsState::OrHash),
|
|
120
|
+
compliance: T.nilable(Sentdm::Channels::SuppliedCompliance::OrHash),
|
|
121
|
+
created_at: Time,
|
|
122
|
+
description: T.nilable(String),
|
|
123
|
+
name: String,
|
|
124
|
+
notifications: T.nilable(String),
|
|
125
|
+
organization_id: T.nilable(String),
|
|
126
|
+
short_name: T.nilable(String)
|
|
127
|
+
).returns(T.attached_class)
|
|
128
|
+
end
|
|
129
|
+
def self.new(
|
|
130
|
+
id: nil,
|
|
131
|
+
# The API key for this profile.
|
|
132
|
+
#
|
|
133
|
+
# Returned by create and by nothing else. It is shown once; a read that repeated
|
|
134
|
+
# it would turn every profile list into a credential dump and put the key into any
|
|
135
|
+
# log or cache that keeps a response body.
|
|
136
|
+
#
|
|
137
|
+
# Omitted rather than null on a read. A key field that is always present and
|
|
138
|
+
# always empty suggests it could be populated, which is an invitation to populate
|
|
139
|
+
# it; absent says there is nothing to look for. Doing it with a serializer
|
|
140
|
+
# condition rather than a second response type keeps create and read on one shape,
|
|
141
|
+
# which is what stops them drifting.
|
|
142
|
+
api_key: nil,
|
|
143
|
+
# Who pays for a sender profile's traffic, as a read reports it.
|
|
144
|
+
#
|
|
145
|
+
# Its own type, field for field the same as BillingRequest. Same reason as the
|
|
146
|
+
# brand: a response is not a request, whatever it carries.
|
|
147
|
+
billing: nil,
|
|
148
|
+
# The channels a profile sends on. SMS is a list because a profile can send in
|
|
149
|
+
# several markets; WhatsApp and RCS are single, because a profile has one business
|
|
150
|
+
# account and one agent.
|
|
151
|
+
channels: nil,
|
|
152
|
+
# What a market has been given: the identity it registers under, its programme,
|
|
153
|
+
# and any documents attached.
|
|
154
|
+
#
|
|
155
|
+
# What it does not carry is what the market asks for. That is the subject of GET
|
|
156
|
+
# /v3/compliance/requirements, and it is the same answer for every caller — a
|
|
157
|
+
# description of what a compliance regime wants, not a record of one customer's
|
|
158
|
+
# progress through it. It was reported here as well for a while, which put the
|
|
159
|
+
# same array in six response shapes and left a caller deciding which of two
|
|
160
|
+
# sources to believe.
|
|
161
|
+
#
|
|
162
|
+
# Present on a list read for markets that register (carrying brand and campaign),
|
|
163
|
+
# but with documents absent — documents are not fetched for a list, because a
|
|
164
|
+
# catalog lookup and a document read per market would multiply across a page.
|
|
165
|
+
# Absent documents is distinct from an empty list: absent says they were not
|
|
166
|
+
# fetched; empty says the market has been given none. The parent object is null
|
|
167
|
+
# only when the market registers with nobody and compliance was not computed —
|
|
168
|
+
# nothing to show at all.
|
|
169
|
+
compliance: nil,
|
|
170
|
+
created_at: nil,
|
|
171
|
+
description: nil,
|
|
172
|
+
name: nil,
|
|
173
|
+
# Who is notified about this profile's events: ORGANIZATION, SENDER_PROFILE, or
|
|
174
|
+
# ORGANIZATION_AND_SENDER_PROFILE. Always present — a profile that never chose
|
|
175
|
+
# reports as ORGANIZATION, the value a create would send to get the default
|
|
176
|
+
# behaviour.
|
|
177
|
+
notifications: nil,
|
|
178
|
+
organization_id: nil,
|
|
179
|
+
short_name: nil
|
|
180
|
+
)
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
sig do
|
|
184
|
+
override.returns(
|
|
185
|
+
{
|
|
186
|
+
id: String,
|
|
187
|
+
api_key: T.nilable(String),
|
|
188
|
+
billing: T.nilable(Sentdm::SenderProfileBilling),
|
|
189
|
+
channels: T.nilable(Sentdm::ChannelsState),
|
|
190
|
+
compliance: T.nilable(Sentdm::Channels::SuppliedCompliance),
|
|
191
|
+
created_at: Time,
|
|
192
|
+
description: T.nilable(String),
|
|
193
|
+
name: String,
|
|
194
|
+
notifications: T.nilable(String),
|
|
195
|
+
organization_id: T.nilable(String),
|
|
196
|
+
short_name: T.nilable(String)
|
|
197
|
+
}
|
|
198
|
+
)
|
|
199
|
+
end
|
|
200
|
+
def to_hash
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class SenderProfileBilling < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::SenderProfileBilling, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Whether the organization pays, rather than the profile.
|
|
12
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
13
|
+
attr_reader :inherit
|
|
14
|
+
|
|
15
|
+
sig { params(inherit: T::Boolean).void }
|
|
16
|
+
attr_writer :inherit
|
|
17
|
+
|
|
18
|
+
# Who pays for a sender profile's traffic, as a read reports it.
|
|
19
|
+
#
|
|
20
|
+
# Its own type, field for field the same as BillingRequest. Same reason as the
|
|
21
|
+
# brand: a response is not a request, whatever it carries.
|
|
22
|
+
sig { params(inherit: T::Boolean).returns(T.attached_class) }
|
|
23
|
+
def self.new(
|
|
24
|
+
# Whether the organization pays, rather than the profile.
|
|
25
|
+
inherit: nil
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
sig { override.returns({ inherit: T::Boolean }) }
|
|
30
|
+
def to_hash
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class SenderProfileBillingRequest < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::SenderProfileBillingRequest, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Whether the parent organization pays. false is the profile paying for itself.
|
|
12
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
13
|
+
attr_reader :inherit
|
|
14
|
+
|
|
15
|
+
sig { params(inherit: T::Boolean).void }
|
|
16
|
+
attr_writer :inherit
|
|
17
|
+
|
|
18
|
+
# Who pays for what a sender profile sends.
|
|
19
|
+
#
|
|
20
|
+
# Ownership reads the same way as BrandRequest and CampaignRequest: inherit: true
|
|
21
|
+
# is the organization paying; inherit: false (or an empty block) is the profile
|
|
22
|
+
# paying for itself.
|
|
23
|
+
#
|
|
24
|
+
# An absent block is the one place billing differs from brand and campaign: a
|
|
25
|
+
# profile still has to be paid for, so omitting billing stores
|
|
26
|
+
# ProfileAndOrganizationBilling — the profile pays first and its organization
|
|
27
|
+
# covers what the profile's balance cannot (see ResolveStored). { "name": "..." }
|
|
28
|
+
# stays a complete request.
|
|
29
|
+
#
|
|
30
|
+
# Billing carries no fields of its own yet, so a profile paying for itself is {
|
|
31
|
+
# "inherit": false } — or an empty block, which means the same. That is thinner
|
|
32
|
+
# than brand and campaign, where supplying data is the act of owning; it becomes
|
|
33
|
+
# ordinary the moment billing gains a contact or a payment method to carry.
|
|
34
|
+
sig { params(inherit: T::Boolean).returns(T.attached_class) }
|
|
35
|
+
def self.new(
|
|
36
|
+
# Whether the parent organization pays. false is the profile paying for itself.
|
|
37
|
+
inherit: nil
|
|
38
|
+
)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
sig { override.returns({ inherit: T::Boolean }) }
|
|
42
|
+
def to_hash
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
class SenderProfileChannels < Sentdm::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Sentdm::SenderProfileChannels, Sentdm::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Asks for an RCS agent of the profile's own, optionally with the full order form
|
|
12
|
+
# inline.
|
|
13
|
+
#
|
|
14
|
+
# Two modes, distinguished by whether any field is populated: "rcs": {} — intent
|
|
15
|
+
# only. Records that the profile wants its own agent; the order form is submitted
|
|
16
|
+
# separately through POST /v3/channels/rcs once the fields are ready. "rcs": {
|
|
17
|
+
# ...fields... } — full form. All required fields must be present; the agent is
|
|
18
|
+
# created alongside the profile in one call. Omitting opt_in_screenshot_url is
|
|
19
|
+
# allowed.
|
|
20
|
+
sig { returns(T.nilable(Sentdm::SenderProfileRcs)) }
|
|
21
|
+
attr_reader :rcs
|
|
22
|
+
|
|
23
|
+
sig { params(rcs: T.nilable(Sentdm::SenderProfileRcs::OrHash)).void }
|
|
24
|
+
attr_writer :rcs
|
|
25
|
+
|
|
26
|
+
# One SMS market a profile sends in — a country and a sender type.
|
|
27
|
+
#
|
|
28
|
+
# A profile may have several. It is a tenant, not a market: a business sending to
|
|
29
|
+
# two countries is one customer of yours, and forcing it into two profiles would
|
|
30
|
+
# give it two API keys, two inboxes and two contact lists for one business. The
|
|
31
|
+
# platform already assumes many — CustomerChannelProviders is unique on (customer,
|
|
32
|
+
# channel, iso, number).
|
|
33
|
+
#
|
|
34
|
+
# No mode: a sender is the profile's own or it has none. Listing a market is the
|
|
35
|
+
# request for one.
|
|
36
|
+
#
|
|
37
|
+
# Also the discriminator for everything else: the compliance catalog is keyed on
|
|
38
|
+
# (country, number type), and that pair decides which fields brand accepts and
|
|
39
|
+
# what compliance is asked for.
|
|
40
|
+
sig { returns(T.nilable(Sentdm::SenderProfileSMS)) }
|
|
41
|
+
attr_reader :sms
|
|
42
|
+
|
|
43
|
+
sig { params(sms: T.nilable(Sentdm::SenderProfileSMS::OrHash)).void }
|
|
44
|
+
attr_writer :sms
|
|
45
|
+
|
|
46
|
+
# The profile's own WhatsApp Business Account, named by the two identifiers the
|
|
47
|
+
# organization cannot answer for you.
|
|
48
|
+
#
|
|
49
|
+
# No mode: a profile's WABA is its own or it has none. Sharing the organization's
|
|
50
|
+
# would mean sharing its inbox and its throughput, which makes the two
|
|
51
|
+
# indistinguishable to a recipient — so inheriting is not offered rather than
|
|
52
|
+
# refused.
|
|
53
|
+
#
|
|
54
|
+
# Everything derivable is derived. Whenever this block is present, the solution
|
|
55
|
+
# the account arrived through, the client business portfolio that owns it, the
|
|
56
|
+
# access token and that token's expiry are all resolved from the organization by
|
|
57
|
+
# IPartnerSolutionService.ResolveAccountCredentialsAsync — the first two off the
|
|
58
|
+
# org's shared-account listing, the token minted against the org's own solution.
|
|
59
|
+
# They were previously asked for and are no longer accepted: solution_id and
|
|
60
|
+
# owner_business_id are Meta's answer about provenance, so taking them from the
|
|
61
|
+
# caller let a request assert a partnership Meta disagreed with, and the listing
|
|
62
|
+
# has to be consulted regardless because it is what proves the account is one this
|
|
63
|
+
# organization may reach.
|
|
64
|
+
#
|
|
65
|
+
# No access token, and there never was one here: it is minted per client business
|
|
66
|
+
# portfolio and rotates roughly every sixty days, so a pasted value would be stale
|
|
67
|
+
# before it was useful. Asking a customer to mint a System User token in Meta
|
|
68
|
+
# Business Manager is skilled work in a console they were never meant to see, and
|
|
69
|
+
# it would say nothing about which solution the account came from or when it is
|
|
70
|
+
# revoked.
|
|
71
|
+
sig { returns(T.nilable(Sentdm::SenderProfileWhatsapp)) }
|
|
72
|
+
attr_reader :whatsapp
|
|
73
|
+
|
|
74
|
+
sig do
|
|
75
|
+
params(whatsapp: T.nilable(Sentdm::SenderProfileWhatsapp::OrHash)).void
|
|
76
|
+
end
|
|
77
|
+
attr_writer :whatsapp
|
|
78
|
+
|
|
79
|
+
# The channels the profile sends on. Each is independently the profile's own or
|
|
80
|
+
# absent — none can be inherited, so none carries a mode and presence is the whole
|
|
81
|
+
# of the request.
|
|
82
|
+
#
|
|
83
|
+
# A profile can send SMS in several markets, but create takes one — the market it
|
|
84
|
+
# starts in. Further markets are added through POST /v3/channels/sms with
|
|
85
|
+
# x-profile-id, and a read returns them all as a list. Create stays singular
|
|
86
|
+
# permanently rather than being a list that accepts one entry: the constraint is
|
|
87
|
+
# in the type, and there is no later widening to break the contract.
|
|
88
|
+
sig do
|
|
89
|
+
params(
|
|
90
|
+
rcs: T.nilable(Sentdm::SenderProfileRcs::OrHash),
|
|
91
|
+
sms: T.nilable(Sentdm::SenderProfileSMS::OrHash),
|
|
92
|
+
whatsapp: T.nilable(Sentdm::SenderProfileWhatsapp::OrHash)
|
|
93
|
+
).returns(T.attached_class)
|
|
94
|
+
end
|
|
95
|
+
def self.new(
|
|
96
|
+
# Asks for an RCS agent of the profile's own, optionally with the full order form
|
|
97
|
+
# inline.
|
|
98
|
+
#
|
|
99
|
+
# Two modes, distinguished by whether any field is populated: "rcs": {} — intent
|
|
100
|
+
# only. Records that the profile wants its own agent; the order form is submitted
|
|
101
|
+
# separately through POST /v3/channels/rcs once the fields are ready. "rcs": {
|
|
102
|
+
# ...fields... } — full form. All required fields must be present; the agent is
|
|
103
|
+
# created alongside the profile in one call. Omitting opt_in_screenshot_url is
|
|
104
|
+
# allowed.
|
|
105
|
+
rcs: nil,
|
|
106
|
+
# One SMS market a profile sends in — a country and a sender type.
|
|
107
|
+
#
|
|
108
|
+
# A profile may have several. It is a tenant, not a market: a business sending to
|
|
109
|
+
# two countries is one customer of yours, and forcing it into two profiles would
|
|
110
|
+
# give it two API keys, two inboxes and two contact lists for one business. The
|
|
111
|
+
# platform already assumes many — CustomerChannelProviders is unique on (customer,
|
|
112
|
+
# channel, iso, number).
|
|
113
|
+
#
|
|
114
|
+
# No mode: a sender is the profile's own or it has none. Listing a market is the
|
|
115
|
+
# request for one.
|
|
116
|
+
#
|
|
117
|
+
# Also the discriminator for everything else: the compliance catalog is keyed on
|
|
118
|
+
# (country, number type), and that pair decides which fields brand accepts and
|
|
119
|
+
# what compliance is asked for.
|
|
120
|
+
sms: nil,
|
|
121
|
+
# The profile's own WhatsApp Business Account, named by the two identifiers the
|
|
122
|
+
# organization cannot answer for you.
|
|
123
|
+
#
|
|
124
|
+
# No mode: a profile's WABA is its own or it has none. Sharing the organization's
|
|
125
|
+
# would mean sharing its inbox and its throughput, which makes the two
|
|
126
|
+
# indistinguishable to a recipient — so inheriting is not offered rather than
|
|
127
|
+
# refused.
|
|
128
|
+
#
|
|
129
|
+
# Everything derivable is derived. Whenever this block is present, the solution
|
|
130
|
+
# the account arrived through, the client business portfolio that owns it, the
|
|
131
|
+
# access token and that token's expiry are all resolved from the organization by
|
|
132
|
+
# IPartnerSolutionService.ResolveAccountCredentialsAsync — the first two off the
|
|
133
|
+
# org's shared-account listing, the token minted against the org's own solution.
|
|
134
|
+
# They were previously asked for and are no longer accepted: solution_id and
|
|
135
|
+
# owner_business_id are Meta's answer about provenance, so taking them from the
|
|
136
|
+
# caller let a request assert a partnership Meta disagreed with, and the listing
|
|
137
|
+
# has to be consulted regardless because it is what proves the account is one this
|
|
138
|
+
# organization may reach.
|
|
139
|
+
#
|
|
140
|
+
# No access token, and there never was one here: it is minted per client business
|
|
141
|
+
# portfolio and rotates roughly every sixty days, so a pasted value would be stale
|
|
142
|
+
# before it was useful. Asking a customer to mint a System User token in Meta
|
|
143
|
+
# Business Manager is skilled work in a console they were never meant to see, and
|
|
144
|
+
# it would say nothing about which solution the account came from or when it is
|
|
145
|
+
# revoked.
|
|
146
|
+
whatsapp: nil
|
|
147
|
+
)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
sig do
|
|
151
|
+
override.returns(
|
|
152
|
+
{
|
|
153
|
+
rcs: T.nilable(Sentdm::SenderProfileRcs),
|
|
154
|
+
sms: T.nilable(Sentdm::SenderProfileSMS),
|
|
155
|
+
whatsapp: T.nilable(Sentdm::SenderProfileWhatsapp)
|
|
156
|
+
}
|
|
157
|
+
)
|
|
158
|
+
end
|
|
159
|
+
def to_hash
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|