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,56 +13,34 @@ module Sentdm
13
13
  sig { params(id: String).void }
14
14
  attr_writer :id
15
15
 
16
- # Brand relationship level with TCR
17
- sig { returns(T.nilable(Sentdm::TcrBrandRelationship::TaggedSymbol)) }
18
- attr_accessor :brand_relationship
16
+ # Business details and address information
17
+ sig { returns(T.nilable(Sentdm::BrandWithKYC::Business)) }
18
+ attr_reader :business
19
19
 
20
- # Legal business name
21
- sig { returns(T.nilable(String)) }
22
- attr_accessor :business_legal_name
23
-
24
- # Business/brand name
25
- sig { returns(T.nilable(String)) }
26
- attr_accessor :business_name
27
-
28
- # Contact's role in the business
29
- sig { returns(T.nilable(String)) }
30
- attr_accessor :business_role
31
-
32
- # Business website URL
33
- sig { returns(T.nilable(String)) }
34
- attr_accessor :business_url
35
-
36
- # City
37
- sig { returns(T.nilable(String)) }
38
- attr_accessor :city
39
-
40
- # Contact email address
41
- sig { returns(T.nilable(String)) }
42
- attr_accessor :contact_email
43
-
44
- # Primary contact name
45
- sig { returns(T.nilable(String)) }
46
- attr_reader :contact_name
47
-
48
- sig { params(contact_name: String).void }
49
- attr_writer :contact_name
20
+ sig do
21
+ params(business: T.nilable(Sentdm::BrandWithKYC::Business::OrHash)).void
22
+ end
23
+ attr_writer :business
50
24
 
51
- # Contact phone number
52
- sig { returns(T.nilable(String)) }
53
- attr_accessor :contact_phone
25
+ # Compliance and TCR-related information
26
+ sig { returns(T.nilable(Sentdm::BrandWithKYC::Compliance)) }
27
+ attr_reader :compliance
54
28
 
55
- # Contact phone country code
56
- sig { returns(T.nilable(String)) }
57
- attr_accessor :contact_phone_country_code
29
+ sig do
30
+ params(
31
+ compliance: T.nilable(Sentdm::BrandWithKYC::Compliance::OrHash)
32
+ ).void
33
+ end
34
+ attr_writer :compliance
58
35
 
59
- # Country code
60
- sig { returns(T.nilable(String)) }
61
- attr_accessor :country
36
+ # Contact information for the brand
37
+ sig { returns(T.nilable(Sentdm::BrandWithKYC::Contact)) }
38
+ attr_reader :contact
62
39
 
63
- # Country where the business is registered
64
- sig { returns(T.nilable(String)) }
65
- attr_accessor :country_of_registration
40
+ sig do
41
+ params(contact: T.nilable(Sentdm::BrandWithKYC::Contact::OrHash)).void
42
+ end
43
+ attr_writer :contact
66
44
 
67
45
  # When the brand was created
68
46
  sig { returns(T.nilable(Time)) }
@@ -75,92 +53,34 @@ module Sentdm
75
53
  sig { returns(T.nilable(String)) }
76
54
  attr_accessor :csp_id
77
55
 
78
- # List of destination countries for messaging
79
- sig { returns(T.nilable(T::Array[Sentdm::DestinationCountry])) }
80
- attr_reader :destination_countries
81
-
82
- sig do
83
- params(
84
- destination_countries: T::Array[Sentdm::DestinationCountry::OrHash]
85
- ).void
86
- end
87
- attr_writer :destination_countries
88
-
89
- # Business entity type
90
- sig { returns(T.nilable(String)) }
91
- attr_accessor :entity_type
92
-
93
- # Expected daily messaging volume
94
- sig { returns(T.nilable(String)) }
95
- attr_accessor :expected_messaging_volume
96
-
97
56
  # TCR brand identity verification status
98
57
  sig do
99
58
  returns(T.nilable(Sentdm::BrandWithKYC::IdentityStatus::TaggedSymbol))
100
59
  end
101
60
  attr_accessor :identity_status
102
61
 
103
- # Whether this brand is inherited from parent organization
62
+ # Whether this brand is inherited from the parent organization
104
63
  sig { returns(T.nilable(T::Boolean)) }
