sentdm 0.44.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 +18 -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_event_payload.rb +3 -2
- 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_create_params.rb +11 -1
- 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 +73 -7
- 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/templates.rb +5 -3
- 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_event_payload.rbi +4 -2
- 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_create_params.rbi +12 -0
- 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 +66 -8
- 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/templates.rbi +7 -2
- 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_create_params.rbs +5 -0
- 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/templates.rbs +1 -0
- data/sig/sentdm/resources/users.rbs +1 -1
- data/sig/sentdm/resources/webhooks.rbs +6 -6
- metadata +362 -35
- data/lib/sentdm/models/me_retrieve_response.rb +0 -409
- data/lib/sentdm/models/message_retrieve_activities_response.rb +0 -175
- data/lib/sentdm/models/message_retrieve_status_response.rb +0 -477
- data/lib/sentdm/models/number_lookup_response.rb +0 -104
- data/lib/sentdm/models/profile_complete_response.rb +0 -74
- data/lib/sentdm/models/profile_list_response.rb +0 -65
- data/lib/sentdm/models/user_list_response.rb +0 -65
- data/lib/sentdm/models/webhook_list_event_types_response.rb +0 -65
- data/lib/sentdm/models/webhook_list_events_response.rb +0 -445
- data/rbi/sentdm/models/me_retrieve_response.rbi +0 -705
- data/rbi/sentdm/models/message_retrieve_activities_response.rbi +0 -319
- data/rbi/sentdm/models/message_retrieve_status_response.rbi +0 -765
- data/rbi/sentdm/models/number_lookup_response.rbi +0 -166
- data/rbi/sentdm/models/profile_list_response.rbi +0 -128
- data/rbi/sentdm/models/user_list_response.rbi +0 -128
- data/rbi/sentdm/models/webhook_list_event_types_response.rbi +0 -142
- data/rbi/sentdm/models/webhook_list_events_response.rbi +0 -647
- data/sig/sentdm/models/me_retrieve_response.rbs +0 -306
- data/sig/sentdm/models/message_retrieve_activities_response.rbs +0 -137
- data/sig/sentdm/models/message_retrieve_status_response.rbs +0 -341
- data/sig/sentdm/models/number_lookup_response.rbs +0 -100
- data/sig/sentdm/models/profile_complete_response.rbs +0 -55
- data/sig/sentdm/models/profile_list_response.rbs +0 -67
- data/sig/sentdm/models/user_list_response.rbs +0 -67
- data/sig/sentdm/models/webhook_list_event_types_response.rbs +0 -67
- data/sig/sentdm/models/webhook_list_events_response.rbs +0 -243
- data/sig/sentdm/models/webhook_rotate_secret_response.rbs +0 -51
- data/sig/sentdm/models/webhook_test_response.rbs +0 -55
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Resources
|
|
5
|
+
class Channels
|
|
6
|
+
# The senders you send from, one per channel.
|
|
7
|
+
#
|
|
8
|
+
# **SMS is a list of markets**, each keyed by `(country, number_type)` — a
|
|
9
|
+
# customer can hold `us/10dlc` and `gb/alphanumeric` at once, so a market is
|
|
10
|
+
# addressed by the pair rather than by country alone. **WhatsApp and RCS are
|
|
11
|
+
# single**: a customer has one business account and one agent. **Voice is per
|
|
12
|
+
# number**: each number you hold can carry phone calls on its own
|
|
13
|
+
# (`POST /v3/channels/voice`), each with the callback URL Sent asks what to do
|
|
14
|
+
# with its calls, one of them is the default line for calls placed from your app,
|
|
15
|
+
# and voice tokens are minted with `POST /v3/voice/tokens`. Read your voice
|
|
16
|
+
# numbers with `GET /v3/channels/voice` and change one with
|
|
17
|
+
# `PATCH /v3/channels/voice/{number}`.
|
|
18
|
+
#
|
|
19
|
+
# ## Compliance lives on the market
|
|
20
|
+
#
|
|
21
|
+
# Adding a market records everything that market registers with, in its
|
|
22
|
+
# `compliance` object. Only **US `TEN_DLC`** registers with a regime — The
|
|
23
|
+
# Campaign Registry — and it is the only market whose compliance carries `brand`
|
|
24
|
+
# and `campaign`. Everywhere else compliance is documents, and many markets ask
|
|
25
|
+
# for none at all.
|
|
26
|
+
#
|
|
27
|
+
# `GET` and `PATCH` on a market return and accept the same shape, so what comes
|
|
28
|
+
# back can be sent back: an omitted key is left alone, and a key reported in
|
|
29
|
+
# `requirements` is the path into the body that clears it.
|
|
30
|
+
#
|
|
31
|
+
# Call `GET /v3/compliance/requirements` first — it answers what a market demands
|
|
32
|
+
# before you hold it, with a body you can fill in and post.
|
|
33
|
+
class Rcs
|
|
34
|
+
# Some parameter documentations has been truncated, see
|
|
35
|
+
# {Sentdm::Models::Channels::RcCreateParams} for more details.
|
|
36
|
+
#
|
|
37
|
+
# Asks for an RCS agent and records the order form the carriers vet it against.
|
|
38
|
+
# Always `202`: an agent is approved by the carriers, not by this call, and
|
|
39
|
+
# nothing here can make that happen sooner.
|
|
40
|
+
#
|
|
41
|
+
# ## What it asks for
|
|
42
|
+
#
|
|
43
|
+
# The RCS Agent Order Form — the same one our team fills in on your behalf today,
|
|
44
|
+
# so nothing has to be collected from you twice. **All fields are required** and
|
|
45
|
+
# must be submitted together so the carrier review has everything it needs. The
|
|
46
|
+
# only exception is `opt_in_screenshot_url`.
|
|
47
|
+
#
|
|
48
|
+
# **Agent identity:** `display_name`, `description`, `agent_use_case` (must be one
|
|
49
|
+
# of the accepted use cases; the error names the set), `brand_color` (six-digit
|
|
50
|
+
# hex, `#RRGGBB`).
|
|
51
|
+
#
|
|
52
|
+
# **Brand identity:** `brand_name` — the brand this agent presents. Not taken from
|
|
53
|
+
# `compliance.brand`: a business may present a different brand on RCS than the one
|
|
54
|
+
# its 10DLC registration is filed against, and the carriers vet this one.
|
|
55
|
+
# `privacy_policy_url`, `terms_and_conditions_url`, `website_url`, `logo_url`, and
|
|
56
|
+
# `banner_url` must be absolute `http(s)` URLs that the carriers can fetch without
|
|
57
|
+
# authentication. The form specifies 224×224 px and 50 KB for the logo and
|
|
58
|
+
# 1440×448 px and 200 KB for the banner; these cannot be checked without the image
|
|
59
|
+
# bytes.
|
|
60
|
+
#
|
|
61
|
+
# **Contact details:** `brand_phone_number`, `customer_support_phone_number`,
|
|
62
|
+
# `brand_email`, `customer_support_email`, `contact_name_and_title`.
|
|
63
|
+
#
|
|
64
|
+
# **Company:** `company_ein`, `entity_type`, `official_address` (street, city,
|
|
65
|
+
# state, postal_code, country), `brief_company_description`.
|
|
66
|
+
#
|
|
67
|
+
# **Consent and messages:** `opt_in_process_description`, `start_message`,
|
|
68
|
+
# `help_message`, `stop_message`, `sample_messages` (at least one example
|
|
69
|
+
# message).
|
|
70
|
+
#
|
|
71
|
+
# **Optional:** `opt_in_screenshot_url` (validated as an http(s) URL if supplied).
|
|
72
|
+
#
|
|
73
|
+
# Anything supplied is checked against accepted values rather than passed through:
|
|
74
|
+
# a value the provider rejects would otherwise surface days later, to somebody who
|
|
75
|
+
# cannot fix it without asking you.
|
|
76
|
+
#
|
|
77
|
+
# **A customer has one agent.** Asking again while you have one is `409`.
|
|
78
|
+
#
|
|
79
|
+
# ## What comes back, and what does not
|
|
80
|
+
#
|
|
81
|
+
# Returns **the agent** — the form as stored, plus `id` and `status`. Not your
|
|
82
|
+
# other channels, which this call cannot have changed.
|
|
83
|
+
#
|
|
84
|
+
# `status` is `PROVISIONING` until the agent is handed to the carriers and
|
|
85
|
+
# approved. **`GET /v3/channels` reports `rcs: null` until then** — a channel row
|
|
86
|
+
# is what routing reads to decide you are sendable, and writing one for an
|
|
87
|
+
# unapproved agent would claim a channel that cannot carry traffic.
|
|
88
|
+
#
|
|
89
|
+
# Send `x-profile-id` with an organization key to ask for one of your profiles'
|
|
90
|
+
# agents.
|
|
91
|
+
#
|
|
92
|
+
# @overload create(agent_use_case: nil, banner_url: nil, brand_color: nil, brand_email: nil, brand_name: nil, brand_phone_number: nil, brief_company_description: nil, company_ein: nil, contact_name_and_title: nil, customer_support_email: nil, customer_support_phone_number: nil, description: nil, display_name: nil, entity_type: nil, help_message: nil, logo_url: nil, official_address: nil, opt_in_process_description: nil, opt_in_screenshot_url: nil, privacy_policy_url: nil, sample_messages: nil, sandbox: nil, start_message: nil, stop_message: nil, terms_and_conditions_url: nil, website_url: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
93
|
+
#
|
|
94
|
+
# @param agent_use_case [Symbol, Sentdm::Models::Channels::RcCreateParams::AgentUseCase] Body param: Which kind of traffic the agent carries. One of the accepted use cas
|
|
95
|
+
#
|
|
96
|
+
# @param banner_url [String] Body param
|
|
97
|
+
#
|
|
98
|
+
# @param brand_color [String] Body param: Primary brand colour, as #RRGGBB. Three-digit shorthand is refused:
|
|
99
|
+
#
|
|
100
|
+
# @param brand_email [String] Body param
|
|
101
|
+
#
|
|
102
|
+
# @param brand_name [String] Body param: The brand this agent presents over RCS.
|
|
103
|
+
#
|
|
104
|
+
# @param brand_phone_number [String] Body param: The brand's own number. Also becomes the agent's canonical sending n
|
|
105
|
+
#
|
|
106
|
+
# @param brief_company_description [String] Body param
|
|
107
|
+
#
|
|
108
|
+
# @param company_ein [String] Body param
|
|
109
|
+
#
|
|
110
|
+
# @param contact_name_and_title [String] Body param
|
|
111
|
+
#
|
|
112
|
+
# @param customer_support_email [String] Body param
|
|
113
|
+
#
|
|
114
|
+
# @param customer_support_phone_number [String] Body param
|
|
115
|
+
#
|
|
116
|
+
# @param description [String] Body param: What the agent is for, shown to recipients. Capped by the carriers,
|
|
117
|
+
#
|
|
118
|
+
# @param display_name [String] Body param: The name the agent shows in the messaging client.
|
|
119
|
+
#
|
|
120
|
+
# @param entity_type [String] Body param
|
|
121
|
+
#
|
|
122
|
+
# @param help_message [String] Body param
|
|
123
|
+
#
|
|
124
|
+
# @param logo_url [String] Body param: Publicly reachable logo. It has to be fetchable without authenticati
|
|
125
|
+
#
|
|
126
|
+
# @param official_address [Sentdm::Models::Channels::RcsAddress] Body param: The registered address of the company behind the agent.
|
|
127
|
+
#
|
|
128
|
+
# @param opt_in_process_description [String] Body param: How recipients opt in, in prose. The carriers read this one.
|
|
129
|
+
#
|
|
130
|
+
# @param opt_in_screenshot_url [String, nil] Body param: A screenshot of the opt-in, as a publicly fetchable URL.
|
|
131
|
+
#
|
|
132
|
+
# @param privacy_policy_url [String] Body param: Required by US carriers. Must be an absolute http(s) URL they can fe
|
|
133
|
+
#
|
|
134
|
+
# @param sample_messages [Array<String>] Body param: Examples of what the agent will send, for the review.
|
|
135
|
+
#
|
|
136
|
+
# @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
|
|
137
|
+
#
|
|
138
|
+
# @param start_message [String] Body param
|
|
139
|
+
#
|
|
140
|
+
# @param stop_message [String] Body param
|
|
141
|
+
#
|
|
142
|
+
# @param terms_and_conditions_url [String] Body param
|
|
143
|
+
#
|
|
144
|
+
# @param website_url [String] Body param: The brand's own site.
|
|
145
|
+
#
|
|
146
|
+
# @param idempotency_key [String] Header param: Unique key to ensure idempotent request processing. Must be 1-255
|
|
147
|
+
#
|
|
148
|
+
# @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
|
|
149
|
+
#
|
|
150
|
+
# @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
151
|
+
#
|
|
152
|
+
# @return [Sentdm::Models::Channels::APIResponseOfRcsAgent]
|
|
153
|
+
#
|
|
154
|
+
# @see Sentdm::Models::Channels::RcCreateParams
|
|
155
|
+
def create(params = {})
|
|
156
|
+
parsed, options = Sentdm::Channels::RcCreateParams.dump_request(params)
|
|
157
|
+
header_params = {idempotency_key: "idempotency-key", x_profile_id: "x-profile-id"}
|
|
158
|
+
@client.request(
|
|
159
|
+
method: :post,
|
|
160
|
+
path: "v3/channels/rcs",
|
|
161
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
162
|
+
body: parsed.except(*header_params.keys),
|
|
163
|
+
model: Sentdm::Channels::APIResponseOfRcsAgent,
|
|
164
|
+
options: options
|
|
165
|
+
)
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
# @api private
|
|
169
|
+
#
|
|
170
|
+
# @param client [Sentdm::Client]
|
|
171
|
+
def initialize(client:)
|
|
172
|
+
@client = client
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
end
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Resources
|
|
5
|
+
class Channels
|
|
6
|
+
# The senders you send from, one per channel.
|
|
7
|
+
#
|
|
8
|
+
# **SMS is a list of markets**, each keyed by `(country, number_type)` — a
|
|
9
|
+
# customer can hold `us/10dlc` and `gb/alphanumeric` at once, so a market is
|
|
10
|
+
# addressed by the pair rather than by country alone. **WhatsApp and RCS are
|
|
11
|
+
# single**: a customer has one business account and one agent. **Voice is per
|
|
12
|
+
# number**: each number you hold can carry phone calls on its own
|
|
13
|
+
# (`POST /v3/channels/voice`), each with the callback URL Sent asks what to do
|
|
14
|
+
# with its calls, one of them is the default line for calls placed from your app,
|
|
15
|
+
# and voice tokens are minted with `POST /v3/voice/tokens`. Read your voice
|
|
16
|
+
# numbers with `GET /v3/channels/voice` and change one with
|
|
17
|
+
# `PATCH /v3/channels/voice/{number}`.
|
|
18
|
+
#
|
|
19
|
+
# ## Compliance lives on the market
|
|
20
|
+
#
|
|
21
|
+
# Adding a market records everything that market registers with, in its
|
|
22
|
+
# `compliance` object. Only **US `TEN_DLC`** registers with a regime — The
|
|
23
|
+
# Campaign Registry — and it is the only market whose compliance carries `brand`
|
|
24
|
+
# and `campaign`. Everywhere else compliance is documents, and many markets ask
|
|
25
|
+
# for none at all.
|
|
26
|
+
#
|
|
27
|
+
# `GET` and `PATCH` on a market return and accept the same shape, so what comes
|
|
28
|
+
# back can be sent back: an omitted key is left alone, and a key reported in
|
|
29
|
+
# `requirements` is the path into the body that clears it.
|
|
30
|
+
#
|
|
31
|
+
# Call `GET /v3/compliance/requirements` first — it answers what a market demands
|
|
32
|
+
# before you hold it, with a body you can fill in and post.
|
|
33
|
+
class SMS
|
|
34
|
+
# Some parameter documentations has been truncated, see
|
|
35
|
+
# {Sentdm::Models::Channels::SMSCreateParams} for more details.
|
|
36
|
+
#
|
|
37
|
+
# Gives the customer a sender in one country — the first market it sends in, and
|
|
38
|
+
# the fifth.
|
|
39
|
+
#
|
|
40
|
+
# ## What to have in place first
|
|
41
|
+
#
|
|
42
|
+
# **Call `GET /v3/compliance/requirements?country=US&type=TEN_DLC` first.** It
|
|
43
|
+
# returns this request's body ready to fill in, plus the brand and campaign calls
|
|
44
|
+
# to make before it, in order. You never have to track forty countries' rules
|
|
45
|
+
# yourself.
|
|
46
|
+
#
|
|
47
|
+
# **A market that registers with a compliance regime needs an identity, and this
|
|
48
|
+
# call takes one.** US `TEN_DLC` registers with The Campaign Registry and files
|
|
49
|
+
# that registration against a business identity. Send it in `compliance.brand` and
|
|
50
|
+
# it is recorded here, before the registration that attaches to it — so a customer
|
|
51
|
+
# with no identity reaches a first 10DLC market in one call.
|
|
52
|
+
#
|
|
53
|
+
# `{ "inherit": true }` runs on your organization's instead. A market with neither
|
|
54
|
+
# — none stored, none sent — is `400`, because accepting it would write a channel
|
|
55
|
+
# that could never register and leave it provisioning for ever with nothing saying
|
|
56
|
+
# why.
|
|
57
|
+
#
|
|
58
|
+
# **Everything the regime wants arrives in this request's `compliance`**, as two
|
|
59
|
+
# declared objects: `brand` — the identity the registration is filed against — and
|
|
60
|
+
# `campaign`, with the use case, the consent narrative, the volume, the sample
|
|
61
|
+
# messages and the keywords. There is nothing to set up first. Nothing is
|
|
62
|
+
# submitted here either: the rows are what a submission is later assembled from,
|
|
63
|
+
# and filing is externally rejectable so it happens on its own path.
|
|
64
|
+
#
|
|
65
|
+
# **A half you run yourself has to be complete here.** Whichever of `brand` and
|
|
66
|
+
# `campaign` is your own rather than your organization's must carry every field
|
|
67
|
+
# the regime asks of it, counting what you already hold — send the rest in this
|
|
68
|
+
# request. A missing one is `400` naming each field, rather than a `202` for a
|
|
69
|
+
# market that could never be filed. A half you inherit is asked for nothing.
|
|
70
|
+
#
|
|
71
|
+
# A market that registers with nobody — an alphanumeric sender in most countries —
|
|
72
|
+
# needs neither, and may need documents instead.
|
|
73
|
+
#
|
|
74
|
+
# ## Sending it
|
|
75
|
+
#
|
|
76
|
+
# Takes the same fields `channels.sms` takes on `POST /v3/sender-profiles`,
|
|
77
|
+
# because it is the same work, and both run one provisioning path. `compliance` is
|
|
78
|
+
# top-level and answers for the market in this request, carrying `brand` and
|
|
79
|
+
# `campaign` where the market registers.
|
|
80
|
+
#
|
|
81
|
+
# **Accepts multipart as well as JSON**, with each file named after the compliance
|
|
82
|
+
# key it satisfies — a market that pre-registers its sender needs its documents at
|
|
83
|
+
# the same moment it needs the sender. Every required document must be attached to
|
|
84
|
+
# this request; a missing or invalid file is rejected before the market is added.
|
|
85
|
+
#
|
|
86
|
+
# **`area_codes` puts the sender somewhere specific**, in your order of
|
|
87
|
+
# preference, for a `LOCAL` sender in any country or a US `TEN_DLC` sender — a
|
|
88
|
+
# 10DLC number is an ordinary local long code bound to a registered campaign, so
|
|
89
|
+
# both take the same codes out of the same inventory. It is honoured exactly: you
|
|
90
|
+
# get a number in one of the codes you named or you get none, never one in a code
|
|
91
|
+
# you left out.
|
|
92
|
+
#
|
|
93
|
+
# ## Several numbers
|
|
94
|
+
#
|
|
95
|
+
# **`numbers` lists the numbers you want, one entry per area code**, e.g.
|
|
96
|
+
# `[{"area_code": "212", "quantity": 2}, {"quantity": 1}]` for two numbers in 212
|
|
97
|
+
# and one in any area code. `quantity` defaults to 1, and an entry without
|
|
98
|
+
# `area_code` means any area code. Omit `numbers` for one number. It is for
|
|
99
|
+
# `LOCAL` and `TEN_DLC` only and cannot be combined with `area_codes`. A market
|
|
100
|
+
# holds at most 49 numbers, counting the ones it already has.
|
|
101
|
+
#
|
|
102
|
+
# **On a `LOCAL` market you already hold, `numbers` adds those numbers to it**
|
|
103
|
+
# instead of `409`. US `TEN_DLC` numbers belong to the market's campaign and are
|
|
104
|
+
# assigned when the campaign is approved, not at request time. Until then they
|
|
105
|
+
# read as `PROVISIONING` in the response's `numbers`, each with the area code it
|
|
106
|
+
# was asked for. A profile inheriting your organization's campaign cannot request
|
|
107
|
+
# `numbers` (`400`). `numbers` on a `TEN_DLC` market you already hold is `409`:
|
|
108
|
+
# its numbers belong to its one campaign and are set when the market is created.
|
|
109
|
+
#
|
|
110
|
+
# **A market you already send in is `409`**: adding what is already there is a
|
|
111
|
+
# mistake worth reporting rather than a silent no-op. A market is a
|
|
112
|
+
# `(country, sender_type)` pair, so a **second sender type in a country you
|
|
113
|
+
# already send in is fine** — `US TOLL_FREE` alongside `US TEN_DLC` is the
|
|
114
|
+
# ordinary case. Two of the same type is not.
|
|
115
|
+
#
|
|
116
|
+
# **A market you hold that has no sender yet is not a duplicate**, and re-sending
|
|
117
|
+
# it re-asks for a sender rather than being refused. That is the way out of an
|
|
118
|
+
# area-code request nothing could fill: send the call again to name different
|
|
119
|
+
# codes, or no codes at all to take a number anywhere in the country. It answers
|
|
120
|
+
# `201` with the sender when the pool has one, otherwise `202` with the codes
|
|
121
|
+
# recorded — and changes nothing else; compliance on a market you hold is
|
|
122
|
+
# `PATCH /v3/channels/sms/{country}/{type}`.
|
|
123
|
+
#
|
|
124
|
+
# One exception: while a market's sender type is still unassigned, adding any type
|
|
125
|
+
# to that country is `409` once it has a sender, because the market you have may
|
|
126
|
+
# be about to become the one you asked for.
|
|
127
|
+
#
|
|
128
|
+
# Returns **the market**, in the shape `GET` and `PATCH` on
|
|
129
|
+
# `/v3/channels/sms/{country}/{type}` use — so what this answers can be read back
|
|
130
|
+
# and written back without reshaping. Not every channel you have: adding a market
|
|
131
|
+
# cannot change an RCS agent or a WhatsApp account, and `GET /v3/channels` is the
|
|
132
|
+
# whole picture. `201` when the market is ready; `202` while a sender or a
|
|
133
|
+
# registration is still outstanding.
|
|
134
|
+
#
|
|
135
|
+
# Send `x-profile-id` with an organization key to add a market to one of your
|
|
136
|
+
# profiles.
|
|
137
|
+
#
|
|
138
|
+
# @overload create(number_type:, area_codes: nil, compliance: nil, country: nil, numbers: nil, sandbox: nil, sender_value: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
139
|
+
#
|
|
140
|
+
# @param number_type [Symbol, Sentdm::Models::Channels::SMSCreateParams::NumberType] Body param: Sender type. Decides the provisioning flow and what compliance is as
|
|
141
|
+
#
|
|
142
|
+
# @param area_codes [Array<String>, nil] Body param: The area codes to put this sender in, in your own order of preferenc
|
|
143
|
+
#
|
|
144
|
+
# @param compliance [Sentdm::Models::Channels::MarketCompliance] Body param: The compliance values a market registers with. `brand` and `campaign
|
|
145
|
+
#
|
|
146
|
+
# @param country [String] Body param: ISO 3166-1 alpha-2 country the sender operates in.
|
|
147
|
+
#
|
|
148
|
+
# @param numbers [Array<Sentdm::Models::Channels::SMSNumberRequest>, nil] Body param: The numbers to assign, one entry per area code, e.g.
|
|
149
|
+
#
|
|
150
|
+
# @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
|
|
151
|
+
#
|
|
152
|
+
# @param sender_value [String, nil] Body param: The sender's identity where the caller chooses it. Required when num
|
|
153
|
+
#
|
|
154
|
+
# @param idempotency_key [String] Header param: Unique key to ensure idempotent request processing. Must be 1-255
|
|
155
|
+
#
|
|
156
|
+
# @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
|
|
157
|
+
#
|
|
158
|
+
# @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
159
|
+
#
|
|
160
|
+
# @return [Sentdm::Models::Channels::APIResponseOfSMSMarket]
|
|
161
|
+
#
|
|
162
|
+
# @see Sentdm::Models::Channels::SMSCreateParams
|
|
163
|
+
def create(params)
|
|
164
|
+
parsed, options = Sentdm::Channels::SMSCreateParams.dump_request(params)
|
|
165
|
+
header_params = {idempotency_key: "idempotency-key", x_profile_id: "x-profile-id"}
|
|
166
|
+
@client.request(
|
|
167
|
+
method: :post,
|
|
168
|
+
path: "v3/channels/sms",
|
|
169
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
170
|
+
body: parsed.except(*header_params.keys),
|
|
171
|
+
model: Sentdm::Channels::APIResponseOfSMSMarket,
|
|
172
|
+
options: options
|
|
173
|
+
)
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# Some parameter documentations has been truncated, see
|
|
177
|
+
# {Sentdm::Models::Channels::SMSRetrieveParams} for more details.
|
|
178
|
+
#
|
|
179
|
+
# Reads one market you send in — its sender, where that sender stands, and
|
|
180
|
+
# everything its compliance holds.
|
|
181
|
+
#
|
|
182
|
+
# ## What `compliance` carries
|
|
183
|
+
#
|
|
184
|
+
# A market that registers with a compliance regime reports `brand` — the identity
|
|
185
|
+
# the registration is filed against — and `campaign`, the programme filed against
|
|
186
|
+
# it. Each carries `inherit`, saying whether it is yours or your organization's.
|
|
187
|
+
#
|
|
188
|
+
# A market that registers with nobody has neither, so **both keys are absent**
|
|
189
|
+
# rather than null: absent says this market does not ask, where null would say it
|
|
190
|
+
# asks and you supplied nothing. It reports `documents` instead.
|
|
191
|
+
#
|
|
192
|
+
# `GET /v3/compliance/requirements` says what a market demands of any new
|
|
193
|
+
# customer; this says what you gave it.
|
|
194
|
+
#
|
|
195
|
+
# ## Writing it back
|
|
196
|
+
#
|
|
197
|
+
# **`PATCH` this same path**, with the `compliance` object from this response:
|
|
198
|
+
#
|
|
199
|
+
# ```json
|
|
200
|
+
# { "compliance": { "brand": { "tax_id": "12-3456789" } } }
|
|
201
|
+
# ```
|
|
202
|
+
#
|
|
203
|
+
# Nothing else to learn — what comes back can be sent back, an omitted key is left
|
|
204
|
+
# alone. There is no sub-resource for either half: both are singletons of the
|
|
205
|
+
# market, so both are written here.
|
|
206
|
+
#
|
|
207
|
+
# `GET /v3/compliance/requirements` says what a market demands of anybody; this
|
|
208
|
+
# says what you gave it.
|
|
209
|
+
#
|
|
210
|
+
# Send `x-profile-id` with an organization key to read one of your profiles'
|
|
211
|
+
# markets.
|
|
212
|
+
#
|
|
213
|
+
# @overload retrieve(type, country:, x_profile_id: nil, request_options: {})
|
|
214
|
+
#
|
|
215
|
+
# @param type [String] Path param: Sender type: local, mobile, 10dlc (or ten_dlc), toll_free, short_cod
|
|
216
|
+
#
|
|
217
|
+
# @param country [String] Path param: ISO 3166-1 alpha-2 country code, e.g. us
|
|
218
|
+
#
|
|
219
|
+
# @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
|
|
220
|
+
#
|
|
221
|
+
# @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
222
|
+
#
|
|
223
|
+
# @return [Sentdm::Models::Channels::APIResponseOfSMSMarket]
|
|
224
|
+
#
|
|
225
|
+
# @see Sentdm::Models::Channels::SMSRetrieveParams
|
|
226
|
+
def retrieve(type, params)
|
|
227
|
+
parsed, options = Sentdm::Channels::SMSRetrieveParams.dump_request(params)
|
|
228
|
+
country =
|
|
229
|
+
parsed.delete(:country) do
|
|
230
|
+
raise ArgumentError.new("missing required path argument #{_1}")
|
|
231
|
+
end
|
|
232
|
+
@client.request(
|
|
233
|
+
method: :get,
|
|
234
|
+
path: ["v3/channels/sms/%1$s/%2$s", country, type],
|
|
235
|
+
headers: parsed.transform_keys(x_profile_id: "x-profile-id"),
|
|
236
|
+
model: Sentdm::Channels::APIResponseOfSMSMarket,
|
|
237
|
+
options: options
|
|
238
|
+
)
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
# Some parameter documentations has been truncated, see
|
|
242
|
+
# {Sentdm::Models::Channels::SMSUpdateParams} for more details.
|
|
243
|
+
#
|
|
244
|
+
# Supplies whatever this market is waiting on, and answers with the market as
|
|
245
|
+
# stored — the same shape `GET` on this path returns, so **what comes back can be
|
|
246
|
+
# sent back**.
|
|
247
|
+
#
|
|
248
|
+
# **A market reporting `ACTION_NEEDED` is fixed here**, whatever it is waiting on:
|
|
249
|
+
#
|
|
250
|
+
# | Outstanding | Send |
|
|
251
|
+
# | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
252
|
+
# | a `brand` or `campaign` value (US `TEN_DLC`) | `compliance`, as below |
|
|
253
|
+
# | a document, in any market | a multipart file named after the document's key |
|
|
254
|
+
# | a registration sent back for correction | `compliance.brand` and/or `compliance.campaign` — the identity is accepted even once filed, and the registration goes back for review |
|
|
255
|
+
# | different numbers | `numbers`, the list the market asks for from now on |
|
|
256
|
+
#
|
|
257
|
+
# ## Partial, at every level
|
|
258
|
+
#
|
|
259
|
+
# **An omitted key is left alone. An explicit `null` clears it.** Those are
|
|
260
|
+
# different requests, so `{}` changes nothing and is refused rather than silently
|
|
261
|
+
# accepted, and correcting one field does not blank the others.
|
|
262
|
+
#
|
|
263
|
+
# ```json
|
|
264
|
+
# { "compliance": { "brand": { "contact_phone": "+12125550123" } } }
|
|
265
|
+
# ```
|
|
266
|
+
#
|
|
267
|
+
# That leaves the campaign untouched, along with every other field of the
|
|
268
|
+
# identity.
|
|
269
|
+
#
|
|
270
|
+
# ## What a US `TEN_DLC` market holds
|
|
271
|
+
#
|
|
272
|
+
# Two halves, both singular: `brand`, the identity the registration is filed
|
|
273
|
+
# against, and `campaign`, the programme filed against it. Each carries `inherit`.
|
|
274
|
+
#
|
|
275
|
+
# | Body | Effect |
|
|
276
|
+
# | --------------------------------- | ------------------------------------------------------------- |
|
|
277
|
+
# | `"brand": { … }` | supplies or corrects the identity, and takes one of your own |
|
|
278
|
+
# | `"brand": { "inherit": true }` | runs on your organization's, giving up your own |
|
|
279
|
+
# | `"brand": null` | the same thing, said the short way |
|
|
280
|
+
# | `"campaign": { … }` | supplies or corrects the programme, and takes one of your own |
|
|
281
|
+
# | `"campaign": { "inherit": true }` | runs on your organization's |
|
|
282
|
+
# | key omitted | left exactly as it is |
|
|
283
|
+
#
|
|
284
|
+
# **Nothing here creates a second anything.** One identity and one campaign per
|
|
285
|
+
# market, so a write is an upsert and a replayed request lands on the row it
|
|
286
|
+
# already wrote. Sending the campaign twice does not file two registrations.
|
|
287
|
+
#
|
|
288
|
+
# ## Every other market
|
|
289
|
+
#
|
|
290
|
+
# Markets that register with no regime have neither half, so `compliance` is `400`
|
|
291
|
+
# there. Their compliance is documents, sent here as multipart.
|
|
292
|
+
#
|
|
293
|
+
# ## Documents
|
|
294
|
+
#
|
|
295
|
+
# Send `multipart/form-data` with **each file named after the compliance key it
|
|
296
|
+
# satisfies** — the key the market's `requirements` names. A file that matches no
|
|
297
|
+
# document the market asks for is `400` naming the keys that would, and a file the
|
|
298
|
+
# upload rules refuse (empty, too large, an unsupported type) is `422`.
|
|
299
|
+
# `compliance` and `numbers` may ride in the same form as text parts holding their
|
|
300
|
+
# JSON.
|
|
301
|
+
#
|
|
302
|
+
# ## Numbers
|
|
303
|
+
#
|
|
304
|
+
# `numbers` takes the list `POST /v3/channels/sms` takes, for a `LOCAL` or
|
|
305
|
+
# `TEN_DLC` market, and **replaces** what the market asks for — send the list you
|
|
306
|
+
# want, not a difference. Numbers already assigned stay; a list that leaves one of
|
|
307
|
+
# them out is `400`, because nothing here releases a number.
|
|
308
|
+
#
|
|
309
|
+
# ```json
|
|
310
|
+
# { "numbers": [{ "area_code": "415", "quantity": 2 }, { "quantity": 1 }] }
|
|
311
|
+
# ```
|
|
312
|
+
#
|
|
313
|
+
# A `LOCAL` market is claimed from inventory at once, and whatever inventory
|
|
314
|
+
# cannot cover stays pending. A `TEN_DLC` market's numbers are recorded on its
|
|
315
|
+
# campaign and assigned once the carriers elect it — on the next acquisition cycle
|
|
316
|
+
# when it already has been. They need a campaign of the profile's own: one
|
|
317
|
+
# inherited from the organization is `400`.
|
|
318
|
+
#
|
|
319
|
+
# ## What it will refuse
|
|
320
|
+
#
|
|
321
|
+
# **A filed identity is `409`.** Once the registration has gone to The Campaign
|
|
322
|
+
# Registry they hold a copy, and a local change would diverge from it silently.
|
|
323
|
+
# The campaign is not frozen — omit `brand` and the same body is accepted. The
|
|
324
|
+
# exception is a registration sent back for correction: the identity is accepted,
|
|
325
|
+
# and a correction to either half sends the registration back for review. Refiling
|
|
326
|
+
# it with The Campaign Registry stays with Sent.
|
|
327
|
+
#
|
|
328
|
+
# **More than one campaign is `409`.** The schema permits several and an account
|
|
329
|
+
# built on the admin side may hold them; this surface writes one, and editing
|
|
330
|
+
# whichever sorted first would leave the others unmentioned and unedited.
|
|
331
|
+
#
|
|
332
|
+
# Nothing is submitted to a regime here. These are the rows a submission is later
|
|
333
|
+
# assembled from, which is what lets them be corrected without waiting on
|
|
334
|
+
# something externally rejectable.
|
|
335
|
+
#
|
|
336
|
+
# Send `x-profile-id` with an organization key to write one of your profiles'
|
|
337
|
+
# markets.
|
|
338
|
+
#
|
|
339
|
+
# @overload update(type, country:, compliance: nil, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
|
|
340
|
+
#
|
|
341
|
+
# @param type [String] Path param: Sender type, e.g. 10dlc (or ten_dlc), local or alphanumeric. Only 10
|
|
342
|
+
#
|
|
343
|
+
# @param country [String] Path param: ISO 3166-1 alpha-2 country code, e.g. us
|
|
344
|
+
#
|
|
345
|
+
# @param compliance [Sentdm::Models::Channels::MarketCompliance] Body param: The compliance values a market registers with. `brand` and `campaign
|
|
346
|
+
#
|
|
347
|
+
# @param sandbox [Boolean] Body param
|
|
348
|
+
#
|
|
349
|
+
# @param idempotency_key [String] Header param: Unique key to ensure idempotent request processing. Must be 1-255
|
|
350
|
+
#
|
|
351
|
+
# @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
|
|
352
|
+
#
|
|
353
|
+
# @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
354
|
+
#
|
|
355
|
+
# @return [Sentdm::Models::Channels::APIResponseOfSMSMarket]
|
|
356
|
+
#
|
|
357
|
+
# @see Sentdm::Models::Channels::SMSUpdateParams
|
|
358
|
+
def update(type, params)
|
|
359
|
+
parsed, options = Sentdm::Channels::SMSUpdateParams.dump_request(params)
|
|
360
|
+
country =
|
|
361
|
+
parsed.delete(:country) do
|
|
362
|
+
raise ArgumentError.new("missing required path argument #{_1}")
|
|
363
|
+
end
|
|
364
|
+
header_params = {idempotency_key: "idempotency-key", x_profile_id: "x-profile-id"}
|
|
365
|
+
@client.request(
|
|
366
|
+
method: :patch,
|
|
367
|
+
path: ["v3/channels/sms/%1$s/%2$s", country, type],
|
|
368
|
+
headers: parsed.slice(*header_params.keys).transform_keys(header_params),
|
|
369
|
+
body: parsed.except(*header_params.keys),
|
|
370
|
+
model: Sentdm::Channels::APIResponseOfSMSMarket,
|
|
371
|
+
options: options
|
|
372
|
+
)
|
|
373
|
+
end
|
|
374
|
+
|
|
375
|
+
# Some parameter documentations has been truncated, see
|
|
376
|
+
# {Sentdm::Models::Channels::SMSListParams} for more details.
|
|
377
|
+
#
|
|
378
|
+
# Every market you send SMS in, each with its sender, where that sender stands,
|
|
379
|
+
# and what its compliance holds.
|
|
380
|
+
#
|
|
381
|
+
# The same entries `GET /v3/channels` reports under `sms`, and the same shape
|
|
382
|
+
# `GET /v3/channels/sms/{country}/{type}` returns for one of them — so a list, a
|
|
383
|
+
# member read and the all-channels read cannot describe a market differently.
|
|
384
|
+
#
|
|
385
|
+
# Send `x-profile-id` with an organization key to list one of your profiles'
|
|
386
|
+
# markets.
|
|
387
|
+
#
|
|
388
|
+
# @overload list(x_profile_id: nil, request_options: {})
|
|
389
|
+
#
|
|
390
|
+
# @param x_profile_id [String] Profile UUID to scope the request to a child profile. Only organization API keys
|
|
391
|
+
#
|
|
392
|
+
# @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
393
|
+
#
|
|
394
|
+
# @return [Sentdm::Models::Channels::APIResponseOfListOfSMSMarket]
|
|
395
|
+
#
|
|
396
|
+
# @see Sentdm::Models::Channels::SMSListParams
|
|
397
|
+
def list(params = {})
|
|
398
|
+
parsed, options = Sentdm::Channels::SMSListParams.dump_request(params)
|
|
399
|
+
@client.request(
|
|
400
|
+
method: :get,
|
|
401
|
+
path: "v3/channels/sms",
|
|
402
|
+
headers: parsed.transform_keys(x_profile_id: "x-profile-id"),
|
|
403
|
+
model: Sentdm::Channels::APIResponseOfListOfSMSMarket,
|
|
404
|
+
options: options
|
|
405
|
+
)
|
|
406
|
+
end
|
|
407
|
+
|
|
408
|
+
# @api private
|
|
409
|
+
#
|
|
410
|
+
# @param client [Sentdm::Client]
|
|
411
|
+
def initialize(client:)
|
|
412
|
+
@client = client
|
|
413
|
+
end
|
|
414
|
+
end
|
|
415
|
+
end
|
|
416
|
+
end
|
|
417
|
+
end
|