sentdm 0.5.0 → 0.8.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.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -0
  3. data/README.md +31 -1
  4. data/lib/sentdm/internal/type/base_model.rb +5 -5
  5. data/lib/sentdm/models/api_response_of_contact.rb +9 -6
  6. data/lib/sentdm/models/api_response_of_profile_detail.rb +6 -6
  7. data/lib/sentdm/models/api_response_of_user.rb +6 -6
  8. data/lib/sentdm/models/api_response_template.rb +6 -6
  9. data/lib/sentdm/models/api_response_webhook.rb +4 -4
  10. data/lib/sentdm/models/brands_brand_data.rb +16 -252
  11. data/lib/sentdm/models/contact_delete_params.rb +1 -1
  12. data/lib/sentdm/models/contact_list_response.rb +9 -9
  13. data/lib/sentdm/models/me_retrieve_response.rb +35 -21
  14. data/lib/sentdm/models/message_retrieve_activities_response.rb +7 -7
  15. data/lib/sentdm/models/message_retrieve_status_response.rb +7 -7
  16. data/lib/sentdm/models/message_send_params.rb +5 -3
  17. data/lib/sentdm/models/message_send_response.rb +7 -7
  18. data/lib/sentdm/models/{mutation_request_base.rb → mutation_request.rb} +2 -2
  19. data/lib/sentdm/models/number_lookup_response.rb +4 -4
  20. data/lib/sentdm/models/pagination_meta.rb +3 -3
  21. data/lib/sentdm/models/{profile_complete_setup_params.rb → profile_complete_params.rb} +3 -3
  22. data/lib/sentdm/models/{profile_complete_setup_response.rb → profile_complete_response.rb} +1 -1
  23. data/lib/sentdm/models/profile_create_params.rb +20 -23
  24. data/lib/sentdm/models/profile_delete_params.rb +1 -1
  25. data/lib/sentdm/models/profile_detail.rb +12 -22
  26. data/lib/sentdm/models/profile_list_response.rb +7 -7
  27. data/lib/sentdm/models/profile_update_params.rb +9 -13
  28. data/lib/sentdm/models/profiles/api_response_of_tcr_campaign_with_use_cases.rb +4 -4
  29. data/lib/sentdm/models/profiles/base_dto.rb +32 -0
  30. data/lib/sentdm/models/profiles/campaign_create_params.rb +2 -2
  31. data/lib/sentdm/models/profiles/campaign_data.rb +5 -26
  32. data/lib/sentdm/models/profiles/campaign_delete_params.rb +1 -1
  33. data/lib/sentdm/models/profiles/campaign_list_response.rb +4 -4
  34. data/lib/sentdm/models/profiles/campaign_update_params.rb +2 -2
  35. data/lib/sentdm/models/profiles/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rb +29 -0
  36. data/lib/sentdm/models/profiles/tcr_campaign_with_use_cases.rb +2 -2
  37. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rb +34 -0
  38. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rb +40 -0
  39. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rb +38 -0
  40. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rb +81 -0
  41. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rb +34 -0
  42. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rb +39 -0
  43. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rb +116 -0
  44. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rb +75 -0
  45. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rb +58 -0
  46. data/lib/sentdm/models/template_create_params.rb +3 -2
  47. data/lib/sentdm/models/template_definition.rb +19 -263
  48. data/lib/sentdm/models/template_list_response.rb +9 -9
  49. data/lib/sentdm/models/template_update_params.rb +3 -2
  50. data/lib/sentdm/models/user_list_response.rb +7 -7
  51. data/lib/sentdm/models/user_remove_params.rb +1 -1
  52. data/lib/sentdm/models/webhook_list_event_types_response.rb +4 -4
  53. data/lib/sentdm/models/webhook_list_events_response.rb +4 -4
  54. data/lib/sentdm/models/webhook_list_response.rb +4 -4
  55. data/lib/sentdm/models/webhook_rotate_secret_params.rb +1 -1
  56. data/lib/sentdm/models/webhook_rotate_secret_response.rb +4 -4
  57. data/lib/sentdm/models/webhook_test_response.rb +4 -4
  58. data/lib/sentdm/models.rb +29 -4
  59. data/lib/sentdm/resources/messages.rb +1 -1
  60. data/lib/sentdm/resources/profiles/campaigns.rb +2 -2
  61. data/lib/sentdm/resources/profiles.rb +12 -12
  62. data/lib/sentdm/resources/templates.rb +2 -2
  63. data/lib/sentdm/version.rb +1 -1
  64. data/lib/sentdm.rb +14 -4
  65. data/rbi/sentdm/models/api_response_of_contact.rbi +6 -6
  66. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +6 -6
  67. data/rbi/sentdm/models/api_response_of_user.rbi +6 -6
  68. data/rbi/sentdm/models/api_response_template.rbi +6 -6
  69. data/rbi/sentdm/models/api_response_webhook.rbi +4 -4
  70. data/rbi/sentdm/models/brands_brand_data.rbi +53 -355
  71. data/rbi/sentdm/models/contact_delete_params.rbi +1 -1
  72. data/rbi/sentdm/models/contact_list_response.rbi +9 -9
  73. data/rbi/sentdm/models/me_retrieve_response.rbi +33 -21
  74. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +7 -7
  75. data/rbi/sentdm/models/message_retrieve_status_response.rbi +7 -7
  76. data/rbi/sentdm/models/message_send_params.rbi +6 -3
  77. data/rbi/sentdm/models/message_send_response.rbi +7 -7
  78. data/rbi/sentdm/models/{mutation_request_base.rbi → mutation_request.rbi} +2 -2
  79. data/rbi/sentdm/models/number_lookup_response.rbi +4 -4
  80. data/rbi/sentdm/models/pagination_meta.rbi +3 -3
  81. data/rbi/sentdm/models/{profile_complete_setup_params.rbi → profile_complete_params.rbi} +2 -2
  82. data/rbi/sentdm/models/{profile_complete_setup_response.rbi → profile_complete_response.rbi} +1 -1
  83. data/rbi/sentdm/models/profile_create_params.rbi +27 -33
  84. data/rbi/sentdm/models/profile_delete_params.rbi +1 -1
  85. data/rbi/sentdm/models/profile_detail.rbi +9 -22
  86. data/rbi/sentdm/models/profile_list_response.rbi +7 -7
  87. data/rbi/sentdm/models/profile_update_params.rbi +12 -20
  88. data/rbi/sentdm/models/profiles/api_response_of_tcr_campaign_with_use_cases.rbi +4 -4
  89. data/rbi/sentdm/models/profiles/base_dto.rbi +53 -0
  90. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +2 -2
  91. data/rbi/sentdm/models/profiles/campaign_data.rbi +14 -49
  92. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -1
  93. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +4 -4
  94. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +2 -2
  95. data/rbi/sentdm/models/profiles/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbi +51 -0
  96. data/rbi/sentdm/models/profiles/tcr_campaign_with_use_cases.rbi +2 -2
  97. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rbi +56 -0
  98. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rbi +76 -0
  99. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbi +79 -0
  100. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rbi +104 -0
  101. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rbi +60 -0
  102. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rbi +62 -0
  103. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbi +180 -0
  104. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbi +95 -0
  105. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbi +81 -0
  106. data/rbi/sentdm/models/template_create_params.rbi +4 -2
  107. data/rbi/sentdm/models/template_definition.rbi +82 -415
  108. data/rbi/sentdm/models/template_list_response.rbi +9 -9
  109. data/rbi/sentdm/models/template_update_params.rbi +4 -2
  110. data/rbi/sentdm/models/user_list_response.rbi +7 -7
  111. data/rbi/sentdm/models/user_remove_params.rbi +1 -1
  112. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +4 -4
  113. data/rbi/sentdm/models/webhook_list_events_response.rbi +4 -4
  114. data/rbi/sentdm/models/webhook_list_response.rbi +4 -4
  115. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -1
  116. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +4 -4
  117. data/rbi/sentdm/models/webhook_test_response.rbi +4 -4
  118. data/rbi/sentdm/models.rbi +29 -4
  119. data/rbi/sentdm/resources/messages.rbi +2 -1
  120. data/rbi/sentdm/resources/profiles/campaigns.rbi +2 -2
  121. data/rbi/sentdm/resources/profiles.rbi +20 -26
  122. data/rbi/sentdm/resources/templates.rbi +4 -2
  123. data/sig/sentdm/models/brands_brand_data.rbs +12 -192
  124. data/sig/sentdm/models/contact_delete_params.rbs +1 -1
  125. data/sig/sentdm/models/{mutation_request_base.rbs → mutation_request.rbs} +2 -2
  126. data/sig/sentdm/models/{profile_complete_setup_params.rbs → profile_complete_params.rbs} +2 -2
  127. data/sig/sentdm/models/profile_complete_response.rbs +5 -0
  128. data/sig/sentdm/models/profile_delete_params.rbs +1 -1
  129. data/sig/sentdm/models/profiles/base_dto.rbs +27 -0
  130. data/sig/sentdm/models/profiles/campaign_data.rbs +4 -26
  131. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +1 -1
  132. data/sig/sentdm/models/profiles/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbs +27 -0
  133. data/sig/sentdm/models/profiles/tcr_campaign_with_use_cases.rbs +2 -2
  134. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rbs +24 -0
  135. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rbs +30 -0
  136. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbs +38 -0
  137. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rbs +75 -0
  138. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rbs +32 -0
  139. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rbs +32 -0
  140. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbs +89 -0
  141. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbs +55 -0
  142. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbs +45 -0
  143. data/sig/sentdm/models/template_definition.rbs +20 -233
  144. data/sig/sentdm/models/user_remove_params.rbs +1 -1
  145. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +1 -1
  146. data/sig/sentdm/models.rbs +20 -4
  147. data/sig/sentdm/resources/profiles.rbs +1 -1
  148. metadata +44 -14
  149. data/lib/sentdm/models/base_dto.rb +0 -30
  150. data/rbi/sentdm/models/base_dto.rbi +0 -49
  151. data/sig/sentdm/models/base_dto.rbs +0 -25
  152. data/sig/sentdm/models/profile_complete_setup_response.rbs +0 -5
