sentdm 0.25.0 → 0.26.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 (110) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +7 -11
  4. data/lib/sentdm/client.rb +4 -0
  5. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +43 -0
  6. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +43 -0
  7. data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_authentication_config.rb → authentication_config.rb} +2 -3
  8. data/lib/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rb → brand_business_info.rb} +5 -7
  9. data/lib/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rb → brand_compliance_info.rb} +2 -10
  10. data/lib/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rb → brand_contact_info.rb} +1 -1
  11. data/lib/sentdm/models/brands_brand_data.rb +9 -13
  12. data/lib/sentdm/models/contact_message_summary.rb +76 -0
  13. data/lib/sentdm/models/contact_retrieve_message_summary_params.rb +26 -0
  14. data/lib/sentdm/models/conversation_list_messages_params.rb +38 -0
  15. data/lib/sentdm/models/conversation_list_params.rb +32 -0
  16. data/lib/sentdm/models/conversation_messages_list.rb +245 -0
  17. data/lib/sentdm/models/message_send_response.rb +2 -6
  18. data/lib/sentdm/models/profile_detail.rb +3 -11
  19. data/lib/sentdm/models/profile_update_params.rb +2 -2
  20. data/lib/sentdm/models/profiles/{api_response_of_tcr_campaign_with_use_cases.rb → api_response_of_brand_campaign.rb} +5 -5
  21. data/lib/sentdm/models/profiles/{campaign_list_response.rb → api_response_of_list_of_brand_campaign.rb} +4 -6
  22. data/lib/sentdm/models/profiles/{tcr_campaign_with_use_cases.rb → brand_campaign.rb} +63 -111
  23. data/lib/sentdm/models/profiles/campaign_data.rb +13 -6
  24. data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
  25. data/lib/sentdm/models/profiles/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rb → campaign_use_case_data.rb} +1 -1
  26. data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_body.rb → template_body.rb} +2 -3
  27. data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button.rb → template_button.rb} +5 -6
  28. data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button_props.rb → template_button_props.rb} +2 -3
  29. data/lib/sentdm/models/template_definition.rb +15 -19
  30. data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_footer.rb → template_footer.rb} +1 -1
  31. data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_header.rb → template_header.rb} +2 -3
  32. data/lib/sentdm/models.rb +32 -27
  33. data/lib/sentdm/resources/contacts.rb +30 -0
  34. data/lib/sentdm/resources/conversations.rb +82 -0
  35. data/lib/sentdm/resources/messages.rb +4 -1
  36. data/lib/sentdm/resources/profiles/campaigns.rb +6 -6
  37. data/lib/sentdm/resources/profiles.rb +31 -19
  38. data/lib/sentdm/version.rb +1 -1
  39. data/lib/sentdm.rb +22 -14
  40. data/rbi/sentdm/client.rbi +3 -0
  41. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
  42. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
  43. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_authentication_config.rbi → authentication_config.rbi} +2 -5
  44. data/rbi/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbi → brand_business_info.rbi} +12 -30
  45. data/rbi/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbi → brand_compliance_info.rbi} +2 -13
  46. data/rbi/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbi → brand_contact_info.rbi} +2 -5
  47. data/rbi/sentdm/models/brands_brand_data.rbi +12 -51
  48. data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
  49. data/rbi/sentdm/models/contact_retrieve_message_summary_params.rbi +49 -0
  50. data/rbi/sentdm/models/conversation_list_messages_params.rbi +65 -0
  51. data/rbi/sentdm/models/conversation_list_params.rbi +51 -0
  52. data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
  53. data/rbi/sentdm/models/message_send_response.rbi +2 -4
  54. data/rbi/sentdm/models/profile_detail.rbi +2 -10
  55. data/rbi/sentdm/models/profile_update_params.rbi +2 -2
  56. data/rbi/sentdm/models/profiles/{api_response_of_tcr_campaign_with_use_cases.rbi → api_response_of_brand_campaign.rbi} +8 -10
  57. data/rbi/sentdm/models/profiles/{campaign_list_response.rbi → api_response_of_list_of_brand_campaign.rbi} +5 -13
  58. data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
  59. data/rbi/sentdm/models/profiles/campaign_data.rbi +16 -18
  60. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
  61. data/rbi/sentdm/models/profiles/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbi → campaign_use_case_data.rbi} +2 -2
  62. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_body.rbi → template_body.rbi} +2 -7
  63. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button.rbi → template_button.rbi} +6 -22
  64. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button_props.rbi → template_button_props.rbi} +2 -5
  65. data/rbi/sentdm/models/template_definition.rbi +19 -87
  66. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_footer.rbi → template_footer.rbi} +2 -5
  67. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_header.rbi → template_header.rbi} +2 -5
  68. data/rbi/sentdm/models.rbi +36 -27
  69. data/rbi/sentdm/resources/contacts.rbi +20 -0
  70. data/rbi/sentdm/resources/conversations.rbi +61 -0
  71. data/rbi/sentdm/resources/messages.rbi +4 -1
  72. data/rbi/sentdm/resources/profiles/campaigns.rbi +3 -3
  73. data/rbi/sentdm/resources/profiles.rbi +29 -18
  74. data/sig/sentdm/client.rbs +2 -0
  75. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
  76. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
  77. data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_authentication_config.rbs → authentication_config.rbs} +2 -2
  78. data/sig/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbs → brand_business_info.rbs} +7 -7
  79. data/sig/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbs → brand_compliance_info.rbs} +2 -7
  80. data/sig/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbs → brand_contact_info.rbs} +2 -2
  81. data/sig/sentdm/models/brands_brand_data.rbs +12 -12
  82. data/sig/sentdm/models/contact_message_summary.rbs +84 -0
  83. data/sig/sentdm/models/contact_retrieve_message_summary_params.rbs +30 -0
  84. data/sig/sentdm/models/conversation_list_messages_params.rbs +38 -0
  85. data/sig/sentdm/models/conversation_list_params.rbs +34 -0
  86. data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
  87. data/sig/sentdm/models/profile_detail.rbs +0 -5
  88. data/sig/sentdm/models/profiles/{campaign_list_response.rbs → api_response_of_brand_campaign.rbs} +6 -6
  89. data/sig/sentdm/models/profiles/{api_response_of_tcr_campaign_with_use_cases.rbs → api_response_of_list_of_brand_campaign.rbs} +6 -6
  90. data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
  91. data/sig/sentdm/models/profiles/campaign_data.rbs +12 -7
  92. data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
  93. data/sig/sentdm/models/profiles/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbs → campaign_use_case_data.rbs} +2 -2
  94. data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_body.rbs → template_body.rbs} +2 -2
  95. data/sig/sentdm/models/template_button.rbs +28 -0
  96. data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button_props.rbs → template_button_props.rbs} +2 -2
  97. data/sig/sentdm/models/template_definition.rbs +20 -20
  98. data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_footer.rbs → template_footer.rbs} +2 -2
  99. data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_header.rbs → template_header.rbs} +2 -2
  100. data/sig/sentdm/models.rbs +32 -18
  101. data/sig/sentdm/resources/contacts.rbs +6 -0
  102. data/sig/sentdm/resources/conversations.rbs +22 -0
  103. data/sig/sentdm/resources/profiles/campaigns.rbs +3 -3
  104. metadata +68 -44
  105. data/lib/sentdm/models/profiles/base_dto.rb +0 -32
  106. data/rbi/sentdm/models/profiles/base_dto.rbi +0 -53
  107. data/rbi/sentdm/models/profiles/tcr_campaign_with_use_cases.rbi +0 -425
  108. data/sig/sentdm/models/profiles/base_dto.rbs +0 -27
  109. data/sig/sentdm/models/profiles/tcr_campaign_with_use_cases.rbs +0 -306
  110. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbs +0 -32
