sentdm 0.3.0 → 0.4.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 (217) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +18 -9
  4. data/lib/sentdm/client.rb +7 -0
  5. data/lib/sentdm/internal/util.rb +31 -0
  6. data/lib/sentdm/models/api_meta.rb +1 -9
  7. data/lib/sentdm/models/brand_data.rb +235 -198
  8. data/lib/sentdm/models/brand_with_kyc.rb +249 -214
  9. data/lib/sentdm/models/brands/api_response_tcr_campaign_with_use_cases.rb +0 -1
  10. data/lib/sentdm/models/contact_create_params.rb +13 -6
  11. data/lib/sentdm/models/contact_delete_params.rb +15 -1
  12. data/lib/sentdm/models/contact_list_params.rb +10 -2
  13. data/lib/sentdm/models/contact_retrieve_params.rb +13 -1
  14. data/lib/sentdm/models/contact_update_params.rb +20 -6
  15. data/lib/sentdm/models/me_retrieve_params.rb +7 -1
  16. data/lib/sentdm/models/me_retrieve_response.rb +152 -7
  17. data/lib/sentdm/models/message_retrieve_activities_params.rb +13 -1
  18. data/lib/sentdm/models/message_retrieve_activities_response.rb +19 -5
  19. data/lib/sentdm/models/message_retrieve_status_params.rb +13 -1
  20. data/lib/sentdm/models/message_retrieve_status_response.rb +8 -1
  21. data/lib/sentdm/models/message_send_params.rb +17 -10
  22. data/lib/sentdm/models/mutation_request.rb +6 -6
  23. data/lib/sentdm/models/profile_complete_params.rb +20 -6
  24. data/lib/sentdm/models/profile_create_params.rb +192 -10
  25. data/lib/sentdm/models/profile_delete_params.rb +21 -14
  26. data/lib/sentdm/models/profile_detail.rb +144 -95
  27. data/lib/sentdm/models/profile_list_params.rb +7 -1
  28. data/lib/sentdm/models/profile_retrieve_params.rb +13 -1
  29. data/lib/sentdm/models/profile_update_params.rb +146 -19
  30. data/lib/sentdm/models/template_create_params.rb +17 -10
  31. data/lib/sentdm/models/template_delete_params.rb +20 -6
  32. data/lib/sentdm/models/template_list_params.rb +18 -2
  33. data/lib/sentdm/models/template_retrieve_params.rb +13 -1
  34. data/lib/sentdm/models/template_update_params.rb +24 -10
  35. data/lib/sentdm/models/template_variable.rb +7 -1
  36. data/lib/sentdm/models/user_invite_params.rb +13 -6
  37. data/lib/sentdm/models/user_list_params.rb +7 -1
  38. data/lib/sentdm/models/user_remove_params.rb +20 -13
  39. data/lib/sentdm/models/user_retrieve_params.rb +13 -1
  40. data/lib/sentdm/models/user_update_role_params.rb +19 -13
  41. data/lib/sentdm/models/webhook_create_params.rb +13 -6
  42. data/lib/sentdm/models/webhook_delete_params.rb +13 -1
  43. data/lib/sentdm/models/webhook_list_event_types_params.rb +7 -1
  44. data/lib/sentdm/models/webhook_list_events_params.rb +13 -1
  45. data/lib/sentdm/models/webhook_list_params.rb +7 -1
  46. data/lib/sentdm/models/webhook_retrieve_params.rb +13 -1
  47. data/lib/sentdm/models/webhook_rotate_secret_params.rb +13 -1
  48. data/lib/sentdm/models/webhook_test_params.rb +20 -6
  49. data/lib/sentdm/models/webhook_toggle_status_params.rb +20 -6
  50. data/lib/sentdm/models/webhook_update_params.rb +20 -6
  51. data/lib/sentdm/models.rb +0 -12
  52. data/lib/sentdm/resources/brands/campaigns.rb +0 -128
  53. data/lib/sentdm/resources/brands.rb +0 -110
  54. data/lib/sentdm/resources/contacts.rb +44 -19
  55. data/lib/sentdm/resources/lookup.rb +0 -21
  56. data/lib/sentdm/resources/me.rb +25 -5
  57. data/lib/sentdm/resources/messages.rb +25 -8
  58. data/lib/sentdm/resources/profiles.rb +117 -32
  59. data/lib/sentdm/resources/templates.rb +48 -23
  60. data/lib/sentdm/resources/users.rb +41 -23
  61. data/lib/sentdm/resources/webhooks.rb +93 -32
  62. data/lib/sentdm/version.rb +1 -1
  63. data/lib/sentdm.rb +1 -14
  64. data/rbi/sentdm/client.rbi +7 -0
  65. data/rbi/sentdm/internal/util.rbi +20 -0
  66. data/rbi/sentdm/models/api_meta.rbi +4 -18
  67. data/rbi/sentdm/models/brand_data.rbi +326 -203
  68. data/rbi/sentdm/models/brand_with_kyc.rbi +334 -216
  69. data/rbi/sentdm/models/brands/tcr_campaign_with_use_cases.rbi +6 -8
  70. data/rbi/sentdm/models/contact_create_params.rbi +19 -10
  71. data/rbi/sentdm/models/contact_delete_params.rbi +15 -0
  72. data/rbi/sentdm/models/contact_list_params.rbi +11 -0
  73. data/rbi/sentdm/models/contact_retrieve_params.rbi +24 -5
  74. data/rbi/sentdm/models/contact_update_params.rbi +25 -10
  75. data/rbi/sentdm/models/me_retrieve_params.rbi +16 -5
  76. data/rbi/sentdm/models/me_retrieve_response.rbi +316 -16
  77. data/rbi/sentdm/models/message_retrieve_activities_params.rbi +24 -5
  78. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +18 -6
  79. data/rbi/sentdm/models/message_retrieve_status_params.rbi +24 -5
  80. data/rbi/sentdm/models/message_retrieve_status_response.rbi +6 -0
  81. data/rbi/sentdm/models/message_send_params.rbi +22 -13
  82. data/rbi/sentdm/models/mutation_request.rbi +10 -10
  83. data/rbi/sentdm/models/profile_complete_params.rbi +25 -10
  84. data/rbi/sentdm/models/profile_create_params.rbi +323 -15
  85. data/rbi/sentdm/models/profile_delete_params.rbi +38 -20
  86. data/rbi/sentdm/models/profile_detail.rbi +184 -128
  87. data/rbi/sentdm/models/profile_list_params.rbi +16 -5
  88. data/rbi/sentdm/models/profile_retrieve_params.rbi +24 -5
  89. data/rbi/sentdm/models/profile_update_params.rbi +233 -26
  90. data/rbi/sentdm/models/template_create_params.rbi +22 -13
  91. data/rbi/sentdm/models/template_delete_params.rbi +25 -10
  92. data/rbi/sentdm/models/template_list_params.rbi +19 -0
  93. data/rbi/sentdm/models/template_retrieve_params.rbi +24 -5
  94. data/rbi/sentdm/models/template_update_params.rbi +28 -13
  95. data/rbi/sentdm/models/template_variable.rbi +6 -0
  96. data/rbi/sentdm/models/user_invite_params.rbi +19 -10
  97. data/rbi/sentdm/models/user_list_params.rbi +16 -5
  98. data/rbi/sentdm/models/user_remove_params.rbi +37 -19
  99. data/rbi/sentdm/models/user_retrieve_params.rbi +24 -5
  100. data/rbi/sentdm/models/user_update_role_params.rbi +25 -21
  101. data/rbi/sentdm/models/webhook_create_params.rbi +19 -10
  102. data/rbi/sentdm/models/webhook_delete_params.rbi +24 -5
  103. data/rbi/sentdm/models/webhook_list_event_types_params.rbi +16 -5
  104. data/rbi/sentdm/models/webhook_list_events_params.rbi +21 -1
  105. data/rbi/sentdm/models/webhook_list_params.rbi +9 -0
  106. data/rbi/sentdm/models/webhook_retrieve_params.rbi +24 -5
  107. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +20 -1
  108. data/rbi/sentdm/models/webhook_test_params.rbi +25 -10
  109. data/rbi/sentdm/models/webhook_toggle_status_params.rbi +25 -10
  110. data/rbi/sentdm/models/webhook_update_params.rbi +25 -10
  111. data/rbi/sentdm/models.rbi +0 -12
  112. data/rbi/sentdm/resources/brands/campaigns.rbi +0 -94
  113. data/rbi/sentdm/resources/brands.rbi +0 -78
  114. data/rbi/sentdm/resources/contacts.rbi +38 -12
  115. data/rbi/sentdm/resources/lookup.rbi +0 -12
  116. data/rbi/sentdm/resources/me.rbi +26 -7
  117. data/rbi/sentdm/resources/messages.rbi +18 -4
  118. data/rbi/sentdm/resources/profiles.rbi +179 -38
  119. data/rbi/sentdm/resources/templates.rbi +48 -19
  120. data/rbi/sentdm/resources/users.rbi +48 -25
  121. data/rbi/sentdm/resources/webhooks.rbi +93 -20
  122. data/sig/sentdm/internal/util.rbs +10 -0
  123. data/sig/sentdm/models/api_meta.rbs +2 -16
  124. data/sig/sentdm/models/brand_data.rbs +188 -142
  125. data/sig/sentdm/models/brand_with_kyc.rbs +184 -133
  126. data/sig/sentdm/models/contact_create_params.rbs +16 -5
  127. data/sig/sentdm/models/contact_delete_params.rbs +15 -1
  128. data/sig/sentdm/models/contact_list_params.rbs +8 -1
  129. data/sig/sentdm/models/contact_retrieve_params.rbs +18 -3
  130. data/sig/sentdm/models/contact_update_params.rbs +18 -6
  131. data/sig/sentdm/models/me_retrieve_params.rbs +14 -3
  132. data/sig/sentdm/models/me_retrieve_response.rbs +134 -7
  133. data/sig/sentdm/models/message_retrieve_activities_params.rbs +18 -3
  134. data/sig/sentdm/models/message_retrieve_activities_response.rbs +9 -4
  135. data/sig/sentdm/models/message_retrieve_status_params.rbs +18 -3
  136. data/sig/sentdm/models/message_retrieve_status_response.rbs +5 -0
  137. data/sig/sentdm/models/message_send_params.rbs +15 -8
  138. data/sig/sentdm/models/mutation_request.rbs +5 -5
  139. data/sig/sentdm/models/profile_complete_params.rbs +21 -5
  140. data/sig/sentdm/models/profile_create_params.rbs +111 -7
  141. data/sig/sentdm/models/profile_delete_params.rbs +23 -9
  142. data/sig/sentdm/models/profile_detail.rbs +105 -84
  143. data/sig/sentdm/models/profile_list_params.rbs +14 -3
  144. data/sig/sentdm/models/profile_retrieve_params.rbs +18 -3
  145. data/sig/sentdm/models/profile_update_params.rbs +87 -13
  146. data/sig/sentdm/models/template_create_params.rbs +15 -8
  147. data/sig/sentdm/models/template_delete_params.rbs +20 -5
  148. data/sig/sentdm/models/template_list_params.rbs +13 -1
  149. data/sig/sentdm/models/template_retrieve_params.rbs +18 -3
  150. data/sig/sentdm/models/template_update_params.rbs +20 -8
  151. data/sig/sentdm/models/template_variable.rbs +5 -0
  152. data/sig/sentdm/models/user_invite_params.rbs +13 -6
  153. data/sig/sentdm/models/user_list_params.rbs +14 -3
  154. data/sig/sentdm/models/user_remove_params.rbs +23 -9
  155. data/sig/sentdm/models/user_retrieve_params.rbs +18 -3
  156. data/sig/sentdm/models/user_update_role_params.rbs +18 -13
  157. data/sig/sentdm/models/webhook_create_params.rbs +13 -6
  158. data/sig/sentdm/models/webhook_delete_params.rbs +18 -3
  159. data/sig/sentdm/models/webhook_list_event_types_params.rbs +13 -3
  160. data/sig/sentdm/models/webhook_list_events_params.rbs +17 -1
  161. data/sig/sentdm/models/webhook_list_params.rbs +13 -1
  162. data/sig/sentdm/models/webhook_retrieve_params.rbs +18 -3
  163. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +16 -1
  164. data/sig/sentdm/models/webhook_test_params.rbs +21 -5
  165. data/sig/sentdm/models/webhook_toggle_status_params.rbs +21 -5
  166. data/sig/sentdm/models/webhook_update_params.rbs +18 -6
  167. data/sig/sentdm/models.rbs +0 -12
  168. data/sig/sentdm/resources/brands/campaigns.rbs +0 -29
  169. data/sig/sentdm/resources/brands.rbs +0 -25
  170. data/sig/sentdm/resources/contacts.rbs +7 -2
  171. data/sig/sentdm/resources/lookup.rbs +0 -5
  172. data/sig/sentdm/resources/me.rbs +1 -0
  173. data/sig/sentdm/resources/messages.rbs +4 -1
  174. data/sig/sentdm/resources/profiles.rbs +19 -8
  175. data/sig/sentdm/resources/templates.rbs +9 -3
  176. data/sig/sentdm/resources/users.rbs +10 -7
  177. data/sig/sentdm/resources/webhooks.rbs +18 -5
  178. metadata +2 -41
  179. data/lib/sentdm/models/api_response_brand_with_kyc.rb +0 -43
  180. data/lib/sentdm/models/brand_create_params.rb +0 -41
  181. data/lib/sentdm/models/brand_delete_params.rb +0 -27
  182. data/lib/sentdm/models/brand_list_params.rb +0 -14
  183. data/lib/sentdm/models/brand_list_response.rb +0 -43
  184. data/lib/sentdm/models/brand_update_params.rb +0 -41
  185. data/lib/sentdm/models/brands/campaign_create_params.rb +0 -43
  186. data/lib/sentdm/models/brands/campaign_delete_params.rb +0 -36
  187. data/lib/sentdm/models/brands/campaign_list_params.rb +0 -16
  188. data/lib/sentdm/models/brands/campaign_list_response.rb +0 -47
  189. data/lib/sentdm/models/brands/campaign_update_params.rb +0 -50
  190. data/lib/sentdm/models/lookup_retrieve_phone_info_params.rb +0 -14
  191. data/lib/sentdm/models/lookup_retrieve_phone_info_response.rb +0 -104
  192. data/rbi/sentdm/models/api_response_brand_with_kyc.rbi +0 -74
  193. data/rbi/sentdm/models/brand_create_params.rbi +0 -68
  194. data/rbi/sentdm/models/brand_delete_params.rbi +0 -62
  195. data/rbi/sentdm/models/brand_list_params.rbi +0 -27
  196. data/rbi/sentdm/models/brand_list_response.rbi +0 -71
  197. data/rbi/sentdm/models/brand_update_params.rbi +0 -68
  198. data/rbi/sentdm/models/brands/campaign_create_params.rbi +0 -73
  199. data/rbi/sentdm/models/brands/campaign_delete_params.rbi +0 -78
  200. data/rbi/sentdm/models/brands/campaign_list_params.rbi +0 -29
  201. data/rbi/sentdm/models/brands/campaign_list_response.rbi +0 -82
  202. data/rbi/sentdm/models/brands/campaign_update_params.rbi +0 -79
  203. data/rbi/sentdm/models/lookup_retrieve_phone_info_params.rbi +0 -30
  204. data/rbi/sentdm/models/lookup_retrieve_phone_info_response.rbi +0 -183
  205. data/sig/sentdm/models/api_response_brand_with_kyc.rbs +0 -39
  206. data/sig/sentdm/models/brand_create_params.rbs +0 -36
  207. data/sig/sentdm/models/brand_delete_params.rbs +0 -32
  208. data/sig/sentdm/models/brand_list_params.rbs +0 -14
  209. data/sig/sentdm/models/brand_list_response.rbs +0 -39
  210. data/sig/sentdm/models/brand_update_params.rbs +0 -36
  211. data/sig/sentdm/models/brands/campaign_create_params.rbs +0 -42
  212. data/sig/sentdm/models/brands/campaign_delete_params.rbs +0 -38
  213. data/sig/sentdm/models/brands/campaign_list_params.rbs +0 -17
  214. data/sig/sentdm/models/brands/campaign_list_response.rbs +0 -41
  215. data/sig/sentdm/models/brands/campaign_update_params.rbs +0 -47
  216. data/sig/sentdm/models/lookup_retrieve_phone_info_params.rbs +0 -15
  217. data/sig/sentdm/models/lookup_retrieve_phone_info_response.rbs +0 -102
