sentdm 0.3.1 → 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 (214) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +9 -9
  4. data/lib/sentdm/client.rb +0 -1
  5. data/lib/sentdm/models/api_meta.rb +1 -9
  6. data/lib/sentdm/models/brand_data.rb +235 -198
  7. data/lib/sentdm/models/brand_with_kyc.rb +249 -214
  8. data/lib/sentdm/models/brands/api_response_tcr_campaign_with_use_cases.rb +0 -1
  9. data/lib/sentdm/models/contact_create_params.rb +13 -6
  10. data/lib/sentdm/models/contact_delete_params.rb +8 -1
  11. data/lib/sentdm/models/contact_list_params.rb +10 -2
  12. data/lib/sentdm/models/contact_retrieve_params.rb +7 -1
  13. data/lib/sentdm/models/contact_update_params.rb +13 -6
  14. data/lib/sentdm/models/me_retrieve_params.rb +7 -1
  15. data/lib/sentdm/models/me_retrieve_response.rb +152 -7
  16. data/lib/sentdm/models/message_retrieve_activities_params.rb +7 -1
  17. data/lib/sentdm/models/message_retrieve_activities_response.rb +19 -5
  18. data/lib/sentdm/models/message_retrieve_status_params.rb +7 -1
  19. data/lib/sentdm/models/message_retrieve_status_response.rb +8 -1
  20. data/lib/sentdm/models/message_send_params.rb +17 -10
  21. data/lib/sentdm/models/mutation_request.rb +6 -6
  22. data/lib/sentdm/models/profile_complete_params.rb +13 -6
  23. data/lib/sentdm/models/profile_create_params.rb +192 -10
  24. data/lib/sentdm/models/profile_delete_params.rb +18 -18
  25. data/lib/sentdm/models/profile_detail.rb +144 -95
  26. data/lib/sentdm/models/profile_list_params.rb +7 -1
  27. data/lib/sentdm/models/profile_retrieve_params.rb +7 -1
  28. data/lib/sentdm/models/profile_update_params.rb +142 -22
  29. data/lib/sentdm/models/template_create_params.rb +17 -10
  30. data/lib/sentdm/models/template_delete_params.rb +13 -6
  31. data/lib/sentdm/models/template_list_params.rb +18 -2
  32. data/lib/sentdm/models/template_retrieve_params.rb +7 -1
  33. data/lib/sentdm/models/template_update_params.rb +17 -10
  34. data/lib/sentdm/models/template_variable.rb +7 -1
  35. data/lib/sentdm/models/user_invite_params.rb +13 -6
  36. data/lib/sentdm/models/user_list_params.rb +7 -1
  37. data/lib/sentdm/models/user_remove_params.rb +17 -17
  38. data/lib/sentdm/models/user_retrieve_params.rb +7 -1
  39. data/lib/sentdm/models/user_update_role_params.rb +15 -16
  40. data/lib/sentdm/models/webhook_create_params.rb +13 -6
  41. data/lib/sentdm/models/webhook_delete_params.rb +7 -1
  42. data/lib/sentdm/models/webhook_list_event_types_params.rb +7 -1
  43. data/lib/sentdm/models/webhook_list_events_params.rb +7 -1
  44. data/lib/sentdm/models/webhook_list_params.rb +7 -1
  45. data/lib/sentdm/models/webhook_retrieve_params.rb +7 -1
  46. data/lib/sentdm/models/webhook_rotate_secret_params.rb +7 -1
  47. data/lib/sentdm/models/webhook_test_params.rb +13 -6
  48. data/lib/sentdm/models/webhook_toggle_status_params.rb +13 -6
  49. data/lib/sentdm/models/webhook_update_params.rb +13 -6
  50. data/lib/sentdm/models.rb +0 -12
  51. data/lib/sentdm/resources/brands/campaigns.rb +0 -129
  52. data/lib/sentdm/resources/brands.rb +0 -112
  53. data/lib/sentdm/resources/contacts.rb +43 -20
  54. data/lib/sentdm/resources/lookup.rb +0 -21
  55. data/lib/sentdm/resources/me.rb +24 -5
  56. data/lib/sentdm/resources/messages.rb +24 -8
  57. data/lib/sentdm/resources/profiles.rb +116 -32
  58. data/lib/sentdm/resources/templates.rb +47 -24
  59. data/lib/sentdm/resources/users.rb +40 -23
  60. data/lib/sentdm/resources/webhooks.rb +92 -34
  61. data/lib/sentdm/version.rb +1 -1
  62. data/lib/sentdm.rb +1 -14
  63. data/rbi/sentdm/client.rbi +0 -1
  64. data/rbi/sentdm/models/api_meta.rbi +4 -18
  65. data/rbi/sentdm/models/brand_data.rbi +326 -203
  66. data/rbi/sentdm/models/brand_with_kyc.rbi +334 -216
  67. data/rbi/sentdm/models/brands/tcr_campaign_with_use_cases.rbi +6 -8
  68. data/rbi/sentdm/models/contact_create_params.rbi +19 -10
  69. data/rbi/sentdm/models/contact_delete_params.rbi +9 -0
  70. data/rbi/sentdm/models/contact_list_params.rbi +11 -0
  71. data/rbi/sentdm/models/contact_retrieve_params.rbi +13 -2
  72. data/rbi/sentdm/models/contact_update_params.rbi +19 -10
  73. data/rbi/sentdm/models/me_retrieve_params.rbi +16 -5
  74. data/rbi/sentdm/models/me_retrieve_response.rbi +316 -16
  75. data/rbi/sentdm/models/message_retrieve_activities_params.rbi +13 -2
  76. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +18 -6
  77. data/rbi/sentdm/models/message_retrieve_status_params.rbi +13 -2
  78. data/rbi/sentdm/models/message_retrieve_status_response.rbi +6 -0
  79. data/rbi/sentdm/models/message_send_params.rbi +22 -13
  80. data/rbi/sentdm/models/mutation_request.rbi +10 -10
  81. data/rbi/sentdm/models/profile_complete_params.rbi +19 -10
  82. data/rbi/sentdm/models/profile_create_params.rbi +323 -15
  83. data/rbi/sentdm/models/profile_delete_params.rbi +36 -24
  84. data/rbi/sentdm/models/profile_detail.rbi +184 -128
  85. data/rbi/sentdm/models/profile_list_params.rbi +16 -5
  86. data/rbi/sentdm/models/profile_retrieve_params.rbi +13 -2
  87. data/rbi/sentdm/models/profile_update_params.rbi +231 -30
  88. data/rbi/sentdm/models/template_create_params.rbi +22 -13
  89. data/rbi/sentdm/models/template_delete_params.rbi +19 -10
  90. data/rbi/sentdm/models/template_list_params.rbi +19 -0
  91. data/rbi/sentdm/models/template_retrieve_params.rbi +13 -2
  92. data/rbi/sentdm/models/template_update_params.rbi +22 -13
  93. data/rbi/sentdm/models/template_variable.rbi +6 -0
  94. data/rbi/sentdm/models/user_invite_params.rbi +19 -10
  95. data/rbi/sentdm/models/user_list_params.rbi +16 -5
  96. data/rbi/sentdm/models/user_remove_params.rbi +35 -23
  97. data/rbi/sentdm/models/user_retrieve_params.rbi +13 -2
  98. data/rbi/sentdm/models/user_update_role_params.rbi +23 -25
  99. data/rbi/sentdm/models/webhook_create_params.rbi +19 -10
  100. data/rbi/sentdm/models/webhook_delete_params.rbi +13 -2
  101. data/rbi/sentdm/models/webhook_list_event_types_params.rbi +16 -5
  102. data/rbi/sentdm/models/webhook_list_events_params.rbi +16 -1
  103. data/rbi/sentdm/models/webhook_list_params.rbi +9 -0
  104. data/rbi/sentdm/models/webhook_retrieve_params.rbi +13 -2
  105. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +15 -1
  106. data/rbi/sentdm/models/webhook_test_params.rbi +19 -10
  107. data/rbi/sentdm/models/webhook_toggle_status_params.rbi +19 -10
  108. data/rbi/sentdm/models/webhook_update_params.rbi +19 -10
  109. data/rbi/sentdm/models.rbi +0 -12
  110. data/rbi/sentdm/resources/brands/campaigns.rbi +0 -95
  111. data/rbi/sentdm/resources/brands.rbi +0 -80
  112. data/rbi/sentdm/resources/contacts.rbi +37 -12
  113. data/rbi/sentdm/resources/lookup.rbi +0 -12
  114. data/rbi/sentdm/resources/me.rbi +25 -7
  115. data/rbi/sentdm/resources/messages.rbi +17 -4
  116. data/rbi/sentdm/resources/profiles.rbi +178 -38
  117. data/rbi/sentdm/resources/templates.rbi +47 -19
  118. data/rbi/sentdm/resources/users.rbi +47 -25
  119. data/rbi/sentdm/resources/webhooks.rbi +92 -20
  120. data/sig/sentdm/models/api_meta.rbs +2 -16
  121. data/sig/sentdm/models/brand_data.rbs +188 -142
  122. data/sig/sentdm/models/brand_with_kyc.rbs +184 -133
  123. data/sig/sentdm/models/contact_create_params.rbs +16 -5
  124. data/sig/sentdm/models/contact_delete_params.rbs +11 -1
  125. data/sig/sentdm/models/contact_list_params.rbs +8 -1
  126. data/sig/sentdm/models/contact_retrieve_params.rbs +12 -2
  127. data/sig/sentdm/models/contact_update_params.rbs +13 -6
  128. data/sig/sentdm/models/me_retrieve_params.rbs +14 -3
  129. data/sig/sentdm/models/me_retrieve_response.rbs +134 -7
  130. data/sig/sentdm/models/message_retrieve_activities_params.rbs +12 -2
  131. data/sig/sentdm/models/message_retrieve_activities_response.rbs +9 -4
  132. data/sig/sentdm/models/message_retrieve_status_params.rbs +12 -2
  133. data/sig/sentdm/models/message_retrieve_status_response.rbs +5 -0
  134. data/sig/sentdm/models/message_send_params.rbs +15 -8
  135. data/sig/sentdm/models/mutation_request.rbs +5 -5
  136. data/sig/sentdm/models/profile_complete_params.rbs +13 -6
  137. data/sig/sentdm/models/profile_create_params.rbs +111 -7
  138. data/sig/sentdm/models/profile_delete_params.rbs +23 -13
  139. data/sig/sentdm/models/profile_detail.rbs +105 -84
  140. data/sig/sentdm/models/profile_list_params.rbs +14 -3
  141. data/sig/sentdm/models/profile_retrieve_params.rbs +8 -1
  142. data/sig/sentdm/models/profile_update_params.rbs +86 -17
  143. data/sig/sentdm/models/template_create_params.rbs +15 -8
  144. data/sig/sentdm/models/template_delete_params.rbs +16 -5
  145. data/sig/sentdm/models/template_list_params.rbs +13 -1
  146. data/sig/sentdm/models/template_retrieve_params.rbs +12 -2
  147. data/sig/sentdm/models/template_update_params.rbs +15 -8
  148. data/sig/sentdm/models/template_variable.rbs +5 -0
  149. data/sig/sentdm/models/user_invite_params.rbs +13 -6
  150. data/sig/sentdm/models/user_list_params.rbs +14 -3
  151. data/sig/sentdm/models/user_remove_params.rbs +23 -13
  152. data/sig/sentdm/models/user_retrieve_params.rbs +8 -1
  153. data/sig/sentdm/models/user_update_role_params.rbs +17 -17
  154. data/sig/sentdm/models/webhook_create_params.rbs +13 -6
  155. data/sig/sentdm/models/webhook_delete_params.rbs +12 -2
  156. data/sig/sentdm/models/webhook_list_event_types_params.rbs +13 -3
  157. data/sig/sentdm/models/webhook_list_events_params.rbs +13 -1
  158. data/sig/sentdm/models/webhook_list_params.rbs +13 -1
  159. data/sig/sentdm/models/webhook_retrieve_params.rbs +12 -2
  160. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -1
  161. data/sig/sentdm/models/webhook_test_params.rbs +13 -6
  162. data/sig/sentdm/models/webhook_toggle_status_params.rbs +17 -5
  163. data/sig/sentdm/models/webhook_update_params.rbs +13 -6
  164. data/sig/sentdm/models.rbs +0 -12
  165. data/sig/sentdm/resources/brands/campaigns.rbs +0 -29
  166. data/sig/sentdm/resources/brands.rbs +0 -25
  167. data/sig/sentdm/resources/contacts.rbs +7 -2
  168. data/sig/sentdm/resources/lookup.rbs +0 -5
  169. data/sig/sentdm/resources/me.rbs +1 -0
  170. data/sig/sentdm/resources/messages.rbs +4 -1
  171. data/sig/sentdm/resources/profiles.rbs +19 -8
  172. data/sig/sentdm/resources/templates.rbs +9 -3
  173. data/sig/sentdm/resources/users.rbs +10 -7
  174. data/sig/sentdm/resources/webhooks.rbs +18 -5
  175. metadata +1 -40
  176. data/lib/sentdm/models/api_response_brand_with_kyc.rb +0 -43
  177. data/lib/sentdm/models/brand_create_params.rb +0 -41
  178. data/lib/sentdm/models/brand_delete_params.rb +0 -34
  179. data/lib/sentdm/models/brand_list_params.rb +0 -14
  180. data/lib/sentdm/models/brand_list_response.rb +0 -43
  181. data/lib/sentdm/models/brand_update_params.rb +0 -48
  182. data/lib/sentdm/models/brands/campaign_create_params.rb +0 -50
  183. data/lib/sentdm/models/brands/campaign_delete_params.rb +0 -43
  184. data/lib/sentdm/models/brands/campaign_list_params.rb +0 -22
  185. data/lib/sentdm/models/brands/campaign_list_response.rb +0 -47
  186. data/lib/sentdm/models/brands/campaign_update_params.rb +0 -57
  187. data/lib/sentdm/models/lookup_retrieve_phone_info_params.rb +0 -20
  188. data/lib/sentdm/models/lookup_retrieve_phone_info_response.rb +0 -104
  189. data/rbi/sentdm/models/api_response_brand_with_kyc.rbi +0 -74
  190. data/rbi/sentdm/models/brand_create_params.rbi +0 -68
  191. data/rbi/sentdm/models/brand_delete_params.rbi +0 -68
  192. data/rbi/sentdm/models/brand_list_params.rbi +0 -27
  193. data/rbi/sentdm/models/brand_list_response.rbi +0 -71
  194. data/rbi/sentdm/models/brand_update_params.rbi +0 -74
  195. data/rbi/sentdm/models/brands/campaign_create_params.rbi +0 -79
  196. data/rbi/sentdm/models/brands/campaign_delete_params.rbi +0 -84
  197. data/rbi/sentdm/models/brands/campaign_list_params.rbi +0 -37
  198. data/rbi/sentdm/models/brands/campaign_list_response.rbi +0 -82
  199. data/rbi/sentdm/models/brands/campaign_update_params.rbi +0 -85
  200. data/rbi/sentdm/models/lookup_retrieve_phone_info_params.rbi +0 -38
  201. data/rbi/sentdm/models/lookup_retrieve_phone_info_response.rbi +0 -183
  202. data/sig/sentdm/models/api_response_brand_with_kyc.rbs +0 -39
  203. data/sig/sentdm/models/brand_create_params.rbs +0 -36
  204. data/sig/sentdm/models/brand_delete_params.rbs +0 -36
  205. data/sig/sentdm/models/brand_list_params.rbs +0 -14
  206. data/sig/sentdm/models/brand_list_response.rbs +0 -39
  207. data/sig/sentdm/models/brand_update_params.rbs +0 -45
  208. data/sig/sentdm/models/brands/campaign_create_params.rbs +0 -47
  209. data/sig/sentdm/models/brands/campaign_delete_params.rbs +0 -46
  210. data/sig/sentdm/models/brands/campaign_list_params.rbs +0 -25
  211. data/sig/sentdm/models/brands/campaign_list_response.rbs +0 -41
  212. data/sig/sentdm/models/brands/campaign_update_params.rbs +0 -52
  213. data/sig/sentdm/models/lookup_retrieve_phone_info_params.rbs +0 -23
  214. data/sig/sentdm/models/lookup_retrieve_phone_info_response.rbs +0 -102
