sentdm 0.25.0 → 0.27.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 (133) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -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/inbound_message_event.rb +52 -0
  18. data/lib/sentdm/models/inbound_message_event_payload.rb +81 -0
  19. data/lib/sentdm/models/message_event.rb +53 -0
  20. data/lib/sentdm/models/message_event_payload.rb +92 -0
  21. data/lib/sentdm/models/message_send_response.rb +2 -6
  22. data/lib/sentdm/models/profile_detail.rb +13 -13
  23. data/lib/sentdm/models/profile_update_params.rb +2 -2
  24. data/lib/sentdm/models/profiles/{api_response_of_tcr_campaign_with_use_cases.rb → api_response_of_brand_campaign.rb} +5 -5
  25. data/lib/sentdm/models/profiles/{campaign_list_response.rb → api_response_of_list_of_brand_campaign.rb} +4 -6
  26. data/lib/sentdm/models/profiles/{tcr_campaign_with_use_cases.rb → brand_campaign.rb} +63 -111
  27. data/lib/sentdm/models/profiles/campaign_data.rb +13 -6
  28. data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
  29. 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
  30. data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_body.rb → template_body.rb} +2 -3
  31. data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button.rb → template_button.rb} +5 -6
  32. data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button_props.rb → template_button_props.rb} +2 -3
  33. data/lib/sentdm/models/template_definition.rb +15 -19
  34. data/lib/sentdm/models/template_event.rb +52 -0
  35. data/lib/sentdm/models/template_event_payload.rb +88 -0
  36. data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_footer.rb → template_footer.rb} +1 -1
  37. data/lib/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_header.rb → template_header.rb} +2 -3
  38. data/lib/sentdm/models/webhook_list_events_response.rb +45 -3
  39. data/lib/sentdm/models.rb +44 -27
  40. data/lib/sentdm/resources/contacts.rb +30 -0
  41. data/lib/sentdm/resources/conversations.rb +82 -0
  42. data/lib/sentdm/resources/messages.rb +6 -1
  43. data/lib/sentdm/resources/profiles/campaigns.rb +6 -6
  44. data/lib/sentdm/resources/profiles.rb +34 -22
  45. data/lib/sentdm/resources/users.rb +3 -3
  46. data/lib/sentdm/version.rb +1 -1
  47. data/lib/sentdm.rb +28 -14
  48. data/rbi/sentdm/client.rbi +3 -0
  49. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
  50. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
  51. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_authentication_config.rbi → authentication_config.rbi} +2 -5
  52. data/rbi/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbi → brand_business_info.rbi} +12 -30
  53. data/rbi/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbi → brand_compliance_info.rbi} +2 -13
  54. data/rbi/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbi → brand_contact_info.rbi} +2 -5
  55. data/rbi/sentdm/models/brands_brand_data.rbi +12 -51
  56. data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
  57. data/rbi/sentdm/models/contact_retrieve_message_summary_params.rbi +49 -0
  58. data/rbi/sentdm/models/conversation_list_messages_params.rbi +65 -0
  59. data/rbi/sentdm/models/conversation_list_params.rbi +51 -0
  60. data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
  61. data/rbi/sentdm/models/inbound_message_event.rbi +88 -0
  62. data/rbi/sentdm/models/inbound_message_event_payload.rbi +122 -0
  63. data/rbi/sentdm/models/message_event.rbi +86 -0
  64. data/rbi/sentdm/models/message_event_payload.rbi +132 -0
  65. data/rbi/sentdm/models/message_send_response.rbi +2 -4
  66. data/rbi/sentdm/models/profile_detail.rbi +10 -12
  67. data/rbi/sentdm/models/profile_update_params.rbi +2 -2
  68. data/rbi/sentdm/models/profiles/{api_response_of_tcr_campaign_with_use_cases.rbi → api_response_of_brand_campaign.rbi} +8 -10
  69. data/rbi/sentdm/models/profiles/{campaign_list_response.rbi → api_response_of_list_of_brand_campaign.rbi} +5 -13
  70. data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
  71. data/rbi/sentdm/models/profiles/campaign_data.rbi +16 -18
  72. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
  73. 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
  74. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_body.rbi → template_body.rbi} +2 -7
  75. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button.rbi → template_button.rbi} +6 -22
  76. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button_props.rbi → template_button_props.rbi} +2 -5
  77. data/rbi/sentdm/models/template_definition.rbi +19 -87
  78. data/rbi/sentdm/models/template_event.rbi +84 -0
  79. data/rbi/sentdm/models/template_event_payload.rbi +131 -0
  80. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_footer.rbi → template_footer.rbi} +2 -5
  81. data/rbi/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_header.rbi → template_header.rbi} +2 -5
  82. data/rbi/sentdm/models/webhook_list_events_response.rbi +60 -4
  83. data/rbi/sentdm/models.rbi +48 -27
  84. data/rbi/sentdm/resources/contacts.rbi +20 -0
  85. data/rbi/sentdm/resources/conversations.rbi +61 -0
  86. data/rbi/sentdm/resources/messages.rbi +6 -1
  87. data/rbi/sentdm/resources/profiles/campaigns.rbi +3 -3
  88. data/rbi/sentdm/resources/profiles.rbi +32 -20
  89. data/rbi/sentdm/resources/users.rbi +3 -2
  90. data/sig/sentdm/client.rbs +2 -0
  91. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
  92. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
  93. data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_authentication_config.rbs → authentication_config.rbs} +2 -2
  94. data/sig/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbs → brand_business_info.rbs} +7 -7
  95. data/sig/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbs → brand_compliance_info.rbs} +2 -7
  96. data/sig/sentdm/models/{sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbs → brand_contact_info.rbs} +2 -2
  97. data/sig/sentdm/models/brands_brand_data.rbs +12 -12
  98. data/sig/sentdm/models/contact_message_summary.rbs +84 -0
  99. data/sig/sentdm/models/contact_retrieve_message_summary_params.rbs +30 -0
  100. data/sig/sentdm/models/conversation_list_messages_params.rbs +38 -0
  101. data/sig/sentdm/models/conversation_list_params.rbs +34 -0
  102. data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
  103. data/sig/sentdm/models/inbound_message_event.rbs +39 -0
  104. data/sig/sentdm/models/inbound_message_event_payload.rbs +69 -0
  105. data/sig/sentdm/models/message_event.rbs +39 -0
  106. data/sig/sentdm/models/message_event_payload.rbs +72 -0
  107. data/sig/sentdm/models/profile_detail.rbs +0 -5
  108. data/sig/sentdm/models/profiles/{campaign_list_response.rbs → api_response_of_brand_campaign.rbs} +6 -6
  109. data/sig/sentdm/models/profiles/{api_response_of_tcr_campaign_with_use_cases.rbs → api_response_of_list_of_brand_campaign.rbs} +6 -6
  110. data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
  111. data/sig/sentdm/models/profiles/campaign_data.rbs +12 -7
  112. data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
  113. 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
  114. data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_body.rbs → template_body.rbs} +2 -2
  115. data/sig/sentdm/models/template_button.rbs +28 -0
  116. data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_button_props.rbs → template_button_props.rbs} +2 -2
  117. data/sig/sentdm/models/template_definition.rbs +20 -20
  118. data/sig/sentdm/models/template_event.rbs +39 -0
  119. data/sig/sentdm/models/template_event_payload.rbs +76 -0
  120. data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_footer.rbs → template_footer.rbs} +2 -2
  121. data/sig/sentdm/models/{sent_dm_services_common_contracts_poc_os_template_header.rbs → template_header.rbs} +2 -2
  122. data/sig/sentdm/models/webhook_list_events_response.rbs +18 -5
  123. data/sig/sentdm/models.rbs +44 -18
  124. data/sig/sentdm/resources/contacts.rbs +6 -0
  125. data/sig/sentdm/resources/conversations.rbs +22 -0
  126. data/sig/sentdm/resources/profiles/campaigns.rbs +3 -3
  127. metadata +86 -44
  128. data/lib/sentdm/models/profiles/base_dto.rb +0 -32
  129. data/rbi/sentdm/models/profiles/base_dto.rbi +0 -53
  130. data/rbi/sentdm/models/profiles/tcr_campaign_with_use_cases.rbi +0 -425
  131. data/sig/sentdm/models/profiles/base_dto.rbs +0 -27
  132. data/sig/sentdm/models/profiles/tcr_campaign_with_use_cases.rbs +0 -306
  133. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbs +0 -32
