sentdm 0.30.0 → 0.31.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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +29 -1
  4. data/lib/sentdm/internal/contacts_page.rb +115 -0
  5. data/lib/sentdm/internal/conversations_page.rb +115 -0
  6. data/lib/sentdm/internal/templates_page.rb +115 -0
  7. data/lib/sentdm/internal/webhook_events_page.rb +115 -0
  8. data/lib/sentdm/internal/webhooks_page.rb +115 -0
  9. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -1
  10. data/lib/sentdm/models/contact_list_params.rb +13 -13
  11. data/lib/sentdm/models/contact_response.rb +1 -0
  12. data/lib/sentdm/models/conversation_list_messages_params.rb +5 -5
  13. data/lib/sentdm/models/conversation_list_params.rb +5 -5
  14. data/lib/sentdm/models/template.rb +1 -0
  15. data/lib/sentdm/models/template_list_params.rb +17 -17
  16. data/lib/sentdm/models/webhook_list_events_params.rb +5 -5
  17. data/lib/sentdm/models/webhook_list_events_response.rb +108 -168
  18. data/lib/sentdm/models/webhook_list_params.rb +11 -11
  19. data/lib/sentdm/models/webhook_response.rb +1 -0
  20. data/lib/sentdm/resources/contacts.rb +8 -7
  21. data/lib/sentdm/resources/conversations.rb +10 -8
  22. data/lib/sentdm/resources/templates.rb +10 -9
  23. data/lib/sentdm/resources/webhooks.rb +12 -10
  24. data/lib/sentdm/version.rb +1 -1
  25. data/lib/sentdm.rb +5 -3
  26. data/rbi/sentdm/internal/contacts_page.rbi +71 -0
  27. data/rbi/sentdm/internal/conversations_page.rbi +71 -0
  28. data/rbi/sentdm/internal/templates_page.rbi +71 -0
  29. data/rbi/sentdm/internal/webhook_events_page.rbi +71 -0
  30. data/rbi/sentdm/internal/webhooks_page.rbi +71 -0
  31. data/rbi/sentdm/models/contact_list_params.rbi +19 -13
  32. data/rbi/sentdm/models/conversation_list_messages_params.rbi +12 -6
  33. data/rbi/sentdm/models/conversation_list_params.rbi +16 -5
  34. data/rbi/sentdm/models/template_list_params.rbi +22 -16
  35. data/rbi/sentdm/models/webhook_list_events_params.rbi +12 -6
  36. data/rbi/sentdm/models/webhook_list_events_response.rbi +114 -263
  37. data/rbi/sentdm/models/webhook_list_params.rbi +16 -10
  38. data/rbi/sentdm/resources/contacts.rbi +6 -6
  39. data/rbi/sentdm/resources/conversations.rbi +14 -6
  40. data/rbi/sentdm/resources/templates.rbi +7 -7
  41. data/rbi/sentdm/resources/webhooks.rbi +12 -8
  42. data/sig/sentdm/internal/contacts_page.rbs +41 -0
  43. data/sig/sentdm/internal/conversations_page.rbs +41 -0
  44. data/sig/sentdm/internal/templates_page.rbs +44 -0
  45. data/sig/sentdm/internal/webhook_events_page.rbs +41 -0
  46. data/sig/sentdm/internal/webhooks_page.rbs +41 -0
  47. data/sig/sentdm/models/contact_list_params.rbs +11 -7
  48. data/sig/sentdm/models/conversation_list_messages_params.rbs +8 -4
  49. data/sig/sentdm/models/conversation_list_params.rbs +8 -4
  50. data/sig/sentdm/models/template_list_params.rbs +14 -10
  51. data/sig/sentdm/models/webhook_list_events_params.rbs +8 -4
  52. data/sig/sentdm/models/webhook_list_events_response.rbs +63 -127
  53. data/sig/sentdm/models/webhook_list_params.rbs +11 -7
  54. data/sig/sentdm/resources/contacts.rbs +3 -3
  55. data/sig/sentdm/resources/conversations.rbs +6 -6
  56. data/sig/sentdm/resources/templates.rbs +3 -3
  57. data/sig/sentdm/resources/webhooks.rbs +6 -6
  58. metadata +16 -10
  59. data/lib/sentdm/models/contact_list_response.rb +0 -65
  60. data/lib/sentdm/models/template_list_response.rb +0 -65
  61. data/lib/sentdm/models/webhook_list_response.rb +0 -65
  62. data/rbi/sentdm/models/contact_list_response.rbi +0 -128
  63. data/rbi/sentdm/models/template_list_response.rbi +0 -128
  64. data/rbi/sentdm/models/webhook_list_response.rbi +0 -128
  65. data/sig/sentdm/models/contact_list_response.rbs +0 -67
  66. data/sig/sentdm/models/template_list_response.rbs +0 -65
  67. data/sig/sentdm/models/webhook_list_response.rbs +0 -67