@@ -19,13 +19,35 @@ module Sentdm
19
19
  # @return [Boolean, nil]
20
20
  optional :allow_template_sharing, Sentdm::Internal::Type::Boolean
21
21
 
22
+ # @!attribute billing_contact
23
+ # Billing contact for this profile. Required when billing_model is "profile" or
24
+ # "profile_and_organization". Identifies who receives invoices and who is
25
+ # responsible for payment.
26
+ #
27
+ # @return [Sentdm::Models::ProfileCreateParams::BillingContact, nil]
28
+ optional :billing_contact, -> { Sentdm::ProfileCreateParams::BillingContact }, nil?: true
29
+
22
30
  # @!attribute billing_model
23
31
  # Billing model: profile, organization, or profile_and_organization (default:
24
- # profile)
32
+ # profile).
33
+ #
34
+ # - "organization": the organization's billing details are used; no profile-level
35
+ # billing info needed.
36
+ # - "profile": the profile is billed independently; billing_contact is required.
37
+ # - "profile_and_organization": the profile is billed first with the organization
38
+ # as fallback; billing_contact is required.
25
39
  #
26
40
  # @return [String, nil]
27
41
  optional :billing_model, String, nil?: true
28
42
 
43
+ # @!attribute brand
44
+ # Brand and KYC information for this profile (optional). When provided, creates
45
+ # the brand associated with this profile. Cannot be set when inherit_tcr_brand is
46
+ # true.
47
+ #
48
+ # @return [Sentdm::Models::BrandData, nil]
49
+ optional :brand, -> { Sentdm::BrandData }, nil?: true
50
+
29
51
  # @!attribute description