@@ -13,6 +13,52 @@ module Sentdm
13
13
  sig { params(id: String).void }
14
14
  attr_writer :id
15
15
 
16
+ # Whether contacts are shared across profiles in the organization
17
+ sig { returns(T.nilable(T::Boolean)) }
18
+ attr_reader :allow_contact_sharing
19
+
20
+ sig { params(allow_contact_sharing: T::Boolean).void }
21
+ attr_writer :allow_contact_sharing
22
+
23
+ # Whether number changes are allowed during onboarding
24
+ sig { returns(T.nilable(T::Boolean)) }
25
+ attr_accessor :allow_number_change_during_onboarding
26
+
27
+ # Whether templates are shared across profiles in the organization
28
+ sig { returns(T.nilable(T::Boolean)) }
29
+ attr_reader :allow_template_sharing
30
+
31
+ sig { params(allow_template_sharing: T::Boolean).void }
32
+ attr_writer :allow_template_sharing
33
+
34
+ # Billing contact for this profile. Present when billing_model is "profile" or
35
+ # "profile_and_organization".
36
+ sig { returns(T.nilable(Sentdm::ProfileDetail::BillingContact)) }
37
+ attr_reader :billing_contact
38
+
39
+ sig do
40
+ params(
41
+ billing_contact:
42
+ T.nilable(Sentdm::ProfileDetail::BillingContact::OrHash)
43
+ ).void
44
+ end
45
+ attr_writer :billing_contact
46
+
47
+ # Billing model: profile, organization, or profile_and_organization
48
+ sig { returns(T.nilable(String)) }
49
+ attr_reader :billing_model
50
+
51
+ sig { params(billing_model: String).void }
52
+ attr_writer :billing_model
53
+
54
+ # Brand associated with this profile. Null if no brand has been configured yet.
55
+ # Includes KYC information and TCR registration status.
56
+ sig { returns(T.nilable(Sentdm::BrandWithKYC)) }
57
+ attr_reader :brand
58
+
59
+ sig { params(brand: T.nilable(Sentdm::BrandWithKYC::OrHash)).void }
60
+ attr_writer :brand
61
+
16
62
  # When the profile was created
