sentdm 0.27.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 +13 -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/me_retrieve_response.rb +242 -12
- 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_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 +162 -13
- 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 +0 -52
- 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 +11 -1
- data/lib/sentdm/resources/numbers.rb +6 -1
- data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
- data/lib/sentdm/resources/profiles.rb +134 -58
- data/lib/sentdm/resources/templates.rb +14 -8
- data/lib/sentdm/resources/users.rb +12 -7
- data/lib/sentdm/resources/webhooks.rb +19 -9
- data/lib/sentdm/version.rb +1 -1
- data/lib/sentdm.rb +22 -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/me_retrieve_response.rbi +367 -16
- 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_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 +319 -15
- 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 +0 -54
- 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 +11 -1
- data/rbi/sentdm/resources/numbers.rbi +6 -1
- data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
- data/rbi/sentdm/resources/profiles.rbi +174 -66
- data/rbi/sentdm/resources/templates.rbi +15 -5
- data/rbi/sentdm/resources/users.rbi +9 -4
- 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/me_retrieve_response.rbs +176 -18
- 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_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 +142 -14
- 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 +0 -52
- 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 +68 -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 -605
- 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 -872
- 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
|
@@ -11,28 +11,36 @@ module Sentdm
|
|
|
11
11
|
T.any(Sentdm::ProfileCreateParams, Sentdm::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
#
|
|
14
|
+
# Deprecated. Accepted and ignored. Contact and template sharing between sender
|
|
15
|
+
# profiles is gone — a profile sees only what it owns, and the organization still
|
|
16
|
+
# sees all of its profiles' contacts and templates through read-time widening. The
|
|
17
|
+
# four columns behind these flags were dropped by M260720120000.
|
|
18
|
+
#
|
|
19
|
+
# Bound rather than dropped so the properties survive on the wire and in a
|
|
20
|
+
# generated client: an SDK that assigns them keeps compiling, which is the
|
|
21
|
+
# compatibility this exists for. Deliberately not refused either — a 400 would
|
|
22
|
+
# break an integration that is otherwise working, and the capability they ask for
|
|
23
|
+
# is gone either way. Same rule as SendingPhoneNumberProfileId.
|
|
24
|
+
#
|
|
25
|
+
# The read is what makes this survivable: every profile reports all four as false,
|
|
26
|
+
# so a caller that checks its own write can see it did not take. Requests carrying
|
|
27
|
+
# one are logged, so we can tell when nobody sends them any more and the fields
|
|
28
|
+
# can go for real.
|
|
15
29
|
sig { returns(T.nilable(T::Boolean)) }
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
sig { params(allow_contact_sharing: T::Boolean).void }
|
|
19
|
-
attr_writer :allow_contact_sharing
|
|
30
|
+
attr_accessor :allow_contact_sharing
|
|
20
31
|
|
|
21
|
-
# Whether templates are shared across profiles (default: false)
|
|
22
32
|
sig { returns(T.nilable(T::Boolean)) }
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
sig { params(allow_template_sharing: T::Boolean).void }
|
|
26
|
-
attr_writer :allow_template_sharing
|
|
33
|
+
attr_accessor :allow_template_sharing
|
|
27
34
|
|
|
28
35
|
# Billing contact information for a profile. Required when billing_model is
|
|
29
36
|
# "profile" or "profile_and_organization".
|
|
30
|
-
sig { returns(T.nilable(Sentdm::
|
|
37
|
+
sig { returns(T.nilable(Sentdm::ProfileCreateParams::BillingContact)) }
|
|
31
38
|
attr_reader :billing_contact
|
|
32
39
|
|
|
33
40
|
sig do
|
|
34
41
|
params(
|
|
35
|
-
billing_contact:
|
|
42
|
+
billing_contact:
|
|
43
|
+
T.nilable(Sentdm::ProfileCreateParams::BillingContact::OrHash)
|
|
36
44
|
).void
|
|
37
45
|
end
|
|
38
46
|
attr_writer :billing_contact
|
|
@@ -49,10 +57,14 @@ module Sentdm
|
|
|
49
57
|
attr_accessor :billing_model
|
|
50
58
|
|
|
51
59
|
# Brand and KYC data grouped into contact, business, and compliance sections
|
|
52
|
-
sig { returns(T.nilable(Sentdm::
|
|
60
|
+
sig { returns(T.nilable(Sentdm::ProfileCreateParams::Brand)) }
|
|
53
61
|
attr_reader :brand
|
|
54
62
|
|
|
55
|
-
sig
|
|
63
|
+
sig do
|
|
64
|
+
params(
|
|
65
|
+
brand: T.nilable(Sentdm::ProfileCreateParams::Brand::OrHash)
|
|
66
|
+
).void
|
|
67
|
+
end
|
|
56
68
|
attr_writer :brand
|
|
57
69
|
|
|
58
70
|
# Profile description (optional)
|
|
@@ -63,19 +75,17 @@ module Sentdm
|
|
|
63
75
|
sig { returns(T.nilable(String)) }
|
|
64
76
|
attr_accessor :icon
|
|
65
77
|
|
|
66
|
-
# Whether this profile inherits contacts from organization (default: true)
|
|
67
78
|
sig { returns(T.nilable(T::Boolean)) }
|
|
68
79
|
attr_accessor :inherit_contacts
|
|
69
80
|
|
|
70
|
-
# Whether this profile inherits TCR brand from organization (default:
|
|
81
|
+
# Whether this profile inherits TCR brand from organization (default: false)
|
|
71
82
|
sig { returns(T.nilable(T::Boolean)) }
|
|
72
83
|
attr_accessor :inherit_tcr_brand
|
|
73
84
|
|
|
74
|
-
# Whether this profile inherits TCR campaign from organization (default:
|
|
85
|
+
# Whether this profile inherits TCR campaign from organization (default: false)
|
|
75
86
|
sig { returns(T.nilable(T::Boolean)) }
|
|
76
87
|
attr_accessor :inherit_tcr_campaign
|
|
77
88
|
|
|
78
|
-
# Whether this profile inherits templates from organization (default: true)
|
|
79
89
|
sig { returns(T.nilable(T::Boolean)) }
|
|
80
90
|
attr_accessor :inherit_templates
|
|
81
91
|
|
|
@@ -86,14 +96,17 @@ module Sentdm
|
|
|
86
96
|
sig { params(name: String).void }
|
|
87
97
|
attr_writer :name
|
|
88
98
|
|
|
89
|
-
# Payment card details for
|
|
90
|
-
# "profile_and_organization".
|
|
91
|
-
#
|
|
92
|
-
sig { returns(T.nilable(Sentdm::PaymentDetails)) }
|
|
99
|
+
# Payment card details for this profile (optional). Accepted when billing_model is
|
|
100
|
+
# "profile" or "profile_and_organization". Not persisted on our servers —
|
|
101
|
+
# forwarded to the payment processor.
|
|
102
|
+
sig { returns(T.nilable(Sentdm::ProfileCreateParams::PaymentDetails)) }
|
|
93
103
|
attr_reader :payment_details
|
|
94
104
|
|
|
95
105
|
sig do
|
|
96
|
-
params(
|
|
106
|
+
params(
|
|
107
|
+
payment_details:
|
|
108
|
+
T.nilable(Sentdm::ProfileCreateParams::PaymentDetails::OrHash)
|
|
109
|
+
).void
|
|
97
110
|
end
|
|
98
111
|
attr_writer :payment_details
|
|
99
112
|
|
|
@@ -145,11 +158,12 @@ module Sentdm
|
|
|
145
158
|
|
|
146
159
|
sig do
|
|
147
160
|
params(
|
|
148
|
-
allow_contact_sharing: T::Boolean,
|
|
149
|
-
allow_template_sharing: T::Boolean,
|
|
150
|
-
billing_contact:
|
|
161
|
+
allow_contact_sharing: T.nilable(T::Boolean),
|
|
162
|
+
allow_template_sharing: T.nilable(T::Boolean),
|
|
163
|
+
billing_contact:
|
|
164
|
+
T.nilable(Sentdm::ProfileCreateParams::BillingContact::OrHash),
|
|
151
165
|
billing_model: T.nilable(String),
|
|
152
|
-
brand: T.nilable(Sentdm::
|
|
166
|
+
brand: T.nilable(Sentdm::ProfileCreateParams::Brand::OrHash),
|
|
153
167
|
description: T.nilable(String),
|
|
154
168
|
icon: T.nilable(String),
|
|
155
169
|
inherit_contacts: T.nilable(T::Boolean),
|
|
@@ -157,7 +171,8 @@ module Sentdm
|
|
|
157
171
|
inherit_tcr_campaign: T.nilable(T::Boolean),
|
|
158
172
|
inherit_templates: T.nilable(T::Boolean),
|
|
159
173
|
name: String,
|
|
160
|
-
payment_details:
|
|
174
|
+
payment_details:
|
|
175
|
+
T.nilable(Sentdm::ProfileCreateParams::PaymentDetails::OrHash),
|
|
161
176
|
sandbox: T::Boolean,
|
|
162
177
|
short_name: T.nilable(String),
|
|
163
178
|
whatsapp_business_account:
|
|
@@ -170,9 +185,22 @@ module Sentdm
|
|
|
170
185
|
).returns(T.attached_class)
|
|
171
186
|
end
|
|
172
187
|
def self.new(
|
|
173
|
-
#
|
|
188
|
+
# Deprecated. Accepted and ignored. Contact and template sharing between sender
|
|
189
|
+
# profiles is gone — a profile sees only what it owns, and the organization still
|
|
190
|
+
# sees all of its profiles' contacts and templates through read-time widening. The
|
|
191
|
+
# four columns behind these flags were dropped by M260720120000.
|
|
192
|
+
#
|
|
193
|
+
# Bound rather than dropped so the properties survive on the wire and in a
|
|
194
|
+
# generated client: an SDK that assigns them keeps compiling, which is the
|
|
195
|
+
# compatibility this exists for. Deliberately not refused either — a 400 would
|
|
196
|
+
# break an integration that is otherwise working, and the capability they ask for
|
|
197
|
+
# is gone either way. Same rule as SendingPhoneNumberProfileId.
|
|
198
|
+
#
|
|
199
|
+
# The read is what makes this survivable: every profile reports all four as false,
|
|
200
|
+
# so a caller that checks its own write can see it did not take. Requests carrying
|
|
201
|
+
# one are logged, so we can tell when nobody sends them any more and the fields
|
|
202
|
+
# can go for real.
|
|
174
203
|
allow_contact_sharing: nil,
|
|
175
|
-
# Whether templates are shared across profiles (default: false)
|
|
176
204
|
allow_template_sharing: nil,
|
|
177
205
|
# Billing contact information for a profile. Required when billing_model is
|
|
178
206
|
# "profile" or "profile_and_organization".
|
|
@@ -192,19 +220,17 @@ module Sentdm
|
|
|
192
220
|
description: nil,
|
|
193
221
|
# Profile icon URL (optional)
|
|
194
222
|
icon: nil,
|
|
195
|
-
# Whether this profile inherits contacts from organization (default: true)
|
|
196
223
|
inherit_contacts: nil,
|
|
197
|
-
# Whether this profile inherits TCR brand from organization (default:
|
|
224
|
+
# Whether this profile inherits TCR brand from organization (default: false)
|
|
198
225
|
inherit_tcr_brand: nil,
|
|
199
|
-
# Whether this profile inherits TCR campaign from organization (default:
|
|
226
|
+
# Whether this profile inherits TCR campaign from organization (default: false)
|
|
200
227
|
inherit_tcr_campaign: nil,
|
|
201
|
-
# Whether this profile inherits templates from organization (default: true)
|
|
202
228
|
inherit_templates: nil,
|
|
203
229
|
# Profile name (required)
|
|
204
230
|
name: nil,
|
|
205
|
-
# Payment card details for
|
|
206
|
-
# "profile_and_organization".
|
|
207
|
-
#
|
|
231
|
+
# Payment card details for this profile (optional). Accepted when billing_model is
|
|
232
|
+
# "profile" or "profile_and_organization". Not persisted on our servers —
|
|
233
|
+
# forwarded to the payment processor.
|
|
208
234
|
payment_details: nil,
|
|
209
235
|
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
210
236
|
# for testing integrations without actual execution
|
|
@@ -228,11 +254,12 @@ module Sentdm
|
|
|
228
254
|
sig do
|
|
229
255
|
override.returns(
|
|
230
256
|
{
|
|
231
|
-
allow_contact_sharing: T::Boolean,
|
|
232
|
-
allow_template_sharing: T::Boolean,
|
|
233
|
-
billing_contact:
|
|
257
|
+
allow_contact_sharing: T.nilable(T::Boolean),
|
|
258
|
+
allow_template_sharing: T.nilable(T::Boolean),
|
|
259
|
+
billing_contact:
|
|
260
|
+
T.nilable(Sentdm::ProfileCreateParams::BillingContact),
|
|
234
261
|
billing_model: T.nilable(String),
|
|
235
|
-
brand: T.nilable(Sentdm::
|
|
262
|
+
brand: T.nilable(Sentdm::ProfileCreateParams::Brand),
|
|
236
263
|
description: T.nilable(String),
|
|
237
264
|
icon: T.nilable(String),
|
|
238
265
|
inherit_contacts: T.nilable(T::Boolean),
|
|
@@ -240,7 +267,8 @@ module Sentdm
|
|
|
240
267
|
inherit_tcr_campaign: T.nilable(T::Boolean),
|
|
241
268
|
inherit_templates: T.nilable(T::Boolean),
|
|
242
269
|
name: String,
|
|
243
|
-
payment_details:
|
|
270
|
+
payment_details:
|
|
271
|
+
T.nilable(Sentdm::ProfileCreateParams::PaymentDetails),
|
|
244
272
|
sandbox: T::Boolean,
|
|
245
273
|
short_name: T.nilable(String),
|
|
246
274
|
whatsapp_business_account:
|
|
@@ -254,6 +282,528 @@ module Sentdm
|
|
|
254
282
|
def to_hash
|
|
255
283
|
end
|
|
256
284
|
|
|
285
|
+
class BillingContact < Sentdm::Internal::Type::BaseModel
|
|
286
|
+
OrHash =
|
|
287
|
+
T.type_alias do
|
|
288
|
+
T.any(
|
|
289
|
+
Sentdm::ProfileCreateParams::BillingContact,
|
|
290
|
+
Sentdm::Internal::AnyHash
|
|
291
|
+
)
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
# Email address where invoices will be sent (required)
|
|
295
|
+
sig { returns(String) }
|
|
296
|
+
attr_accessor :email
|
|
297
|
+
|
|
298
|
+
# Full name of the billing contact or company (required)
|
|
299
|
+
sig { returns(String) }
|
|
300
|
+
attr_accessor :name
|
|
301
|
+
|
|
302
|
+
# Billing address (optional). Free-form text including street, city, state, postal
|
|
303
|
+
# code, and country.
|
|
304
|
+
sig { returns(T.nilable(String)) }
|
|
305
|
+
attr_accessor :address
|
|
306
|
+
|
|
307
|
+
# Phone number for the billing contact (optional)
|
|
308
|
+
sig { returns(T.nilable(String)) }
|
|
309
|
+
attr_accessor :phone
|
|
310
|
+
|
|
311
|
+
# Billing contact information for a profile. Required when billing_model is
|
|
312
|
+
# "profile" or "profile_and_organization".
|
|
313
|
+
sig do
|
|
314
|
+
params(
|
|
315
|
+
email: String,
|
|
316
|
+
name: String,
|
|
317
|
+
address: T.nilable(String),
|
|
318
|
+
phone: T.nilable(String)
|
|
319
|
+
).returns(T.attached_class)
|
|
320
|
+
end
|
|
321
|
+
def self.new(
|
|
322
|
+
# Email address where invoices will be sent (required)
|
|
323
|
+
email:,
|
|
324
|
+
# Full name of the billing contact or company (required)
|
|
325
|
+
name:,
|
|
326
|
+
# Billing address (optional). Free-form text including street, city, state, postal
|
|
327
|
+
# code, and country.
|
|
328
|
+
address: nil,
|
|
329
|
+
# Phone number for the billing contact (optional)
|
|
330
|
+
phone: nil
|
|
331
|
+
)
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
sig do
|
|
335
|
+
override.returns(
|
|
336
|
+
{
|
|
337
|
+
email: String,
|
|
338
|
+
name: String,
|
|
339
|
+
address: T.nilable(String),
|
|
340
|
+
phone: T.nilable(String)
|
|
341
|
+
}
|
|
342
|
+
)
|
|
343
|
+
end
|
|
344
|
+
def to_hash
|
|
345
|
+
end
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
class Brand < Sentdm::Internal::Type::BaseModel
|
|
349
|
+
OrHash =
|
|
350
|
+
T.type_alias do
|
|
351
|
+
T.any(Sentdm::ProfileCreateParams::Brand, Sentdm::Internal::AnyHash)
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
# Compliance and TCR information for brand registration
|
|
355
|
+
sig { returns(Sentdm::ProfileCreateParams::Brand::Compliance) }
|
|
356
|
+
attr_reader :compliance
|
|
357
|
+
|
|
358
|
+
sig do
|
|
359
|
+
params(
|
|
360
|
+
compliance: Sentdm::ProfileCreateParams::Brand::Compliance::OrHash
|
|
361
|
+
).void
|
|
362
|
+
end
|
|
363
|
+
attr_writer :compliance
|
|
364
|
+
|
|
365
|
+
# Contact information for brand KYC
|
|
366
|
+
sig { returns(Sentdm::ProfileCreateParams::Brand::Contact) }
|
|
367
|
+
attr_reader :contact
|
|
368
|
+
|
|
369
|
+
sig do
|
|
370
|
+
params(
|
|
371
|
+
contact: Sentdm::ProfileCreateParams::Brand::Contact::OrHash
|
|
372
|
+
).void
|
|
373
|
+
end
|
|
374
|
+
attr_writer :contact
|
|
375
|
+
|
|
376
|
+
# Business details and address for brand KYC
|
|
377
|
+
sig { returns(T.nilable(Sentdm::ProfileCreateParams::Brand::Business)) }
|
|
378
|
+
attr_reader :business
|
|
379
|
+
|
|
380
|
+
sig do
|
|
381
|
+
params(
|
|
382
|
+
business:
|
|
383
|
+
T.nilable(Sentdm::ProfileCreateParams::Brand::Business::OrHash)
|
|
384
|
+
).void
|
|
385
|
+
end
|
|
386
|
+
attr_writer :business
|
|
387
|
+
|
|
388
|
+
# Brand and KYC data grouped into contact, business, and compliance sections
|
|
389
|
+
sig do
|
|
390
|
+
params(
|
|
391
|
+
compliance: Sentdm::ProfileCreateParams::Brand::Compliance::OrHash,
|
|
392
|
+
contact: Sentdm::ProfileCreateParams::Brand::Contact::OrHash,
|
|
393
|
+
business:
|
|
394
|
+
T.nilable(Sentdm::ProfileCreateParams::Brand::Business::OrHash)
|
|
395
|
+
).returns(T.attached_class)
|
|
396
|
+
end
|
|
397
|
+
def self.new(
|
|
398
|
+
# Compliance and TCR information for brand registration
|
|
399
|
+
compliance:,
|
|
400
|
+
# Contact information for brand KYC
|
|
401
|
+
contact:,
|
|
402
|
+
# Business details and address for brand KYC
|
|
403
|
+
business: nil
|
|
404
|
+
)
|
|
405
|
+
end
|
|
406
|
+
|
|
407
|
+
sig do
|
|
408
|
+
override.returns(
|
|
409
|
+
{
|
|
410
|
+
compliance: Sentdm::ProfileCreateParams::Brand::Compliance,
|
|
411
|
+
contact: Sentdm::ProfileCreateParams::Brand::Contact,
|
|
412
|
+
business: T.nilable(Sentdm::ProfileCreateParams::Brand::Business)
|
|
413
|
+
}
|
|
414
|
+
)
|
|
415
|
+
end
|
|
416
|
+
def to_hash
|
|
417
|
+
end
|
|
418
|
+
|
|
419
|
+
class Compliance < Sentdm::Internal::Type::BaseModel
|
|
420
|
+
OrHash =
|
|
421
|
+
T.type_alias do
|
|
422
|
+
T.any(
|
|
423
|
+
Sentdm::ProfileCreateParams::Brand::Compliance,
|
|
424
|
+
Sentdm::Internal::AnyHash
|
|
425
|
+
)
|
|
426
|
+
end
|
|
427
|
+
|
|
428
|
+
sig { returns(Sentdm::TcrBrandRelationship::OrSymbol) }
|
|
429
|
+
attr_accessor :brand_relationship
|
|
430
|
+
|
|
431
|
+
sig { returns(Sentdm::TcrVertical::OrSymbol) }
|
|
432
|
+
attr_accessor :vertical
|
|
433
|
+
|
|
434
|
+
# List of destination countries for messaging
|
|
435
|
+
sig { returns(T.nilable(T::Array[Sentdm::DestinationCountry])) }
|
|
436
|
+
attr_accessor :destination_countries
|
|
437
|
+
|
|
438
|
+
# Whether this is a TCR (Campaign Registry) application
|
|
439
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
440
|
+
attr_accessor :is_tcr_application
|
|
441
|
+
|
|
442
|
+
# Additional notes about the business or use case
|
|
443
|
+
sig { returns(T.nilable(String)) }
|
|
444
|
+
attr_accessor :notes
|
|
445
|
+
|
|
446
|
+
# Phone number prefix for messaging (e.g., "+1")
|
|
447
|
+
sig { returns(T.nilable(String)) }
|
|
448
|
+
attr_accessor :phone_number_prefix
|
|
449
|
+
|
|
450
|
+
# Compliance and TCR information for brand registration
|
|
451
|
+
sig do
|
|
452
|
+
params(
|
|
453
|
+
brand_relationship: Sentdm::TcrBrandRelationship::OrSymbol,
|
|
454
|
+
vertical: Sentdm::TcrVertical::OrSymbol,
|
|
455
|
+
destination_countries:
|
|
456
|
+
T.nilable(T::Array[Sentdm::DestinationCountry::OrHash]),
|
|
457
|
+
is_tcr_application: T.nilable(T::Boolean),
|
|
458
|
+
notes: T.nilable(String),
|
|
459
|
+
phone_number_prefix: T.nilable(String)
|
|
460
|
+
).returns(T.attached_class)
|
|
461
|
+
end
|
|
462
|
+
def self.new(
|
|
463
|
+
brand_relationship:,
|
|
464
|
+
vertical:,
|
|
465
|
+
# List of destination countries for messaging
|
|
466
|
+
destination_countries: nil,
|
|
467
|
+
# Whether this is a TCR (Campaign Registry) application
|
|
468
|
+
is_tcr_application: nil,
|
|
469
|
+
# Additional notes about the business or use case
|
|
470
|
+
notes: nil,
|
|
471
|
+
# Phone number prefix for messaging (e.g., "+1")
|
|
472
|
+
phone_number_prefix: nil
|
|
473
|
+
)
|
|
474
|
+
end
|
|
475
|
+
|
|
476
|
+
sig do
|
|
477
|
+
override.returns(
|
|
478
|
+
{
|
|
479
|
+
brand_relationship: Sentdm::TcrBrandRelationship::OrSymbol,
|
|
480
|
+
vertical: Sentdm::TcrVertical::OrSymbol,
|
|
481
|
+
destination_countries:
|
|
482
|
+
T.nilable(T::Array[Sentdm::DestinationCountry]),
|
|
483
|
+
is_tcr_application: T.nilable(T::Boolean),
|
|
484
|
+
notes: T.nilable(String),
|
|
485
|
+
phone_number_prefix: T.nilable(String)
|
|
486
|
+
}
|
|
487
|
+
)
|
|
488
|
+
end
|
|
489
|
+
def to_hash
|
|
490
|
+
end
|
|
491
|
+
end
|
|
492
|
+
|
|
493
|
+
class Contact < Sentdm::Internal::Type::BaseModel
|
|
494
|
+
OrHash =
|
|
495
|
+
T.type_alias do
|
|
496
|
+
T.any(
|
|
497
|
+
Sentdm::ProfileCreateParams::Brand::Contact,
|
|
498
|
+
Sentdm::Internal::AnyHash
|
|
499
|
+
)
|
|
500
|
+
end
|
|
501
|
+
|
|
502
|
+
# Primary contact name (required)
|
|
503
|
+
sig { returns(String) }
|
|
504
|
+
attr_accessor :name
|
|
505
|
+
|
|
506
|
+
# Business/brand name
|
|
507
|
+
sig { returns(T.nilable(String)) }
|
|
508
|
+
attr_accessor :business_name
|
|
509
|
+
|
|
510
|
+
# Contact email address
|
|
511
|
+
sig { returns(T.nilable(String)) }
|
|
512
|
+
attr_accessor :email
|
|
513
|
+
|
|
514
|
+
# Contact phone number in E.164 format
|
|
515
|
+
sig { returns(T.nilable(String)) }
|
|
516
|
+
attr_accessor :phone
|
|
517
|
+
|
|
518
|
+
# Contact phone country code (e.g., "1" for US)
|
|
519
|
+
sig { returns(T.nilable(String)) }
|
|
520
|
+
attr_accessor :phone_country_code
|
|
521
|
+
|
|
522
|
+
# Contact's role in the business
|
|
523
|
+
sig { returns(T.nilable(String)) }
|
|
524
|
+
attr_accessor :role
|
|
525
|
+
|
|
526
|
+
# Contact information for brand KYC
|
|
527
|
+
sig do
|
|
528
|
+
params(
|
|
529
|
+
name: String,
|
|
530
|
+
business_name: T.nilable(String),
|
|
531
|
+
email: T.nilable(String),
|
|
532
|
+
phone: T.nilable(String),
|
|
533
|
+
phone_country_code: T.nilable(String),
|
|
534
|
+
role: T.nilable(String)
|
|
535
|
+
).returns(T.attached_class)
|
|
536
|
+
end
|
|
537
|
+
def self.new(
|
|
538
|
+
# Primary contact name (required)
|
|
539
|
+
name:,
|
|
540
|
+
# Business/brand name
|
|
541
|
+
business_name: nil,
|
|
542
|
+
# Contact email address
|
|
543
|
+
email: nil,
|
|
544
|
+
# Contact phone number in E.164 format
|
|
545
|
+
phone: nil,
|
|
546
|
+
# Contact phone country code (e.g., "1" for US)
|
|
547
|
+
phone_country_code: nil,
|
|
548
|
+
# Contact's role in the business
|
|
549
|
+
role: nil
|
|
550
|
+
)
|
|
551
|
+
end
|
|
552
|
+
|
|
553
|
+
sig do
|
|
554
|
+
override.returns(
|
|
555
|
+
{
|
|
556
|
+
name: String,
|
|
557
|
+
business_name: T.nilable(String),
|
|
558
|
+
email: T.nilable(String),
|
|
559
|
+
phone: T.nilable(String),
|
|
560
|
+
phone_country_code: T.nilable(String),
|
|
561
|
+
role: T.nilable(String)
|
|
562
|
+
}
|
|
563
|
+
)
|
|
564
|
+
end
|
|
565
|
+
def to_hash
|
|
566
|
+
end
|
|
567
|
+
end
|
|
568
|
+
|
|
569
|
+
class Business < Sentdm::Internal::Type::BaseModel
|
|
570
|
+
OrHash =
|
|
571
|
+
T.type_alias do
|
|
572
|
+
T.any(
|
|
573
|
+
Sentdm::ProfileCreateParams::Brand::Business,
|
|
574
|
+
Sentdm::Internal::AnyHash
|
|
575
|
+
)
|
|
576
|
+
end
|
|
577
|
+
|
|
578
|
+
# City
|
|
579
|
+
sig { returns(T.nilable(String)) }
|
|
580
|
+
attr_accessor :city
|
|
581
|
+
|
|
582
|
+
# Country code (e.g., US, CA)
|
|
583
|
+
sig { returns(T.nilable(String)) }
|
|
584
|
+
attr_accessor :country
|
|
585
|
+
|
|
586
|
+
# Country where the business is registered
|
|
587
|
+
sig { returns(T.nilable(String)) }
|
|
588
|
+
attr_accessor :country_of_registration
|
|
589
|
+
|
|
590
|
+
sig do
|
|
591
|
+
returns(
|
|
592
|
+
T.nilable(
|
|
593
|
+
Sentdm::ProfileCreateParams::Brand::Business::EntityType::OrSymbol
|
|
594
|
+
)
|
|
595
|
+
)
|
|
596
|
+
end
|
|
597
|
+
attr_accessor :entity_type
|
|
598
|
+
|
|
599
|
+
# Legal business name
|
|
600
|
+
sig { returns(T.nilable(String)) }
|
|
601
|
+
attr_accessor :legal_name
|
|
602
|
+
|
|
603
|
+
# Postal/ZIP code
|
|
604
|
+
sig { returns(T.nilable(String)) }
|
|
605
|
+
attr_accessor :postal_code
|
|
606
|
+
|
|
607
|
+
# State/province code
|
|
608
|
+
sig { returns(T.nilable(String)) }
|
|
609
|
+
attr_accessor :state
|
|
610
|
+
|
|
611
|
+
# Street address
|
|
612
|
+
sig { returns(T.nilable(String)) }
|
|
613
|
+
attr_accessor :street
|
|
614
|
+
|
|
615
|
+
# Tax ID/EIN number
|
|
616
|
+
sig { returns(T.nilable(String)) }
|
|
617
|
+
attr_accessor :tax_id
|
|
618
|
+
|
|
619
|
+
# Type of tax ID (e.g., us_ein, ca_bn)
|
|
620
|
+
sig { returns(T.nilable(String)) }
|
|
621
|
+
attr_accessor :tax_id_type
|
|
622
|
+
|
|
623
|
+
# Business website URL
|
|
624
|
+
sig { returns(T.nilable(String)) }
|
|
625
|
+
attr_accessor :url
|
|
626
|
+
|
|
627
|
+
# Business details and address for brand KYC
|
|
628
|
+
sig do
|
|
629
|
+
params(
|
|
630
|
+
city: T.nilable(String),
|
|
631
|
+
country: T.nilable(String),
|
|
632
|
+
country_of_registration: T.nilable(String),
|
|
633
|
+
entity_type:
|
|
634
|
+
T.nilable(
|
|
635
|
+
Sentdm::ProfileCreateParams::Brand::Business::EntityType::OrSymbol
|
|
636
|
+
),
|
|
637
|
+
legal_name: T.nilable(String),
|
|
638
|
+
postal_code: T.nilable(String),
|
|
639
|
+
state: T.nilable(String),
|
|
640
|
+
street: T.nilable(String),
|
|
641
|
+
tax_id: T.nilable(String),
|
|
642
|
+
tax_id_type: T.nilable(String),
|
|
643
|
+
url: T.nilable(String)
|
|
644
|
+
).returns(T.attached_class)
|
|
645
|
+
end
|
|
646
|
+
def self.new(
|
|
647
|
+
# City
|
|
648
|
+
city: nil,
|
|
649
|
+
# Country code (e.g., US, CA)
|
|
650
|
+
country: nil,
|
|
651
|
+
# Country where the business is registered
|
|
652
|
+
country_of_registration: nil,
|
|
653
|
+
entity_type: nil,
|
|
654
|
+
# Legal business name
|
|
655
|
+
legal_name: nil,
|
|
656
|
+
# Postal/ZIP code
|
|
657
|
+
postal_code: nil,
|
|
658
|
+
# State/province code
|
|
659
|
+
state: nil,
|
|
660
|
+
# Street address
|
|
661
|
+
street: nil,
|
|
662
|
+
# Tax ID/EIN number
|
|
663
|
+
tax_id: nil,
|
|
664
|
+
# Type of tax ID (e.g., us_ein, ca_bn)
|
|
665
|
+
tax_id_type: nil,
|
|
666
|
+
# Business website URL
|
|
667
|
+
url: nil
|
|
668
|
+
)
|
|
669
|
+
end
|
|
670
|
+
|
|
671
|
+
sig do
|
|
672
|
+
override.returns(
|
|
673
|
+
{
|
|
674
|
+
city: T.nilable(String),
|
|
675
|
+
country: T.nilable(String),
|
|
676
|
+
country_of_registration: T.nilable(String),
|
|
677
|
+
entity_type:
|
|
678
|
+
T.nilable(
|
|
679
|
+
Sentdm::ProfileCreateParams::Brand::Business::EntityType::OrSymbol
|
|
680
|
+
),
|
|
681
|
+
legal_name: T.nilable(String),
|
|
682
|
+
postal_code: T.nilable(String),
|
|
683
|
+
state: T.nilable(String),
|
|
684
|
+
street: T.nilable(String),
|
|
685
|
+
tax_id: T.nilable(String),
|
|
686
|
+
tax_id_type: T.nilable(String),
|
|
687
|
+
url: T.nilable(String)
|
|
688
|
+
}
|
|
689
|
+
)
|
|
690
|
+
end
|
|
691
|
+
def to_hash
|
|
692
|
+
end
|
|
693
|
+
|
|
694
|
+
module EntityType
|
|
695
|
+
extend Sentdm::Internal::Type::Enum
|
|
696
|
+
|
|
697
|
+
TaggedSymbol =
|
|
698
|
+
T.type_alias do
|
|
699
|
+
T.all(
|
|
700
|
+
Symbol,
|
|
701
|
+
Sentdm::ProfileCreateParams::Brand::Business::EntityType
|
|
702
|
+
)
|
|
703
|
+
end
|
|
704
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
705
|
+
|
|
706
|
+
PRIVATE_PROFIT =
|
|
707
|
+
T.let(
|
|
708
|
+
:PRIVATE_PROFIT,
|
|
709
|
+
Sentdm::ProfileCreateParams::Brand::Business::EntityType::TaggedSymbol
|
|
710
|
+
)
|
|
711
|
+
PUBLIC_PROFIT =
|
|
712
|
+
T.let(
|
|
713
|
+
:PUBLIC_PROFIT,
|
|
714
|
+
Sentdm::ProfileCreateParams::Brand::Business::EntityType::TaggedSymbol
|
|
715
|
+
)
|
|
716
|
+
NON_PROFIT =
|
|
717
|
+
T.let(
|
|
718
|
+
:NON_PROFIT,
|
|
719
|
+
Sentdm::ProfileCreateParams::Brand::Business::EntityType::TaggedSymbol
|
|
720
|
+
)
|
|
721
|
+
SOLE_PROPRIETOR =
|
|
722
|
+
T.let(
|
|
723
|
+
:SOLE_PROPRIETOR,
|
|
724
|
+
Sentdm::ProfileCreateParams::Brand::Business::EntityType::TaggedSymbol
|
|
725
|
+
)
|
|
726
|
+
GOVERNMENT =
|
|
727
|
+
T.let(
|
|
728
|
+
:GOVERNMENT,
|
|
729
|
+
Sentdm::ProfileCreateParams::Brand::Business::EntityType::TaggedSymbol
|
|
730
|
+
)
|
|
731
|
+
|
|
732
|
+
sig do
|
|
733
|
+
override.returns(
|
|
734
|
+
T::Array[
|
|
735
|
+
Sentdm::ProfileCreateParams::Brand::Business::EntityType::TaggedSymbol
|
|
736
|
+
]
|
|
737
|
+
)
|
|
738
|
+
end
|
|
739
|
+
def self.values
|
|
740
|
+
end
|
|
741
|
+
end
|
|
742
|
+
end
|
|
743
|
+
end
|
|
744
|
+
|
|
745
|
+
class PaymentDetails < Sentdm::Internal::Type::BaseModel
|
|
746
|
+
OrHash =
|
|
747
|
+
T.type_alias do
|
|
748
|
+
T.any(
|
|
749
|
+
Sentdm::ProfileCreateParams::PaymentDetails,
|
|
750
|
+
Sentdm::Internal::AnyHash
|
|
751
|
+
)
|
|
752
|
+
end
|
|
753
|
+
|
|
754
|
+
# Card number (digits only, 13–19 characters)
|
|
755
|
+
sig { returns(String) }
|
|
756
|
+
attr_accessor :card_number
|
|
757
|
+
|
|
758
|
+
# Card security code (3–4 digits)
|
|
759
|
+
sig { returns(String) }
|
|
760
|
+
attr_accessor :cvc
|
|
761
|
+
|
|
762
|
+
# Card expiry date in MM/YY format (e.g. "09/27")
|
|
763
|
+
sig { returns(String) }
|
|
764
|
+
attr_accessor :expiry
|
|
765
|
+
|
|
766
|
+
# Billing ZIP / postal code associated with the card
|
|
767
|
+
sig { returns(String) }
|
|
768
|
+
attr_accessor :zip_code
|
|
769
|
+
|
|
770
|
+
# Payment card details for this profile (optional). Accepted when billing_model is
|
|
771
|
+
# "profile" or "profile_and_organization". Not persisted on our servers —
|
|
772
|
+
# forwarded to the payment processor.
|
|
773
|
+
sig do
|
|
774
|
+
params(
|
|
775
|
+
card_number: String,
|
|
776
|
+
cvc: String,
|
|
777
|
+
expiry: String,
|
|
778
|
+
zip_code: String
|
|
779
|
+
).returns(T.attached_class)
|
|
780
|
+
end
|
|
781
|
+
def self.new(
|
|
782
|
+
# Card number (digits only, 13–19 characters)
|
|
783
|
+
card_number:,
|
|
784
|
+
# Card security code (3–4 digits)
|
|
785
|
+
cvc:,
|
|
786
|
+
# Card expiry date in MM/YY format (e.g. "09/27")
|
|
787
|
+
expiry:,
|
|
788
|
+
# Billing ZIP / postal code associated with the card
|
|
789
|
+
zip_code:
|
|
790
|
+
)
|
|
791
|
+
end
|
|
792
|
+
|
|
793
|
+
sig do
|
|
794
|
+
override.returns(
|
|
795
|
+
{
|
|
796
|
+
card_number: String,
|
|
797
|
+
cvc: String,
|
|
798
|
+
expiry: String,
|
|
799
|
+
zip_code: String
|
|
800
|
+
}
|
|
801
|
+
)
|
|
802
|
+
end
|
|
803
|
+
def to_hash
|
|
804
|
+
end
|
|
805
|
+
end
|
|
806
|
+
|
|
257
807
|
class WhatsappBusinessAccount < Sentdm::Internal::Type::BaseModel
|
|
258
808
|
OrHash =
|
|
259
809
|
T.type_alias do
|