@@ -3,21 +3,11 @@
3
3
  module Sentdm
4
4
  module Models
5
5
  module Profiles
6
- class TcrCampaignWithUseCases < Sentdm::Models::Profiles::BaseDto
7
- # @!attribute description
8
- #
9
- # @return [String]
10
- required :description, String
11
-
12
- # @!attribute name
6
+ class BrandCampaign < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute id
13
8
  #
14
- # @return [String]
15
- required :name, String
16
-
17
- # @!attribute type
18
- #
19
- # @return [String]
20
- required :type, String
9
+ # @return [String, nil]
10
+ optional :id, String
21
11
 
22
12
  # @!attribute billed_date
23
13
  #
@@ -34,10 +24,10 @@ module Sentdm
34
24
  # @return [Float, nil]
35
25
  optional :cost, Float, nil?: true
36
26
 
37
- # @!attribute csp_id
27
+ # @!attribute created_at
38
28
  #
39
- # @return [String, nil]
40
- optional :csp_id, String, api_name: :cspId, nil?: true
29
+ # @return [Time, nil]
30
+ optional :created_at, Time, api_name: :createdAt
41
31
 
42
32
  # @!attribute customer_id
43
33
  #
@@ -45,6 +35,8 @@ module Sentdm
45
35
  optional :customer_id, String, api_name: :customerId
