sentdm 0.4.0 → 0.7.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 (140) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -0
  3. data/README.md +13 -9
  4. data/lib/sentdm/client.rb +5 -8
  5. data/lib/sentdm/internal/type/base_model.rb +5 -5
  6. data/lib/sentdm/models/{api_response_contact.rb → api_response_of_contact.rb} +4 -4
  7. data/lib/sentdm/models/base_dto.rb +30 -0
  8. data/lib/sentdm/models/billing_contact_info.rb +47 -0
  9. data/lib/sentdm/models/brands_brand_data.rb +38 -0
  10. data/lib/sentdm/models/contact_delete_params.rb +1 -1
  11. data/lib/sentdm/models/contact_list_response.rb +3 -3
  12. data/lib/sentdm/models/{contact.rb → contact_response.rb} +1 -1
  13. data/lib/sentdm/models/{mutation_request.rb → mutation_request_base.rb} +2 -2
  14. data/lib/sentdm/models/number_lookup_params.rb +26 -0
  15. data/lib/sentdm/models/number_lookup_response.rb +104 -0
  16. data/lib/sentdm/models/payment_details.rb +44 -0
  17. data/lib/sentdm/models/{profile_complete_params.rb → profile_complete_setup_params.rb} +3 -3
  18. data/lib/sentdm/models/{profile_complete_response.rb → profile_complete_setup_response.rb} +1 -1
  19. data/lib/sentdm/models/profile_create_params.rb +9 -91
  20. data/lib/sentdm/models/profile_delete_params.rb +1 -1
  21. data/lib/sentdm/models/profile_detail.rb +369 -3
  22. data/lib/sentdm/models/profile_update_params.rb +9 -91
  23. data/lib/sentdm/models/{brands/api_response_tcr_campaign_with_use_cases.rb → profiles/api_response_of_tcr_campaign_with_use_cases.rb} +6 -5
  24. data/lib/sentdm/models/profiles/campaign_create_params.rb +57 -0
  25. data/lib/sentdm/models/{brands → profiles}/campaign_data.rb +5 -5
  26. data/lib/sentdm/models/profiles/campaign_delete_params.rb +50 -0
  27. data/lib/sentdm/models/profiles/campaign_list_params.rb +28 -0
  28. data/lib/sentdm/models/profiles/campaign_list_response.rb +47 -0
  29. data/lib/sentdm/models/profiles/campaign_update_params.rb +64 -0
  30. data/lib/sentdm/models/{brands → profiles}/messaging_use_case_us.rb +1 -1
  31. data/lib/sentdm/models/{brands → profiles}/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rb +4 -4
  32. data/lib/sentdm/models/{brands → profiles}/tcr_campaign_with_use_cases.rb +15 -15
  33. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rb +119 -0
  34. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rb +77 -0
  35. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rb +58 -0
  36. data/lib/sentdm/models/user_remove_params.rb +1 -1
  37. data/lib/sentdm/models/webhook_rotate_secret_params.rb +1 -1
  38. data/lib/sentdm/models.rb +23 -8
  39. data/lib/sentdm/resources/contacts.rb +6 -6
  40. data/lib/sentdm/resources/numbers.rb +44 -0
  41. data/lib/sentdm/resources/profiles/campaigns.rb +160 -0
  42. data/lib/sentdm/resources/profiles.rb +16 -11
  43. data/lib/sentdm/version.rb +1 -1
  44. data/lib/sentdm.rb +26 -16
  45. data/rbi/sentdm/client.rbi +4 -6
  46. data/rbi/sentdm/models/{api_response_contact.rbi → api_response_of_contact.rbi} +6 -6
  47. data/rbi/sentdm/models/base_dto.rbi +49 -0
  48. data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
  49. data/rbi/sentdm/models/brands_brand_data.rbi +104 -0
  50. data/rbi/sentdm/models/contact_delete_params.rbi +1 -1
  51. data/rbi/sentdm/models/contact_list_response.rbi +4 -4
  52. data/rbi/sentdm/models/{contact.rbi → contact_response.rbi} +4 -2
  53. data/rbi/sentdm/models/{mutation_request.rbi → mutation_request_base.rbi} +2 -2
  54. data/rbi/sentdm/models/number_lookup_params.rbi +46 -0
  55. data/rbi/sentdm/models/number_lookup_response.rbi +166 -0
  56. data/rbi/sentdm/models/payment_details.rbi +59 -0
  57. data/rbi/sentdm/models/{profile_complete_params.rbi → profile_complete_setup_params.rbi} +2 -2
  58. data/rbi/sentdm/models/{profile_complete_response.rbi → profile_complete_setup_response.rbi} +1 -1
  59. data/rbi/sentdm/models/profile_create_params.rbi +12 -146
  60. data/rbi/sentdm/models/profile_delete_params.rbi +1 -1
  61. data/rbi/sentdm/models/profile_detail.rbi +562 -4
  62. data/rbi/sentdm/models/profile_update_params.rbi +12 -146
  63. data/rbi/sentdm/models/{brands/api_response_tcr_campaign_with_use_cases.rbi → profiles/api_response_of_tcr_campaign_with_use_cases.rbi} +7 -7
  64. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +88 -0
  65. data/rbi/sentdm/models/{brands → profiles}/campaign_data.rbi +5 -5
  66. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +95 -0
  67. data/rbi/sentdm/models/profiles/campaign_list_params.rbi +51 -0
  68. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +84 -0
  69. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +94 -0
  70. data/rbi/sentdm/models/{brands → profiles}/messaging_use_case_us.rbi +20 -16
  71. data/rbi/sentdm/models/{brands → profiles}/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbi +6 -5
  72. data/rbi/sentdm/models/{brands → profiles}/tcr_campaign_with_use_cases.rbi +37 -29
  73. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbi +183 -0
  74. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbi +99 -0
  75. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbi +81 -0
  76. data/rbi/sentdm/models/user_remove_params.rbi +1 -1
  77. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -1
  78. data/rbi/sentdm/models.rbi +23 -8
  79. data/rbi/sentdm/resources/contacts.rbi +3 -3
  80. data/rbi/sentdm/resources/numbers.rbi +32 -0
  81. data/rbi/sentdm/resources/profiles/campaigns.rbi +127 -0
  82. data/rbi/sentdm/resources/profiles.rbi +11 -11
  83. data/sig/sentdm/client.rbs +2 -4
  84. data/sig/sentdm/models/{api_response_contact.rbs → api_response_of_contact.rbs} +6 -6
  85. data/sig/sentdm/models/base_dto.rbs +25 -0
  86. data/sig/sentdm/models/billing_contact_info.rbs +30 -0
  87. data/sig/sentdm/models/brands_brand_data.rbs +30 -0
  88. data/sig/sentdm/models/contact_delete_params.rbs +1 -1
  89. data/sig/sentdm/models/contact_list_response.rbs +7 -5
  90. data/sig/sentdm/models/{contact.rbs → contact_response.rbs} +2 -2
  91. data/sig/sentdm/models/{mutation_request.rbs → mutation_request_base.rbs} +2 -2
  92. data/sig/sentdm/models/number_lookup_params.rbs +30 -0
  93. data/sig/sentdm/models/number_lookup_response.rbs +100 -0
  94. data/sig/sentdm/models/payment_details.rbs +30 -0
  95. data/sig/sentdm/models/{profile_complete_params.rbs → profile_complete_setup_params.rbs} +2 -2
  96. data/sig/sentdm/models/profile_complete_setup_response.rbs +5 -0
  97. data/sig/sentdm/models/profile_create_params.rbs +12 -66
  98. data/sig/sentdm/models/profile_delete_params.rbs +1 -1
  99. data/sig/sentdm/models/profile_detail.rbs +289 -4
  100. data/sig/sentdm/models/profile_update_params.rbs +12 -66
  101. data/sig/sentdm/models/profiles/api_response_of_tcr_campaign_with_use_cases.rbs +41 -0
  102. data/sig/sentdm/models/profiles/campaign_create_params.rbs +54 -0
  103. data/sig/sentdm/models/{brands → profiles}/campaign_data.rbs +5 -5
  104. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +53 -0
  105. data/sig/sentdm/models/profiles/campaign_list_params.rbs +32 -0
  106. data/sig/sentdm/models/{brands/api_response_tcr_campaign_with_use_cases.rbs → profiles/campaign_list_response.rbs} +7 -7
  107. data/sig/sentdm/models/profiles/campaign_update_params.rbs +59 -0
  108. data/sig/sentdm/models/{brands → profiles}/messaging_use_case_us.rbs +2 -2
  109. data/sig/sentdm/models/{brands → profiles}/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbs +5 -5
  110. data/sig/sentdm/models/{brands → profiles}/tcr_campaign_with_use_cases.rbs +29 -29
  111. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbs +89 -0
  112. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbs +55 -0
  113. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbs +45 -0
  114. data/sig/sentdm/models/user_remove_params.rbs +1 -1
  115. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +1 -1
  116. data/sig/sentdm/models.rbs +20 -8
  117. data/sig/sentdm/resources/contacts.rbs +3 -3
  118. data/sig/sentdm/resources/numbers.rbs +13 -0
  119. data/sig/sentdm/resources/profiles/campaigns.rbs +42 -0
  120. data/sig/sentdm/resources/profiles.rbs +9 -7
  121. metadata +79 -49
  122. data/lib/sentdm/models/brand_data.rb +0 -274
  123. data/lib/sentdm/models/brand_with_kyc.rb +0 -370
  124. data/lib/sentdm/models/brands/base_dto.rb +0 -32
  125. data/lib/sentdm/resources/brands/campaigns.rb +0 -16
  126. data/lib/sentdm/resources/brands.rb +0 -18
  127. data/lib/sentdm/resources/lookup.rb +0 -14
  128. data/rbi/sentdm/models/brand_data.rbi +0 -389
  129. data/rbi/sentdm/models/brand_with_kyc.rbi +0 -516
  130. data/rbi/sentdm/models/brands/base_dto.rbi +0 -53
  131. data/rbi/sentdm/resources/brands/campaigns.rbi +0 -14
  132. data/rbi/sentdm/resources/brands.rbi +0 -15
  133. data/rbi/sentdm/resources/lookup.rbi +0 -12
  134. data/sig/sentdm/models/brand_data.rbs +0 -210
  135. data/sig/sentdm/models/brand_with_kyc.rbs +0 -288
  136. data/sig/sentdm/models/brands/base_dto.rbs +0 -27
  137. data/sig/sentdm/models/profile_complete_response.rbs +0 -5
  138. data/sig/sentdm/resources/brands/campaigns.rbs +0 -9
  139. data/sig/sentdm/resources/brands.rbs +0 -9
  140. data/sig/sentdm/resources/lookup.rbs +0 -7
