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,385 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Contact
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 [Integer, nil] :segment_id
22
+ # @option params [String, nil] :sort_by
23
+ # @option params [String, nil] :sort_direction
24
+ # @option params [Integer, nil] :page_size
25
+ # @option params [String, nil] :cursor
26
+ #
27
+ # @example
28
+ # client.contact.get_contacts
29
+ #
30
+ # @return [Mailhub::Types::ContactModelCursorPagedResult]
31
+ def get_contacts(request_options: {}, **params)
32
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
33
+ query_params = {}
34
+ query_params["search"] = params[:search] if params.key?(:search)
35
+ query_params["segmentId"] = params[:segment_id] if params.key?(:segment_id)
36
+ query_params["sortBy"] = params[:sort_by] if params.key?(:sort_by)
37
+ query_params["sortDirection"] = params[:sort_direction] if params.key?(:sort_direction)
38
+ query_params["pageSize"] = params[:page_size] if params.key?(:page_size)
39
+ query_params["cursor"] = params[:cursor] if params.key?(:cursor)
40
+
41
+ request = Mailhub::Internal::JSON::Request.new(
42
+ base_url: request_options[:base_url],
43
+ method: "GET",
44
+ path: "v1/contacts",
45
+ query: query_params,
46
+ request_options: request_options
47
+ )
48
+ begin
49
+ response = @client.send(request)
50
+ rescue Net::HTTPRequestTimeout
51
+ raise Mailhub::Errors::TimeoutError
52
+ end
53
+ code = response.code.to_i
54
+ if code.between?(200, 299)
55
+ Mailhub::Types::ContactModelCursorPagedResult.load(response.body)
56
+ else
57
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
58
+ raise error_class.new(response.body, code: code)
59
+ end
60
+ end
61
+
62
+ # @param request_options [Hash]
63
+ # @param params [Mailhub::Contact::Types::CreateContactRequest]
64
+ # @option request_options [String] :base_url
65
+ # @option request_options [Hash{String => Object}] :additional_headers
66
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
67
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
68
+ # @option request_options [Integer] :timeout_in_seconds
69
+ #
70
+ # @example
71
+ # client.contact.create_contact
72
+ #
73
+ # @return [Mailhub::Types::ContactModel]
74
+ def create_contact(request_options: {}, **params)
75
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
76
+ request = Mailhub::Internal::JSON::Request.new(
77
+ base_url: request_options[:base_url],
78
+ method: "POST",
79
+ path: "v1/contacts",
80
+ body: Mailhub::Contact::Types::CreateContactRequest.new(params).to_h,
81
+ request_options: request_options
82
+ )
83
+ begin
84
+ response = @client.send(request)
85
+ rescue Net::HTTPRequestTimeout
86
+ raise Mailhub::Errors::TimeoutError
87
+ end
88
+ code = response.code.to_i
89
+ if code.between?(200, 299)
90
+ Mailhub::Types::ContactModel.load(response.body)
91
+ else
92
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
93
+ raise error_class.new(response.body, code: code)
94
+ end
95
+ end
96
+
97
+ # @param request_options [Hash]
98
+ # @param params [Hash]
99
+ # @option request_options [String] :base_url
100
+ # @option request_options [Hash{String => Object}] :additional_headers
101
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
102
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
103
+ # @option request_options [Integer] :timeout_in_seconds
104
+ # @option params [String] :guid
105
+ #
106
+ # @example
107
+ # client.contact.get_contact(guid: "guid")
108
+ #
109
+ # @return [Mailhub::Types::ContactModel]
110
+ def get_contact(request_options: {}, **params)
111
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
112
+ request = Mailhub::Internal::JSON::Request.new(
113
+ base_url: request_options[:base_url],
114
+ method: "GET",
115
+ path: "v1/contacts/#{URI.encode_uri_component(params[:guid].to_s)}",
116
+ request_options: request_options
117
+ )
118
+ begin
119
+ response = @client.send(request)
120
+ rescue Net::HTTPRequestTimeout
121
+ raise Mailhub::Errors::TimeoutError
122
+ end
123
+ code = response.code.to_i
124
+ if code.between?(200, 299)
125
+ Mailhub::Types::ContactModel.load(response.body)
126
+ else
127
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
128
+ raise error_class.new(response.body, code: code)
129
+ end
130
+ end
131
+
132
+ # @param request_options [Hash]
133
+ # @param params [Mailhub::Contact::Types::UpdateContactRequest]
134
+ # @option request_options [String] :base_url
135
+ # @option request_options [Hash{String => Object}] :additional_headers
136
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
137
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
138
+ # @option request_options [Integer] :timeout_in_seconds
139
+ # @option params [String] :guid
140
+ #
141
+ # @example
142
+ # client.contact.update_contact(guid: "guid")
143
+ #
144
+ # @return [Mailhub::Types::ContactModel]
145
+ def update_contact(request_options: {}, **params)
146
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
147
+ request_data = Mailhub::Contact::Types::UpdateContactRequest.new(params).to_h
148
+ non_body_param_names = %w[guid]
149
+ body = request_data.except(*non_body_param_names)
150
+
151
+ request = Mailhub::Internal::JSON::Request.new(
152
+ base_url: request_options[:base_url],
153
+ method: "PUT",
154
+ path: "v1/contacts/#{URI.encode_uri_component(params[:guid].to_s)}",
155
+ body: body,
156
+ request_options: request_options
157
+ )
158
+ begin
159
+ response = @client.send(request)
160
+ rescue Net::HTTPRequestTimeout
161
+ raise Mailhub::Errors::TimeoutError
162
+ end
163
+ code = response.code.to_i
164
+ if code.between?(200, 299)
165
+ Mailhub::Types::ContactModel.load(response.body)
166
+ else
167
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
168
+ raise error_class.new(response.body, code: code)
169
+ end
170
+ end
171
+
172
+ # @param request_options [Hash]
173
+ # @param params [Hash]
174
+ # @option request_options [String] :base_url
175
+ # @option request_options [Hash{String => Object}] :additional_headers
176
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
177
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
178
+ # @option request_options [Integer] :timeout_in_seconds
179
+ # @option params [String] :guid
180
+ #
181
+ # @example
182
+ # client.contact.delete_contact(guid: "guid")
183
+ #
184
+ # @return [untyped]
185
+ def delete_contact(request_options: {}, **params)
186
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
187
+ request = Mailhub::Internal::JSON::Request.new(
188
+ base_url: request_options[:base_url],
189
+ method: "DELETE",
190
+ path: "v1/contacts/#{URI.encode_uri_component(params[:guid].to_s)}",
191
+ request_options: request_options
192
+ )
193
+ begin
194
+ response = @client.send(request)
195
+ rescue Net::HTTPRequestTimeout
196
+ raise Mailhub::Errors::TimeoutError
197
+ end
198
+ code = response.code.to_i
199
+ return if code.between?(200, 299)
200
+
201
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
202
+ raise error_class.new(response.body, code: code)
203
+ end
204
+
205
+ # @param request_options [Hash]
206
+ # @param params [Hash]
207
+ # @option request_options [String] :base_url
208
+ # @option request_options [Hash{String => Object}] :additional_headers
209
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
210
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
211
+ # @option request_options [Integer] :timeout_in_seconds
212
+ # @option params [String] :guid
213
+ #
214
+ # @example
215
+ # client.contact.block_contact(guid: "guid")
216
+ #
217
+ # @return [untyped]
218
+ def block_contact(request_options: {}, **params)
219
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
220
+ request = Mailhub::Internal::JSON::Request.new(
221
+ base_url: request_options[:base_url],
222
+ method: "POST",
223
+ path: "v1/contacts/#{URI.encode_uri_component(params[:guid].to_s)}/block",
224
+ request_options: request_options
225
+ )
226
+ begin
227
+ response = @client.send(request)
228
+ rescue Net::HTTPRequestTimeout
229
+ raise Mailhub::Errors::TimeoutError
230
+ end
231
+ code = response.code.to_i
232
+ return if code.between?(200, 299)
233
+
234
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
235
+ raise error_class.new(response.body, code: code)
236
+ end
237
+
238
+ # @param request_options [Hash]
239
+ # @param params [Mailhub::Contact::Types::BlockContactsByGUIDRequest]
240
+ # @option request_options [String] :base_url
241
+ # @option request_options [Hash{String => Object}] :additional_headers
242
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
243
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
244
+ # @option request_options [Integer] :timeout_in_seconds
245
+ #
246
+ # @example
247
+ # client.contact.block_contacts
248
+ #
249
+ # @return [untyped]
250
+ def block_contacts(request_options: {}, **params)
251
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
252
+ request = Mailhub::Internal::JSON::Request.new(
253
+ base_url: request_options[:base_url],
254
+ method: "POST",
255
+ path: "v1/contacts/block",
256
+ body: Mailhub::Contact::Types::BlockContactsByGUIDRequest.new(params).to_h,
257
+ request_options: request_options
258
+ )
259
+ begin
260
+ response = @client.send(request)
261
+ rescue Net::HTTPRequestTimeout
262
+ raise Mailhub::Errors::TimeoutError
263
+ end
264
+ code = response.code.to_i
265
+ return if code.between?(200, 299)
266
+
267
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
268
+ raise error_class.new(response.body, code: code)
269
+ end
270
+
271
+ # @param request_options [Hash]
272
+ # @param params [Mailhub::Contact::Types::DeleteContactsByGUIDRequest]
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.contact.delete_contacts
281
+ #
282
+ # @return [untyped]
283
+ def delete_contacts(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/contacts/delete",
289
+ body: Mailhub::Contact::Types::DeleteContactsByGUIDRequest.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
+ return if code.between?(200, 299)
299
+
300
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
301
+ raise error_class.new(response.body, code: code)
302
+ end
303
+
304
+ # @param request_options [Hash]
305
+ # @param params [void]
306
+ # @option request_options [String] :base_url
307
+ # @option request_options [Hash{String => Object}] :additional_headers
308
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
309
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
310
+ # @option request_options [Integer] :timeout_in_seconds
311
+ #
312
+ # @example
313
+ # client.contact.import_contacts
314
+ #
315
+ # @return [Mailhub::Types::ContactImportModel]
316
+ def import_contacts(request_options: {}, **params)
317
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
318
+ body = Internal::Multipart::FormData.new
319
+
320
+ body.add_part(params[:file].to_form_data_part(name: "file")) if params[:file]
321
+ if params[:validate_email_domain]
322
+ body.add(
323
+ name: "validateEmailDomain",
324
+ value: params[:validate_email_domain]
325
+ )
326
+ end
327
+
328
+ request = Mailhub::Internal::Multipart::Request.new(
329
+ base_url: request_options[:base_url],
330
+ method: "POST",
331
+ path: "v1/contacts/import",
332
+ body: body,
333
+ request_options: request_options
334
+ )
335
+ begin
336
+ response = @client.send(request)
337
+ rescue Net::HTTPRequestTimeout
338
+ raise Mailhub::Errors::TimeoutError
339
+ end
340
+ code = response.code.to_i
341
+ if code.between?(200, 299)
342
+ Mailhub::Types::ContactImportModel.load(response.body)
343
+ else
344
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
345
+ raise error_class.new(response.body, code: code)
346
+ end
347
+ end
348
+
349
+ # @param request_options [Hash]
350
+ # @param params [Hash]
351
+ # @option request_options [String] :base_url
352
+ # @option request_options [Hash{String => Object}] :additional_headers
353
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
354
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
355
+ # @option request_options [Integer] :timeout_in_seconds
356
+ # @option params [String] :job_id
357
+ #
358
+ # @example
359
+ # client.contact.get_import_job(job_id: "jobId")
360
+ #
361
+ # @return [Mailhub::Types::ContactImportJobModel]
362
+ def get_import_job(request_options: {}, **params)
363
+ params = Mailhub::Internal::Types::Utils.normalize_keys(params)
364
+ request = Mailhub::Internal::JSON::Request.new(
365
+ base_url: request_options[:base_url],
366
+ method: "GET",
367
+ path: "v1/contacts/import/#{URI.encode_uri_component(params[:job_id].to_s)}",
368
+ request_options: request_options
369
+ )
370
+ begin
371
+ response = @client.send(request)
372
+ rescue Net::HTTPRequestTimeout
373
+ raise Mailhub::Errors::TimeoutError
374
+ end
375
+ code = response.code.to_i
376
+ if code.between?(200, 299)
377
+ Mailhub::Types::ContactImportJobModel.load(response.body)
378
+ else
379
+ error_class = Mailhub::Errors::ResponseError.subclass_for_code(code)
380
+ raise error_class.new(response.body, code: code)
381
+ end
382
+ end
383
+ end
384
+ end
385
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Contact
5
+ module Types
6
+ class BlockContactRequest < Internal::Types::Model
7
+ field :guid, -> { String }, optional: false, 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 Contact
5
+ module Types
6
+ class BlockContactsByGUIDRequest < Internal::Types::Model
7
+ field :guids, -> { Internal::Types::Array[String] }, optional: true, 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 Contact
5
+ module Types
6
+ class CreateContactRequest < Internal::Types::Model
7
+ field :email, -> { String }, optional: true, nullable: false
8
+
9
+ field :name, -> { String }, optional: true, nullable: false
10
+
11
+ field :fields, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Contact
5
+ module Types
6
+ class DeleteContactRequest < Internal::Types::Model
7
+ field :guid, -> { String }, optional: false, 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 Contact
5
+ module Types
6
+ class DeleteContactsByGUIDRequest < Internal::Types::Model
7
+ field :guids, -> { Internal::Types::Array[String] }, 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 Contact
5
+ module Types
6
+ class GetContactRequest < Internal::Types::Model
7
+ field :guid, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Contact
5
+ module Types
6
+ class GetContactsRequest < Internal::Types::Model
7
+ field :search, -> { String }, optional: true, nullable: false
8
+
9
+ field :segment_id, -> { Integer }, optional: true, nullable: false, api_name: "segmentId"
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,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Contact
5
+ module Types
6
+ class GetImportJobRequest < Internal::Types::Model
7
+ field :job_id, -> { String }, optional: false, nullable: false, api_name: "jobId"
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Contact
5
+ module Types
6
+ class ImportContactsRequest < Internal::Types::Model; end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mailhub
4
+ module Contact
5
+ module Types
6
+ class UpdateContactRequest < Internal::Types::Model
7
+ field :guid, -> { String }, optional: false, nullable: false
8
+
9
+ field :email, -> { String }, optional: true, nullable: false
10
+
11
+ field :name, -> { String }, optional: true, nullable: false
12
+
13
+ field :fields, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
14
+ end
15
+ end
16
+ end
17
+ end