mailodds 1.0.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 (182) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +64 -0
  4. data/Rakefile +10 -0
  5. data/docs/AddPolicyRule201Response.md +18 -0
  6. data/docs/AddSuppressionRequest.md +18 -0
  7. data/docs/AddSuppressionRequestEntriesInner.md +22 -0
  8. data/docs/AddSuppressionResponse.md +22 -0
  9. data/docs/BulkValidationApi.md +659 -0
  10. data/docs/CheckSuppressionRequest.md +18 -0
  11. data/docs/CreateJobFromS3Request.md +20 -0
  12. data/docs/CreateJobRequest.md +26 -0
  13. data/docs/CreatePolicyFromPresetRequest.md +22 -0
  14. data/docs/CreatePolicyRequest.md +24 -0
  15. data/docs/DeleteJob200Response.md +20 -0
  16. data/docs/DeletePolicy200Response.md +20 -0
  17. data/docs/DeletePolicyRule200Response.md +18 -0
  18. data/docs/EmailValidationApi.md +77 -0
  19. data/docs/ErrorResponse.md +22 -0
  20. data/docs/GetPresignedUploadRequest.md +20 -0
  21. data/docs/HealthCheck200Response.md +20 -0
  22. data/docs/Job.md +34 -0
  23. data/docs/JobListResponse.md +22 -0
  24. data/docs/JobResponse.md +20 -0
  25. data/docs/JobSummary.md +26 -0
  26. data/docs/Pagination.md +24 -0
  27. data/docs/Policy.md +34 -0
  28. data/docs/PolicyListResponse.md +22 -0
  29. data/docs/PolicyListResponseLimits.md +22 -0
  30. data/docs/PolicyPresetsResponse.md +20 -0
  31. data/docs/PolicyPresetsResponsePresetsInner.md +24 -0
  32. data/docs/PolicyResponse.md +20 -0
  33. data/docs/PolicyRule.md +28 -0
  34. data/docs/PolicyRuleAction.md +18 -0
  35. data/docs/PolicyTestResponse.md +26 -0
  36. data/docs/PresignedUploadResponse.md +20 -0
  37. data/docs/PresignedUploadResponseUpload.md +24 -0
  38. data/docs/RemoveSuppression200Response.md +20 -0
  39. data/docs/RemoveSuppressionRequest.md +18 -0
  40. data/docs/ResultsResponse.md +22 -0
  41. data/docs/SuppressionCheckResponse.md +26 -0
  42. data/docs/SuppressionEntry.md +26 -0
  43. data/docs/SuppressionListResponse.md +22 -0
  44. data/docs/SuppressionListsApi.md +362 -0
  45. data/docs/SuppressionStatsResponse.md +22 -0
  46. data/docs/SuppressionStatsResponseByType.md +20 -0
  47. data/docs/SystemApi.md +141 -0
  48. data/docs/TelemetrySummary.md +32 -0
  49. data/docs/TelemetrySummaryRates.md +24 -0
  50. data/docs/TelemetrySummaryTopDomainsInner.md +28 -0
  51. data/docs/TelemetrySummaryTopReasonsInner.md +20 -0
  52. data/docs/TelemetrySummaryTotals.md +20 -0
  53. data/docs/TestPolicyRequest.md +20 -0
  54. data/docs/TestPolicyRequestTestResult.md +26 -0
  55. data/docs/UpdatePolicyRequest.md +24 -0
  56. data/docs/ValidateRequest.md +20 -0
  57. data/docs/ValidationPoliciesApi.md +712 -0
  58. data/docs/ValidationResponse.md +40 -0
  59. data/docs/ValidationResponseSuppressionMatch.md +22 -0
  60. data/docs/ValidationResult.md +26 -0
  61. data/git_push.sh +57 -0
  62. data/lib/mailodds/api/bulk_validation_api.rb +651 -0
  63. data/lib/mailodds/api/email_validation_api.rb +90 -0
  64. data/lib/mailodds/api/suppression_lists_api.rb +356 -0
  65. data/lib/mailodds/api/system_api.rb +143 -0
  66. data/lib/mailodds/api/validation_policies_api.rb +686 -0
  67. data/lib/mailodds/api_client.rb +397 -0
  68. data/lib/mailodds/api_error.rb +58 -0
  69. data/lib/mailodds/api_model_base.rb +88 -0
  70. data/lib/mailodds/configuration.rb +308 -0
  71. data/lib/mailodds/models/add_policy_rule201_response.rb +147 -0
  72. data/lib/mailodds/models/add_suppression_request.rb +166 -0
  73. data/lib/mailodds/models/add_suppression_request_entries_inner.rb +223 -0
  74. data/lib/mailodds/models/add_suppression_response.rb +165 -0
  75. data/lib/mailodds/models/check_suppression_request.rb +164 -0
  76. data/lib/mailodds/models/create_job_from_s3_request.rb +176 -0
  77. data/lib/mailodds/models/create_job_request.rb +219 -0
  78. data/lib/mailodds/models/create_policy_from_preset_request.rb +225 -0
  79. data/lib/mailodds/models/create_policy_request.rb +223 -0
  80. data/lib/mailodds/models/delete_job200_response.rb +156 -0
  81. data/lib/mailodds/models/delete_policy200_response.rb +156 -0
  82. data/lib/mailodds/models/delete_policy_rule200_response.rb +147 -0
  83. data/lib/mailodds/models/error_response.rb +201 -0
  84. data/lib/mailodds/models/get_presigned_upload_request.rb +175 -0
  85. data/lib/mailodds/models/health_check200_response.rb +156 -0
  86. data/lib/mailodds/models/job.rb +281 -0
  87. data/lib/mailodds/models/job_list_response.rb +167 -0
  88. data/lib/mailodds/models/job_response.rb +156 -0
  89. data/lib/mailodds/models/job_summary.rb +183 -0
  90. data/lib/mailodds/models/pagination.rb +174 -0
  91. data/lib/mailodds/models/policy.rb +221 -0
  92. data/lib/mailodds/models/policy_list_response.rb +167 -0
  93. data/lib/mailodds/models/policy_list_response_limits.rb +166 -0
  94. data/lib/mailodds/models/policy_presets_response.rb +158 -0
  95. data/lib/mailodds/models/policy_presets_response_presets_inner.rb +176 -0
  96. data/lib/mailodds/models/policy_response.rb +156 -0
  97. data/lib/mailodds/models/policy_rule.rb +269 -0
  98. data/lib/mailodds/models/policy_rule_action.rb +181 -0
  99. data/lib/mailodds/models/policy_test_response.rb +187 -0
  100. data/lib/mailodds/models/presigned_upload_response.rb +156 -0
  101. data/lib/mailodds/models/presigned_upload_response_upload.rb +174 -0
  102. data/lib/mailodds/models/remove_suppression200_response.rb +156 -0
  103. data/lib/mailodds/models/remove_suppression_request.rb +166 -0
  104. data/lib/mailodds/models/results_response.rb +167 -0
  105. data/lib/mailodds/models/suppression_check_response.rb +217 -0
  106. data/lib/mailodds/models/suppression_entry.rb +217 -0
  107. data/lib/mailodds/models/suppression_list_response.rb +167 -0
  108. data/lib/mailodds/models/suppression_stats_response.rb +165 -0
  109. data/lib/mailodds/models/suppression_stats_response_by_type.rb +156 -0
  110. data/lib/mailodds/models/telemetry_summary.rb +251 -0
  111. data/lib/mailodds/models/telemetry_summary_rates.rb +179 -0
  112. data/lib/mailodds/models/telemetry_summary_top_domains_inner.rb +192 -0
  113. data/lib/mailodds/models/telemetry_summary_top_reasons_inner.rb +156 -0
  114. data/lib/mailodds/models/telemetry_summary_totals.rb +158 -0
  115. data/lib/mailodds/models/test_policy_request.rb +190 -0
  116. data/lib/mailodds/models/test_policy_request_test_result.rb +184 -0
  117. data/lib/mailodds/models/update_policy_request.rb +174 -0
  118. data/lib/mailodds/models/validate_request.rb +175 -0
  119. data/lib/mailodds/models/validation_response.rb +326 -0
  120. data/lib/mailodds/models/validation_response_suppression_match.rb +199 -0
  121. data/lib/mailodds/models/validation_result.rb +183 -0
  122. data/lib/mailodds/version.rb +15 -0
  123. data/lib/mailodds.rb +96 -0
  124. data/mailodds.gemspec +31 -0
  125. data/spec/api/bulk_validation_api_spec.rb +151 -0
  126. data/spec/api/email_validation_api_spec.rb +47 -0
  127. data/spec/api/suppression_lists_api_spec.rb +97 -0
  128. data/spec/api/system_api_spec.rb +58 -0
  129. data/spec/api/validation_policies_api_spec.rb +157 -0
  130. data/spec/models/add_policy_rule201_response_spec.rb +36 -0
  131. data/spec/models/add_suppression_request_entries_inner_spec.rb +52 -0
  132. data/spec/models/add_suppression_request_spec.rb +36 -0
  133. data/spec/models/add_suppression_response_spec.rb +48 -0
  134. data/spec/models/check_suppression_request_spec.rb +36 -0
  135. data/spec/models/create_job_from_s3_request_spec.rb +42 -0
  136. data/spec/models/create_job_request_spec.rb +60 -0
  137. data/spec/models/create_policy_from_preset_request_spec.rb +52 -0
  138. data/spec/models/create_policy_request_spec.rb +54 -0
  139. data/spec/models/delete_job200_response_spec.rb +42 -0
  140. data/spec/models/delete_policy200_response_spec.rb +42 -0
  141. data/spec/models/delete_policy_rule200_response_spec.rb +36 -0
  142. data/spec/models/error_response_spec.rb +48 -0
  143. data/spec/models/get_presigned_upload_request_spec.rb +42 -0
  144. data/spec/models/health_check200_response_spec.rb +42 -0
  145. data/spec/models/job_list_response_spec.rb +48 -0
  146. data/spec/models/job_response_spec.rb +42 -0
  147. data/spec/models/job_spec.rb +88 -0
  148. data/spec/models/job_summary_spec.rb +60 -0
  149. data/spec/models/pagination_spec.rb +54 -0
  150. data/spec/models/policy_list_response_limits_spec.rb +48 -0
  151. data/spec/models/policy_list_response_spec.rb +48 -0
  152. data/spec/models/policy_presets_response_presets_inner_spec.rb +54 -0
  153. data/spec/models/policy_presets_response_spec.rb +42 -0
  154. data/spec/models/policy_response_spec.rb +42 -0
  155. data/spec/models/policy_rule_action_spec.rb +40 -0
  156. data/spec/models/policy_rule_spec.rb +70 -0
  157. data/spec/models/policy_spec.rb +84 -0
  158. data/spec/models/policy_test_response_spec.rb +60 -0
  159. data/spec/models/presigned_upload_response_spec.rb +42 -0
  160. data/spec/models/presigned_upload_response_upload_spec.rb +54 -0
  161. data/spec/models/remove_suppression200_response_spec.rb +42 -0
  162. data/spec/models/remove_suppression_request_spec.rb +36 -0
  163. data/spec/models/results_response_spec.rb +48 -0
  164. data/spec/models/suppression_check_response_spec.rb +64 -0
  165. data/spec/models/suppression_entry_spec.rb +64 -0
  166. data/spec/models/suppression_list_response_spec.rb +48 -0
  167. data/spec/models/suppression_stats_response_by_type_spec.rb +42 -0
  168. data/spec/models/suppression_stats_response_spec.rb +48 -0
  169. data/spec/models/telemetry_summary_rates_spec.rb +54 -0
  170. data/spec/models/telemetry_summary_spec.rb +82 -0
  171. data/spec/models/telemetry_summary_top_domains_inner_spec.rb +66 -0
  172. data/spec/models/telemetry_summary_top_reasons_inner_spec.rb +42 -0
  173. data/spec/models/telemetry_summary_totals_spec.rb +42 -0
  174. data/spec/models/test_policy_request_spec.rb +42 -0
  175. data/spec/models/test_policy_request_test_result_spec.rb +60 -0
  176. data/spec/models/update_policy_request_spec.rb +54 -0
  177. data/spec/models/validate_request_spec.rb +42 -0
  178. data/spec/models/validation_response_spec.rb +110 -0
  179. data/spec/models/validation_response_suppression_match_spec.rb +52 -0
  180. data/spec/models/validation_result_spec.rb +60 -0
  181. data/spec/spec_helper.rb +111 -0
  182. metadata +322 -0