@@ -0,0 +1,245 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ConversationMessagesList < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute messages
7
+ # The messages on this page, most recent first.
8
+ #
9
+ # @return [Array<Sentdm::Models::ConversationMessagesList::Message>, nil]
10
+ optional :messages, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message] }
11
+
12
+ # @!attribute pagination
13
+ # Pagination metadata for list responses
14
+ #
15
+ # @return [Sentdm::Models::PaginationMeta, nil]
16
+ optional :pagination, -> { Sentdm::PaginationMeta }
17
+
18
+ # @!method initialize(messages: nil, pagination: nil)
19
+ # A paginated list of messages — used by both conversation read endpoints.
20
+ #
21
+ # @param messages [Array<Sentdm::Models::ConversationMessagesList::Message>] The messages on this page, most recent first.
22
+ #
23
+ # @param pagination [Sentdm::Models::PaginationMeta] Pagination metadata for list responses
24
+
25
+ class Message < Sentdm::Internal::Type::BaseModel
26
+ # @!attribute id
27
+ #
28
+ # @return [String, nil]
29
+ optional :id, String
30
+
31
+ # @!attribute active_contact_price
32
+ #
33
+ # @return [Float, nil]
34
+ optional :active_contact_price, Float, nil?: true
35
+
36
+ # @!attribute channel
37
+ #
38
+ # @return [String, nil]
39
+ optional :channel, String
40
+
41
+ # @!attribute contact_id
42
+ #
43
+ # @return [String, nil]
44
+ optional :contact_id, String
45
+
46
+ # @!attribute created_at
47
+ #
48
+ # @return [Time, nil]
49
+ optional :created_at, Time
50
+
51
+ # @!attribute customer_id
52
+ #
53
+ # @return [String, nil]
54
+ optional :customer_id, String
55
+
56
+ # @!attribute direction
57
+ #
58
+ # @return [String, nil]
59
+ optional :direction, String
60
+
61
+ # @!attribute events
62
+ #
63
+ # @return [Array<Sentdm::Models::ConversationMessagesList::Message::Event>, nil]
64
+ optional :events,
65
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message::Event] },
66
+ nil?: true
67
+
68
+ # @!attribute message_body
69
+ # Structured message body format for database storage. Preserves channel-specific
70
+ # components (header, body, footer, buttons).
71
+ #
72
+ # @return [Sentdm::Models::ConversationMessagesList::Message::MessageBody, nil]
73
+ optional :message_body, -> { Sentdm::ConversationMessagesList::Message::MessageBody }, nil?: true
74
+
75
+ # @!attribute phone
76
+ #
77
+ # @return [String, nil]
78
+ optional :phone, String
79
+
80
+ # @!attribute phone_international
81
+ #
82
+ # @return [String, nil]
83
+ optional :phone_international, String
84
+
85
+ # @!attribute price
86
+ #
87
+ # @return [Float, nil]
88
+ optional :price, Float, nil?: true
89
+
90
+ # @!attribute region_code
91
+ #
92
+ # @return [String, nil]
93
+ optional :region_code, String
94
+
95
+ # @!attribute status
96
+ #
97
+ # @return [String, nil]
98
+ optional :status, String
99
+
100
+ # @!attribute template_category
101
+ #
102
+ # @return [String, nil]
103
+ optional :template_category, String, nil?: true
104
+
105
+ # @!attribute template_id
106
+ #
107
+ # @return [String, nil]
108
+ optional :template_id, String, nil?: true
109
+
110
+ # @!attribute template_name
111
+ #
112
+ # @return [String, nil]
113
+ optional :template_name, String, nil?: true
114
+
115
+ # @!method initialize(id: nil, active_contact_price: nil, channel: nil, contact_id: nil, created_at: nil, customer_id: nil, direction: nil, events: nil, message_body: nil, phone: nil, phone_international: nil, price: nil, region_code: nil, status: nil, template_category: nil, template_id: nil, template_name: nil)
116
+ # Some parameter documentations has been truncated, see
117
+ # {Sentdm::Models::ConversationMessagesList::Message} for more details.
118
+ #
119
+ # Message response for v3 API — same shape as v2 with snake_case JSON conventions
120
+ #
121
+ # @param id [String]
122
+ #
123
+ # @param active_contact_price [Float, nil]
124
+ #
125
+ # @param channel [String]
126
+ #
127
+ # @param contact_id [String]
128
+ #
129
+ # @param created_at [Time]
130
+ #
131
+ # @param customer_id [String]
132
+ #
133
+ # @param direction [String]
134
+ #
135
+ # @param events [Array<Sentdm::Models::ConversationMessagesList::Message::Event>, nil]
136
+ #
137
+ # @param message_body [Sentdm::Models::ConversationMessagesList::Message::MessageBody, nil] Structured message body format for database storage.
138
+ #
139
+ # @param phone [String]
140
+ #
141
+ # @param phone_international [String]
142
+ #
143
+ # @param price [Float, nil]
144
+ #
145
+ # @param region_code [String]
146
+ #
147
+ # @param status [String]
148
+ #
149
+ # @param template_category [String, nil]
150
+ #
151
+ # @param template_id [String, nil]
152
+ #
153
+ # @param template_name [String, nil]
154
+
155
+ class Event < Sentdm::Internal::Type::BaseModel
156
+ # @!attribute status
157
+ #
158
+ # @return [String]
159
+ required :status, String
160
+
161
+ # @!attribute timestamp
162
+ #
163
+ # @return [Time]
164
+ required :timestamp, Time
165
+
166
+ # @!attribute description
167
+ #
168
+ # @return [String, nil]
169
+ optional :description, String, nil?: true
170
+
171
+ # @!method initialize(status:, timestamp:, description: nil)
172
+ # Represents a status change event in a message's lifecycle (v3)
173
+ #
174
+ # @param status [String]
175
+ # @param timestamp [Time]
176
+ # @param description [String, nil]
177
+ end
178
+
179
+ # @see Sentdm::Models::ConversationMessagesList::Message#message_body
180
+ class MessageBody < Sentdm::Internal::Type::BaseModel
181
+ # @!attribute buttons
182
+ #
183
+ # @return [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Button>, nil]
184
+ optional :buttons,
185
+ -> {
186
+ Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message::MessageBody::Button]
187
+ },
188
+ nil?: true
189
+
190
+ # @!attribute content
191
+ #
192
+ # @return [String, nil]
193
+ optional :content, String
194
+
195
+ # @!attribute footer
196
+ #
197
+ # @return [String, nil]
198
+ optional :footer, String, nil?: true
199
+
200
+ # @!attribute header
201
+ #
202
+ # @return [String, nil]
203
+ optional :header, String, nil?: true
204
+
205
+ # @!method initialize(buttons: nil, content: nil, footer: nil, header: nil)
206
+ # Structured message body format for database storage. Preserves channel-specific
207
+ # components (header, body, footer, buttons).
208
+ #
209
+ # @param buttons [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Button>, nil]
210
+ # @param content [String]
211
+ # @param footer [String, nil]
212
+ # @param header [String, nil]
213
+
214
+ class Button < Sentdm::Internal::Type::BaseModel
215
+ # @!attribute postback_data
216
+ #
217
+ # @return [String, nil]
218
+ optional :postback_data, String, api_name: :postbackData, nil?: true
219
+
220
+ # @!attribute text
221
+ #
222
+ # @return [String, nil]
223
+ optional :text, String, nil?: true
224
+
225
+ # @!attribute type
226
+ #
227
+ # @return [String, nil]
228
+ optional :type, String
229
+
230
+ # @!attribute value
231
+ #
232
+ # @return [String, nil]
233
+ optional :value, String
234
+
235
+ # @!method initialize(postback_data: nil, text: nil, type: nil, value: nil)
236
+ # @param postback_data [String, nil]
237
+ # @param text [String, nil]
238
+ # @param type [String]
239
+ # @param value [String]
240
+ end
241
+ end
242
+ end
243
+ end
244
+ end
245
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class InboundMessageEvent < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute event
7
+ # The specific event within the family, for example message.delivered or
8
+ # message.received. Absent on events that have no subtype, so treat it as
9
+ # optional.
10
+ #
11
+ # @return [String, nil]
12
+ optional :event, String, nil?: true
13
+
14
+ # @!attribute field
15
+ # The event family, for example message or templates. Route on this first, then on
16
+ # event for the specific change.
17
+ #
18
+ # @return [String, nil]
19
+ optional :field, String
20
+
21
+ # @!attribute payload
22
+ # Body of a message.received event. Delivered when a contact messages one of your
23
+ # numbers.
24
+ #
25
+ # @return [Sentdm::Models::InboundMessageEventPayload, nil]
26
+ optional :payload, -> { Sentdm::InboundMessageEventPayload }, nil?: true
27
+
28
+ # @!attribute timestamp
29
+ # When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
30
+ # time, not the time the underlying change happened. Use the timestamp inside the
31
+ # payload for the latter.
32
+ #
33
+ # @return [String, nil]
34
+ optional :timestamp, String
35
+
36
+ # @!method initialize(event: nil, field: nil, payload: nil, timestamp: nil)
37
+ # Some parameter documentations has been truncated, see
38
+ # {Sentdm::Models::InboundMessageEvent} for more details.
39
+ #
40
+ # The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
41
+ # this shape and varies only in Payload.
42
+ #
43
+ # @param event [String, nil] The specific event within the family, for example message.delivered or
44
+ #
45
+ # @param field [String] The event family, for example message or templates. Route on this first, then
46
+ #
47
+ # @param payload [Sentdm::Models::InboundMessageEventPayload, nil] Body of a message.received event. Delivered when a contact messages one of your
48
+ #
49
+ # @param timestamp [String] When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class InboundMessageEventPayload < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute account_id
7
+ # The account the message belongs to.
8
+ #
9
+ # @return [String, nil]
10
+ optional :account_id, String
11
+
12
+ # @!attribute channel
13
+ # The channel the message arrived on, for example sms or whatsapp.
14
+ #
15
+ # @return [String, nil]
16
+ optional :channel, String
17
+
18
+ # @!attribute inbound_number
19
+ # The contact's number in E.164 format, meaning the number the message came from.
20
+ #
21
+ # @return [String, nil]
22
+ optional :inbound_number, String
23
+
24
+ # @!attribute message_id
25
+ # The inbound message.
26
+ #
27
+ # @return [String, nil]
28
+ optional :message_id, String
29
+
30
+ # @!attribute outbound_number
31
+ # Your number in E.164 format, meaning the number the message was addressed to.
32
+ #
33
+ # @return [String, nil]
34
+ optional :outbound_number, String
35
+
36
+ # @!attribute received_at
37
+ # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
38
+ #
39
+ # @return [String, nil]
40
+ optional :received_at, String
41
+
42
+ # @!attribute text
43
+ # The message body. Sent as null when the inbound message carried no text, for
44
+ # example a media-only message. The field is always present, so read it and check
45
+ # for null rather than checking whether the key exists.
46
+ #
47
+ # @return [String, nil]
48
+ optional :text, String, nil?: true
49
+
50
+ # @!attribute updated_at
51
+ # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ). Same value as
52
+ # ReceivedAt, kept for envelope consistency with outbound events.
53
+ #
54
+ # @return [String, nil]
55
+ optional :updated_at, String
56
+
57
+ # @!method initialize(account_id: nil, channel: nil, inbound_number: nil, message_id: nil, outbound_number: nil, received_at: nil, text: nil, updated_at: nil)
58
+ # Some parameter documentations has been truncated, see
59
+ # {Sentdm::Models::InboundMessageEventPayload} for more details.
60
+ #
61
+ # Body of a message.received event. Delivered when a contact messages one of your
62
+ # numbers.
63
+ #
64
+ # @param account_id [String] The account the message belongs to.
65
+ #
66
+ # @param channel [String] The channel the message arrived on, for example sms or whatsapp.
67
+ #
68
+ # @param inbound_number [String] The contact's number in E.164 format, meaning the number the message came from.
69
+ #
70
+ # @param message_id [String] The inbound message.
71
+ #
72
+ # @param outbound_number [String] Your number in E.164 format, meaning the number the message was addressed to.
73
+ #
74
+ # @param received_at [String] When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
75
+ #
76
+ # @param text [String, nil] The message body. Sent as null when the inbound message carried no text, for
77
+ #
78
+ # @param updated_at [String] When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ). Same value as
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class MessageEvent < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute event
7
+ # The specific event within the family, for example message.delivered or
8
+ # message.received. Absent on events that have no subtype, so treat it as
9
+ # optional.
10
+ #
11
+ # @return [String, nil]
12
+ optional :event, String, nil?: true
13
+
14
+ # @!attribute field
15
+ # The event family, for example message or templates. Route on this first, then on
16
+ # event for the specific change.
17
+ #
18
+ # @return [String, nil]
19
+ optional :field, String
20
+
21
+ # @!attribute payload
22
+ # Body of an outbound message lifecycle event. Delivered once per status change,
23
+ # so a single message produces several of these as it moves toward a terminal
24
+ # status.
25
+ #
26
+ # @return [Sentdm::Models::MessageEventPayload, nil]
27
+ optional :payload, -> { Sentdm::MessageEventPayload }, nil?: true
28
+
29
+ # @!attribute timestamp
30
+ # When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
31
+ # time, not the time the underlying change happened. Use the timestamp inside the
32
+ # payload for the latter.
33
+ #
34
+ # @return [String, nil]
35
+ optional :timestamp, String
36
+
37
+ # @!method initialize(event: nil, field: nil, payload: nil, timestamp: nil)
38
+ # Some parameter documentations has been truncated, see
39
+ # {Sentdm::Models::MessageEvent} for more details.
40
+ #
41
+ # The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
42
+ # this shape and varies only in Payload.
43
+ #
44
+ # @param event [String, nil] The specific event within the family, for example message.delivered or
45
+ #
46
+ # @param field [String] The event family, for example message or templates. Route on this first, then
47
+ #
48
+ # @param payload [Sentdm::Models::MessageEventPayload, nil] Body of an outbound message lifecycle event. Delivered once per status change, s
49
+ #
50
+ # @param timestamp [String] When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class MessageEventPayload < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute account_id
7
+ # The account the message belongs to.
8
+ #
9
+ # @return [String, nil]
10
+ optional :account_id, String
11
+
12
+ # @!attribute agent_id
13
+ # The agent attributed to the send, when the send was attributed to one.
14
+ #
15
+ # @return [String, nil]
16
+ optional :agent_id, String, nil?: true
17
+
18
+ # @!attribute channel
19
+ # The channel the message went out on, for example sms or whatsapp. A message that
20
+ # falls back to another channel reports the channel actually used.
21
+ #
22
+ # @return [String, nil]
23
+ optional :channel, String
24
+
25
+ # @!attribute message_id
26
+ # The message this event describes. Stable across every event in the message's
27
+ # lifecycle, so use it to correlate them.
28
+ #
29
+ # @return [String, nil]
30
+ optional :message_id, String
31
+
32
+ # @!attribute message_status
33
+ # The status the message just reached, for example SENT, DELIVERED, or FAILED.
34
+ # Sent means dispatched and delivered means confirmed, so treat them as distinct
35
+ # outcomes.
36
+ #
37
+ # @return [String, nil]
38
+ optional :message_status, String
39
+
40
+ # @!attribute outbound_number
41
+ # The recipient's number in E.164 format.
42
+ #
43
+ # @return [String, nil]
44
+ optional :outbound_number, String
45
+
46
+ # @!attribute template_id
47
+ # The template the message was sent from, when it was sent from one.
48
+ #
49
+ # @return [String, nil]
50
+ optional :template_id, String, nil?: true
51
+
52
+ # @!attribute template_name
53
+ # Name of the template the message was sent from. Omitted when the message wasn't
54
+ # template-based.
55
+ #
56
+ # @return [String, nil]
57
+ optional :template_name, String, nil?: true
58
+
59
+ # @!attribute updated_at
60
+ # When the message reached MessageStatus, in UTC (yyyy-MM-ddTHH:mm:ssZ).
61
+ #
62
+ # @return [String, nil]
63
+ optional :updated_at, String
64
+
65
+ # @!method initialize(account_id: nil, agent_id: nil, channel: nil, message_id: nil, message_status: nil, outbound_number: nil, template_id: nil, template_name: nil, updated_at: nil)
66
+ # Some parameter documentations has been truncated, see
67
+ # {Sentdm::Models::MessageEventPayload} for more details.
68
+ #
69
+ # Body of an outbound message lifecycle event. Delivered once per status change,
70
+ # so a single message produces several of these as it moves toward a terminal
71
+ # status.
72
+ #
73
+ # @param account_id [String] The account the message belongs to.
74
+ #
75
+ # @param agent_id [String, nil] The agent attributed to the send, when the send was attributed to one.
76
+ #
77
+ # @param channel [String] The channel the message went out on, for example sms or whatsapp. A message
78
+ #
79
+ # @param message_id [String] The message this event describes. Stable across every event in the message's lif
80
+ #
81
+ # @param message_status [String] The status the message just reached, for example SENT, DELIVERED, or
82
+ #
83
+ # @param outbound_number [String] The recipient's number in E.164 format.
84
+ #
85
+ # @param template_id [String, nil] The template the message was sent from, when it was sent from one.
86
+ #
87
+ # @param template_name [String, nil] Name of the template the message was sent from. Omitted when the message wasn't
88
+ #
89
+ # @param updated_at [String] When the message reached MessageStatus, in UTC
90
+ end
91
+ end
92
+ end
@@ -49,8 +49,7 @@ module Sentdm
49
49
  -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Models::MessageSendResponse::Data::Recipient] }