30
52
  # Profile description (optional)
31
53
  #
@@ -68,25 +90,52 @@ module Sentdm
68
90
  # @return [String, nil]
69
91
  optional :name, String
70
92
 
93
+ # @!attribute payment_details
94
+ # Payment card details for this profile (optional). Accepted when billing_model is
95
+ # "profile" or "profile_and_organization". Not persisted on our servers —
96
+ # forwarded to the payment processor.
97
+ #
98
+ # @return [Sentdm::Models::ProfileCreateParams::PaymentDetails, nil]
99
+ optional :payment_details, -> { Sentdm::ProfileCreateParams::PaymentDetails }, nil?: true
100
+
101
+ # @!attribute sandbox
102
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
103
+ # for testing integrations without actual execution
104
+ #
105
+ # @return [Boolean, nil]
106
+ optional :sandbox, Sentdm::Internal::Type::Boolean
107
+
71
108
  # @!attribute short_name
72
- # Profile short name/abbreviation (optional)
109
+ # Profile short name/abbreviation (optional). Must be 3–11 characters, contain
110
+ # only letters, numbers, and spaces, and include at least one letter. Example:
111
+ # "SALES", "Mkt 2", "Support1".
73
112
  #
74
113
  # @return [String, nil]
75
114
  optional :short_name, String, nil?: true
