sentdm 0.0.2

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 (188) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +11 -0
  4. data/README.md +240 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/sentdm/client.rb +115 -0
  7. data/lib/sentdm/errors.rb +228 -0
  8. data/lib/sentdm/file_part.rb +58 -0
  9. data/lib/sentdm/internal/transport/base_client.rb +573 -0
  10. data/lib/sentdm/internal/transport/pooled_net_requester.rb +210 -0
  11. data/lib/sentdm/internal/type/array_of.rb +168 -0
  12. data/lib/sentdm/internal/type/base_model.rb +531 -0
  13. data/lib/sentdm/internal/type/base_page.rb +55 -0
  14. data/lib/sentdm/internal/type/boolean.rb +77 -0
  15. data/lib/sentdm/internal/type/converter.rb +327 -0
  16. data/lib/sentdm/internal/type/enum.rb +131 -0
  17. data/lib/sentdm/internal/type/file_input.rb +111 -0
  18. data/lib/sentdm/internal/type/hash_of.rb +188 -0
  19. data/lib/sentdm/internal/type/request_parameters.rb +42 -0
  20. data/lib/sentdm/internal/type/union.rb +237 -0
  21. data/lib/sentdm/internal/type/unknown.rb +81 -0
  22. data/lib/sentdm/internal/util.rb +920 -0
  23. data/lib/sentdm/internal.rb +20 -0
  24. data/lib/sentdm/models/contact_list_item.rb +96 -0
  25. data/lib/sentdm/models/contact_list_params.rb +30 -0
  26. data/lib/sentdm/models/contact_list_response.rb +40 -0
  27. data/lib/sentdm/models/contact_retrieve_by_phone_params.rb +22 -0
  28. data/lib/sentdm/models/contact_retrieve_id_params.rb +22 -0
  29. data/lib/sentdm/models/message_retrieve_params.rb +14 -0
  30. data/lib/sentdm/models/message_retrieve_response.rb +227 -0
  31. data/lib/sentdm/models/message_send_quick_message_params.rb +34 -0
  32. data/lib/sentdm/models/message_send_to_contact_params.rb +46 -0
  33. data/lib/sentdm/models/message_send_to_phone_params.rb +47 -0
  34. data/lib/sentdm/models/number_lookup_retrieve_params.rb +20 -0
  35. data/lib/sentdm/models/number_lookup_retrieve_response.rb +83 -0
  36. data/lib/sentdm/models/organization_list_params.rb +14 -0
  37. data/lib/sentdm/models/organization_list_response.rb +57 -0
  38. data/lib/sentdm/models/organization_retrieve_profiles_params.rb +14 -0
  39. data/lib/sentdm/models/organization_retrieve_profiles_response.rb +22 -0
  40. data/lib/sentdm/models/organizations/customer_user.rb +96 -0
  41. data/lib/sentdm/models/organizations/user_delete_params.rb +22 -0
  42. data/lib/sentdm/models/organizations/user_invite_params.rb +40 -0
  43. data/lib/sentdm/models/organizations/user_list_params.rb +28 -0
  44. data/lib/sentdm/models/organizations/user_list_response.rb +36 -0
  45. data/lib/sentdm/models/organizations/user_retrieve_params.rb +22 -0
  46. data/lib/sentdm/models/organizations/user_update_role_params.rb +28 -0
  47. data/lib/sentdm/models/profile_summary.rb +45 -0
  48. data/lib/sentdm/models/template_body_content.rb +27 -0
  49. data/lib/sentdm/models/template_create_params.rb +53 -0
  50. data/lib/sentdm/models/template_definition.rb +310 -0
  51. data/lib/sentdm/models/template_delete_params.rb +14 -0
  52. data/lib/sentdm/models/template_list_params.rb +54 -0
  53. data/lib/sentdm/models/template_list_response.rb +40 -0
  54. data/lib/sentdm/models/template_response.rb +100 -0
  55. data/lib/sentdm/models/template_retrieve_params.rb +14 -0
  56. data/lib/sentdm/models/template_variable.rb +74 -0
  57. data/lib/sentdm/models.rb +83 -0
  58. data/lib/sentdm/request_options.rb +77 -0
  59. data/lib/sentdm/resources/contacts.rb +88 -0
  60. data/lib/sentdm/resources/messages.rb +130 -0
  61. data/lib/sentdm/resources/number_lookup.rb +37 -0
  62. data/lib/sentdm/resources/organizations/users.rb +150 -0
  63. data/lib/sentdm/resources/organizations.rb +58 -0
  64. data/lib/sentdm/resources/templates.rb +131 -0
  65. data/lib/sentdm/version.rb +5 -0
  66. data/lib/sentdm.rb +94 -0
  67. data/manifest.yaml +17 -0
  68. data/rbi/sentdm/client.rbi +80 -0
  69. data/rbi/sentdm/errors.rbi +205 -0
  70. data/rbi/sentdm/file_part.rbi +37 -0
  71. data/rbi/sentdm/internal/transport/base_client.rbi +297 -0
  72. data/rbi/sentdm/internal/transport/pooled_net_requester.rbi +82 -0
  73. data/rbi/sentdm/internal/type/array_of.rbi +104 -0
  74. data/rbi/sentdm/internal/type/base_model.rbi +299 -0
  75. data/rbi/sentdm/internal/type/base_page.rbi +42 -0
  76. data/rbi/sentdm/internal/type/boolean.rbi +58 -0
  77. data/rbi/sentdm/internal/type/converter.rbi +204 -0
  78. data/rbi/sentdm/internal/type/enum.rbi +82 -0
  79. data/rbi/sentdm/internal/type/file_input.rbi +59 -0
  80. data/rbi/sentdm/internal/type/hash_of.rbi +104 -0
  81. data/rbi/sentdm/internal/type/request_parameters.rbi +29 -0
  82. data/rbi/sentdm/internal/type/union.rbi +126 -0
  83. data/rbi/sentdm/internal/type/unknown.rbi +58 -0
  84. data/rbi/sentdm/internal/util.rbi +484 -0
  85. data/rbi/sentdm/internal.rbi +16 -0
  86. data/rbi/sentdm/models/contact_list_item.rbi +144 -0
  87. data/rbi/sentdm/models/contact_list_params.rbi +51 -0
  88. data/rbi/sentdm/models/contact_list_response.rbi +74 -0
  89. data/rbi/sentdm/models/contact_retrieve_by_phone_params.rbi +40 -0
  90. data/rbi/sentdm/models/contact_retrieve_id_params.rbi +40 -0
  91. data/rbi/sentdm/models/message_retrieve_params.rbi +27 -0
  92. data/rbi/sentdm/models/message_retrieve_response.rbi +376 -0
  93. data/rbi/sentdm/models/message_send_quick_message_params.rbi +56 -0
  94. data/rbi/sentdm/models/message_send_to_contact_params.rbi +63 -0
  95. data/rbi/sentdm/models/message_send_to_phone_params.rbi +65 -0
  96. data/rbi/sentdm/models/number_lookup_retrieve_params.rbi +35 -0
  97. data/rbi/sentdm/models/number_lookup_retrieve_response.rbi +132 -0
  98. data/rbi/sentdm/models/organization_list_params.rbi +27 -0
  99. data/rbi/sentdm/models/organization_list_response.rbi +131 -0
  100. data/rbi/sentdm/models/organization_retrieve_profiles_params.rbi +30 -0
  101. data/rbi/sentdm/models/organization_retrieve_profiles_response.rbi +47 -0
  102. data/rbi/sentdm/models/organizations/customer_user.rbi +129 -0
  103. data/rbi/sentdm/models/organizations/user_delete_params.rbi +40 -0
  104. data/rbi/sentdm/models/organizations/user_invite_params.rbi +73 -0
  105. data/rbi/sentdm/models/organizations/user_list_params.rbi +48 -0
  106. data/rbi/sentdm/models/organizations/user_list_response.rbi +71 -0
  107. data/rbi/sentdm/models/organizations/user_retrieve_params.rbi +40 -0
  108. data/rbi/sentdm/models/organizations/user_update_role_params.rbi +51 -0
  109. data/rbi/sentdm/models/profile_summary.rbi +74 -0
  110. data/rbi/sentdm/models/template_body_content.rbi +46 -0
  111. data/rbi/sentdm/models/template_create_params.rbi +81 -0
  112. data/rbi/sentdm/models/template_definition.rbi +497 -0
  113. data/rbi/sentdm/models/template_delete_params.rbi +27 -0
  114. data/rbi/sentdm/models/template_list_params.rbi +75 -0
  115. data/rbi/sentdm/models/template_list_response.rbi +74 -0
  116. data/rbi/sentdm/models/template_response.rbi +149 -0
  117. data/rbi/sentdm/models/template_retrieve_params.rbi +27 -0
  118. data/rbi/sentdm/models/template_variable.rbi +120 -0
  119. data/rbi/sentdm/models.rbi +46 -0
  120. data/rbi/sentdm/request_options.rbi +55 -0
  121. data/rbi/sentdm/resources/contacts.rbi +63 -0
  122. data/rbi/sentdm/resources/messages.rbi +97 -0
  123. data/rbi/sentdm/resources/number_lookup.rbi +24 -0
  124. data/rbi/sentdm/resources/organizations/users.rbi +95 -0
  125. data/rbi/sentdm/resources/organizations.rbi +37 -0
  126. data/rbi/sentdm/resources/templates.rbi +103 -0
  127. data/rbi/sentdm/version.rbi +5 -0
  128. data/sig/sentdm/client.rbs +41 -0
  129. data/sig/sentdm/errors.rbs +117 -0
  130. data/sig/sentdm/file_part.rbs +21 -0
  131. data/sig/sentdm/internal/transport/base_client.rbs +133 -0
  132. data/sig/sentdm/internal/transport/pooled_net_requester.rbs +48 -0
  133. data/sig/sentdm/internal/type/array_of.rbs +48 -0
  134. data/sig/sentdm/internal/type/base_model.rbs +102 -0
  135. data/sig/sentdm/internal/type/base_page.rbs +24 -0
  136. data/sig/sentdm/internal/type/boolean.rbs +26 -0
  137. data/sig/sentdm/internal/type/converter.rbs +79 -0
  138. data/sig/sentdm/internal/type/enum.rbs +32 -0
  139. data/sig/sentdm/internal/type/file_input.rbs +25 -0
  140. data/sig/sentdm/internal/type/hash_of.rbs +48 -0
  141. data/sig/sentdm/internal/type/request_parameters.rbs +17 -0
  142. data/sig/sentdm/internal/type/union.rbs +52 -0
  143. data/sig/sentdm/internal/type/unknown.rbs +26 -0
  144. data/sig/sentdm/internal/util.rbs +185 -0
  145. data/sig/sentdm/internal.rbs +9 -0
  146. data/sig/sentdm/models/contact_list_item.rbs +85 -0
  147. data/sig/sentdm/models/contact_list_params.rbs +28 -0
  148. data/sig/sentdm/models/contact_list_response.rbs +52 -0
  149. data/sig/sentdm/models/contact_retrieve_by_phone_params.rbs +23 -0
  150. data/sig/sentdm/models/contact_retrieve_id_params.rbs +20 -0
  151. data/sig/sentdm/models/message_retrieve_params.rbs +15 -0
  152. data/sig/sentdm/models/message_retrieve_response.rbs +188 -0
  153. data/sig/sentdm/models/message_send_quick_message_params.rbs +28 -0
  154. data/sig/sentdm/models/message_send_to_contact_params.rbs +36 -0
  155. data/sig/sentdm/models/message_send_to_phone_params.rbs +36 -0
  156. data/sig/sentdm/models/number_lookup_retrieve_params.rbs +23 -0
  157. data/sig/sentdm/models/number_lookup_retrieve_response.rbs +78 -0
  158. data/sig/sentdm/models/organization_list_params.rbs +15 -0
  159. data/sig/sentdm/models/organization_list_response.rbs +76 -0
  160. data/sig/sentdm/models/organization_retrieve_profiles_params.rbs +15 -0
  161. data/sig/sentdm/models/organization_retrieve_profiles_response.rbs +28 -0
  162. data/sig/sentdm/models/organizations/customer_user.rbs +91 -0
  163. data/sig/sentdm/models/organizations/user_delete_params.rbs +25 -0
  164. data/sig/sentdm/models/organizations/user_invite_params.rbs +44 -0
  165. data/sig/sentdm/models/organizations/user_list_params.rbs +30 -0
  166. data/sig/sentdm/models/organizations/user_list_response.rbs +47 -0
  167. data/sig/sentdm/models/organizations/user_retrieve_params.rbs +25 -0
  168. data/sig/sentdm/models/organizations/user_update_role_params.rbs +32 -0
  169. data/sig/sentdm/models/profile_summary.rbs +51 -0
  170. data/sig/sentdm/models/template_body_content.rbs +32 -0
  171. data/sig/sentdm/models/template_create_params.rbs +43 -0
  172. data/sig/sentdm/models/template_definition.rbs +258 -0
  173. data/sig/sentdm/models/template_delete_params.rbs +15 -0
  174. data/sig/sentdm/models/template_list_params.rbs +46 -0
  175. data/sig/sentdm/models/template_list_response.rbs +52 -0
  176. data/sig/sentdm/models/template_response.rbs +92 -0
  177. data/sig/sentdm/models/template_retrieve_params.rbs +15 -0
  178. data/sig/sentdm/models/template_variable.rbs +87 -0
  179. data/sig/sentdm/models.rbs +43 -0
  180. data/sig/sentdm/request_options.rbs +34 -0
  181. data/sig/sentdm/resources/contacts.rbs +23 -0
  182. data/sig/sentdm/resources/messages.rbs +32 -0
  183. data/sig/sentdm/resources/number_lookup.rbs +12 -0
  184. data/sig/sentdm/resources/organizations/users.rbs +44 -0
  185. data/sig/sentdm/resources/organizations.rbs +18 -0
  186. data/sig/sentdm/resources/templates.rbs +31 -0
  187. data/sig/sentdm/version.rbs +3 -0
  188. metadata +259 -0
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Organizations
6
+ class UserListParams < Sentdm::Internal::Type::BaseModel
7
+ extend Sentdm::Internal::Type::RequestParameters::Converter
8
+ include Sentdm::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Sentdm::Organizations::UserListParams,
14
+ Sentdm::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(Integer) }
19
+ attr_accessor :page
20
+
21
+ sig { returns(Integer) }
22
+ attr_accessor :page_size
23
+
24
+ sig do
25
+ params(
26
+ page: Integer,
27
+ page_size: Integer,
28
+ request_options: Sentdm::RequestOptions::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(page:, page_size:, request_options: {})
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ page: Integer,
38
+ page_size: Integer,
39
+ request_options: Sentdm::RequestOptions
40
+ }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,71 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Organizations
6
+ class UserListResponse < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Sentdm::Models::Organizations::UserListResponse,
11
+ Sentdm::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(T.nilable(Integer)) }
16
+ attr_reader :page
17
+
18
+ sig { params(page: Integer).void }
19
+ attr_writer :page
20
+
21
+ sig { returns(T.nilable(Integer)) }
22
+ attr_reader :page_size
23
+
24
+ sig { params(page_size: Integer).void }
25
+ attr_writer :page_size
26
+
27
+ sig { returns(T.nilable(Integer)) }
28
+ attr_reader :total_count
29
+
30
+ sig { params(total_count: Integer).void }
31
+ attr_writer :total_count
32
+
33
+ sig do
34
+ returns(T.nilable(T::Array[Sentdm::Organizations::CustomerUser]))
35
+ end
36
+ attr_reader :users
37
+
38
+ sig do
39
+ params(
40
+ users: T::Array[Sentdm::Organizations::CustomerUser::OrHash]
41
+ ).void
42
+ end
43
+ attr_writer :users
44
+
45
+ sig do
46
+ params(
47
+ page: Integer,
48
+ page_size: Integer,
49
+ total_count: Integer,
50
+ users: T::Array[Sentdm::Organizations::CustomerUser::OrHash]
51
+ ).returns(T.attached_class)
52
+ end
53
+ def self.new(page: nil, page_size: nil, total_count: nil, users: nil)
54
+ end
55
+
56
+ sig do
57
+ override.returns(
58
+ {
59
+ page: Integer,
60
+ page_size: Integer,
61
+ total_count: Integer,
62
+ users: T::Array[Sentdm::Organizations::CustomerUser]
63
+ }
64
+ )
65
+ end
66
+ def to_hash
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Organizations
6
+ class UserRetrieveParams < Sentdm::Internal::Type::BaseModel
7
+ extend Sentdm::Internal::Type::RequestParameters::Converter
8
+ include Sentdm::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Sentdm::Organizations::UserRetrieveParams,
14
+ Sentdm::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :customer_id
20
+
21
+ sig do
22
+ params(
23
+ customer_id: String,
24
+ request_options: Sentdm::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(customer_id:, request_options: {})
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ { customer_id: String, request_options: Sentdm::RequestOptions }
33
+ )
34
+ end
35
+ def to_hash
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Organizations
6
+ class UserUpdateRoleParams < Sentdm::Internal::Type::BaseModel
7
+ extend Sentdm::Internal::Type::RequestParameters::Converter
8
+ include Sentdm::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Sentdm::Organizations::UserUpdateRoleParams,
14
+ Sentdm::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :customer_id
20
+
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :role
23
+
24
+ sig { params(role: String).void }
25
+ attr_writer :role
26
+
27
+ sig do
28
+ params(
29
+ customer_id: String,
30
+ role: String,
31
+ request_options: Sentdm::RequestOptions::OrHash
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(customer_id:, role: nil, request_options: {})
35
+ end
36
+
37
+ sig do
38
+ override.returns(
39
+ {
40
+ customer_id: String,
41
+ role: String,
42
+ request_options: Sentdm::RequestOptions
43
+ }
44
+ )
45
+ end
46
+ def to_hash
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,74 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ProfileSummary < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::ProfileSummary, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ attr_reader :id
13
+
14
+ sig { params(id: String).void }
15
+ attr_writer :id
16
+
17
+ sig { returns(T.nilable(Time)) }
18
+ attr_reader :created_at
19
+
20
+ sig { params(created_at: Time).void }
21
+ attr_writer :created_at
22
+
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :description
25
+
26
+ sig { returns(T.nilable(String)) }
27
+ attr_accessor :icon
28
+
29
+ sig { returns(T.nilable(String)) }
30
+ attr_reader :name
31
+
32
+ sig { params(name: String).void }
33
+ attr_writer :name
34
+
35
+ sig { returns(T.nilable(String)) }
36
+ attr_accessor :short_name
37
+
38
+ sig do
39
+ params(
40
+ id: String,
41
+ created_at: Time,
42
+ description: T.nilable(String),
43
+ icon: T.nilable(String),
44
+ name: String,
45
+ short_name: T.nilable(String)
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ id: nil,
50
+ created_at: nil,
51
+ description: nil,
52
+ icon: nil,
53
+ name: nil,
54
+ short_name: nil
55
+ )
56
+ end
57
+
58
+ sig do
59
+ override.returns(
60
+ {
61
+ id: String,
62
+ created_at: Time,
63
+ description: T.nilable(String),
64
+ icon: T.nilable(String),
65
+ name: String,
66
+ short_name: T.nilable(String)
67
+ }
68
+ )
69
+ end
70
+ def to_hash
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,46 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class TemplateBodyContent < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::TemplateBodyContent, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ attr_reader :template
13
+
14
+ sig { params(template: String).void }
15
+ attr_writer :template
16
+
17
+ sig { returns(T.nilable(String)) }
18
+ attr_accessor :type
19
+
20
+ sig { returns(T.nilable(T::Array[Sentdm::TemplateVariable])) }
21
+ attr_accessor :variables
22
+
23
+ sig do
24
+ params(
25
+ template: String,
26
+ type: T.nilable(String),
27
+ variables: T.nilable(T::Array[Sentdm::TemplateVariable::OrHash])
28
+ ).returns(T.attached_class)
29
+ end
30
+ def self.new(template: nil, type: nil, variables: nil)
31
+ end
32
+
33
+ sig do
34
+ override.returns(
35
+ {
36
+ template: String,
37
+ type: T.nilable(String),
38
+ variables: T.nilable(T::Array[Sentdm::TemplateVariable])
39
+ }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,81 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class TemplateCreateParams < Sentdm::Internal::Type::BaseModel
6
+ extend Sentdm::Internal::Type::RequestParameters::Converter
7
+ include Sentdm::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::TemplateCreateParams, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ # Template definition containing header, body, footer, and buttons
15
+ sig { returns(Sentdm::TemplateDefinition) }
16
+ attr_reader :definition
17
+
18
+ sig { params(definition: Sentdm::TemplateDefinition::OrHash).void }
19
+ attr_writer :definition
20
+
21
+ # The template category (e.g., MARKETING, UTILITY, AUTHENTICATION). Can only be
22
+ # set when creating a new template. If not provided, will be auto-generated using
23
+ # AI.
24
+ sig { returns(T.nilable(String)) }
25
+ attr_accessor :category
26
+
27
+ # The template language code (e.g., en_US, es_ES). Can only be set when creating a
28
+ # new template. If not provided, will be auto-detected using AI.
29
+ sig { returns(T.nilable(String)) }
30
+ attr_accessor :language
31
+
32
+ # When false, the template will be saved as draft. When true, the template will be
33
+ # submitted for review.
34
+ sig { returns(T.nilable(T::Boolean)) }
35
+ attr_reader :submit_for_review
36
+
37
+ sig { params(submit_for_review: T::Boolean).void }
38
+ attr_writer :submit_for_review
39
+
40
+ sig do
41
+ params(
42
+ definition: Sentdm::TemplateDefinition::OrHash,
43
+ category: T.nilable(String),
44
+ language: T.nilable(String),
45
+ submit_for_review: T::Boolean,
46
+ request_options: Sentdm::RequestOptions::OrHash
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # Template definition containing header, body, footer, and buttons
51
+ definition:,
52
+ # The template category (e.g., MARKETING, UTILITY, AUTHENTICATION). Can only be
53
+ # set when creating a new template. If not provided, will be auto-generated using
54
+ # AI.
55
+ category: nil,
56
+ # The template language code (e.g., en_US, es_ES). Can only be set when creating a
57
+ # new template. If not provided, will be auto-detected using AI.
58
+ language: nil,
59
+ # When false, the template will be saved as draft. When true, the template will be
60
+ # submitted for review.
61
+ submit_for_review: nil,
62
+ request_options: {}
63
+ )
64
+ end
65
+
66
+ sig do
67
+ override.returns(
68
+ {
69
+ definition: Sentdm::TemplateDefinition,
70
+ category: T.nilable(String),
71
+ language: T.nilable(String),
72
+ submit_for_review: T::Boolean,
73
+ request_options: Sentdm::RequestOptions
74
+ }
75
+ )
76
+ end
77
+ def to_hash
78
+ end
79
+ end
80
+ end
81
+ end