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
@@ -29,13 +29,12 @@ module Sentdm
29
29
  # Billing contact for this profile. Required when billing_model is "profile" or
30
30
  # "profile_and_organization" and no billing contact has been configured yet.
31
31
  # Identifies who receives invoices and who is responsible for payment.
32
- sig { returns(T.nilable(Sentdm::ProfileUpdateParams::BillingContact)) }
32
+ sig { returns(T.nilable(Sentdm::BillingContactInfo)) }
33
33
  attr_reader :billing_contact
34
34
 
35
35
  sig do
36
36
  params(
37
- billing_contact:
38
- T.nilable(Sentdm::ProfileUpdateParams::BillingContact::OrHash)
37
+ billing_contact: T.nilable(Sentdm::BillingContactInfo::OrHash)
39
38
  ).void
40
39
  end
41
40
  attr_writer :billing_contact
@@ -54,10 +53,10 @@ module Sentdm
54
53
  # updates the brand associated with this profile. Cannot be set when
55
54
  # inherit_tcr_brand is true. Once a brand has been submitted to TCR it cannot be
56
55
  # modified.
57
- sig { returns(T.nilable(Sentdm::BrandData)) }
56
+ sig { returns(T.nilable(Sentdm::BrandsBrandData)) }
58
57
  attr_reader :brand
59
58
 
60
- sig { params(brand: T.nilable(Sentdm::BrandData::OrHash)).void }
59
+ sig { params(brand: T.nilable(Sentdm::BrandsBrandData::OrHash)).void }
61
60
  attr_writer :brand
62
61
 
63
62
  # Profile description (optional)
@@ -91,14 +90,11 @@ module Sentdm
91
90
  # Payment card details for this profile (optional). Accepted when billing_model is
92
91
  # "profile" or "profile_and_organization". Not persisted on our servers —
93
92
  # forwarded to the payment processor.
94
- sig { returns(T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails)) }
93
+ sig { returns(T.nilable(Sentdm::PaymentDetails)) }
95
94
  attr_reader :payment_details
96
95
 
97
96
  sig do
98
- params(
99
- payment_details:
100
- T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails::OrHash)
101
- ).void
97
+ params(payment_details: T.nilable(Sentdm::PaymentDetails::OrHash)).void
102
98
  end
103
99
  attr_writer :payment_details
104
100
 
@@ -150,10 +146,9 @@ module Sentdm
150
146
  allow_contact_sharing: T.nilable(T::Boolean),
151
147
  allow_number_change_during_onboarding: T.nilable(T::Boolean),
152
148
  allow_template_sharing: T.nilable(T::Boolean),
153
- billing_contact:
154
- T.nilable(Sentdm::ProfileUpdateParams::BillingContact::OrHash),
149
+ billing_contact: T.nilable(Sentdm::BillingContactInfo::OrHash),
155
150
  billing_model: T.nilable(String),
156
- brand: T.nilable(Sentdm::BrandData::OrHash),
151
+ brand: T.nilable(Sentdm::BrandsBrandData::OrHash),
157
152
  description: T.nilable(String),
158
153
  icon: T.nilable(String),
159
154
  inherit_contacts: T.nilable(T::Boolean),
@@ -161,8 +156,7 @@ module Sentdm
161
156
  inherit_tcr_campaign: T.nilable(T::Boolean),
162
157
  inherit_templates: T.nilable(T::Boolean),
163
158
  name: T.nilable(String),
164
- payment_details:
165
- T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails::OrHash),
159
+ payment_details: T.nilable(Sentdm::PaymentDetails::OrHash),
166
160
  sandbox: T::Boolean,
167
161
  sending_phone_number: T.nilable(String),
168
162
  sending_phone_number_profile_id: T.nilable(String),
@@ -245,10 +239,9 @@ module Sentdm
245
239
  allow_contact_sharing: T.nilable(T::Boolean),
246
240
  allow_number_change_during_onboarding: T.nilable(T::Boolean),
247
241
  allow_template_sharing: T.nilable(T::Boolean),
248
- billing_contact:
249
- T.nilable(Sentdm::ProfileUpdateParams::BillingContact),
242
+ billing_contact: T.nilable(Sentdm::BillingContactInfo),
250
243
  billing_model: T.nilable(String),