@@ -131,16 +131,16 @@ module Sentdm
131
131
  # Retrieves a paginated list of message templates for the authenticated customer.
132
132
  # Supports filtering by status, category, and search term.
133
133
  #
134
- # @overload list(page:, page_size:, category: nil, is_welcome_playground: nil, search: nil, status: nil, x_profile_id: nil, request_options: {})
135
- #
136
- # @param page [Integer] Query param: Page number (1-indexed)
137
- #
138
- # @param page_size [Integer] Query param: Number of items per page
134
+ # @overload list(category: nil, is_welcome_playground: nil, page: nil, page_size: nil, search: nil, status: nil, x_profile_id: nil, request_options: {})
139
135
  #
140
136
  # @param category [String, nil] Query param: Optional category filter: MARKETING, UTILITY, AUTHENTICATION
141
137
  #
142
138
  # @param is_welcome_playground [Boolean, nil] Query param: Accepted and ignored. It used to filter on the welcome-playground m
143
139
  #
140
+ # @param page [Integer] Query param: Page number (1-indexed)
141
+ #
142
+ # @param page_size [Integer] Query param: Number of items per page
143
+ #
144
144
  # @param search [String, nil] Query param: Optional search term for filtering templates
145
145
  #
146
146
  # @param status [String, nil] Query param: Optional status filter: APPROVED, PENDING, REJECTED
@@ -149,11 +149,11 @@ module Sentdm
149
149
  #
150
150
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
151
151
  #
152
- # @return [Sentdm::Models::TemplateListResponse]
152
+ # @return [Sentdm::Internal::TemplatesPage<Sentdm::Models::Template>]
153
153
  #
154
154
  # @see Sentdm::Models::TemplateListParams
155
- def list(params)
156
- query_params = [:page, :page_size, :category, :is_welcome_playground, :search, :status]
155
+ def list(params = {})
156
+ query_params = [:category, :is_welcome_playground, :page, :page_size, :search, :status]
157
157
  parsed, options = Sentdm::TemplateListParams.dump_request(params)
158
158
  query = Sentdm::Internal::Util.encode_query_params(parsed.slice(*query_params))
159
159
  @client.request(
@@ -161,7 +161,8 @@ module Sentdm
161
161
  path: "v3/templates",
162
162
  query: query,
163
163
  headers: parsed.except(*query_params).transform_keys(x_profile_id: "x-profile-id"),
164
- model: Sentdm::Models::TemplateListResponse,
164
+ page: Sentdm::Internal::TemplatesPage,
165
+ model: Sentdm::Template,
165
166
  options: options
166
167
  )
167
168
  end
@@ -134,25 +134,25 @@ module Sentdm
134
134
  #
135
135
  # Retrieves a paginated list of webhooks for the authenticated customer.
136
136
  #
137
- # @overload list(page:, page_size:, is_active: nil, search: nil, x_profile_id: nil, request_options: {})
137
+ # @overload list(is_active: nil, page: nil, page_size: nil, search: nil, x_profile_id: nil, request_options: {})
138
+ #
139
+ # @param is_active [Boolean, nil] Query param
138
140
  #
139
141
  # @param page [Integer] Query param
140
142
  #
141
143
  # @param page_size [Integer] Query param
142
144
  #