46
36
 
47
37
  # @!attribute dca_elections_complete
38
+ # True once every carrier has completed its DCA election and the campaign is
39
+ # operationally ready for traffic.
48
40
  #
49
41
  # @return [Boolean, nil]
50
42
  optional :dca_elections_complete,
@@ -57,10 +49,13 @@ module Sentdm
57
49
  # @return [Time, nil]
58
50
  optional :dca_elections_completed_at, Time, api_name: :dcaElectionsCompletedAt, nil?: true
59
51
 
52
+ # @!attribute description
53
+ #
54
+ # @return [String, nil]
55
+ optional :description, String
56
+
60
57
  # @!attribute has_submission_transaction
61
- # True when this campaign already has a billing transaction of reference type
62
- # TCR_CAMPAIGN_SUBMISSION (the one-time submission fee was charged). Populated
63
- # only by the campaigns-list path; defaults false on other responses.
58
+ # True when the one-time campaign submission fee has already been charged.
64
59
  #
65
60
  # @return [Boolean, nil]
66
61
  optional :has_submission_transaction,
@@ -77,15 +72,15 @@ module Sentdm
77
72
  # @return [String, nil]
78
73
  optional :help_message, String, api_name: :helpMessage, nil?: true
79
74
 
80
- # @!attribute kyc_submission_form_id
75
+ # @!attribute message_flow
81
76
  #
82
77
  # @return [String, nil]
83
- optional :kyc_submission_form_id, String, api_name: :kycSubmissionFormId, nil?: true
78
+ optional :message_flow, String, api_name: :messageFlow, nil?: true
84
79
 
85
- # @!attribute message_flow
80
+ # @!attribute name
86
81
  #
87
82
  # @return [String, nil]
88
- optional :message_flow, String, api_name: :messageFlow, nil?: true
83
+ optional :name, String
89
84
 
90
85
  # @!attribute optin_keywords
91
86
  #
@@ -112,23 +107,10 @@ module Sentdm
112
107
  # @return [String, nil]
113
108
  optional :privacy_policy_link, String, api_name: :privacyPolicyLink, nil?: true
114
109
 
115
- # @!attribute reseller_id
116
- #
117
- # @return [String, nil]
118
- optional :reseller_id, String, api_name: :resellerId, nil?: true
119
-
120
- # @!attribute sharing_status
121
- #
122
- # @return [Symbol, Sentdm::Models::Profiles::TcrCampaignWithUseCases::SharingStatus, nil]
123
- optional :sharing_status,
124
- enum: -> { Sentdm::Profiles::TcrCampaignWithUseCases::SharingStatus },
125
- api_name: :sharingStatus,
126
- nil?: true
127
-
128
110
  # @!attribute status
129
111
  #
130
- # @return [Symbol, Sentdm::Models::Profiles::TcrCampaignWithUseCases::Status, nil]
131
- optional :status, enum: -> { Sentdm::Profiles::TcrCampaignWithUseCases::Status }, nil?: true
112
+ # @return [Symbol, Sentdm::Models::Profiles::BrandCampaign::Status, nil]
113
+ optional :status, enum: -> { Sentdm::Profiles::BrandCampaign::Status }, nil?: true
132
114
 
133
115
  # @!attribute submitted_at
134
116
  #
@@ -141,46 +123,56 @@ module Sentdm
141
123
  optional :submitted_to_tcr, Sentdm::Internal::Type::Boolean, api_name: :submittedToTCR
142
124
 
143
125
  # @!attribute tcr_campaign_id
126
+ # The Campaign Registry identifier, once the campaign has been accepted.
144
127
  #
145
128
  # @return [String, nil]
146
129
  optional :tcr_campaign_id, String, api_name: :tcrCampaignId, nil?: true
147
130
 
148
131
  # @!attribute tcr_sync_error
132
+ # Surfaced so customers can see why a submission did not reach the registry.
149
133
  #
150
134
  # @return [String, nil]
151
135
  optional :tcr_sync_error, String, api_name: :tcrSyncError, nil?: true
152
136
 
153
- # @!attribute telnyx_campaign_id
154
- #
155
- # @return [String, nil]
156
- optional :telnyx_campaign_id, String, api_name: :telnyxCampaignId, nil?: true
157
-
158
137
  # @!attribute terms_and_conditions_link
159
138
  #
160
139
  # @return [String, nil]
161
140
  optional :terms_and_conditions_link, String, api_name: :termsAndConditionsLink, nil?: true