50
50
 
51
51
  # @!attribute status
52
- # Overall request status: "QUEUED" when the batch has been accepted and published
53
- # to Kafka.
52
+ # Overall request status: "QUEUED" when the batch has been accepted for delivery.
54
53
  #
55
54
  # @return [String, nil]
56
55
  optional :status, String
@@ -68,14 +67,11 @@ module Sentdm
68
67
  optional :template_name, String
69
68
 
70
69
  # @!method initialize(recipients: nil, status: nil, template_id: nil, template_name: nil)
71
- # Some parameter documentations has been truncated, see
72
- # {Sentdm::Models::MessageSendResponse::Data} for more details.
73
- #
74
70
  # Response for the multi-recipient send message endpoint
75
71
  #
76
72
  # @param recipients [Array<Sentdm::Models::MessageSendResponse::Data::Recipient>] Per-recipient message results
77
73
  #
78
- # @param status [String] Overall request status: "QUEUED" when the batch has been accepted and published
74
+ # @param status [String] Overall request status: "QUEUED" when the batch has been accepted for delivery.
79
75
  #
80
76
  # @param template_id [String] Template ID that was used
81
77
  #
@@ -113,7 +113,7 @@ module Sentdm
113
113
  optional :sending_phone_number, String, nil?: true
114
114
 