143
- # @param is_active [Boolean, nil] Query param
144
- #
145
145
  # @param search [String, nil] Query param
146
146
  #
147
147
  # @param x_profile_id [String] Header param: Profile UUID to scope the request to a child profile. Only organiz
148
148
  #
149
149
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
150
150
  #
151
- # @return [Sentdm::Models::WebhookListResponse]
151
+ # @return [Sentdm::Internal::WebhooksPage<Sentdm::Models::WebhookResponse>]
152
152
  #
153
153
  # @see Sentdm::Models::WebhookListParams
154
- def list(params)
155
- query_params = [:page, :page_size, :is_active, :search]
154
+ def list(params = {})
155
+ query_params = [:is_active, :page, :page_size, :search]
156
156
  parsed, options = Sentdm::WebhookListParams.dump_request(params)
157
157
  query = Sentdm::Internal::Util.encode_query_params(parsed.slice(*query_params))
158
158
  @client.request(
@@ -160,7 +160,8 @@ module Sentdm
160
160
  path: "v3/webhooks",
161
161
  query: query,
162
162
  headers: parsed.except(*query_params).transform_keys(x_profile_id: "x-profile-id"),
163
- model: Sentdm::Models::WebhookListResponse,
163
+ page: Sentdm::Internal::WebhooksPage,
164
+ model: Sentdm::WebhookResponse,
164
165
  options: options
165
166
  )
166
167
  end
@@ -222,7 +223,7 @@ module Sentdm
222
223
  #
223
224
  # Retrieves a paginated list of delivery events for the specified webhook.
224
225
  #
225
- # @overload list_events(id, page:, page_size:, search: nil, x_profile_id: nil, request_options: {})
226
+ # @overload list_events(id, page: nil, page_size: nil, search: nil, x_profile_id: nil, request_options: {})
226
227
  #
227
228
  # @param id [String] Path param
228
229
  #
@@ -236,10 +237,10 @@ module Sentdm
236
237
  #
237
238
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
238
239
  #
239
- # @return [Sentdm::Models::WebhookListEventsResponse]
240
+ # @return [Sentdm::Internal::WebhookEventsPage<Sentdm::Models::WebhookListEventsResponse>]
240
241
  #
241
242
  # @see Sentdm::Models::WebhookListEventsParams
242
- def list_events(id, params)
243
+ def list_events(id, params = {})
243
244
  query_params = [:page, :page_size, :search]
244
245
  parsed, options = Sentdm::WebhookListEventsParams.dump_request(params)
245
246
  query = Sentdm::Internal::Util.encode_query_params(parsed.slice(*query_params))
@@ -248,6 +249,7 @@ module Sentdm
248
249
  path: ["v3/webhooks/%1$s/events", id],
249
250
  query: query,
250
251
  headers: parsed.except(*query_params).transform_keys(x_profile_id: "x-profile-id"),
252
+ page: Sentdm::Internal::WebhookEventsPage,
251
253
  model: Sentdm::Models::WebhookListEventsResponse,
252
254
  options: options
253
255
  )
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Sentdm
4
- VERSION = "0.30.0"
4
+ VERSION = "0.31.0"
5
5
  end
data/lib/sentdm.rb CHANGED
@@ -52,6 +52,11 @@ require_relative "sentdm/errors"
52
52
  require_relative "sentdm/internal/transport/base_client"
53
53
  require_relative "sentdm/internal/transport/pooled_net_requester"
54
54
  require_relative "sentdm/client"
55
+ require_relative "sentdm/internal/contacts_page"
56
+ require_relative "sentdm/internal/conversations_page"
57
+ require_relative "sentdm/internal/templates_page"
58
+ require_relative "sentdm/internal/webhook_events_page"
59
+ require_relative "sentdm/internal/webhooks_page"
55
60
  require_relative "sentdm/models/mutation_request"
56
61
  require_relative "sentdm/models/api_meta"
57
62
  require_relative "sentdm/models/api_response_of_contact"
@@ -70,7 +75,6 @@ require_relative "sentdm/models/brands_brand_data"
70
75
  require_relative "sentdm/models/contact_create_params"