162
141
 
163
- # @!attribute upstream_cnp_id
142
+ # @!attribute type
143
+ # Campaign type (for example KYC or App).
164
144
  #
165
145
  # @return [String, nil]
166
- optional :upstream_cnp_id, String, api_name: :upstreamCnpId, nil?: true
146
+ optional :type, String
147
+
148
+ # @!attribute updated_at
149
+ #
150
+ # @return [Time, nil]
151
+ optional :updated_at, Time, api_name: :updatedAt, nil?: true
167
152
 
168
153
  # @!attribute use_cases
169
154
  #
170
- # @return [Array<Sentdm::Models::Profiles::TcrCampaignWithUseCases::UseCase>, nil]
155
+ # @return [Array<Sentdm::Models::Profiles::CampaignUseCase>, nil]
171
156
  optional :use_cases,
172
- -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Profiles::TcrCampaignWithUseCases::UseCase] },
157
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Profiles::CampaignUseCase] },
173
158
  api_name: :useCases
174
159
 
175
- # @!method initialize(description:, name:, type:, billed_date: nil, brand_id: nil, cost: nil, csp_id: nil, customer_id: nil, dca_elections_complete: nil, dca_elections_completed_at: nil, has_submission_transaction: nil, help_keywords: nil, help_message: nil, kyc_submission_form_id: nil, message_flow: nil, optin_keywords: nil, optin_message: nil, optout_keywords: nil, optout_message: nil, privacy_policy_link: nil, reseller_id: nil, sharing_status: nil, status: nil, submitted_at: nil, submitted_to_tcr: nil, tcr_campaign_id: nil, tcr_sync_error: nil, telnyx_campaign_id: nil, terms_and_conditions_link: nil, upstream_cnp_id: nil, use_cases: nil)
176
- # Some parameter documentations has been truncated, see
177
- # {Sentdm::Models::Profiles::TcrCampaignWithUseCases} for more details.
160
+ # @!attribute volume
161
+ # Expected messaging volume for this campaign — customer-supplied on
162
+ # create/update, and the input to both the TCR usecase classification (LOW_VOLUME
163
+ # vs MIXED/specific) and the campaign fee tier. Surfaced so customers can read
164
+ # back the value they set.
178
165
  #
179
- # @param description [String]
166
+ # @return [String, nil]
167
+ optional :volume, String, nil?: true
168
+
169
+ # @!method initialize(id: nil, billed_date: nil, brand_id: nil, cost: nil, created_at: nil, customer_id: nil, dca_elections_complete: nil, dca_elections_completed_at: nil, description: nil, has_submission_transaction: nil, help_keywords: nil, help_message: nil, message_flow: nil, name: nil, optin_keywords: nil, optin_message: nil, optout_keywords: nil, optout_message: nil, privacy_policy_link: nil, status: nil, submitted_at: nil, submitted_to_tcr: nil, tcr_campaign_id: nil, tcr_sync_error: nil, terms_and_conditions_link: nil, type: nil, updated_at: nil, use_cases: nil, volume: nil)
170
+ # Some parameter documentations has been truncated, see
171
+ # {Sentdm::Models::Profiles::BrandCampaign} for more details.
180
172
  #
181
- # @param name [String]
173
+ # A 10DLC campaign registered for a brand.
182
174
  #
183
- # @param type [String]
175
+ # @param id [String]
184
176
  #
185
177
  # @param billed_date [Time, nil]
186
178
  #
@@ -188,24 +180,26 @@ module Sentdm
188
180
  #
189
181
  # @param cost [Float, nil]
190
182
  #
191
- # @param csp_id [String, nil]
183
+ # @param created_at [Time]
192
184
  #
193
185
  # @param customer_id [String]
194
186
  #
195
- # @param dca_elections_complete [Boolean, nil]
187
+ # @param dca_elections_complete [Boolean, nil] True once every carrier has completed its DCA election and the campaign is
196
188
  #
197
189
  # @param dca_elections_completed_at [Time, nil]
198
190
  #
199
- # @param has_submission_transaction [Boolean] True when this campaign already has a billing transaction of reference type
191
+ # @param description [String]
192
+ #
193
+ # @param has_submission_transaction [Boolean] True when the one-time campaign submission fee has already been charged.
200
194
  #
201
195
  # @param help_keywords [String, nil]
202
196
  #
203
197
  # @param help_message [String, nil]
204
198
  #
205
- # @param kyc_submission_form_id [String, nil]
206
- #
207
199
  # @param message_flow [String, nil]