105
64
  attr_reader :is_inherited
106
65
 
107
66
  sig { params(is_inherited: T::Boolean).void }
108
67
  attr_writer :is_inherited
109
68
 
110
- # Whether this is a TCR application
111
- sig { returns(T.nilable(T::Boolean)) }
112
- attr_reader :is_tcr_application
113
-
114
- sig { params(is_tcr_application: T::Boolean).void }
115
- attr_writer :is_tcr_application
116
-
117
- # Additional notes
118
- sig { returns(T.nilable(String)) }
119
- attr_accessor :notes
120
-
121
- # Phone number prefix for messaging
122
- sig { returns(T.nilable(String)) }
123
- attr_accessor :phone_number_prefix
124
-
125
- # Postal/ZIP code
126
- sig { returns(T.nilable(String)) }
127
- attr_accessor :postal_code
128
-
129
- # Primary messaging use case description
130
- sig { returns(T.nilable(String)) }
131
- attr_accessor :primary_use_case
132
-
133
- # State/province code
134
- sig { returns(T.nilable(String)) }
135
- attr_accessor :state
136
-
137
69
  # TCR brand status
138
70
  sig { returns(T.nilable(Sentdm::BrandWithKYC::Status::TaggedSymbol)) }
139
71
  attr_accessor :status
140
72
 
141
- # Street address
142
- sig { returns(T.nilable(String)) }
143
- attr_accessor :street
144
-
145
73
  # When the brand was submitted to TCR
146
74
  sig { returns(T.nilable(Time)) }
147
75
  attr_accessor :submitted_at
148
76
 
149
- # Whether this brand was submitted to TCR
77
+ # Whether this brand has been submitted to TCR
150
78
  sig { returns(T.nilable(T::Boolean)) }
151
79
  attr_reader :submitted_to_tcr
152
80
 
153
81
  sig { params(submitted_to_tcr: T::Boolean).void }
154
82
  attr_writer :submitted_to_tcr
155
83
 
156
- # Tax ID/EIN number
157
- sig { returns(T.nilable(String)) }
158
- attr_accessor :tax_id
159
-
160
- # Type of tax ID
161
- sig { returns(T.nilable(String)) }
162
- attr_accessor :tax_id_type
163
-
164
84
  # TCR brand ID (populated after TCR submission)
165
85
  sig { returns(T.nilable(String)) }
166
86
  attr_accessor :tcr_brand_id
@@ -173,125 +93,56 @@ module Sentdm
173
93
  sig { returns(T.nilable(Time)) }
174
94
  attr_accessor :updated_at
175
95
 
176
- # Business vertical/industry category
177
- sig { returns(T.nilable(Sentdm::TcrVertical::TaggedSymbol)) }
178
- attr_accessor :vertical
179
-
180
- # Flattened brand response with embedded KYC information
96
+ # Brand response with nested contact, business, and compliance sections — mirrors
97
+ # the request structure.
181
98
  sig do
182
99
  params(
183
100
  id: String,
184
- brand_relationship: T.nilable(Sentdm::TcrBrandRelationship::OrSymbol),
185
- business_legal_name: T.nilable(String),
186
- business_name: T.nilable(String),
187
- business_role: T.nilable(String),
188
- business_url: T.nilable(String),
189
- city: T.nilable(String),
190
- contact_email: T.nilable(String),
191
- contact_name: String,
192
- contact_phone: T.nilable(String),
193
- contact_phone_country_code: T.nilable(String),
194
- country: T.nilable(String),
195
- country_of_registration: T.nilable(String),
101
+ business: T.nilable(Sentdm::BrandWithKYC::Business::OrHash),
102
+ compliance: T.nilable(Sentdm::BrandWithKYC::Compliance::OrHash),
103
+ contact: T.nilable(Sentdm::BrandWithKYC::Contact::OrHash),
196
104
  created_at: Time,
197
105
  csp_id: T.nilable(String),
198
- destination_countries: T::Array[Sentdm::DestinationCountry::OrHash],
199
- entity_type: T.nilable(String),
200
- expected_messaging_volume: T.nilable(String),
201
106
  identity_status:
202
107
  T.nilable(Sentdm::BrandWithKYC::IdentityStatus::OrSymbol),
203
108
  is_inherited: T::Boolean,
204
- is_tcr_application: T::Boolean,
205
- notes: T.nilable(String),
206
- phone_number_prefix: T.nilable(String),
207
- postal_code: T.nilable(String),
208
- primary_use_case: T.nilable(String),
209
- state: T.nilable(String),
210
109
  status: T.nilable(Sentdm::BrandWithKYC::Status::OrSymbol),
211
- street: T.nilable(String),
212
110
  submitted_at: T.nilable(Time),
213
111
  submitted_to_tcr: T::Boolean,
214
- tax_id: T.nilable(String),
215
- tax_id_type: T.nilable(String),
216
112
  tcr_brand_id: T.nilable(String),
217
113
  universal_ein: T.nilable(String),
218
- updated_at: T.nilable(Time),
219
- vertical: T.nilable(Sentdm::TcrVertical::OrSymbol)
114
+ updated_at: T.nilable(Time)
220
115
  ).returns(T.attached_class)