71
76
  require_relative "sentdm/models/contact_delete_params"
72
77
  require_relative "sentdm/models/contact_list_params"
73
- require_relative "sentdm/models/contact_list_response"
74
78
  require_relative "sentdm/models/contact_message_summary"
75
79
  require_relative "sentdm/models/contact_response"
76
80
  require_relative "sentdm/models/contact_retrieve_message_summary_params"
@@ -133,7 +137,6 @@ require_relative "sentdm/models/template_event_payload"
133
137
  require_relative "sentdm/models/template_footer"
134
138
  require_relative "sentdm/models/template_header"
135
139
  require_relative "sentdm/models/template_list_params"
136
- require_relative "sentdm/models/template_list_response"
137
140
  require_relative "sentdm/models/template_retrieve_params"
138
141
  require_relative "sentdm/models/template_update_params"
139
142
  require_relative "sentdm/models/template_variable"
@@ -152,7 +155,6 @@ require_relative "sentdm/models/webhook_list_events_response"
152
155
  require_relative "sentdm/models/webhook_list_event_types_params"
153
156
  require_relative "sentdm/models/webhook_list_event_types_response"
154
157
  require_relative "sentdm/models/webhook_list_params"
155
- require_relative "sentdm/models/webhook_list_response"
156
158
  require_relative "sentdm/models/webhook_response"
157
159
  require_relative "sentdm/models/webhook_retrieve_params"
158
160
  require_relative "sentdm/models/webhook_rotate_secret_params"
