mailhub-sdk 0.1.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 (151) hide show
  1. checksums.yaml +7 -0
  2. data/.fern/metadata.json +11 -0
  3. data/.fernignore +3 -0
  4. data/.rubocop.yml +103 -0
  5. data/CONTRIBUTING.md +120 -0
  6. data/README.md +159 -0
  7. data/Rakefile +20 -0
  8. data/custom.gemspec.rb +18 -0
  9. data/lib/Mailhub/campaign/client.rb +730 -0
  10. data/lib/Mailhub/campaign/types/add_campaign_media_by_code_request.rb +13 -0
  11. data/lib/Mailhub/campaign/types/cancel_campaign_request.rb +11 -0
  12. data/lib/Mailhub/campaign/types/catch_up_campaign_request.rb +11 -0
  13. data/lib/Mailhub/campaign/types/create_campaign_by_code_request.rb +27 -0
  14. data/lib/Mailhub/campaign/types/delete_campaign_request.rb +11 -0
  15. data/lib/Mailhub/campaign/types/get_campaign_activity_request.rb +11 -0
  16. data/lib/Mailhub/campaign/types/get_campaign_analytics_request.rb +11 -0
  17. data/lib/Mailhub/campaign/types/get_campaign_link_stats_request.rb +11 -0
  18. data/lib/Mailhub/campaign/types/get_campaign_media_request.rb +11 -0
  19. data/lib/Mailhub/campaign/types/get_campaign_rendered_preview_by_code_request.rb +21 -0
  20. data/lib/Mailhub/campaign/types/get_campaign_request.rb +11 -0
  21. data/lib/Mailhub/campaign/types/get_campaigns_request.rb +19 -0
  22. data/lib/Mailhub/campaign/types/pause_campaign_request.rb +11 -0
  23. data/lib/Mailhub/campaign/types/preview_campaign_request.rb +11 -0
  24. data/lib/Mailhub/campaign/types/remove_campaign_media_request.rb +13 -0
  25. data/lib/Mailhub/campaign/types/schedule_campaign_request.rb +11 -0
  26. data/lib/Mailhub/campaign/types/send_campaign_request.rb +11 -0
  27. data/lib/Mailhub/campaign/types/test_campaign_by_code_request.rb +23 -0
  28. data/lib/Mailhub/campaign/types/update_campaign_by_code_request.rb +29 -0
  29. data/lib/Mailhub/client.rb +55 -0
  30. data/lib/Mailhub/contact/client.rb +385 -0
  31. data/lib/Mailhub/contact/types/block_contact_request.rb +11 -0
  32. data/lib/Mailhub/contact/types/block_contacts_by_guid_request.rb +11 -0
  33. data/lib/Mailhub/contact/types/create_contact_request.rb +15 -0
  34. data/lib/Mailhub/contact/types/delete_contact_request.rb +11 -0
  35. data/lib/Mailhub/contact/types/delete_contacts_by_guid_request.rb +11 -0
  36. data/lib/Mailhub/contact/types/get_contact_request.rb +11 -0
  37. data/lib/Mailhub/contact/types/get_contacts_request.rb +21 -0
  38. data/lib/Mailhub/contact/types/get_import_job_request.rb +11 -0
  39. data/lib/Mailhub/contact/types/import_contacts_request.rb +9 -0
  40. data/lib/Mailhub/contact/types/update_contact_request.rb +17 -0
  41. data/lib/Mailhub/custom_field/client.rb +188 -0
  42. data/lib/Mailhub/custom_field/types/create_custom_field_request.rb +15 -0
  43. data/lib/Mailhub/custom_field/types/delete_custom_field_request.rb +11 -0
  44. data/lib/Mailhub/custom_field/types/get_custom_field_request.rb +11 -0
  45. data/lib/Mailhub/custom_field/types/update_custom_field_request.rb +15 -0
  46. data/lib/Mailhub/errors/api_error.rb +8 -0
  47. data/lib/Mailhub/errors/client_error.rb +17 -0
  48. data/lib/Mailhub/errors/redirect_error.rb +8 -0
  49. data/lib/Mailhub/errors/response_error.rb +42 -0
  50. data/lib/Mailhub/errors/server_error.rb +11 -0
  51. data/lib/Mailhub/errors/timeout_error.rb +8 -0
  52. data/lib/Mailhub/internal/errors/constraint_error.rb +10 -0
  53. data/lib/Mailhub/internal/errors/type_error.rb +10 -0
  54. data/lib/Mailhub/internal/http/base_request.rb +51 -0
  55. data/lib/Mailhub/internal/http/raw_client.rb +248 -0
  56. data/lib/Mailhub/internal/iterators/cursor_item_iterator.rb +28 -0
  57. data/lib/Mailhub/internal/iterators/cursor_page_iterator.rb +63 -0
  58. data/lib/Mailhub/internal/iterators/item_iterator.rb +65 -0
  59. data/lib/Mailhub/internal/iterators/offset_item_iterator.rb +30 -0
  60. data/lib/Mailhub/internal/iterators/offset_page_iterator.rb +103 -0
  61. data/lib/Mailhub/internal/json/request.rb +41 -0
  62. data/lib/Mailhub/internal/json/serializable.rb +25 -0
  63. data/lib/Mailhub/internal/multipart/multipart_encoder.rb +141 -0
  64. data/lib/Mailhub/internal/multipart/multipart_form_data.rb +78 -0
  65. data/lib/Mailhub/internal/multipart/multipart_form_data_part.rb +51 -0
  66. data/lib/Mailhub/internal/multipart/multipart_request.rb +40 -0
  67. data/lib/Mailhub/internal/types/array.rb +47 -0
  68. data/lib/Mailhub/internal/types/boolean.rb +34 -0
  69. data/lib/Mailhub/internal/types/enum.rb +56 -0
  70. data/lib/Mailhub/internal/types/hash.rb +36 -0
  71. data/lib/Mailhub/internal/types/model/field.rb +38 -0
  72. data/lib/Mailhub/internal/types/model.rb +208 -0
  73. data/lib/Mailhub/internal/types/type.rb +35 -0
  74. data/lib/Mailhub/internal/types/union.rb +161 -0
  75. data/lib/Mailhub/internal/types/unknown.rb +15 -0
  76. data/lib/Mailhub/internal/types/utils.rb +116 -0
  77. data/lib/Mailhub/media/client.rb +241 -0
  78. data/lib/Mailhub/media/types/delete_media_request.rb +11 -0
  79. data/lib/Mailhub/media/types/download_media_request.rb +11 -0
  80. data/lib/Mailhub/media/types/get_media_request.rb +11 -0
  81. data/lib/Mailhub/media/types/get_medias_request.rb +19 -0
  82. data/lib/Mailhub/media/types/update_media_request.rb +13 -0
  83. data/lib/Mailhub/media/types/upload_media_request.rb +9 -0
  84. data/lib/Mailhub/message/client.rb +201 -0
  85. data/lib/Mailhub/message/types/cancel_message_request.rb +11 -0
  86. data/lib/Mailhub/message/types/get_message_events_request.rb +11 -0
  87. data/lib/Mailhub/message/types/get_message_request.rb +11 -0
  88. data/lib/Mailhub/message/types/get_messages_request.rb +21 -0
  89. data/lib/Mailhub/message/types/send_message_request.rb +23 -0
  90. data/lib/Mailhub/segment/client.rb +377 -0
  91. data/lib/Mailhub/segment/types/create_segment_request.rb +13 -0
  92. data/lib/Mailhub/segment/types/delete_segment_request.rb +11 -0
  93. data/lib/Mailhub/segment/types/delete_segments_by_code_request.rb +13 -0
  94. data/lib/Mailhub/segment/types/get_segment_contacts_request.rb +15 -0
  95. data/lib/Mailhub/segment/types/get_segment_preview_request.rb +11 -0
  96. data/lib/Mailhub/segment/types/get_segment_request.rb +11 -0
  97. data/lib/Mailhub/segment/types/get_segments_request.rb +19 -0
  98. data/lib/Mailhub/segment/types/get_segments_union_preview_by_code_request.rb +11 -0
  99. data/lib/Mailhub/segment/types/sync_segment_request.rb +11 -0
  100. data/lib/Mailhub/segment/types/update_segment_request.rb +15 -0
  101. data/lib/Mailhub/template/client.rb +301 -0
  102. data/lib/Mailhub/template/types/create_template_request.rb +13 -0
  103. data/lib/Mailhub/template/types/delete_template_request.rb +11 -0
  104. data/lib/Mailhub/template/types/get_template_rendered_preview_request.rb +11 -0
  105. data/lib/Mailhub/template/types/get_template_request.rb +11 -0
  106. data/lib/Mailhub/template/types/get_templates_request.rb +19 -0
  107. data/lib/Mailhub/template/types/preview_template_request.rb +11 -0
  108. data/lib/Mailhub/template/types/update_template_request.rb +15 -0
  109. data/lib/Mailhub/types/api_error.rb +16 -0
  110. data/lib/Mailhub/types/api_error_detail.rb +12 -0
  111. data/lib/Mailhub/types/campaign_activity_point_model.rb +18 -0
  112. data/lib/Mailhub/types/campaign_analytics_model.rb +30 -0
  113. data/lib/Mailhub/types/campaign_link_stat_model.rb +14 -0
  114. data/lib/Mailhub/types/campaign_media_model.rb +24 -0
  115. data/lib/Mailhub/types/campaign_model.rb +52 -0
  116. data/lib/Mailhub/types/campaign_model_paged_result.rb +16 -0
  117. data/lib/Mailhub/types/campaign_segment_model.rb +14 -0
  118. data/lib/Mailhub/types/campaign_status.rb +17 -0
  119. data/lib/Mailhub/types/campaign_type.rb +12 -0
  120. data/lib/Mailhub/types/contact_import_job_model.rb +22 -0
  121. data/lib/Mailhub/types/contact_import_model.rb +10 -0
  122. data/lib/Mailhub/types/contact_import_status.rb +14 -0
  123. data/lib/Mailhub/types/contact_model.rb +26 -0
  124. data/lib/Mailhub/types/contact_model_cursor_paged_result.rb +18 -0
  125. data/lib/Mailhub/types/contact_model_paged_result.rb +16 -0
  126. data/lib/Mailhub/types/contact_segment_model.rb +14 -0
  127. data/lib/Mailhub/types/contact_status.rb +13 -0
  128. data/lib/Mailhub/types/custom_field_model.rb +20 -0
  129. data/lib/Mailhub/types/custom_field_type.rb +14 -0
  130. data/lib/Mailhub/types/import_contact_error_model.rb +12 -0
  131. data/lib/Mailhub/types/media_model.rb +28 -0
  132. data/lib/Mailhub/types/media_model_paged_result.rb +16 -0
  133. data/lib/Mailhub/types/message_event_model.rb +16 -0
  134. data/lib/Mailhub/types/message_event_type.rb +18 -0
  135. data/lib/Mailhub/types/message_model.rb +36 -0
  136. data/lib/Mailhub/types/message_model_cursor_paged_result.rb +18 -0
  137. data/lib/Mailhub/types/preview_segment_model.rb +10 -0
  138. data/lib/Mailhub/types/running_campaign_stats_model.rb +32 -0
  139. data/lib/Mailhub/types/segment_filter_group_model.rb +12 -0
  140. data/lib/Mailhub/types/segment_filter_model.rb +10 -0
  141. data/lib/Mailhub/types/segment_filter_rule_model.rb +14 -0
  142. data/lib/Mailhub/types/segment_model.rb +32 -0
  143. data/lib/Mailhub/types/segment_model_paged_result.rb +16 -0
  144. data/lib/Mailhub/types/segment_sync_status.rb +14 -0
  145. data/lib/Mailhub/types/template_expression_model.rb +14 -0
  146. data/lib/Mailhub/types/template_model.rb +20 -0
  147. data/lib/Mailhub/types/template_model_paged_result.rb +16 -0
  148. data/lib/Mailhub/version.rb +5 -0
  149. data/lib/Mailhub.rb +145 -0
  150. data/reference.md +3691 -0
  151. metadata +193 -0
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Message
5
+ module Types
6
+ class GetMessagesRequest < Internal::Types::Model
7
+ field :search, -> { String }, optional: true, nullable: false
8
+
9
+ field :status, -> { String }, optional: true, nullable: false
10
+
11
+ field :sort_by, -> { String }, optional: true, nullable: false, api_name: "sortBy"
12
+
13
+ field :sort_direction, -> { String }, optional: true, nullable: false, api_name: "sortDirection"
14
+
15
+ field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
16
+
17
+ field :cursor, -> { String }, optional: true, nullable: false
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Message
5
+ module Types
6
+ class SendMessageRequest < Internal::Types::Model
7
+ field :to_email, -> { String }, optional: true, nullable: false, api_name: "toEmail"
8
+
9
+ field :from_email, -> { String }, optional: true, nullable: false, api_name: "fromEmail"
10
+
11
+ field :subject, -> { String }, optional: true, nullable: false
12
+
13
+ field :body, -> { String }, optional: true, nullable: false
14
+
15
+ field :template_code, -> { String }, optional: true, nullable: false, api_name: "templateCode"
16
+
17
+ field :template_data, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false, api_name: "templateData"
18
+
19
+ field :send_at, -> { String }, optional: true, nullable: false, api_name: "sendAt"
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,377 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Segment
5
+ class Client
6
+ # @param client [Mailhub::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # @param request_options [Hash]
14
+ # @param params [Hash]
15
+ # @option request_options [String] :base_url
16
+ # @option request_options [Hash{String => Object}] :additional_headers
17
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
18
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
19
+ # @option request_options [Integer] :timeout_in_seconds
20
+ # @option params [String, nil] :search
21
+ # @option params [String, nil] :sort_by
22
+ # @option params [String, nil] :sort_direction
23
+ # @option params [Integer, nil] :page_size
24
+ # @option params [Integer, nil] :page_index
25
+ #
26
+ # @example
27
+ # client.segment.get_segments
28
+ #
29
+ # @return [Mailhub::Types::SegmentModelPagedResult]
30
+ def get_segments(request_options: {}, **params)
31
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
32
+ query_params = {}
33
+ query_params["search"] = params[:search] if params.key?(:search)
34
+ query_params["sortBy"] = params[:sort_by] if params.key?(:sort_by)
35
+ query_params["sortDirection"] = params[:sort_direction] if params.key?(:sort_direction)
36
+ query_params["pageSize"] = params[:page_size] if params.key?(:page_size)
37
+ query_params["pageIndex"] = params[:page_index] if params.key?(:page_index)
38
+
39
+ request = Mailhub::Internal::JSON::Request.new(
40
+ base_url: request_options[:base_url],
41
+ method: "GET",
42
+ path: "v1/segments",
43
+ query: query_params,
44
+ request_options: request_options
45
+ )
46
+ begin
47
+ response = @client.send(request)
48
+ rescue Net::HTTPRequestTimeout
49
+ raise Mailhub::Errors::TimeoutError
50
+ end
51
+ code = response.code.to_i
52
+ if code.between?(200, 299)
53
+ Mailhub::Types::SegmentModelPagedResult.load(response.body)
54
+ else
55
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
56
+ raise error_class.new(response.body, code: code)
57
+ end
58
+ end
59
+
60
+ # @param request_options [Hash]
61
+ # @param params [Mailhub::Segment::Types::CreateSegmentRequest]
62
+ # @option request_options [String] :base_url
63
+ # @option request_options [Hash{String => Object}] :additional_headers
64
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
65
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
66
+ # @option request_options [Integer] :timeout_in_seconds
67
+ #
68
+ # @example
69
+ # client.segment.create_segment
70
+ #
71
+ # @return [Mailhub::Types::SegmentModel]
72
+ def create_segment(request_options: {}, **params)
73
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
74
+ request = Mailhub::Internal::JSON::Request.new(
75
+ base_url: request_options[:base_url],
76
+ method: "POST",
77
+ path: "v1/segments",
78
+ body: Mailhub::Segment::Types::CreateSegmentRequest.new(params).to_h,
79
+ request_options: request_options
80
+ )
81
+ begin
82
+ response = @client.send(request)
83
+ rescue Net::HTTPRequestTimeout
84
+ raise Mailhub::Errors::TimeoutError
85
+ end
86
+ code = response.code.to_i
87
+ if code.between?(200, 299)
88
+ Mailhub::Types::SegmentModel.load(response.body)
89
+ else
90
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
91
+ raise error_class.new(response.body, code: code)
92
+ end
93
+ end
94
+
95
+ # @param request_options [Hash]
96
+ # @param params [Hash]
97
+ # @option request_options [String] :base_url
98
+ # @option request_options [Hash{String => Object}] :additional_headers
99
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
100
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
101
+ # @option request_options [Integer] :timeout_in_seconds
102
+ # @option params [String] :code
103
+ #
104
+ # @example
105
+ # client.segment.get_segment(code: "code")
106
+ #
107
+ # @return [Mailhub::Types::SegmentModel]
108
+ def get_segment(request_options: {}, **params)
109
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
110
+ request = Mailhub::Internal::JSON::Request.new(
111
+ base_url: request_options[:base_url],
112
+ method: "GET",
113
+ path: "v1/segments/#{URI.encode_uri_component(params[:code].to_s)}",
114
+ request_options: request_options
115
+ )
116
+ begin
117
+ response = @client.send(request)
118
+ rescue Net::HTTPRequestTimeout
119
+ raise Mailhub::Errors::TimeoutError
120
+ end
121
+ code = response.code.to_i
122
+ if code.between?(200, 299)
123
+ Mailhub::Types::SegmentModel.load(response.body)
124
+ else
125
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
126
+ raise error_class.new(response.body, code: code)
127
+ end
128
+ end
129
+
130
+ # @param request_options [Hash]
131
+ # @param params [Mailhub::Segment::Types::UpdateSegmentRequest]
132
+ # @option request_options [String] :base_url
133
+ # @option request_options [Hash{String => Object}] :additional_headers
134
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
135
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
136
+ # @option request_options [Integer] :timeout_in_seconds
137
+ # @option params [String] :code
138
+ #
139
+ # @example
140
+ # client.segment.update_segment(code: "code")
141
+ #
142
+ # @return [Mailhub::Types::SegmentModel]
143
+ def update_segment(request_options: {}, **params)
144
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
145
+ request_data = Mailhub::Segment::Types::UpdateSegmentRequest.new(params).to_h
146
+ non_body_param_names = %w[code]
147
+ body = request_data.except(*non_body_param_names)
148
+
149
+ request = Mailhub::Internal::JSON::Request.new(
150
+ base_url: request_options[:base_url],
151
+ method: "PUT",
152
+ path: "v1/segments/#{URI.encode_uri_component(params[:code].to_s)}",
153
+ body: body,
154
+ request_options: request_options
155
+ )
156
+ begin
157
+ response = @client.send(request)
158
+ rescue Net::HTTPRequestTimeout
159
+ raise Mailhub::Errors::TimeoutError
160
+ end
161
+ code = response.code.to_i
162
+ if code.between?(200, 299)
163
+ Mailhub::Types::SegmentModel.load(response.body)
164
+ else
165
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
166
+ raise error_class.new(response.body, code: code)
167
+ end
168
+ end
169
+
170
+ # @param request_options [Hash]
171
+ # @param params [Hash]
172
+ # @option request_options [String] :base_url
173
+ # @option request_options [Hash{String => Object}] :additional_headers
174
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
175
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
176
+ # @option request_options [Integer] :timeout_in_seconds
177
+ # @option params [String] :code
178
+ #
179
+ # @example
180
+ # client.segment.delete_segment(code: "code")
181
+ #
182
+ # @return [untyped]
183
+ def delete_segment(request_options: {}, **params)
184
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
185
+ request = Mailhub::Internal::JSON::Request.new(
186
+ base_url: request_options[:base_url],
187
+ method: "DELETE",
188
+ path: "v1/segments/#{URI.encode_uri_component(params[:code].to_s)}",
189
+ request_options: request_options
190
+ )
191
+ begin
192
+ response = @client.send(request)
193
+ rescue Net::HTTPRequestTimeout
194
+ raise Mailhub::Errors::TimeoutError
195
+ end
196
+ code = response.code.to_i
197
+ return if code.between?(200, 299)
198
+
199
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
200
+ raise error_class.new(response.body, code: code)
201
+ end
202
+
203
+ # @param request_options [Hash]
204
+ # @param params [Mailhub::Segment::Types::DeleteSegmentsByCodeRequest]
205
+ # @option request_options [String] :base_url
206
+ # @option request_options [Hash{String => Object}] :additional_headers
207
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
208
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
209
+ # @option request_options [Integer] :timeout_in_seconds
210
+ #
211
+ # @example
212
+ # client.segment.delete_segments
213
+ #
214
+ # @return [untyped]
215
+ def delete_segments(request_options: {}, **params)
216
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
217
+ request = Mailhub::Internal::JSON::Request.new(
218
+ base_url: request_options[:base_url],
219
+ method: "POST",
220
+ path: "v1/segments/delete",
221
+ body: Mailhub::Segment::Types::DeleteSegmentsByCodeRequest.new(params).to_h,
222
+ request_options: request_options
223
+ )
224
+ begin
225
+ response = @client.send(request)
226
+ rescue Net::HTTPRequestTimeout
227
+ raise Mailhub::Errors::TimeoutError
228
+ end
229
+ code = response.code.to_i
230
+ return if code.between?(200, 299)
231
+
232
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
233
+ raise error_class.new(response.body, code: code)
234
+ end
235
+
236
+ # @param request_options [Hash]
237
+ # @param params [Mailhub::Segment::Types::GetSegmentPreviewRequest]
238
+ # @option request_options [String] :base_url
239
+ # @option request_options [Hash{String => Object}] :additional_headers
240
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
241
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
242
+ # @option request_options [Integer] :timeout_in_seconds
243
+ #
244
+ # @example
245
+ # client.segment.preview_segment
246
+ #
247
+ # @return [Mailhub::Types::PreviewSegmentModel]
248
+ def preview_segment(request_options: {}, **params)
249
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
250
+ request = Mailhub::Internal::JSON::Request.new(
251
+ base_url: request_options[:base_url],
252
+ method: "POST",
253
+ path: "v1/segments/preview",
254
+ body: Mailhub::Segment::Types::GetSegmentPreviewRequest.new(params).to_h,
255
+ request_options: request_options
256
+ )
257
+ begin
258
+ response = @client.send(request)
259
+ rescue Net::HTTPRequestTimeout
260
+ raise Mailhub::Errors::TimeoutError
261
+ end
262
+ code = response.code.to_i
263
+ if code.between?(200, 299)
264
+ Mailhub::Types::PreviewSegmentModel.load(response.body)
265
+ else
266
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
267
+ raise error_class.new(response.body, code: code)
268
+ end
269
+ end
270
+
271
+ # @param request_options [Hash]
272
+ # @param params [Mailhub::Segment::Types::GetSegmentsUnionPreviewByCodeRequest]
273
+ # @option request_options [String] :base_url
274
+ # @option request_options [Hash{String => Object}] :additional_headers
275
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
276
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
277
+ # @option request_options [Integer] :timeout_in_seconds
278
+ #
279
+ # @example
280
+ # client.segment.preview_segments_union
281
+ #
282
+ # @return [Mailhub::Types::PreviewSegmentModel]
283
+ def preview_segments_union(request_options: {}, **params)
284
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
285
+ request = Mailhub::Internal::JSON::Request.new(
286
+ base_url: request_options[:base_url],
287
+ method: "POST",
288
+ path: "v1/segments/preview/union",
289
+ body: Mailhub::Segment::Types::GetSegmentsUnionPreviewByCodeRequest.new(params).to_h,
290
+ request_options: request_options
291
+ )
292
+ begin
293
+ response = @client.send(request)
294
+ rescue Net::HTTPRequestTimeout
295
+ raise Mailhub::Errors::TimeoutError
296
+ end
297
+ code = response.code.to_i
298
+ if code.between?(200, 299)
299
+ Mailhub::Types::PreviewSegmentModel.load(response.body)
300
+ else
301
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
302
+ raise error_class.new(response.body, code: code)
303
+ end
304
+ end
305
+
306
+ # @param request_options [Hash]
307
+ # @param params [Mailhub::Segment::Types::GetSegmentContactsRequest]
308
+ # @option request_options [String] :base_url
309
+ # @option request_options [Hash{String => Object}] :additional_headers
310
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
311
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
312
+ # @option request_options [Integer] :timeout_in_seconds
313
+ #
314
+ # @example
315
+ # client.segment.query_segment_contacts
316
+ #
317
+ # @return [Mailhub::Types::ContactModelPagedResult]
318
+ def query_segment_contacts(request_options: {}, **params)
319
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
320
+ request = Mailhub::Internal::JSON::Request.new(
321
+ base_url: request_options[:base_url],
322
+ method: "POST",
323
+ path: "v1/segments/preview/contacts",
324
+ body: Mailhub::Segment::Types::GetSegmentContactsRequest.new(params).to_h,
325
+ request_options: request_options
326
+ )
327
+ begin
328
+ response = @client.send(request)
329
+ rescue Net::HTTPRequestTimeout
330
+ raise Mailhub::Errors::TimeoutError
331
+ end
332
+ code = response.code.to_i
333
+ if code.between?(200, 299)
334
+ Mailhub::Types::ContactModelPagedResult.load(response.body)
335
+ else
336
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
337
+ raise error_class.new(response.body, code: code)
338
+ end
339
+ end
340
+
341
+ # @param request_options [Hash]
342
+ # @param params [Hash]
343
+ # @option request_options [String] :base_url
344
+ # @option request_options [Hash{String => Object}] :additional_headers
345
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
346
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
347
+ # @option request_options [Integer] :timeout_in_seconds
348
+ # @option params [String] :code
349
+ #
350
+ # @example
351
+ # client.segment.sync_segment(code: "code")
352
+ #
353
+ # @return [Mailhub::Types::SegmentModel]
354
+ def sync_segment(request_options: {}, **params)
355
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
356
+ request = Mailhub::Internal::JSON::Request.new(
357
+ base_url: request_options[:base_url],
358
+ method: "POST",
359
+ path: "v1/segments/#{URI.encode_uri_component(params[:code].to_s)}/sync",
360
+ request_options: request_options
361
+ )
362
+ begin
363
+ response = @client.send(request)
364
+ rescue Net::HTTPRequestTimeout
365
+ raise Mailhub::Errors::TimeoutError
366
+ end
367
+ code = response.code.to_i
368
+ if code.between?(200, 299)
369
+ Mailhub::Types::SegmentModel.load(response.body)
370
+ else
371
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
372
+ raise error_class.new(response.body, code: code)
373
+ end
374
+ end
375
+ end
376
+ end
377
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Segment
5
+ module Types
6
+ class CreateSegmentRequest < Internal::Types::Model
7
+ field :name, -> { String }, optional: true, nullable: false
8
+
9
+ field :filter, -> { Mailhub::Types::SegmentFilterModel }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Segment
5
+ module Types
6
+ class DeleteSegmentRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Segment
5
+ module Types
6
+ class DeleteSegmentsByCodeRequest < Internal::Types::Model
7
+ field :all, -> { Internal::Types::Boolean }, optional: true, nullable: false
8
+
9
+ field :codes, -> { Internal::Types::Array[String] }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Segment
5
+ module Types
6
+ class GetSegmentContactsRequest < Internal::Types::Model
7
+ field :filter, -> { Mailhub::Types::SegmentFilterModel }, optional: true, nullable: false
8
+
9
+ field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
10
+
11
+ field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Segment
5
+ module Types
6
+ class GetSegmentPreviewRequest < Internal::Types::Model
7
+ field :filter, -> { Mailhub::Types::SegmentFilterModel }, optional: true, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Segment
5
+ module Types
6
+ class GetSegmentRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Segment
5
+ module Types
6
+ class GetSegmentsRequest < Internal::Types::Model
7
+ field :search, -> { String }, optional: true, nullable: false
8
+
9
+ field :sort_by, -> { String }, optional: true, nullable: false, api_name: "sortBy"
10
+
11
+ field :sort_direction, -> { String }, optional: true, nullable: false, api_name: "sortDirection"
12
+
13
+ field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
14
+
15
+ field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Segment
5
+ module Types
6
+ class GetSegmentsUnionPreviewByCodeRequest < Internal::Types::Model
7
+ field :segment_codes, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "segmentCodes"
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Segment
5
+ module Types
6
+ class SyncSegmentRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Segment
5
+ module Types
6
+ class UpdateSegmentRequest < Internal::Types::Model
7
+ field :code, -> { String }, optional: false, nullable: false
8
+
9
+ field :name, -> { String }, optional: true, nullable: false
10
+
11
+ field :filter, -> { Mailhub::Types::SegmentFilterModel }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end