17
63
  sig { returns(T.nilable(Time)) }
18
64
  attr_reader :created_at
@@ -32,6 +78,34 @@ module Sentdm
32
78
  sig { returns(T.nilable(String)) }
33
79
  attr_accessor :icon
34
80
 
81
+ # Whether this profile inherits contacts from the organization
82
+ sig { returns(T.nilable(T::Boolean)) }
83
+ attr_reader :inherit_contacts
84
+
85
+ sig { params(inherit_contacts: T::Boolean).void }
86
+ attr_writer :inherit_contacts
87
+
88
+ # Whether this profile inherits TCR brand from the organization
89
+ sig { returns(T.nilable(T::Boolean)) }
90
+ attr_reader :inherit_tcr_brand
91
+
92
+ sig { params(inherit_tcr_brand: T::Boolean).void }
93
+ attr_writer :inherit_tcr_brand
94
+
95
+ # Whether this profile inherits TCR campaign from the organization
96
+ sig { returns(T.nilable(T::Boolean)) }
97
+ attr_reader :inherit_tcr_campaign
98
+
99
+ sig { params(inherit_tcr_campaign: T::Boolean).void }
100
+ attr_writer :inherit_tcr_campaign
101
+
102
+ # Whether this profile inherits templates from the organization
103
+ sig { returns(T.nilable(T::Boolean)) }
104
+ attr_reader :inherit_templates
105
+
106
+ sig { params(inherit_templates: T::Boolean).void }
107
+ attr_writer :inherit_templates
108
+
35
109
  # Profile name
