mailslurp_client 17.2.0 → 17.3.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 (176) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mailslurp_client/api/campaign_probe_controller_api.rb +138 -0
  3. data/lib/mailslurp_client/api/domain_monitor_controller_api.rb +264 -0
  4. data/lib/mailslurp_client/api/email_audit_controller_api.rb +334 -0
  5. data/lib/mailslurp_client/api/email_controller_api.rb +124 -0
  6. data/lib/mailslurp_client/api/inbox_controller_api.rb +4 -4
  7. data/lib/mailslurp_client/api/phone_controller_api.rb +1312 -81
  8. data/lib/mailslurp_client/api/sms_controller_api.rb +125 -0
  9. data/lib/mailslurp_client/api/tools_controller_api.rb +806 -0
  10. data/lib/mailslurp_client/models/abstract_webhook_payload.rb +15 -15
  11. data/lib/mailslurp_client/models/acquire_phone_pool_lease_options.rb +233 -0
  12. data/lib/mailslurp_client/models/add_phone_pool_numbers_options.rb +213 -0
  13. data/lib/mailslurp_client/models/ai_transform_mapping_projection.rb +27 -27
  14. data/lib/mailslurp_client/models/ai_transform_projection.rb +28 -28
  15. data/lib/mailslurp_client/models/alias_projection.rb +45 -45
  16. data/lib/mailslurp_client/models/alias_thread_projection.rb +42 -42
  17. data/lib/mailslurp_client/models/analyze_dmarc_report_options.rb +248 -0
  18. data/lib/mailslurp_client/models/analyze_dmarc_report_results.rb +386 -0
  19. data/lib/mailslurp_client/models/analyze_email_headers_options.rb +240 -0
  20. data/lib/mailslurp_client/models/analyze_email_headers_results.rb +275 -0
  21. data/lib/mailslurp_client/models/attachment_projection.rb +50 -50
  22. data/lib/mailslurp_client/models/available_phone_number_dto.rb +325 -0
  23. data/lib/mailslurp_client/models/available_phone_numbers_result.rb +236 -0
  24. data/lib/mailslurp_client/models/bounce_projection.rb +28 -28
  25. data/lib/mailslurp_client/models/bounce_recipient_projection.rb +10 -10
  26. data/lib/mailslurp_client/models/campaign_probe_run_comparison_dto.rb +397 -0
  27. data/lib/mailslurp_client/models/check_campaign_probe_options.rb +371 -0
  28. data/lib/mailslurp_client/models/check_campaign_probe_results.rb +482 -0
  29. data/lib/mailslurp_client/models/check_dns_propagation_options.rb +297 -0
  30. data/lib/mailslurp_client/models/check_dns_propagation_results.rb +361 -0
  31. data/lib/mailslurp_client/models/check_domain_monitor_options.rb +243 -0
  32. data/lib/mailslurp_client/models/check_domain_monitor_results.rb +398 -0
  33. data/lib/mailslurp_client/models/check_email_audit_options.rb +405 -0
  34. data/lib/mailslurp_client/models/check_email_auth_stack_options.rb +248 -0
  35. data/lib/mailslurp_client/models/check_email_auth_stack_results.rb +462 -0
  36. data/lib/mailslurp_client/models/check_email_blacklist_options.rb +241 -0
  37. data/lib/mailslurp_client/models/check_email_blacklist_results.rb +366 -0
  38. data/lib/mailslurp_client/models/connector_event_projection.rb +42 -42
  39. data/lib/mailslurp_client/models/connector_projection.rb +42 -42
  40. data/lib/mailslurp_client/models/contact_projection.rb +15 -15
  41. data/lib/mailslurp_client/models/create_email_audit_options.rb +394 -0
  42. data/lib/mailslurp_client/models/create_phone_number_options.rb +25 -4
  43. data/lib/mailslurp_client/models/create_phone_pool_options.rb +220 -0
  44. data/lib/mailslurp_client/models/create_phone_provisioning_job_item_options.rb +256 -0
  45. data/lib/mailslurp_client/models/create_phone_provisioning_job_options.rb +284 -0
  46. data/lib/mailslurp_client/models/dmarc_report_metadata.rb +308 -0
  47. data/lib/mailslurp_client/models/dmarc_report_source_summary.rb +274 -0
  48. data/lib/mailslurp_client/models/dns_propagation_resolver_result.rb +252 -0
  49. data/lib/mailslurp_client/models/domain_monitor_run_comparison_dto.rb +369 -0
  50. data/lib/mailslurp_client/models/domain_monitor_summary_dto.rb +248 -0
  51. data/lib/mailslurp_client/models/email_audit_analysis_result.rb +620 -0
  52. data/lib/mailslurp_client/models/email_audit_comparison_dto.rb +411 -0
  53. data/lib/mailslurp_client/models/email_audit_dto.rb +308 -0
  54. data/lib/mailslurp_client/models/email_audit_spelling_issue.rb +276 -0
  55. data/lib/mailslurp_client/models/email_audit_url_issue.rb +236 -0
  56. data/lib/mailslurp_client/models/email_blacklist_ip_result.rb +242 -0
  57. data/lib/mailslurp_client/models/email_blacklist_listing_result.rb +258 -0
  58. data/lib/mailslurp_client/models/email_header_analysis_summary.rb +242 -0
  59. data/lib/mailslurp_client/models/email_header_received_hop.rb +242 -0
  60. data/lib/mailslurp_client/models/email_projection.rb +88 -88
  61. data/lib/mailslurp_client/models/email_thread_projection.rb +54 -54
  62. data/lib/mailslurp_client/models/entity_automation_item_projection.rb +33 -33
  63. data/lib/mailslurp_client/models/entity_event_item_projection.rb +42 -42
  64. data/lib/mailslurp_client/models/entity_favourite_item_projection.rb +29 -29
  65. data/lib/mailslurp_client/models/expired_inbox_record_projection.rb +27 -27
  66. data/lib/mailslurp_client/models/generate_spf_record_options.rb +357 -0
  67. data/lib/mailslurp_client/models/generate_spf_record_results.rb +318 -0
  68. data/lib/mailslurp_client/models/get_or_create_phone_pool_options.rb +220 -0
  69. data/lib/mailslurp_client/models/group_projection.rb +15 -15
  70. data/lib/mailslurp_client/models/guest_portal_user_projection.rb +47 -47
  71. data/lib/mailslurp_client/models/imap_email_projection.rb +18 -18
  72. data/lib/mailslurp_client/models/inbox_forwarder_event_projection.rb +21 -21
  73. data/lib/mailslurp_client/models/inbox_replier_event_projection.rb +33 -33
  74. data/lib/mailslurp_client/models/list_unsubscribe_recipient_projection.rb +19 -19
  75. data/lib/mailslurp_client/models/lookup_dkim_domain_options.rb +275 -0
  76. data/lib/mailslurp_client/models/lookup_dkim_domain_results.rb +304 -0
  77. data/lib/mailslurp_client/models/lookup_ptr_options.rb +241 -0
  78. data/lib/mailslurp_client/models/lookup_ptr_results.rb +305 -0
  79. data/lib/mailslurp_client/models/lookup_spf_domain_options.rb +240 -0
  80. data/lib/mailslurp_client/models/lookup_spf_domain_results.rb +305 -0
  81. data/lib/mailslurp_client/models/missed_email_projection.rb +28 -28
  82. data/lib/mailslurp_client/models/missed_sms_projection.rb +32 -32
  83. data/lib/mailslurp_client/models/opt_in_identity_projection.rb +18 -18
  84. data/lib/mailslurp_client/models/page_ai_transform_mapping_projection.rb +19 -19
  85. data/lib/mailslurp_client/models/page_ai_transform_projection.rb +19 -19
  86. data/lib/mailslurp_client/models/page_ai_transform_result_projection.rb +19 -19
  87. data/lib/mailslurp_client/models/page_alias.rb +19 -19
  88. data/lib/mailslurp_client/models/page_alias_thread_projection.rb +19 -19
  89. data/lib/mailslurp_client/models/page_attachment_entity.rb +19 -19
  90. data/lib/mailslurp_client/models/page_bounced_email.rb +19 -19
  91. data/lib/mailslurp_client/models/page_bounced_recipients.rb +19 -19
  92. data/lib/mailslurp_client/models/page_complaint.rb +19 -19
  93. data/lib/mailslurp_client/models/page_connector.rb +19 -19
  94. data/lib/mailslurp_client/models/page_connector_events.rb +19 -19
  95. data/lib/mailslurp_client/models/page_contact_projection.rb +19 -19
  96. data/lib/mailslurp_client/models/page_delivery_status.rb +19 -19
  97. data/lib/mailslurp_client/models/page_device_preview_run_projection.rb +19 -19
  98. data/lib/mailslurp_client/models/page_email_preview.rb +19 -19
  99. data/lib/mailslurp_client/models/page_email_projection.rb +19 -19
  100. data/lib/mailslurp_client/models/page_email_thread_projection.rb +19 -19
  101. data/lib/mailslurp_client/models/page_email_validation_request.rb +19 -19
  102. data/lib/mailslurp_client/models/page_entity_automation_items.rb +19 -19
  103. data/lib/mailslurp_client/models/page_entity_event_items.rb +19 -19
  104. data/lib/mailslurp_client/models/page_entity_favourite_items.rb +19 -19
  105. data/lib/mailslurp_client/models/page_expired_inbox_record_projection.rb +19 -19
  106. data/lib/mailslurp_client/models/page_group_projection.rb +19 -19
  107. data/lib/mailslurp_client/models/page_guest_portal_users.rb +19 -19
  108. data/lib/mailslurp_client/models/page_inbox_forwarder_dto.rb +19 -19
  109. data/lib/mailslurp_client/models/page_inbox_forwarder_events.rb +19 -19
  110. data/lib/mailslurp_client/models/page_inbox_projection.rb +19 -19
  111. data/lib/mailslurp_client/models/page_inbox_replier_dto.rb +19 -19
  112. data/lib/mailslurp_client/models/page_inbox_replier_events.rb +19 -19
  113. data/lib/mailslurp_client/models/page_inbox_tags.rb +19 -19
  114. data/lib/mailslurp_client/models/page_list_unsubscribe_recipients.rb +19 -19
  115. data/lib/mailslurp_client/models/page_missed_email_projection.rb +19 -19
  116. data/lib/mailslurp_client/models/page_missed_sms_projection.rb +19 -19
  117. data/lib/mailslurp_client/models/page_opt_in_identity_projection.rb +19 -19
  118. data/lib/mailslurp_client/models/page_organization_inbox_projection.rb +19 -19
  119. data/lib/mailslurp_client/models/page_phone_message_thread_item_projection.rb +19 -19
  120. data/lib/mailslurp_client/models/page_phone_message_thread_projection.rb +19 -19
  121. data/lib/mailslurp_client/models/page_phone_number_projection.rb +19 -19
  122. data/lib/mailslurp_client/models/page_phone_number_release_projection.rb +19 -19
  123. data/lib/mailslurp_client/models/page_plus_address_projection.rb +19 -19
  124. data/lib/mailslurp_client/models/page_reputation_items.rb +19 -19
  125. data/lib/mailslurp_client/models/page_ruleset_dto.rb +19 -19
  126. data/lib/mailslurp_client/models/page_scheduled_jobs.rb +19 -19
  127. data/lib/mailslurp_client/models/page_sent_email_projection.rb +19 -19
  128. data/lib/mailslurp_client/models/page_sent_email_with_queue_projection.rb +19 -19
  129. data/lib/mailslurp_client/models/page_sent_sms_projection.rb +19 -19
  130. data/lib/mailslurp_client/models/page_sms_projection.rb +19 -19
  131. data/lib/mailslurp_client/models/page_template_projection.rb +19 -19
  132. data/lib/mailslurp_client/models/page_tracking_pixel_projection.rb +19 -19
  133. data/lib/mailslurp_client/models/page_unknown_missed_email_projection.rb +19 -19
  134. data/lib/mailslurp_client/models/page_webhook_endpoint_projection.rb +19 -19
  135. data/lib/mailslurp_client/models/page_webhook_projection.rb +19 -19
  136. data/lib/mailslurp_client/models/page_webhook_result.rb +19 -19
  137. data/lib/mailslurp_client/models/pageable_object.rb +22 -22
  138. data/lib/mailslurp_client/models/phone_message_thread_item_projection.rb +18 -18
  139. data/lib/mailslurp_client/models/phone_number_dto.rb +49 -4
  140. data/lib/mailslurp_client/models/phone_number_line_type_intelligence_dto.rb +242 -0
  141. data/lib/mailslurp_client/models/phone_number_line_type_lookup_dto.rb +286 -0
  142. data/lib/mailslurp_client/models/phone_number_projection.rb +80 -35
  143. data/lib/mailslurp_client/models/phone_number_release_projection.rb +39 -39
  144. data/lib/mailslurp_client/models/phone_pool_detail_dto.rb +334 -0
  145. data/lib/mailslurp_client/models/phone_pool_dto.rb +318 -0
  146. data/lib/mailslurp_client/models/phone_pool_lease_dto.rb +351 -0
  147. data/lib/mailslurp_client/models/phone_pool_member_dto.rb +333 -0
  148. data/lib/mailslurp_client/models/phone_provider_capabilities_result.rb +284 -0
  149. data/lib/mailslurp_client/models/phone_provisioning_job_dto.rb +434 -0
  150. data/lib/mailslurp_client/models/phone_provisioning_job_item_dto.rb +336 -0
  151. data/lib/mailslurp_client/models/phone_sms_prepaid_credit_dto.rb +340 -0
  152. data/lib/mailslurp_client/models/phone_sms_prepaid_credits_dto.rb +241 -0
  153. data/lib/mailslurp_client/models/plus_address_projection.rb +27 -27
  154. data/lib/mailslurp_client/models/recipient_projection.rb +13 -13
  155. data/lib/mailslurp_client/models/reputation_item_projection.rb +41 -41
  156. data/lib/mailslurp_client/models/search_available_phone_numbers_options.rb +377 -0
  157. data/lib/mailslurp_client/models/sender_projection.rb +13 -13
  158. data/lib/mailslurp_client/models/sent_email_projection.rb +63 -63
  159. data/lib/mailslurp_client/models/sent_sms_projection.rb +18 -18
  160. data/lib/mailslurp_client/models/sms_projection.rb +18 -18
  161. data/lib/mailslurp_client/models/smtp_auth_diagnostic_result.rb +235 -0
  162. data/lib/mailslurp_client/models/smtp_diagnostic_step.rb +236 -0
  163. data/lib/mailslurp_client/models/smtp_tls_diagnostic_result.rb +245 -0
  164. data/lib/mailslurp_client/models/sort_object.rb +10 -10
  165. data/lib/mailslurp_client/models/spf_mechanism_result.rb +229 -0
  166. data/lib/mailslurp_client/models/template_projection.rb +41 -41
  167. data/lib/mailslurp_client/models/test_smtp_server_options.rb +337 -0
  168. data/lib/mailslurp_client/models/test_smtp_server_results.rb +297 -0
  169. data/lib/mailslurp_client/models/tracking_pixel_projection.rb +27 -27
  170. data/lib/mailslurp_client/models/unknown_missed_email_projection.rb +27 -27
  171. data/lib/mailslurp_client/models/update_phone_pool_options.rb +215 -0
  172. data/lib/mailslurp_client/models/validation_dto.rb +1 -5
  173. data/lib/mailslurp_client/models/webhook_projection.rb +45 -45
  174. data/lib/mailslurp_client/version.rb +1 -1
  175. data/lib/mailslurp_client.rb +67 -0
  176. metadata +69 -2