76
115
 
77
- # @!attribute test_mode
78
- # Test mode flag - when true, the operation is simulated without side effects
79
- # Useful for testing integrations without actual execution
116
+ # @!attribute whatsapp_business_account
117
+ # Direct WhatsApp Business Account credentials for this profile. When provided,
118
+ # the profile uses its own WhatsApp Business Account instead of inheriting from
119
+ # the organization. When omitted, the profile inherits the organization's WhatsApp
120
+ # Business Account (requires the organization to have completed WhatsApp Embedded
121
+ # Signup).
80
122
  #
81
- # @return [Boolean, nil]
82
- optional :test_mode, Sentdm::Internal::Type::Boolean
123
+ # @return [Sentdm::Models::ProfileCreateParams::WhatsappBusinessAccount, nil]
124
+ optional :whatsapp_business_account,
125
+ -> { Sentdm::ProfileCreateParams::WhatsappBusinessAccount },
126
+ nil?: true
83
127
 
84
128
  # @!attribute idempotency_key
85
129
  #
86
130
  # @return [String, nil]
87
131
  optional :idempotency_key, String
88
132
 
89
- # @!method initialize(allow_contact_sharing: nil, allow_template_sharing: nil, billing_model: nil, description: nil, icon: nil, inherit_contacts: nil, inherit_tcr_brand: nil, inherit_tcr_campaign: nil, inherit_templates: nil, name: nil, short_name: nil, test_mode: nil, idempotency_key: nil, request_options: {})
133
+ # @!attribute x_profile_id
134
+ #
135
+ # @return [String, nil]
136
+ optional :x_profile_id, String
137
+
138
+ # @!method initialize(allow_contact_sharing: nil, allow_template_sharing: nil, billing_contact: nil, billing_model: nil, brand: nil, description: nil, icon: nil, inherit_contacts: nil, inherit_tcr_brand: nil, inherit_tcr_campaign: nil, inherit_templates: nil, name: nil, payment_details: nil, sandbox: nil, short_name: nil, whatsapp_business_account: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
90
139
  # Some parameter documentations has been truncated, see