115
115
  # @!attribute sending_phone_number_profile_id
116
- # Reference to another profile for SMS/Telnyx configuration
116
+ # Reference to another profile whose SMS configuration this profile uses
117
117
  #
118
118
  # @return [String, nil]
119
119
  optional :sending_phone_number_profile_id, String, nil?: true
@@ -198,7 +198,7 @@ module Sentdm
198
198
  #
199
199
  # @param sending_phone_number [String, nil] Direct SMS phone number
200
200
  #
201
- # @param sending_phone_number_profile_id [String, nil] Reference to another profile for SMS/Telnyx configuration
201
+ # @param sending_phone_number_profile_id [String, nil] Reference to another profile whose SMS configuration this profile uses
202
202
  #
203
203
  # @param sending_whatsapp_number_profile_id [String, nil] Reference to another profile for WhatsApp configuration
204
204
  #
@@ -276,7 +276,12 @@ module Sentdm
276
276
  optional :created_at, Time
277
277
 
278
278
  # @!attribute csp_id
279
- # CSP (Campaign Service Provider) ID
279
+ # @deprecated
280
+ #
281
+ # Deprecated and scheduled for removal. Identifies the Campaign Service Provider
282
+ # that registered the brand, which is Sent, so the value is the same for every
283
+ # brand and every account. Nothing on your side can act on it and there is no
284
+ # replacement. Stop reading it.
280
285
  #