208
200
  #
201
+ # @param name [String]
202
+ #
209
203
  # @param optin_keywords [String, nil]
210
204
  #
211
205
  # @param optin_message [String, nil]
@@ -216,39 +210,27 @@ module Sentdm
216
210
  #
217
211
  # @param privacy_policy_link [String, nil]
218
212
  #
219
- # @param reseller_id [String, nil]
220
- #
221
- # @param sharing_status [Symbol, Sentdm::Models::Profiles::TcrCampaignWithUseCases::SharingStatus, nil]
222
- #
223
- # @param status [Symbol, Sentdm::Models::Profiles::TcrCampaignWithUseCases::Status, nil]
213
+ # @param status [Symbol, Sentdm::Models::Profiles::BrandCampaign::Status, nil]
224
214
  #
225
215
  # @param submitted_at [Time, nil]
226
216
  #
227
217
  # @param submitted_to_tcr [Boolean]
228
218
  #
229
- # @param tcr_campaign_id [String, nil]
219
+ # @param tcr_campaign_id [String, nil] The Campaign Registry identifier, once the campaign has been accepted.
230
220
  #
231
- # @param tcr_sync_error [String, nil]
232
- #
233
- # @param telnyx_campaign_id [String, nil]
221
+ # @param tcr_sync_error [String, nil] Surfaced so customers can see why a submission did not reach the registry.
234
222
  #
235
223
  # @param terms_and_conditions_link [String, nil]
236
224
  #
237
- # @param upstream_cnp_id [String, nil]
225
+ # @param type [String] Campaign type (for example KYC or App).
238
226
  #
239
- # @param use_cases [Array<Sentdm::Models::Profiles::TcrCampaignWithUseCases::UseCase>]
240
-
241
- module SharingStatus
242
- extend Sentdm::Internal::Type::Enum
243
-
244
- PENDING = :PENDING
245
- ACCEPTED = :ACCEPTED
246
- DECLINED = :DECLINED
247
-
248
- # @!method self.values
249
- # @return [Array<Symbol>]
250
- end
227
+ # @param updated_at [Time, nil]
228
+ #
229
+ # @param use_cases [Array<Sentdm::Models::Profiles::CampaignUseCase>]
230
+ #
231
+ # @param volume [String, nil] Expected messaging volume for this campaign — customer-supplied on create/update
251
232
 
233
+ # @see Sentdm::Models::Profiles::BrandCampaign#status
252
234
  module Status
253
235
  extend Sentdm::Internal::Type::Enum
254
236
 
@@ -259,36 +241,6 @@ module Sentdm
259
241
  # @!method self.values
260
242
  # @return [Array<Symbol>]
261
243
  end
262
-
263
- class UseCase < Sentdm::Models::Profiles::BaseDto
264
- # @!attribute sample_messages
265
- #
266
- # @return [Array<String>]
267
- required :sample_messages, Sentdm::Internal::Type::ArrayOf[String], api_name: :sampleMessages
268
-
269
- # @!attribute campaign_id
270
- #
271
- # @return [String, nil]
272
- optional :campaign_id, String, api_name: :campaignId
273
-
274
- # @!attribute customer_id
275
- #
276
- # @return [String, nil]
277
- optional :customer_id, String, api_name: :customerId
278
-
279
- # @!attribute messaging_use_case_us
280
- #
281
- # @return [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs, nil]
282
- optional :messaging_use_case_us,
283
- enum: -> { Sentdm::Profiles::MessagingUseCaseUs },
284
- api_name: :messagingUseCaseUs
285
-
286
- # @!method initialize(sample_messages:, campaign_id: nil, customer_id: nil, messaging_use_case_us: nil)
287
- # @param sample_messages [Array<String>]
288
- # @param campaign_id [String]
289
- # @param customer_id [String]
290
- # @param messaging_use_case_us [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs]
291
- end
292
244
  end
293
245
  end
294
246
  end
@@ -25,11 +25,9 @@ module Sentdm
25
25
  # @!attribute use_cases
26
26
  # List of use cases with sample messages
27
27
  #
28
- # @return [Array<Sentdm::Models::Profiles::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData>]
28
+ # @return [Array<Sentdm::Models::Profiles::CampaignUseCaseData>]
29
29
  required :use_cases,
30
- -> {
31
- Sentdm::Internal::Type::ArrayOf[Sentdm::Profiles::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData]
32
- },
30
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Profiles::CampaignUseCaseData] },
33
31
  api_name: :useCases
34
32
 
35
33
  # @!attribute help_keywords