91
140
  # {Sentdm::Models::ProfileCreateParams} for more details.
92
141
  #
@@ -94,8 +143,12 @@ module Sentdm
94
143
  #
95
144
  # @param allow_template_sharing [Boolean] Whether templates are shared across profiles (default: false)
96
145
  #
146
+ # @param billing_contact [Sentdm::Models::ProfileCreateParams::BillingContact, nil] Billing contact for this profile. Required when billing_model is "profile" or "p
147
+ #
97
148
  # @param billing_model [String, nil] Billing model: profile, organization, or profile_and_organization (default: prof
98
149
  #
150
+ # @param brand [Sentdm::Models::BrandData, nil] Brand and KYC information for this profile (optional).
151
+ #
99
152
  # @param description [String, nil] Profile description (optional)
100
153
  #
101
154
  # @param icon [String, nil] Profile icon URL (optional)
@@ -110,13 +163,142 @@ module Sentdm
110
163
  #
111
164
  # @param name [String] Profile name (required)
112
165
  #
113
- # @param short_name [String, nil] Profile short name/abbreviation (optional)
166
+ # @param payment_details [Sentdm::Models::ProfileCreateParams::PaymentDetails, nil] Payment card details for this profile (optional).
167
+ #
168
+ # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
114
169
  #
115
- # @param test_mode [Boolean] Test mode flag - when true, the operation is simulated without side effects
170
+ # @param short_name [String, nil] Profile short name/abbreviation (optional). Must be 3–11 characters, contain onl
171
+ #
172
+ # @param whatsapp_business_account [Sentdm::Models::ProfileCreateParams::WhatsappBusinessAccount, nil] Direct WhatsApp Business Account credentials for this profile.
116
173
  #
117
174
  # @param idempotency_key [String]
118
175
  #
176
+ # @param x_profile_id [String]
177
+ #
119
178
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
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
+ class WhatsappBusinessAccount < Sentdm::Internal::Type::BaseModel
263
+ # @!attribute access_token
264
+ # System User access token with whatsapp_business_messaging and
265
+ # whatsapp_business_management permissions. This value is stored securely and
266
+ # never returned in API responses.
267
+ #
268
+ # @return [String]
269
+ required :access_token, String
270
+
271
+ # @!attribute waba_id
272
+ # WhatsApp Business Account ID from Meta Business Manager
273
+ #
274
+ # @return [String]
275
+ required :waba_id, String
276
+
277
+ # @!attribute phone_number_id
278
+ # Phone Number ID of an existing number already registered under this WABA in Meta
279
+ # Business Manager. Optional — when omitted, a number will be provisioned from our
280
+ # pool and registered in the WABA during the onboarding flow. When provided, the
281
+ # number must already exist in the WABA.
282
+ #
283
+ # @return [String, nil]
284
+ optional :phone_number_id, String, nil?: true
285
+
286
+ # @!method initialize(access_token:, waba_id:, phone_number_id: nil)
287
+ # Some parameter documentations has been truncated, see
288
+ # {Sentdm::Models::ProfileCreateParams::WhatsappBusinessAccount} for more details.
289
+ #
290
+ # Direct WhatsApp Business Account credentials for this profile. When provided,
291
+ # the profile uses its own WhatsApp Business Account instead of inheriting from
292
+ # the organization. When omitted, the profile inherits the organization's WhatsApp
293
+ # Business Account (requires the organization to have completed WhatsApp Embedded
294
+ # Signup).
295
+ #
296
+ # @param access_token [String] System User access token with whatsapp_business_messaging and
297
+ #
298
+ # @param waba_id [String] WhatsApp Business Account ID from Meta Business Manager
299
+ #
300
+ # @param phone_number_id [String, nil] Phone Number ID of an existing number already registered under this WABA in Meta
301
+ end
120
302
  end
121
303
  end
122
304
  end
@@ -7,28 +7,35 @@ module Sentdm
7
7
  extend Sentdm::Internal::Type::RequestParameters::Converter
8
8
  include Sentdm::Internal::Type::RequestParameters
9
9
 
10
- # @!attribute body_profile_id
11
- # Profile ID from route parameter
10
+ # @!attribute profile_id
12
11
  #
13
- # @return [String, nil]
14
- optional :body_profile_id, String, api_name: :profile_id
12
+ # @return [String]
13
+ required :profile_id, String
15
14
 
16
- # @!attribute test_mode
17
- # Test mode flag - when true, the operation is simulated without side effects
18
- # Useful for testing integrations without actual execution
15
+ # @!attribute body
16
+ # Request to delete a profile
19
17
  #
20
- # @return [Boolean, nil]
21
- optional :test_mode, Sentdm::Internal::Type::Boolean
18
+ # @return [Sentdm::Models::ProfileDeleteParams::Body]
19
+ required :body, -> { Sentdm::ProfileDeleteParams::Body }
22
20
 
23
- # @!method initialize(body_profile_id: nil, test_mode: nil, request_options: {})
24
- # Some parameter documentations has been truncated, see
25
- # {Sentdm::Models::ProfileDeleteParams} for more details.
21
+ # @!attribute x_profile_id
26
22
  #
27
- # @param body_profile_id [String] Profile ID from route parameter
23
+ # @return [String, nil]
24
+ optional :x_profile_id, String
25
+
26
+ # @!method initialize(profile_id:, body:, x_profile_id: nil, request_options: {})
27
+ # @param profile_id [String]
28
28
  #