36
110
  sig { returns(T.nilable(String)) }
37
111
  attr_reader :name
@@ -43,14 +117,20 @@ module Sentdm
43
117
  sig { returns(T.nilable(String)) }
44
118
  attr_accessor :organization_id
45
119
 
46
- # Profile configuration settings
47
- sig { returns(T.nilable(Sentdm::ProfileDetail::Settings)) }
48
- attr_reader :settings
120
+ # Direct SMS phone number
121
+ sig { returns(T.nilable(String)) }
122
+ attr_accessor :sending_phone_number
49
123
 
50
- sig { params(settings: Sentdm::ProfileDetail::Settings::OrHash).void }
51
- attr_writer :settings
124
+ # Reference to another profile for SMS/Telnyx configuration
125
+ sig { returns(T.nilable(String)) }
126
+ attr_accessor :sending_phone_number_profile_id
52
127
 
53
- # Profile short name (abbreviation)
128
+ # Reference to another profile for WhatsApp configuration
129
+ sig { returns(T.nilable(String)) }
130
+ attr_accessor :sending_whatsapp_number_profile_id
131
+
132
+ # Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
133
+ # only, with at least one letter.
54
134
  sig { returns(T.nilable(String)) }
55
135
  attr_accessor :short_name
56
136
 
@@ -65,25 +145,63 @@ module Sentdm
65
145
  sig { returns(T.nilable(Time)) }