@@ -23,14 +23,14 @@ module Sentdm
23
23
  end
24
24
  attr_writer :data
25
25
 
26
- # Error details (null if successful)
26
+ # Error information
27
27
  sig { returns(T.nilable(Sentdm::APIError)) }
28
28
  attr_reader :error
29
29
 
30
30
  sig { params(error: T.nilable(Sentdm::APIError::OrHash)).void }
31
31
  attr_writer :error
32
32
 
33
- # Metadata about the request and response
33
+ # Request and response metadata
34
34
  sig { returns(T.nilable(Sentdm::APIMeta)) }
35
35
  attr_reader :meta
36
36
 
@@ -56,9 +56,9 @@ module Sentdm
56
56
  def self.new(
57
57
  # The response data (null if error)
58
58
  data: nil,
59
- # Error details (null if successful)
59
+ # Error information
60
60
  error: nil,
61
- # Metadata about the request and response
61
+ # Request and response metadata
62
62
  meta: nil,
63
63
  # Indicates whether the request was successful
64
64
  success: nil
@@ -0,0 +1,53 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class BaseDto < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Sentdm::Profiles::BaseDto, Sentdm::Internal::AnyHash)
10
+ end
11
+
12
+ # Unique identifier
13
+ sig { returns(T.nilable(String)) }
14
+ attr_reader :id
15
+
16
+ sig { params(id: String).void }
17
+ attr_writer :id
18
+
19
+ sig { returns(T.nilable(Time)) }
20
+ attr_reader :created_at
21
+
22
+ sig { params(created_at: Time).void }
23
+ attr_writer :created_at
24
+
25
+ sig { returns(T.nilable(Time)) }
26
+ attr_accessor :updated_at
27
+
28
+ sig do
29
+ params(
30
+ id: String,
31
+ created_at: Time,
32
+ updated_at: T.nilable(Time)
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ # Unique identifier
37
+ id: nil,
38
+ created_at: nil,
39
+ updated_at: nil
40
+ )
41
+ end
42
+
43
+ sig do
44
+ override.returns(
45
+ { id: String, created_at: Time, updated_at: T.nilable(Time) }
46
+ )
47
+ end
48
+ def to_hash
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -18,7 +18,7 @@ module Sentdm
18
18
  sig { returns(String) }