@@ -0,0 +1,462 @@
1
+ =begin
2
+ #MailSlurp API
3
+
4
+ #MailSlurp is an API for sending and receiving emails and SMS from dynamically allocated email addresses and phone numbers. It's designed for developers and QA teams to test applications, process inbound emails, send templated notifications, attachments, and more. ## Resources - [Homepage](https://www.mailslurp.com) - Get an [API KEY](https://app.mailslurp.com/sign-up/) - Generated [SDK Clients](https://docs.mailslurp.com/) - [Examples](https://github.com/mailslurp/examples) repository
5
+
6
+ The version of the OpenAPI document: 6.5.2
7
+ Contact: contact@mailslurp.dev
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module MailSlurpClient
16
+ # Combined authentication and deliverability DNS results for a domain
17
+ class CheckEmailAuthStackResults
18
+ attr_accessor :domain
19
+
20
+ attr_accessor :status
21
+
22
+ attr_accessor :health_score
23
+
24
+ attr_accessor :total_checks
25
+
26
+ attr_accessor :passing_checks
27
+
28
+ attr_accessor :failing_checks
29
+
30
+ attr_accessor :spf
31
+
32
+ attr_accessor :dmarc
33
+
34
+ attr_accessor :dkim
35
+
36
+ attr_accessor :bimi
37
+
38
+ attr_accessor :mx
39
+
40
+ attr_accessor :mta_sts
41
+
42
+ attr_accessor :tls_reporting
43
+
44
+ attr_accessor :insights
45
+
46
+ attr_accessor :warnings
47
+
48
+ attr_accessor :errors
49
+
50
+ class EnumAttributeValidator
51
+ attr_reader :datatype
52
+ attr_reader :allowable_values
53
+
54
+ def initialize(datatype, allowable_values)
55
+ @allowable_values = allowable_values.map do |value|
56
+ case datatype.to_s
57
+ when /Integer/i
58
+ value.to_i
59
+ when /Float/i
60
+ value.to_f
61
+ else
62
+ value
63
+ end
64
+ end
65
+ end
66
+
67
+ def valid?(value)
68
+ !value || allowable_values.include?(value)
69
+ end
70
+ end
71
+
72
+ # Attribute mapping from ruby-style variable name to JSON key.
73
+ def self.attribute_map
74
+ {
75
+ :'domain' => :'domain',
76
+ :'status' => :'status',
77
+ :'health_score' => :'healthScore',
78
+ :'total_checks' => :'totalChecks',
79
+ :'passing_checks' => :'passingChecks',
80
+ :'failing_checks' => :'failingChecks',
81
+ :'spf' => :'spf',
82
+ :'dmarc' => :'dmarc',
83
+ :'dkim' => :'dkim',
84
+ :'bimi' => :'bimi',
85
+ :'mx' => :'mx',
86
+ :'mta_sts' => :'mtaSts',
87
+ :'tls_reporting' => :'tlsReporting',
88
+ :'insights' => :'insights',
89
+ :'warnings' => :'warnings',
90
+ :'errors' => :'errors'
91
+ }
92
+ end
93
+
94
+ # Attribute type mapping.
95
+ def self.openapi_types
96
+ {
97
+ :'domain' => :'String',
98
+ :'status' => :'String',
99
+ :'health_score' => :'Integer',
100
+ :'total_checks' => :'Integer',
101
+ :'passing_checks' => :'Integer',
102
+ :'failing_checks' => :'Integer',
103
+ :'spf' => :'LookupSpfDomainResults',
104
+ :'dmarc' => :'LookupDmarcDomainResults',
105
+ :'dkim' => :'LookupDkimDomainResults',
106
+ :'bimi' => :'LookupBimiDomainResults',
107
+ :'mx' => :'LookupMxRecordsResults',
108
+ :'mta_sts' => :'LookupMtaStsDomainResults',
109
+ :'tls_reporting' => :'LookupTlsReportingDomainResults',
110
+ :'insights' => :'Array<String>',
111
+ :'warnings' => :'Array<String>',
112
+ :'errors' => :'Array<String>'
113
+ }
114
+ end
115
+
116
+ # List of attributes with nullable: true
117
+ def self.openapi_nullable
118
+ Set.new([
119
+ ])
120
+ end
121
+
122
+ # Initializes the object
123
+ # @param [Hash] attributes Model attributes in the form of hash
124
+ def initialize(attributes = {})
125
+ if (!attributes.is_a?(Hash))
126
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MailSlurpClient::CheckEmailAuthStackResults` initialize method"
127
+ end
128
+
129
+ # check to see if the attribute exists and convert string to symbol for hash key
130
+ attributes = attributes.each_with_object({}) { |(k, v), h|
131
+ if (!self.class.attribute_map.key?(k.to_sym))
132
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MailSlurpClient::CheckEmailAuthStackResults`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
133
+ end
134
+ h[k.to_sym] = v
135
+ }
136
+
137
+ if attributes.key?(:'domain')
138
+ self.domain = attributes[:'domain']
139
+ end
140
+
141
+ if attributes.key?(:'status')
142
+ self.status = attributes[:'status']
143
+ end
144
+
145
+ if attributes.key?(:'health_score')
146
+ self.health_score = attributes[:'health_score']
147
+ end
148
+
149
+ if attributes.key?(:'total_checks')
150
+ self.total_checks = attributes[:'total_checks']
151
+ end
152
+
153
+ if attributes.key?(:'passing_checks')
154
+ self.passing_checks = attributes[:'passing_checks']
155
+ end
156
+
157
+ if attributes.key?(:'failing_checks')
158
+ self.failing_checks = attributes[:'failing_checks']
159
+ end
160
+
161
+ if attributes.key?(:'spf')
162
+ self.spf = attributes[:'spf']
163
+ end
164
+
165
+ if attributes.key?(:'dmarc')
166
+ self.dmarc = attributes[:'dmarc']
167
+ end
168
+
169
+ if attributes.key?(:'dkim')
170
+ self.dkim = attributes[:'dkim']
171
+ end
172
+
173
+ if attributes.key?(:'bimi')
174
+ self.bimi = attributes[:'bimi']
175
+ end
176
+
177
+ if attributes.key?(:'mx')
178
+ self.mx = attributes[:'mx']
179
+ end
180
+
181
+ if attributes.key?(:'mta_sts')
182
+ self.mta_sts = attributes[:'mta_sts']
183
+ end
184
+
185
+ if attributes.key?(:'tls_reporting')
186
+ self.tls_reporting = attributes[:'tls_reporting']
187
+ end
188
+
189
+ if attributes.key?(:'insights')
190
+ if (value = attributes[:'insights']).is_a?(Array)
191
+ self.insights = value
192
+ end
193
+ end
194
+
195
+ if attributes.key?(:'warnings')
196
+ if (value = attributes[:'warnings']).is_a?(Array)
197
+ self.warnings = value
198
+ end
199
+ end
200
+
201
+ if attributes.key?(:'errors')
202
+ if (value = attributes[:'errors']).is_a?(Array)
203
+ self.errors = value
204
+ end
205
+ end
206
+ end
207
+
208
+ # Show invalid properties with the reasons. Usually used together with valid?
209
+ # @return Array for valid properties with the reasons
210
+ def list_invalid_properties
211
+ invalid_properties = Array.new
212
+ if @domain.nil?
213
+ invalid_properties.push('invalid value for "domain", domain cannot be nil.')
214
+ end
215
+
216
+ if @status.nil?
217
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
218
+ end
219
+
220
+ if @health_score.nil?
221
+ invalid_properties.push('invalid value for "health_score", health_score cannot be nil.')
222
+ end
223
+
224
+ if @total_checks.nil?
225
+ invalid_properties.push('invalid value for "total_checks", total_checks cannot be nil.')
226
+ end
227
+
228
+ if @passing_checks.nil?
229
+ invalid_properties.push('invalid value for "passing_checks", passing_checks cannot be nil.')
230
+ end
231
+
232
+ if @failing_checks.nil?
233
+ invalid_properties.push('invalid value for "failing_checks", failing_checks cannot be nil.')
234
+ end
235
+
236
+ if @spf.nil?
237
+ invalid_properties.push('invalid value for "spf", spf cannot be nil.')
238
+ end
239
+
240
+ if @dmarc.nil?
241
+ invalid_properties.push('invalid value for "dmarc", dmarc cannot be nil.')
242
+ end
243
+
244
+ if @dkim.nil?
245
+ invalid_properties.push('invalid value for "dkim", dkim cannot be nil.')
246
+ end
247
+
248
+ if @bimi.nil?
249
+ invalid_properties.push('invalid value for "bimi", bimi cannot be nil.')
250
+ end
251
+
252
+ if @mx.nil?
253
+ invalid_properties.push('invalid value for "mx", mx cannot be nil.')
254
+ end
255
+
256
+ if @mta_sts.nil?
257
+ invalid_properties.push('invalid value for "mta_sts", mta_sts cannot be nil.')
258
+ end
259
+
260
+ if @tls_reporting.nil?
261
+ invalid_properties.push('invalid value for "tls_reporting", tls_reporting cannot be nil.')
262
+ end
263
+
264
+ if @insights.nil?
265
+ invalid_properties.push('invalid value for "insights", insights cannot be nil.')
266
+ end
267
+
268
+ if @warnings.nil?
269
+ invalid_properties.push('invalid value for "warnings", warnings cannot be nil.')
270
+ end
271
+
272
+ if @errors.nil?
273
+ invalid_properties.push('invalid value for "errors", errors cannot be nil.')
274
+ end
275
+
276
+ invalid_properties
277
+ end
278
+
279
+ # Check to see if the all the properties in the model are valid
280
+ # @return true if the model is valid
281
+ def valid?
282
+ return false if @domain.nil?
283
+ return false if @status.nil?
284
+ status_validator = EnumAttributeValidator.new('String', ["HEALTHY", "DEGRADED", "CRITICAL", "FAILED"])
285
+ return false unless status_validator.valid?(@status)
286
+ return false if @health_score.nil?
287
+ return false if @total_checks.nil?
288
+ return false if @passing_checks.nil?
289
+ return false if @failing_checks.nil?
290
+ return false if @spf.nil?
291
+ return false if @dmarc.nil?
292
+ return false if @dkim.nil?
293
+ return false if @bimi.nil?
294
+ return false if @mx.nil?
295
+ return false if @mta_sts.nil?
296
+ return false if @tls_reporting.nil?
297
+ return false if @insights.nil?
298
+ return false if @warnings.nil?
299
+ return false if @errors.nil?
300
+ true
301
+ end
302
+
303
+ # Custom attribute writer method checking allowed values (enum).
304
+ # @param [Object] status Object to be assigned
305
+ def status=(status)
306
+ validator = EnumAttributeValidator.new('String', ["HEALTHY", "DEGRADED", "CRITICAL", "FAILED"])
307
+ unless validator.valid?(status)
308
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
309
+ end
310
+ @status = status
311
+ end
312
+
313
+ # Checks equality by comparing each attribute.
314
+ # @param [Object] Object to be compared
315
+ def ==(o)
316
+ return true if self.equal?(o)
317
+ self.class == o.class &&
318
+ domain == o.domain &&
319
+ status == o.status &&
320
+ health_score == o.health_score &&
321
+ total_checks == o.total_checks &&
322
+ passing_checks == o.passing_checks &&
323
+ failing_checks == o.failing_checks &&
324
+ spf == o.spf &&
325
+ dmarc == o.dmarc &&
326
+ dkim == o.dkim &&
327
+ bimi == o.bimi &&
328
+ mx == o.mx &&
329
+ mta_sts == o.mta_sts &&
330
+ tls_reporting == o.tls_reporting &&
331
+ insights == o.insights &&
332
+ warnings == o.warnings &&
333
+ errors == o.errors
334
+ end
335
+
336
+ # @see the `==` method
337
+ # @param [Object] Object to be compared
338
+ def eql?(o)
339
+ self == o
340
+ end
341
+
342
+ # Calculates hash code according to all attributes.
343
+ # @return [Integer] Hash code
344
+ def hash
345
+ [domain, status, health_score, total_checks, passing_checks, failing_checks, spf, dmarc, dkim, bimi, mx, mta_sts, tls_reporting, insights, warnings, errors].hash
346
+ end
347
+
348
+ # Builds the object from hash
349
+ # @param [Hash] attributes Model attributes in the form of hash
350
+ # @return [Object] Returns the model itself
351
+ def self.build_from_hash(attributes)
352
+ new.build_from_hash(attributes)
353
+ end
354
+
355
+ # Builds the object from hash
356
+ # @param [Hash] attributes Model attributes in the form of hash
357
+ # @return [Object] Returns the model itself
358
+ def build_from_hash(attributes)
359
+ return nil unless attributes.is_a?(Hash)
360
+ self.class.openapi_types.each_pair do |key, type|
361
+ if type =~ /\AArray<(.*)>/i
362
+ # check to ensure the input is an array given that the attribute
363
+ # is documented as an array but the input is not
364
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
365
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
366
+ end
367
+ elsif !attributes[self.class.attribute_map[key]].nil?
368
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
369
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
370
+ end
371
+
372
+ self
373
+ end
374
+
375
+ # Deserializes the data based on type
376
+ # @param string type Data type
377
+ # @param string value Value to be deserialized
378
+ # @return [Object] Deserialized data
379
+ def _deserialize(type, value)
380
+ case type.to_sym
381
+ when :DateTime
382
+ DateTime.parse(value)
383
+ when :Date
384
+ Date.parse(value)
385
+ when :String
386
+ value.to_s
387
+ when :Integer
388
+ value.to_i
389
+ when :Float
390
+ value.to_f
391
+ when :Boolean
392
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
393
+ true
394
+ else
395
+ false
396
+ end
397
+ when :Object
398
+ # generic object (usually a Hash), return directly
399
+ value
400
+ when /\AArray<(?<inner_type>.+)>\z/
401
+ inner_type = Regexp.last_match[:inner_type]
402
+ value.map { |v| _deserialize(inner_type, v) }
403
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
404
+ k_type = Regexp.last_match[:k_type]
405
+ v_type = Regexp.last_match[:v_type]
406
+ {}.tap do |hash|
407
+ value.each do |k, v|
408
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
409
+ end
410
+ end
411
+ else # model
412
+ MailSlurpClient.const_get(type).build_from_hash(value)
413
+ end
414
+ end
415
+
416
+ # Returns the string representation of the object
417
+ # @return [String] String presentation of the object
418
+ def to_s
419
+ to_hash.to_s
420
+ end
421
+
422
+ # to_body is an alias to to_hash (backward compatibility)
423
+ # @return [Hash] Returns the object in the form of hash
424
+ def to_body
425
+ to_hash
426
+ end
427
+
428
+ # Returns the object in the form of hash
429
+ # @return [Hash] Returns the object in the form of hash
430
+ def to_hash
431
+ hash = {}
432
+ self.class.attribute_map.each_pair do |attr, param|
433
+ value = self.send(attr)
434
+ if value.nil?
435
+ is_nullable = self.class.openapi_nullable.include?(attr)
436
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
437
+ end
438
+
439
+ hash[param] = _to_hash(value)
440
+ end
441
+ hash
442
+ end
443
+
444
+ # Outputs non-array value in the form of hash
445
+ # For object, use to_hash. Otherwise, just return the value
446
+ # @param [Object] value Any valid value
447
+ # @return [Hash] Returns the value in the form of hash
448
+ def _to_hash(value)
449
+ if value.is_a?(Array)
450
+ value.compact.map { |v| _to_hash(v) }
451
+ elsif value.is_a?(Hash)
452
+ {}.tap do |hash|
453
+ value.each { |k, v| hash[k] = _to_hash(v) }
454
+ end
455
+ elsif value.respond_to? :to_hash
456
+ value.to_hash
457
+ else
458
+ value
459
+ end
460
+ end
461
+ end
462
+ end
@@ -0,0 +1,241 @@
1
+ =begin
2
+ #MailSlurp API
3
+
4
+ #MailSlurp is an API for sending and receiving emails and SMS from dynamically allocated email addresses and phone numbers. It's designed for developers and QA teams to test applications, process inbound emails, send templated notifications, attachments, and more. ## Resources - [Homepage](https://www.mailslurp.com) - Get an [API KEY](https://app.mailslurp.com/sign-up/) - Generated [SDK Clients](https://docs.mailslurp.com/) - [Examples](https://github.com/mailslurp/examples) repository
5
+
6
+ The version of the OpenAPI document: 6.5.2
7
+ Contact: contact@mailslurp.dev
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module MailSlurpClient
16
+ # Check a domain, IP address, or specific MX host against configured DNS blacklists
17
+ class CheckEmailBlacklistOptions
18
+ # Domain to expand into A and MX host IPv4 addresses
19
+ attr_accessor :domain
20
+
21
+ # Specific IPv4 address to check directly
22
+ attr_accessor :ip_address
23
+
24
+ # Specific MX host to resolve and check directly
25
+ attr_accessor :mx_host
26
+
27
+ attr_accessor :captcha_token
28
+
29
+ # Attribute mapping from ruby-style variable name to JSON key.
30
+ def self.attribute_map
31
+ {
32
+ :'domain' => :'domain',
33
+ :'ip_address' => :'ipAddress',
34
+ :'mx_host' => :'mxHost',
35
+ :'captcha_token' => :'captchaToken'
36
+ }
37
+ end
38
+
39
+ # Attribute type mapping.
40
+ def self.openapi_types
41
+ {
42
+ :'domain' => :'String',
43
+ :'ip_address' => :'String',
44
+ :'mx_host' => :'String',
45
+ :'captcha_token' => :'String'
46
+ }
47
+ end
48
+
49
+ # List of attributes with nullable: true
50
+ def self.openapi_nullable
51
+ Set.new([
52
+ :'domain',
53
+ :'ip_address',
54
+ :'mx_host',
55
+ :'captcha_token'
56
+ ])
57
+ end
58
+
59
+ # Initializes the object
60
+ # @param [Hash] attributes Model attributes in the form of hash
61
+ def initialize(attributes = {})
62
+ if (!attributes.is_a?(Hash))
63
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MailSlurpClient::CheckEmailBlacklistOptions` initialize method"
64
+ end
65
+
66
+ # check to see if the attribute exists and convert string to symbol for hash key
67
+ attributes = attributes.each_with_object({}) { |(k, v), h|
68
+ if (!self.class.attribute_map.key?(k.to_sym))
69
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MailSlurpClient::CheckEmailBlacklistOptions`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
70
+ end
71
+ h[k.to_sym] = v
72
+ }
73
+
74
+ if attributes.key?(:'domain')
75
+ self.domain = attributes[:'domain']
76
+ end
77
+
78
+ if attributes.key?(:'ip_address')
79
+ self.ip_address = attributes[:'ip_address']
80
+ end
81
+
82
+ if attributes.key?(:'mx_host')
83
+ self.mx_host = attributes[:'mx_host']
84
+ end
85
+
86
+ if attributes.key?(:'captcha_token')
87
+ self.captcha_token = attributes[:'captcha_token']
88
+ end
89
+ end
90
+
91
+ # Show invalid properties with the reasons. Usually used together with valid?
92
+ # @return Array for valid properties with the reasons
93
+ def list_invalid_properties
94
+ invalid_properties = Array.new
95
+ invalid_properties
96
+ end
97
+
98
+ # Check to see if the all the properties in the model are valid
99
+ # @return true if the model is valid
100
+ def valid?
101
+ true
102
+ end
103
+
104
+ # Checks equality by comparing each attribute.
105
+ # @param [Object] Object to be compared
106
+ def ==(o)
107
+ return true if self.equal?(o)
108
+ self.class == o.class &&
109
+ domain == o.domain &&
110
+ ip_address == o.ip_address &&
111
+ mx_host == o.mx_host &&
112
+ captcha_token == o.captcha_token
113
+ end
114
+
115
+ # @see the `==` method
116
+ # @param [Object] Object to be compared
117
+ def eql?(o)
118
+ self == o
119
+ end
120
+
121
+ # Calculates hash code according to all attributes.
122
+ # @return [Integer] Hash code
123
+ def hash
124
+ [domain, ip_address, mx_host, captcha_token].hash
125
+ end
126
+
127
+ # Builds the object from hash
128
+ # @param [Hash] attributes Model attributes in the form of hash
129
+ # @return [Object] Returns the model itself
130
+ def self.build_from_hash(attributes)
131
+ new.build_from_hash(attributes)
132
+ end
133
+
134
+ # Builds the object from hash
135
+ # @param [Hash] attributes Model attributes in the form of hash
136
+ # @return [Object] Returns the model itself
137
+ def build_from_hash(attributes)
138
+ return nil unless attributes.is_a?(Hash)
139
+ self.class.openapi_types.each_pair do |key, type|
140
+ if type =~ /\AArray<(.*)>/i
141
+ # check to ensure the input is an array given that the attribute
142
+ # is documented as an array but the input is not
143
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
144
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
145
+ end
146
+ elsif !attributes[self.class.attribute_map[key]].nil?
147
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
148
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
149
+ end
150
+
151
+ self
152
+ end
153
+
154
+ # Deserializes the data based on type
155
+ # @param string type Data type
156
+ # @param string value Value to be deserialized
157
+ # @return [Object] Deserialized data
158
+ def _deserialize(type, value)
159
+ case type.to_sym
160
+ when :DateTime
161
+ DateTime.parse(value)
162
+ when :Date
163
+ Date.parse(value)
164
+ when :String
165
+ value.to_s
166
+ when :Integer
167
+ value.to_i
168
+ when :Float
169
+ value.to_f
170
+ when :Boolean
171
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
172
+ true
173
+ else
174
+ false
175
+ end
176
+ when :Object
177
+ # generic object (usually a Hash), return directly
178
+ value
179
+ when /\AArray<(?<inner_type>.+)>\z/
180
+ inner_type = Regexp.last_match[:inner_type]
181
+ value.map { |v| _deserialize(inner_type, v) }
182
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
183
+ k_type = Regexp.last_match[:k_type]
184
+ v_type = Regexp.last_match[:v_type]
185
+ {}.tap do |hash|
186
+ value.each do |k, v|
187
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
188
+ end
189
+ end
190
+ else # model
191
+ MailSlurpClient.const_get(type).build_from_hash(value)
192
+ end
193
+ end
194
+
195
+ # Returns the string representation of the object
196
+ # @return [String] String presentation of the object
197
+ def to_s
198
+ to_hash.to_s
199
+ end
200
+
201
+ # to_body is an alias to to_hash (backward compatibility)
202
+ # @return [Hash] Returns the object in the form of hash
203
+ def to_body
204
+ to_hash
205
+ end
206
+
207
+ # Returns the object in the form of hash
208
+ # @return [Hash] Returns the object in the form of hash
209
+ def to_hash
210
+ hash = {}
211
+ self.class.attribute_map.each_pair do |attr, param|
212
+ value = self.send(attr)
213
+ if value.nil?
214
+ is_nullable = self.class.openapi_nullable.include?(attr)
215
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
216
+ end
217
+
218
+ hash[param] = _to_hash(value)
219
+ end
220
+ hash
221
+ end
222
+
223
+ # Outputs non-array value in the form of hash
224
+ # For object, use to_hash. Otherwise, just return the value
225
+ # @param [Object] value Any valid value
226
+ # @return [Hash] Returns the value in the form of hash
227
+ def _to_hash(value)
228
+ if value.is_a?(Array)
229
+ value.compact.map { |v| _to_hash(v) }
230
+ elsif value.is_a?(Hash)
231
+ {}.tap do |hash|
232
+ value.each { |k, v| hash[k] = _to_hash(v) }
233
+ end
234
+ elsif value.respond_to? :to_hash
235
+ value.to_hash
236
+ else
237
+ value
238
+ end
239
+ end
240
+ end
241
+ end