66
146
  attr_accessor :updated_at
67
147
 
148
+ # WhatsApp Business Account ID associated with this profile. Present whether the
149
+ # WABA is inherited from the organization or configured directly.
150
+ sig { returns(T.nilable(String)) }
151
+ attr_accessor :waba_id
152
+
153
+ # Direct WhatsApp phone number
154
+ sig { returns(T.nilable(String)) }
155
+ attr_accessor :whatsapp_phone_number
156
+
68
157
  # Detailed profile response for v3 API
69
158
  sig do
70
159
  params(
71
160
  id: String,
161
+ allow_contact_sharing: T::Boolean,
162
+ allow_number_change_during_onboarding: T.nilable(T::Boolean),
163
+ allow_template_sharing: T::Boolean,
164
+ billing_contact:
165
+ T.nilable(Sentdm::ProfileDetail::BillingContact::OrHash),
166
+ billing_model: String,
167
+ brand: T.nilable(Sentdm::BrandWithKYC::OrHash),
72
168
  created_at: Time,
73
169
  description: T.nilable(String),
74
170
  email: T.nilable(String),
75
171
  icon: T.nilable(String),
172
+ inherit_contacts: T::Boolean,
173
+ inherit_tcr_brand: T::Boolean,
174
+ inherit_tcr_campaign: T::Boolean,
175
+ inherit_templates: T::Boolean,
76
176
  name: String,
77
177
  organization_id: T.nilable(String),
78
- settings: Sentdm::ProfileDetail::Settings::OrHash,
178
+ sending_phone_number: T.nilable(String),
179
+ sending_phone_number_profile_id: T.nilable(String),
180
+ sending_whatsapp_number_profile_id: T.nilable(String),
79
181
  short_name: T.nilable(String),
80
182
  status: String,
81
- updated_at: T.nilable(Time)
183
+ updated_at: T.nilable(Time),
184
+ waba_id: T.nilable(String),
185
+ whatsapp_phone_number: T.nilable(String)
82
186
  ).returns(T.attached_class)