@@ -24,8 +24,8 @@ module Sentdm
24
24
  # "profile_and_organization". Identifies who receives invoices and who is
25
25
  # responsible for payment.
26
26
  #
27
- # @return [Sentdm::Models::ProfileCreateParams::BillingContact, nil]
28
- optional :billing_contact, -> { Sentdm::ProfileCreateParams::BillingContact }, nil?: true
27
+ # @return [Sentdm::Models::BillingContactInfo, nil]
28
+ optional :billing_contact, -> { Sentdm::BillingContactInfo }, nil?: true
29
29
 
30
30
  # @!attribute billing_model
31
31
  # Billing model: profile, organization, or profile_and_organization (default:
@@ -45,8 +45,8 @@ module Sentdm
45
45
  # the brand associated with this profile. Cannot be set when inherit_tcr_brand is
46
46
  # true.
47
47
  #
48
- # @return [Sentdm::Models::BrandData, nil]
49
- optional :brand, -> { Sentdm::BrandData }, nil?: true
48
+ # @return [Sentdm::Models::BrandsBrandData, nil]
49
+ optional :brand, -> { Sentdm::BrandsBrandData }, nil?: true
50
50
 
51
51
  # @!attribute description
52
52
  # Profile description (optional)
@@ -95,8 +95,8 @@ module Sentdm
95
95
  # "profile" or "profile_and_organization". Not persisted on our servers —