19
19
  attr_accessor :profile_id
20
20
 
21
- # Campaign data
21
+ # Campaign data for create or update operation
22
22
  sig { returns(Sentdm::Profiles::CampaignData) }
23
23
  attr_reader :campaign
24
24
 
@@ -57,7 +57,7 @@ module Sentdm
57
57
  end
58
58
  def self.new(
59
59
  profile_id:,
60
- # Campaign data
60
+ # Campaign data for create or update operation
61
61
  campaign:,
62
62
  # Sandbox flag - when true, the operation is simulated without side effects Useful
63
63
  # for testing integrations without actual execution
@@ -22,7 +22,13 @@ module Sentdm
22
22
  attr_accessor :type
23
23
 
24
24
  # List of use cases with sample messages
25
- sig { returns(T::Array[Sentdm::Profiles::CampaignData::UseCase]) }
25
+ sig do
26
+ returns(
27
+ T::Array[
28
+ Sentdm::Profiles::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData
29
+ ]
30
+ )
31
+ end
26
32
  attr_accessor :use_cases
27
33
 
28
34
  # Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
@@ -68,7 +74,9 @@ module Sentdm
68
74
  name: String,
69
75
  type: String,
70
76
  use_cases:
71
- T::Array[Sentdm::Profiles::CampaignData::UseCase::OrHash],
77
+ T::Array[
78
+ Sentdm::Profiles::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData::OrHash
79
+ ],
72
80
  help_keywords: T.nilable(String),
73
81
  help_message: T.nilable(String),
74
82
  message_flow: T.nilable(String),
@@ -116,7 +124,10 @@ module Sentdm
116
124
  description: String,
117
125
  name: String,
118
126
  type: String,
119
- use_cases: T::Array[Sentdm::Profiles::CampaignData::UseCase],
127
+ use_cases:
128
+ T::Array[
129
+ Sentdm::Profiles::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData
130
+ ],
120
131
  help_keywords: T.nilable(String),
121
132
  help_message: T.nilable(String),
122
133
  message_flow: T.nilable(String),
@@ -131,52 +142,6 @@ module Sentdm
131
142
  end
132
143
  def to_hash
133
144
  end
134
-
135
- class UseCase < Sentdm::Internal::Type::BaseModel
136
- OrHash =
137
- T.type_alias do
138
- T.any(
139
- Sentdm::Profiles::CampaignData::UseCase,
140
- Sentdm::Internal::AnyHash
141
- )
142
- end
143
-
144
- # US messaging use case category
145
- sig { returns(Sentdm::Profiles::MessagingUseCaseUs::OrSymbol) }
146
- attr_accessor :messaging_use_case_us
147
-
148
- # Sample messages for this use case (1-5 messages, max 1024 characters each)
149
- sig { returns(T::Array[String]) }
150
- attr_accessor :sample_messages
151
-
152
- # Campaign use case with sample messages
153
- sig do
154
- params(
155
- messaging_use_case_us:
156
- Sentdm::Profiles::MessagingUseCaseUs::OrSymbol,
157
- sample_messages: T::Array[String]
158
- ).returns(T.attached_class)
159
- end
160
- def self.new(
161
- # US messaging use case category
162
- messaging_use_case_us:,
163
- # Sample messages for this use case (1-5 messages, max 1024 characters each)
164
- sample_messages:
165
- )
166
- end
167
-
168
- sig do
169
- override.returns(
170
- {
171
- messaging_use_case_us:
172
- Sentdm::Profiles::MessagingUseCaseUs::OrSymbol,
173
- sample_messages: T::Array[String]
174
- }
175
- )
176
- end
177
- def to_hash
178
- end
179
- end
180
145
  end
181
146
  end
182
147
  end
@@ -71,7 +71,7 @@ module Sentdm
71
71
  def to_hash
72
72
  end
73
73
 
74
- class Body < Sentdm::Models::MutationRequestBase
74
+ class Body < Sentdm::Models::MutationRequest
75
75
  OrHash =
76
76
  T.type_alias do
77
77
  T.any(
@@ -20,14 +20,14 @@ module Sentdm
20
20
  end
21
21
  attr_accessor :data
22
22
 
23
- # Error details (null if successful)
23
+ # Error information
24
24
  sig { returns(T.nilable(Sentdm::APIError)) }
25
25
  attr_reader :error
26
26
 
27
27
  sig { params(error: T.nilable(Sentdm::APIError::OrHash)).void }
28
28
  attr_writer :error
29
29
 
30
- # Metadata about the request and response
30
+ # Request and response metadata
31
31
  sig { returns(T.nilable(Sentdm::APIMeta)) }
32
32
  attr_reader :meta
33
33
 
@@ -56,9 +56,9 @@ module Sentdm
56
56
  def self.new(
57
57
  # The response data (null if error)
58
58
  data: nil,
59
- # Error details (null if successful)
59
+ # Error information
60
60
  error: nil,
61
- # Metadata about the request and response
61
+ # Request and response metadata
62
62
  meta: nil,
63
63
  # Indicates whether the request was successful
64
64
  success: nil
@@ -21,7 +21,7 @@ module Sentdm
21
21
  sig { returns(String) }
22
22
  attr_accessor :campaign_id
23
23
 
24
- # Campaign data
24
+ # Campaign data for create or update operation
25
25
  sig { returns(Sentdm::Profiles::CampaignData) }
26
26
  attr_reader :campaign
27
27
 
@@ -62,7 +62,7 @@ module Sentdm
62
62
  def self.new(
63
63
  profile_id:,
64
64
  campaign_id:,
65
- # Campaign data
65
+ # Campaign data for create or update operation
66
66
  campaign:,
67
67
  # Sandbox flag - when true, the operation is simulated without side effects Useful
68
68
  # for testing integrations without actual execution
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Sentdm::Profiles::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData,
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
@@ -3,7 +3,7 @@
3
3
  module Sentdm
4
4
  module Models
5
5
  module Profiles
6
- class TcrCampaignWithUseCases < Sentdm::Models::BaseDto
6
+ class TcrCampaignWithUseCases < Sentdm::Models::Profiles::BaseDto
7
7
  OrHash =
8
8
  T.type_alias do
9
9
  T.any(
@@ -331,7 +331,7 @@ module Sentdm
331
331
  end
332
332
  end
333
333
 
334
- class UseCase < Sentdm::Models::BaseDto
334
+ class UseCase < Sentdm::Models::Profiles::BaseDto
335
335
  OrHash =
336
336
  T.type_alias do
337
337
  T.any(
@@ -0,0 +1,56 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class SentDmServicesCommonContractsPocOsAuthenticationConfig < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::SentDmServicesCommonContractsPocOsAuthenticationConfig,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Whether to add the security recommendation text: "For your security, do not
15
+ # share this code."
16
+ sig { returns(T.nilable(T::Boolean)) }
17
+ attr_reader :add_security_recommendation
18
+
19
+ sig { params(add_security_recommendation: T::Boolean).void }
20
+ attr_writer :add_security_recommendation
21
+
22
+ # Code expiration time in minutes (1-90). If set, adds footer: "This code expires
23
+ # in X minutes."
24
+ sig { returns(T.nilable(Integer)) }
25
+ attr_accessor :code_expiration_minutes
26
+
27
+ # Configuration for AUTHENTICATION category templates
28
+ sig do
29
+ params(
30
+ add_security_recommendation: T::Boolean,
31
+ code_expiration_minutes: T.nilable(Integer)
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(
35
+ # Whether to add the security recommendation text: "For your security, do not
36
+ # share this code."
37
+ add_security_recommendation: nil,
38
+ # Code expiration time in minutes (1-90). If set, adds footer: "This code expires
39
+ # in X minutes."
40
+ code_expiration_minutes: nil
41
+ )
42
+ end
43
+
44
+ sig do
45
+ override.returns(
46
+ {
47
+ add_security_recommendation: T::Boolean,
48
+ code_expiration_minutes: T.nilable(Integer)
49
+ }
50
+ )
51
+ end
52
+ def to_hash
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,76 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class SentDmServicesCommonContractsPocOsTemplateBody < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::SentDmServicesCommonContractsPocOsTemplateBody,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Content that will be used for all channels (SMS and WhatsApp) unless
15
+ # channel-specific content is provided
16
+ sig { returns(T.nilable(Sentdm::TemplateBodyContent)) }
17
+ attr_reader :multi_channel
18
+
19
+ sig do
20
+ params(
21
+ multi_channel: T.nilable(Sentdm::TemplateBodyContent::OrHash)
22
+ ).void
23
+ end
24
+ attr_writer :multi_channel
25
+
26
+ # SMS-specific content that overrides multi-channel content for SMS messages
27
+ sig { returns(T.nilable(Sentdm::TemplateBodyContent)) }
28
+ attr_reader :sms
29
+
30
+ sig { params(sms: T.nilable(Sentdm::TemplateBodyContent::OrHash)).void }
31
+ attr_writer :sms
32
+
33
+ # WhatsApp-specific content that overrides multi-channel content for WhatsApp
34
+ # messages
35
+ sig { returns(T.nilable(Sentdm::TemplateBodyContent)) }
36
+ attr_reader :whatsapp
37
+
38
+ sig do
39
+ params(whatsapp: T.nilable(Sentdm::TemplateBodyContent::OrHash)).void
40
+ end
41
+ attr_writer :whatsapp
42
+
43
+ # Body section of a message template with channel-specific content
44
+ sig do
45
+ params(
46
+ multi_channel: T.nilable(Sentdm::TemplateBodyContent::OrHash),
47
+ sms: T.nilable(Sentdm::TemplateBodyContent::OrHash),
48
+ whatsapp: T.nilable(Sentdm::TemplateBodyContent::OrHash)
49
+ ).returns(T.attached_class)
50
+ end
51
+ def self.new(
52
+ # Content that will be used for all channels (SMS and WhatsApp) unless
53
+ # channel-specific content is provided
54
+ multi_channel: nil,
55
+ # SMS-specific content that overrides multi-channel content for SMS messages
56
+ sms: nil,
57
+ # WhatsApp-specific content that overrides multi-channel content for WhatsApp
58
+ # messages
59
+ whatsapp: nil
60
+ )
61
+ end
62
+
63
+ sig do
64
+ override.returns(
65
+ {
66
+ multi_channel: T.nilable(Sentdm::TemplateBodyContent),
67
+ sms: T.nilable(Sentdm::TemplateBodyContent),
68
+ whatsapp: T.nilable(Sentdm::TemplateBodyContent)
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,79 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class SentDmServicesCommonContractsPocOsTemplateButton < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::SentDmServicesCommonContractsPocOsTemplateButton,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The unique identifier of the button (1-based index)
15
+ sig { returns(T.nilable(Integer)) }
16
+ attr_reader :id
17
+
18
+ sig { params(id: Integer).void }
19
+ attr_writer :id
20
+
21
+ # Properties specific to the button type
22
+ sig do
23
+ returns(
24
+ T.nilable(
25
+ Sentdm::SentDmServicesCommonContractsPocOsTemplateButtonProps
26
+ )
27
+ )
28
+ end
29
+ attr_reader :props
30
+
31
+ sig do
32
+ params(
33
+ props:
34
+ Sentdm::SentDmServicesCommonContractsPocOsTemplateButtonProps::OrHash
35
+ ).void
36
+ end
37
+ attr_writer :props
38
+
39
+ # The type of button (e.g., QUICK_REPLY, URL, PHONE_NUMBER, VOICE_CALL, COPY_CODE)
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :type
42
+
43
+ sig { params(type: String).void }
44
+ attr_writer :type
45
+
46
+ # Interactive button in a message template
47
+ sig do
48
+ params(
49
+ id: Integer,
50
+ props:
51
+ Sentdm::SentDmServicesCommonContractsPocOsTemplateButtonProps::OrHash,
52
+ type: String
53
+ ).returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+ # The unique identifier of the button (1-based index)
57
+ id: nil,
58
+ # Properties specific to the button type
59
+ props: nil,
60
+ # The type of button (e.g., QUICK_REPLY, URL, PHONE_NUMBER, VOICE_CALL, COPY_CODE)
61
+ type: nil
62
+ )
63
+ end
64
+
65
+ sig do
66
+ override.returns(
67
+ {
68
+ id: Integer,
69
+ props:
70
+ Sentdm::SentDmServicesCommonContractsPocOsTemplateButtonProps,
71
+ type: String
72
+ }
73
+ )
74
+ end
75
+ def to_hash
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,104 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class SentDmServicesCommonContractsPocOsTemplateButtonProps < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::SentDmServicesCommonContractsPocOsTemplateButtonProps,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(T.nilable(Integer)) }
15
+ attr_accessor :active_for
16
+
17
+ sig { returns(T.nilable(String)) }
18
+ attr_accessor :autofill_text
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ attr_accessor :country_code
22
+
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :offer_code
25
+
26
+ sig { returns(T.nilable(String)) }
27
+ attr_accessor :otp_type
28
+
29
+ sig { returns(T.nilable(String)) }
30
+ attr_accessor :package_name
31
+
32
+ sig { returns(T.nilable(String)) }
33
+ attr_accessor :phone_number
34
+
35
+ sig { returns(T.nilable(String)) }
36
+ attr_accessor :quick_reply_type
37
+
38
+ sig { returns(T.nilable(String)) }
39
+ attr_accessor :signature_hash
40
+
41
+ sig { returns(T.nilable(String)) }
42
+ attr_accessor :text
43
+
44
+ sig { returns(T.nilable(String)) }
45
+ attr_accessor :url
46
+
47
+ sig { returns(T.nilable(String)) }
48
+ attr_accessor :url_type
49
+
50
+ sig do
51
+ params(
52
+ active_for: T.nilable(Integer),
53
+ autofill_text: T.nilable(String),
54
+ country_code: T.nilable(String),
55
+ offer_code: T.nilable(String),
56
+ otp_type: T.nilable(String),
57
+ package_name: T.nilable(String),
58
+ phone_number: T.nilable(String),
59
+ quick_reply_type: T.nilable(String),
60
+ signature_hash: T.nilable(String),
61
+ text: T.nilable(String),
62
+ url: T.nilable(String),
63
+ url_type: T.nilable(String)
64
+ ).returns(T.attached_class)
65
+ end
66
+ def self.new(
67
+ active_for: nil,
68
+ autofill_text: nil,
69
+ country_code: nil,
70
+ offer_code: nil,
71
+ otp_type: nil,
72
+ package_name: nil,
73
+ phone_number: nil,
74
+ quick_reply_type: nil,
75
+ signature_hash: nil,
76
+ text: nil,
77
+ url: nil,
78
+ url_type: nil
79
+ )
80
+ end
81
+
82
+ sig do
83
+ override.returns(
84
+ {
85
+ active_for: T.nilable(Integer),
86
+ autofill_text: T.nilable(String),
87
+ country_code: T.nilable(String),
88
+ offer_code: T.nilable(String),
89
+ otp_type: T.nilable(String),
90
+ package_name: T.nilable(String),
91
+ phone_number: T.nilable(String),
92
+ quick_reply_type: T.nilable(String),
93
+ signature_hash: T.nilable(String),
94
+ text: T.nilable(String),
95
+ url: T.nilable(String),
96
+ url_type: T.nilable(String)
97
+ }
98
+ )
99
+ end
100
+ def to_hash
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,60 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class SentDmServicesCommonContractsPocOsTemplateFooter < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::SentDmServicesCommonContractsPocOsTemplateFooter,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The footer template text with optional variable placeholders
15
+ sig { returns(T.nilable(String)) }
16
+ attr_reader :template
17
+
18
+ sig { params(template: String).void }
19
+ attr_writer :template
20
+
21
+ # The type of footer (typically "text")
22
+ sig { returns(T.nilable(String)) }
23
+ attr_accessor :type
24
+
25
+ # List of variables used in the footer template
26
+ sig { returns(T.nilable(T::Array[Sentdm::TemplateVariable])) }
27
+ attr_accessor :variables
28
+
29
+ # Footer section of a message template
30
+ sig do
31
+ params(
32
+ template: String,
33
+ type: T.nilable(String),
34
+ variables: T.nilable(T::Array[Sentdm::TemplateVariable::OrHash])
35
+ ).returns(T.attached_class)
36
+ end
37
+ def self.new(
38
+ # The footer template text with optional variable placeholders
39
+ template: nil,
40
+ # The type of footer (typically "text")
41
+ type: nil,
42
+ # List of variables used in the footer template
43
+ variables: nil
44
+ )
45
+ end
46
+
47
+ sig do
48
+ override.returns(
49
+ {
50
+ template: String,
51
+ type: T.nilable(String),
52
+ variables: T.nilable(T::Array[Sentdm::TemplateVariable])
53
+ }
54
+ )
55
+ end
56
+ def to_hash
57
+ end
58
+ end
59
+ end
60
+ end