29
- # @param test_mode [Boolean] Test mode flag - when true, the operation is simulated without side effects
29
+ # @param body [Sentdm::Models::ProfileDeleteParams::Body] Request to delete a profile
30
+ #
31
+ # @param x_profile_id [String]
30
32
  #
31
33
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
34
+
35
+ class Body < Sentdm::Models::MutationRequest
36
+ # @!method initialize
37
+ # Request to delete a profile
38
+ end
32
39
  end
33
40
  end
34
41
  end
@@ -9,6 +9,44 @@ module Sentdm
9
9
  # @return [String, nil]
10
10
  optional :id, String
11
11
 
12
+ # @!attribute allow_contact_sharing
13
+ # Whether contacts are shared across profiles in the organization
14
+ #
15
+ # @return [Boolean, nil]
16
+ optional :allow_contact_sharing, Sentdm::Internal::Type::Boolean
17
+
18
+ # @!attribute allow_number_change_during_onboarding
19
+ # Whether number changes are allowed during onboarding
20
+ #
21
+ # @return [Boolean, nil]
22
+ optional :allow_number_change_during_onboarding, Sentdm::Internal::Type::Boolean, nil?: true
23
+
24
+ # @!attribute allow_template_sharing
25
+ # Whether templates are shared across profiles in the organization
26
+ #
27
+ # @return [Boolean, nil]
28
+ optional :allow_template_sharing, Sentdm::Internal::Type::Boolean
29
+
30
+ # @!attribute billing_contact
31
+ # Billing contact for this profile. Present when billing_model is "profile" or
32
+ # "profile_and_organization".
33
+ #
34
+ # @return [Sentdm::Models::ProfileDetail::BillingContact, nil]
35
+ optional :billing_contact, -> { Sentdm::ProfileDetail::BillingContact }, nil?: true
36
+
37
+ # @!attribute billing_model
38
+ # Billing model: profile, organization, or profile_and_organization
39
+ #
40
+ # @return [String, nil]
41
+ optional :billing_model, String
42
+
43
+ # @!attribute brand
44
+ # Brand associated with this profile. Null if no brand has been configured yet.
45
+ # Includes KYC information and TCR registration status.
46
+ #
47
+ # @return [Sentdm::Models::BrandWithKYC, nil]
48
+ optional :brand, -> { Sentdm::BrandWithKYC }, nil?: true
49
+
12
50
  # @!attribute created_at
13
51
  # When the profile was created
14
52
  #
@@ -33,6 +71,30 @@ module Sentdm
33
71
  # @return [String, nil]
34
72
  optional :icon, String, nil?: true
35
73
 
74
+ # @!attribute inherit_contacts
75
+ # Whether this profile inherits contacts from the organization
76
+ #
77
+ # @return [Boolean, nil]
78
+ optional :inherit_contacts, Sentdm::Internal::Type::Boolean
79
+
80
+ # @!attribute inherit_tcr_brand
81
+ # Whether this profile inherits TCR brand from the organization
82
+ #
83
+ # @return [Boolean, nil]
84
+ optional :inherit_tcr_brand, Sentdm::Internal::Type::Boolean
85
+
86
+ # @!attribute inherit_tcr_campaign
87
+ # Whether this profile inherits TCR campaign from the organization
88
+ #
89
+ # @return [Boolean, nil]
90
+ optional :inherit_tcr_campaign, Sentdm::Internal::Type::Boolean
91
+
92
+ # @!attribute inherit_templates
93
+ # Whether this profile inherits templates from the organization
94
+ #
95
+ # @return [Boolean, nil]
96
+ optional :inherit_templates, Sentdm::Internal::Type::Boolean
97
+
36
98
  # @!attribute name
37
99
  # Profile name
38
100
  #
@@ -45,14 +107,27 @@ module Sentdm
45
107
  # @return [String, nil]
46
108
  optional :organization_id, String, nil?: true
47
109
 
48
- # @!attribute settings
49
- # Profile configuration settings
110
+ # @!attribute sending_phone_number
111
+ # Direct SMS phone number
112
+ #
113
+ # @return [String, nil]
114
+ optional :sending_phone_number, String, nil?: true
115
+
116
+ # @!attribute sending_phone_number_profile_id
117
+ # Reference to another profile for SMS/Telnyx configuration
118
+ #
119
+ # @return [String, nil]
120
+ optional :sending_phone_number_profile_id, String, nil?: true
121
+
122
+ # @!attribute sending_whatsapp_number_profile_id
123
+ # Reference to another profile for WhatsApp configuration
50
124
  #
51
- # @return [Sentdm::Models::ProfileDetail::Settings, nil]
52
- optional :settings, -> { Sentdm::ProfileDetail::Settings }
125
+ # @return [String, nil]
126
+ optional :sending_whatsapp_number_profile_id, String, nil?: true
53
127
 
54
128
  # @!attribute short_name
55
- # Profile short name (abbreviation)
129
+ # Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
130
+ # only, with at least one letter.
56
131
  #
57
132
  # @return [String, nil]
58
133
  optional :short_name, String, nil?: true
@@ -69,11 +144,39 @@ module Sentdm
69
144
  # @return [Time, nil]
70
145
  optional :updated_at, Time, nil?: true
71
146
 