83
187
  end
84
188
  def self.new(
85
189
  # Profile unique identifier
86
190
  id: nil,
191
+ # Whether contacts are shared across profiles in the organization
192
+ allow_contact_sharing: nil,
193
+ # Whether number changes are allowed during onboarding
194
+ allow_number_change_during_onboarding: nil,
195
+ # Whether templates are shared across profiles in the organization
196
+ allow_template_sharing: nil,
197
+ # Billing contact for this profile. Present when billing_model is "profile" or
198
+ # "profile_and_organization".
199
+ billing_contact: nil,
200
+ # Billing model: profile, organization, or profile_and_organization
201
+ billing_model: nil,
202
+ # Brand associated with this profile. Null if no brand has been configured yet.
203
+ # Includes KYC information and TCR registration status.
204
+ brand: nil,
87
205
  # When the profile was created
88
206
  created_at: nil,
89
207
  # Profile description
@@ -92,18 +210,36 @@ module Sentdm
92
210
  email: nil,
93
211
  # Profile icon URL
94
212
  icon: nil,
213
+ # Whether this profile inherits contacts from the organization
214
+ inherit_contacts: nil,
215
+ # Whether this profile inherits TCR brand from the organization
216
+ inherit_tcr_brand: nil,
217
+ # Whether this profile inherits TCR campaign from the organization
218
+ inherit_tcr_campaign: nil,
219
+ # Whether this profile inherits templates from the organization
220
+ inherit_templates: nil,
95
221
  # Profile name
96
222
  name: nil,
97
223
  # Parent organization ID
98
224
  organization_id: nil,
99
- # Profile configuration settings
100
- settings: nil,
101
- # Profile short name (abbreviation)
225
+ # Direct SMS phone number
226
+ sending_phone_number: nil,
227
+ # Reference to another profile for SMS/Telnyx configuration
228
+ sending_phone_number_profile_id: nil,
229
+ # Reference to another profile for WhatsApp configuration
230
+ sending_whatsapp_number_profile_id: nil,
231
+ # Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
232
+ # only, with at least one letter.
102
233
  short_name: nil,
103
234
  # Profile setup status: incomplete, pending_review, approved, rejected
104
235
  status: nil,
105
236
  # When the profile was last updated
106
- updated_at: nil
237
+ updated_at: nil,
238
+ # WhatsApp Business Account ID associated with this profile. Present whether the
239
+ # WABA is inherited from the organization or configured directly.
240
+ waba_id: nil,
241
+ # Direct WhatsApp phone number
242
+ whatsapp_phone_number: nil
107
243
  )
108
244
  end
109
245
 
@@ -111,157 +247,77 @@ module Sentdm
111
247
  override.returns(
112
248
  {
113
249
  id: String,
250
+ allow_contact_sharing: T::Boolean,
251
+ allow_number_change_during_onboarding: T.nilable(T::Boolean),
252
+ allow_template_sharing: T::Boolean,
253
+ billing_contact: T.nilable(Sentdm::ProfileDetail::BillingContact),
254
+ billing_model: String,
255
+ brand: T.nilable(Sentdm::BrandWithKYC),
114
256
  created_at: Time,
115
257
  description: T.nilable(String),
116
258
  email: T.nilable(String),
117
259
  icon: T.nilable(String),
260
+ inherit_contacts: T::Boolean,
261
+ inherit_tcr_brand: T::Boolean,
262
+ inherit_tcr_campaign: T::Boolean,
263
+ inherit_templates: T::Boolean,
118
264
  name: String,
119
265
  organization_id: T.nilable(String),
120
- settings: Sentdm::ProfileDetail::Settings,
266
+ sending_phone_number: T.nilable(String),
267
+ sending_phone_number_profile_id: T.nilable(String),
268
+ sending_whatsapp_number_profile_id: T.nilable(String),
121
269
  short_name: T.nilable(String),
122
270
  status: String,
123
- updated_at: T.nilable(Time)
271
+ updated_at: T.nilable(Time),
272
+ waba_id: T.nilable(String),
273
+ whatsapp_phone_number: T.nilable(String)
124
274
  }
125
275
  )