@@ -86,7 +84,14 @@ module Sentdm
86
84
  # @return [String, nil]
87
85
  optional :terms_and_conditions_link, String, api_name: :termsAndConditionsLink, nil?: true
88
86
 
89
- # @!method initialize(description:, name:, type:, use_cases:, help_keywords: nil, help_message: nil, message_flow: nil, optin_keywords: nil, optin_message: nil, optout_keywords: nil, optout_message: nil, privacy_policy_link: nil, terms_and_conditions_link: nil)
87
+ # @!attribute volume
88
+ # Expected messaging volume for this campaign. Numeric string (e.g. "1999",
89
+ # "5000"); values below 2000 bill at the low-volume tier.
90
+ #
91
+ # @return [String, nil]
92
+ optional :volume, String, nil?: true
93
+
94
+ # @!method initialize(description:, name:, type:, use_cases:, help_keywords: nil, help_message: nil, message_flow: nil, optin_keywords: nil, optin_message: nil, optout_keywords: nil, optout_message: nil, privacy_policy_link: nil, terms_and_conditions_link: nil, volume: nil)
90
95
  # Some parameter documentations has been truncated, see
91
96
  # {Sentdm::Models::Profiles::CampaignData} for more details.
92
97
  #
@@ -98,7 +103,7 @@ module Sentdm
98
103
  #
99
104
  # @param type [String] Campaign type (e.g., "KYC", "App")
100
105
  #
101
- # @param use_cases [Array<Sentdm::Models::Profiles::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData>] List of use cases with sample messages
106
+ # @param use_cases [Array<Sentdm::Models::Profiles::CampaignUseCaseData>] List of use cases with sample messages
102
107
  #
103
108
  # @param help_keywords [String, nil] Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
104
109
  #
@@ -117,6 +122,8 @@ module Sentdm
117
122
  # @param privacy_policy_link [String, nil] URL to privacy policy
118
123
  #
119
124
  # @param terms_and_conditions_link [String, nil] URL to terms and conditions
125
+ #
126
+ # @param volume [String, nil] Expected messaging volume for this campaign. Numeric string (e.g. "1999", "5000"
120
127
  end
121
128
  end
122
129
  end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class CampaignUseCase < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ #
9
+ # @return [String, nil]
10
+ optional :id, String
11
+
12
+ # @!attribute campaign_id
13
+ #
14
+ # @return [String, nil]
15
+ optional :campaign_id, String, api_name: :campaignId
16
+
17
+ # @!attribute created_at
18
+ #
19
+ # @return [Time, nil]
20
+ optional :created_at, Time, api_name: :createdAt
21
+
22
+ # @!attribute customer_id
23
+ #
24
+ # @return [String, nil]
25
+ optional :customer_id, String, api_name: :customerId
26
+
27
+ # @!attribute messaging_use_case_us
28
+ #
29
+ # @return [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs, nil]
30
+ optional :messaging_use_case_us,
31
+ enum: -> { Sentdm::Profiles::MessagingUseCaseUs },
32
+ api_name: :messagingUseCaseUs
33
+
34
+ # @!attribute sample_messages
35
+ # Sample messages submitted to the registry for this use case.
36
+ #
37
+ # @return [Array<String>, nil]
38
+ optional :sample_messages, Sentdm::Internal::Type::ArrayOf[String], api_name: :sampleMessages
39
+
40
+ # @!attribute updated_at
41
+ #
42
+ # @return [Time, nil]
43
+ optional :updated_at, Time, api_name: :updatedAt, nil?: true
44
+
45
+ # @!method initialize(id: nil, campaign_id: nil, created_at: nil, customer_id: nil, messaging_use_case_us: nil, sample_messages: nil, updated_at: nil)
46
+ # Customer-facing use-case representation for the public v3 campaign contract.
47
+ # Exists for the same reason as BrandCampaignV3Response: nesting the
48
+ # TcrCampaignUseCase database entity in a public response means any column added
49
+ # to that table silently becomes part of the customer-facing contract. This DTO is
50
+ # an explicit allowlist, so a new column stays invisible until it is added here on
51
+ # purpose. This mirrors exactly the fields the entity already serialized, so it
52
+ # removes nothing from the current response shape. It only closes the future-leak
53
+ # path.
54
+ #
55
+ # @param id [String]
56
+ #
57
+ # @param campaign_id [String]
58
+ #
59
+ # @param created_at [Time]
60
+ #
61
+ # @param customer_id [String]
62
+ #
63
+ # @param messaging_use_case_us [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs]
64
+ #
65
+ # @param sample_messages [Array<String>] Sample messages submitted to the registry for this use case.
66
+ #
67
+ # @param updated_at [Time, nil]
68
+ end
69
+ end
70
+ end
71
+ end
@@ -3,7 +3,7 @@
3
3
  module Sentdm