72
- # @!method initialize(id: nil, created_at: nil, description: nil, email: nil, icon: nil, name: nil, organization_id: nil, settings: nil, short_name: nil, status: nil, updated_at: nil)
147
+ # @!attribute waba_id
148
+ # WhatsApp Business Account ID associated with this profile. Present whether the
149
+ # WABA is inherited from the organization or configured directly.
150
+ #
151
+ # @return [String, nil]
152
+ optional :waba_id, String, nil?: true
153
+
154
+ # @!attribute whatsapp_phone_number
155
+ # Direct WhatsApp phone number
156
+ #
157
+ # @return [String, nil]
158
+ optional :whatsapp_phone_number, String, nil?: true
159
+
160
+ # @!method initialize(id: nil, allow_contact_sharing: nil, allow_number_change_during_onboarding: nil, allow_template_sharing: nil, billing_contact: nil, billing_model: nil, brand: nil, created_at: nil, description: nil, email: nil, icon: nil, inherit_contacts: nil, inherit_tcr_brand: nil, inherit_tcr_campaign: nil, inherit_templates: nil, name: nil, organization_id: nil, sending_phone_number: nil, sending_phone_number_profile_id: nil, sending_whatsapp_number_profile_id: nil, short_name: nil, status: nil, updated_at: nil, waba_id: nil, whatsapp_phone_number: nil)
161
+ # Some parameter documentations has been truncated, see
162
+ # {Sentdm::Models::ProfileDetail} for more details.
163
+ #
73
164
  # Detailed profile response for v3 API
74
165
  #
75
166
  # @param id [String] Profile unique identifier
76
167
  #
168
+ # @param allow_contact_sharing [Boolean] Whether contacts are shared across profiles in the organization
169
+ #
170
+ # @param allow_number_change_during_onboarding [Boolean, nil] Whether number changes are allowed during onboarding
171
+ #
172
+ # @param allow_template_sharing [Boolean] Whether templates are shared across profiles in the organization
173
+ #
174
+ # @param billing_contact [Sentdm::Models::ProfileDetail::BillingContact, nil] Billing contact for this profile. Present when billing_model is "profile" or "pr
175
+ #
176
+ # @param billing_model [String] Billing model: profile, organization, or profile_and_organization
177
+ #
178
+ # @param brand [Sentdm::Models::BrandWithKYC, nil] Brand associated with this profile. Null if no brand has been configured yet.
179
+ #
77
180
  # @param created_at [Time] When the profile was created
78
181
  #
79
182
  # @param description [String, nil] Profile description
@@ -82,118 +185,64 @@ module Sentdm
82
185
  #
83
186
  # @param icon [String, nil] Profile icon URL
84
187
  #
188
+ # @param inherit_contacts [Boolean] Whether this profile inherits contacts from the organization
189
+ #
190
+ # @param inherit_tcr_brand [Boolean] Whether this profile inherits TCR brand from the organization
191
+ #
192
+ # @param inherit_tcr_campaign [Boolean] Whether this profile inherits TCR campaign from the organization
193
+ #
194
+ # @param inherit_templates [Boolean] Whether this profile inherits templates from the organization
195
+ #
85
196
  # @param name [String] Profile name
86
197
  #
87
198
  # @param organization_id [String, nil] Parent organization ID
88
199
  #
89
- # @param settings [Sentdm::Models::ProfileDetail::Settings] Profile configuration settings
200
+ # @param sending_phone_number [String, nil] Direct SMS phone number
201
+ #
202
+ # @param sending_phone_number_profile_id [String, nil] Reference to another profile for SMS/Telnyx configuration
203
+ #
204
+ # @param sending_whatsapp_number_profile_id [String, nil] Reference to another profile for WhatsApp configuration
90
205
  #
91
- # @param short_name [String, nil] Profile short name (abbreviation)
206
+ # @param short_name [String, nil] Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces o
92
207
  #
93
208
  # @param status [String] Profile setup status: incomplete, pending_review, approved, rejected
94
209
  #
95
210
  # @param updated_at [Time, nil] When the profile was last updated
211
+ #
212
+ # @param waba_id [String, nil] WhatsApp Business Account ID associated with this profile.
213
+ #
214
+ # @param whatsapp_phone_number [String, nil] Direct WhatsApp phone number
96
215
 
97
- # @see Sentdm::Models::ProfileDetail#settings
98
- class Settings < Sentdm::Internal::Type::BaseModel
99
- # @!attribute allow_contact_sharing
100
- # Whether contacts are shared across profiles in the organization
101
- #
102
- # @return [Boolean, nil]
103
- optional :allow_contact_sharing, Sentdm::Internal::Type::Boolean
104
-
105
- # @!attribute allow_number_change_during_onboarding
106
- # Whether number changes are allowed during onboarding
107
- #
108
- # @return [Boolean, nil]
109
- optional :allow_number_change_during_onboarding, Sentdm::Internal::Type::Boolean, nil?: true
110
-
111
- # @!attribute allow_template_sharing
112
- # Whether templates are shared across profiles in the organization
113
- #
114
- # @return [Boolean, nil]
115
- optional :allow_template_sharing, Sentdm::Internal::Type::Boolean
116
-
117
- # @!attribute billing_model
118
- # Billing model: profile, organization, or profile_and_organization
119
- #
120
- # @return [String, nil]
121
- optional :billing_model, String
122
-
123
- # @!attribute inherit_contacts
124
- # Whether this profile inherits contacts from the organization
125
- #
126
- # @return [Boolean, nil]
127
- optional :inherit_contacts, Sentdm::Internal::Type::Boolean
128
-
129
- # @!attribute inherit_tcr_brand
130
- # Whether this profile inherits TCR brand from the organization
131
- #
132
- # @return [Boolean, nil]
133
- optional :inherit_tcr_brand, Sentdm::Internal::Type::Boolean
134
-
135
- # @!attribute inherit_tcr_campaign
136
- # Whether this profile inherits TCR campaign from the organization
137
- #
138
- # @return [Boolean, nil]
139
- optional :inherit_tcr_campaign, Sentdm::Internal::Type::Boolean
140
-
141
- # @!attribute inherit_templates
142
- # Whether this profile inherits templates from the organization
143
- #
144
- # @return [Boolean, nil]
145
- optional :inherit_templates, Sentdm::Internal::Type::Boolean
146
-
147
- # @!attribute sending_phone_number
148
- # Direct SMS phone number
216
+ # @see Sentdm::Models::ProfileDetail#billing_contact
217
+ class BillingContact < Sentdm::Internal::Type::BaseModel
218
+ # @!attribute address
149
219
  #