126
276
  end
127
277
  def to_hash
128
278
  end
129
279
 
130
- class Settings < Sentdm::Internal::Type::BaseModel
280
+ class BillingContact < Sentdm::Internal::Type::BaseModel
131
281
  OrHash =
132
282
  T.type_alias do
133
- T.any(Sentdm::ProfileDetail::Settings, Sentdm::Internal::AnyHash)
283
+ T.any(
284
+ Sentdm::ProfileDetail::BillingContact,
285
+ Sentdm::Internal::AnyHash
286
+ )
134
287
  end
135
288
 
136
- # Whether contacts are shared across profiles in the organization
137
- sig { returns(T.nilable(T::Boolean)) }
138
- attr_reader :allow_contact_sharing
139
-
140
- sig { params(allow_contact_sharing: T::Boolean).void }
141
- attr_writer :allow_contact_sharing
142
-
143
- # Whether number changes are allowed during onboarding
144
- sig { returns(T.nilable(T::Boolean)) }
145
- attr_accessor :allow_number_change_during_onboarding
146
-
147
- # Whether templates are shared across profiles in the organization
148
- sig { returns(T.nilable(T::Boolean)) }
149
- attr_reader :allow_template_sharing
150
-
151
- sig { params(allow_template_sharing: T::Boolean).void }
152
- attr_writer :allow_template_sharing
153
-
154
- # Billing model: profile, organization, or profile_and_organization
155
- sig { returns(T.nilable(String)) }
156
- attr_reader :billing_model
157
-
158
- sig { params(billing_model: String).void }
159
- attr_writer :billing_model
160
-
161
- # Whether this profile inherits contacts from the organization
162
- sig { returns(T.nilable(T::Boolean)) }
163
- attr_reader :inherit_contacts
164
-
165
- sig { params(inherit_contacts: T::Boolean).void }
166
- attr_writer :inherit_contacts
167
-
168
- # Whether this profile inherits TCR brand from the organization
169
- sig { returns(T.nilable(T::Boolean)) }
170
- attr_reader :inherit_tcr_brand
171
-
172
- sig { params(inherit_tcr_brand: T::Boolean).void }
173
- attr_writer :inherit_tcr_brand
174
-
175
- # Whether this profile inherits TCR campaign from the organization
176
- sig { returns(T.nilable(T::Boolean)) }
177
- attr_reader :inherit_tcr_campaign
178
-
179
- sig { params(inherit_tcr_campaign: T::Boolean).void }
180
- attr_writer :inherit_tcr_campaign
181
-
182
- # Whether this profile inherits templates from the organization
183
- sig { returns(T.nilable(T::Boolean)) }
184
- attr_reader :inherit_templates
185
-
186
- sig { params(inherit_templates: T::Boolean).void }
187
- attr_writer :inherit_templates
188
-
189
- # Direct SMS phone number
190
289
  sig { returns(T.nilable(String)) }
191
- attr_accessor :sending_phone_number
290
+ attr_accessor :address
192
291
 
193
- # Reference to another profile for SMS/Telnyx configuration
194
292
  sig { returns(T.nilable(String)) }
195
- attr_accessor :sending_phone_number_profile_id
293
+ attr_accessor :email
196
294
 
197
- # Reference to another profile for WhatsApp configuration
198
295
  sig { returns(T.nilable(String)) }
199
- attr_accessor :sending_whatsapp_number_profile_id
296
+ attr_accessor :name
200
297
 
201
- # Direct WhatsApp phone number
202
298
  sig { returns(T.nilable(String)) }
203
- attr_accessor :whatsapp_phone_number
299
+ attr_accessor :phone
204
300
 
205
- # Profile configuration settings
301
+ # Billing contact for this profile. Present when billing_model is "profile" or
302
+ # "profile_and_organization".
206
303
  sig do
207
304
  params(
208
- allow_contact_sharing: T::Boolean,
209
- allow_number_change_during_onboarding: T.nilable(T::Boolean),
210
- allow_template_sharing: T::Boolean,
211
- billing_model: String,
212
- inherit_contacts: T::Boolean,
213
- inherit_tcr_brand: T::Boolean,
214
- inherit_tcr_campaign: T::Boolean,
215
- inherit_templates: T::Boolean,
216
- sending_phone_number: T.nilable(String),
217
- sending_phone_number_profile_id: T.nilable(String),
218
- sending_whatsapp_number_profile_id: T.nilable(String),
219
- whatsapp_phone_number: T.nilable(String)
305
+ address: T.nilable(String),
306
+ email: T.nilable(String),
307
+ name: T.nilable(String),
308
+ phone: T.nilable(String)
220
309
  ).returns(T.attached_class)