281
286
  # @return [String, nil]
282
287
  optional :csp_id, String, nil?: true
@@ -328,6 +333,9 @@ module Sentdm
328
333
  optional :updated_at, Time, nil?: true
329
334
 
330
335
  # @!method initialize(id: nil, business: nil, compliance: nil, contact: nil, created_at: nil, csp_id: nil, identity_status: nil, is_inherited: nil, status: nil, submitted_at: nil, submitted_to_tcr: nil, tcr_brand_id: nil, universal_ein: nil, updated_at: nil)
336
+ # Some parameter documentations has been truncated, see
337
+ # {Sentdm::Models::ProfileDetail::Brand} for more details.
338
+ #
331
339
  # Brand response with nested contact, business, and compliance sections — mirrors
332
340
  # the request structure.
333
341
  #
@@ -341,7 +349,7 @@ module Sentdm
341
349
  #
342
350
  # @param created_at [Time] When the brand was created
343
351
  #
344
- # @param csp_id [String, nil] CSP (Campaign Service Provider) ID
352
+ # @param csp_id [String, nil] Deprecated and scheduled for removal. Identifies the Campaign Service Provider t
345
353
  #
346
354
  # @param identity_status [Symbol, Sentdm::Models::ProfileDetail::Brand::IdentityStatus, nil]
