sentdm 0.5.0 → 0.8.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 (152) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -0
  3. data/README.md +31 -1
  4. data/lib/sentdm/internal/type/base_model.rb +5 -5
  5. data/lib/sentdm/models/api_response_of_contact.rb +9 -6
  6. data/lib/sentdm/models/api_response_of_profile_detail.rb +6 -6
  7. data/lib/sentdm/models/api_response_of_user.rb +6 -6
  8. data/lib/sentdm/models/api_response_template.rb +6 -6
  9. data/lib/sentdm/models/api_response_webhook.rb +4 -4
  10. data/lib/sentdm/models/brands_brand_data.rb +16 -252
  11. data/lib/sentdm/models/contact_delete_params.rb +1 -1
  12. data/lib/sentdm/models/contact_list_response.rb +9 -9
  13. data/lib/sentdm/models/me_retrieve_response.rb +35 -21
  14. data/lib/sentdm/models/message_retrieve_activities_response.rb +7 -7
  15. data/lib/sentdm/models/message_retrieve_status_response.rb +7 -7
  16. data/lib/sentdm/models/message_send_params.rb +5 -3
  17. data/lib/sentdm/models/message_send_response.rb +7 -7
  18. data/lib/sentdm/models/{mutation_request_base.rb → mutation_request.rb} +2 -2
  19. data/lib/sentdm/models/number_lookup_response.rb +4 -4
  20. data/lib/sentdm/models/pagination_meta.rb +3 -3
  21. data/lib/sentdm/models/{profile_complete_setup_params.rb → profile_complete_params.rb} +3 -3
  22. data/lib/sentdm/models/{profile_complete_setup_response.rb → profile_complete_response.rb} +1 -1
  23. data/lib/sentdm/models/profile_create_params.rb +20 -23
  24. data/lib/sentdm/models/profile_delete_params.rb +1 -1
  25. data/lib/sentdm/models/profile_detail.rb +12 -22
  26. data/lib/sentdm/models/profile_list_response.rb +7 -7
  27. data/lib/sentdm/models/profile_update_params.rb +9 -13
  28. data/lib/sentdm/models/profiles/api_response_of_tcr_campaign_with_use_cases.rb +4 -4
  29. data/lib/sentdm/models/profiles/base_dto.rb +32 -0
  30. data/lib/sentdm/models/profiles/campaign_create_params.rb +2 -2
  31. data/lib/sentdm/models/profiles/campaign_data.rb +5 -26
  32. data/lib/sentdm/models/profiles/campaign_delete_params.rb +1 -1
  33. data/lib/sentdm/models/profiles/campaign_list_response.rb +4 -4
  34. data/lib/sentdm/models/profiles/campaign_update_params.rb +2 -2
  35. data/lib/sentdm/models/profiles/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rb +29 -0
  36. data/lib/sentdm/models/profiles/tcr_campaign_with_use_cases.rb +2 -2
  37. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rb +34 -0
  38. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rb +40 -0
  39. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rb +38 -0
  40. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rb +81 -0
  41. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rb +34 -0
  42. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rb +39 -0
  43. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rb +116 -0
  44. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rb +75 -0
  45. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rb +58 -0
  46. data/lib/sentdm/models/template_create_params.rb +3 -2
  47. data/lib/sentdm/models/template_definition.rb +19 -263
  48. data/lib/sentdm/models/template_list_response.rb +9 -9
  49. data/lib/sentdm/models/template_update_params.rb +3 -2
  50. data/lib/sentdm/models/user_list_response.rb +7 -7
  51. data/lib/sentdm/models/user_remove_params.rb +1 -1
  52. data/lib/sentdm/models/webhook_list_event_types_response.rb +4 -4
  53. data/lib/sentdm/models/webhook_list_events_response.rb +4 -4
  54. data/lib/sentdm/models/webhook_list_response.rb +4 -4
  55. data/lib/sentdm/models/webhook_rotate_secret_params.rb +1 -1
  56. data/lib/sentdm/models/webhook_rotate_secret_response.rb +4 -4
  57. data/lib/sentdm/models/webhook_test_response.rb +4 -4
  58. data/lib/sentdm/models.rb +29 -4
  59. data/lib/sentdm/resources/messages.rb +1 -1
  60. data/lib/sentdm/resources/profiles/campaigns.rb +2 -2
  61. data/lib/sentdm/resources/profiles.rb +12 -12
  62. data/lib/sentdm/resources/templates.rb +2 -2
  63. data/lib/sentdm/version.rb +1 -1
  64. data/lib/sentdm.rb +14 -4
  65. data/rbi/sentdm/models/api_response_of_contact.rbi +6 -6
  66. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +6 -6
  67. data/rbi/sentdm/models/api_response_of_user.rbi +6 -6
  68. data/rbi/sentdm/models/api_response_template.rbi +6 -6
  69. data/rbi/sentdm/models/api_response_webhook.rbi +4 -4
  70. data/rbi/sentdm/models/brands_brand_data.rbi +53 -355
  71. data/rbi/sentdm/models/contact_delete_params.rbi +1 -1
  72. data/rbi/sentdm/models/contact_list_response.rbi +9 -9
  73. data/rbi/sentdm/models/me_retrieve_response.rbi +33 -21
  74. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +7 -7
  75. data/rbi/sentdm/models/message_retrieve_status_response.rbi +7 -7
  76. data/rbi/sentdm/models/message_send_params.rbi +6 -3
  77. data/rbi/sentdm/models/message_send_response.rbi +7 -7
  78. data/rbi/sentdm/models/{mutation_request_base.rbi → mutation_request.rbi} +2 -2
  79. data/rbi/sentdm/models/number_lookup_response.rbi +4 -4
  80. data/rbi/sentdm/models/pagination_meta.rbi +3 -3
  81. data/rbi/sentdm/models/{profile_complete_setup_params.rbi → profile_complete_params.rbi} +2 -2
  82. data/rbi/sentdm/models/{profile_complete_setup_response.rbi → profile_complete_response.rbi} +1 -1
  83. data/rbi/sentdm/models/profile_create_params.rbi +27 -33
  84. data/rbi/sentdm/models/profile_delete_params.rbi +1 -1
  85. data/rbi/sentdm/models/profile_detail.rbi +9 -22
  86. data/rbi/sentdm/models/profile_list_response.rbi +7 -7
  87. data/rbi/sentdm/models/profile_update_params.rbi +12 -20
  88. data/rbi/sentdm/models/profiles/api_response_of_tcr_campaign_with_use_cases.rbi +4 -4
  89. data/rbi/sentdm/models/profiles/base_dto.rbi +53 -0
  90. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +2 -2
  91. data/rbi/sentdm/models/profiles/campaign_data.rbi +14 -49
  92. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -1
  93. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +4 -4
  94. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +2 -2
  95. data/rbi/sentdm/models/profiles/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbi +51 -0
  96. data/rbi/sentdm/models/profiles/tcr_campaign_with_use_cases.rbi +2 -2
  97. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rbi +56 -0
  98. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rbi +76 -0
  99. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbi +79 -0
  100. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rbi +104 -0
  101. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rbi +60 -0
  102. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rbi +62 -0
  103. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbi +180 -0
  104. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbi +95 -0
  105. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbi +81 -0
  106. data/rbi/sentdm/models/template_create_params.rbi +4 -2
  107. data/rbi/sentdm/models/template_definition.rbi +82 -415
  108. data/rbi/sentdm/models/template_list_response.rbi +9 -9
  109. data/rbi/sentdm/models/template_update_params.rbi +4 -2
  110. data/rbi/sentdm/models/user_list_response.rbi +7 -7
  111. data/rbi/sentdm/models/user_remove_params.rbi +1 -1
  112. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +4 -4
  113. data/rbi/sentdm/models/webhook_list_events_response.rbi +4 -4
  114. data/rbi/sentdm/models/webhook_list_response.rbi +4 -4
  115. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -1
  116. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +4 -4
  117. data/rbi/sentdm/models/webhook_test_response.rbi +4 -4
  118. data/rbi/sentdm/models.rbi +29 -4
  119. data/rbi/sentdm/resources/messages.rbi +2 -1
  120. data/rbi/sentdm/resources/profiles/campaigns.rbi +2 -2
  121. data/rbi/sentdm/resources/profiles.rbi +20 -26
  122. data/rbi/sentdm/resources/templates.rbi +4 -2
  123. data/sig/sentdm/models/brands_brand_data.rbs +12 -192
  124. data/sig/sentdm/models/contact_delete_params.rbs +1 -1
  125. data/sig/sentdm/models/{mutation_request_base.rbs → mutation_request.rbs} +2 -2
  126. data/sig/sentdm/models/{profile_complete_setup_params.rbs → profile_complete_params.rbs} +2 -2
  127. data/sig/sentdm/models/profile_complete_response.rbs +5 -0
  128. data/sig/sentdm/models/profile_delete_params.rbs +1 -1
  129. data/sig/sentdm/models/profiles/base_dto.rbs +27 -0
  130. data/sig/sentdm/models/profiles/campaign_data.rbs +4 -26
  131. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +1 -1
  132. data/sig/sentdm/models/profiles/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbs +27 -0
  133. data/sig/sentdm/models/profiles/tcr_campaign_with_use_cases.rbs +2 -2
  134. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rbs +24 -0
  135. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rbs +30 -0
  136. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbs +38 -0
  137. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rbs +75 -0
  138. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rbs +32 -0
  139. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rbs +32 -0
  140. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbs +89 -0
  141. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbs +55 -0
  142. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbs +45 -0
  143. data/sig/sentdm/models/template_definition.rbs +20 -233
  144. data/sig/sentdm/models/user_remove_params.rbs +1 -1
  145. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +1 -1
  146. data/sig/sentdm/models.rbs +20 -4
  147. data/sig/sentdm/resources/profiles.rbs +1 -1
  148. metadata +44 -14
  149. data/lib/sentdm/models/base_dto.rb +0 -30
  150. data/rbi/sentdm/models/base_dto.rbi +0 -49
  151. data/sig/sentdm/models/base_dto.rbs +0 -25
  152. data/sig/sentdm/models/profile_complete_setup_response.rbs +0 -5