221
116
  end
222
117
  def self.new(
223
118
  # Unique identifier for the brand
224
119
  id: nil,
225
- # Brand relationship level with TCR
226
- brand_relationship: nil,
227
- # Legal business name
228
- business_legal_name: nil,
229
- # Business/brand name
230
- business_name: nil,
231
- # Contact's role in the business
232
- business_role: nil,
233
- # Business website URL
234
- business_url: nil,
235
- # City
236
- city: nil,
237
- # Contact email address
238
- contact_email: nil,
239
- # Primary contact name
240
- contact_name: nil,
241
- # Contact phone number
242
- contact_phone: nil,
243
- # Contact phone country code
244
- contact_phone_country_code: nil,
245
- # Country code
246
- country: nil,
247
- # Country where the business is registered
248
- country_of_registration: nil,
120
+ # Business details and address information
121
+ business: nil,
122
+ # Compliance and TCR-related information
123
+ compliance: nil,
124
+ # Contact information for the brand
125
+ contact: nil,
249
126
  # When the brand was created
250
127
  created_at: nil,
251
128
  # CSP (Campaign Service Provider) ID
252
129
  csp_id: nil,
253
- # List of destination countries for messaging
254
- destination_countries: nil,
255
- # Business entity type
256
- entity_type: nil,
257
- # Expected daily messaging volume
258
- expected_messaging_volume: nil,
259
130
  # TCR brand identity verification status
260
131
  identity_status: nil,
261
- # Whether this brand is inherited from parent organization
132
+ # Whether this brand is inherited from the parent organization
262
133
  is_inherited: nil,
263
- # Whether this is a TCR application
264
- is_tcr_application: nil,
265
- # Additional notes
266
- notes: nil,
267
- # Phone number prefix for messaging
268
- phone_number_prefix: nil,
269
- # Postal/ZIP code
270
- postal_code: nil,
271
- # Primary messaging use case description
272
- primary_use_case: nil,
273
- # State/province code
274
- state: nil,
275
134
  # TCR brand status
276
135
  status: nil,
277
- # Street address
278
- street: nil,
279
136
  # When the brand was submitted to TCR
280
137
  submitted_at: nil,
281
- # Whether this brand was submitted to TCR
138
+ # Whether this brand has been submitted to TCR
282
139
  submitted_to_tcr: nil,
283
- # Tax ID/EIN number
284
- tax_id: nil,
285
- # Type of tax ID
286
- tax_id_type: nil,
287
140
  # TCR brand ID (populated after TCR submission)
288
141
  tcr_brand_id: nil,
289
142
  # Universal EIN from TCR
290
143
  universal_ein: nil,
291
144
  # When the brand was last updated
292
- updated_at: nil,
293
- # Business vertical/industry category
294
- vertical: nil
145
+ updated_at: nil
295
146
  )
296
147
  end
297
148
 