96
96
  # forwarded to the payment processor.
97
97
  #
98
- # @return [Sentdm::Models::ProfileCreateParams::PaymentDetails, nil]
99
- optional :payment_details, -> { Sentdm::ProfileCreateParams::PaymentDetails }, nil?: true
98
+ # @return [Sentdm::Models::PaymentDetails, nil]
99
+ optional :payment_details, -> { Sentdm::PaymentDetails }, nil?: true
100
100
 
101
101
  # @!attribute sandbox
102
102
  # Sandbox flag - when true, the operation is simulated without side effects Useful
@@ -143,11 +143,11 @@ module Sentdm
143
143
  #
144
144
  # @param allow_template_sharing [Boolean] Whether templates are shared across profiles (default: false)
145
145
  #
146
- # @param billing_contact [Sentdm::Models::ProfileCreateParams::BillingContact, nil] Billing contact for this profile. Required when billing_model is "profile" or "p
146
+ # @param billing_contact [Sentdm::Models::BillingContactInfo, nil] Billing contact for this profile. Required when billing_model is "profile" or "p
147
147
  #
148
148
  # @param billing_model [String, nil] Billing model: profile, organization, or profile_and_organization (default: prof
149
149
  #
150
- # @param brand [Sentdm::Models::BrandData, nil] Brand and KYC information for this profile (optional).
150
+ # @param brand [Sentdm::Models::BrandsBrandData, nil] Brand and KYC information for this profile (optional).
151
151
  #
152
152
  # @param description [String, nil] Profile description (optional)
153
153
  #
@@ -163,7 +163,7 @@ module Sentdm
163
163
  #
164
164
  # @param name [String] Profile name (required)
165
165
  #
166
- # @param payment_details [Sentdm::Models::ProfileCreateParams::PaymentDetails, nil] Payment card details for this profile (optional).
166
+ # @param payment_details [Sentdm::Models::PaymentDetails, nil] Payment card details for this profile (optional).
167
167
  #
168
168
  # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
169
169
  #
@@ -177,88 +177,6 @@ module Sentdm
177
177
  #
178
178
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
179
179
 
