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,620 @@
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 email audit analysis across validation, client support, links, and images
17
+ class EmailAuditAnalysisResult
18
+ # Health status for a one-shot email audit
19
+ attr_accessor :status
20
+
21
+ attr_accessor :health_score
22
+
23
+ attr_accessor :total_checks
24
+
25
+ attr_accessor :passing_checks
26
+
27
+ attr_accessor :failing_checks
28
+
29
+ attr_accessor :detected_links
30
+
31
+ attr_accessor :checked_links
32
+
33
+ attr_accessor :detected_images
34
+
35
+ attr_accessor :checked_images
36
+
37
+ attr_accessor :link_issue_count
38
+
39
+ attr_accessor :image_issue_count
40
+
41
+ attr_accessor :spelling_issue_count
42
+
43
+ attr_accessor :broken_links
44
+
45
+ attr_accessor :broken_images
46
+
47
+ attr_accessor :spelling_issues
48
+
49
+ attr_accessor :compatibility_warning_count
50
+
51
+ attr_accessor :compatibility_not_supported_count
52
+
53
+ attr_accessor :compatibility_unknown_count
54
+
55
+ attr_accessor :feature_support
56
+
57
+ attr_accessor :html_error_count
58
+
59
+ attr_accessor :html_warning_count
60
+
61
+ attr_accessor :html_info_count
62
+
63
+ attr_accessor :html_validation
64
+
65
+ attr_accessor :reputation_failure_count
66
+
67
+ attr_accessor :attachment_mention_issue_count
68
+
69
+ attr_accessor :external_check_skipped_count
70
+
71
+ attr_accessor :insights
72
+
73
+ attr_accessor :error_message
74
+
75
+ class EnumAttributeValidator
76
+ attr_reader :datatype
77
+ attr_reader :allowable_values
78
+
79
+ def initialize(datatype, allowable_values)
80
+ @allowable_values = allowable_values.map do |value|
81
+ case datatype.to_s
82
+ when /Integer/i
83
+ value.to_i
84
+ when /Float/i
85
+ value.to_f
86
+ else
87
+ value
88
+ end
89
+ end
90
+ end
91
+
92
+ def valid?(value)
93
+ !value || allowable_values.include?(value)
94
+ end
95
+ end
96
+
97
+ # Attribute mapping from ruby-style variable name to JSON key.
98
+ def self.attribute_map
99
+ {
100
+ :'status' => :'status',
101
+ :'health_score' => :'healthScore',
102
+ :'total_checks' => :'totalChecks',
103
+ :'passing_checks' => :'passingChecks',
104
+ :'failing_checks' => :'failingChecks',
105
+ :'detected_links' => :'detectedLinks',
106
+ :'checked_links' => :'checkedLinks',
107
+ :'detected_images' => :'detectedImages',
108
+ :'checked_images' => :'checkedImages',
109
+ :'link_issue_count' => :'linkIssueCount',
110
+ :'image_issue_count' => :'imageIssueCount',
111
+ :'spelling_issue_count' => :'spellingIssueCount',
112
+ :'broken_links' => :'brokenLinks',
113
+ :'broken_images' => :'brokenImages',
114
+ :'spelling_issues' => :'spellingIssues',
115
+ :'compatibility_warning_count' => :'compatibilityWarningCount',
116
+ :'compatibility_not_supported_count' => :'compatibilityNotSupportedCount',
117
+ :'compatibility_unknown_count' => :'compatibilityUnknownCount',
118
+ :'feature_support' => :'featureSupport',
119
+ :'html_error_count' => :'htmlErrorCount',
120
+ :'html_warning_count' => :'htmlWarningCount',
121
+ :'html_info_count' => :'htmlInfoCount',
122
+ :'html_validation' => :'htmlValidation',
123
+ :'reputation_failure_count' => :'reputationFailureCount',
124
+ :'attachment_mention_issue_count' => :'attachmentMentionIssueCount',
125
+ :'external_check_skipped_count' => :'externalCheckSkippedCount',
126
+ :'insights' => :'insights',
127
+ :'error_message' => :'errorMessage'
128
+ }
129
+ end
130
+
131
+ # Attribute type mapping.
132
+ def self.openapi_types
133
+ {
134
+ :'status' => :'String',
135
+ :'health_score' => :'Integer',
136
+ :'total_checks' => :'Integer',
137
+ :'passing_checks' => :'Integer',
138
+ :'failing_checks' => :'Integer',
139
+ :'detected_links' => :'Integer',
140
+ :'checked_links' => :'Integer',
141
+ :'detected_images' => :'Integer',
142
+ :'checked_images' => :'Integer',
143
+ :'link_issue_count' => :'Integer',
144
+ :'image_issue_count' => :'Integer',
145
+ :'spelling_issue_count' => :'Integer',
146
+ :'broken_links' => :'Array<EmailAuditUrlIssue>',
147
+ :'broken_images' => :'Array<EmailAuditUrlIssue>',
148
+ :'spelling_issues' => :'Array<EmailAuditSpellingIssue>',
149
+ :'compatibility_warning_count' => :'Integer',
150
+ :'compatibility_not_supported_count' => :'Integer',
151
+ :'compatibility_unknown_count' => :'Integer',
152
+ :'feature_support' => :'EmailFeatureSupportResult',
153
+ :'html_error_count' => :'Integer',
154
+ :'html_warning_count' => :'Integer',
155
+ :'html_info_count' => :'Integer',
156
+ :'html_validation' => :'HTMLValidationResult',
157
+ :'reputation_failure_count' => :'Integer',
158
+ :'attachment_mention_issue_count' => :'Integer',
159
+ :'external_check_skipped_count' => :'Integer',
160
+ :'insights' => :'Array<String>',
161
+ :'error_message' => :'String'
162
+ }
163
+ end
164
+
165
+ # List of attributes with nullable: true
166
+ def self.openapi_nullable
167
+ Set.new([
168
+ :'html_validation',
169
+ :'error_message'
170
+ ])
171
+ end
172
+
173
+ # Initializes the object
174
+ # @param [Hash] attributes Model attributes in the form of hash
175
+ def initialize(attributes = {})
176
+ if (!attributes.is_a?(Hash))
177
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MailSlurpClient::EmailAuditAnalysisResult` initialize method"
178
+ end
179
+
180
+ # check to see if the attribute exists and convert string to symbol for hash key
181
+ attributes = attributes.each_with_object({}) { |(k, v), h|
182
+ if (!self.class.attribute_map.key?(k.to_sym))
183
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MailSlurpClient::EmailAuditAnalysisResult`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
184
+ end
185
+ h[k.to_sym] = v
186
+ }
187
+
188
+ if attributes.key?(:'status')
189
+ self.status = attributes[:'status']
190
+ end
191
+
192
+ if attributes.key?(:'health_score')
193
+ self.health_score = attributes[:'health_score']
194
+ end
195
+
196
+ if attributes.key?(:'total_checks')
197
+ self.total_checks = attributes[:'total_checks']
198
+ end
199
+
200
+ if attributes.key?(:'passing_checks')
201
+ self.passing_checks = attributes[:'passing_checks']
202
+ end
203
+
204
+ if attributes.key?(:'failing_checks')
205
+ self.failing_checks = attributes[:'failing_checks']
206
+ end
207
+
208
+ if attributes.key?(:'detected_links')
209
+ self.detected_links = attributes[:'detected_links']
210
+ end
211
+
212
+ if attributes.key?(:'checked_links')
213
+ self.checked_links = attributes[:'checked_links']
214
+ end
215
+
216
+ if attributes.key?(:'detected_images')
217
+ self.detected_images = attributes[:'detected_images']
218
+ end
219
+
220
+ if attributes.key?(:'checked_images')
221
+ self.checked_images = attributes[:'checked_images']
222
+ end
223
+
224
+ if attributes.key?(:'link_issue_count')
225
+ self.link_issue_count = attributes[:'link_issue_count']
226
+ end
227
+
228
+ if attributes.key?(:'image_issue_count')
229
+ self.image_issue_count = attributes[:'image_issue_count']
230
+ end
231
+
232
+ if attributes.key?(:'spelling_issue_count')
233
+ self.spelling_issue_count = attributes[:'spelling_issue_count']
234
+ end
235
+
236
+ if attributes.key?(:'broken_links')
237
+ if (value = attributes[:'broken_links']).is_a?(Array)
238
+ self.broken_links = value
239
+ end
240
+ end
241
+
242
+ if attributes.key?(:'broken_images')
243
+ if (value = attributes[:'broken_images']).is_a?(Array)
244
+ self.broken_images = value
245
+ end
246
+ end
247
+
248
+ if attributes.key?(:'spelling_issues')
249
+ if (value = attributes[:'spelling_issues']).is_a?(Array)
250
+ self.spelling_issues = value
251
+ end
252
+ end
253
+
254
+ if attributes.key?(:'compatibility_warning_count')
255
+ self.compatibility_warning_count = attributes[:'compatibility_warning_count']
256
+ end
257
+
258
+ if attributes.key?(:'compatibility_not_supported_count')
259
+ self.compatibility_not_supported_count = attributes[:'compatibility_not_supported_count']
260
+ end
261
+
262
+ if attributes.key?(:'compatibility_unknown_count')
263
+ self.compatibility_unknown_count = attributes[:'compatibility_unknown_count']
264
+ end
265
+
266
+ if attributes.key?(:'feature_support')
267
+ self.feature_support = attributes[:'feature_support']
268
+ end
269
+
270
+ if attributes.key?(:'html_error_count')
271
+ self.html_error_count = attributes[:'html_error_count']
272
+ end
273
+
274
+ if attributes.key?(:'html_warning_count')
275
+ self.html_warning_count = attributes[:'html_warning_count']
276
+ end
277
+
278
+ if attributes.key?(:'html_info_count')
279
+ self.html_info_count = attributes[:'html_info_count']
280
+ end
281
+
282
+ if attributes.key?(:'html_validation')
283
+ self.html_validation = attributes[:'html_validation']
284
+ end
285
+
286
+ if attributes.key?(:'reputation_failure_count')
287
+ self.reputation_failure_count = attributes[:'reputation_failure_count']
288
+ end
289
+
290
+ if attributes.key?(:'attachment_mention_issue_count')
291
+ self.attachment_mention_issue_count = attributes[:'attachment_mention_issue_count']
292
+ end
293
+
294
+ if attributes.key?(:'external_check_skipped_count')
295
+ self.external_check_skipped_count = attributes[:'external_check_skipped_count']
296
+ end
297
+
298
+ if attributes.key?(:'insights')
299
+ if (value = attributes[:'insights']).is_a?(Array)
300
+ self.insights = value
301
+ end
302
+ end
303
+
304
+ if attributes.key?(:'error_message')
305
+ self.error_message = attributes[:'error_message']
306
+ end
307
+ end
308
+
309
+ # Show invalid properties with the reasons. Usually used together with valid?
310
+ # @return Array for valid properties with the reasons
311
+ def list_invalid_properties
312
+ invalid_properties = Array.new
313
+ if @status.nil?
314
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
315
+ end
316
+
317
+ if @health_score.nil?
318
+ invalid_properties.push('invalid value for "health_score", health_score cannot be nil.')
319
+ end
320
+
321
+ if @total_checks.nil?
322
+ invalid_properties.push('invalid value for "total_checks", total_checks cannot be nil.')
323
+ end
324
+
325
+ if @passing_checks.nil?
326
+ invalid_properties.push('invalid value for "passing_checks", passing_checks cannot be nil.')
327
+ end
328
+
329
+ if @failing_checks.nil?
330
+ invalid_properties.push('invalid value for "failing_checks", failing_checks cannot be nil.')
331
+ end
332
+
333
+ if @detected_links.nil?
334
+ invalid_properties.push('invalid value for "detected_links", detected_links cannot be nil.')
335
+ end
336
+
337
+ if @checked_links.nil?
338
+ invalid_properties.push('invalid value for "checked_links", checked_links cannot be nil.')
339
+ end
340
+
341
+ if @detected_images.nil?
342
+ invalid_properties.push('invalid value for "detected_images", detected_images cannot be nil.')
343
+ end
344
+
345
+ if @checked_images.nil?
346
+ invalid_properties.push('invalid value for "checked_images", checked_images cannot be nil.')
347
+ end
348
+
349
+ if @link_issue_count.nil?
350
+ invalid_properties.push('invalid value for "link_issue_count", link_issue_count cannot be nil.')
351
+ end
352
+
353
+ if @image_issue_count.nil?
354
+ invalid_properties.push('invalid value for "image_issue_count", image_issue_count cannot be nil.')
355
+ end
356
+
357
+ if @spelling_issue_count.nil?
358
+ invalid_properties.push('invalid value for "spelling_issue_count", spelling_issue_count cannot be nil.')
359
+ end
360
+
361
+ if @broken_links.nil?
362
+ invalid_properties.push('invalid value for "broken_links", broken_links cannot be nil.')
363
+ end
364
+
365
+ if @broken_images.nil?
366
+ invalid_properties.push('invalid value for "broken_images", broken_images cannot be nil.')
367
+ end
368
+
369
+ if @spelling_issues.nil?
370
+ invalid_properties.push('invalid value for "spelling_issues", spelling_issues cannot be nil.')
371
+ end
372
+
373
+ if @compatibility_warning_count.nil?
374
+ invalid_properties.push('invalid value for "compatibility_warning_count", compatibility_warning_count cannot be nil.')
375
+ end
376
+
377
+ if @compatibility_not_supported_count.nil?
378
+ invalid_properties.push('invalid value for "compatibility_not_supported_count", compatibility_not_supported_count cannot be nil.')
379
+ end
380
+
381
+ if @compatibility_unknown_count.nil?
382
+ invalid_properties.push('invalid value for "compatibility_unknown_count", compatibility_unknown_count cannot be nil.')
383
+ end
384
+
385
+ if @html_error_count.nil?
386
+ invalid_properties.push('invalid value for "html_error_count", html_error_count cannot be nil.')
387
+ end
388
+
389
+ if @html_warning_count.nil?
390
+ invalid_properties.push('invalid value for "html_warning_count", html_warning_count cannot be nil.')
391
+ end
392
+
393
+ if @html_info_count.nil?
394
+ invalid_properties.push('invalid value for "html_info_count", html_info_count cannot be nil.')
395
+ end
396
+
397
+ if @reputation_failure_count.nil?
398
+ invalid_properties.push('invalid value for "reputation_failure_count", reputation_failure_count cannot be nil.')
399
+ end
400
+
401
+ if @attachment_mention_issue_count.nil?
402
+ invalid_properties.push('invalid value for "attachment_mention_issue_count", attachment_mention_issue_count cannot be nil.')
403
+ end
404
+
405
+ if @external_check_skipped_count.nil?
406
+ invalid_properties.push('invalid value for "external_check_skipped_count", external_check_skipped_count cannot be nil.')
407
+ end
408
+
409
+ if @insights.nil?
410
+ invalid_properties.push('invalid value for "insights", insights cannot be nil.')
411
+ end
412
+
413
+ invalid_properties
414
+ end
415
+
416
+ # Check to see if the all the properties in the model are valid
417
+ # @return true if the model is valid
418
+ def valid?
419
+ return false if @status.nil?
420
+ status_validator = EnumAttributeValidator.new('String', ["HEALTHY", "WARNING", "FAILED"])
421
+ return false unless status_validator.valid?(@status)
422
+ return false if @health_score.nil?
423
+ return false if @total_checks.nil?
424
+ return false if @passing_checks.nil?
425
+ return false if @failing_checks.nil?
426
+ return false if @detected_links.nil?
427
+ return false if @checked_links.nil?
428
+ return false if @detected_images.nil?
429
+ return false if @checked_images.nil?
430
+ return false if @link_issue_count.nil?
431
+ return false if @image_issue_count.nil?
432
+ return false if @spelling_issue_count.nil?
433
+ return false if @broken_links.nil?
434
+ return false if @broken_images.nil?
435
+ return false if @spelling_issues.nil?
436
+ return false if @compatibility_warning_count.nil?
437
+ return false if @compatibility_not_supported_count.nil?
438
+ return false if @compatibility_unknown_count.nil?
439
+ return false if @html_error_count.nil?
440
+ return false if @html_warning_count.nil?
441
+ return false if @html_info_count.nil?
442
+ return false if @reputation_failure_count.nil?
443
+ return false if @attachment_mention_issue_count.nil?
444
+ return false if @external_check_skipped_count.nil?
445
+ return false if @insights.nil?
446
+ true
447
+ end
448
+
449
+ # Custom attribute writer method checking allowed values (enum).
450
+ # @param [Object] status Object to be assigned
451
+ def status=(status)
452
+ validator = EnumAttributeValidator.new('String', ["HEALTHY", "WARNING", "FAILED"])
453
+ unless validator.valid?(status)
454
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
455
+ end
456
+ @status = status
457
+ end
458
+
459
+ # Checks equality by comparing each attribute.
460
+ # @param [Object] Object to be compared
461
+ def ==(o)
462
+ return true if self.equal?(o)
463
+ self.class == o.class &&
464
+ status == o.status &&
465
+ health_score == o.health_score &&
466
+ total_checks == o.total_checks &&
467
+ passing_checks == o.passing_checks &&
468
+ failing_checks == o.failing_checks &&
469
+ detected_links == o.detected_links &&
470
+ checked_links == o.checked_links &&
471
+ detected_images == o.detected_images &&
472
+ checked_images == o.checked_images &&
473
+ link_issue_count == o.link_issue_count &&
474
+ image_issue_count == o.image_issue_count &&
475
+ spelling_issue_count == o.spelling_issue_count &&
476
+ broken_links == o.broken_links &&
477
+ broken_images == o.broken_images &&
478
+ spelling_issues == o.spelling_issues &&
479
+ compatibility_warning_count == o.compatibility_warning_count &&
480
+ compatibility_not_supported_count == o.compatibility_not_supported_count &&
481
+ compatibility_unknown_count == o.compatibility_unknown_count &&
482
+ feature_support == o.feature_support &&
483
+ html_error_count == o.html_error_count &&
484
+ html_warning_count == o.html_warning_count &&
485
+ html_info_count == o.html_info_count &&
486
+ html_validation == o.html_validation &&
487
+ reputation_failure_count == o.reputation_failure_count &&
488
+ attachment_mention_issue_count == o.attachment_mention_issue_count &&
489
+ external_check_skipped_count == o.external_check_skipped_count &&
490
+ insights == o.insights &&
491
+ error_message == o.error_message
492
+ end
493
+
494
+ # @see the `==` method
495
+ # @param [Object] Object to be compared
496
+ def eql?(o)
497
+ self == o
498
+ end
499
+
500
+ # Calculates hash code according to all attributes.
501
+ # @return [Integer] Hash code
502
+ def hash
503
+ [status, health_score, total_checks, passing_checks, failing_checks, detected_links, checked_links, detected_images, checked_images, link_issue_count, image_issue_count, spelling_issue_count, broken_links, broken_images, spelling_issues, compatibility_warning_count, compatibility_not_supported_count, compatibility_unknown_count, feature_support, html_error_count, html_warning_count, html_info_count, html_validation, reputation_failure_count, attachment_mention_issue_count, external_check_skipped_count, insights, error_message].hash
504
+ end
505
+
506
+ # Builds the object from hash
507
+ # @param [Hash] attributes Model attributes in the form of hash
508
+ # @return [Object] Returns the model itself
509
+ def self.build_from_hash(attributes)
510
+ new.build_from_hash(attributes)
511
+ end
512
+
513
+ # Builds the object from hash
514
+ # @param [Hash] attributes Model attributes in the form of hash
515
+ # @return [Object] Returns the model itself
516
+ def build_from_hash(attributes)
517
+ return nil unless attributes.is_a?(Hash)
518
+ self.class.openapi_types.each_pair do |key, type|
519
+ if type =~ /\AArray<(.*)>/i
520
+ # check to ensure the input is an array given that the attribute
521
+ # is documented as an array but the input is not
522
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
523
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
524
+ end
525
+ elsif !attributes[self.class.attribute_map[key]].nil?
526
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
527
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
528
+ end
529
+
530
+ self
531
+ end
532
+
533
+ # Deserializes the data based on type
534
+ # @param string type Data type
535
+ # @param string value Value to be deserialized
536
+ # @return [Object] Deserialized data
537
+ def _deserialize(type, value)
538
+ case type.to_sym
539
+ when :DateTime
540
+ DateTime.parse(value)
541
+ when :Date
542
+ Date.parse(value)
543
+ when :String
544
+ value.to_s
545
+ when :Integer
546
+ value.to_i
547
+ when :Float
548
+ value.to_f
549
+ when :Boolean
550
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
551
+ true
552
+ else
553
+ false
554
+ end
555
+ when :Object
556
+ # generic object (usually a Hash), return directly
557
+ value
558
+ when /\AArray<(?<inner_type>.+)>\z/
559
+ inner_type = Regexp.last_match[:inner_type]
560
+ value.map { |v| _deserialize(inner_type, v) }
561
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
562
+ k_type = Regexp.last_match[:k_type]
563
+ v_type = Regexp.last_match[:v_type]
564
+ {}.tap do |hash|
565
+ value.each do |k, v|
566
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
567
+ end
568
+ end
569
+ else # model
570
+ MailSlurpClient.const_get(type).build_from_hash(value)
571
+ end
572
+ end
573
+
574
+ # Returns the string representation of the object
575
+ # @return [String] String presentation of the object
576
+ def to_s
577
+ to_hash.to_s
578
+ end
579
+
580
+ # to_body is an alias to to_hash (backward compatibility)
581
+ # @return [Hash] Returns the object in the form of hash
582
+ def to_body
583
+ to_hash
584
+ end
585
+
586
+ # Returns the object in the form of hash
587
+ # @return [Hash] Returns the object in the form of hash
588
+ def to_hash
589
+ hash = {}
590
+ self.class.attribute_map.each_pair do |attr, param|
591
+ value = self.send(attr)
592
+ if value.nil?
593
+ is_nullable = self.class.openapi_nullable.include?(attr)
594
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
595
+ end
596
+
597
+ hash[param] = _to_hash(value)
598
+ end
599
+ hash
600
+ end
601
+
602
+ # Outputs non-array value in the form of hash
603
+ # For object, use to_hash. Otherwise, just return the value
604
+ # @param [Object] value Any valid value
605
+ # @return [Hash] Returns the value in the form of hash
606
+ def _to_hash(value)
607
+ if value.is_a?(Array)
608
+ value.compact.map { |v| _to_hash(v) }
609
+ elsif value.is_a?(Hash)
610
+ {}.tap do |hash|
611
+ value.each { |k, v| hash[k] = _to_hash(v) }
612
+ end
613
+ elsif value.respond_to? :to_hash
614
+ value.to_hash
615
+ else
616
+ value
617
+ end
618
+ end
619
+ end
620
+ end