@@ -299,49 +150,316 @@ module Sentdm
299
150
  override.returns(
300
151
  {
301
152
  id: String,
302
- brand_relationship:
303
- T.nilable(Sentdm::TcrBrandRelationship::TaggedSymbol),
304
- business_legal_name: T.nilable(String),
305
- business_name: T.nilable(String),
306
- business_role: T.nilable(String),
307
- business_url: T.nilable(String),
308
- city: T.nilable(String),
309
- contact_email: T.nilable(String),
310
- contact_name: String,
311
- contact_phone: T.nilable(String),
312
- contact_phone_country_code: T.nilable(String),
313
- country: T.nilable(String),
314
- country_of_registration: T.nilable(String),
153
+ business: T.nilable(Sentdm::BrandWithKYC::Business),
154
+ compliance: T.nilable(Sentdm::BrandWithKYC::Compliance),
155
+ contact: T.nilable(Sentdm::BrandWithKYC::Contact),
315
156
  created_at: Time,
316
157
  csp_id: T.nilable(String),
317
- destination_countries: T::Array[Sentdm::DestinationCountry],
318
- entity_type: T.nilable(String),
319
- expected_messaging_volume: T.nilable(String),
320
158
  identity_status:
321
159
  T.nilable(Sentdm::BrandWithKYC::IdentityStatus::TaggedSymbol),
322
160
  is_inherited: T::Boolean,
323
- is_tcr_application: T::Boolean,
324
- notes: T.nilable(String),
325
- phone_number_prefix: T.nilable(String),
326
- postal_code: T.nilable(String),
327
- primary_use_case: T.nilable(String),
328
- state: T.nilable(String),
329
161
  status: T.nilable(Sentdm::BrandWithKYC::Status::TaggedSymbol),
330
- street: T.nilable(String),
331
162
  submitted_at: T.nilable(Time),
332
163
  submitted_to_tcr: T::Boolean,
333
- tax_id: T.nilable(String),
334
- tax_id_type: T.nilable(String),
335
164
  tcr_brand_id: T.nilable(String),
336
165
  universal_ein: T.nilable(String),
337
- updated_at: T.nilable(Time),
338
- vertical: T.nilable(Sentdm::TcrVertical::TaggedSymbol)
166
+ updated_at: T.nilable(Time)
339
167
  }
340
168
  )
341
169
  end
342
170
  def to_hash
343
171
  end
344
172
 