@@ -0,0 +1,71 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Internal
5
+ class ContactsPage
6
+ include Sentdm::Internal::Type::BasePage
7
+
8
+ Elem = type_member
9
+
10
+ sig { returns(Data) }
11
+ attr_accessor :data
12
+
13
+ # @api private
14
+ sig { returns(String) }
15
+ def inspect
16
+ end
17
+
18
+ class Data < Sentdm::Internal::Type::BaseModel
19
+ OrHash = T.type_alias { T.any(Data, Sentdm::Internal::AnyHash) }
20
+
21
+ sig { returns(T.nilable(T::Array[T.anything])) }
22
+ attr_reader :contacts
23
+
24
+ sig { params(contacts: T::Array[T.anything]).void }
25
+ attr_writer :contacts
26
+
27
+ sig { returns(T.nilable(Data::Pagination)) }
28
+ attr_reader :pagination
29
+
30
+ sig { params(pagination: Data::Pagination::OrHash).void }
31
+ attr_writer :pagination
32
+
33
+ sig do
34
+ params(
35
+ contacts: T::Array[T.anything],
36
+ pagination: Data::Pagination::OrHash
37
+ ).returns(T.attached_class)
38
+ end
39
+ def self.new(contacts: nil, pagination: nil)
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ { contacts: T::Array[T.anything], pagination: Data::Pagination }
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+
50
+ class Pagination < Sentdm::Internal::Type::BaseModel
51
+ OrHash =
52
+ T.type_alias { T.any(Data::Pagination, Sentdm::Internal::AnyHash) }
53
+
54
+ sig { returns(T.nilable(T::Boolean)) }
55
+ attr_reader :has_more
56
+
57
+ sig { params(has_more: T::Boolean).void }
58
+ attr_writer :has_more
59
+
60
+ sig { params(has_more: T::Boolean).returns(T.attached_class) }
61
+ def self.new(has_more: nil)
62
+ end
63
+
64
+ sig { override.returns({ has_more: T::Boolean }) }
65
+ def to_hash
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,71 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Internal
5
+ class ConversationsPage
6
+ include Sentdm::Internal::Type::BasePage
7
+
8
+ Elem = type_member
9
+
10
+ sig { returns(Data) }
11
+ attr_accessor :data
12
+
13
+ # @api private
14
+ sig { returns(String) }
15
+ def inspect
16
+ end
17
+
18
+ class Data < Sentdm::Internal::Type::BaseModel
19
+ OrHash = T.type_alias { T.any(Data, Sentdm::Internal::AnyHash) }
20
+
21
+ sig { returns(T.nilable(T::Array[T.anything])) }
22
+ attr_reader :messages
23
+
24
+ sig { params(messages: T::Array[T.anything]).void }
25
+ attr_writer :messages
26
+
27
+ sig { returns(T.nilable(Data::Pagination)) }
28
+ attr_reader :pagination
29
+
30
+ sig { params(pagination: Data::Pagination::OrHash).void }
31
+ attr_writer :pagination
32
+
33
+ sig do
34
+ params(
35
+ messages: T::Array[T.anything],
36
+ pagination: Data::Pagination::OrHash
37
+ ).returns(T.attached_class)
38
+ end
39
+ def self.new(messages: nil, pagination: nil)
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ { messages: T::Array[T.anything], pagination: Data::Pagination }
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+
50
+ class Pagination < Sentdm::Internal::Type::BaseModel
51
+ OrHash =
52
+ T.type_alias { T.any(Data::Pagination, Sentdm::Internal::AnyHash) }
53
+
54
+ sig { returns(T.nilable(T::Boolean)) }
55
+ attr_reader :has_more
56
+
57
+ sig { params(has_more: T::Boolean).void }
58
+ attr_writer :has_more
59
+
60
+ sig { params(has_more: T::Boolean).returns(T.attached_class) }
61
+ def self.new(has_more: nil)
62
+ end
63
+
64
+ sig { override.returns({ has_more: T::Boolean }) }
65
+ def to_hash
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,71 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Internal
5
+ class TemplatesPage
6
+ include Sentdm::Internal::Type::BasePage
7
+
8
+ Elem = type_member
9
+
10
+ sig { returns(Data) }
11
+ attr_accessor :data
12
+
13
+ # @api private
14
+ sig { returns(String) }
15
+ def inspect
16
+ end
17
+
18
+ class Data < Sentdm::Internal::Type::BaseModel
19
+ OrHash = T.type_alias { T.any(Data, Sentdm::Internal::AnyHash) }
20
+
21
+ sig { returns(T.nilable(Data::Pagination)) }
22
+ attr_reader :pagination
23
+
24
+ sig { params(pagination: Data::Pagination::OrHash).void }
25
+ attr_writer :pagination
26
+
27
+ sig { returns(T.nilable(T::Array[T.anything])) }
28
+ attr_reader :templates
29
+
30
+ sig { params(templates: T::Array[T.anything]).void }
31
+ attr_writer :templates
32
+
33
+ sig do
34
+ params(
35
+ pagination: Data::Pagination::OrHash,
36
+ templates: T::Array[T.anything]
37
+ ).returns(T.attached_class)
38
+ end
39
+ def self.new(pagination: nil, templates: nil)
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ { pagination: Data::Pagination, templates: T::Array[T.anything] }
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+
50
+ class Pagination < Sentdm::Internal::Type::BaseModel
51
+ OrHash =
52
+ T.type_alias { T.any(Data::Pagination, Sentdm::Internal::AnyHash) }
53
+
54
+ sig { returns(T.nilable(T::Boolean)) }
55
+ attr_reader :has_more
56
+
57
+ sig { params(has_more: T::Boolean).void }
58
+ attr_writer :has_more
59
+
60
+ sig { params(has_more: T::Boolean).returns(T.attached_class) }
61
+ def self.new(has_more: nil)
62
+ end
63
+
64
+ sig { override.returns({ has_more: T::Boolean }) }
65
+ def to_hash
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,71 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Internal
5
+ class WebhookEventsPage
6
+ include Sentdm::Internal::Type::BasePage
7
+
8
+ Elem = type_member
9
+
10
+ sig { returns(Data) }
11
+ attr_accessor :data
12
+
13
+ # @api private
14
+ sig { returns(String) }
15
+ def inspect
16
+ end
17
+
18
+ class Data < Sentdm::Internal::Type::BaseModel
19
+ OrHash = T.type_alias { T.any(Data, Sentdm::Internal::AnyHash) }
20
+
21
+ sig { returns(T.nilable(T::Array[T.anything])) }
22
+ attr_reader :events
23
+
24
+ sig { params(events: T::Array[T.anything]).void }
25
+ attr_writer :events
26
+
27
+ sig { returns(T.nilable(Data::Pagination)) }
28
+ attr_reader :pagination
29
+
30
+ sig { params(pagination: Data::Pagination::OrHash).void }
31
+ attr_writer :pagination
32
+
33
+ sig do
34
+ params(
35
+ events: T::Array[T.anything],
36
+ pagination: Data::Pagination::OrHash
37
+ ).returns(T.attached_class)
38
+ end
39
+ def self.new(events: nil, pagination: nil)
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ { events: T::Array[T.anything], pagination: Data::Pagination }
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+
50
+ class Pagination < Sentdm::Internal::Type::BaseModel
51
+ OrHash =
52
+ T.type_alias { T.any(Data::Pagination, Sentdm::Internal::AnyHash) }
53
+
54
+ sig { returns(T.nilable(T::Boolean)) }
55
+ attr_reader :has_more
56
+
57
+ sig { params(has_more: T::Boolean).void }
58
+ attr_writer :has_more
59
+
60
+ sig { params(has_more: T::Boolean).returns(T.attached_class) }
61
+ def self.new(has_more: nil)
62
+ end
63
+
64
+ sig { override.returns({ has_more: T::Boolean }) }
65
+ def to_hash
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,71 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Internal
5
+ class WebhooksPage
6
+ include Sentdm::Internal::Type::BasePage
7
+
8
+ Elem = type_member
9
+
10
+ sig { returns(Data) }
11
+ attr_accessor :data
12
+
13
+ # @api private
14
+ sig { returns(String) }
15
+ def inspect
16
+ end
17
+
18
+ class Data < Sentdm::Internal::Type::BaseModel
19
+ OrHash = T.type_alias { T.any(Data, Sentdm::Internal::AnyHash) }
20
+
21
+ sig { returns(T.nilable(Data::Pagination)) }
22
+ attr_reader :pagination
23
+
24
+ sig { params(pagination: Data::Pagination::OrHash).void }
25
+ attr_writer :pagination
26
+
27
+ sig { returns(T.nilable(T::Array[T.anything])) }
28
+ attr_reader :webhooks
29
+
30
+ sig { params(webhooks: T::Array[T.anything]).void }
31
+ attr_writer :webhooks
32
+
33
+ sig do
34
+ params(
35
+ pagination: Data::Pagination::OrHash,
36
+ webhooks: T::Array[T.anything]
37
+ ).returns(T.attached_class)
38
+ end
39
+ def self.new(pagination: nil, webhooks: nil)
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ { pagination: Data::Pagination, webhooks: T::Array[T.anything] }
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+
50
+ class Pagination < Sentdm::Internal::Type::BaseModel
51
+ OrHash =
52
+ T.type_alias { T.any(Data::Pagination, Sentdm::Internal::AnyHash) }
53
+
54
+ sig { returns(T.nilable(T::Boolean)) }
55
+ attr_reader :has_more
56
+
57
+ sig { params(has_more: T::Boolean).void }
58
+ attr_writer :has_more
59
+
60
+ sig { params(has_more: T::Boolean).returns(T.attached_class) }
61
+ def self.new(has_more: nil)
62
+ end
63
+
64
+ sig { override.returns({ has_more: T::Boolean }) }
65
+ def to_hash
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -11,17 +11,23 @@ module Sentdm
11
11
  T.any(Sentdm::ContactListParams, Sentdm::Internal::AnyHash)