347
355
  #
@@ -466,12 +474,6 @@ module Sentdm
466
474
  # @return [Array<Sentdm::Models::DestinationCountry>, nil]
467
475
  optional :destination_countries, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::DestinationCountry] }
468
476
 
469
- # @!attribute expected_messaging_volume
470
- # Expected daily messaging volume
471
- #
472
- # @return [String, nil]
473
- optional :expected_messaging_volume, String, nil?: true
474
-
475
477
  # @!attribute is_tcr_application
476
478
  # Whether this is a TCR (Campaign Registry) application
477
479
  #
@@ -501,15 +503,13 @@ module Sentdm
501
503
  # @return [Symbol, Sentdm::Models::TcrVertical, nil]
502
504
  optional :vertical, enum: -> { Sentdm::TcrVertical }, nil?: true
503
505
 
504
- # @!method initialize(brand_relationship: nil, destination_countries: nil, expected_messaging_volume: nil, is_tcr_application: nil, notes: nil, phone_number_prefix: nil, primary_use_case: nil, vertical: nil)
506
+ # @!method initialize(brand_relationship: nil, destination_countries: nil, is_tcr_application: nil, notes: nil, phone_number_prefix: nil, primary_use_case: nil, vertical: nil)
505
507
  # Compliance and TCR-related information