180
- class BillingContact < Sentdm::Internal::Type::BaseModel
181
- # @!attribute email
182
- # Email address where invoices will be sent (required)
183
- #
184
- # @return [String]
185
- required :email, String
186
-
187
- # @!attribute name
188
- # Full name of the billing contact or company (required)
189
- #
190
- # @return [String]
191
- required :name, String
192
-
193
- # @!attribute address
194
- # Billing address (optional). Free-form text including street, city, state, postal
195
- # code, and country.
196
- #
197
- # @return [String, nil]
198
- optional :address, String, nil?: true
199
-
200
- # @!attribute phone
201
- # Phone number for the billing contact (optional)
202
- #
203
- # @return [String, nil]
204
- optional :phone, String, nil?: true
205
-
206
- # @!method initialize(email:, name:, address: nil, phone: nil)
207
- # Some parameter documentations has been truncated, see
208
- # {Sentdm::Models::ProfileCreateParams::BillingContact} for more details.
209
- #
210
- # Billing contact for this profile. Required when billing_model is "profile" or
211
- # "profile_and_organization". Identifies who receives invoices and who is
212
- # responsible for payment.
213
- #
214
- # @param email [String] Email address where invoices will be sent (required)
215
- #
216
- # @param name [String] Full name of the billing contact or company (required)
217
- #
218
- # @param address [String, nil] Billing address (optional). Free-form text including street, city, state, postal
219
- #
220
- # @param phone [String, nil] Phone number for the billing contact (optional)
221
- end
222
-
223
- class PaymentDetails < Sentdm::Internal::Type::BaseModel
224
- # @!attribute card_number
225
- # Card number (digits only, 13–19 characters)
226
- #
227
- # @return [String]
228
- required :card_number, String
229
-
230
- # @!attribute cvc
231
- # Card security code (3–4 digits)
232
- #
233
- # @return [String]
234
- required :cvc, String
235
-
236
- # @!attribute expiry
237
- # Card expiry date in MM/YY format (e.g. "09/27")
238
- #
239
- # @return [String]
240
- required :expiry, String
241
-
242
- # @!attribute zip_code
243
- # Billing ZIP / postal code associated with the card
244
- #
245
- # @return [String]
246
- required :zip_code, String
247
-
248
- # @!method initialize(card_number:, cvc:, expiry:, zip_code:)
249
- # Payment card details for this profile (optional). Accepted when billing_model is
250
- # "profile" or "profile_and_organization". Not persisted on our servers —
251
- # forwarded to the payment processor.
252
- #
253
- # @param card_number [String] Card number (digits only, 13–19 characters)
254
- #
255
- # @param cvc [String] Card security code (3–4 digits)
256
- #
257
- # @param expiry [String] Card expiry date in MM/YY format (e.g. "09/27")
258
- #
259
- # @param zip_code [String] Billing ZIP / postal code associated with the card
260
- end
261
-
262
180
  class WhatsappBusinessAccount < Sentdm::Internal::Type::BaseModel
263
181
  # @!attribute access_token
264
182
  # System User access token with whatsapp_business_messaging and
@@ -32,7 +32,7 @@ module Sentdm
32
32
  #
33
33
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
34
34
 
35
- class Body < Sentdm::Models::MutationRequest
35
+ class Body < Sentdm::Models::MutationRequestBase
36
36
  # @!method initialize
37
37
  # Request to delete a profile
38
38
  end
@@ -44,8 +44,8 @@ module Sentdm
44
44
  # Brand associated with this profile. Null if no brand has been configured yet.
45
45
  # Includes KYC information and TCR registration status.
46
46
  #
47
- # @return [Sentdm::Models::BrandWithKYC, nil]
48
- optional :brand, -> { Sentdm::BrandWithKYC }, nil?: true
47
+ # @return [Sentdm::Models::ProfileDetail::Brand, nil]
48
+ optional :brand, -> { Sentdm::ProfileDetail::Brand }, nil?: true
49
49
 
50
50
  # @!attribute created_at
51
51
  # When the profile was created
@@ -175,7 +175,7 @@ module Sentdm
175
175
  #
176
176
  # @param billing_model [String] Billing model: profile, organization, or profile_and_organization
177
177
  #
178
- # @param brand [Sentdm::Models::BrandWithKYC, nil] Brand associated with this profile. Null if no brand has been configured yet.
178
+ # @param brand [Sentdm::Models::ProfileDetail::Brand, nil] Brand associated with this profile. Null if no brand has been configured yet.
179
179
  #
180
180
  # @param created_at [Time] When the profile was created
181
181
  #
@@ -244,6 +244,372 @@ module Sentdm
244
244
  # @param name [String, nil]
245
245
  # @param phone [String, nil]
246
246
  end
