sentdm 0.26.0 → 0.28.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 +40 -0
- data/README.md +1 -27
- data/lib/sentdm/client.rb +71 -8
- data/lib/sentdm/internal/type/base_model.rb +5 -5
- data/lib/sentdm/models/contact_create_response.rb +249 -0
- data/lib/sentdm/models/contact_delete_params.rb +16 -2
- data/lib/sentdm/models/contact_list_response.rb +299 -16
- data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +186 -0
- data/lib/sentdm/models/contact_retrieve_response.rb +249 -0
- data/lib/sentdm/models/contact_update_response.rb +249 -0
- data/lib/sentdm/models/conversation_list_messages_response.rb +436 -0
- data/lib/sentdm/models/conversation_list_response.rb +433 -0
- data/lib/sentdm/models/inbound_message_event.rb +52 -0
- data/lib/sentdm/models/inbound_message_event_payload.rb +81 -0
- data/lib/sentdm/models/me_retrieve_response.rb +242 -12
- data/lib/sentdm/models/message_event.rb +53 -0
- data/lib/sentdm/models/message_event_payload.rb +92 -0
- data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
- data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
- data/lib/sentdm/models/message_send_response.rb +113 -28
- data/lib/sentdm/models/number_lookup_response.rb +74 -6
- data/lib/sentdm/models/profile_complete_response.rb +74 -6
- data/lib/sentdm/models/profile_create_params.rb +378 -26
- data/lib/sentdm/models/profile_create_response.rb +760 -0
- data/lib/sentdm/models/profile_delete_params.rb +16 -2
- data/lib/sentdm/models/profile_list_response.rb +825 -14
- data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
- data/lib/sentdm/models/profile_update_params.rb +391 -24
- data/lib/sentdm/models/profile_update_response.rb +760 -0
- data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
- data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
- data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
- data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
- data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
- data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
- data/lib/sentdm/models/template_create_response.rb +209 -0
- data/lib/sentdm/models/template_event.rb +52 -0
- data/lib/sentdm/models/template_event_payload.rb +88 -0
- data/lib/sentdm/models/template_list_params.rb +9 -2
- data/lib/sentdm/models/template_list_response.rb +262 -16
- data/lib/sentdm/models/template_retrieve_response.rb +209 -0
- data/lib/sentdm/models/template_update_response.rb +209 -0
- data/lib/sentdm/models/user_invite_response.rb +201 -0
- data/lib/sentdm/models/user_list_response.rb +259 -14
- data/lib/sentdm/models/user_remove_params.rb +16 -2
- data/lib/sentdm/models/user_retrieve_response.rb +201 -0
- data/lib/sentdm/models/user_update_role_response.rb +201 -0
- data/lib/sentdm/models/webhook_create_response.rb +229 -0
- data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
- data/lib/sentdm/models/webhook_list_events_response.rb +207 -16
- data/lib/sentdm/models/webhook_list_response.rb +280 -15
- data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
- data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
- data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
- data/lib/sentdm/models/webhook_test_response.rb +74 -6
- data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
- data/lib/sentdm/models/webhook_update_response.rb +229 -0
- data/lib/sentdm/models.rb +11 -51
- data/lib/sentdm/resources/contacts.rb +30 -13
- data/lib/sentdm/resources/conversations.rb +12 -4
- data/lib/sentdm/resources/me.rb +6 -1
- data/lib/sentdm/resources/messages.rb +17 -5
- data/lib/sentdm/resources/numbers.rb +6 -1
- data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
- data/lib/sentdm/resources/profiles.rb +137 -61
- data/lib/sentdm/resources/templates.rb +14 -8
- data/lib/sentdm/resources/users.rb +15 -10
- data/lib/sentdm/resources/webhooks.rb +19 -9
- data/lib/sentdm/version.rb +1 -1
- data/lib/sentdm.rb +28 -32
- data/rbi/sentdm/client.rbi +71 -8
- data/rbi/sentdm/models/contact_create_response.rbi +407 -0
- data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
- data/rbi/sentdm/models/contact_list_response.rbi +527 -21
- data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
- data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
- data/rbi/sentdm/models/contact_update_response.rbi +407 -0
- data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
- data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
- data/rbi/sentdm/models/inbound_message_event.rbi +88 -0
- data/rbi/sentdm/models/inbound_message_event_payload.rbi +122 -0
- data/rbi/sentdm/models/me_retrieve_response.rbi +367 -16
- data/rbi/sentdm/models/message_event.rbi +86 -0
- data/rbi/sentdm/models/message_event_payload.rbi +132 -0
- data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
- data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
- data/rbi/sentdm/models/message_send_response.rbi +178 -32
- data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
- data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
- data/rbi/sentdm/models/profile_create_params.rbi +592 -42
- data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
- data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
- data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
- data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
- data/rbi/sentdm/models/profile_update_params.rbi +610 -30
- data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
- data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
- data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
- data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
- data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
- data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
- data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
- data/rbi/sentdm/models/template_create_response.rbi +349 -0
- data/rbi/sentdm/models/template_event.rbi +84 -0
- data/rbi/sentdm/models/template_event_payload.rbi +131 -0
- data/rbi/sentdm/models/template_list_params.rbi +10 -2
- data/rbi/sentdm/models/template_list_response.rbi +469 -21
- data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
- data/rbi/sentdm/models/template_update_response.rbi +349 -0
- data/rbi/sentdm/models/user_invite_response.rbi +336 -0
- data/rbi/sentdm/models/user_list_response.rbi +463 -18
- data/rbi/sentdm/models/user_remove_params.rbi +19 -2
- data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
- data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
- data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
- data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
- data/rbi/sentdm/models/webhook_list_events_response.rbi +379 -19
- data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
- data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
- data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
- data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
- data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
- data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
- data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
- data/rbi/sentdm/models.rbi +11 -53
- data/rbi/sentdm/resources/contacts.rbi +24 -9
- data/rbi/sentdm/resources/conversations.rbi +10 -2
- data/rbi/sentdm/resources/me.rbi +6 -1
- data/rbi/sentdm/resources/messages.rbi +17 -5
- data/rbi/sentdm/resources/numbers.rbi +6 -1
- data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
- data/rbi/sentdm/resources/profiles.rbi +177 -68
- data/rbi/sentdm/resources/templates.rbi +15 -5
- data/rbi/sentdm/resources/users.rbi +12 -6
- data/rbi/sentdm/resources/webhooks.rbi +15 -5
- data/sig/sentdm/models/contact_create_response.rbs +216 -0
- data/sig/sentdm/models/contact_delete_params.rbs +10 -6
- data/sig/sentdm/models/contact_list_response.rbs +263 -20
- data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
- data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
- data/sig/sentdm/models/contact_update_response.rbs +216 -0
- data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
- data/sig/sentdm/models/conversation_list_response.rbs +404 -0
- data/sig/sentdm/models/inbound_message_event.rbs +39 -0
- data/sig/sentdm/models/inbound_message_event_payload.rbs +69 -0
- data/sig/sentdm/models/me_retrieve_response.rbs +176 -18
- data/sig/sentdm/models/message_event.rbs +39 -0
- data/sig/sentdm/models/message_event_payload.rbs +72 -0
- data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
- data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
- data/sig/sentdm/models/message_send_response.rbs +71 -9
- data/sig/sentdm/models/number_lookup_response.rbs +71 -9
- data/sig/sentdm/models/profile_complete_response.rbs +71 -9
- data/sig/sentdm/models/profile_create_params.rbs +271 -24
- data/sig/sentdm/models/profile_create_response.rbs +559 -0
- data/sig/sentdm/models/profile_delete_params.rbs +10 -6
- data/sig/sentdm/models/profile_list_response.rbs +615 -15
- data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
- data/sig/sentdm/models/profile_update_params.rbs +263 -12
- data/sig/sentdm/models/profile_update_response.rbs +559 -0
- data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
- data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
- data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
- data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
- data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
- data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
- data/sig/sentdm/models/template_create_response.rbs +182 -0
- data/sig/sentdm/models/template_event.rbs +39 -0
- data/sig/sentdm/models/template_event_payload.rbs +76 -0
- data/sig/sentdm/models/template_list_response.rbs +230 -19
- data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
- data/sig/sentdm/models/template_update_response.rbs +182 -0
- data/sig/sentdm/models/user_invite_response.rbs +177 -0
- data/sig/sentdm/models/user_list_response.rbs +233 -15
- data/sig/sentdm/models/user_remove_params.rbs +10 -6
- data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
- data/sig/sentdm/models/user_update_role_response.rbs +177 -0
- data/sig/sentdm/models/webhook_create_response.rbs +208 -0
- data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
- data/sig/sentdm/models/webhook_list_events_response.rbs +160 -19
- data/sig/sentdm/models/webhook_list_response.rbs +255 -20
- data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
- data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
- data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
- data/sig/sentdm/models/webhook_test_response.rbs +71 -9
- data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
- data/sig/sentdm/models/webhook_update_response.rbs +208 -0
- data/sig/sentdm/models.rbs +11 -51
- data/sig/sentdm/resources/contacts.rbs +4 -4
- data/sig/sentdm/resources/conversations.rbs +2 -2
- data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
- data/sig/sentdm/resources/profiles.rbs +11 -11
- data/sig/sentdm/resources/templates.rbs +3 -3
- data/sig/sentdm/resources/users.rbs +3 -3
- data/sig/sentdm/resources/webhooks.rbs +4 -4
- metadata +86 -98
- data/lib/sentdm/models/api_meta.rb +0 -34
- data/lib/sentdm/models/api_response_of_contact.rb +0 -46
- data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
- data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
- data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
- data/lib/sentdm/models/api_response_of_user.rb +0 -43
- data/lib/sentdm/models/api_response_template.rb +0 -43
- data/lib/sentdm/models/api_response_webhook.rb +0 -43
- data/lib/sentdm/models/billing_contact_info.rb +0 -47
- data/lib/sentdm/models/brand_business_info.rb +0 -114
- data/lib/sentdm/models/brand_compliance_info.rb +0 -67
- data/lib/sentdm/models/brand_contact_info.rb +0 -58
- data/lib/sentdm/models/brands_brand_data.rb +0 -34
- data/lib/sentdm/models/contact_message_summary.rb +0 -76
- data/lib/sentdm/models/contact_response.rb +0 -126
- data/lib/sentdm/models/conversation_messages_list.rb +0 -245
- data/lib/sentdm/models/error_detail.rb +0 -42
- data/lib/sentdm/models/mutation_request.rb +0 -20
- data/lib/sentdm/models/pagination_meta.rb +0 -80
- data/lib/sentdm/models/payment_details.rb +0 -44
- data/lib/sentdm/models/profile_detail.rb +0 -597
- data/lib/sentdm/models/profile_settings.rb +0 -66
- data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
- data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
- data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
- data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
- data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
- data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
- data/lib/sentdm/models/template.rb +0 -90
- data/lib/sentdm/models/user_response.rb +0 -82
- data/lib/sentdm/models/webhook_event_type.rb +0 -45
- data/lib/sentdm/models/webhook_response.rb +0 -95
- data/rbi/sentdm/models/api_meta.rbi +0 -55
- data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
- data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
- data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
- data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
- data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
- data/rbi/sentdm/models/api_response_template.rbi +0 -74
- data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
- data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
- data/rbi/sentdm/models/brand_business_info.rbi +0 -162
- data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
- data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
- data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
- data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
- data/rbi/sentdm/models/contact_response.rbi +0 -183
- data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
- data/rbi/sentdm/models/error_detail.rbi +0 -66
- data/rbi/sentdm/models/mutation_request.rbi +0 -32
- data/rbi/sentdm/models/pagination_meta.rbi +0 -135
- data/rbi/sentdm/models/payment_details.rbi +0 -59
- data/rbi/sentdm/models/profile_detail.rbi +0 -866
- data/rbi/sentdm/models/profile_settings.rbi +0 -86
- data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
- data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
- data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
- data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
- data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
- data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
- data/rbi/sentdm/models/template.rbi +0 -129
- data/rbi/sentdm/models/user_response.rbi +0 -118
- data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
- data/rbi/sentdm/models/webhook_response.rbi +0 -140
- data/sig/sentdm/models/api_meta.rbs +0 -27
- data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
- data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
- data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
- data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
- data/sig/sentdm/models/api_response_of_user.rbs +0 -39
- data/sig/sentdm/models/api_response_template.rbs +0 -39
- data/sig/sentdm/models/api_response_webhook.rbs +0 -39
- data/sig/sentdm/models/billing_contact_info.rbs +0 -30
- data/sig/sentdm/models/brand_business_info.rbs +0 -89
- data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
- data/sig/sentdm/models/brand_contact_info.rbs +0 -45
- data/sig/sentdm/models/brands_brand_data.rbs +0 -30
- data/sig/sentdm/models/contact_message_summary.rbs +0 -84
- data/sig/sentdm/models/contact_response.rbs +0 -111
- data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
- data/sig/sentdm/models/error_detail.rbs +0 -39
- data/sig/sentdm/models/mutation_request.rbs +0 -15
- data/sig/sentdm/models/pagination_meta.rbs +0 -67
- data/sig/sentdm/models/payment_details.rbs +0 -30
- data/sig/sentdm/models/profile_detail.rbs +0 -469
- data/sig/sentdm/models/profile_settings.rbs +0 -50
- data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
- data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
- data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
- data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
- data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
- data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
- data/sig/sentdm/models/template.rbs +0 -79
- data/sig/sentdm/models/user_response.rbs +0 -72
- data/sig/sentdm/models/webhook_event_type.rbs +0 -51
- data/sig/sentdm/models/webhook_response.rbs +0 -103
|
@@ -3,19 +3,31 @@
|
|
|
3
3
|
module Sentdm
|
|
4
4
|
module Resources
|
|
5
5
|
class Profiles
|
|
6
|
-
#
|
|
6
|
+
# **Deprecated — use Sender Profiles.**
|
|
7
|
+
#
|
|
8
|
+
# The original profile resource, kept because it has live callers. It still works,
|
|
9
|
+
# and its replacement is `/v3/sender-profiles`, which takes the identity and the
|
|
10
|
+
# campaign in one call instead of across three.
|
|
11
|
+
#
|
|
12
|
+
# New integrations should not start here.
|
|
7
13
|
class Campaigns
|
|
14
|
+
# **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
|
|
15
|
+
# removed in a future release. It still behaves exactly as before, so nothing
|
|
16
|
+
# needs to change today — but new integrations should use `/v3/sender-profiles`,
|
|
17
|
+
# which models a profile's markets, compliance, brand, campaigns and billing
|
|
18
|
+
# explicitly.
|
|
19
|
+
#
|
|
8
20
|
# Creates a new campaign scoped under the brand of the specified profile. Each
|
|
9
21
|
# campaign must include at least one use case with sample messages.
|
|
10
22
|
sig do
|
|
11
23
|
params(
|
|
12
24
|
profile_id: String,
|
|
13
|
-
campaign: Sentdm::Profiles::
|
|
25
|
+
campaign: Sentdm::Profiles::CampaignCreateParams::Campaign::OrHash,
|
|
14
26
|
sandbox: T::Boolean,
|
|
15
27
|
idempotency_key: String,
|
|
16
28
|
x_profile_id: String,
|
|
17
29
|
request_options: Sentdm::RequestOptions::OrHash
|
|
18
|
-
).returns(Sentdm::Profiles::
|
|
30
|
+
).returns(Sentdm::Models::Profiles::CampaignCreateResponse)
|
|
19
31
|
end
|
|
20
32
|
def create(
|
|
21
33
|
# Path param: Profile ID from route
|
|
@@ -37,18 +49,24 @@ module Sentdm
|
|
|
37
49
|
)
|
|
38
50
|
end
|
|
39
51
|
|
|
52
|
+
# **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
|
|
53
|
+
# removed in a future release. It still behaves exactly as before, so nothing
|
|
54
|
+
# needs to change today — but new integrations should use `/v3/sender-profiles`,
|
|
55
|
+
# which models a profile's markets, compliance, brand, campaigns and billing
|
|
56
|
+
# explicitly.
|
|
57
|
+
#
|
|
40
58
|
# Updates an existing campaign under the brand of the specified profile. Cannot
|
|
41
59
|
# update campaigns that have already been submitted to TCR.
|
|
42
60
|
sig do
|
|
43
61
|
params(
|
|
44
62
|
campaign_id: String,
|
|
45
63
|
profile_id: String,
|
|
46
|
-
campaign: Sentdm::Profiles::
|
|
64
|
+
campaign: Sentdm::Profiles::CampaignUpdateParams::Campaign::OrHash,
|
|
47
65
|
sandbox: T::Boolean,
|
|
48
66
|
idempotency_key: String,
|
|
49
67
|
x_profile_id: String,
|
|
50
68
|
request_options: Sentdm::RequestOptions::OrHash
|
|
51
|
-
).returns(Sentdm::Profiles::
|
|
69
|
+
).returns(Sentdm::Models::Profiles::CampaignUpdateResponse)
|
|
52
70
|
end
|
|
53
71
|
def update(
|
|
54
72
|
# Path param: Campaign ID from route
|
|
@@ -72,6 +90,12 @@ module Sentdm
|
|
|
72
90
|
)
|
|
73
91
|
end
|
|
74
92
|
|
|
93
|
+
# **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
|
|
94
|
+
# removed in a future release. It still behaves exactly as before, so nothing
|
|
95
|
+
# needs to change today — but new integrations should use `/v3/sender-profiles`,
|
|
96
|
+
# which models a profile's markets, compliance, brand, campaigns and billing
|
|
97
|
+
# explicitly.
|
|
98
|
+
#
|
|
75
99
|
# Retrieves all campaigns linked to the profile's brand, including use cases and
|
|
76
100
|
# sample messages. Returns inherited campaigns if inherit_tcr_campaign=true.
|
|
77
101
|
sig do
|
|
@@ -79,7 +103,7 @@ module Sentdm
|
|
|
79
103
|
profile_id: String,
|
|
80
104
|
x_profile_id: String,
|
|
81
105
|
request_options: Sentdm::RequestOptions::OrHash
|
|
82
|
-
).returns(Sentdm::Profiles::
|
|
106
|
+
).returns(Sentdm::Models::Profiles::CampaignListResponse)
|
|
83
107
|
end
|
|
84
108
|
def list(
|
|
85
109
|
# Profile ID from route
|
|
@@ -91,6 +115,12 @@ module Sentdm
|
|
|
91
115
|
)
|
|
92
116
|
end
|
|
93
117
|
|
|
118
|
+
# **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
|
|
119
|
+
# removed in a future release. It still behaves exactly as before, so nothing
|
|
120
|
+
# needs to change today — but new integrations should use `/v3/sender-profiles`,
|
|
121
|
+
# which models a profile's markets, compliance, brand, campaigns and billing
|
|
122
|
+
# explicitly.
|
|
123
|
+
#
|
|
94
124
|
# Deletes a campaign by ID from the brand of the specified profile. The profile
|
|
95
125
|
# must belong to the authenticated organization.
|
|
96
126
|
sig do
|
|
@@ -2,35 +2,45 @@
|
|
|
2
2
|
|
|
3
3
|
module Sentdm
|
|
4
4
|
module Resources
|
|
5
|
-
#
|
|
5
|
+
# **Deprecated — use Sender Profiles.**
|
|
6
|
+
#
|
|
7
|
+
# The original profile resource, kept because it has live callers. It still works,
|
|
8
|
+
# and its replacement is `/v3/sender-profiles`, which takes the identity and the
|
|
9
|
+
# campaign in one call instead of across three.
|
|
10
|
+
#
|
|
11
|
+
# New integrations should not start here.
|
|
6
12
|
class Profiles
|
|
7
|
-
#
|
|
13
|
+
# **Deprecated — use Sender Profiles.**
|
|
14
|
+
#
|
|
15
|
+
# The original profile resource, kept because it has live callers. It still works,
|
|
16
|
+
# and its replacement is `/v3/sender-profiles`, which takes the identity and the
|
|
17
|
+
# campaign in one call instead of across three.
|
|
18
|
+
#
|
|
19
|
+
# New integrations should not start here.
|
|
8
20
|
sig { returns(Sentdm::Resources::Profiles::Campaigns) }
|
|
9
21
|
attr_reader :campaigns
|
|
10
22
|
|
|
23
|
+
# **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
|
|
24
|
+
# removed in a future release. It still behaves exactly as before, so nothing
|
|
25
|
+
# needs to change today — but new integrations should use `/v3/sender-profiles`,
|
|
26
|
+
# which models a profile's markets, compliance, brand, campaigns and billing
|
|
27
|
+
# explicitly.
|
|
28
|
+
#
|
|
11
29
|
# Creates a new sender profile within an organization. Profiles represent
|
|
12
30
|
# different brands, departments, or use cases, each with their own messaging
|
|
13
31
|
# configuration and settings. Requires admin role in the organization.
|
|
14
32
|
#
|
|
15
33
|
# ## WhatsApp Business Account
|
|
16
34
|
#
|
|
17
|
-
# Every profile
|
|
18
|
-
#
|
|
35
|
+
# Every profile owns its own WhatsApp Business Account — accounts are never shared
|
|
36
|
+
# between profiles or inherited from the organization. Provide a
|
|
37
|
+
# `whatsapp_business_account` object with `waba_id`, `phone_number_id`, and
|
|
38
|
+
# `access_token`. Obtain these from Meta Business Manager by creating a System
|
|
39
|
+
# User with `whatsapp_business_messaging` and `whatsapp_business_management`
|
|
40
|
+
# permissions.
|
|
19
41
|
#
|
|
20
|
-
#
|
|
21
|
-
#
|
|
22
|
-
# WhatsApp Business Account, which must have been set up via WhatsApp Embedded
|
|
23
|
-
# Signup. This is the recommended path for most use cases.
|
|
24
|
-
#
|
|
25
|
-
# **2. Direct credentials** — Provide a `whatsapp_business_account` object with
|
|
26
|
-
# `waba_id`, `phone_number_id`, and `access_token`. Use this when the profile
|
|
27
|
-
# needs its own independent WhatsApp Business Account. Obtain these from Meta
|
|
28
|
-
# Business Manager by creating a System User with `whatsapp_business_messaging`
|
|
29
|
-
# and `whatsapp_business_management` permissions.
|
|
30
|
-
#
|
|
31
|
-
# If the `whatsapp_business_account` field is omitted and the organization has no
|
|
32
|
-
# WhatsApp Business Account configured, the request will be rejected with
|
|
33
|
-
# HTTP 422.
|
|
42
|
+
# Omit the field and the profile is created without WhatsApp, staying incomplete
|
|
43
|
+
# until it has an account of its own.
|
|
34
44
|
#
|
|
35
45
|
# ## Brand
|
|
36
46
|
#
|
|
@@ -46,11 +56,12 @@ module Sentdm
|
|
|
46
56
|
# when `billing_model` is `"organization"` is not allowed.
|
|
47
57
|
sig do
|
|
48
58
|
params(
|
|
49
|
-
allow_contact_sharing: T::Boolean,
|
|
50
|
-
allow_template_sharing: T::Boolean,
|
|
51
|
-
billing_contact:
|
|
59
|
+
allow_contact_sharing: T.nilable(T::Boolean),
|
|
60
|
+
allow_template_sharing: T.nilable(T::Boolean),
|
|
61
|
+
billing_contact:
|
|
62
|
+
T.nilable(Sentdm::ProfileCreateParams::BillingContact::OrHash),
|
|
52
63
|
billing_model: T.nilable(String),
|
|
53
|
-
brand: T.nilable(Sentdm::
|
|
64
|
+
brand: T.nilable(Sentdm::ProfileCreateParams::Brand::OrHash),
|
|
54
65
|
description: T.nilable(String),
|
|
55
66
|
icon: T.nilable(String),
|
|
56
67
|
inherit_contacts: T.nilable(T::Boolean),
|
|
@@ -58,7 +69,8 @@ module Sentdm
|
|
|
58
69
|
inherit_tcr_campaign: T.nilable(T::Boolean),
|
|
59
70
|
inherit_templates: T.nilable(T::Boolean),
|
|
60
71
|
name: String,
|
|
61
|
-
payment_details:
|
|
72
|
+
payment_details:
|
|
73
|
+
T.nilable(Sentdm::ProfileCreateParams::PaymentDetails::OrHash),
|
|
62
74
|
sandbox: T::Boolean,
|
|
63
75
|
short_name: T.nilable(String),
|
|
64
76
|
whatsapp_business_account:
|
|
@@ -68,12 +80,27 @@ module Sentdm
|
|
|
68
80
|
idempotency_key: String,
|
|
69
81
|
x_profile_id: String,
|
|
70
82
|
request_options: Sentdm::RequestOptions::OrHash
|
|
71
|
-
).returns(Sentdm::
|
|
83
|
+
).returns(Sentdm::Models::ProfileCreateResponse)
|
|
72
84
|
end
|
|
73
85
|
def create(
|
|
74
|
-
# Body param:
|
|
86
|
+
# Body param: Deprecated. Accepted and ignored. Contact and template sharing
|
|
87
|
+
# between sender profiles is gone — a profile sees only what it owns, and the
|
|
88
|
+
# organization still sees all of its profiles' contacts and templates through
|
|
89
|
+
# read-time widening. The four columns behind these flags were dropped by
|
|
90
|
+
# M260720120000.
|
|
91
|
+
#
|
|
92
|
+
# Bound rather than dropped so the properties survive on the wire and in a
|
|
93
|
+
# generated client: an SDK that assigns them keeps compiling, which is the
|
|
94
|
+
# compatibility this exists for. Deliberately not refused either — a 400 would
|
|
95
|
+
# break an integration that is otherwise working, and the capability they ask for
|
|
96
|
+
# is gone either way. Same rule as SendingPhoneNumberProfileId.
|
|
97
|
+
#
|
|
98
|
+
# The read is what makes this survivable: every profile reports all four as false,
|
|
99
|
+
# so a caller that checks its own write can see it did not take. Requests carrying
|
|
100
|
+
# one are logged, so we can tell when nobody sends them any more and the fields
|
|
101
|
+
# can go for real.
|
|
75
102
|
allow_contact_sharing: nil,
|
|
76
|
-
# Body param
|
|
103
|
+
# Body param
|
|
77
104
|
allow_template_sharing: nil,
|
|
78
105
|
# Body param: Billing contact information for a profile. Required when
|
|
79
106
|
# billing_model is "profile" or "profile_and_organization".
|
|
@@ -94,23 +121,21 @@ module Sentdm
|
|
|
94
121
|
description: nil,
|
|
95
122
|
# Body param: Profile icon URL (optional)
|
|
96
123
|
icon: nil,
|
|
97
|
-
# Body param
|
|
98
|
-
# true)
|
|
124
|
+
# Body param
|
|
99
125
|
inherit_contacts: nil,
|
|
100
126
|
# Body param: Whether this profile inherits TCR brand from organization (default:
|
|
101
|
-
#
|
|
127
|
+
# false)
|
|
102
128
|
inherit_tcr_brand: nil,
|
|
103
129
|
# Body param: Whether this profile inherits TCR campaign from organization
|
|
104
|
-
# (default:
|
|
130
|
+
# (default: false)
|
|
105
131
|
inherit_tcr_campaign: nil,
|
|
106
|
-
# Body param
|
|
107
|
-
# true)
|
|
132
|
+
# Body param
|
|
108
133
|
inherit_templates: nil,
|
|
109
134
|
# Body param: Profile name (required)
|
|
110
135
|
name: nil,
|
|
111
|
-
# Body param: Payment card details for
|
|
112
|
-
# "profile" or "profile_and_organization".
|
|
113
|
-
# servers
|
|
136
|
+
# Body param: Payment card details for this profile (optional). Accepted when
|
|
137
|
+
# billing_model is "profile" or "profile_and_organization". Not persisted on our
|
|
138
|
+
# servers — forwarded to the payment processor.
|
|
114
139
|
payment_details: nil,
|
|
115
140
|
# Body param: Sandbox flag - when true, the operation is simulated without side
|
|
116
141
|
# effects Useful for testing integrations without actual execution
|
|
@@ -137,6 +162,12 @@ module Sentdm
|
|
|
137
162
|
)
|
|
138
163
|
end
|
|
139
164
|
|
|
165
|
+
# **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
|
|
166
|
+
# removed in a future release. It still behaves exactly as before, so nothing
|
|
167
|
+
# needs to change today — but new integrations should use `/v3/sender-profiles`,
|
|
168
|
+
# which models a profile's markets, compliance, brand, campaigns and billing
|
|
169
|
+
# explicitly.
|
|
170
|
+
#
|
|
140
171
|
# Retrieves detailed information about a specific sender profile within an
|
|
141
172
|
# organization, including brand and KYC information if a brand has been
|
|
142
173
|
# configured.
|
|
@@ -145,9 +176,10 @@ module Sentdm
|
|
|
145
176
|
profile_id: String,
|
|
146
177
|
x_profile_id: String,
|
|
147
178
|
request_options: Sentdm::RequestOptions::OrHash
|
|
148
|
-
).returns(Sentdm::
|
|
179
|
+
).returns(Sentdm::Models::ProfileRetrieveResponse)
|
|
149
180
|
end
|
|
150
181
|
def retrieve(
|
|
182
|
+
# Profile ID from route parameter
|
|
151
183
|
profile_id,
|
|
152
184
|
# Profile UUID to scope the request to a child profile. Only organization API keys
|
|
153
185
|
# can use this header. The profile must belong to the calling organization.
|
|
@@ -156,6 +188,12 @@ module Sentdm
|
|
|
156
188
|
)
|
|
157
189
|
end
|
|
158
190
|
|
|
191
|
+
# **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
|
|
192
|
+
# removed in a future release. It still behaves exactly as before, so nothing
|
|
193
|
+
# needs to change today — but new integrations should use `/v3/sender-profiles`,
|
|
194
|
+
# which models a profile's markets, compliance, brand, campaigns and billing
|
|
195
|
+
# explicitly.
|
|
196
|
+
#
|
|
159
197
|
# Updates a profile's configuration and settings. Requires admin role in the
|
|
160
198
|
# organization. Only provided fields will be updated (partial update).
|
|
161
199
|
#
|
|
@@ -174,15 +212,30 @@ module Sentdm
|
|
|
174
212
|
# CVC, and billing ZIP code. Payment details are **never stored** on our servers
|
|
175
213
|
# and are forwarded directly to the payment processor. Providing `payment_details`
|
|
176
214
|
# when `billing_model` is `"organization"` is not allowed.
|
|
215
|
+
#
|
|
216
|
+
# ## Deprecated fields
|
|
217
|
+
#
|
|
218
|
+
# `sending_phone_number_profile_id` and `sending_whatsapp_number_profile_id` are
|
|
219
|
+
# **accepted and ignored**. Sender borrowing is gone: a profile cannot send from
|
|
220
|
+
# another profile's number, because two profiles behind one sender makes an
|
|
221
|
+
# inbound reply and a delivery receipt ambiguous about whose they are.
|
|
222
|
+
#
|
|
223
|
+
# Sending either **changes nothing and still returns `200`** — they are kept on
|
|
224
|
+
# the contract so an existing integration keeps working. Reads carry both keys too
|
|
225
|
+
# and always answer `null`, which is how you can confirm the value did not take.
|
|
226
|
+
#
|
|
227
|
+
# Give the profile a sender of its own instead — `POST /v3/channels/sms` or
|
|
228
|
+
# `POST /v3/channels/whatsapp`, sent with the `x-profile-id` header naming it.
|
|
177
229
|
sig do
|
|
178
230
|
params(
|
|
179
231
|
profile_id: String,
|
|
180
232
|
allow_contact_sharing: T.nilable(T::Boolean),
|
|
181
233
|
allow_number_change_during_onboarding: T.nilable(T::Boolean),
|
|
182
234
|
allow_template_sharing: T.nilable(T::Boolean),
|
|
183
|
-
billing_contact:
|
|
235
|
+
billing_contact:
|
|
236
|
+
T.nilable(Sentdm::ProfileUpdateParams::BillingContact::OrHash),
|
|
184
237
|
billing_model: T.nilable(String),
|
|
185
|
-
brand: T.nilable(Sentdm::
|
|
238
|
+
brand: T.nilable(Sentdm::ProfileUpdateParams::Brand::OrHash),
|
|
186
239
|
description: T.nilable(String),
|
|
187
240
|
icon: T.nilable(String),
|
|
188
241
|
inherit_contacts: T.nilable(T::Boolean),
|
|
@@ -190,7 +243,8 @@ module Sentdm
|
|
|
190
243
|
inherit_tcr_campaign: T.nilable(T::Boolean),
|
|
191
244
|
inherit_templates: T.nilable(T::Boolean),
|
|
192
245
|
name: T.nilable(String),
|
|
193
|
-
payment_details:
|
|
246
|
+
payment_details:
|
|
247
|
+
T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails::OrHash),
|
|
194
248
|
sandbox: T::Boolean,
|
|
195
249
|
sending_phone_number: T.nilable(String),
|
|
196
250
|
sending_phone_number_profile_id: T.nilable(String),
|
|
@@ -200,16 +254,26 @@ module Sentdm
|
|
|
200
254
|
idempotency_key: String,
|
|
201
255
|
x_profile_id: String,
|
|
202
256
|
request_options: Sentdm::RequestOptions::OrHash
|
|
203
|
-
).returns(Sentdm::
|
|
257
|
+
).returns(Sentdm::Models::ProfileUpdateResponse)
|
|
204
258
|
end
|
|
205
259
|
def update(
|
|
206
|
-
# Path param
|
|
260
|
+
# Path param: Profile ID from route parameter
|
|
207
261
|
profile_id,
|
|
208
|
-
# Body param:
|
|
262
|
+
# Body param: Deprecated. Accepted and ignored. Contact and template sharing
|
|
263
|
+
# between sender profiles is gone — a profile sees only what it owns, and the
|
|
264
|
+
# organization still sees all of its profiles' contacts and templates through
|
|
265
|
+
# read-time widening. The four columns behind these flags were dropped by
|
|
266
|
+
# M260720120000.
|
|
267
|
+
#
|
|
268
|
+
# Retired the same way as SendingPhoneNumberProfileId, and for the same reason:
|
|
269
|
+
# the properties stay bound so an SDK that assigns them keeps compiling, and a 400
|
|
270
|
+
# would break a working integration over a capability that is gone regardless.
|
|
271
|
+
# Every profile reports all four as false, so a caller that checks its own write
|
|
272
|
+
# can see it did not take.
|
|
209
273
|
allow_contact_sharing: nil,
|
|
210
274
|
# Body param: Whether number changes are allowed during onboarding (optional)
|
|
211
275
|
allow_number_change_during_onboarding: nil,
|
|
212
|
-
# Body param
|
|
276
|
+
# Body param
|
|
213
277
|
allow_template_sharing: nil,
|
|
214
278
|
# Body param: Billing contact information for a profile. Required when
|
|
215
279
|
# billing_model is "profile" or "profile_and_organization".
|
|
@@ -230,30 +294,47 @@ module Sentdm
|
|
|
230
294
|
description: nil,
|
|
231
295
|
# Body param: Profile icon URL (optional)
|
|
232
296
|
icon: nil,
|
|
233
|
-
# Body param
|
|
297
|
+
# Body param
|
|
234
298
|
inherit_contacts: nil,
|
|
235
299
|
# Body param: Whether this profile inherits TCR brand from organization (optional)
|
|
236
300
|
inherit_tcr_brand: nil,
|
|
237
301
|
# Body param: Whether this profile inherits TCR campaign from organization
|
|
238
302
|
# (optional)
|
|
239
303
|
inherit_tcr_campaign: nil,
|
|
240
|
-
# Body param
|
|
304
|
+
# Body param
|
|
241
305
|
inherit_templates: nil,
|
|
242
306
|
# Body param: Profile name (optional)
|
|
243
307
|
name: nil,
|
|
244
|
-
# Body param: Payment card details for
|
|
245
|
-
# "profile" or "profile_and_organization".
|
|
246
|
-
# servers
|
|
308
|
+
# Body param: Payment card details for this profile (optional). Accepted when
|
|
309
|
+
# billing_model is "profile" or "profile_and_organization". Not persisted on our
|
|
310
|
+
# servers — forwarded to the payment processor.
|
|
247
311
|
payment_details: nil,
|
|
248
312
|
# Body param: Sandbox flag - when true, the operation is simulated without side
|
|
249
313
|
# effects Useful for testing integrations without actual execution
|
|
250
314
|
sandbox: nil,
|
|
251
315
|
# Body param: Direct phone number for SMS sending (optional)
|
|
252
316
|
sending_phone_number: nil,
|
|
253
|
-
# Body param:
|
|
317
|
+
# Body param: Deprecated. Accepted and ignored. Sender borrowing is gone: a
|
|
318
|
+
# profile cannot send from another profile's SMS number. Supplying this changes
|
|
319
|
+
# nothing and the request still succeeds.
|
|
320
|
+
#
|
|
321
|
+
# Bound rather than dropped so the property survives on the wire and in a
|
|
322
|
+
# generated client — an SDK that assigns it keeps compiling, which is the
|
|
323
|
+
# compatibility this exists for. It is deliberately not refused: a 400 here would
|
|
324
|
+
# break an integration that is otherwise working, and the capability it asks for
|
|
325
|
+
# is gone either way.
|
|
326
|
+
#
|
|
327
|
+
# The trade-off, stated plainly. A caller asking for borrowing is told it
|
|
328
|
+
# succeeded when nothing happened. What makes that survivable is the read:
|
|
329
|
+
# sending_phone_number_profile_id comes back null on every profile, so a caller
|
|
330
|
+
# that checks its own write can see it did not take. Every request that carries
|
|
331
|
+
# one is logged, so we can tell when nobody is sending it any more and the field
|
|
332
|
+
# can go for real.
|
|
333
|
+
#
|
|
334
|
+
# Give the profile a sender of its own instead: POST /v3/channels/sms with the
|
|
335
|
+
# x-profile-id header naming it.
|
|
254
336
|
sending_phone_number_profile_id: nil,
|
|
255
|
-
# Body param
|
|
256
|
-
# (optional)
|
|
337
|
+
# Body param
|
|
257
338
|
sending_whatsapp_number_profile_id: nil,
|
|
258
339
|
# Body param: Profile short name/abbreviation (optional). Must be 3–11 characters,
|
|
259
340
|
# contain only letters, numbers, and spaces, and include at least one letter.
|
|
@@ -273,6 +354,12 @@ module Sentdm
|
|
|
273
354
|
)
|
|
274
355
|
end
|
|
275
356
|
|
|
357
|
+
# **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
|
|
358
|
+
# removed in a future release. It still behaves exactly as before, so nothing
|
|
359
|
+
# needs to change today — but new integrations should use `/v3/sender-profiles`,
|
|
360
|
+
# which models a profile's markets, compliance, brand, campaigns and billing
|
|
361
|
+
# explicitly.
|
|
362
|
+
#
|
|
276
363
|
# Retrieves all sender profiles within an organization, including brand
|
|
277
364
|
# information for each profile. Profiles represent different brands, departments,
|
|
278
365
|
# or use cases within an organization, each with their own messaging
|
|
@@ -291,8 +378,17 @@ module Sentdm
|
|
|
291
378
|
)
|
|
292
379
|
end
|
|
293
380
|
|
|
381
|
+
# **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
|
|
382
|
+
# removed in a future release. It still behaves exactly as before, so nothing
|
|
383
|
+
# needs to change today — but new integrations should use `/v3/sender-profiles`,
|
|
384
|
+
# which models a profile's markets, compliance, brand, campaigns and billing
|
|
385
|
+
# explicitly.
|
|
386
|
+
#
|
|
294
387
|
# Soft deletes a sender profile. The profile will be marked as deleted but data is
|
|
295
|
-
# retained.
|
|
388
|
+
# retained. Anything it still held is released first: phone numbers return to our
|
|
389
|
+
# inventory and can go to whoever asks next, its own WhatsApp account is
|
|
390
|
+
# deregistered, and its routing rules stop being used. Requires admin role in the
|
|
391
|
+
# organization.
|
|
296
392
|
sig do
|
|
297
393
|
params(
|
|
298
394
|
profile_id: String,
|
|
@@ -302,7 +398,7 @@ module Sentdm
|
|
|
302
398
|
).void
|
|
303
399
|
end
|
|
304
400
|
def delete(
|
|
305
|
-
# Path param
|
|
401
|
+
# Path param: Profile ID from route parameter
|
|
306
402
|
profile_id,
|
|
307
403
|
# Body param: Sandbox flag - when true, the operation is simulated without side
|
|
308
404
|
# effects Useful for testing integrations without actual execution
|
|
@@ -315,15 +411,27 @@ module Sentdm
|
|
|
315
411
|
)
|
|
316
412
|
end
|
|
317
413
|
|
|
414
|
+
# **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
|
|
415
|
+
# removed in a future release. It still behaves exactly as before, so nothing
|
|
416
|
+
# needs to change today — but new integrations should use `/v3/sender-profiles`,
|
|
417
|
+
# which models a profile's markets, compliance, brand, campaigns and billing
|
|
418
|
+
# explicitly.
|
|
419
|
+
#
|
|
318
420
|
# Final step in the profile compliance workflow. Validates all prerequisites (KYC,
|
|
319
421
|
# brand, campaigns, required documents), connects the profile to the SMS and
|
|
320
|
-
# WhatsApp channels, and
|
|
321
|
-
#
|
|
322
|
-
# profile is already
|
|
323
|
-
# it returns 202 and calls the provided webhook URL
|
|
324
|
-
# finishes.
|
|
422
|
+
# WhatsApp channels, and marks it onboarded. Prerequisites are always validated
|
|
423
|
+
# first: if any fail the call returns 400 naming every unmet one, and nothing is
|
|
424
|
+
# started. If they pass and the profile is already onboarded, the call returns 200
|
|
425
|
+
# and does nothing. Otherwise it returns 202 and calls the provided webhook URL
|
|
426
|
+
# when background processing finishes.
|
|
427
|
+
#
|
|
428
|
+
# Callable with the organization's API key or the profile's own key. The key's
|
|
429
|
+
# user must be an admin or owner of the profile, or of the organization it belongs
|
|
430
|
+
# to.
|
|
325
431
|
#
|
|
326
|
-
# Prerequisites
|
|
432
|
+
# Prerequisites (all but the last are checked before the already-onboarded
|
|
433
|
+
# short-circuit, matching the previous contract; the last is checked after it, so
|
|
434
|
+
# a profile that is already onboarded is never rejected by it):
|
|
327
435
|
#
|
|
328
436
|
# - Profile must have a name, short name, and description (short name max 50
|
|
329
437
|
# characters, description max 5000)
|
|
@@ -334,17 +442,18 @@ module Sentdm
|
|
|
334
442
|
# - TCR applications must have at least one campaign, own or inherited
|
|
335
443
|
# - Destination countries marked as main must have their required compliance
|
|
336
444
|
# documents uploaded
|
|
445
|
+
# - TCR applications must state whether they inherit the organization's TCR brand
|
|
446
|
+
# and campaign
|
|
337
447
|
#
|
|
338
|
-
#
|
|
448
|
+
# Outcome:
|
|
339
449
|
#
|
|
340
|
-
# -
|
|
341
|
-
#
|
|
342
|
-
# -
|
|
343
|
-
#
|
|
344
|
-
#
|
|
345
|
-
#
|
|
346
|
-
#
|
|
347
|
-
# country is set, and COMPLETED otherwise
|
|
450
|
+
# - Once the prerequisites pass and background processing succeeds, the profile's
|
|
451
|
+
# conversionFlowStatus becomes ONBOARDED and its public status reads `approved`
|
|
452
|
+
# - A profile with no WhatsApp channel, or one still awaiting TCR registration or
|
|
453
|
+
# country documents, is onboarded like any other. Those are answered by the
|
|
454
|
+
# brand and campaign records, not by a status on the profile
|
|
455
|
+
# - If background processing fails, the profile keeps the status it already had
|
|
456
|
+
# and the webhook reports the reason
|
|
348
457
|
sig do
|
|
349
458
|
params(
|
|
350
459
|
profile_id: String,
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
module Sentdm
|
|
4
4
|
module Resources
|
|
5
|
-
#
|
|
5
|
+
# Reusable message bodies with named variables.
|
|
6
|
+
#
|
|
7
|
+
# A template is substituted at send time from the values you pass, so the copy
|
|
8
|
+
# lives here rather than in your application. WhatsApp templates additionally need
|
|
9
|
+
# Meta's approval before they can be sent, and a template's channel status reports
|
|
10
|
+
# where that stands — an approved SMS template and an unapproved WhatsApp one are
|
|
11
|
+
# the same template in two states.
|
|
6
12
|
class Templates
|
|
7
13
|
# Creates a new message template with header, body, footer, and buttons. The
|
|
8
14
|
# template can be submitted for review immediately or saved as draft for later
|
|
@@ -18,7 +24,7 @@ module Sentdm
|
|
|
18
24
|
idempotency_key: String,
|
|
19
25
|
x_profile_id: String,
|
|
20
26
|
request_options: Sentdm::RequestOptions::OrHash
|
|
21
|
-
).returns(Sentdm::
|
|
27
|
+
).returns(Sentdm::Models::TemplateCreateResponse)
|
|
22
28
|
end
|
|
23
29
|
def create(
|
|
24
30
|
# Body param: Template category: MARKETING, UTILITY, AUTHENTICATION (optional,
|
|
@@ -57,7 +63,7 @@ module Sentdm
|
|
|
57
63
|
id: String,
|
|
58
64
|
x_profile_id: String,
|
|
59
65
|
request_options: Sentdm::RequestOptions::OrHash
|
|
60
|
-
).returns(Sentdm::
|
|
66
|
+
).returns(Sentdm::Models::TemplateRetrieveResponse)
|
|
61
67
|
end
|
|
62
68
|
def retrieve(
|
|
63
69
|
# Template ID from route parameter
|
|
@@ -83,7 +89,7 @@ module Sentdm
|
|
|
83
89
|
idempotency_key: String,
|
|
84
90
|
x_profile_id: String,
|
|
85
91
|
request_options: Sentdm::RequestOptions::OrHash
|
|
86
|
-
).returns(Sentdm::
|
|
92
|
+
).returns(Sentdm::Models::TemplateUpdateResponse)
|
|
87
93
|
end
|
|
88
94
|
def update(
|
|
89
95
|
# Path param: Template ID from route parameter
|
|
@@ -136,7 +142,11 @@ module Sentdm
|
|
|
136
142
|
page_size:,
|
|
137
143
|
# Query param: Optional category filter: MARKETING, UTILITY, AUTHENTICATION
|
|
138
144
|
category: nil,
|
|
139
|
-
# Query param:
|
|
145
|
+
# Query param: Accepted and ignored. It used to filter on the welcome-playground
|
|
146
|
+
# marker inside a template's LOB details; that filter is gone and nothing reads
|
|
147
|
+
# this value, so sending it neither narrows nor widens the result. Retained only
|
|
148
|
+
# so a client still passing is_welcome_playground keeps binding instead of the
|
|
149
|
+
# request shape changing under it.
|
|
140
150
|
is_welcome_playground: nil,
|
|
141
151
|
# Query param: Optional search term for filtering templates
|
|
142
152
|
search: nil,
|
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
module Sentdm
|
|
4
4
|
module Resources
|
|
5
|
-
#
|
|
5
|
+
# The people who can sign in to your organization, and what each may do.
|
|
6
|
+
#
|
|
7
|
+
# Users are dashboard access and nothing else — they do not send, and removing one
|
|
8
|
+
# does not affect traffic. An API key is not a user: it belongs to the
|
|
9
|
+
# organization or to a sender profile, so revoking a person's access leaves your
|
|
10
|
+
# integration running.
|
|
6
11
|
class Users
|
|
7
12
|
# Retrieves detailed information about a specific user in an organization or
|
|
8
13
|
# profile. Requires developer role or higher.
|
|
@@ -11,9 +16,10 @@ module Sentdm
|
|
|
11
16
|
user_id: String,
|
|
12
17
|
x_profile_id: String,
|
|
13
18
|
request_options: Sentdm::RequestOptions::OrHash
|
|
14
|
-
).returns(Sentdm::
|
|
19
|
+
).returns(Sentdm::Models::UserRetrieveResponse)
|
|
15
20
|
end
|
|
16
21
|
def retrieve(
|
|
22
|
+
# User ID from route parameter
|
|
17
23
|
user_id,
|
|
18
24
|
# Profile UUID to scope the request to a child profile. Only organization API keys
|
|
19
25
|
# can use this header. The profile must belong to the calling organization.
|
|
@@ -51,7 +57,7 @@ module Sentdm
|
|
|
51
57
|
idempotency_key: String,
|
|
52
58
|
x_profile_id: String,
|
|
53
59
|
request_options: Sentdm::RequestOptions::OrHash
|
|
54
|
-
).returns(Sentdm::
|
|
60
|
+
).returns(Sentdm::Models::UserInviteResponse)
|
|
55
61
|
end
|
|
56
62
|
def invite(
|
|
57
63
|
# Body param: User email address (required)
|
|
@@ -86,7 +92,7 @@ module Sentdm
|
|
|
86
92
|
).void
|
|
87
93
|
end
|
|
88
94
|
def remove(
|
|
89
|
-
# Path param
|
|
95
|
+
# Path param: User ID from route parameter
|
|
90
96
|
user_id,
|
|
91
97
|
# Body param: Sandbox flag - when true, the operation is simulated without side
|
|
92
98
|
# effects Useful for testing integrations without actual execution
|
|
@@ -109,10 +115,10 @@ module Sentdm
|
|
|
109
115
|
idempotency_key: String,
|
|
110
116
|
x_profile_id: String,
|
|
111
117
|
request_options: Sentdm::RequestOptions::OrHash
|
|
112
|
-
).returns(Sentdm::
|
|
118
|
+
).returns(Sentdm::Models::UserUpdateRoleResponse)
|
|
113
119
|
end
|
|
114
120
|
def update_role(
|
|
115
|
-
# Path param
|
|
121
|
+
# Path param: User ID from route parameter
|
|
116
122
|
user_id,
|
|
117
123
|
# Body param: User role: admin, billing, or developer (required)
|
|
118
124
|
role: nil,
|