506
508
  #
507
509
  # @param brand_relationship [Symbol, Sentdm::Models::TcrBrandRelationship, nil]
508
510
  #
509
511
  # @param destination_countries [Array<Sentdm::Models::DestinationCountry>] List of destination countries for messaging
510
512
  #
511
- # @param expected_messaging_volume [String, nil] Expected daily messaging volume
512
- #
513
513
  # @param is_tcr_application [Boolean] Whether this is a TCR (Campaign Registry) application
514
514
  #
515
515
  # @param notes [String, nil] Additional notes about the business or use case
@@ -119,7 +119,7 @@ module Sentdm
119
119
  optional :sending_phone_number, String, nil?: true
120
120
 
121
121
  # @!attribute sending_phone_number_profile_id
122
- # Reference to another profile to use for SMS/Telnyx configuration (optional)
122
+ # Reference to another profile to use for SMS configuration (optional)
123
123
  #
124
124
  # @return [String, nil]
125
125
  optional :sending_phone_number_profile_id, String, nil?: true
@@ -192,7 +192,7 @@ module Sentdm
192
192
  #
193
193
  # @param sending_phone_number [String, nil] Direct phone number for SMS sending (optional)
194
194
  #
195
- # @param sending_phone_number_profile_id [String, nil] Reference to another profile to use for SMS/Telnyx configuration (optional)
195
+ # @param sending_phone_number_profile_id [String, nil] Reference to another profile to use for SMS configuration (optional)
196
196
  #