247
+
248
+ # @see Sentdm::Models::ProfileDetail#brand
249
+ class Brand < Sentdm::Internal::Type::BaseModel
250
+ # @!attribute id
251
+ # Unique identifier for the brand
252
+ #
253
+ # @return [String, nil]
254
+ optional :id, String
255
+
256
+ # @!attribute business
257
+ # Business details and address information
258
+ #
259
+ # @return [Sentdm::Models::ProfileDetail::Brand::Business, nil]
260
+ optional :business, -> { Sentdm::ProfileDetail::Brand::Business }, nil?: true
261
+
262
+ # @!attribute compliance
263
+ # Compliance and TCR-related information
264
+ #
265
+ # @return [Sentdm::Models::ProfileDetail::Brand::Compliance, nil]
266
+ optional :compliance, -> { Sentdm::ProfileDetail::Brand::Compliance }, nil?: true
267
+
268
+ # @!attribute contact
269
+ # Contact information for the brand
270
+ #
271
+ # @return [Sentdm::Models::ProfileDetail::Brand::Contact, nil]
272
+ optional :contact, -> { Sentdm::ProfileDetail::Brand::Contact }, nil?: true
273
+
274
+ # @!attribute created_at
275
+ # When the brand was created
276
+ #
277
+ # @return [Time, nil]
278
+ optional :created_at, Time
279
+
280
+ # @!attribute csp_id
281
+ # CSP (Campaign Service Provider) ID
282
+ #
283
+ # @return [String, nil]
284
+ optional :csp_id, String, nil?: true
285
+
286
+ # @!attribute identity_status
287
+ # TCR brand identity verification status
288
+ #
289
+ # @return [Symbol, Sentdm::Models::ProfileDetail::Brand::IdentityStatus, nil]
290
+ optional :identity_status, enum: -> { Sentdm::ProfileDetail::Brand::IdentityStatus }, nil?: true
291
+
292
+ # @!attribute is_inherited
293
+ # Whether this brand is inherited from the parent organization
294
+ #
295
+ # @return [Boolean, nil]
296
+ optional :is_inherited, Sentdm::Internal::Type::Boolean
297
+
298
+ # @!attribute status
299
+ # TCR brand status
300
+ #
301
+ # @return [Symbol, Sentdm::Models::ProfileDetail::Brand::Status, nil]
302
+ optional :status, enum: -> { Sentdm::ProfileDetail::Brand::Status }, nil?: true
303
+
304
+ # @!attribute submitted_at
305
+ # When the brand was submitted to TCR
306
+ #
307
+ # @return [Time, nil]
308
+ optional :submitted_at, Time, nil?: true
309
+
310
+ # @!attribute submitted_to_tcr
311
+ # Whether this brand has been submitted to TCR
312
+ #
313
+ # @return [Boolean, nil]
314
+ optional :submitted_to_tcr, Sentdm::Internal::Type::Boolean
315
+
316
+ # @!attribute tcr_brand_id
317
+ # TCR brand ID (populated after TCR submission)
318
+ #
319
+ # @return [String, nil]
320
+ optional :tcr_brand_id, String, nil?: true
321
+
322
+ # @!attribute universal_ein
323
+ # Universal EIN from TCR
324
+ #
325
+ # @return [String, nil]
326
+ optional :universal_ein, String, nil?: true
327
+
328
+ # @!attribute updated_at
329
+ # When the brand was last updated
330
+ #
331
+ # @return [Time, nil]
332
+ optional :updated_at, Time, nil?: true
333
+
334
+ # @!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)
335
+ # Brand associated with this profile. Null if no brand has been configured yet.
336
+ # Includes KYC information and TCR registration status.
337
+ #
338
+ # @param id [String] Unique identifier for the brand
339
+ #
340
+ # @param business [Sentdm::Models::ProfileDetail::Brand::Business, nil] Business details and address information
341
+ #
342
+ # @param compliance [Sentdm::Models::ProfileDetail::Brand::Compliance, nil] Compliance and TCR-related information
343
+ #
344
+ # @param contact [Sentdm::Models::ProfileDetail::Brand::Contact, nil] Contact information for the brand
345
+ #
346
+ # @param created_at [Time] When the brand was created
347
+ #
348
+ # @param csp_id [String, nil] CSP (Campaign Service Provider) ID
349
+ #
350
+ # @param identity_status [Symbol, Sentdm::Models::ProfileDetail::Brand::IdentityStatus, nil] TCR brand identity verification status
351
+ #
352
+ # @param is_inherited [Boolean] Whether this brand is inherited from the parent organization
353
+ #
354
+ # @param status [Symbol, Sentdm::Models::ProfileDetail::Brand::Status, nil] TCR brand status
355
+ #
356
+ # @param submitted_at [Time, nil] When the brand was submitted to TCR
357
+ #
358
+ # @param submitted_to_tcr [Boolean] Whether this brand has been submitted to TCR
359
+ #
360
+ # @param tcr_brand_id [String, nil] TCR brand ID (populated after TCR submission)
361
+ #
362
+ # @param universal_ein [String, nil] Universal EIN from TCR
363
+ #
364
+ # @param updated_at [Time, nil] When the brand was last updated
365
+
366
+ # @see Sentdm::Models::ProfileDetail::Brand#business
367
+ class Business < Sentdm::Internal::Type::BaseModel
368
+ # @!attribute city
369
+ # City
370
+ #
371
+ # @return [String, nil]
372
+ optional :city, String, nil?: true
373
+
374
+ # @!attribute country
375
+ # Country code (e.g., US, CA)
376
+ #
377
+ # @return [String, nil]
378
+ optional :country, String, nil?: true
379
+
380
+ # @!attribute country_of_registration
381
+ # Country where the business is registered
382
+ #
383
+ # @return [String, nil]
384
+ optional :country_of_registration, String, nil?: true
385
+
386
+ # @!attribute entity_type
387
+ # Business entity type
388
+ #
389
+ # @return [String, nil]
390
+ optional :entity_type, String, nil?: true
391
+
392
+ # @!attribute legal_name
393
+ # Legal business name
394
+ #
395
+ # @return [String, nil]
396
+ optional :legal_name, String, nil?: true
397
+
398
+ # @!attribute postal_code
399
+ # Postal/ZIP code
400
+ #
401
+ # @return [String, nil]
402
+ optional :postal_code, String, nil?: true
403
+
404
+ # @!attribute state
405
+ # State/province code
406
+ #
407
+ # @return [String, nil]
408
+ optional :state, String, nil?: true
409
+
410
+ # @!attribute street
411
+ # Street address
412
+ #
413
+ # @return [String, nil]
414
+ optional :street, String, nil?: true
415
+
416
+ # @!attribute tax_id
417
+ # Tax ID/EIN number
418
+ #
419
+ # @return [String, nil]
420
+ optional :tax_id, String, nil?: true
421
+
422
+ # @!attribute tax_id_type
423
+ # Type of tax ID (e.g., us_ein, ca_bn)
424
+ #
425
+ # @return [String, nil]
426
+ optional :tax_id_type, String, nil?: true
427
+
428
+ # @!attribute url
429
+ # Business website URL
430
+ #
431
+ # @return [String, nil]
432
+ optional :url, String, nil?: true
433
+
434
+ # @!method initialize(city: nil, country: nil, country_of_registration: nil, entity_type: nil, legal_name: nil, postal_code: nil, state: nil, street: nil, tax_id: nil, tax_id_type: nil, url: nil)
435
+ # Business details and address information
436
+ #
437
+ # @param city [String, nil] City
438
+ #
439
+ # @param country [String, nil] Country code (e.g., US, CA)
440
+ #
441
+ # @param country_of_registration [String, nil] Country where the business is registered
442
+ #
443
+ # @param entity_type [String, nil] Business entity type
444
+ #
445
+ # @param legal_name [String, nil] Legal business name
446
+ #
447
+ # @param postal_code [String, nil] Postal/ZIP code
448
+ #
449
+ # @param state [String, nil] State/province code
450
+ #
451
+ # @param street [String, nil] Street address
452
+ #
453
+ # @param tax_id [String, nil] Tax ID/EIN number
454
+ #
455
+ # @param tax_id_type [String, nil] Type of tax ID (e.g., us_ein, ca_bn)
456
+ #
457
+ # @param url [String, nil] Business website URL
458
+ end
459
+
460
+ # @see Sentdm::Models::ProfileDetail::Brand#compliance
461
+ class Compliance < Sentdm::Internal::Type::BaseModel
462
+ # @!attribute brand_relationship
463
+ # Brand relationship level with TCR
464
+ #
465
+ # @return [Symbol, Sentdm::Models::TcrBrandRelationship, nil]
466
+ optional :brand_relationship, enum: -> { Sentdm::TcrBrandRelationship }, nil?: true
467
+
468
+ # @!attribute destination_countries
469
+ # List of destination countries for messaging
470
+ #
471
+ # @return [Array<Sentdm::Models::DestinationCountry>, nil]
472
+ optional :destination_countries, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::DestinationCountry] }
473
+
474
+ # @!attribute expected_messaging_volume
475
+ # Expected daily messaging volume
476
+ #
477
+ # @return [String, nil]
478
+ optional :expected_messaging_volume, String, nil?: true
479
+
480
+ # @!attribute is_tcr_application
481
+ # Whether this is a TCR (Campaign Registry) application
482
+ #
483
+ # @return [Boolean, nil]
484
+ optional :is_tcr_application, Sentdm::Internal::Type::Boolean
485
+
486
+ # @!attribute notes
487
+ # Additional notes about the business or use case
488
+ #
489
+ # @return [String, nil]
490
+ optional :notes, String, nil?: true
491
+
492
+ # @!attribute phone_number_prefix
493
+ # Phone number prefix for messaging (e.g., "+1")
494
+ #
495
+ # @return [String, nil]
496
+ optional :phone_number_prefix, String, nil?: true
497
+
498
+ # @!attribute primary_use_case
499
+ # Primary messaging use case description
500
+ #
501
+ # @return [String, nil]
502
+ optional :primary_use_case, String, nil?: true
503
+
504
+ # @!attribute vertical
505
+ # Business vertical/industry category
506
+ #
507
+ # @return [Symbol, Sentdm::Models::TcrVertical, nil]
508
+ optional :vertical, enum: -> { Sentdm::TcrVertical }, nil?: true
509
+
510
+ # @!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)
511
+ # Compliance and TCR-related information
512
+ #
513
+ # @param brand_relationship [Symbol, Sentdm::Models::TcrBrandRelationship, nil] Brand relationship level with TCR
514
+ #
515
+ # @param destination_countries [Array<Sentdm::Models::DestinationCountry>] List of destination countries for messaging
516
+ #
517
+ # @param expected_messaging_volume [String, nil] Expected daily messaging volume
518
+ #
519
+ # @param is_tcr_application [Boolean] Whether this is a TCR (Campaign Registry) application
520
+ #
521
+ # @param notes [String, nil] Additional notes about the business or use case
522
+ #
523
+ # @param phone_number_prefix [String, nil] Phone number prefix for messaging (e.g., "+1")
524
+ #
525
+ # @param primary_use_case [String, nil] Primary messaging use case description
526
+ #
527
+ # @param vertical [Symbol, Sentdm::Models::TcrVertical, nil] Business vertical/industry category
528
+ end
529
+
530
+ # @see Sentdm::Models::ProfileDetail::Brand#contact
531
+ class Contact < Sentdm::Internal::Type::BaseModel
532
+ # @!attribute business_name
533
+ # Business/brand name
534
+ #
535
+ # @return [String, nil]
536
+ optional :business_name, String, nil?: true
537
+
538
+ # @!attribute email
539
+ # Contact email address
540
+ #
541
+ # @return [String, nil]
542
+ optional :email, String, nil?: true
543
+
544
+ # @!attribute name
545
+ # Primary contact name
546
+ #
547
+ # @return [String, nil]
548
+ optional :name, String
549
+
550
+ # @!attribute phone
551
+ # Contact phone number in E.164 format
552
+ #
553
+ # @return [String, nil]
554
+ optional :phone, String, nil?: true
555
+
556
+ # @!attribute phone_country_code
557
+ # Contact phone country code (e.g., "1" for US)
558
+ #
559
+ # @return [String, nil]
560
+ optional :phone_country_code, String, nil?: true
561
+
562
+ # @!attribute role
563
+ # Contact's role in the business
564
+ #
565
+ # @return [String, nil]
566
+ optional :role, String, nil?: true
567
+
568
+ # @!method initialize(business_name: nil, email: nil, name: nil, phone: nil, phone_country_code: nil, role: nil)
569
+ # Contact information for the brand
570
+ #
571
+ # @param business_name [String, nil] Business/brand name
572
+ #
573
+ # @param email [String, nil] Contact email address
574
+ #
575
+ # @param name [String] Primary contact name
576
+ #
577
+ # @param phone [String, nil] Contact phone number in E.164 format
578
+ #
579
+ # @param phone_country_code [String, nil] Contact phone country code (e.g., "1" for US)
580
+ #
581
+ # @param role [String, nil] Contact's role in the business
582
+ end
583
+
584
+ # TCR brand identity verification status
585
+ #
586
+ # @see Sentdm::Models::ProfileDetail::Brand#identity_status
587
+ module IdentityStatus
588
+ extend Sentdm::Internal::Type::Enum
589
+
590
+ SELF_DECLARED = :SELF_DECLARED
591
+ UNVERIFIED = :UNVERIFIED
592
+ VERIFIED = :VERIFIED
593
+ VETTED_VERIFIED = :VETTED_VERIFIED
594
+
595
+ # @!method self.values
596
+ # @return [Array<Symbol>]
597
+ end
598
+
599
+ # TCR brand status
600
+ #
601
+ # @see Sentdm::Models::ProfileDetail::Brand#status
602
+ module Status
603
+ extend Sentdm::Internal::Type::Enum
604
+
605
+ ACTIVE = :ACTIVE
606
+ INACTIVE = :INACTIVE
607
+ SUSPENDED = :SUSPENDED
608
+
609
+ # @!method self.values
610
+ # @return [Array<Symbol>]
611
+ end
612
+ end
247
613
  end