4
4
  module Models
5
5
  module Profiles
6
- class SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData < Sentdm::Internal::Type::BaseModel
6
+ class CampaignUseCaseData < Sentdm::Internal::Type::BaseModel
7
7
  # @!attribute messaging_use_case_us
8
8
  #
9
9
  # @return [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs]
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- class SentDmServicesCommonContractsPocOsTemplateBody < Sentdm::Internal::Type::BaseModel
5
+ class TemplateBody < Sentdm::Internal::Type::BaseModel
6
6
  # @!attribute multi_channel
7
7
  # Content that will be used for all channels (SMS and WhatsApp) unless
8
8
  # channel-specific content is provided
@@ -31,8 +31,7 @@ module Sentdm
31
31
 
32
32
  # @!method initialize(multi_channel: nil, rcs: nil, sms: nil, whatsapp: nil)
33
33
  # Some parameter documentations has been truncated, see
34
- # {Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateBody} for more
35
- # details.
34
+ # {Sentdm::Models::TemplateBody} for more details.
36
35
  #
37
36
  # Body section of a message template with channel-specific content
38
37
  #
@@ -2,12 +2,12 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- class SentDmServicesCommonContractsPocOsTemplateButton < Sentdm::Internal::Type::BaseModel
5
+ class TemplateButton < Sentdm::Internal::Type::BaseModel
6
6
  # @!attribute props
7
7
  # Properties specific to the button type
8
8
  #
9
- # @return [Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateButtonProps]
10
- required :props, -> { Sentdm::SentDmServicesCommonContractsPocOsTemplateButtonProps }
9
+ # @return [Sentdm::Models::TemplateButtonProps]
10
+ required :props, -> { Sentdm::TemplateButtonProps }
11
11
 
12
12
  # @!attribute type
13
13
  # The type of button (e.g., QUICK_REPLY, URL, PHONE_NUMBER, VOICE_CALL, COPY_CODE)
@@ -23,12 +23,11 @@ module Sentdm
23
23
 
24
24
  # @!method initialize(props:, type:, id: nil)
25
25
  # Some parameter documentations has been truncated, see
26
- # {Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateButton} for more
27
- # details.
26
+ # {Sentdm::Models::TemplateButton} for more details.
28
27
  #
29
28
  # Interactive button in a message template
30
29
  #
31
- # @param props [Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateButtonProps] Properties specific to the button type
30
+ # @param props [Sentdm::Models::TemplateButtonProps] Properties specific to the button type
32
31
  #
33
32
  # @param type [String] The type of button (e.g., QUICK_REPLY, URL, PHONE_NUMBER, VOICE_CALL, COPY_CODE)
34
33
  #
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- class SentDmServicesCommonContractsPocOsTemplateButtonProps < Sentdm::Internal::Type::BaseModel
5
+ class TemplateButtonProps < Sentdm::Internal::Type::BaseModel
6
6
  # @!attribute active_for
7
7
  #
8
8
  # @return [Integer]
@@ -73,8 +73,7 @@ module Sentdm
73
73
 
74
74
  # @!method initialize(active_for:, country_code:, offer_code:, phone_number:, quick_reply_type:, text:, url:, url_type:, variables:, autofill_text: nil, otp_type: nil, package_name: nil, signature_hash: nil)
75
75
  # Some parameter documentations has been truncated, see
76
- # {Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateButtonProps} for more
77
- # details.
76
+ # {Sentdm::Models::TemplateButtonProps} for more details.
78
77
  #
79
78
  # @param active_for [Integer]
80
79
  #
@@ -6,27 +6,23 @@ module Sentdm
6
6
  # @!attribute body
7
7
  # Body section of a message template with channel-specific content
8
8
  #
9
- # @return [Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateBody]
10
- required :body, -> { Sentdm::SentDmServicesCommonContractsPocOsTemplateBody }
9
+ # @return [Sentdm::Models::TemplateBody]
10
+ required :body, -> { Sentdm::TemplateBody }
11
11
 
12
12
  # @!attribute authentication_config
13
13
  # Configuration for AUTHENTICATION category templates
14
14
  #
15
- # @return [Sentdm::Models::SentDmServicesCommonContractsPocOsAuthenticationConfig, nil]
15
+ # @return [Sentdm::Models::AuthenticationConfig, nil]
16
16
  optional :authentication_config,