12
12
  end
13
13
 
14
+ # Optional channel filter (sms, whatsapp)
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :channel
17
+
14
18
  # Page number (1-indexed)
15
- sig { returns(Integer) }
16
- attr_accessor :page
19
+ sig { returns(T.nilable(Integer)) }
20
+ attr_reader :page
21
+
22
+ sig { params(page: Integer).void }
23
+ attr_writer :page
17
24
 
18
25
  # Number of items per page
19
- sig { returns(Integer) }
20
- attr_accessor :page_size
26
+ sig { returns(T.nilable(Integer)) }
27
+ attr_reader :page_size
21
28
 
22
- # Optional channel filter (sms, whatsapp)
23
- sig { returns(T.nilable(String)) }
24
- attr_accessor :channel
29
+ sig { params(page_size: Integer).void }
30
+ attr_writer :page_size
25
31
 
26
32
  # Optional phone number filter (alternative to list view)
27
33
  sig { returns(T.nilable(String)) }
@@ -39,9 +45,9 @@ module Sentdm
39
45
 
40
46
  sig do
41
47
  params(
48
+ channel: T.nilable(String),
42
49
  page: Integer,
43
50
  page_size: Integer,
44
- channel: T.nilable(String),
45
51
  phone: T.nilable(String),
46
52
  search: T.nilable(String),
47
53
  x_profile_id: String,
@@ -49,12 +55,12 @@ module Sentdm
49
55
  ).returns(T.attached_class)