248
614
  end
249
615
  end
@@ -35,8 +35,8 @@ module Sentdm
35
35
  # "profile_and_organization" and no billing contact has been configured yet.
36
36
  # Identifies who receives invoices and who is responsible for payment.
37
37
  #
38
- # @return [Sentdm::Models::ProfileUpdateParams::BillingContact, nil]
39
- optional :billing_contact, -> { Sentdm::ProfileUpdateParams::BillingContact }, nil?: true
38
+ # @return [Sentdm::Models::BillingContactInfo, nil]
39
+ optional :billing_contact, -> { Sentdm::BillingContactInfo }, nil?: true
40
40
 
41
41
  # @!attribute billing_model
42
42
  # Billing model: profile, organization, or profile_and_organization (optional).
@@ -56,8 +56,8 @@ module Sentdm
56
56
  # inherit_tcr_brand is true. Once a brand has been submitted to TCR it cannot be
57
57
  # modified.
58
58
  #
59
- # @return [Sentdm::Models::BrandData, nil]
60
- optional :brand, -> { Sentdm::BrandData }, nil?: true
59
+ # @return [Sentdm::Models::BrandsBrandData, nil]
60
+ optional :brand, -> { Sentdm::BrandsBrandData }, nil?: true
61
61
 
62
62
  # @!attribute description