150
220
  # @return [String, nil]
151
- optional :sending_phone_number, String, nil?: true
221
+ optional :address, String, nil?: true
152
222
 
153
- # @!attribute sending_phone_number_profile_id
154
- # Reference to another profile for SMS/Telnyx configuration
223
+ # @!attribute email
155
224
  #
156
225
  # @return [String, nil]
157
- optional :sending_phone_number_profile_id, String, nil?: true
226
+ optional :email, String, nil?: true
158
227
 
159
- # @!attribute sending_whatsapp_number_profile_id
160
- # Reference to another profile for WhatsApp configuration
228
+ # @!attribute name
161
229
  #
162
230
  # @return [String, nil]
163
- optional :sending_whatsapp_number_profile_id, String, nil?: true
231
+ optional :name, String, nil?: true
164
232
 
165
- # @!attribute whatsapp_phone_number
166
- # Direct WhatsApp phone number
233
+ # @!attribute phone
167
234
  #
168
235
  # @return [String, nil]
169
- optional :whatsapp_phone_number, String, nil?: true
236
+ optional :phone, String, nil?: true
170
237
 
171
- # @!method initialize(allow_contact_sharing: nil, allow_number_change_during_onboarding: nil, allow_template_sharing: nil, billing_model: nil, inherit_contacts: nil, inherit_tcr_brand: nil, inherit_tcr_campaign: nil, inherit_templates: nil, sending_phone_number: nil, sending_phone_number_profile_id: nil, sending_whatsapp_number_profile_id: nil, whatsapp_phone_number: nil)
172
- # Profile configuration settings
173
- #
174
- # @param allow_contact_sharing [Boolean] Whether contacts are shared across profiles in the organization
175
- #
176
- # @param allow_number_change_during_onboarding [Boolean, nil] Whether number changes are allowed during onboarding
177
- #
178
- # @param allow_template_sharing [Boolean] Whether templates are shared across profiles in the organization
179
- #
180
- # @param billing_model [String] Billing model: profile, organization, or profile_and_organization
181
- #
182
- # @param inherit_contacts [Boolean] Whether this profile inherits contacts from the organization
183
- #
184
- # @param inherit_tcr_brand [Boolean] Whether this profile inherits TCR brand from the organization
185
- #
186
- # @param inherit_tcr_campaign [Boolean] Whether this profile inherits TCR campaign from the organization
187
- #
188
- # @param inherit_templates [Boolean] Whether this profile inherits templates from the organization
189
- #
190
- # @param sending_phone_number [String, nil] Direct SMS phone number
191
- #
192
- # @param sending_phone_number_profile_id [String, nil] Reference to another profile for SMS/Telnyx configuration
193
- #
194
- # @param sending_whatsapp_number_profile_id [String, nil] Reference to another profile for WhatsApp configuration
238
+ # @!method initialize(address: nil, email: nil, name: nil, phone: nil)
239
+ # Billing contact for this profile. Present when billing_model is "profile" or
240
+ # "profile_and_organization".
195
241
  #
196
- # @param whatsapp_phone_number [String, nil] Direct WhatsApp phone number
242
+ # @param address [String, nil]
243
+ # @param email [String, nil]
244
+ # @param name [String, nil]
245
+ # @param phone [String, nil]
197
246
  end
198
247
  end
199
248
  end
@@ -7,7 +7,13 @@ module Sentdm
7
7
  extend Sentdm::Internal::Type::RequestParameters::Converter
8
8
  include Sentdm::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute x_profile_id
11
+ #
12
+ # @return [String, nil]
13
+ optional :x_profile_id, String
14
+
15
+ # @!method initialize(x_profile_id: nil, request_options: {})
16
+ # @param x_profile_id [String]
11
17
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
12
18
  end
13
19
  end
@@ -7,7 +7,19 @@ module Sentdm
7
7
  extend Sentdm::Internal::Type::RequestParameters::Converter
8
8
  include Sentdm::Internal::Type::RequestParameters
9
9
 
10
- # @!method initialize(request_options: {})
10
+ # @!attribute profile_id
11
+ #
12
+ # @return [String]
13
+ required :profile_id, String
14
+
15
+ # @!attribute x_profile_id
16
+ #
17
+ # @return [String, nil]
18
+ optional :x_profile_id, String
19
+
20
+ # @!method initialize(profile_id:, x_profile_id: nil, request_options: {})
21
+ # @param profile_id [String]
22
+ # @param x_profile_id [String]
11
23
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
12
24
  end
13
25
  end