sentdm 0.29.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +27 -1
- data/lib/sentdm/internal/type/base_model.rb +5 -5
- data/lib/sentdm/models/api_meta.rb +34 -0
- data/lib/sentdm/models/api_response_of_contact.rb +46 -0
- data/lib/sentdm/models/api_response_of_contact_message_summary.rb +43 -0
- data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +43 -0
- data/lib/sentdm/models/api_response_of_profile_detail.rb +43 -0
- data/lib/sentdm/models/api_response_of_user.rb +43 -0
- data/lib/sentdm/models/api_response_template.rb +43 -0
- data/lib/sentdm/models/api_response_webhook.rb +43 -0
- data/lib/sentdm/models/billing_contact_info.rb +47 -0
- data/lib/sentdm/models/brand_business_info.rb +114 -0
- data/lib/sentdm/models/brand_compliance_info.rb +59 -0
- data/lib/sentdm/models/brand_contact_info.rb +58 -0
- data/lib/sentdm/models/brands_brand_data.rb +34 -0
- data/lib/sentdm/models/contact_delete_params.rb +2 -16
- data/lib/sentdm/models/contact_list_response.rb +12 -295
- data/lib/sentdm/models/contact_message_summary.rb +76 -0
- data/lib/sentdm/models/contact_response.rb +139 -0
- data/lib/sentdm/models/conversation_messages_list.rb +245 -0
- data/lib/sentdm/models/error_detail.rb +42 -0
- data/lib/sentdm/models/me_retrieve_response.rb +12 -242
- data/lib/sentdm/models/message_retrieve_activities_response.rb +9 -159
- data/lib/sentdm/models/message_retrieve_status_response.rb +6 -74
- data/lib/sentdm/models/message_send_response.rb +6 -74
- data/lib/sentdm/models/mutation_request.rb +20 -0
- data/lib/sentdm/models/number_lookup_response.rb +6 -74
- data/lib/sentdm/models/pagination_meta.rb +84 -0
- data/lib/sentdm/models/payment_details.rb +40 -0
- data/lib/sentdm/models/profile_complete_response.rb +6 -74
- data/lib/sentdm/models/profile_create_params.rb +9 -345
- data/lib/sentdm/models/profile_delete_params.rb +2 -16
- data/lib/sentdm/models/profile_detail.rb +650 -0
- data/lib/sentdm/models/profile_list_response.rb +12 -815
- data/lib/sentdm/models/profile_settings.rb +85 -0
- data/lib/sentdm/models/profile_update_params.rb +9 -345
- data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +45 -0
- data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +45 -0
- data/lib/sentdm/models/profiles/brand_campaign.rb +247 -0
- data/lib/sentdm/models/profiles/campaign_create_params.rb +3 -156
- data/lib/sentdm/models/profiles/campaign_data.rb +136 -0
- data/lib/sentdm/models/profiles/campaign_delete_params.rb +2 -17
- data/lib/sentdm/models/profiles/campaign_update_params.rb +3 -156
- data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
- data/lib/sentdm/models/profiles/campaign_use_case_data.rb +29 -0
- data/lib/sentdm/models/template.rb +102 -0
- data/lib/sentdm/models/template_list_response.rb +12 -258
- data/lib/sentdm/models/user_list_response.rb +12 -249
- data/lib/sentdm/models/user_remove_params.rb +2 -16
- data/lib/sentdm/models/user_response.rb +94 -0
- data/lib/sentdm/models/webhook_event_type.rb +45 -0
- data/lib/sentdm/models/webhook_list_event_types_response.rb +12 -203
- data/lib/sentdm/models/webhook_list_events_response.rb +9 -157
- data/lib/sentdm/models/webhook_list_response.rb +12 -276
- data/lib/sentdm/models/webhook_response.rb +120 -0
- data/lib/sentdm/models/webhook_rotate_secret_params.rb +2 -17
- data/lib/sentdm/models/webhook_rotate_secret_response.rb +6 -74
- data/lib/sentdm/models/webhook_test_response.rb +6 -74
- data/lib/sentdm/models.rb +52 -0
- data/lib/sentdm/resources/contacts.rb +8 -8
- data/lib/sentdm/resources/conversations.rb +4 -4
- data/lib/sentdm/resources/profiles/campaigns.rb +8 -8
- data/lib/sentdm/resources/profiles.rb +12 -12
- data/lib/sentdm/resources/templates.rb +6 -6
- data/lib/sentdm/resources/users.rb +6 -6
- data/lib/sentdm/resources/webhooks.rb +8 -8
- data/lib/sentdm/version.rb +1 -1
- data/lib/sentdm.rb +32 -22
- data/rbi/sentdm/models/api_meta.rbi +55 -0
- data/rbi/sentdm/models/api_response_of_contact.rbi +74 -0
- data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
- data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
- data/rbi/sentdm/models/api_response_of_profile_detail.rbi +74 -0
- data/rbi/sentdm/models/api_response_of_user.rbi +74 -0
- data/rbi/sentdm/models/api_response_template.rbi +74 -0
- data/rbi/sentdm/models/api_response_webhook.rbi +74 -0
- data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
- data/rbi/sentdm/models/brand_business_info.rbi +162 -0
- data/rbi/sentdm/models/brand_compliance_info.rbi +76 -0
- data/rbi/sentdm/models/brand_contact_info.rbi +78 -0
- data/rbi/sentdm/models/brands_brand_data.rbi +65 -0
- data/rbi/sentdm/models/contact_delete_params.rbi +2 -19
- data/rbi/sentdm/models/contact_list_response.rbi +16 -522
- data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
- data/rbi/sentdm/models/contact_response.rbi +200 -0
- data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
- data/rbi/sentdm/models/error_detail.rbi +66 -0
- data/rbi/sentdm/models/me_retrieve_response.rbi +16 -367
- data/rbi/sentdm/models/message_retrieve_activities_response.rbi +12 -325
- data/rbi/sentdm/models/message_retrieve_status_response.rbi +8 -148
- data/rbi/sentdm/models/message_send_response.rbi +8 -135
- data/rbi/sentdm/models/mutation_request.rbi +32 -0
- data/rbi/sentdm/models/number_lookup_response.rbi +8 -135
- data/rbi/sentdm/models/pagination_meta.rbi +135 -0
- data/rbi/sentdm/models/payment_details.rbi +56 -0
- data/rbi/sentdm/models/profile_complete_response.rbi +8 -137
- data/rbi/sentdm/models/profile_create_params.rbi +12 -546
- data/rbi/sentdm/models/profile_delete_params.rbi +2 -19
- data/rbi/sentdm/models/profile_detail.rbi +918 -0
- data/rbi/sentdm/models/profile_list_response.rbi +16 -1347
- data/rbi/sentdm/models/profile_settings.rbi +102 -0
- data/rbi/sentdm/models/profile_update_params.rbi +12 -546
- data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +81 -0
- data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +76 -0
- data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
- data/rbi/sentdm/models/profiles/campaign_create_params.rbi +4 -218
- data/rbi/sentdm/models/profiles/campaign_data.rbi +158 -0
- data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -14
- data/rbi/sentdm/models/profiles/campaign_update_params.rbi +4 -218
- data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
- data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +51 -0
- data/rbi/sentdm/models/template.rbi +139 -0
- data/rbi/sentdm/models/template_list_response.rbi +16 -464
- data/rbi/sentdm/models/user_list_response.rbi +16 -444
- data/rbi/sentdm/models/user_remove_params.rbi +2 -19
- data/rbi/sentdm/models/user_response.rbi +131 -0
- data/rbi/sentdm/models/webhook_event_type.rbi +74 -0
- data/rbi/sentdm/models/webhook_list_event_types_response.rbi +16 -414
- data/rbi/sentdm/models/webhook_list_events_response.rbi +12 -314
- data/rbi/sentdm/models/webhook_list_response.rbi +16 -475
- data/rbi/sentdm/models/webhook_response.rbi +153 -0
- data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -14
- data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +8 -148
- data/rbi/sentdm/models/webhook_test_response.rbi +8 -135
- data/rbi/sentdm/models.rbi +54 -0
- data/rbi/sentdm/resources/contacts.rbi +4 -4
- data/rbi/sentdm/resources/conversations.rbi +2 -2
- data/rbi/sentdm/resources/profiles/campaigns.rbi +5 -5
- data/rbi/sentdm/resources/profiles.rbi +9 -13
- data/rbi/sentdm/resources/templates.rbi +3 -3
- data/rbi/sentdm/resources/users.rbi +3 -3
- data/rbi/sentdm/resources/webhooks.rbi +4 -4
- data/sig/sentdm/models/api_meta.rbs +27 -0
- data/sig/sentdm/models/api_response_of_contact.rbs +39 -0
- data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
- data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
- data/sig/sentdm/models/api_response_of_profile_detail.rbs +39 -0
- data/sig/sentdm/models/api_response_of_user.rbs +39 -0
- data/sig/sentdm/models/api_response_template.rbs +39 -0
- data/sig/sentdm/models/api_response_webhook.rbs +39 -0
- data/sig/sentdm/models/billing_contact_info.rbs +30 -0
- data/sig/sentdm/models/brand_business_info.rbs +89 -0
- data/sig/sentdm/models/brand_compliance_info.rbs +45 -0
- data/sig/sentdm/models/brand_contact_info.rbs +45 -0
- data/sig/sentdm/models/brands_brand_data.rbs +30 -0
- data/sig/sentdm/models/contact_delete_params.rbs +6 -10
- data/sig/sentdm/models/contact_list_response.rbs +20 -263
- data/sig/sentdm/models/contact_message_summary.rbs +84 -0
- data/sig/sentdm/models/contact_response.rbs +118 -0
- data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
- data/sig/sentdm/models/error_detail.rbs +39 -0
- data/sig/sentdm/models/me_retrieve_response.rbs +18 -176
- data/sig/sentdm/models/message_retrieve_activities_response.rbs +14 -142
- data/sig/sentdm/models/message_retrieve_status_response.rbs +9 -71
- data/sig/sentdm/models/message_send_response.rbs +9 -71
- data/sig/sentdm/models/mutation_request.rbs +15 -0
- data/sig/sentdm/models/number_lookup_response.rbs +9 -71
- data/sig/sentdm/models/pagination_meta.rbs +67 -0
- data/sig/sentdm/models/payment_details.rbs +30 -0
- data/sig/sentdm/models/profile_complete_response.rbs +9 -71
- data/sig/sentdm/models/profile_create_params.rbs +12 -263
- data/sig/sentdm/models/profile_delete_params.rbs +6 -10
- data/sig/sentdm/models/profile_detail.rbs +461 -0
- data/sig/sentdm/models/profile_list_response.rbs +20 -606
- data/sig/sentdm/models/profile_settings.rbs +50 -0
- data/sig/sentdm/models/profile_update_params.rbs +12 -263
- data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +41 -0
- data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +41 -0
- data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
- data/sig/sentdm/models/profiles/campaign_create_params.rbs +4 -108
- data/sig/sentdm/models/profiles/campaign_data.rbs +87 -0
- data/sig/sentdm/models/profiles/campaign_delete_params.rbs +8 -15
- data/sig/sentdm/models/profiles/campaign_update_params.rbs +4 -108
- data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
- data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +27 -0
- data/sig/sentdm/models/template.rbs +84 -0
- data/sig/sentdm/models/template_list_response.rbs +19 -230
- data/sig/sentdm/models/user_list_response.rbs +20 -224
- data/sig/sentdm/models/user_remove_params.rbs +6 -10
- data/sig/sentdm/models/user_response.rbs +79 -0
- data/sig/sentdm/models/webhook_event_type.rbs +51 -0
- data/sig/sentdm/models/webhook_list_event_types_response.rbs +20 -196
- data/sig/sentdm/models/webhook_list_events_response.rbs +14 -142
- data/sig/sentdm/models/webhook_list_response.rbs +20 -255
- data/sig/sentdm/models/webhook_response.rbs +110 -0
- data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -17
- data/sig/sentdm/models/webhook_rotate_secret_response.rbs +9 -71
- data/sig/sentdm/models/webhook_test_response.rbs +9 -71
- data/sig/sentdm/models.rbs +52 -0
- 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 +9 -9
- 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 +98 -68
- data/lib/sentdm/models/contact_create_response.rb +0 -249
- data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +0 -186
- data/lib/sentdm/models/contact_retrieve_response.rb +0 -249
- data/lib/sentdm/models/contact_update_response.rb +0 -249
- data/lib/sentdm/models/conversation_list_messages_response.rb +0 -436
- data/lib/sentdm/models/conversation_list_response.rb +0 -433
- data/lib/sentdm/models/profile_create_response.rb +0 -760
- data/lib/sentdm/models/profile_retrieve_response.rb +0 -762
- data/lib/sentdm/models/profile_update_response.rb +0 -760
- data/lib/sentdm/models/profiles/campaign_create_response.rb +0 -420
- data/lib/sentdm/models/profiles/campaign_list_response.rb +0 -421
- data/lib/sentdm/models/profiles/campaign_update_response.rb +0 -420
- data/lib/sentdm/models/template_create_response.rb +0 -209
- data/lib/sentdm/models/template_retrieve_response.rb +0 -209
- data/lib/sentdm/models/template_update_response.rb +0 -209
- data/lib/sentdm/models/user_invite_response.rb +0 -201
- data/lib/sentdm/models/user_retrieve_response.rb +0 -201
- data/lib/sentdm/models/user_update_role_response.rb +0 -201
- data/lib/sentdm/models/webhook_create_response.rb +0 -229
- data/lib/sentdm/models/webhook_retrieve_response.rb +0 -229
- data/lib/sentdm/models/webhook_toggle_status_response.rb +0 -229
- data/lib/sentdm/models/webhook_update_response.rb +0 -229
- data/rbi/sentdm/models/contact_create_response.rbi +0 -407
- data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +0 -397
- data/rbi/sentdm/models/contact_retrieve_response.rbi +0 -409
- data/rbi/sentdm/models/contact_update_response.rbi +0 -407
- data/rbi/sentdm/models/conversation_list_messages_response.rbi +0 -843
- data/rbi/sentdm/models/conversation_list_response.rbi +0 -819
- data/rbi/sentdm/models/profile_create_response.rbi +0 -1226
- data/rbi/sentdm/models/profile_retrieve_response.rbi +0 -1230
- data/rbi/sentdm/models/profile_update_response.rbi +0 -1226
- data/rbi/sentdm/models/profiles/campaign_create_response.rbi +0 -674
- data/rbi/sentdm/models/profiles/campaign_list_response.rbi +0 -667
- data/rbi/sentdm/models/profiles/campaign_update_response.rbi +0 -674
- data/rbi/sentdm/models/template_create_response.rbi +0 -349
- data/rbi/sentdm/models/template_retrieve_response.rbi +0 -355
- data/rbi/sentdm/models/template_update_response.rbi +0 -349
- data/rbi/sentdm/models/user_invite_response.rbi +0 -336
- data/rbi/sentdm/models/user_retrieve_response.rbi +0 -336
- data/rbi/sentdm/models/user_update_role_response.rbi +0 -341
- data/rbi/sentdm/models/webhook_create_response.rbi +0 -361
- data/rbi/sentdm/models/webhook_retrieve_response.rbi +0 -363
- data/rbi/sentdm/models/webhook_toggle_status_response.rbi +0 -379
- data/rbi/sentdm/models/webhook_update_response.rbi +0 -361
- data/sig/sentdm/models/contact_create_response.rbs +0 -216
- data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +0 -182
- data/sig/sentdm/models/contact_retrieve_response.rbs +0 -216
- data/sig/sentdm/models/contact_update_response.rbs +0 -216
- data/sig/sentdm/models/conversation_list_messages_response.rbs +0 -404
- data/sig/sentdm/models/conversation_list_response.rbs +0 -404
- data/sig/sentdm/models/profile_create_response.rbs +0 -559
- data/sig/sentdm/models/profile_retrieve_response.rbs +0 -559
- data/sig/sentdm/models/profile_update_response.rbs +0 -559
- data/sig/sentdm/models/profiles/campaign_create_response.rbs +0 -357
- data/sig/sentdm/models/profiles/campaign_list_response.rbs +0 -357
- data/sig/sentdm/models/profiles/campaign_update_response.rbs +0 -357
- data/sig/sentdm/models/template_create_response.rbs +0 -182
- data/sig/sentdm/models/template_retrieve_response.rbs +0 -182
- data/sig/sentdm/models/template_update_response.rbs +0 -182
- data/sig/sentdm/models/user_invite_response.rbs +0 -177
- data/sig/sentdm/models/user_retrieve_response.rbs +0 -177
- data/sig/sentdm/models/user_update_role_response.rbs +0 -177
- data/sig/sentdm/models/webhook_create_response.rbs +0 -208
- data/sig/sentdm/models/webhook_retrieve_response.rbs +0 -208
- data/sig/sentdm/models/webhook_toggle_status_response.rbs +0 -208
- data/sig/sentdm/models/webhook_update_response.rbs +0 -208
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module Profiles
|
|
6
|
+
class CampaignData < Sentdm::Internal::Type::BaseModel
|
|
7
|
+
OrHash =
|
|
8
|
+
T.type_alias do
|
|
9
|
+
T.any(Sentdm::Profiles::CampaignData, Sentdm::Internal::AnyHash)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Campaign description
|
|
13
|
+
sig { returns(String) }
|
|
14
|
+
attr_accessor :description
|
|
15
|
+
|
|
16
|
+
# Campaign name
|
|
17
|
+
sig { returns(String) }
|
|
18
|
+
attr_accessor :name
|
|
19
|
+
|
|
20
|
+
# Campaign type (e.g., "KYC", "App").
|
|
21
|
+
#
|
|
22
|
+
# Still required of a caller, and consulted by nothing. It named the signup path
|
|
23
|
+
# that produced the campaign, was written to a column no query filters on, no TCR
|
|
24
|
+
# payload carries and no fee or status decision reads, and is now defaulted at the
|
|
25
|
+
# entity instead. It stays required so that a request which was valid before is
|
|
26
|
+
# still valid — dropping it would be the client-visible change, not keeping it.
|
|
27
|
+
sig { returns(String) }
|
|
28
|
+
attr_accessor :type
|
|
29
|
+
|
|
30
|
+
# List of use cases with sample messages
|
|
31
|
+
sig { returns(T::Array[Sentdm::Profiles::CampaignUseCaseData]) }
|
|
32
|
+
attr_accessor :use_cases
|
|
33
|
+
|
|
34
|
+
# Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
|
|
35
|
+
sig { returns(T.nilable(String)) }
|
|
36
|
+
attr_accessor :help_keywords
|
|
37
|
+
|
|
38
|
+
# Message sent when user requests help
|
|
39
|
+
sig { returns(T.nilable(String)) }
|
|
40
|
+
attr_accessor :help_message
|
|
41
|
+
|
|
42
|
+
# Description of how messages flow in the campaign
|
|
43
|
+
sig { returns(T.nilable(String)) }
|
|
44
|
+
attr_accessor :message_flow
|
|
45
|
+
|
|
46
|
+
# Comma-separated keywords that trigger opt-in (e.g., "YES, START, SUBSCRIBE")
|
|
47
|
+
sig { returns(T.nilable(String)) }
|
|
48
|
+
attr_accessor :optin_keywords
|
|
49
|
+
|
|
50
|
+
# Message sent when user opts in
|
|
51
|
+
sig { returns(T.nilable(String)) }
|
|
52
|
+
attr_accessor :optin_message
|
|
53
|
+
|
|
54
|
+
# Comma-separated keywords that trigger opt-out (e.g., "STOP, UNSUBSCRIBE, END")
|
|
55
|
+
sig { returns(T.nilable(String)) }
|
|
56
|
+
attr_accessor :optout_keywords
|
|
57
|
+
|
|
58
|
+
# Message sent when user opts out
|
|
59
|
+
sig { returns(T.nilable(String)) }
|
|
60
|
+
attr_accessor :optout_message
|
|
61
|
+
|
|
62
|
+
# URL to privacy policy
|
|
63
|
+
sig { returns(T.nilable(String)) }
|
|
64
|
+
attr_accessor :privacy_policy_link
|
|
65
|
+
|
|
66
|
+
# URL to terms and conditions
|
|
67
|
+
sig { returns(T.nilable(String)) }
|
|
68
|
+
attr_accessor :terms_and_conditions_link
|
|
69
|
+
|
|
70
|
+
# Expected messaging volume for this campaign. Numeric string (e.g. "1999",
|
|
71
|
+
# "5000"). Values below 2000 bill at the low-volume tier.
|
|
72
|
+
sig { returns(T.nilable(String)) }
|
|
73
|
+
attr_accessor :volume
|
|
74
|
+
|
|
75
|
+
# Campaign data for create or update operation
|
|
76
|
+
sig do
|
|
77
|
+
params(
|
|
78
|
+
description: String,
|
|
79
|
+
name: String,
|
|
80
|
+
type: String,
|
|
81
|
+
use_cases: T::Array[Sentdm::Profiles::CampaignUseCaseData::OrHash],
|
|
82
|
+
help_keywords: T.nilable(String),
|
|
83
|
+
help_message: T.nilable(String),
|
|
84
|
+
message_flow: T.nilable(String),
|
|
85
|
+
optin_keywords: T.nilable(String),
|
|
86
|
+
optin_message: T.nilable(String),
|
|
87
|
+
optout_keywords: T.nilable(String),
|
|
88
|
+
optout_message: T.nilable(String),
|
|
89
|
+
privacy_policy_link: T.nilable(String),
|
|
90
|
+
terms_and_conditions_link: T.nilable(String),
|
|
91
|
+
volume: T.nilable(String)
|
|
92
|
+
).returns(T.attached_class)
|
|
93
|
+
end
|
|
94
|
+
def self.new(
|
|
95
|
+
# Campaign description
|
|
96
|
+
description:,
|
|
97
|
+
# Campaign name
|
|
98
|
+
name:,
|
|
99
|
+
# Campaign type (e.g., "KYC", "App").
|
|
100
|
+
#
|
|
101
|
+
# Still required of a caller, and consulted by nothing. It named the signup path
|
|
102
|
+
# that produced the campaign, was written to a column no query filters on, no TCR
|
|
103
|
+
# payload carries and no fee or status decision reads, and is now defaulted at the
|
|
104
|
+
# entity instead. It stays required so that a request which was valid before is
|
|
105
|
+
# still valid — dropping it would be the client-visible change, not keeping it.
|
|
106
|
+
type:,
|
|
107
|
+
# List of use cases with sample messages
|
|
108
|
+
use_cases:,
|
|
109
|
+
# Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
|
|
110
|
+
help_keywords: nil,
|
|
111
|
+
# Message sent when user requests help
|
|
112
|
+
help_message: nil,
|
|
113
|
+
# Description of how messages flow in the campaign
|
|
114
|
+
message_flow: nil,
|
|
115
|
+
# Comma-separated keywords that trigger opt-in (e.g., "YES, START, SUBSCRIBE")
|
|
116
|
+
optin_keywords: nil,
|
|
117
|
+
# Message sent when user opts in
|
|
118
|
+
optin_message: nil,
|
|
119
|
+
# Comma-separated keywords that trigger opt-out (e.g., "STOP, UNSUBSCRIBE, END")
|
|
120
|
+
optout_keywords: nil,
|
|
121
|
+
# Message sent when user opts out
|
|
122
|
+
optout_message: nil,
|
|
123
|
+
# URL to privacy policy
|
|
124
|
+
privacy_policy_link: nil,
|
|
125
|
+
# URL to terms and conditions
|
|
126
|
+
terms_and_conditions_link: nil,
|
|
127
|
+
# Expected messaging volume for this campaign. Numeric string (e.g. "1999",
|
|
128
|
+
# "5000"). Values below 2000 bill at the low-volume tier.
|
|
129
|
+
volume: nil
|
|
130
|
+
)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
sig do
|
|
134
|
+
override.returns(
|
|
135
|
+
{
|
|
136
|
+
description: String,
|
|
137
|
+
name: String,
|
|
138
|
+
type: String,
|
|
139
|
+
use_cases: T::Array[Sentdm::Profiles::CampaignUseCaseData],
|
|
140
|
+
help_keywords: T.nilable(String),
|
|
141
|
+
help_message: T.nilable(String),
|
|
142
|
+
message_flow: T.nilable(String),
|
|
143
|
+
optin_keywords: T.nilable(String),
|
|
144
|
+
optin_message: T.nilable(String),
|
|
145
|
+
optout_keywords: T.nilable(String),
|
|
146
|
+
optout_message: T.nilable(String),
|
|
147
|
+
privacy_policy_link: T.nilable(String),
|
|
148
|
+
terms_and_conditions_link: T.nilable(String),
|
|
149
|
+
volume: T.nilable(String)
|
|
150
|
+
}
|
|
151
|
+
)
|
|
152
|
+
end
|
|
153
|
+
def to_hash
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
end
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
module Sentdm
|
|
4
4
|
module Models
|
|
5
5
|
module Profiles
|
|
6
|
-
class CampaignDeleteParams < Sentdm::
|
|
6
|
+
class CampaignDeleteParams < Sentdm::Models::MutationRequest
|
|
7
7
|
extend Sentdm::Internal::Type::RequestParameters::Converter
|
|
8
8
|
include Sentdm::Internal::Type::RequestParameters
|
|
9
9
|
|
|
@@ -21,14 +21,6 @@ module Sentdm
|
|
|
21
21
|
sig { returns(String) }
|
|
22
22
|
attr_accessor :campaign_id
|
|
23
23
|
|
|
24
|
-
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
25
|
-
# for testing integrations without actual execution
|
|
26
|
-
sig { returns(T.nilable(T::Boolean)) }
|
|
27
|
-
attr_reader :sandbox
|
|
28
|
-
|
|
29
|
-
sig { params(sandbox: T::Boolean).void }
|
|
30
|
-
attr_writer :sandbox
|
|
31
|
-
|
|
32
24
|
sig { returns(T.nilable(String)) }
|
|
33
25
|
attr_reader :x_profile_id
|
|
34
26
|
|
|
@@ -39,7 +31,6 @@ module Sentdm
|
|
|
39
31
|
params(
|
|
40
32
|
profile_id: String,
|
|
41
33
|
campaign_id: String,
|
|
42
|
-
sandbox: T::Boolean,
|
|
43
34
|
x_profile_id: String,
|
|
44
35
|
request_options: Sentdm::RequestOptions::OrHash
|
|
45
36
|
).returns(T.attached_class)
|
|
@@ -47,9 +38,6 @@ module Sentdm
|
|
|
47
38
|
def self.new(
|
|
48
39
|
profile_id:,
|
|
49
40
|
campaign_id:,
|
|
50
|
-
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
51
|
-
# for testing integrations without actual execution
|
|
52
|
-
sandbox: nil,
|
|
53
41
|
x_profile_id: nil,
|
|
54
42
|
request_options: {}
|
|
55
43
|
)
|
|
@@ -60,7 +48,6 @@ module Sentdm
|
|
|
60
48
|
{
|
|
61
49
|
profile_id: String,
|
|
62
50
|
campaign_id: String,
|
|
63
|
-
sandbox: T::Boolean,
|
|
64
51
|
x_profile_id: String,
|
|
65
52
|
request_options: Sentdm::RequestOptions
|
|
66
53
|
}
|
|
@@ -22,14 +22,10 @@ module Sentdm
|
|
|
22
22
|
attr_accessor :campaign_id
|
|
23
23
|
|
|
24
24
|
# Campaign data for create or update operation
|
|
25
|
-
sig { returns(Sentdm::Profiles::
|
|
25
|
+
sig { returns(Sentdm::Profiles::CampaignData) }
|
|
26
26
|
attr_reader :campaign
|
|
27
27
|
|
|
28
|
-
sig
|
|
29
|
-
params(
|
|
30
|
-
campaign: Sentdm::Profiles::CampaignUpdateParams::Campaign::OrHash
|
|
31
|
-
).void
|
|
32
|
-
end
|
|
28
|
+
sig { params(campaign: Sentdm::Profiles::CampaignData::OrHash).void }
|
|
33
29
|
attr_writer :campaign
|
|
34
30
|
|
|
35
31
|
# Sandbox flag - when true, the operation is simulated without side effects Useful
|
|
@@ -56,7 +52,7 @@ module Sentdm
|
|
|
56
52
|
params(
|
|
57
53
|
profile_id: String,
|
|
58
54
|
campaign_id: String,
|
|
59
|
-
campaign: Sentdm::Profiles::
|
|
55
|
+
campaign: Sentdm::Profiles::CampaignData::OrHash,
|
|
60
56
|
sandbox: T::Boolean,
|
|
61
57
|
idempotency_key: String,
|
|
62
58
|
x_profile_id: String,
|
|
@@ -82,7 +78,7 @@ module Sentdm
|
|
|
82
78
|
{
|
|
83
79
|
profile_id: String,
|
|
84
80
|
campaign_id: String,
|
|
85
|
-
campaign: Sentdm::Profiles::
|
|
81
|
+
campaign: Sentdm::Profiles::CampaignData,
|
|
86
82
|
sandbox: T::Boolean,
|
|
87
83
|
idempotency_key: String,
|
|
88
84
|
x_profile_id: String,
|
|
@@ -92,216 +88,6 @@ module Sentdm
|
|
|
92
88
|
end
|
|
93
89
|
def to_hash
|
|
94
90
|
end
|
|
95
|
-
|
|
96
|
-
class Campaign < Sentdm::Internal::Type::BaseModel
|
|
97
|
-
OrHash =
|
|
98
|
-
T.type_alias do
|
|
99
|
-
T.any(
|
|
100
|
-
Sentdm::Profiles::CampaignUpdateParams::Campaign,
|
|
101
|
-
Sentdm::Internal::AnyHash
|
|
102
|
-
)
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
# Campaign description
|
|
106
|
-
sig { returns(String) }
|
|
107
|
-
attr_accessor :description
|
|
108
|
-
|
|
109
|
-
# Campaign name
|
|
110
|
-
sig { returns(String) }
|
|
111
|
-
attr_accessor :name
|
|
112
|
-
|
|
113
|
-
# Campaign type (e.g., "KYC", "App").
|
|
114
|
-
#
|
|
115
|
-
# Still required of a caller, and consulted by nothing. It named the signup path
|
|
116
|
-
# that produced the campaign, was written to a column no query filters on, no TCR
|
|
117
|
-
# payload carries and no fee or status decision reads, and is now defaulted at the
|
|
118
|
-
# entity instead. It stays required so that a request which was valid before is
|
|
119
|
-
# still valid — dropping it would be the client-visible change, not keeping it.
|
|
120
|
-
sig { returns(String) }
|
|
121
|
-
attr_accessor :type
|
|
122
|
-
|
|
123
|
-
# List of use cases with sample messages
|
|
124
|
-
sig do
|
|
125
|
-
returns(
|
|
126
|
-
T::Array[
|
|
127
|
-
Sentdm::Profiles::CampaignUpdateParams::Campaign::UseCase
|
|
128
|
-
]
|
|
129
|
-
)
|
|
130
|
-
end
|
|
131
|
-
attr_accessor :use_cases
|
|
132
|
-
|
|
133
|
-
# Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
|
|
134
|
-
sig { returns(T.nilable(String)) }
|
|
135
|
-
attr_accessor :help_keywords
|
|
136
|
-
|
|
137
|
-
# Message sent when user requests help
|
|
138
|
-
sig { returns(T.nilable(String)) }
|
|
139
|
-
attr_accessor :help_message
|
|
140
|
-
|
|
141
|
-
# Description of how messages flow in the campaign
|
|
142
|
-
sig { returns(T.nilable(String)) }
|
|
143
|
-
attr_accessor :message_flow
|
|
144
|
-
|
|
145
|
-
# Comma-separated keywords that trigger opt-in (e.g., "YES, START, SUBSCRIBE")
|
|
146
|
-
sig { returns(T.nilable(String)) }
|
|
147
|
-
attr_accessor :optin_keywords
|
|
148
|
-
|
|
149
|
-
# Message sent when user opts in
|
|
150
|
-
sig { returns(T.nilable(String)) }
|
|
151
|
-
attr_accessor :optin_message
|
|
152
|
-
|
|
153
|
-
# Comma-separated keywords that trigger opt-out (e.g., "STOP, UNSUBSCRIBE, END")
|
|
154
|
-
sig { returns(T.nilable(String)) }
|
|
155
|
-
attr_accessor :optout_keywords
|
|
156
|
-
|
|
157
|
-
# Message sent when user opts out
|
|
158
|
-
sig { returns(T.nilable(String)) }
|
|
159
|
-
attr_accessor :optout_message
|
|
160
|
-
|
|
161
|
-
# URL to privacy policy
|
|
162
|
-
sig { returns(T.nilable(String)) }
|
|
163
|
-
attr_accessor :privacy_policy_link
|
|
164
|
-
|
|
165
|
-
# URL to terms and conditions
|
|
166
|
-
sig { returns(T.nilable(String)) }
|
|
167
|
-
attr_accessor :terms_and_conditions_link
|
|
168
|
-
|
|
169
|
-
# Expected messaging volume for this campaign. Numeric string (e.g. "1999",
|
|
170
|
-
# "5000"). Values below 2000 bill at the low-volume tier.
|
|
171
|
-
sig { returns(T.nilable(String)) }
|
|
172
|
-
attr_accessor :volume
|
|
173
|
-
|
|
174
|
-
# Campaign data for create or update operation
|
|
175
|
-
sig do
|
|
176
|
-
params(
|
|
177
|
-
description: String,
|
|
178
|
-
name: String,
|
|
179
|
-
type: String,
|
|
180
|
-
use_cases:
|
|
181
|
-
T::Array[
|
|
182
|
-
Sentdm::Profiles::CampaignUpdateParams::Campaign::UseCase::OrHash
|
|
183
|
-
],
|
|
184
|
-
help_keywords: T.nilable(String),
|
|
185
|
-
help_message: T.nilable(String),
|
|
186
|
-
message_flow: T.nilable(String),
|
|
187
|
-
optin_keywords: T.nilable(String),
|
|
188
|
-
optin_message: T.nilable(String),
|
|
189
|
-
optout_keywords: T.nilable(String),
|
|
190
|
-
optout_message: T.nilable(String),
|
|
191
|
-
privacy_policy_link: T.nilable(String),
|
|
192
|
-
terms_and_conditions_link: T.nilable(String),
|
|
193
|
-
volume: T.nilable(String)
|
|
194
|
-
).returns(T.attached_class)
|
|
195
|
-
end
|
|
196
|
-
def self.new(
|
|
197
|
-
# Campaign description
|
|
198
|
-
description:,
|
|
199
|
-
# Campaign name
|
|
200
|
-
name:,
|
|
201
|
-
# Campaign type (e.g., "KYC", "App").
|
|
202
|
-
#
|
|
203
|
-
# Still required of a caller, and consulted by nothing. It named the signup path
|
|
204
|
-
# that produced the campaign, was written to a column no query filters on, no TCR
|
|
205
|
-
# payload carries and no fee or status decision reads, and is now defaulted at the
|
|
206
|
-
# entity instead. It stays required so that a request which was valid before is
|
|
207
|
-
# still valid — dropping it would be the client-visible change, not keeping it.
|
|
208
|
-
type:,
|
|
209
|
-
# List of use cases with sample messages
|
|
210
|
-
use_cases:,
|
|
211
|
-
# Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
|
|
212
|
-
help_keywords: nil,
|
|
213
|
-
# Message sent when user requests help
|
|
214
|
-
help_message: nil,
|
|
215
|
-
# Description of how messages flow in the campaign
|
|
216
|
-
message_flow: nil,
|
|
217
|
-
# Comma-separated keywords that trigger opt-in (e.g., "YES, START, SUBSCRIBE")
|
|
218
|
-
optin_keywords: nil,
|
|
219
|
-
# Message sent when user opts in
|
|
220
|
-
optin_message: nil,
|
|
221
|
-
# Comma-separated keywords that trigger opt-out (e.g., "STOP, UNSUBSCRIBE, END")
|
|
222
|
-
optout_keywords: nil,
|
|
223
|
-
# Message sent when user opts out
|
|
224
|
-
optout_message: nil,
|
|
225
|
-
# URL to privacy policy
|
|
226
|
-
privacy_policy_link: nil,
|
|
227
|
-
# URL to terms and conditions
|
|
228
|
-
terms_and_conditions_link: nil,
|
|
229
|
-
# Expected messaging volume for this campaign. Numeric string (e.g. "1999",
|
|
230
|
-
# "5000"). Values below 2000 bill at the low-volume tier.
|
|
231
|
-
volume: nil
|
|
232
|
-
)
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
sig do
|
|
236
|
-
override.returns(
|
|
237
|
-
{
|
|
238
|
-
description: String,
|
|
239
|
-
name: String,
|
|
240
|
-
type: String,
|
|
241
|
-
use_cases:
|
|
242
|
-
T::Array[
|
|
243
|
-
Sentdm::Profiles::CampaignUpdateParams::Campaign::UseCase
|
|
244
|
-
],
|
|
245
|
-
help_keywords: T.nilable(String),
|
|
246
|
-
help_message: T.nilable(String),
|
|
247
|
-
message_flow: T.nilable(String),
|
|
248
|
-
optin_keywords: T.nilable(String),
|
|
249
|
-
optin_message: T.nilable(String),
|
|
250
|
-
optout_keywords: T.nilable(String),
|
|
251
|
-
optout_message: T.nilable(String),
|
|
252
|
-
privacy_policy_link: T.nilable(String),
|
|
253
|
-
terms_and_conditions_link: T.nilable(String),
|
|
254
|
-
volume: T.nilable(String)
|
|
255
|
-
}
|
|
256
|
-
)
|
|
257
|
-
end
|
|
258
|
-
def to_hash
|
|
259
|
-
end
|
|
260
|
-
|
|
261
|
-
class UseCase < Sentdm::Internal::Type::BaseModel
|
|
262
|
-
OrHash =
|
|
263
|
-
T.type_alias do
|
|
264
|
-
T.any(
|
|
265
|
-
Sentdm::Profiles::CampaignUpdateParams::Campaign::UseCase,
|
|
266
|
-
Sentdm::Internal::AnyHash
|
|
267
|
-
)
|
|
268
|
-
end
|
|
269
|
-
|
|
270
|
-
sig { returns(Sentdm::Profiles::MessagingUseCaseUs::OrSymbol) }
|
|
271
|
-
attr_accessor :messaging_use_case_us
|
|
272
|
-
|
|
273
|
-
# Sample messages for this use case (1-5 messages, max 1024 characters each)
|
|
274
|
-
sig { returns(T::Array[String]) }
|
|
275
|
-
attr_accessor :sample_messages
|
|
276
|
-
|
|
277
|
-
# Campaign use case with sample messages
|
|
278
|
-
sig do
|
|
279
|
-
params(
|
|
280
|
-
messaging_use_case_us:
|
|
281
|
-
Sentdm::Profiles::MessagingUseCaseUs::OrSymbol,
|
|
282
|
-
sample_messages: T::Array[String]
|
|
283
|
-
).returns(T.attached_class)
|
|
284
|
-
end
|
|
285
|
-
def self.new(
|
|
286
|
-
messaging_use_case_us:,
|
|
287
|
-
# Sample messages for this use case (1-5 messages, max 1024 characters each)
|
|
288
|
-
sample_messages:
|
|
289
|
-
)
|
|
290
|
-
end
|
|
291
|
-
|
|
292
|
-
sig do
|
|
293
|
-
override.returns(
|
|
294
|
-
{
|
|
295
|
-
messaging_use_case_us:
|
|
296
|
-
Sentdm::Profiles::MessagingUseCaseUs::OrSymbol,
|
|
297
|
-
sample_messages: T::Array[String]
|
|
298
|
-
}
|
|
299
|
-
)
|
|
300
|
-
end
|
|
301
|
-
def to_hash
|
|
302
|
-
end
|
|
303
|
-
end
|
|
304
|
-
end
|
|
305
91
|
end
|
|
306
92
|
end
|
|
307
93
|
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module Profiles
|
|
6
|
+
class CampaignUseCase < Sentdm::Internal::Type::BaseModel
|
|
7
|
+
OrHash =
|
|
8
|
+
T.type_alias do
|
|
9
|
+
T.any(Sentdm::Profiles::CampaignUseCase, Sentdm::Internal::AnyHash)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
sig { returns(T.nilable(String)) }
|
|
13
|
+
attr_reader :id
|
|
14
|
+
|
|
15
|
+
sig { params(id: String).void }
|
|
16
|
+
attr_writer :id
|
|
17
|
+
|
|
18
|
+
sig { returns(T.nilable(String)) }
|
|
19
|
+
attr_reader :campaign_id
|
|
20
|
+
|
|
21
|
+
sig { params(campaign_id: String).void }
|
|
22
|
+
attr_writer :campaign_id
|
|
23
|
+
|
|
24
|
+
sig { returns(T.nilable(Time)) }
|
|
25
|
+
attr_reader :created_at
|
|
26
|
+
|
|
27
|
+
sig { params(created_at: Time).void }
|
|
28
|
+
attr_writer :created_at
|
|
29
|
+
|
|
30
|
+
sig { returns(T.nilable(String)) }
|
|
31
|
+
attr_reader :customer_id
|
|
32
|
+
|
|
33
|
+
sig { params(customer_id: String).void }
|
|
34
|
+
attr_writer :customer_id
|
|
35
|
+
|
|
36
|
+
sig do
|
|
37
|
+
returns(T.nilable(Sentdm::Profiles::MessagingUseCaseUs::TaggedSymbol))
|
|
38
|
+
end
|
|
39
|
+
attr_reader :messaging_use_case_us
|
|
40
|
+
|
|
41
|
+
sig do
|
|
42
|
+
params(
|
|
43
|
+
messaging_use_case_us:
|
|
44
|
+
Sentdm::Profiles::MessagingUseCaseUs::OrSymbol
|
|
45
|
+
).void
|
|
46
|
+
end
|
|
47
|
+
attr_writer :messaging_use_case_us
|
|
48
|
+
|
|
49
|
+
# Sample messages submitted to the registry for this use case.
|
|
50
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
51
|
+
attr_reader :sample_messages
|
|
52
|
+
|
|
53
|
+
sig { params(sample_messages: T::Array[String]).void }
|
|
54
|
+
attr_writer :sample_messages
|
|
55
|
+
|
|
56
|
+
sig { returns(T.nilable(Time)) }
|
|
57
|
+
attr_accessor :updated_at
|
|
58
|
+
|
|
59
|
+
# Customer-facing use-case representation for the public v3 campaign contract.
|
|
60
|
+
# Exists for the same reason as BrandCampaignV3Response: nesting the
|
|
61
|
+
# TcrCampaignUseCase database entity in a public response means any column added
|
|
62
|
+
# to that table silently becomes part of the customer-facing contract. This DTO is
|
|
63
|
+
# an explicit allowlist, so a new column stays invisible until it is added here on
|
|
64
|
+
# purpose. This mirrors exactly the fields the entity already serialized, so it
|
|
65
|
+
# removes nothing from the current response shape. It only closes the future-leak
|
|
66
|
+
# path.
|
|
67
|
+
sig do
|
|
68
|
+
params(
|
|
69
|
+
id: String,
|
|
70
|
+
campaign_id: String,
|
|
71
|
+
created_at: Time,
|
|
72
|
+
customer_id: String,
|
|
73
|
+
messaging_use_case_us:
|
|
74
|
+
Sentdm::Profiles::MessagingUseCaseUs::OrSymbol,
|
|
75
|
+
sample_messages: T::Array[String],
|
|
76
|
+
updated_at: T.nilable(Time)
|
|
77
|
+
).returns(T.attached_class)
|
|
78
|
+
end
|
|
79
|
+
def self.new(
|
|
80
|
+
id: nil,
|
|
81
|
+
campaign_id: nil,
|
|
82
|
+
created_at: nil,
|
|
83
|
+
customer_id: nil,
|
|
84
|
+
messaging_use_case_us: nil,
|
|
85
|
+
# Sample messages submitted to the registry for this use case.
|
|
86
|
+
sample_messages: nil,
|
|
87
|
+
updated_at: nil
|
|
88
|
+
)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
sig do
|
|
92
|
+
override.returns(
|
|
93
|
+
{
|
|
94
|
+
id: String,
|
|
95
|
+
campaign_id: String,
|
|
96
|
+
created_at: Time,
|
|
97
|
+
customer_id: String,
|
|
98
|
+
messaging_use_case_us:
|
|
99
|
+
Sentdm::Profiles::MessagingUseCaseUs::TaggedSymbol,
|
|
100
|
+
sample_messages: T::Array[String],
|
|
101
|
+
updated_at: T.nilable(Time)
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
end
|
|
105
|
+
def to_hash
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Sentdm
|
|
4
|
+
module Models
|
|
5
|
+
module Profiles
|
|
6
|
+
class CampaignUseCaseData < Sentdm::Internal::Type::BaseModel
|
|
7
|
+
OrHash =
|
|
8
|
+
T.type_alias do
|
|
9
|
+
T.any(
|
|
10
|
+
Sentdm::Profiles::CampaignUseCaseData,
|
|
11
|
+
Sentdm::Internal::AnyHash
|
|
12
|
+
)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
sig { returns(Sentdm::Profiles::MessagingUseCaseUs::OrSymbol) }
|
|
16
|
+
attr_accessor :messaging_use_case_us
|
|
17
|
+
|
|
18
|
+
# Sample messages for this use case (1-5 messages, max 1024 characters each)
|
|
19
|
+
sig { returns(T::Array[String]) }
|
|
20
|
+
attr_accessor :sample_messages
|
|
21
|
+
|
|
22
|
+
# Campaign use case with sample messages
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
messaging_use_case_us:
|
|
26
|
+
Sentdm::Profiles::MessagingUseCaseUs::OrSymbol,
|
|
27
|
+
sample_messages: T::Array[String]
|
|
28
|
+
).returns(T.attached_class)
|
|
29
|
+
end
|
|
30
|
+
def self.new(
|
|
31
|
+
messaging_use_case_us:,
|
|
32
|
+
# Sample messages for this use case (1-5 messages, max 1024 characters each)
|
|
33
|
+
sample_messages:
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
sig do
|
|
38
|
+
override.returns(
|
|
39
|
+
{
|
|
40
|
+
messaging_use_case_us:
|
|
41
|
+
Sentdm::Profiles::MessagingUseCaseUs::OrSymbol,
|
|
42
|
+
sample_messages: T::Array[String]
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
def to_hash
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|