251
- brand: T.nilable(Sentdm::BrandData),
244
+ brand: T.nilable(Sentdm::BrandsBrandData),
252
245
  description: T.nilable(String),
253
246
  icon: T.nilable(String),
254
247
  inherit_contacts: T.nilable(T::Boolean),
@@ -256,8 +249,7 @@ module Sentdm
256
249
  inherit_tcr_campaign: T.nilable(T::Boolean),
257
250
  inherit_templates: T.nilable(T::Boolean),
258
251
  name: T.nilable(String),
259
- payment_details:
260
- T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails),
252
+ payment_details: T.nilable(Sentdm::PaymentDetails),
261
253
  sandbox: T::Boolean,
262
254
  sending_phone_number: T.nilable(String),
263
255
  sending_phone_number_profile_id: T.nilable(String),
@@ -272,132 +264,6 @@ module Sentdm
272
264
  end
273
265
  def to_hash
274
266
  end
275
-
276
- class BillingContact < Sentdm::Internal::Type::BaseModel
277
- OrHash =
278
- T.type_alias do
279
- T.any(
280
- Sentdm::ProfileUpdateParams::BillingContact,
281
- Sentdm::Internal::AnyHash
282
- )
283
- end
284
-
285
- # Email address where invoices will be sent (required)
286
- sig { returns(String) }
287
- attr_accessor :email
288
-
289
- # Full name of the billing contact or company (required)
290
- sig { returns(String) }
291
- attr_accessor :name
292
-
293
- # Billing address (optional). Free-form text including street, city, state, postal
294
- # code, and country.
295
- sig { returns(T.nilable(String)) }
296
- attr_accessor :address
297
-
298
- # Phone number for the billing contact (optional)
299
- sig { returns(T.nilable(String)) }
300
- attr_accessor :phone
301
-
302
- # Billing contact for this profile. Required when billing_model is "profile" or
303
- # "profile_and_organization" and no billing contact has been configured yet.
304
- # Identifies who receives invoices and who is responsible for payment.
305
- sig do
306
- params(
307
- email: String,
308
- name: String,
309
- address: T.nilable(String),
310
- phone: T.nilable(String)
311
- ).returns(T.attached_class)
312
- end
313
- def self.new(
314
- # Email address where invoices will be sent (required)
315
- email:,
316
- # Full name of the billing contact or company (required)
317
- name:,
318
- # Billing address (optional). Free-form text including street, city, state, postal
319
- # code, and country.
320
- address: nil,
321
- # Phone number for the billing contact (optional)
322
- phone: nil
323
- )
324
- end
325
-
326
- sig do
327
- override.returns(
328
- {
329
- email: String,
330
- name: String,
331
- address: T.nilable(String),
332
- phone: T.nilable(String)
333
- }
334
- )
335
- end
336
- def to_hash
337
- end
338
- end
339
-
340
- class PaymentDetails < Sentdm::Internal::Type::BaseModel
341
- OrHash =
342
- T.type_alias do
343
- T.any(
344
- Sentdm::ProfileUpdateParams::PaymentDetails,
345
- Sentdm::Internal::AnyHash
346
- )
347
- end
348
-
349
- # Card number (digits only, 13–19 characters)
350
- sig { returns(String) }
351
- attr_accessor :card_number
352
-
353
- # Card security code (3–4 digits)
354
- sig { returns(String) }
355
- attr_accessor :cvc
356
-
357
- # Card expiry date in MM/YY format (e.g. "09/27")
358
- sig { returns(String) }
359
- attr_accessor :expiry
360
-
361
- # Billing ZIP / postal code associated with the card
362
- sig { returns(String) }
363
- attr_accessor :zip_code
364
-
365
- # Payment card details for this profile (optional). Accepted when billing_model is
366
- # "profile" or "profile_and_organization". Not persisted on our servers —
367
- # forwarded to the payment processor.
368
- sig do
369
- params(
370
- card_number: String,
371
- cvc: String,
372
- expiry: String,
373
- zip_code: String
374
- ).returns(T.attached_class)
375
- end
376
- def self.new(
377
- # Card number (digits only, 13–19 characters)
378
- card_number:,
379
- # Card security code (3–4 digits)
380
- cvc:,
381
- # Card expiry date in MM/YY format (e.g. "09/27")
382
- expiry:,
383
- # Billing ZIP / postal code associated with the card
384
- zip_code:
385
- )
386
- end
387
-
388
- sig do
389
- override.returns(
390
- {
391
- card_number: String,
392
- cvc: String,
393
- expiry: String,
394
- zip_code: String
395
- }
396
- )
397
- end
398
- def to_hash
399
- end
400
- end
401
267
  end