@@ -0,0 +1,651 @@
1
+ =begin
2
+ #MailOdds Email Validation API
3
+
4
+ #MailOdds provides email validation services to help maintain clean email lists and improve deliverability. The API performs multiple validation checks including format verification, domain validation, MX record checking, and disposable email detection. ## Authentication All API requests require authentication using a Bearer token. Include your API key in the Authorization header: ``` Authorization: Bearer YOUR_API_KEY ``` API keys can be created in the MailOdds dashboard. ## Rate Limits Rate limits vary by plan: - Free: 10 requests/minute - Starter: 60 requests/minute - Pro: 300 requests/minute - Business: 1000 requests/minute - Enterprise: Custom limits ## Response Format All responses include: - `schema_version`: API schema version (currently \"1.0\") - `request_id`: Unique request identifier for debugging Error responses include: - `error`: Machine-readable error code - `message`: Human-readable error description
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: support@mailodds.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Mailodds
16
+ class BulkValidationApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Cancel a job
23
+ # Cancel a pending or processing job. Partial results are preserved.
24
+ # @param job_id [String]
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [JobResponse]
27
+ def cancel_job(job_id, opts = {})
28
+ data, _status_code, _headers = cancel_job_with_http_info(job_id, opts)
29
+ data
30
+ end
31
+
32
+ # Cancel a job
33
+ # Cancel a pending or processing job. Partial results are preserved.
34
+ # @param job_id [String]
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(JobResponse, Integer, Hash)>] JobResponse data, response status code and response headers
37
+ def cancel_job_with_http_info(job_id, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: BulkValidationApi.cancel_job ...'
40
+ end
41
+ # verify the required parameter 'job_id' is set
42
+ if @api_client.config.client_side_validation && job_id.nil?
43
+ fail ArgumentError, "Missing the required parameter 'job_id' when calling BulkValidationApi.cancel_job"
44
+ end
45
+ # resource path
46
+ local_var_path = '/v1/jobs/{job_id}/cancel'.sub('{' + 'job_id' + '}', CGI.escape(job_id.to_s))
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+
51
+ # header parameters
52
+ header_params = opts[:header_params] || {}
53
+ # HTTP header 'Accept' (if needed)
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
55
+
56
+ # form parameters
57
+ form_params = opts[:form_params] || {}
58
+
59
+ # http body (model)
60
+ post_body = opts[:debug_body]
61
+
62
+ # return_type
63
+ return_type = opts[:debug_return_type] || 'JobResponse'
64
+
65
+ # auth_names
66
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
67
+
68
+ new_options = opts.merge(
69
+ :operation => :"BulkValidationApi.cancel_job",
70
+ :header_params => header_params,
71
+ :query_params => query_params,
72
+ :form_params => form_params,
73
+ :body => post_body,
74
+ :auth_names => auth_names,
75
+ :return_type => return_type
76
+ )
77
+
78
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
79
+ if @api_client.config.debugging
80
+ @api_client.config.logger.debug "API called: BulkValidationApi#cancel_job\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
81
+ end
82
+ return data, status_code, headers
83
+ end
84
+
85
+ # Create bulk validation job (JSON)
86
+ # Create a new bulk validation job by submitting a JSON array of emails.
87
+ # @param create_job_request [CreateJobRequest]
88
+ # @param [Hash] opts the optional parameters
89
+ # @return [JobResponse]
90
+ def create_job(create_job_request, opts = {})
91
+ data, _status_code, _headers = create_job_with_http_info(create_job_request, opts)
92
+ data
93
+ end
94
+
95
+ # Create bulk validation job (JSON)
96
+ # Create a new bulk validation job by submitting a JSON array of emails.
97
+ # @param create_job_request [CreateJobRequest]
98
+ # @param [Hash] opts the optional parameters
99
+ # @return [Array<(JobResponse, Integer, Hash)>] JobResponse data, response status code and response headers
100
+ def create_job_with_http_info(create_job_request, opts = {})
101
+ if @api_client.config.debugging
102
+ @api_client.config.logger.debug 'Calling API: BulkValidationApi.create_job ...'
103
+ end
104
+ # verify the required parameter 'create_job_request' is set
105
+ if @api_client.config.client_side_validation && create_job_request.nil?
106
+ fail ArgumentError, "Missing the required parameter 'create_job_request' when calling BulkValidationApi.create_job"
107
+ end
108
+ # resource path
109
+ local_var_path = '/v1/jobs'
110
+
111
+ # query parameters
112
+ query_params = opts[:query_params] || {}
113
+
114
+ # header parameters
115
+ header_params = opts[:header_params] || {}
116
+ # HTTP header 'Accept' (if needed)
117
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
118
+ # HTTP header 'Content-Type'
119
+ content_type = @api_client.select_header_content_type(['application/json'])
120
+ if !content_type.nil?
121
+ header_params['Content-Type'] = content_type
122
+ end
123
+
124
+ # form parameters
125
+ form_params = opts[:form_params] || {}
126
+
127
+ # http body (model)
128
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_job_request)
129
+
130
+ # return_type
131
+ return_type = opts[:debug_return_type] || 'JobResponse'
132
+
133
+ # auth_names
134
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
135
+
136
+ new_options = opts.merge(
137
+ :operation => :"BulkValidationApi.create_job",
138
+ :header_params => header_params,
139
+ :query_params => query_params,
140
+ :form_params => form_params,
141
+ :body => post_body,
142
+ :auth_names => auth_names,
143
+ :return_type => return_type
144
+ )
145
+
146
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
147
+ if @api_client.config.debugging
148
+ @api_client.config.logger.debug "API called: BulkValidationApi#create_job\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
149
+ end
150
+ return data, status_code, headers
151
+ end
152
+
153
+ # Create job from S3 upload
154
+ # Create a validation job from a file previously uploaded to S3.
155
+ # @param create_job_from_s3_request [CreateJobFromS3Request]
156
+ # @param [Hash] opts the optional parameters
157
+ # @return [JobResponse]
158
+ def create_job_from_s3(create_job_from_s3_request, opts = {})
159
+ data, _status_code, _headers = create_job_from_s3_with_http_info(create_job_from_s3_request, opts)
160
+ data
161
+ end
162
+
163
+ # Create job from S3 upload
164
+ # Create a validation job from a file previously uploaded to S3.
165
+ # @param create_job_from_s3_request [CreateJobFromS3Request]
166
+ # @param [Hash] opts the optional parameters
167
+ # @return [Array<(JobResponse, Integer, Hash)>] JobResponse data, response status code and response headers
168
+ def create_job_from_s3_with_http_info(create_job_from_s3_request, opts = {})
169
+ if @api_client.config.debugging
170
+ @api_client.config.logger.debug 'Calling API: BulkValidationApi.create_job_from_s3 ...'
171
+ end
172
+ # verify the required parameter 'create_job_from_s3_request' is set
173
+ if @api_client.config.client_side_validation && create_job_from_s3_request.nil?
174
+ fail ArgumentError, "Missing the required parameter 'create_job_from_s3_request' when calling BulkValidationApi.create_job_from_s3"
175
+ end
176
+ # resource path
177
+ local_var_path = '/v1/jobs/upload/s3'
178
+
179
+ # query parameters
180
+ query_params = opts[:query_params] || {}
181
+
182
+ # header parameters
183
+ header_params = opts[:header_params] || {}
184
+ # HTTP header 'Accept' (if needed)
185
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
186
+ # HTTP header 'Content-Type'
187
+ content_type = @api_client.select_header_content_type(['application/json'])
188
+ if !content_type.nil?
189
+ header_params['Content-Type'] = content_type
190
+ end
191
+
192
+ # form parameters
193
+ form_params = opts[:form_params] || {}
194
+
195
+ # http body (model)
196
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_job_from_s3_request)
197
+
198
+ # return_type
199
+ return_type = opts[:debug_return_type] || 'JobResponse'
200
+
201
+ # auth_names
202
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
203
+
204
+ new_options = opts.merge(
205
+ :operation => :"BulkValidationApi.create_job_from_s3",
206
+ :header_params => header_params,
207
+ :query_params => query_params,
208
+ :form_params => form_params,
209
+ :body => post_body,
210
+ :auth_names => auth_names,
211
+ :return_type => return_type
212
+ )
213
+
214
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
215
+ if @api_client.config.debugging
216
+ @api_client.config.logger.debug "API called: BulkValidationApi#create_job_from_s3\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
217
+ end
218
+ return data, status_code, headers
219
+ end
220
+
221
+ # Create bulk validation job (file upload)
222
+ # Create a new bulk validation job by uploading a CSV, Excel, or TXT file.
223
+ # @param file [File] CSV, Excel (.xlsx, .xls), ODS, or TXT file
224
+ # @param [Hash] opts the optional parameters
225
+ # @option opts [Boolean] :dedup Remove duplicate emails (default to false)
226
+ # @option opts [String] :metadata JSON metadata for the job
227
+ # @return [JobResponse]
228
+ def create_job_upload(file, opts = {})
229
+ data, _status_code, _headers = create_job_upload_with_http_info(file, opts)
230
+ data
231
+ end
232
+
233
+ # Create bulk validation job (file upload)
234
+ # Create a new bulk validation job by uploading a CSV, Excel, or TXT file.
235
+ # @param file [File] CSV, Excel (.xlsx, .xls), ODS, or TXT file
236
+ # @param [Hash] opts the optional parameters
237
+ # @option opts [Boolean] :dedup Remove duplicate emails (default to false)
238
+ # @option opts [String] :metadata JSON metadata for the job
239
+ # @return [Array<(JobResponse, Integer, Hash)>] JobResponse data, response status code and response headers
240
+ def create_job_upload_with_http_info(file, opts = {})
241
+ if @api_client.config.debugging
242
+ @api_client.config.logger.debug 'Calling API: BulkValidationApi.create_job_upload ...'
243
+ end
244
+ # verify the required parameter 'file' is set
245
+ if @api_client.config.client_side_validation && file.nil?
246
+ fail ArgumentError, "Missing the required parameter 'file' when calling BulkValidationApi.create_job_upload"
247
+ end
248
+ # resource path
249
+ local_var_path = '/v1/jobs/upload'
250
+
251
+ # query parameters
252
+ query_params = opts[:query_params] || {}
253
+
254
+ # header parameters
255
+ header_params = opts[:header_params] || {}
256
+ # HTTP header 'Accept' (if needed)
257
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
258
+ # HTTP header 'Content-Type'
259
+ content_type = @api_client.select_header_content_type(['multipart/form-data'])
260
+ if !content_type.nil?
261
+ header_params['Content-Type'] = content_type
262
+ end
263
+
264
+ # form parameters
265
+ form_params = opts[:form_params] || {}
266
+ form_params['file'] = file
267
+ form_params['dedup'] = opts[:'dedup'] if !opts[:'dedup'].nil?
268
+ form_params['metadata'] = opts[:'metadata'] if !opts[:'metadata'].nil?
269
+
270
+ # http body (model)
271
+ post_body = opts[:debug_body]
272
+
273
+ # return_type
274
+ return_type = opts[:debug_return_type] || 'JobResponse'
275
+
276
+ # auth_names
277
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
278
+
279
+ new_options = opts.merge(
280
+ :operation => :"BulkValidationApi.create_job_upload",
281
+ :header_params => header_params,
282
+ :query_params => query_params,
283
+ :form_params => form_params,
284
+ :body => post_body,
285
+ :auth_names => auth_names,
286
+ :return_type => return_type
287
+ )
288
+
289
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
290
+ if @api_client.config.debugging
291
+ @api_client.config.logger.debug "API called: BulkValidationApi#create_job_upload\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
292
+ end
293
+ return data, status_code, headers
294
+ end
295
+
296
+ # Delete a job
297
+ # Permanently delete a completed or cancelled job and its results.
298
+ # @param job_id [String]
299
+ # @param [Hash] opts the optional parameters
300
+ # @return [DeleteJob200Response]
301
+ def delete_job(job_id, opts = {})
302
+ data, _status_code, _headers = delete_job_with_http_info(job_id, opts)
303
+ data
304
+ end
305
+
306
+ # Delete a job
307
+ # Permanently delete a completed or cancelled job and its results.
308
+ # @param job_id [String]
309
+ # @param [Hash] opts the optional parameters
310
+ # @return [Array<(DeleteJob200Response, Integer, Hash)>] DeleteJob200Response data, response status code and response headers
311
+ def delete_job_with_http_info(job_id, opts = {})
312
+ if @api_client.config.debugging
313
+ @api_client.config.logger.debug 'Calling API: BulkValidationApi.delete_job ...'
314
+ end
315
+ # verify the required parameter 'job_id' is set
316
+ if @api_client.config.client_side_validation && job_id.nil?
317
+ fail ArgumentError, "Missing the required parameter 'job_id' when calling BulkValidationApi.delete_job"
318
+ end
319
+ # resource path
320
+ local_var_path = '/v1/jobs/{job_id}'.sub('{' + 'job_id' + '}', CGI.escape(job_id.to_s))
321
+
322
+ # query parameters
323
+ query_params = opts[:query_params] || {}
324
+
325
+ # header parameters
326
+ header_params = opts[:header_params] || {}
327
+ # HTTP header 'Accept' (if needed)
328
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
329
+
330
+ # form parameters
331
+ form_params = opts[:form_params] || {}
332
+
333
+ # http body (model)
334
+ post_body = opts[:debug_body]
335
+
336
+ # return_type
337
+ return_type = opts[:debug_return_type] || 'DeleteJob200Response'
338
+
339
+ # auth_names
340
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
341
+
342
+ new_options = opts.merge(
343
+ :operation => :"BulkValidationApi.delete_job",
344
+ :header_params => header_params,
345
+ :query_params => query_params,
346
+ :form_params => form_params,
347
+ :body => post_body,
348
+ :auth_names => auth_names,
349
+ :return_type => return_type
350
+ )
351
+
352
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
353
+ if @api_client.config.debugging
354
+ @api_client.config.logger.debug "API called: BulkValidationApi#delete_job\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
355
+ end
356
+ return data, status_code, headers
357
+ end
358
+
359
+ # Get job status
360
+ # Get the status and details of a specific validation job.
361
+ # @param job_id [String]
362
+ # @param [Hash] opts the optional parameters
363
+ # @return [JobResponse]
364
+ def get_job(job_id, opts = {})
365
+ data, _status_code, _headers = get_job_with_http_info(job_id, opts)
366
+ data
367
+ end
368
+
369
+ # Get job status
370
+ # Get the status and details of a specific validation job.
371
+ # @param job_id [String]
372
+ # @param [Hash] opts the optional parameters
373
+ # @return [Array<(JobResponse, Integer, Hash)>] JobResponse data, response status code and response headers
374
+ def get_job_with_http_info(job_id, opts = {})
375
+ if @api_client.config.debugging
376
+ @api_client.config.logger.debug 'Calling API: BulkValidationApi.get_job ...'
377
+ end
378
+ # verify the required parameter 'job_id' is set
379
+ if @api_client.config.client_side_validation && job_id.nil?
380
+ fail ArgumentError, "Missing the required parameter 'job_id' when calling BulkValidationApi.get_job"
381
+ end
382
+ # resource path
383
+ local_var_path = '/v1/jobs/{job_id}'.sub('{' + 'job_id' + '}', CGI.escape(job_id.to_s))
384
+
385
+ # query parameters
386
+ query_params = opts[:query_params] || {}
387
+
388
+ # header parameters
389
+ header_params = opts[:header_params] || {}
390
+ # HTTP header 'Accept' (if needed)
391
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
392
+
393
+ # form parameters
394
+ form_params = opts[:form_params] || {}
395
+
396
+ # http body (model)
397
+ post_body = opts[:debug_body]
398
+
399
+ # return_type
400
+ return_type = opts[:debug_return_type] || 'JobResponse'
401
+
402
+ # auth_names
403
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
404
+
405
+ new_options = opts.merge(
406
+ :operation => :"BulkValidationApi.get_job",
407
+ :header_params => header_params,
408
+ :query_params => query_params,
409
+ :form_params => form_params,
410
+ :body => post_body,
411
+ :auth_names => auth_names,
412
+ :return_type => return_type
413
+ )
414
+
415
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
416
+ if @api_client.config.debugging
417
+ @api_client.config.logger.debug "API called: BulkValidationApi#get_job\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
418
+ end
419
+ return data, status_code, headers
420
+ end
421
+
422
+ # Get job results
423
+ # Download validation results in JSON, CSV, or NDJSON format.
424
+ # @param job_id [String]
425
+ # @param [Hash] opts the optional parameters
426
+ # @option opts [String] :format (default to 'json')
427
+ # @option opts [String] :filter
428
+ # @option opts [Integer] :page (default to 1)
429
+ # @option opts [Integer] :per_page (default to 1000)
430
+ # @return [ResultsResponse]
431
+ def get_job_results(job_id, opts = {})
432
+ data, _status_code, _headers = get_job_results_with_http_info(job_id, opts)
433
+ data
434
+ end
435
+
436
+ # Get job results
437
+ # Download validation results in JSON, CSV, or NDJSON format.
438
+ # @param job_id [String]
439
+ # @param [Hash] opts the optional parameters
440
+ # @option opts [String] :format (default to 'json')
441
+ # @option opts [String] :filter
442
+ # @option opts [Integer] :page (default to 1)
443
+ # @option opts [Integer] :per_page (default to 1000)
444
+ # @return [Array<(ResultsResponse, Integer, Hash)>] ResultsResponse data, response status code and response headers
445
+ def get_job_results_with_http_info(job_id, opts = {})
446
+ if @api_client.config.debugging
447
+ @api_client.config.logger.debug 'Calling API: BulkValidationApi.get_job_results ...'
448
+ end
449
+ # verify the required parameter 'job_id' is set
450
+ if @api_client.config.client_side_validation && job_id.nil?
451
+ fail ArgumentError, "Missing the required parameter 'job_id' when calling BulkValidationApi.get_job_results"
452
+ end
453
+ allowable_values = ["json", "csv", "ndjson"]
454
+ if @api_client.config.client_side_validation && opts[:'format'] && !allowable_values.include?(opts[:'format'])
455
+ fail ArgumentError, "invalid value for \"format\", must be one of #{allowable_values}"
456
+ end
457
+ allowable_values = ["all", "valid_only", "invalid_only"]
458
+ if @api_client.config.client_side_validation && opts[:'filter'] && !allowable_values.include?(opts[:'filter'])
459
+ fail ArgumentError, "invalid value for \"filter\", must be one of #{allowable_values}"
460
+ end
461
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] > 10000
462
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling BulkValidationApi.get_job_results, must be smaller than or equal to 10000.'
463
+ end
464
+
465
+ # resource path
466
+ local_var_path = '/v1/jobs/{job_id}/results'.sub('{' + 'job_id' + '}', CGI.escape(job_id.to_s))
467
+
468
+ # query parameters
469
+ query_params = opts[:query_params] || {}
470
+ query_params[:'format'] = opts[:'format'] if !opts[:'format'].nil?
471
+ query_params[:'filter'] = opts[:'filter'] if !opts[:'filter'].nil?
472
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
473
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
474
+
475
+ # header parameters
476
+ header_params = opts[:header_params] || {}
477
+ # HTTP header 'Accept' (if needed)
478
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'text/csv', 'application/x-ndjson']) unless header_params['Accept']
479
+
480
+ # form parameters
481
+ form_params = opts[:form_params] || {}
482
+
483
+ # http body (model)
484
+ post_body = opts[:debug_body]
485
+
486
+ # return_type
487
+ return_type = opts[:debug_return_type] || 'ResultsResponse'
488
+
489
+ # auth_names
490
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
491
+
492
+ new_options = opts.merge(
493
+ :operation => :"BulkValidationApi.get_job_results",
494
+ :header_params => header_params,
495
+ :query_params => query_params,
496
+ :form_params => form_params,
497
+ :body => post_body,
498
+ :auth_names => auth_names,
499
+ :return_type => return_type
500
+ )
501
+
502
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
503
+ if @api_client.config.debugging
504
+ @api_client.config.logger.debug "API called: BulkValidationApi#get_job_results\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
505
+ end
506
+ return data, status_code, headers
507
+ end
508
+
509
+ # Get S3 presigned upload URL
510
+ # Get a presigned URL for uploading large files (>10MB) directly to S3.
511
+ # @param get_presigned_upload_request [GetPresignedUploadRequest]
512
+ # @param [Hash] opts the optional parameters
513
+ # @return [PresignedUploadResponse]
514
+ def get_presigned_upload(get_presigned_upload_request, opts = {})
515
+ data, _status_code, _headers = get_presigned_upload_with_http_info(get_presigned_upload_request, opts)
516
+ data
517
+ end
518
+
519
+ # Get S3 presigned upload URL
520
+ # Get a presigned URL for uploading large files (&gt;10MB) directly to S3.
521
+ # @param get_presigned_upload_request [GetPresignedUploadRequest]
522
+ # @param [Hash] opts the optional parameters
523
+ # @return [Array<(PresignedUploadResponse, Integer, Hash)>] PresignedUploadResponse data, response status code and response headers
524
+ def get_presigned_upload_with_http_info(get_presigned_upload_request, opts = {})
525
+ if @api_client.config.debugging
526
+ @api_client.config.logger.debug 'Calling API: BulkValidationApi.get_presigned_upload ...'
527
+ end
528
+ # verify the required parameter 'get_presigned_upload_request' is set
529
+ if @api_client.config.client_side_validation && get_presigned_upload_request.nil?
530
+ fail ArgumentError, "Missing the required parameter 'get_presigned_upload_request' when calling BulkValidationApi.get_presigned_upload"
531
+ end
532
+ # resource path
533
+ local_var_path = '/v1/jobs/upload/presigned'
534
+
535
+ # query parameters
536
+ query_params = opts[:query_params] || {}
537
+
538
+ # header parameters
539
+ header_params = opts[:header_params] || {}
540
+ # HTTP header 'Accept' (if needed)
541
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
542
+ # HTTP header 'Content-Type'
543
+ content_type = @api_client.select_header_content_type(['application/json'])
544
+ if !content_type.nil?
545
+ header_params['Content-Type'] = content_type
546
+ end
547
+
548
+ # form parameters
549
+ form_params = opts[:form_params] || {}
550
+
551
+ # http body (model)
552
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(get_presigned_upload_request)
553
+
554
+ # return_type
555
+ return_type = opts[:debug_return_type] || 'PresignedUploadResponse'
556
+
557
+ # auth_names
558
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
559
+
560
+ new_options = opts.merge(
561
+ :operation => :"BulkValidationApi.get_presigned_upload",
562
+ :header_params => header_params,
563
+ :query_params => query_params,
564
+ :form_params => form_params,
565
+ :body => post_body,
566
+ :auth_names => auth_names,
567
+ :return_type => return_type
568
+ )
569
+
570
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
571
+ if @api_client.config.debugging
572
+ @api_client.config.logger.debug "API called: BulkValidationApi#get_presigned_upload\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
573
+ end
574
+ return data, status_code, headers
575
+ end
576
+
577
+ # List validation jobs
578
+ # List all validation jobs for the authenticated account.
579
+ # @param [Hash] opts the optional parameters
580
+ # @option opts [Integer] :page (default to 1)
581
+ # @option opts [Integer] :per_page (default to 20)
582
+ # @option opts [String] :status
583
+ # @return [JobListResponse]
584
+ def list_jobs(opts = {})
585
+ data, _status_code, _headers = list_jobs_with_http_info(opts)
586
+ data
587
+ end
588
+
589
+ # List validation jobs
590
+ # List all validation jobs for the authenticated account.
591
+ # @param [Hash] opts the optional parameters
592
+ # @option opts [Integer] :page (default to 1)
593
+ # @option opts [Integer] :per_page (default to 20)
594
+ # @option opts [String] :status
595
+ # @return [Array<(JobListResponse, Integer, Hash)>] JobListResponse data, response status code and response headers
596
+ def list_jobs_with_http_info(opts = {})
597
+ if @api_client.config.debugging
598
+ @api_client.config.logger.debug 'Calling API: BulkValidationApi.list_jobs ...'
599
+ end
600
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] > 100
601
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling BulkValidationApi.list_jobs, must be smaller than or equal to 100.'
602
+ end
603
+
604
+ allowable_values = ["pending", "processing", "completed", "failed", "cancelled"]
605
+ if @api_client.config.client_side_validation && opts[:'status'] && !allowable_values.include?(opts[:'status'])
606
+ fail ArgumentError, "invalid value for \"status\", must be one of #{allowable_values}"
607
+ end
608
+ # resource path
609
+ local_var_path = '/v1/jobs'
610
+
611
+ # query parameters
612
+ query_params = opts[:query_params] || {}
613
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
614
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
615
+ query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
616
+
617
+ # header parameters
618
+ header_params = opts[:header_params] || {}
619
+ # HTTP header 'Accept' (if needed)
620
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
621
+
622
+ # form parameters
623
+ form_params = opts[:form_params] || {}
624
+
625
+ # http body (model)
626
+ post_body = opts[:debug_body]
627
+
628
+ # return_type
629
+ return_type = opts[:debug_return_type] || 'JobListResponse'
630
+
631
+ # auth_names
632
+ auth_names = opts[:debug_auth_names] || ['BearerAuth']
633
+
634
+ new_options = opts.merge(
635
+ :operation => :"BulkValidationApi.list_jobs",
636
+ :header_params => header_params,
637
+ :query_params => query_params,
638
+ :form_params => form_params,
639
+ :body => post_body,
640
+ :auth_names => auth_names,
641
+ :return_type => return_type
642
+ )
643
+
644
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
645
+ if @api_client.config.debugging
646
+ @api_client.config.logger.debug "API called: BulkValidationApi#list_jobs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
647
+ end
648
+ return data, status_code, headers
649
+ end
650
+ end
651
+ end