50
56
  end
51
57
  def self.new(
52
- # Page number (1-indexed)
53
- page:,
54
- # Number of items per page
55
- page_size:,
56
58
  # Optional channel filter (sms, whatsapp)
57
59
  channel: nil,
60
+ # Page number (1-indexed)
61
+ page: nil,
62
+ # Number of items per page
63
+ page_size: nil,
58
64
  # Optional phone number filter (alternative to list view)
59
65
  phone: nil,
60
66
  # Optional search term for filtering contacts
@@ -67,9 +73,9 @@ module Sentdm
67
73
  sig do
68
74
  override.returns(
69
75
  {
76
+ channel: T.nilable(String),
70
77
  page: Integer,
71
78
  page_size: Integer,
72
- channel: T.nilable(String),
73
79
  phone: T.nilable(String),
74
80
  search: T.nilable(String),
75
81
  x_profile_id: String,
@@ -17,11 +17,17 @@ module Sentdm
17
17
  sig { returns(String) }
18
18
  attr_accessor :id
19
19
 
20
- sig { returns(Integer) }
21
- attr_accessor :page
20
+ sig { returns(T.nilable(Integer)) }
21
+ attr_reader :page
22
22
 
23
- sig { returns(Integer) }
24
- attr_accessor :page_size
23
+ sig { params(page: Integer).void }
24
+ attr_writer :page
25
+
26
+ sig { returns(T.nilable(Integer)) }
27
+ attr_reader :page_size
28
+
29
+ sig { params(page_size: Integer).void }
30
+ attr_writer :page_size
25
31
 
26
32
  sig { returns(T.nilable(String)) }
27
33
  attr_reader :x_profile_id
@@ -40,8 +46,8 @@ module Sentdm
40
46
  end
41
47
  def self.new(
42
48
  id:,
43
- page:,
44
- page_size:,
49
+ page: nil,
50
+ page_size: nil,
45
51
  x_profile_id: nil,
46
52
  request_options: {}
47
53
  )
@@ -11,11 +11,17 @@ module Sentdm
11
11
  T.any(Sentdm::ConversationListParams, Sentdm::Internal::AnyHash)
12
12
  end
13
13
 
14
- sig { returns(Integer) }
15
- attr_accessor :page
14
+ sig { returns(T.nilable(Integer)) }
15
+ attr_reader :page
16
16
 
17
- sig { returns(Integer) }
18
- attr_accessor :page_size
17
+ sig { params(page: Integer).void }
18
+ attr_writer :page
19
+
20
+ sig { returns(T.nilable(Integer)) }
21
+ attr_reader :page_size
22
+
23
+ sig { params(page_size: Integer).void }
24
+ attr_writer :page_size
19
25
 
20
26
  sig { returns(T.nilable(String)) }
21
27
  attr_reader :x_profile_id
@@ -31,7 +37,12 @@ module Sentdm
31
37
  request_options: Sentdm::RequestOptions::OrHash
32
38
  ).returns(T.attached_class)
33
39
  end
34
- def self.new(page:, page_size:, x_profile_id: nil, request_options: {})
40
+ def self.new(
41
+ page: nil,
42
+ page_size: nil,
43
+ x_profile_id: nil,
44
+ request_options: {}
45
+ )
35
46
  end
36
47
 
37
48
  sig do