402
268
  end
403
269
  end
@@ -2,23 +2,23 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- module Brands
6
- class APIResponseTcrCampaignWithUseCases < Sentdm::Internal::Type::BaseModel
5
+ module Profiles
6
+ class APIResponseOfTcrCampaignWithUseCases < Sentdm::Internal::Type::BaseModel
7
7
  OrHash =
8
8
  T.type_alias do
9
9
  T.any(
10
- Sentdm::Brands::APIResponseTcrCampaignWithUseCases,
10
+ Sentdm::Profiles::APIResponseOfTcrCampaignWithUseCases,
11
11
  Sentdm::Internal::AnyHash
12
12
  )
13
13
  end
14
14
 
15
15
  # The response data (null if error)
16
- sig { returns(T.nilable(Sentdm::Brands::TcrCampaignWithUseCases)) }
16
+ sig { returns(T.nilable(Sentdm::Profiles::TcrCampaignWithUseCases)) }
17
17
  attr_reader :data
18
18
 
19
19
  sig do
20
20
  params(
21
- data: T.nilable(Sentdm::Brands::TcrCampaignWithUseCases::OrHash)
21
+ data: T.nilable(Sentdm::Profiles::TcrCampaignWithUseCases::OrHash)
22
22
  ).void
23
23
  end
24
24
  attr_writer :data
@@ -47,7 +47,7 @@ module Sentdm
47
47
  # Standard API response envelope for all v3 endpoints
48
48
  sig do