17
- -> { Sentdm::SentDmServicesCommonContractsPocOsAuthenticationConfig },
17
+ -> { Sentdm::AuthenticationConfig },
18
18
  api_name: :authenticationConfig,
19
19
  nil?: true
20
20
 
21
21
  # @!attribute buttons
22
22
  # Optional list of interactive buttons (e.g., quick replies, URLs, phone numbers)
23
23
  #
24
- # @return [Array<Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateButton>, nil]
25
- optional :buttons,
26
- -> {
27
- Sentdm::Internal::Type::ArrayOf[Sentdm::SentDmServicesCommonContractsPocOsTemplateButton]
28
- },
29
- nil?: true
24
+ # @return [Array<Sentdm::Models::TemplateButton>, nil]
25
+ optional :buttons, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::TemplateButton] }, nil?: true
30
26
 
31
27
  # @!attribute definition_version
32
28
  # The version of the template definition format
@@ -37,30 +33,30 @@ module Sentdm
37
33
  # @!attribute footer
38
34
  # Footer section of a message template
39
35
  #
40
- # @return [Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateFooter, nil]
41
- optional :footer, -> { Sentdm::SentDmServicesCommonContractsPocOsTemplateFooter }, nil?: true
36
+ # @return [Sentdm::Models::TemplateFooter, nil]
37
+ optional :footer, -> { Sentdm::TemplateFooter }, nil?: true
42
38
 
43
39
  # @!attribute header
44
40
  # Header section of a message template
45
41
  #
46
- # @return [Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateHeader, nil]
47
- optional :header, -> { Sentdm::SentDmServicesCommonContractsPocOsTemplateHeader }, nil?: true
42
+ # @return [Sentdm::Models::TemplateHeader, nil]
43
+ optional :header, -> { Sentdm::TemplateHeader }, nil?: true
48
44
 
49
45
  # @!method initialize(body:, authentication_config: nil, buttons: nil, definition_version: nil, footer: nil, header: nil)
50
46
  # Complete definition of a message template including header, body, footer, and
51
47
  # buttons
52
48
  #
53
- # @param body [Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateBody] Body section of a message template with channel-specific content
49
+ # @param body [Sentdm::Models::TemplateBody] Body section of a message template with channel-specific content
54
50
  #
55
- # @param authentication_config [Sentdm::Models::SentDmServicesCommonContractsPocOsAuthenticationConfig, nil] Configuration for AUTHENTICATION category templates
51
+ # @param authentication_config [Sentdm::Models::AuthenticationConfig, nil] Configuration for AUTHENTICATION category templates
56
52
  #
57
- # @param buttons [Array<Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateButton>, nil] Optional list of interactive buttons (e.g., quick replies, URLs, phone numbers)
53
+ # @param buttons [Array<Sentdm::Models::TemplateButton>, nil] Optional list of interactive buttons (e.g., quick replies, URLs, phone numbers)
58
54
  #
59
55
  # @param definition_version [String, nil] The version of the template definition format
60
56
  #
61
- # @param footer [Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateFooter, nil] Footer section of a message template
57
+ # @param footer [Sentdm::Models::TemplateFooter, nil] Footer section of a message template
62
58
  #
63
- # @param header [Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateHeader, nil] Header section of a message template
59
+ # @param header [Sentdm::Models::TemplateHeader, nil] Header section of a message template
64
60
  end
65
61
  end
66
62
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- class SentDmServicesCommonContractsPocOsTemplateFooter < Sentdm::Internal::Type::BaseModel
5
+ class TemplateFooter < Sentdm::Internal::Type::BaseModel
6
6
  # @!attribute template
7
7
  # The footer template text with optional variable placeholders
8
8
  #
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- class SentDmServicesCommonContractsPocOsTemplateHeader < Sentdm::Internal::Type::BaseModel
5
+ class TemplateHeader < Sentdm::Internal::Type::BaseModel
6
6
  # @!attribute template
7
7
  # The header template text with optional variable placeholders (e.g., "Welcome to
8
8
  # {{0:variable}}")
@@ -24,8 +24,7 @@ module Sentdm
24
24
 
25
25
  # @!method initialize(template:, type: nil, variables: nil)
26
26
  # Some parameter documentations has been truncated, see
27
- # {Sentdm::Models::SentDmServicesCommonContractsPocOsTemplateHeader} for more
28
- # details.
27
+ # {Sentdm::Models::TemplateHeader} for more details.
29
28
  #
30
29
  # Header section of a message template
31
30
  #