@@ -0,0 +1,62 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class SentDmServicesCommonContractsPocOsTemplateHeader < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::SentDmServicesCommonContractsPocOsTemplateHeader,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The header template text with optional variable placeholders (e.g., "Welcome to
15
+ # {{0:variable}}")
16
+ sig { returns(T.nilable(String)) }
17
+ attr_reader :template
18
+
19
+ sig { params(template: String).void }
20
+ attr_writer :template
21
+
22
+ # The type of header (e.g., "text", "image", "video", "document")
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :type
25
+
26
+ # List of variables used in the header template
27
+ sig { returns(T.nilable(T::Array[Sentdm::TemplateVariable])) }
28
+ attr_accessor :variables
29
+
30
+ # Header section of a message template
31
+ sig do
32
+ params(
33
+ template: String,
34
+ type: T.nilable(String),
35
+ variables: T.nilable(T::Array[Sentdm::TemplateVariable::OrHash])
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # The header template text with optional variable placeholders (e.g., "Welcome to
40
+ # {{0:variable}}")
41
+ template: nil,
42
+ # The type of header (e.g., "text", "image", "video", "document")
43
+ type: nil,
44
+ # List of variables used in the header template
45
+ variables: nil
46
+ )
47
+ end
48
+
49
+ sig do
50
+ override.returns(
51
+ {
52
+ template: String,
53
+ type: T.nilable(String),
54
+ variables: T.nilable(T::Array[Sentdm::TemplateVariable])
55
+ }
56
+ )
57
+ end
58
+ def to_hash
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,180 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # City
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :city
17
+
18
+ # Country code (e.g., US, CA)
19
+ sig { returns(T.nilable(String)) }
20
+ attr_accessor :country
21
+
22
+ # Country where the business is registered
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :country_of_registration
25
+
26
+ sig do
27
+ returns(
28
+ T.nilable(
29
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo::EntityType::OrSymbol
30
+ )
31
+ )
32
+ end
33
+ attr_accessor :entity_type
34
+
35
+ # Legal business name
36
+ sig { returns(T.nilable(String)) }
37
+ attr_accessor :legal_name
38
+
39
+ # Postal/ZIP code
40
+ sig { returns(T.nilable(String)) }
41
+ attr_accessor :postal_code
42
+
43
+ # State/province code
44
+ sig { returns(T.nilable(String)) }
45
+ attr_accessor :state
46
+
47
+ # Street address
48
+ sig { returns(T.nilable(String)) }
49
+ attr_accessor :street
50
+
51
+ # Tax ID/EIN number
52
+ sig { returns(T.nilable(String)) }
53
+ attr_accessor :tax_id
54
+
55
+ # Type of tax ID (e.g., us_ein, ca_bn)
56
+ sig { returns(T.nilable(String)) }
57
+ attr_accessor :tax_id_type
58
+
59
+ # Business website URL
60
+ sig { returns(T.nilable(String)) }
61
+ attr_accessor :url
62
+
63
+ # Business details and address for brand KYC
64
+ sig do
65
+ params(
66
+ city: T.nilable(String),
67
+ country: T.nilable(String),
68
+ country_of_registration: T.nilable(String),
69
+ entity_type:
70
+ T.nilable(
71
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo::EntityType::OrSymbol
72
+ ),
73
+ legal_name: T.nilable(String),
74
+ postal_code: T.nilable(String),
75
+ state: T.nilable(String),
76
+ street: T.nilable(String),
77
+ tax_id: T.nilable(String),
78
+ tax_id_type: T.nilable(String),
79
+ url: T.nilable(String)
80
+ ).returns(T.attached_class)
81
+ end
82
+ def self.new(
83
+ # City
84
+ city: nil,
85
+ # Country code (e.g., US, CA)
86
+ country: nil,
87
+ # Country where the business is registered
88
+ country_of_registration: nil,
89
+ entity_type: nil,
90
+ # Legal business name
91
+ legal_name: nil,
92
+ # Postal/ZIP code
93
+ postal_code: nil,
94
+ # State/province code
95
+ state: nil,
96
+ # Street address
97
+ street: nil,
98
+ # Tax ID/EIN number
99
+ tax_id: nil,
100
+ # Type of tax ID (e.g., us_ein, ca_bn)
101
+ tax_id_type: nil,
102
+ # Business website URL
103
+ url: nil
104
+ )
105
+ end
106
+
107
+ sig do
108
+ override.returns(
109
+ {
110
+ city: T.nilable(String),
111
+ country: T.nilable(String),
112
+ country_of_registration: T.nilable(String),
113
+ entity_type:
114
+ T.nilable(
115
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo::EntityType::OrSymbol
116
+ ),
117
+ legal_name: T.nilable(String),
118
+ postal_code: T.nilable(String),
119
+ state: T.nilable(String),
120
+ street: T.nilable(String),
121
+ tax_id: T.nilable(String),
122
+ tax_id_type: T.nilable(String),
123
+ url: T.nilable(String)
124
+ }
125
+ )
126
+ end
127
+ def to_hash
128
+ end
129
+
130
+ module EntityType
131
+ extend Sentdm::Internal::Type::Enum
132
+
133
+ TaggedSymbol =
134
+ T.type_alias do
135
+ T.all(
136
+ Symbol,
137
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo::EntityType
138
+ )
139
+ end
140
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
141
+
142
+ PRIVATE_PROFIT =
143
+ T.let(
144
+ :PRIVATE_PROFIT,
145
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo::EntityType::TaggedSymbol
146
+ )
147
+ PUBLIC_PROFIT =
148
+ T.let(
149
+ :PUBLIC_PROFIT,
150
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo::EntityType::TaggedSymbol
151
+ )
152
+ NON_PROFIT =
153
+ T.let(
154
+ :NON_PROFIT,
155
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo::EntityType::TaggedSymbol
156
+ )
157
+ SOLE_PROPRIETOR =
158
+ T.let(
159
+ :SOLE_PROPRIETOR,
160
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo::EntityType::TaggedSymbol
161
+ )
162
+ GOVERNMENT =
163
+ T.let(
164
+ :GOVERNMENT,
165
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo::EntityType::TaggedSymbol
166
+ )
167
+
168
+ sig do
169
+ override.returns(
170
+ T::Array[
171
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo::EntityType::TaggedSymbol
172
+ ]
173
+ )
174
+ end
175
+ def self.values
176
+ end
177
+ end
178
+ end
179
+ end
180
+ end
@@ -0,0 +1,95 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(Sentdm::TcrBrandRelationship::OrSymbol) }
15
+ attr_accessor :brand_relationship
16
+
17
+ sig { returns(Sentdm::TcrVertical::OrSymbol) }
18
+ attr_accessor :vertical
19
+
20
+ # List of destination countries for messaging
21
+ sig { returns(T.nilable(T::Array[Sentdm::DestinationCountry])) }
22
+ attr_accessor :destination_countries
23
+
24
+ # Expected daily messaging volume
25
+ sig { returns(T.nilable(String)) }
26
+ attr_accessor :expected_messaging_volume
27
+
28
+ # Whether this is a TCR (Campaign Registry) application
29
+ sig { returns(T.nilable(T::Boolean)) }
30
+ attr_accessor :is_tcr_application
31
+
32
+ # Additional notes about the business or use case
33
+ sig { returns(T.nilable(String)) }
34
+ attr_accessor :notes
35
+
36
+ # Phone number prefix for messaging (e.g., "+1")
37
+ sig { returns(T.nilable(String)) }
38
+ attr_accessor :phone_number_prefix
39
+
40
+ # Primary messaging use case description
41
+ sig { returns(T.nilable(String)) }
42
+ attr_accessor :primary_use_case
43
+
44
+ # Compliance and TCR information for brand registration
45
+ sig do
46
+ params(
47
+ brand_relationship: Sentdm::TcrBrandRelationship::OrSymbol,
48
+ vertical: Sentdm::TcrVertical::OrSymbol,
49
+ destination_countries:
50
+ T.nilable(T::Array[Sentdm::DestinationCountry::OrHash]),
51
+ expected_messaging_volume: T.nilable(String),
52
+ is_tcr_application: T.nilable(T::Boolean),
53
+ notes: T.nilable(String),
54
+ phone_number_prefix: T.nilable(String),
55
+ primary_use_case: T.nilable(String)
56
+ ).returns(T.attached_class)
57
+ end
58
+ def self.new(
59
+ brand_relationship:,
60
+ vertical:,
61
+ # List of destination countries for messaging
62
+ destination_countries: nil,
63
+ # Expected daily messaging volume
64
+ expected_messaging_volume: nil,
65
+ # Whether this is a TCR (Campaign Registry) application
66
+ is_tcr_application: nil,
67
+ # Additional notes about the business or use case
68
+ notes: nil,
69
+ # Phone number prefix for messaging (e.g., "+1")
70
+ phone_number_prefix: nil,
71
+ # Primary messaging use case description
72
+ primary_use_case: nil
73
+ )
74
+ end
75
+
76
+ sig do
77
+ override.returns(
78
+ {
79
+ brand_relationship: Sentdm::TcrBrandRelationship::OrSymbol,
80
+ vertical: Sentdm::TcrVertical::OrSymbol,
81
+ destination_countries:
82
+ T.nilable(T::Array[Sentdm::DestinationCountry]),
83
+ expected_messaging_volume: T.nilable(String),
84
+ is_tcr_application: T.nilable(T::Boolean),
85
+ notes: T.nilable(String),
86
+ phone_number_prefix: T.nilable(String),
87
+ primary_use_case: T.nilable(String)
88
+ }
89
+ )
90
+ end
91
+ def to_hash
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,81 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Primary contact name (required)
15
+ sig { returns(String) }
16
+ attr_accessor :name
17
+
18
+ # Business/brand name
19
+ sig { returns(T.nilable(String)) }
20
+ attr_accessor :business_name
21
+
22
+ # Contact email address
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :email
25
+
26
+ # Contact phone number in E.164 format
27
+ sig { returns(T.nilable(String)) }
28
+ attr_accessor :phone
29
+
30
+ # Contact phone country code (e.g., "1" for US)
31
+ sig { returns(T.nilable(String)) }
32
+ attr_accessor :phone_country_code
33
+
34
+ # Contact's role in the business
35
+ sig { returns(T.nilable(String)) }
36
+ attr_accessor :role
37
+
38
+ # Contact information for brand KYC
39
+ sig do
40
+ params(
41
+ name: String,
42
+ business_name: T.nilable(String),
43
+ email: T.nilable(String),
44
+ phone: T.nilable(String),
45
+ phone_country_code: T.nilable(String),
46
+ role: T.nilable(String)
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # Primary contact name (required)
51
+ name:,
52
+ # Business/brand name
53
+ business_name: nil,
54
+ # Contact email address
55
+ email: nil,
56
+ # Contact phone number in E.164 format
57
+ phone: nil,
58
+ # Contact phone country code (e.g., "1" for US)
59
+ phone_country_code: nil,
60
+ # Contact's role in the business
61
+ role: nil
62
+ )
63
+ end
64
+
65
+ sig do
66
+ override.returns(
67
+ {
68
+ name: String,
69
+ business_name: T.nilable(String),
70
+ email: T.nilable(String),
71
+ phone: T.nilable(String),
72
+ phone_country_code: T.nilable(String),
73
+ role: T.nilable(String)
74
+ }
75
+ )
76
+ end
77
+ def to_hash
78
+ end
79
+ end
80
+ end
81
+ end
@@ -20,7 +20,8 @@ module Sentdm
20
20
  sig { returns(T.nilable(String)) }
21
21
  attr_accessor :creation_source
22
22
 
23
- # Template definition including header, body, footer, and buttons
23
+ # Complete definition of a message template including header, body, footer, and
24
+ # buttons
24
25
  sig { returns(T.nilable(Sentdm::TemplateDefinition)) }
25
26
  attr_reader :definition
26
27
 
@@ -77,7 +78,8 @@ module Sentdm
77
78
  category: nil,
78
79
  # Source of template creation (default: from-api)
79
80
  creation_source: nil,
80
- # Template definition including header, body, footer, and buttons
81
+ # Complete definition of a message template including header, body, footer, and
82
+ # buttons
81
83
  definition: nil,
82
84
  # Template language code (e.g., en_US) (optional, auto-detected if not provided)
83
85
  language: nil,