49
49
  params(
50
- data: T.nilable(Sentdm::Brands::TcrCampaignWithUseCases::OrHash),
50
+ data: T.nilable(Sentdm::Profiles::TcrCampaignWithUseCases::OrHash),
51
51
  error: T.nilable(Sentdm::APIError::OrHash),
52
52
  meta: Sentdm::APIMeta::OrHash,
53
53
  success: T::Boolean
@@ -68,7 +68,7 @@ module Sentdm
68
68
  sig do
69
69
  override.returns(
70
70
  {
71
- data: T.nilable(Sentdm::Brands::TcrCampaignWithUseCases),
71
+ data: T.nilable(Sentdm::Profiles::TcrCampaignWithUseCases),
72
72
  error: T.nilable(Sentdm::APIError),
73
73
  meta: Sentdm::APIMeta,
74
74
  success: T::Boolean
@@ -0,0 +1,88 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class CampaignCreateParams < Sentdm::Internal::Type::BaseModel
7
+ extend Sentdm::Internal::Type::RequestParameters::Converter
8
+ include Sentdm::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Sentdm::Profiles::CampaignCreateParams,
14
+ Sentdm::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :profile_id
20
+
21
+ # Campaign data
22
+ sig { returns(Sentdm::Profiles::CampaignData) }
23
+ attr_reader :campaign
24
+
25
+ sig { params(campaign: Sentdm::Profiles::CampaignData::OrHash).void }
26
+ attr_writer :campaign
27
+
28
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
29
+ # for testing integrations without actual execution
30
+ sig { returns(T.nilable(T::Boolean)) }
31
+ attr_reader :sandbox
32
+
33
+ sig { params(sandbox: T::Boolean).void }
34
+ attr_writer :sandbox
35
+
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :idempotency_key
38
+
39
+ sig { params(idempotency_key: String).void }
40
+ attr_writer :idempotency_key
41
+
42
+ sig { returns(T.nilable(String)) }
43
+ attr_reader :x_profile_id
44
+
45
+ sig { params(x_profile_id: String).void }
46
+ attr_writer :x_profile_id
47
+
48
+ sig do
49
+ params(
50
+ profile_id: String,
51
+ campaign: Sentdm::Profiles::CampaignData::OrHash,
52
+ sandbox: T::Boolean,
53
+ idempotency_key: String,
54
+ x_profile_id: String,
55
+ request_options: Sentdm::RequestOptions::OrHash
56
+ ).returns(T.attached_class)
57
+ end
58
+ def self.new(
59
+ profile_id:,
60
+ # Campaign data
61
+ campaign:,
62
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
63
+ # for testing integrations without actual execution
64
+ sandbox: nil,
65
+ idempotency_key: nil,
66
+ x_profile_id: nil,
67
+ request_options: {}
68
+ )
69
+ end
70
+
71
+ sig do
72
+ override.returns(
73
+ {
74
+ profile_id: String,
75
+ campaign: Sentdm::Profiles::CampaignData,
76
+ sandbox: T::Boolean,
77
+ idempotency_key: String,
78
+ x_profile_id: String,
79
+ request_options: Sentdm::RequestOptions
80
+ }
81
+ )
82
+ end
83
+ def to_hash
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -2,11 +2,11 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- module Brands
5
+ module Profiles
6
6
  class CampaignData < Sentdm::Internal::Type::BaseModel
7
7
  OrHash =
8
8
  T.type_alias do
9
- T.any(Sentdm::Brands::CampaignData, Sentdm::Internal::AnyHash)
9
+ T.any(Sentdm::Profiles::CampaignData, Sentdm::Internal::AnyHash)
10
10
  end
11
11
 
12
12
  # Campaign description
@@ -25,7 +25,7 @@ module Sentdm
25
25
  sig do
26
26
  returns(
27
27
  T::Array[
28
- Sentdm::Brands::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData
28
+ Sentdm::Profiles::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData
29
29
  ]
30
30
  )
31
31
  end
@@ -75,7 +75,7 @@ module Sentdm
75
75
  type: String,
76
76
  use_cases:
77
77
  T::Array[
78
- Sentdm::Brands::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData::OrHash
78
+ Sentdm::Profiles::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData::OrHash
79
79
  ],
80
80
  help_keywords: T.nilable(String),
81
81
  help_message: T.nilable(String),
@@ -126,7 +126,7 @@ module Sentdm
126
126
  type: String,
127
127
  use_cases:
128
128
  T::Array[
129
- Sentdm::Brands::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData
129
+ Sentdm::Profiles::SentDmServicesEndpointsCustomerApIv3ContractsRequestsCampaignsCampaignUseCaseData
130
130
  ],
131
131
  help_keywords: T.nilable(String),
132
132
  help_message: T.nilable(String),
@@ -0,0 +1,95 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class CampaignDeleteParams < Sentdm::Internal::Type::BaseModel
7
+ extend Sentdm::Internal::Type::RequestParameters::Converter
8
+ include Sentdm::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Sentdm::Profiles::CampaignDeleteParams,
14
+ Sentdm::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :profile_id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :campaign_id
23
+
24
+ # Request to delete a campaign from a brand
25
+ sig { returns(Sentdm::Profiles::CampaignDeleteParams::Body) }
26
+ attr_reader :body
27
+
28
+ sig do
29
+ params(
30
+ body: Sentdm::Profiles::CampaignDeleteParams::Body::OrHash
31
+ ).void
32
+ end
33
+ attr_writer :body
34
+
35
+ sig { returns(T.nilable(String)) }
36
+ attr_reader :x_profile_id
37
+
38
+ sig { params(x_profile_id: String).void }
39
+ attr_writer :x_profile_id
40
+
41
+ sig do
42
+ params(
43
+ profile_id: String,
44
+ campaign_id: String,
45
+ body: Sentdm::Profiles::CampaignDeleteParams::Body::OrHash,
46
+ x_profile_id: String,
47
+ request_options: Sentdm::RequestOptions::OrHash
48
+ ).returns(T.attached_class)
49
+ end
50
+ def self.new(
51
+ profile_id:,
52
+ campaign_id:,
53
+ # Request to delete a campaign from a brand
54
+ body:,
55
+ x_profile_id: nil,
56
+ request_options: {}
57
+ )
58
+ end
59
+
60
+ sig do
61
+ override.returns(
62
+ {
63
+ profile_id: String,
64
+ campaign_id: String,
65
+ body: Sentdm::Profiles::CampaignDeleteParams::Body,
66
+ x_profile_id: String,
67
+ request_options: Sentdm::RequestOptions
68
+ }
69
+ )
70
+ end
71
+ def to_hash
72
+ end
73
+
74
+ class Body < Sentdm::Models::MutationRequestBase
75
+ OrHash =
76
+ T.type_alias do
77
+ T.any(
78
+ Sentdm::Profiles::CampaignDeleteParams::Body,
79
+ Sentdm::Internal::AnyHash
80
+ )
81
+ end
82
+
83
+ # Request to delete a campaign from a brand
84
+ sig { returns(T.attached_class) }
85
+ def self.new
86
+ end
87
+
88
+ sig { override.returns({}) }
89
+ def to_hash
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class CampaignListParams < Sentdm::Internal::Type::BaseModel
7
+ extend Sentdm::Internal::Type::RequestParameters::Converter
8
+ include Sentdm::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Sentdm::Profiles::CampaignListParams,
14
+ Sentdm::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :profile_id
20
+
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :x_profile_id
23
+
24
+ sig { params(x_profile_id: String).void }
25
+ attr_writer :x_profile_id
26
+
27
+ sig do
28
+ params(
29
+ profile_id: String,
30
+ x_profile_id: String,
31
+ request_options: Sentdm::RequestOptions::OrHash
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(profile_id:, x_profile_id: nil, request_options: {})
35
+ end
36
+
37
+ sig do
38
+ override.returns(
39
+ {
40
+ profile_id: String,
41
+ x_profile_id: String,
42
+ request_options: Sentdm::RequestOptions
43
+ }
44
+ )
45
+ end
46
+ def to_hash
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,84 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class CampaignListResponse < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Sentdm::Models::Profiles::CampaignListResponse,
11
+ Sentdm::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The response data (null if error)
16
+ sig do
17
+ returns(
18
+ T.nilable(T::Array[Sentdm::Profiles::TcrCampaignWithUseCases])
19
+ )
20
+ end
21
+ attr_accessor :data
22
+
23
+ # Error details (null if successful)
24
+ sig { returns(T.nilable(Sentdm::APIError)) }
25
+ attr_reader :error
26
+
27
+ sig { params(error: T.nilable(Sentdm::APIError::OrHash)).void }
28
+ attr_writer :error
29
+
30
+ # Metadata about the request and response
31
+ sig { returns(T.nilable(Sentdm::APIMeta)) }
32
+ attr_reader :meta
33
+
34
+ sig { params(meta: Sentdm::APIMeta::OrHash).void }
35
+ attr_writer :meta
36
+
37
+ # Indicates whether the request was successful
38
+ sig { returns(T.nilable(T::Boolean)) }
39
+ attr_reader :success
40
+
41
+ sig { params(success: T::Boolean).void }
42
+ attr_writer :success
43
+
44
+ # Standard API response envelope for all v3 endpoints
45
+ sig do
46
+ params(
47
+ data:
48
+ T.nilable(
49
+ T::Array[Sentdm::Profiles::TcrCampaignWithUseCases::OrHash]
50
+ ),
51
+ error: T.nilable(Sentdm::APIError::OrHash),
52
+ meta: Sentdm::APIMeta::OrHash,
53
+ success: T::Boolean
54
+ ).returns(T.attached_class)
55
+ end
56
+ def self.new(
57
+ # The response data (null if error)
58
+ data: nil,
59
+ # Error details (null if successful)
60
+ error: nil,
61
+ # Metadata about the request and response
62
+ meta: nil,
63
+ # Indicates whether the request was successful
64
+ success: nil
65
+ )
66
+ end
67
+
68
+ sig do
69
+ override.returns(
70
+ {
71
+ data:
72
+ T.nilable(T::Array[Sentdm::Profiles::TcrCampaignWithUseCases]),
73
+ error: T.nilable(Sentdm::APIError),
74
+ meta: Sentdm::APIMeta,
75
+ success: T::Boolean
76
+ }
77
+ )
78
+ end
79
+ def to_hash
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end