221
310
  end
222
- def self.new(
223
- # Whether contacts are shared across profiles in the organization
224
- allow_contact_sharing: nil,
225
- # Whether number changes are allowed during onboarding
226
- allow_number_change_during_onboarding: nil,
227
- # Whether templates are shared across profiles in the organization
228
- allow_template_sharing: nil,
229
- # Billing model: profile, organization, or profile_and_organization
230
- billing_model: nil,
231
- # Whether this profile inherits contacts from the organization
232
- inherit_contacts: nil,
233
- # Whether this profile inherits TCR brand from the organization
234
- inherit_tcr_brand: nil,
235
- # Whether this profile inherits TCR campaign from the organization
236
- inherit_tcr_campaign: nil,
237
- # Whether this profile inherits templates from the organization
238
- inherit_templates: nil,
239
- # Direct SMS phone number
240
- sending_phone_number: nil,
241
- # Reference to another profile for SMS/Telnyx configuration
242
- sending_phone_number_profile_id: nil,
243
- # Reference to another profile for WhatsApp configuration
244
- sending_whatsapp_number_profile_id: nil,
245
- # Direct WhatsApp phone number
246
- whatsapp_phone_number: nil
247
- )
311
+ def self.new(address: nil, email: nil, name: nil, phone: nil)
248
312
  end
249
313
 
250
314
  sig do
251
315
  override.returns(
252
316
  {
253
- allow_contact_sharing: T::Boolean,
254
- allow_number_change_during_onboarding: T.nilable(T::Boolean),
255
- allow_template_sharing: T::Boolean,
256
- billing_model: String,
257
- inherit_contacts: T::Boolean,
258
- inherit_tcr_brand: T::Boolean,
259
- inherit_tcr_campaign: T::Boolean,
260
- inherit_templates: T::Boolean,
261
- sending_phone_number: T.nilable(String),
262
- sending_phone_number_profile_id: T.nilable(String),
263
- sending_whatsapp_number_profile_id: T.nilable(String),
264
- whatsapp_phone_number: T.nilable(String)
317
+ address: T.nilable(String),
318
+ email: T.nilable(String),
319
+ name: T.nilable(String),
320
+ phone: T.nilable(String)
265
321
  }
266
322
  )
267
323
  end
@@ -11,15 +11,26 @@ module Sentdm
11
11
  T.any(Sentdm::ProfileListParams, Sentdm::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :x_profile_id
16
+
17
+ sig { params(x_profile_id: String).void }
18
+ attr_writer :x_profile_id
19
+
14
20
  sig do
15
- params(request_options: Sentdm::RequestOptions::OrHash).returns(
16
- T.attached_class
17
- )
21
+ params(
22
+ x_profile_id: String,
23
+ request_options: Sentdm::RequestOptions::OrHash
24
+ ).returns(T.attached_class)
18
25
  end
19
- def self.new(request_options: {})
26
+ def self.new(x_profile_id: nil, request_options: {})
20
27
  end
21
28
 
22
- sig { override.returns({ request_options: Sentdm::RequestOptions }) }
29
+ sig do
30
+ override.returns(
31
+ { x_profile_id: String, request_options: Sentdm::RequestOptions }
32
+ )
33
+ end
23
34
  def to_hash
24
35
  end
25
36
  end
@@ -14,18 +14,29 @@ module Sentdm
14
14
  sig { returns(String) }
15
15
  attr_accessor :profile_id
16
16
 
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :x_profile_id
19
+
20
+ sig { params(x_profile_id: String).void }
21
+ attr_writer :x_profile_id
22
+
17
23
  sig do
18
24
  params(
19
25
  profile_id: String,
26
+ x_profile_id: String,
20
27
  request_options: Sentdm::RequestOptions::OrHash
21
28
  ).returns(T.attached_class)
22
29
  end
23
- def self.new(profile_id:, request_options: {})
30
+ def self.new(profile_id:, x_profile_id: nil, request_options: {})
24
31
  end
25
32
 
26
33
  sig do
27
34
  override.returns(
28
- { profile_id: String, request_options: Sentdm::RequestOptions }
35
+ {
36
+ profile_id: String,
37
+ x_profile_id: String,
38
+ request_options: Sentdm::RequestOptions
39
+ }
29
40
  )
30
41
  end
31
42
  def to_hash