173
+ class Business < Sentdm::Internal::Type::BaseModel
174
+ OrHash =
175
+ T.type_alias do
176
+ T.any(Sentdm::BrandWithKYC::Business, Sentdm::Internal::AnyHash)
177
+ end
178
+
179
+ # City
180
+ sig { returns(T.nilable(String)) }
181
+ attr_accessor :city
182
+
183
+ # Country code (e.g., US, CA)
184
+ sig { returns(T.nilable(String)) }
185
+ attr_accessor :country
186
+
187
+ # Country where the business is registered
188
+ sig { returns(T.nilable(String)) }
189
+ attr_accessor :country_of_registration
190
+
191
+ # Business entity type
192
+ sig { returns(T.nilable(String)) }
193
+ attr_accessor :entity_type
194
+
195
+ # Legal business name
196
+ sig { returns(T.nilable(String)) }
197
+ attr_accessor :legal_name
198
+
199
+ # Postal/ZIP code
200
+ sig { returns(T.nilable(String)) }
201
+ attr_accessor :postal_code
202
+
203
+ # State/province code
204
+ sig { returns(T.nilable(String)) }
205
+ attr_accessor :state
206
+
207
+ # Street address
208
+ sig { returns(T.nilable(String)) }
209
+ attr_accessor :street
210
+
211
+ # Tax ID/EIN number
212
+ sig { returns(T.nilable(String)) }
213
+ attr_accessor :tax_id
214
+
215
+ # Type of tax ID (e.g., us_ein, ca_bn)
216
+ sig { returns(T.nilable(String)) }
217
+ attr_accessor :tax_id_type
218
+
219
+ # Business website URL
220
+ sig { returns(T.nilable(String)) }
221
+ attr_accessor :url
222
+
223
+ # Business details and address information
224
+ sig do
225
+ params(
226
+ city: T.nilable(String),
227
+ country: T.nilable(String),
228
+ country_of_registration: T.nilable(String),
229
+ entity_type: T.nilable(String),
230
+ legal_name: T.nilable(String),
231
+ postal_code: T.nilable(String),
232
+ state: T.nilable(String),
233
+ street: T.nilable(String),
234
+ tax_id: T.nilable(String),
235
+ tax_id_type: T.nilable(String),
236
+ url: T.nilable(String)
237
+ ).returns(T.attached_class)
238
+ end
239
+ def self.new(
240
+ # City
241
+ city: nil,
242
+ # Country code (e.g., US, CA)
243
+ country: nil,
244
+ # Country where the business is registered
245
+ country_of_registration: nil,
246
+ # Business entity type
247
+ entity_type: nil,
248
+ # Legal business name
249
+ legal_name: nil,
250
+ # Postal/ZIP code
251
+ postal_code: nil,
252
+ # State/province code
253
+ state: nil,
254
+ # Street address
255
+ street: nil,
256
+ # Tax ID/EIN number
257
+ tax_id: nil,
258
+ # Type of tax ID (e.g., us_ein, ca_bn)
259
+ tax_id_type: nil,
260
+ # Business website URL
261
+ url: nil
262
+ )
263
+ end
264
+
265
+ sig do
266
+ override.returns(
267
+ {
268
+ city: T.nilable(String),
269
+ country: T.nilable(String),
270
+ country_of_registration: T.nilable(String),
271
+ entity_type: T.nilable(String),
272
+ legal_name: T.nilable(String),
273
+ postal_code: T.nilable(String),
274
+ state: T.nilable(String),
275
+ street: T.nilable(String),
276
+ tax_id: T.nilable(String),
277
+ tax_id_type: T.nilable(String),
278
+ url: T.nilable(String)
279
+ }
280
+ )
281
+ end
282
+ def to_hash
283
+ end
284
+ end
285
+
286
+ class Compliance < Sentdm::Internal::Type::BaseModel
287
+ OrHash =
288
+ T.type_alias do
289
+ T.any(Sentdm::BrandWithKYC::Compliance, Sentdm::Internal::AnyHash)
290
+ end
291
+
292
+ # Brand relationship level with TCR
293
+ sig { returns(T.nilable(Sentdm::TcrBrandRelationship::TaggedSymbol)) }
294
+ attr_accessor :brand_relationship
295
+
296
+ # List of destination countries for messaging
297
+ sig { returns(T.nilable(T::Array[Sentdm::DestinationCountry])) }
298
+ attr_reader :destination_countries
299
+
300
+ sig do
301
+ params(
302
+ destination_countries: T::Array[Sentdm::DestinationCountry::OrHash]
303
+ ).void
304
+ end
305
+ attr_writer :destination_countries
306
+
307
+ # Expected daily messaging volume
308
+ sig { returns(T.nilable(String)) }
309
+ attr_accessor :expected_messaging_volume
310
+
311
+ # Whether this is a TCR (Campaign Registry) application
312
+ sig { returns(T.nilable(T::Boolean)) }
313
+ attr_reader :is_tcr_application
314
+
315
+ sig { params(is_tcr_application: T::Boolean).void }
316
+ attr_writer :is_tcr_application
317
+
318
+ # Additional notes about the business or use case
319
+ sig { returns(T.nilable(String)) }
320
+ attr_accessor :notes
321
+
322
+ # Phone number prefix for messaging (e.g., "+1")
323
+ sig { returns(T.nilable(String)) }
324
+ attr_accessor :phone_number_prefix
325
+
326
+ # Primary messaging use case description
327
+ sig { returns(T.nilable(String)) }
328
+ attr_accessor :primary_use_case
329
+
330
+ # Business vertical/industry category
331
+ sig { returns(T.nilable(Sentdm::TcrVertical::TaggedSymbol)) }
332
+ attr_accessor :vertical
333
+
334
+ # Compliance and TCR-related information
335
+ sig do
336
+ params(
337
+ brand_relationship:
338
+ T.nilable(Sentdm::TcrBrandRelationship::OrSymbol),
339
+ destination_countries: T::Array[Sentdm::DestinationCountry::OrHash],
340
+ expected_messaging_volume: T.nilable(String),
341
+ is_tcr_application: T::Boolean,
342
+ notes: T.nilable(String),
343
+ phone_number_prefix: T.nilable(String),
344
+ primary_use_case: T.nilable(String),
345
+ vertical: T.nilable(Sentdm::TcrVertical::OrSymbol)
346
+ ).returns(T.attached_class)
347
+ end
348
+ def self.new(
349
+ # Brand relationship level with TCR
350
+ brand_relationship: nil,
351
+ # List of destination countries for messaging
352
+ destination_countries: nil,
353
+ # Expected daily messaging volume
354
+ expected_messaging_volume: nil,
355
+ # Whether this is a TCR (Campaign Registry) application
356
+ is_tcr_application: nil,
357
+ # Additional notes about the business or use case
358
+ notes: nil,
359
+ # Phone number prefix for messaging (e.g., "+1")
360
+ phone_number_prefix: nil,
361
+ # Primary messaging use case description
362
+ primary_use_case: nil,
363
+ # Business vertical/industry category
364
+ vertical: nil
365
+ )
366
+ end
367
+
368
+ sig do
369
+ override.returns(
370
+ {
371
+ brand_relationship:
372
+ T.nilable(Sentdm::TcrBrandRelationship::TaggedSymbol),
373
+ destination_countries: T::Array[Sentdm::DestinationCountry],
374
+ expected_messaging_volume: T.nilable(String),
375
+ is_tcr_application: T::Boolean,
376
+ notes: T.nilable(String),
377
+ phone_number_prefix: T.nilable(String),
378
+ primary_use_case: T.nilable(String),
379
+ vertical: T.nilable(Sentdm::TcrVertical::TaggedSymbol)
380
+ }
381
+ )
382
+ end
383
+ def to_hash
384
+ end
385
+ end
386
+
387
+ class Contact < Sentdm::Internal::Type::BaseModel
388
+ OrHash =
389
+ T.type_alias do
390
+ T.any(Sentdm::BrandWithKYC::Contact, Sentdm::Internal::AnyHash)
391
+ end
392
+
393
+ # Business/brand name
394
+ sig { returns(T.nilable(String)) }
395
+ attr_accessor :business_name
396
+
397
+ # Contact email address
398
+ sig { returns(T.nilable(String)) }
399
+ attr_accessor :email
400
+
401
+ # Primary contact name
402
+ sig { returns(T.nilable(String)) }
403
+ attr_reader :name
404
+
405
+ sig { params(name: String).void }
406
+ attr_writer :name
407
+
408
+ # Contact phone number in E.164 format
409
+ sig { returns(T.nilable(String)) }
410
+ attr_accessor :phone
411
+
412
+ # Contact phone country code (e.g., "1" for US)
413
+ sig { returns(T.nilable(String)) }
414
+ attr_accessor :phone_country_code
415
+
416
+ # Contact's role in the business
417
+ sig { returns(T.nilable(String)) }
418
+ attr_accessor :role
419
+
420
+ # Contact information for the brand
421
+ sig do
422
+ params(
423
+ business_name: T.nilable(String),
424
+ email: T.nilable(String),
425
+ name: String,
426
+ phone: T.nilable(String),
427
+ phone_country_code: T.nilable(String),
428
+ role: T.nilable(String)
429
+ ).returns(T.attached_class)
430
+ end
431
+ def self.new(
432
+ # Business/brand name
433
+ business_name: nil,
434
+ # Contact email address
435
+ email: nil,
436
+ # Primary contact name
437
+ name: nil,
438
+ # Contact phone number in E.164 format
439
+ phone: nil,
440
+ # Contact phone country code (e.g., "1" for US)
441
+ phone_country_code: nil,
442
+ # Contact's role in the business
443
+ role: nil
444
+ )
445
+ end
446
+
447
+ sig do
448
+ override.returns(
449
+ {
450
+ business_name: T.nilable(String),
451
+ email: T.nilable(String),
452
+ name: String,
453
+ phone: T.nilable(String),
454
+ phone_country_code: T.nilable(String),
455
+ role: T.nilable(String)
456
+ }
457
+ )
458
+ end
459
+ def to_hash
460
+ end
461
+ end
462
+
345
463
  # TCR brand identity verification status
346
464
  module IdentityStatus
347
465
  extend Sentdm::Internal::Type::Enum