63
63
  # Profile description (optional)
@@ -106,8 +106,8 @@ module Sentdm
106
106
  # "profile" or "profile_and_organization". Not persisted on our servers —
107
107
  # forwarded to the payment processor.
108
108
  #
109
- # @return [Sentdm::Models::ProfileUpdateParams::PaymentDetails, nil]
110
- optional :payment_details, -> { Sentdm::ProfileUpdateParams::PaymentDetails }, nil?: true
109
+ # @return [Sentdm::Models::PaymentDetails, nil]
110
+ optional :payment_details, -> { Sentdm::PaymentDetails }, nil?: true
111
111
 
112
112
  # @!attribute sandbox
113
113
  # Sandbox flag - when true, the operation is simulated without side effects Useful
@@ -170,11 +170,11 @@ module Sentdm
170
170
  #
171
171
  # @param allow_template_sharing [Boolean, nil] Whether templates are shared across profiles (optional)
172
172
  #
173
- # @param billing_contact [Sentdm::Models::ProfileUpdateParams::BillingContact, nil] Billing contact for this profile. Required when billing_model is "profile" or "p
173
+ # @param billing_contact [Sentdm::Models::BillingContactInfo, nil] Billing contact for this profile. Required when billing_model is "profile" or "p
174
174
  #
175
175
  # @param billing_model [String, nil] Billing model: profile, organization, or profile_and_organization (optional).