197
197
  # @param sending_whatsapp_number_profile_id [String, nil] Reference to another profile to use for WhatsApp configuration (optional)
198
198
  #
@@ -4,12 +4,12 @@ module Sentdm
4
4
  module Models
5
5
  module Profiles
6
6
  # @see Sentdm::Resources::Profiles::Campaigns#create
7
- class APIResponseOfTcrCampaignWithUseCases < Sentdm::Internal::Type::BaseModel
7
+ class APIResponseOfBrandCampaign < Sentdm::Internal::Type::BaseModel
8
8
  # @!attribute data
9
- # The response data (null if error)
9
+ # A 10DLC campaign registered for a brand.
10
10
  #
11
- # @return [Sentdm::Models::Profiles::TcrCampaignWithUseCases, nil]
12
- optional :data, -> { Sentdm::Profiles::TcrCampaignWithUseCases }, nil?: true
11
+ # @return [Sentdm::Models::Profiles::BrandCampaign, nil]
12
+ optional :data, -> { Sentdm::Profiles::BrandCampaign }, nil?: true
13
13
 
14
14
  # @!attribute error
15
15
  # Error information
@@ -32,7 +32,7 @@ module Sentdm
32
32
  # @!method initialize(data: nil, error: nil, meta: nil, success: nil)
33
33
  # Standard API response envelope for all v3 endpoints
34
34
  #
35
- # @param data [Sentdm::Models::Profiles::TcrCampaignWithUseCases, nil] The response data (null if error)
35
+ # @param data [Sentdm::Models::Profiles::BrandCampaign, nil] A 10DLC campaign registered for a brand.
36
36
  #
37
37
  # @param error [Sentdm::Models::ErrorDetail, nil] Error information
38
38
  #