176
176
  #
177
- # @param brand [Sentdm::Models::BrandData, nil] Brand and KYC information for this profile (optional).
177
+ # @param brand [Sentdm::Models::BrandsBrandData, nil] Brand and KYC information for this profile (optional).
178
178
  #
179
179
  # @param description [String, nil] Profile description (optional)
180
180
  #
@@ -190,7 +190,7 @@ module Sentdm
190
190
  #
191
191
  # @param name [String, nil] Profile name (optional)
192
192
  #
193
- # @param payment_details [Sentdm::Models::ProfileUpdateParams::PaymentDetails, nil] Payment card details for this profile (optional).
193
+ # @param payment_details [Sentdm::Models::PaymentDetails, nil] Payment card details for this profile (optional).
194
194
  #
195
195
  # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
196
196
  #
@@ -209,88 +209,6 @@ module Sentdm
209
209
  # @param x_profile_id [String]
210
210
  #
211
211
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
212
-
213
- class BillingContact < Sentdm::Internal::Type::BaseModel
214
- # @!attribute email
215
- # Email address where invoices will be sent (required)
216
- #
217
- # @return [String]
218
- required :email, String
219
-
220
- # @!attribute name
221
- # Full name of the billing contact or company (required)
222
- #
223
- # @return [String]
224
- required :name, String
225
-
226
- # @!attribute address
227
- # Billing address (optional). Free-form text including street, city, state, postal
228
- # code, and country.
229
- #
230
- # @return [String, nil]
231
- optional :address, String, nil?: true
232
-
233
- # @!attribute phone
234
- # Phone number for the billing contact (optional)
235
- #
236
- # @return [String, nil]
237
- optional :phone, String, nil?: true
238
-
239
- # @!method initialize(email:, name:, address: nil, phone: nil)
240
- # Some parameter documentations has been truncated, see
241
- # {Sentdm::Models::ProfileUpdateParams::BillingContact} for more details.
242
- #
243
- # Billing contact for this profile. Required when billing_model is "profile" or
244
- # "profile_and_organization" and no billing contact has been configured yet.
245
- # Identifies who receives invoices and who is responsible for payment.
246
- #
247
- # @param email [String] Email address where invoices will be sent (required)
248
- #
249
- # @param name [String] Full name of the billing contact or company (required)
250
- #
251
- # @param address [String, nil] Billing address (optional). Free-form text including street, city, state, postal
252
- #
253
- # @param phone [String, nil] Phone number for the billing contact (optional)
254
- end
255
-
256
- class PaymentDetails < Sentdm::Internal::Type::BaseModel
257
- # @!attribute card_number
258
- # Card number (digits only, 13–19 characters)
259
- #
260
- # @return [String]
261
- required :card_number, String
262
-
263
- # @!attribute cvc
264
- # Card security code (3–4 digits)
265
- #
266
- # @return [String]
267
- required :cvc, String
268
-
269
- # @!attribute expiry
270
- # Card expiry date in MM/YY format (e.g. "09/27")
271
- #
272
- # @return [String]
273
- required :expiry, String
274
-
275
- # @!attribute zip_code
276
- # Billing ZIP / postal code associated with the card
277
- #
278
- # @return [String]
279
- required :zip_code, String
280
-
281
- # @!method initialize(card_number:, cvc:, expiry:, zip_code:)
282
- # Payment card details for this profile (optional). Accepted when billing_model is
283
- # "profile" or "profile_and_organization". Not persisted on our servers —
284
- # forwarded to the payment processor.
285
- #
286
- # @param card_number [String] Card number (digits only, 13–19 characters)
287
- #
288
- # @param cvc [String] Card security code (3–4 digits)
289
- #
290
- # @param expiry [String] Card expiry date in MM/YY format (e.g. "09/27")
291
- #
292
- # @param zip_code [String] Billing ZIP / postal code associated with the card
293
- end
294
212
  end
295
213
  end
296
214
  end