norbelys 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +429 -0
  4. data/Rakefile +10 -0
  5. data/docs/AddProgramSenderParams.md +18 -0
  6. data/docs/AiEmailVariantContent.md +28 -0
  7. data/docs/AnalyticsApi.md +81 -0
  8. data/docs/AnalyticsQuery.md +20 -0
  9. data/docs/AnalyticsQueryName.md +15 -0
  10. data/docs/AnalyticsQueryParams.md +50 -0
  11. data/docs/AnalyticsQueryResult.md +20 -0
  12. data/docs/ApiError.md +18 -0
  13. data/docs/ApiErrorDetail.md +26 -0
  14. data/docs/AudienceActivityAction.md +15 -0
  15. data/docs/AudienceActivityCondition.md +20 -0
  16. data/docs/AudienceActivityLinkFilter.md +20 -0
  17. data/docs/AudienceActivityLinkMatchOp.md +15 -0
  18. data/docs/AudienceActivityParams.md +32 -0
  19. data/docs/AudienceAttributeCondition.md +22 -0
  20. data/docs/AudienceConditionOp.md +15 -0
  21. data/docs/AudienceConditionValue.md +15 -0
  22. data/docs/AudienceFilter.md +20 -0
  23. data/docs/AudienceMatch.md +15 -0
  24. data/docs/AudienceRule.md +26 -0
  25. data/docs/AudienceSource.md +26 -0
  26. data/docs/AudienceStatusBreakdown.md +20 -0
  27. data/docs/AudienceSummary.md +26 -0
  28. data/docs/AudienceWeekPoint.md +20 -0
  29. data/docs/BulkUpdateSenderPatch.md +34 -0
  30. data/docs/BulkUpdateSendersInput.md +20 -0
  31. data/docs/BulkUpdateSendersResult.md +24 -0
  32. data/docs/CampaignReportShare.md +22 -0
  33. data/docs/CollectionAddress.md +28 -0
  34. data/docs/ConnectionSettings.md +22 -0
  35. data/docs/CreateSenderInput.md +42 -0
  36. data/docs/DetachResult.md +18 -0
  37. data/docs/DmarcRecordToPublish.md +22 -0
  38. data/docs/Domain.md +38 -0
  39. data/docs/DomainAge.md +30 -0
  40. data/docs/DomainCapacity.md +28 -0
  41. data/docs/DomainCreateParams.md +24 -0
  42. data/docs/DomainDetail.md +42 -0
  43. data/docs/DomainHealth.md +24 -0
  44. data/docs/DomainList.md +26 -0
  45. data/docs/DomainMonitoring.md +30 -0
  46. data/docs/DomainMonitoringParams.md +20 -0
  47. data/docs/DomainSending.md +26 -0
  48. data/docs/DomainSendingPolicy.md +36 -0
  49. data/docs/DomainSendingPolicyParams.md +32 -0
  50. data/docs/DomainSendingUpdateParams.md +20 -0
  51. data/docs/DomainTracking.md +50 -0
  52. data/docs/DomainTrackingParams.md +22 -0
  53. data/docs/DomainTrackingUpdateParams.md +24 -0
  54. data/docs/DomainUpdateParams.md +22 -0
  55. data/docs/DomainsApi.md +525 -0
  56. data/docs/EmailVariantContent.md +28 -0
  57. data/docs/EnrollProgramParams.md +28 -0
  58. data/docs/EnrollProgramResult.md +28 -0
  59. data/docs/Enrollment.md +42 -0
  60. data/docs/EnrollmentCounts.md +44 -0
  61. data/docs/EnrollmentList.md +28 -0
  62. data/docs/EnrollmentPersonRef.md +22 -0
  63. data/docs/EnrollmentProgramRef.md +20 -0
  64. data/docs/Features.md +18 -0
  65. data/docs/Field.md +38 -0
  66. data/docs/FieldCreateParams.md +26 -0
  67. data/docs/FieldList.md +20 -0
  68. data/docs/FieldType.md +15 -0
  69. data/docs/FieldUpdateParams.md +24 -0
  70. data/docs/FieldsApi.md +297 -0
  71. data/docs/FileObject.md +28 -0
  72. data/docs/FileUpload.md +22 -0
  73. data/docs/FilesApi.md +81 -0
  74. data/docs/Group.md +34 -0
  75. data/docs/GroupAddMembersParams.md +20 -0
  76. data/docs/GroupAddMembersResult.md +22 -0
  77. data/docs/GroupCreateParams.md +22 -0
  78. data/docs/GroupList.md +26 -0
  79. data/docs/GroupUpdateParams.md +22 -0
  80. data/docs/GroupsApi.md +521 -0
  81. data/docs/ImapConnectionUpdate.md +22 -0
  82. data/docs/InboundMessage.md +48 -0
  83. data/docs/Integration.md +34 -0
  84. data/docs/IntegrationConfig.md +26 -0
  85. data/docs/IntegrationConnectParams.md +18 -0
  86. data/docs/IntegrationConnectResult.md +18 -0
  87. data/docs/IntegrationList.md +26 -0
  88. data/docs/IntegrationNotifyConfig.md +24 -0
  89. data/docs/IntegrationOptions.md +18 -0
  90. data/docs/IntegrationProvider.md +15 -0
  91. data/docs/IntegrationStatus.md +15 -0
  92. data/docs/IntegrationSyncResult.md +18 -0
  93. data/docs/IntegrationUpdateParams.md +18 -0
  94. data/docs/IntegrationsApi.md +513 -0
  95. data/docs/LaunchProgramParams.md +18 -0
  96. data/docs/LaunchProgramResult.md +22 -0
  97. data/docs/Message.md +58 -0
  98. data/docs/MessageAddress.md +20 -0
  99. data/docs/MessageAttachment.md +28 -0
  100. data/docs/MessageAttachmentDownload.md +32 -0
  101. data/docs/MessageAttachmentInput.md +22 -0
  102. data/docs/MessageAttachmentList.md +22 -0
  103. data/docs/MessageCreateParams.md +44 -0
  104. data/docs/MessageEnrollParams.md +26 -0
  105. data/docs/MessageList.md +26 -0
  106. data/docs/MessageReplyParams.md +40 -0
  107. data/docs/MessageSource.md +36 -0
  108. data/docs/MessageSourceAttachment.md +22 -0
  109. data/docs/MessageTestParams.md +40 -0
  110. data/docs/MessageUpdateParams.md +22 -0
  111. data/docs/MessagesApi.md +543 -0
  112. data/docs/MonthlyEmailUsageMeter.md +24 -0
  113. data/docs/Organization.md +30 -0
  114. data/docs/OrganizationAlerts.md +18 -0
  115. data/docs/OrganizationAlertsParams.md +18 -0
  116. data/docs/OrganizationApi.md +350 -0
  117. data/docs/OrganizationBouncePolicy.md +20 -0
  118. data/docs/OrganizationBouncePolicyParams.md +20 -0
  119. data/docs/OrganizationOnboarding.md +20 -0
  120. data/docs/OrganizationProfile.md +22 -0
  121. data/docs/OrganizationProfileParams.md +22 -0
  122. data/docs/OrganizationPulse.md +28 -0
  123. data/docs/OrganizationUpdateParams.md +24 -0
  124. data/docs/OrganizationUsage.md +26 -0
  125. data/docs/OutboundMessage.md +46 -0
  126. data/docs/PeopleApi.md +681 -0
  127. data/docs/PeopleBulkCreateParams.md +28 -0
  128. data/docs/PeopleBulkCreateResult.md +34 -0
  129. data/docs/Person.md +52 -0
  130. data/docs/PersonCreateParams.md +30 -0
  131. data/docs/PersonDetail.md +60 -0
  132. data/docs/PersonErased.md +20 -0
  133. data/docs/PersonGroupRef.md +22 -0
  134. data/docs/PersonImportItem.md +30 -0
  135. data/docs/PersonImportReason.md +22 -0
  136. data/docs/PersonImportStats.md +36 -0
  137. data/docs/PersonList.md +26 -0
  138. data/docs/PersonListItem.md +50 -0
  139. data/docs/PersonSegmentRef.md +22 -0
  140. data/docs/PersonUpdateParams.md +30 -0
  141. data/docs/Program.md +78 -0
  142. data/docs/ProgramCreateParams.md +62 -0
  143. data/docs/ProgramDetail.md +84 -0
  144. data/docs/ProgramList.md +26 -0
  145. data/docs/ProgramListItem.md +80 -0
  146. data/docs/ProgramPauseMeta.md +20 -0
  147. data/docs/ProgramSenderRef.md +26 -0
  148. data/docs/ProgramStats.md +22 -0
  149. data/docs/ProgramStepInput.md +38 -0
  150. data/docs/ProgramUpdateParams.md +62 -0
  151. data/docs/ProgramVariantInput.md +26 -0
  152. data/docs/ProgramsApi.md +1283 -0
  153. data/docs/ProgramsAudienceList.md +26 -0
  154. data/docs/ProgramsSendersList.md +26 -0
  155. data/docs/ProviderApiSenderInput.md +38 -0
  156. data/docs/PulseDeliverability.md +30 -0
  157. data/docs/PulseProgram.md +42 -0
  158. data/docs/PulseSenderFleet.md +30 -0
  159. data/docs/PulseValue.md +26 -0
  160. data/docs/ReportShare.md +22 -0
  161. data/docs/Segment.md +32 -0
  162. data/docs/SegmentCreateParams.md +22 -0
  163. data/docs/SegmentList.md +26 -0
  164. data/docs/SegmentUpdateParams.md +22 -0
  165. data/docs/SegmentsApi.md +373 -0
  166. data/docs/SelfHostedSenderInput.md +36 -0
  167. data/docs/Sender.md +66 -0
  168. data/docs/SenderBulkError.md +20 -0
  169. data/docs/SenderDetail.md +70 -0
  170. data/docs/SenderList.md +26 -0
  171. data/docs/SenderRemoveResult.md +20 -0
  172. data/docs/SenderUsage.md +24 -0
  173. data/docs/SenderWarmupStatus.md +20 -0
  174. data/docs/SendersApi.md +531 -0
  175. data/docs/SlackChannel.md +20 -0
  176. data/docs/SmtpConnectionSettings.md +26 -0
  177. data/docs/SmtpConnectionUpdate.md +26 -0
  178. data/docs/SmtpSenderInput.md +40 -0
  179. data/docs/StaticEmailVariantContent.md +28 -0
  180. data/docs/StepWithVariants.md +46 -0
  181. data/docs/Suppression.md +32 -0
  182. data/docs/SuppressionBulkParams.md +20 -0
  183. data/docs/SuppressionBulkResult.md +18 -0
  184. data/docs/SuppressionCreateParams.md +24 -0
  185. data/docs/SuppressionList.md +26 -0
  186. data/docs/SuppressionScope.md +15 -0
  187. data/docs/SuppressionsApi.md +369 -0
  188. data/docs/SyncModel.md +15 -0
  189. data/docs/TeamSize.md +15 -0
  190. data/docs/TrackingDnsRecord.md +22 -0
  191. data/docs/UpdateSenderInput.md +48 -0
  192. data/docs/UsageMeter.md +22 -0
  193. data/docs/UsagePlan.md +22 -0
  194. data/docs/Variant.md +34 -0
  195. data/docs/VariantAi.md +22 -0
  196. data/docs/VerifyApi.md +81 -0
  197. data/docs/VerifyEmailInput.md +18 -0
  198. data/docs/VerifyMx.md +22 -0
  199. data/docs/VerifyReachability.md +15 -0
  200. data/docs/VerifyReasonCode.md +15 -0
  201. data/docs/VerifyResult.md +38 -0
  202. data/docs/VerifySignals.md +28 -0
  203. data/docs/VerifySyntax.md +22 -0
  204. data/docs/VoiceSenderInput.md +38 -0
  205. data/docs/WarmupRuntimeStatus.md +32 -0
  206. data/docs/WarmupSettings.md +44 -0
  207. data/docs/WarmupTemplate.md +20 -0
  208. data/docs/WarmupTodayTally.md +22 -0
  209. data/lib/norbelys/api/analytics_api.rb +97 -0
  210. data/lib/norbelys/api/domains_api.rb +528 -0
  211. data/lib/norbelys/api/fields_api.rb +290 -0
  212. data/lib/norbelys/api/files_api.rb +97 -0
  213. data/lib/norbelys/api/groups_api.rb +516 -0
  214. data/lib/norbelys/api/integrations_api.rb +509 -0
  215. data/lib/norbelys/api/messages_api.rb +572 -0
  216. data/lib/norbelys/api/organization_api.rb +329 -0
  217. data/lib/norbelys/api/people_api.rb +689 -0
  218. data/lib/norbelys/api/programs_api.rb +1299 -0
  219. data/lib/norbelys/api/segments_api.rb +370 -0
  220. data/lib/norbelys/api/senders_api.rb +539 -0
  221. data/lib/norbelys/api/suppressions_api.rb +370 -0
  222. data/lib/norbelys/api/verify_api.rb +97 -0
  223. data/lib/norbelys/api_client.rb +394 -0
  224. data/lib/norbelys/api_error.rb +58 -0
  225. data/lib/norbelys/configuration.rb +308 -0
  226. data/lib/norbelys/models/add_program_sender_params.rb +222 -0
  227. data/lib/norbelys/models/ai_email_variant_content.rb +318 -0
  228. data/lib/norbelys/models/analytics_query.rb +252 -0
  229. data/lib/norbelys/models/analytics_query_name.rb +63 -0
  230. data/lib/norbelys/models/analytics_query_params.rb +485 -0
  231. data/lib/norbelys/models/analytics_query_result.rb +260 -0
  232. data/lib/norbelys/models/api_error.rb +221 -0
  233. data/lib/norbelys/models/api_error_detail.rb +310 -0
  234. data/lib/norbelys/models/audience_activity_action.rb +45 -0
  235. data/lib/norbelys/models/audience_activity_condition.rb +233 -0
  236. data/lib/norbelys/models/audience_activity_link_filter.rb +289 -0
  237. data/lib/norbelys/models/audience_activity_link_match_op.rb +40 -0
  238. data/lib/norbelys/models/audience_activity_params.rb +395 -0
  239. data/lib/norbelys/models/audience_attribute_condition.rb +289 -0
  240. data/lib/norbelys/models/audience_condition_op.rb +59 -0
  241. data/lib/norbelys/models/audience_condition_value.rb +107 -0
  242. data/lib/norbelys/models/audience_filter.rb +270 -0
  243. data/lib/norbelys/models/audience_match.rb +40 -0
  244. data/lib/norbelys/models/audience_rule.rb +104 -0
  245. data/lib/norbelys/models/audience_source.rb +343 -0
  246. data/lib/norbelys/models/audience_status_breakdown.rb +292 -0
  247. data/lib/norbelys/models/audience_summary.rb +351 -0
  248. data/lib/norbelys/models/audience_week_point.rb +258 -0
  249. data/lib/norbelys/models/bulk_update_sender_patch.rb +368 -0
  250. data/lib/norbelys/models/bulk_update_senders_input.rb +268 -0
  251. data/lib/norbelys/models/bulk_update_senders_result.rb +291 -0
  252. data/lib/norbelys/models/campaign_report_share.rb +244 -0
  253. data/lib/norbelys/models/collection_address.rb +321 -0
  254. data/lib/norbelys/models/connection_settings.rb +331 -0
  255. data/lib/norbelys/models/create_sender_input.rb +106 -0
  256. data/lib/norbelys/models/detach_result.rb +223 -0
  257. data/lib/norbelys/models/dmarc_record_to_publish.rb +252 -0
  258. data/lib/norbelys/models/domain.rb +421 -0
  259. data/lib/norbelys/models/domain_age.rb +351 -0
  260. data/lib/norbelys/models/domain_capacity.rb +397 -0
  261. data/lib/norbelys/models/domain_create_params.rb +307 -0
  262. data/lib/norbelys/models/domain_detail.rb +445 -0
  263. data/lib/norbelys/models/domain_health.rb +310 -0
  264. data/lib/norbelys/models/domain_list.rb +292 -0
  265. data/lib/norbelys/models/domain_monitoring.rb +380 -0
  266. data/lib/norbelys/models/domain_monitoring_params.rb +262 -0
  267. data/lib/norbelys/models/domain_sending.rb +302 -0
  268. data/lib/norbelys/models/domain_sending_policy.rb +479 -0
  269. data/lib/norbelys/models/domain_sending_policy_params.rb +389 -0
  270. data/lib/norbelys/models/domain_sending_update_params.rb +225 -0
  271. data/lib/norbelys/models/domain_tracking.rb +570 -0
  272. data/lib/norbelys/models/domain_tracking_params.rb +268 -0
  273. data/lib/norbelys/models/domain_tracking_update_params.rb +306 -0
  274. data/lib/norbelys/models/domain_update_params.rb +259 -0
  275. data/lib/norbelys/models/email_variant_content.rb +104 -0
  276. data/lib/norbelys/models/enroll_program_params.rb +308 -0
  277. data/lib/norbelys/models/enroll_program_result.rb +366 -0
  278. data/lib/norbelys/models/enrollment.rb +405 -0
  279. data/lib/norbelys/models/enrollment_counts.rb +660 -0
  280. data/lib/norbelys/models/enrollment_list.rb +308 -0
  281. data/lib/norbelys/models/enrollment_person_ref.rb +246 -0
  282. data/lib/norbelys/models/enrollment_program_ref.rb +239 -0
  283. data/lib/norbelys/models/features.rb +223 -0
  284. data/lib/norbelys/models/field.rb +401 -0
  285. data/lib/norbelys/models/field_create_params.rb +386 -0
  286. data/lib/norbelys/models/field_list.rb +234 -0
  287. data/lib/norbelys/models/field_type.rb +45 -0
  288. data/lib/norbelys/models/field_update_params.rb +324 -0
  289. data/lib/norbelys/models/file_object.rb +321 -0
  290. data/lib/norbelys/models/file_upload.rb +324 -0
  291. data/lib/norbelys/models/group.rb +339 -0
  292. data/lib/norbelys/models/group_add_members_params.rb +227 -0
  293. data/lib/norbelys/models/group_add_members_result.rb +313 -0
  294. data/lib/norbelys/models/group_create_params.rb +308 -0
  295. data/lib/norbelys/models/group_list.rb +299 -0
  296. data/lib/norbelys/models/group_update_params.rb +293 -0
  297. data/lib/norbelys/models/imap_connection_update.rb +317 -0
  298. data/lib/norbelys/models/inbound_message.rb +442 -0
  299. data/lib/norbelys/models/integration.rb +340 -0
  300. data/lib/norbelys/models/integration_config.rb +254 -0
  301. data/lib/norbelys/models/integration_connect_params.rb +244 -0
  302. data/lib/norbelys/models/integration_connect_result.rb +222 -0
  303. data/lib/norbelys/models/integration_list.rb +292 -0
  304. data/lib/norbelys/models/integration_notify_config.rb +246 -0
  305. data/lib/norbelys/models/integration_options.rb +224 -0
  306. data/lib/norbelys/models/integration_provider.rb +52 -0
  307. data/lib/norbelys/models/integration_status.rb +41 -0
  308. data/lib/norbelys/models/integration_sync_result.rb +224 -0
  309. data/lib/norbelys/models/integration_update_params.rb +222 -0
  310. data/lib/norbelys/models/launch_program_params.rb +230 -0
  311. data/lib/norbelys/models/launch_program_result.rb +292 -0
  312. data/lib/norbelys/models/message.rb +104 -0
  313. data/lib/norbelys/models/message_address.rb +232 -0
  314. data/lib/norbelys/models/message_attachment.rb +312 -0
  315. data/lib/norbelys/models/message_attachment_download.rb +341 -0
  316. data/lib/norbelys/models/message_attachment_input.rb +296 -0
  317. data/lib/norbelys/models/message_attachment_list.rb +253 -0
  318. data/lib/norbelys/models/message_create_params.rb +105 -0
  319. data/lib/norbelys/models/message_enroll_params.rb +278 -0
  320. data/lib/norbelys/models/message_list.rb +299 -0
  321. data/lib/norbelys/models/message_reply_params.rb +369 -0
  322. data/lib/norbelys/models/message_source.rb +348 -0
  323. data/lib/norbelys/models/message_source_attachment.rb +242 -0
  324. data/lib/norbelys/models/message_test_params.rb +364 -0
  325. data/lib/norbelys/models/message_update_params.rb +269 -0
  326. data/lib/norbelys/models/monthly_email_usage_meter.rb +303 -0
  327. data/lib/norbelys/models/organization.rb +321 -0
  328. data/lib/norbelys/models/organization_alerts.rb +223 -0
  329. data/lib/norbelys/models/organization_alerts_params.rb +216 -0
  330. data/lib/norbelys/models/organization_bounce_policy.rb +240 -0
  331. data/lib/norbelys/models/organization_bounce_policy_params.rb +226 -0
  332. data/lib/norbelys/models/organization_onboarding.rb +250 -0
  333. data/lib/norbelys/models/organization_profile.rb +264 -0
  334. data/lib/norbelys/models/organization_profile_params.rb +270 -0
  335. data/lib/norbelys/models/organization_pulse.rb +301 -0
  336. data/lib/norbelys/models/organization_update_params.rb +242 -0
  337. data/lib/norbelys/models/organization_usage.rb +282 -0
  338. data/lib/norbelys/models/outbound_message.rb +447 -0
  339. data/lib/norbelys/models/people_bulk_create_params.rb +401 -0
  340. data/lib/norbelys/models/people_bulk_create_result.rb +493 -0
  341. data/lib/norbelys/models/person.rb +500 -0
  342. data/lib/norbelys/models/person_create_params.rb +320 -0
  343. data/lib/norbelys/models/person_detail.rb +548 -0
  344. data/lib/norbelys/models/person_erased.rb +234 -0
  345. data/lib/norbelys/models/person_group_ref.rb +251 -0
  346. data/lib/norbelys/models/person_import_item.rb +339 -0
  347. data/lib/norbelys/models/person_import_reason.rb +309 -0
  348. data/lib/norbelys/models/person_import_stats.rb +518 -0
  349. data/lib/norbelys/models/person_list.rb +299 -0
  350. data/lib/norbelys/models/person_list_item.rb +488 -0
  351. data/lib/norbelys/models/person_segment_ref.rb +251 -0
  352. data/lib/norbelys/models/person_update_params.rb +313 -0
  353. data/lib/norbelys/models/program.rb +871 -0
  354. data/lib/norbelys/models/program_create_params.rb +704 -0
  355. data/lib/norbelys/models/program_detail.rb +911 -0
  356. data/lib/norbelys/models/program_list.rb +292 -0
  357. data/lib/norbelys/models/program_list_item.rb +887 -0
  358. data/lib/norbelys/models/program_pause_meta.rb +295 -0
  359. data/lib/norbelys/models/program_sender_ref.rb +295 -0
  360. data/lib/norbelys/models/program_stats.rb +297 -0
  361. data/lib/norbelys/models/program_step_input.rb +469 -0
  362. data/lib/norbelys/models/program_update_params.rb +697 -0
  363. data/lib/norbelys/models/program_variant_input.rb +274 -0
  364. data/lib/norbelys/models/programs_audience_list.rb +293 -0
  365. data/lib/norbelys/models/programs_senders_list.rb +293 -0
  366. data/lib/norbelys/models/provider_api_sender_input.rb +395 -0
  367. data/lib/norbelys/models/pulse_deliverability.rb +325 -0
  368. data/lib/norbelys/models/pulse_program.rb +453 -0
  369. data/lib/norbelys/models/pulse_sender_fleet.rb +325 -0
  370. data/lib/norbelys/models/pulse_value.rb +291 -0
  371. data/lib/norbelys/models/report_share.rb +244 -0
  372. data/lib/norbelys/models/segment.rb +307 -0
  373. data/lib/norbelys/models/segment_create_params.rb +296 -0
  374. data/lib/norbelys/models/segment_list.rb +299 -0
  375. data/lib/norbelys/models/segment_update_params.rb +278 -0
  376. data/lib/norbelys/models/self_hosted_sender_input.rb +378 -0
  377. data/lib/norbelys/models/sender.rb +708 -0
  378. data/lib/norbelys/models/sender_bulk_error.rb +239 -0
  379. data/lib/norbelys/models/sender_detail.rb +726 -0
  380. data/lib/norbelys/models/sender_list.rb +299 -0
  381. data/lib/norbelys/models/sender_remove_result.rb +268 -0
  382. data/lib/norbelys/models/sender_usage.rb +331 -0
  383. data/lib/norbelys/models/sender_warmup_status.rb +230 -0
  384. data/lib/norbelys/models/slack_channel.rb +239 -0
  385. data/lib/norbelys/models/smtp_connection_settings.rb +351 -0
  386. data/lib/norbelys/models/smtp_connection_update.rb +337 -0
  387. data/lib/norbelys/models/smtp_sender_input.rb +403 -0
  388. data/lib/norbelys/models/static_email_variant_content.rb +312 -0
  389. data/lib/norbelys/models/step_with_variants.rb +591 -0
  390. data/lib/norbelys/models/suppression.rb +331 -0
  391. data/lib/norbelys/models/suppression_bulk_params.rb +262 -0
  392. data/lib/norbelys/models/suppression_bulk_result.rb +241 -0
  393. data/lib/norbelys/models/suppression_create_params.rb +305 -0
  394. data/lib/norbelys/models/suppression_list.rb +293 -0
  395. data/lib/norbelys/models/suppression_scope.rb +40 -0
  396. data/lib/norbelys/models/sync_model.rb +41 -0
  397. data/lib/norbelys/models/team_size.rb +43 -0
  398. data/lib/norbelys/models/tracking_dns_record.rb +252 -0
  399. data/lib/norbelys/models/update_sender_input.rb +481 -0
  400. data/lib/norbelys/models/usage_meter.rb +286 -0
  401. data/lib/norbelys/models/usage_plan.rb +257 -0
  402. data/lib/norbelys/models/variant.rb +385 -0
  403. data/lib/norbelys/models/variant_ai.rb +314 -0
  404. data/lib/norbelys/models/verify_email_input.rb +251 -0
  405. data/lib/norbelys/models/verify_mx.rb +254 -0
  406. data/lib/norbelys/models/verify_reachability.rb +42 -0
  407. data/lib/norbelys/models/verify_reason_code.rb +52 -0
  408. data/lib/norbelys/models/verify_result.rb +426 -0
  409. data/lib/norbelys/models/verify_signals.rb +308 -0
  410. data/lib/norbelys/models/verify_syntax.rb +257 -0
  411. data/lib/norbelys/models/voice_sender_input.rb +388 -0
  412. data/lib/norbelys/models/warmup_runtime_status.rb +440 -0
  413. data/lib/norbelys/models/warmup_settings.rb +562 -0
  414. data/lib/norbelys/models/warmup_template.rb +295 -0
  415. data/lib/norbelys/models/warmup_today_tally.rb +314 -0
  416. data/lib/norbelys/version.rb +15 -0
  417. data/lib/norbelys.rb +243 -0
  418. data/norbelys.gemspec +39 -0
  419. data/spec/api/analytics_api_spec.rb +48 -0
  420. data/spec/api/domains_api_spec.rb +128 -0
  421. data/spec/api/fields_api_spec.rb +85 -0
  422. data/spec/api/files_api_spec.rb +48 -0
  423. data/spec/api/groups_api_spec.rb +127 -0
  424. data/spec/api/integrations_api_spec.rb +124 -0
  425. data/spec/api/messages_api_spec.rb +139 -0
  426. data/spec/api/organization_api_spec.rb +92 -0
  427. data/spec/api/people_api_spec.rb +158 -0
  428. data/spec/api/programs_api_spec.rb +270 -0
  429. data/spec/api/segments_api_spec.rb +100 -0
  430. data/spec/api/senders_api_spec.rb +130 -0
  431. data/spec/api/suppressions_api_spec.rb +98 -0
  432. data/spec/api/verify_api_spec.rb +48 -0
  433. data/spec/models/add_program_sender_params_spec.rb +36 -0
  434. data/spec/models/ai_email_variant_content_spec.rb +66 -0
  435. data/spec/models/analytics_query_name_spec.rb +30 -0
  436. data/spec/models/analytics_query_params_spec.rb +136 -0
  437. data/spec/models/analytics_query_result_spec.rb +42 -0
  438. data/spec/models/analytics_query_spec.rb +42 -0
  439. data/spec/models/api_error_detail_spec.rb +64 -0
  440. data/spec/models/api_error_spec.rb +36 -0
  441. data/spec/models/audience_activity_action_spec.rb +30 -0
  442. data/spec/models/audience_activity_condition_spec.rb +42 -0
  443. data/spec/models/audience_activity_link_filter_spec.rb +42 -0
  444. data/spec/models/audience_activity_link_match_op_spec.rb +30 -0
  445. data/spec/models/audience_activity_params_spec.rb +78 -0
  446. data/spec/models/audience_attribute_condition_spec.rb +48 -0
  447. data/spec/models/audience_condition_op_spec.rb +30 -0
  448. data/spec/models/audience_condition_value_spec.rb +21 -0
  449. data/spec/models/audience_filter_spec.rb +42 -0
  450. data/spec/models/audience_match_spec.rb +30 -0
  451. data/spec/models/audience_rule_spec.rb +21 -0
  452. data/spec/models/audience_source_spec.rb +64 -0
  453. data/spec/models/audience_status_breakdown_spec.rb +46 -0
  454. data/spec/models/audience_summary_spec.rb +60 -0
  455. data/spec/models/audience_week_point_spec.rb +42 -0
  456. data/spec/models/bulk_update_sender_patch_spec.rb +88 -0
  457. data/spec/models/bulk_update_senders_input_spec.rb +42 -0
  458. data/spec/models/bulk_update_senders_result_spec.rb +54 -0
  459. data/spec/models/campaign_report_share_spec.rb +48 -0
  460. data/spec/models/collection_address_spec.rb +70 -0
  461. data/spec/models/connection_settings_spec.rb +52 -0
  462. data/spec/models/create_sender_input_spec.rb +21 -0
  463. data/spec/models/detach_result_spec.rb +36 -0
  464. data/spec/models/dmarc_record_to_publish_spec.rb +48 -0
  465. data/spec/models/domain_age_spec.rb +76 -0
  466. data/spec/models/domain_capacity_spec.rb +70 -0
  467. data/spec/models/domain_create_params_spec.rb +58 -0
  468. data/spec/models/domain_detail_spec.rb +112 -0
  469. data/spec/models/domain_health_spec.rb +62 -0
  470. data/spec/models/domain_list_spec.rb +60 -0
  471. data/spec/models/domain_monitoring_params_spec.rb +46 -0
  472. data/spec/models/domain_monitoring_spec.rb +84 -0
  473. data/spec/models/domain_sending_policy_params_spec.rb +82 -0
  474. data/spec/models/domain_sending_policy_spec.rb +94 -0
  475. data/spec/models/domain_sending_spec.rb +60 -0
  476. data/spec/models/domain_sending_update_params_spec.rb +42 -0
  477. data/spec/models/domain_spec.rb +100 -0
  478. data/spec/models/domain_tracking_params_spec.rb +48 -0
  479. data/spec/models/domain_tracking_spec.rb +160 -0
  480. data/spec/models/domain_tracking_update_params_spec.rb +58 -0
  481. data/spec/models/domain_update_params_spec.rb +48 -0
  482. data/spec/models/email_variant_content_spec.rb +21 -0
  483. data/spec/models/enroll_program_params_spec.rb +70 -0
  484. data/spec/models/enroll_program_result_spec.rb +66 -0
  485. data/spec/models/enrollment_counts_spec.rb +114 -0
  486. data/spec/models/enrollment_list_spec.rb +66 -0
  487. data/spec/models/enrollment_person_ref_spec.rb +48 -0
  488. data/spec/models/enrollment_program_ref_spec.rb +42 -0
  489. data/spec/models/enrollment_spec.rb +112 -0
  490. data/spec/models/features_spec.rb +36 -0
  491. data/spec/models/field_create_params_spec.rb +64 -0
  492. data/spec/models/field_list_spec.rb +42 -0
  493. data/spec/models/field_spec.rb +96 -0
  494. data/spec/models/field_type_spec.rb +30 -0
  495. data/spec/models/field_update_params_spec.rb +58 -0
  496. data/spec/models/file_object_spec.rb +66 -0
  497. data/spec/models/file_upload_spec.rb +48 -0
  498. data/spec/models/group_add_members_params_spec.rb +42 -0
  499. data/spec/models/group_add_members_result_spec.rb +48 -0
  500. data/spec/models/group_create_params_spec.rb +48 -0
  501. data/spec/models/group_list_spec.rb +60 -0
  502. data/spec/models/group_spec.rb +84 -0
  503. data/spec/models/group_update_params_spec.rb +48 -0
  504. data/spec/models/imap_connection_update_spec.rb +52 -0
  505. data/spec/models/inbound_message_spec.rb +130 -0
  506. data/spec/models/integration_config_spec.rb +60 -0
  507. data/spec/models/integration_connect_params_spec.rb +36 -0
  508. data/spec/models/integration_connect_result_spec.rb +36 -0
  509. data/spec/models/integration_list_spec.rb +60 -0
  510. data/spec/models/integration_notify_config_spec.rb +54 -0
  511. data/spec/models/integration_options_spec.rb +36 -0
  512. data/spec/models/integration_provider_spec.rb +30 -0
  513. data/spec/models/integration_spec.rb +84 -0
  514. data/spec/models/integration_status_spec.rb +30 -0
  515. data/spec/models/integration_sync_result_spec.rb +36 -0
  516. data/spec/models/integration_update_params_spec.rb +36 -0
  517. data/spec/models/launch_program_params_spec.rb +36 -0
  518. data/spec/models/launch_program_result_spec.rb +52 -0
  519. data/spec/models/message_address_spec.rb +42 -0
  520. data/spec/models/message_attachment_download_spec.rb +78 -0
  521. data/spec/models/message_attachment_input_spec.rb +48 -0
  522. data/spec/models/message_attachment_list_spec.rb +48 -0
  523. data/spec/models/message_attachment_spec.rb +66 -0
  524. data/spec/models/message_create_params_spec.rb +21 -0
  525. data/spec/models/message_enroll_params_spec.rb +60 -0
  526. data/spec/models/message_list_spec.rb +60 -0
  527. data/spec/models/message_reply_params_spec.rb +102 -0
  528. data/spec/models/message_source_attachment_spec.rb +48 -0
  529. data/spec/models/message_source_spec.rb +90 -0
  530. data/spec/models/message_spec.rb +21 -0
  531. data/spec/models/message_test_params_spec.rb +102 -0
  532. data/spec/models/message_update_params_spec.rb +52 -0
  533. data/spec/models/monthly_email_usage_meter_spec.rb +58 -0
  534. data/spec/models/organization_alerts_params_spec.rb +36 -0
  535. data/spec/models/organization_alerts_spec.rb +36 -0
  536. data/spec/models/organization_bounce_policy_params_spec.rb +42 -0
  537. data/spec/models/organization_bounce_policy_spec.rb +42 -0
  538. data/spec/models/organization_onboarding_spec.rb +42 -0
  539. data/spec/models/organization_profile_params_spec.rb +52 -0
  540. data/spec/models/organization_profile_spec.rb +48 -0
  541. data/spec/models/organization_pulse_spec.rb +66 -0
  542. data/spec/models/organization_spec.rb +72 -0
  543. data/spec/models/organization_update_params_spec.rb +54 -0
  544. data/spec/models/organization_usage_spec.rb +60 -0
  545. data/spec/models/outbound_message_spec.rb +128 -0
  546. data/spec/models/people_bulk_create_params_spec.rb +70 -0
  547. data/spec/models/people_bulk_create_result_spec.rb +84 -0
  548. data/spec/models/person_create_params_spec.rb +76 -0
  549. data/spec/models/person_detail_spec.rb +170 -0
  550. data/spec/models/person_erased_spec.rb +42 -0
  551. data/spec/models/person_group_ref_spec.rb +48 -0
  552. data/spec/models/person_import_item_spec.rb +76 -0
  553. data/spec/models/person_import_reason_spec.rb +52 -0
  554. data/spec/models/person_import_stats_spec.rb +94 -0
  555. data/spec/models/person_list_item_spec.rb +140 -0
  556. data/spec/models/person_list_spec.rb +60 -0
  557. data/spec/models/person_segment_ref_spec.rb +48 -0
  558. data/spec/models/person_spec.rb +146 -0
  559. data/spec/models/person_update_params_spec.rb +76 -0
  560. data/spec/models/program_create_params_spec.rb +180 -0
  561. data/spec/models/program_detail_spec.rb +254 -0
  562. data/spec/models/program_list_item_spec.rb +242 -0
  563. data/spec/models/program_list_spec.rb +60 -0
  564. data/spec/models/program_pause_meta_spec.rb +42 -0
  565. data/spec/models/program_sender_ref_spec.rb +60 -0
  566. data/spec/models/program_spec.rb +236 -0
  567. data/spec/models/program_stats_spec.rb +48 -0
  568. data/spec/models/program_step_input_spec.rb +108 -0
  569. data/spec/models/program_update_params_spec.rb +180 -0
  570. data/spec/models/program_variant_input_spec.rb +60 -0
  571. data/spec/models/programs_audience_list_spec.rb +60 -0
  572. data/spec/models/programs_senders_list_spec.rb +60 -0
  573. data/spec/models/provider_api_sender_input_spec.rb +96 -0
  574. data/spec/models/pulse_deliverability_spec.rb +72 -0
  575. data/spec/models/pulse_program_spec.rb +112 -0
  576. data/spec/models/pulse_sender_fleet_spec.rb +72 -0
  577. data/spec/models/pulse_value_spec.rb +60 -0
  578. data/spec/models/report_share_spec.rb +48 -0
  579. data/spec/models/segment_create_params_spec.rb +48 -0
  580. data/spec/models/segment_list_spec.rb +60 -0
  581. data/spec/models/segment_spec.rb +78 -0
  582. data/spec/models/segment_update_params_spec.rb +48 -0
  583. data/spec/models/self_hosted_sender_input_spec.rb +90 -0
  584. data/spec/models/sender_bulk_error_spec.rb +42 -0
  585. data/spec/models/sender_detail_spec.rb +212 -0
  586. data/spec/models/sender_list_spec.rb +60 -0
  587. data/spec/models/sender_remove_result_spec.rb +46 -0
  588. data/spec/models/sender_spec.rb +200 -0
  589. data/spec/models/sender_usage_spec.rb +54 -0
  590. data/spec/models/sender_warmup_status_spec.rb +42 -0
  591. data/spec/models/slack_channel_spec.rb +42 -0
  592. data/spec/models/smtp_connection_settings_spec.rb +64 -0
  593. data/spec/models/smtp_connection_update_spec.rb +64 -0
  594. data/spec/models/smtp_sender_input_spec.rb +102 -0
  595. data/spec/models/static_email_variant_content_spec.rb +66 -0
  596. data/spec/models/step_with_variants_spec.rb +136 -0
  597. data/spec/models/suppression_bulk_params_spec.rb +42 -0
  598. data/spec/models/suppression_bulk_result_spec.rb +36 -0
  599. data/spec/models/suppression_create_params_spec.rb +58 -0
  600. data/spec/models/suppression_list_spec.rb +60 -0
  601. data/spec/models/suppression_scope_spec.rb +30 -0
  602. data/spec/models/suppression_spec.rb +78 -0
  603. data/spec/models/sync_model_spec.rb +30 -0
  604. data/spec/models/team_size_spec.rb +30 -0
  605. data/spec/models/tracking_dns_record_spec.rb +48 -0
  606. data/spec/models/update_sender_input_spec.rb +134 -0
  607. data/spec/models/usage_meter_spec.rb +52 -0
  608. data/spec/models/usage_plan_spec.rb +48 -0
  609. data/spec/models/variant_ai_spec.rb +52 -0
  610. data/spec/models/variant_spec.rb +88 -0
  611. data/spec/models/verify_email_input_spec.rb +36 -0
  612. data/spec/models/verify_mx_spec.rb +48 -0
  613. data/spec/models/verify_reachability_spec.rb +30 -0
  614. data/spec/models/verify_reason_code_spec.rb +30 -0
  615. data/spec/models/verify_result_spec.rb +96 -0
  616. data/spec/models/verify_signals_spec.rb +66 -0
  617. data/spec/models/verify_syntax_spec.rb +48 -0
  618. data/spec/models/voice_sender_input_spec.rb +96 -0
  619. data/spec/models/warmup_runtime_status_spec.rb +86 -0
  620. data/spec/models/warmup_settings_spec.rb +118 -0
  621. data/spec/models/warmup_template_spec.rb +42 -0
  622. data/spec/models/warmup_today_tally_spec.rb +48 -0
  623. data/spec/spec_helper.rb +111 -0
  624. metadata +935 -0
@@ -0,0 +1,726 @@
1
+ =begin
2
+ #Norbelys API
3
+
4
+ #The **Norbelys API** is a single, predictable REST surface for cold email and outreach — people, senders, programs, and sending all live behind the five patterns below. Developer-first and AI-first: every name is either already invented (Schema.org) or obvious. ## Authentication Every request authenticates with an **org-scoped API key**. Create one in **Settings → API keys** and send it as a bearer token: ```http GET https://api.norbelys.com/v1/people Authorization: Bearer ak_live_… ``` Interactive agents may instead use OAuth 2.1 (see `/auth.md` and the `/.well-known/oauth-protected-resource` metadata). ## Conventions - **Base URL** — `https://api.norbelys.com/v1`. - **JSON in, JSON out.** Timestamps are ISO-8601 in UTC. - **Cursor pagination.** List endpoints take `limit` + `cursor` and return `{ data, hasMore, nextCursor }` (offset-paged tables add `page` + `total`). - **Expansions.** Detail GETs take an `expand[]` query param to inline related data (e.g. `GET /people/{id}?expand[]=timeline`) instead of extra calls. - **Soft deletes.** Anything that has been used is archived, never hard-deleted — `DELETE` archives the resource and returns it. ## Errors Failures return the same envelope on every 4xx/5xx, with the matching HTTP status: ```json { \"error\": { \"type\": \"invalid_request\", \"code\": \"invalid_param\", \"message\": \"…\", \"hint\": \"…\", \"doc_url\": \"…\" } } ``` `type` is a broad, machine-routable category derived from the status; `code` is the stable machine contract you branch on (never the human `message`). See the `ApiError` schema. ## Idempotency Every `POST` accepts an optional **`Idempotency-Key`** header. Reuse the same key to replay the original result for 24h instead of re-executing — so a retried create can never double-charge or duplicate a record. ## Rate limits & versioning Abuse control is enforced at the edge; responses advertise the policy via the `RateLimit-Policy` header, and a `429` carries `Retry-After`. The API is versioned in the URL path (`/v1`). Breaking changes ship under a new version; a retiring surface is announced with `Deprecation` + `Sunset` response headers at least 90 days ahead.
5
+
6
+ The version of the OpenAPI document: 0.0.1
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Norbelys
17
+ class SenderDetail
18
+ attr_accessor :archived_at
19
+
20
+ attr_accessor :bcc_crm_email
21
+
22
+ attr_accessor :client_label
23
+
24
+ attr_accessor :created_at
25
+
26
+ # Max sends per day for this mailbox.
27
+ attr_accessor :daily_limit
28
+
29
+ # The sending address.
30
+ attr_accessor :from_email
31
+
32
+ # Display name.
33
+ attr_accessor :from_name
34
+
35
+ attr_accessor :health_updated_at
36
+
37
+ # The sender id.
38
+ attr_accessor :id
39
+
40
+ attr_accessor :imap_host
41
+
42
+ attr_accessor :imap_port
43
+
44
+ attr_accessor :imap_security
45
+
46
+ # Minimum gap between sends from this mailbox.
47
+ attr_accessor :min_gap_minutes
48
+
49
+ attr_accessor :object
50
+
51
+ attr_accessor :reply_to
52
+
53
+ # System-computed reputation tier: `good`, `warning`, or `bad`.
54
+ attr_accessor :reputation
55
+
56
+ # The sending domain this mailbox lives under.
57
+ attr_accessor :sending_domain_id
58
+
59
+ attr_accessor :signature_html
60
+
61
+ attr_accessor :smtp_host
62
+
63
+ attr_accessor :smtp_port
64
+
65
+ attr_accessor :smtp_security
66
+
67
+ # Operational state: `healthy`, `throttled`, or `paused`.
68
+ attr_accessor :state
69
+
70
+ # How messages are carried: `smtp`, `provider_api`, `self_hosted`, or `voice`.
71
+ attr_accessor :transport_mode
72
+
73
+ attr_accessor :transport_provider
74
+
75
+ attr_accessor :updated_at
76
+
77
+ attr_accessor :usage
78
+
79
+ attr_accessor :warmup
80
+
81
+ class EnumAttributeValidator
82
+ attr_reader :datatype
83
+ attr_reader :allowable_values
84
+
85
+ def initialize(datatype, allowable_values)
86
+ @allowable_values = allowable_values.map do |value|
87
+ case datatype.to_s
88
+ when /Integer/i
89
+ value.to_i
90
+ when /Float/i
91
+ value.to_f
92
+ else
93
+ value
94
+ end
95
+ end
96
+ end
97
+
98
+ def valid?(value)
99
+ !value || allowable_values.include?(value)
100
+ end
101
+ end
102
+
103
+ # Attribute mapping from ruby-style variable name to JSON key.
104
+ def self.attribute_map
105
+ {
106
+ :'archived_at' => :'archivedAt',
107
+ :'bcc_crm_email' => :'bccCrmEmail',
108
+ :'client_label' => :'clientLabel',
109
+ :'created_at' => :'createdAt',
110
+ :'daily_limit' => :'dailyLimit',
111
+ :'from_email' => :'fromEmail',
112
+ :'from_name' => :'fromName',
113
+ :'health_updated_at' => :'healthUpdatedAt',
114
+ :'id' => :'id',
115
+ :'imap_host' => :'imapHost',
116
+ :'imap_port' => :'imapPort',
117
+ :'imap_security' => :'imapSecurity',
118
+ :'min_gap_minutes' => :'minGapMinutes',
119
+ :'object' => :'object',
120
+ :'reply_to' => :'replyTo',
121
+ :'reputation' => :'reputation',
122
+ :'sending_domain_id' => :'sendingDomainId',
123
+ :'signature_html' => :'signatureHtml',
124
+ :'smtp_host' => :'smtpHost',
125
+ :'smtp_port' => :'smtpPort',
126
+ :'smtp_security' => :'smtpSecurity',
127
+ :'state' => :'state',
128
+ :'transport_mode' => :'transportMode',
129
+ :'transport_provider' => :'transportProvider',
130
+ :'updated_at' => :'updatedAt',
131
+ :'usage' => :'usage',
132
+ :'warmup' => :'warmup'
133
+ }
134
+ end
135
+
136
+ # Returns all the JSON keys this model knows about
137
+ def self.acceptable_attributes
138
+ attribute_map.values
139
+ end
140
+
141
+ # Attribute type mapping.
142
+ def self.openapi_types
143
+ {
144
+ :'archived_at' => :'Object',
145
+ :'bcc_crm_email' => :'String',
146
+ :'client_label' => :'String',
147
+ :'created_at' => :'Object',
148
+ :'daily_limit' => :'Integer',
149
+ :'from_email' => :'String',
150
+ :'from_name' => :'String',
151
+ :'health_updated_at' => :'Object',
152
+ :'id' => :'String',
153
+ :'imap_host' => :'String',
154
+ :'imap_port' => :'Integer',
155
+ :'imap_security' => :'String',
156
+ :'min_gap_minutes' => :'Integer',
157
+ :'object' => :'Object',
158
+ :'reply_to' => :'String',
159
+ :'reputation' => :'String',
160
+ :'sending_domain_id' => :'String',
161
+ :'signature_html' => :'String',
162
+ :'smtp_host' => :'String',
163
+ :'smtp_port' => :'Integer',
164
+ :'smtp_security' => :'String',
165
+ :'state' => :'String',
166
+ :'transport_mode' => :'String',
167
+ :'transport_provider' => :'String',
168
+ :'updated_at' => :'Object',
169
+ :'usage' => :'SenderUsage',
170
+ :'warmup' => :'SenderWarmupStatus'
171
+ }
172
+ end
173
+
174
+ # List of attributes with nullable: true
175
+ def self.openapi_nullable
176
+ Set.new([
177
+ :'archived_at',
178
+ :'bcc_crm_email',
179
+ :'client_label',
180
+ :'created_at',
181
+ :'health_updated_at',
182
+ :'imap_host',
183
+ :'imap_port',
184
+ :'imap_security',
185
+ :'object',
186
+ :'reply_to',
187
+ :'signature_html',
188
+ :'smtp_host',
189
+ :'smtp_port',
190
+ :'smtp_security',
191
+ :'transport_provider',
192
+ :'updated_at',
193
+ ])
194
+ end
195
+
196
+ # Initializes the object
197
+ # @param [Hash] attributes Model attributes in the form of hash
198
+ def initialize(attributes = {})
199
+ if (!attributes.is_a?(Hash))
200
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Norbelys::SenderDetail` initialize method"
201
+ end
202
+
203
+ # check to see if the attribute exists and convert string to symbol for hash key
204
+ attributes = attributes.each_with_object({}) { |(k, v), h|
205
+ if (!self.class.attribute_map.key?(k.to_sym))
206
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Norbelys::SenderDetail`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
207
+ end
208
+ h[k.to_sym] = v
209
+ }
210
+
211
+ if attributes.key?(:'archived_at')
212
+ self.archived_at = attributes[:'archived_at']
213
+ end
214
+
215
+ if attributes.key?(:'bcc_crm_email')
216
+ self.bcc_crm_email = attributes[:'bcc_crm_email']
217
+ else
218
+ self.bcc_crm_email = nil
219
+ end
220
+
221
+ if attributes.key?(:'client_label')
222
+ self.client_label = attributes[:'client_label']
223
+ else
224
+ self.client_label = nil
225
+ end
226
+
227
+ if attributes.key?(:'created_at')
228
+ self.created_at = attributes[:'created_at']
229
+ end
230
+
231
+ if attributes.key?(:'daily_limit')
232
+ self.daily_limit = attributes[:'daily_limit']
233
+ else
234
+ self.daily_limit = nil
235
+ end
236
+
237
+ if attributes.key?(:'from_email')
238
+ self.from_email = attributes[:'from_email']
239
+ else
240
+ self.from_email = nil
241
+ end
242
+
243
+ if attributes.key?(:'from_name')
244
+ self.from_name = attributes[:'from_name']
245
+ else
246
+ self.from_name = nil
247
+ end
248
+
249
+ if attributes.key?(:'health_updated_at')
250
+ self.health_updated_at = attributes[:'health_updated_at']
251
+ end
252
+
253
+ if attributes.key?(:'id')
254
+ self.id = attributes[:'id']
255
+ else
256
+ self.id = nil
257
+ end
258
+
259
+ if attributes.key?(:'imap_host')
260
+ self.imap_host = attributes[:'imap_host']
261
+ else
262
+ self.imap_host = nil
263
+ end
264
+
265
+ if attributes.key?(:'imap_port')
266
+ self.imap_port = attributes[:'imap_port']
267
+ else
268
+ self.imap_port = nil
269
+ end
270
+
271
+ if attributes.key?(:'imap_security')
272
+ self.imap_security = attributes[:'imap_security']
273
+ else
274
+ self.imap_security = nil
275
+ end
276
+
277
+ if attributes.key?(:'min_gap_minutes')
278
+ self.min_gap_minutes = attributes[:'min_gap_minutes']
279
+ else
280
+ self.min_gap_minutes = nil
281
+ end
282
+
283
+ if attributes.key?(:'object')
284
+ self.object = attributes[:'object']
285
+ end
286
+
287
+ if attributes.key?(:'reply_to')
288
+ self.reply_to = attributes[:'reply_to']
289
+ else
290
+ self.reply_to = nil
291
+ end
292
+
293
+ if attributes.key?(:'reputation')
294
+ self.reputation = attributes[:'reputation']
295
+ else
296
+ self.reputation = nil
297
+ end
298
+
299
+ if attributes.key?(:'sending_domain_id')
300
+ self.sending_domain_id = attributes[:'sending_domain_id']
301
+ else
302
+ self.sending_domain_id = nil
303
+ end
304
+
305
+ if attributes.key?(:'signature_html')
306
+ self.signature_html = attributes[:'signature_html']
307
+ else
308
+ self.signature_html = nil
309
+ end
310
+
311
+ if attributes.key?(:'smtp_host')
312
+ self.smtp_host = attributes[:'smtp_host']
313
+ else
314
+ self.smtp_host = nil
315
+ end
316
+
317
+ if attributes.key?(:'smtp_port')
318
+ self.smtp_port = attributes[:'smtp_port']
319
+ else
320
+ self.smtp_port = nil
321
+ end
322
+
323
+ if attributes.key?(:'smtp_security')
324
+ self.smtp_security = attributes[:'smtp_security']
325
+ else
326
+ self.smtp_security = nil
327
+ end
328
+
329
+ if attributes.key?(:'state')
330
+ self.state = attributes[:'state']
331
+ else
332
+ self.state = nil
333
+ end
334
+
335
+ if attributes.key?(:'transport_mode')
336
+ self.transport_mode = attributes[:'transport_mode']
337
+ else
338
+ self.transport_mode = nil
339
+ end
340
+
341
+ if attributes.key?(:'transport_provider')
342
+ self.transport_provider = attributes[:'transport_provider']
343
+ else
344
+ self.transport_provider = nil
345
+ end
346
+
347
+ if attributes.key?(:'updated_at')
348
+ self.updated_at = attributes[:'updated_at']
349
+ end
350
+
351
+ if attributes.key?(:'usage')
352
+ self.usage = attributes[:'usage']
353
+ end
354
+
355
+ if attributes.key?(:'warmup')
356
+ self.warmup = attributes[:'warmup']
357
+ end
358
+ end
359
+
360
+ # Show invalid properties with the reasons. Usually used together with valid?
361
+ # @return Array for valid properties with the reasons
362
+ def list_invalid_properties
363
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
364
+ invalid_properties = Array.new
365
+ if @daily_limit.nil?
366
+ invalid_properties.push('invalid value for "daily_limit", daily_limit cannot be nil.')
367
+ end
368
+
369
+ if @daily_limit < 0
370
+ invalid_properties.push('invalid value for "daily_limit", must be greater than or equal to 0.')
371
+ end
372
+
373
+ if @from_email.nil?
374
+ invalid_properties.push('invalid value for "from_email", from_email cannot be nil.')
375
+ end
376
+
377
+ if @from_name.nil?
378
+ invalid_properties.push('invalid value for "from_name", from_name cannot be nil.')
379
+ end
380
+
381
+ if @id.nil?
382
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
383
+ end
384
+
385
+ if @imap_port > 65535
386
+ invalid_properties.push('invalid value for "imap_port", must be smaller than or equal to 65535.')
387
+ end
388
+
389
+ if @imap_port < 1
390
+ invalid_properties.push('invalid value for "imap_port", must be greater than or equal to 1.')
391
+ end
392
+
393
+ if @min_gap_minutes.nil?
394
+ invalid_properties.push('invalid value for "min_gap_minutes", min_gap_minutes cannot be nil.')
395
+ end
396
+
397
+ if @min_gap_minutes < 0
398
+ invalid_properties.push('invalid value for "min_gap_minutes", must be greater than or equal to 0.')
399
+ end
400
+
401
+ if @reputation.nil?
402
+ invalid_properties.push('invalid value for "reputation", reputation cannot be nil.')
403
+ end
404
+
405
+ if @sending_domain_id.nil?
406
+ invalid_properties.push('invalid value for "sending_domain_id", sending_domain_id cannot be nil.')
407
+ end
408
+
409
+ if @smtp_port > 65535
410
+ invalid_properties.push('invalid value for "smtp_port", must be smaller than or equal to 65535.')
411
+ end
412
+
413
+ if @smtp_port < 1
414
+ invalid_properties.push('invalid value for "smtp_port", must be greater than or equal to 1.')
415
+ end
416
+
417
+ if @state.nil?
418
+ invalid_properties.push('invalid value for "state", state cannot be nil.')
419
+ end
420
+
421
+ if @transport_mode.nil?
422
+ invalid_properties.push('invalid value for "transport_mode", transport_mode cannot be nil.')
423
+ end
424
+
425
+ invalid_properties
426
+ end
427
+
428
+ # Check to see if the all the properties in the model are valid
429
+ # @return true if the model is valid
430
+ def valid?
431
+ warn '[DEPRECATED] the `valid?` method is obsolete'
432
+ return false if @daily_limit.nil?
433
+ return false if @daily_limit < 0
434
+ return false if @from_email.nil?
435
+ return false if @from_name.nil?
436
+ return false if @id.nil?
437
+ return false if @imap_port > 65535
438
+ return false if @imap_port < 1
439
+ imap_security_validator = EnumAttributeValidator.new('String', ["ssl", "tls", "none"])
440
+ return false unless imap_security_validator.valid?(@imap_security)
441
+ return false if @min_gap_minutes.nil?
442
+ return false if @min_gap_minutes < 0
443
+ return false if @reputation.nil?
444
+ reputation_validator = EnumAttributeValidator.new('String', ["good", "warning", "bad"])
445
+ return false unless reputation_validator.valid?(@reputation)
446
+ return false if @sending_domain_id.nil?
447
+ return false if @smtp_port > 65535
448
+ return false if @smtp_port < 1
449
+ smtp_security_validator = EnumAttributeValidator.new('String', ["ssl", "tls", "none"])
450
+ return false unless smtp_security_validator.valid?(@smtp_security)
451
+ return false if @state.nil?
452
+ state_validator = EnumAttributeValidator.new('String', ["healthy", "throttled", "paused"])
453
+ return false unless state_validator.valid?(@state)
454
+ return false if @transport_mode.nil?
455
+ transport_mode_validator = EnumAttributeValidator.new('String', ["smtp", "provider_api", "self_hosted", "voice"])
456
+ return false unless transport_mode_validator.valid?(@transport_mode)
457
+ true
458
+ end
459
+
460
+ # Custom attribute writer method with validation
461
+ # @param [Object] daily_limit Value to be assigned
462
+ def daily_limit=(daily_limit)
463
+ if daily_limit.nil?
464
+ fail ArgumentError, 'daily_limit cannot be nil'
465
+ end
466
+
467
+ if daily_limit < 0
468
+ fail ArgumentError, 'invalid value for "daily_limit", must be greater than or equal to 0.'
469
+ end
470
+
471
+ @daily_limit = daily_limit
472
+ end
473
+
474
+ # Custom attribute writer method with validation
475
+ # @param [Object] imap_port Value to be assigned
476
+ def imap_port=(imap_port)
477
+ if !imap_port.nil? && imap_port > 65535
478
+ fail ArgumentError, 'invalid value for "imap_port", must be smaller than or equal to 65535.'
479
+ end
480
+
481
+ if !imap_port.nil? && imap_port < 1
482
+ fail ArgumentError, 'invalid value for "imap_port", must be greater than or equal to 1.'
483
+ end
484
+
485
+ @imap_port = imap_port
486
+ end
487
+
488
+ # Custom attribute writer method checking allowed values (enum).
489
+ # @param [Object] imap_security Object to be assigned
490
+ def imap_security=(imap_security)
491
+ validator = EnumAttributeValidator.new('String', ["ssl", "tls", "none"])
492
+ unless validator.valid?(imap_security)
493
+ fail ArgumentError, "invalid value for \"imap_security\", must be one of #{validator.allowable_values}."
494
+ end
495
+ @imap_security = imap_security
496
+ end
497
+
498
+ # Custom attribute writer method with validation
499
+ # @param [Object] min_gap_minutes Value to be assigned
500
+ def min_gap_minutes=(min_gap_minutes)
501
+ if min_gap_minutes.nil?
502
+ fail ArgumentError, 'min_gap_minutes cannot be nil'
503
+ end
504
+
505
+ if min_gap_minutes < 0
506
+ fail ArgumentError, 'invalid value for "min_gap_minutes", must be greater than or equal to 0.'
507
+ end
508
+
509
+ @min_gap_minutes = min_gap_minutes
510
+ end
511
+
512
+ # Custom attribute writer method checking allowed values (enum).
513
+ # @param [Object] reputation Object to be assigned
514
+ def reputation=(reputation)
515
+ validator = EnumAttributeValidator.new('String', ["good", "warning", "bad"])
516
+ unless validator.valid?(reputation)
517
+ fail ArgumentError, "invalid value for \"reputation\", must be one of #{validator.allowable_values}."
518
+ end
519
+ @reputation = reputation
520
+ end
521
+
522
+ # Custom attribute writer method with validation
523
+ # @param [Object] smtp_port Value to be assigned
524
+ def smtp_port=(smtp_port)
525
+ if !smtp_port.nil? && smtp_port > 65535
526
+ fail ArgumentError, 'invalid value for "smtp_port", must be smaller than or equal to 65535.'
527
+ end
528
+
529
+ if !smtp_port.nil? && smtp_port < 1
530
+ fail ArgumentError, 'invalid value for "smtp_port", must be greater than or equal to 1.'
531
+ end
532
+
533
+ @smtp_port = smtp_port
534
+ end
535
+
536
+ # Custom attribute writer method checking allowed values (enum).
537
+ # @param [Object] smtp_security Object to be assigned
538
+ def smtp_security=(smtp_security)
539
+ validator = EnumAttributeValidator.new('String', ["ssl", "tls", "none"])
540
+ unless validator.valid?(smtp_security)
541
+ fail ArgumentError, "invalid value for \"smtp_security\", must be one of #{validator.allowable_values}."
542
+ end
543
+ @smtp_security = smtp_security
544
+ end
545
+
546
+ # Custom attribute writer method checking allowed values (enum).
547
+ # @param [Object] state Object to be assigned
548
+ def state=(state)
549
+ validator = EnumAttributeValidator.new('String', ["healthy", "throttled", "paused"])
550
+ unless validator.valid?(state)
551
+ fail ArgumentError, "invalid value for \"state\", must be one of #{validator.allowable_values}."
552
+ end
553
+ @state = state
554
+ end
555
+
556
+ # Custom attribute writer method checking allowed values (enum).
557
+ # @param [Object] transport_mode Object to be assigned
558
+ def transport_mode=(transport_mode)
559
+ validator = EnumAttributeValidator.new('String', ["smtp", "provider_api", "self_hosted", "voice"])
560
+ unless validator.valid?(transport_mode)
561
+ fail ArgumentError, "invalid value for \"transport_mode\", must be one of #{validator.allowable_values}."
562
+ end
563
+ @transport_mode = transport_mode
564
+ end
565
+
566
+ # Checks equality by comparing each attribute.
567
+ # @param [Object] Object to be compared
568
+ def ==(o)
569
+ return true if self.equal?(o)
570
+ self.class == o.class &&
571
+ archived_at == o.archived_at &&
572
+ bcc_crm_email == o.bcc_crm_email &&
573
+ client_label == o.client_label &&
574
+ created_at == o.created_at &&
575
+ daily_limit == o.daily_limit &&
576
+ from_email == o.from_email &&
577
+ from_name == o.from_name &&
578
+ health_updated_at == o.health_updated_at &&
579
+ id == o.id &&
580
+ imap_host == o.imap_host &&
581
+ imap_port == o.imap_port &&
582
+ imap_security == o.imap_security &&
583
+ min_gap_minutes == o.min_gap_minutes &&
584
+ object == o.object &&
585
+ reply_to == o.reply_to &&
586
+ reputation == o.reputation &&
587
+ sending_domain_id == o.sending_domain_id &&
588
+ signature_html == o.signature_html &&
589
+ smtp_host == o.smtp_host &&
590
+ smtp_port == o.smtp_port &&
591
+ smtp_security == o.smtp_security &&
592
+ state == o.state &&
593
+ transport_mode == o.transport_mode &&
594
+ transport_provider == o.transport_provider &&
595
+ updated_at == o.updated_at &&
596
+ usage == o.usage &&
597
+ warmup == o.warmup
598
+ end
599
+
600
+ # @see the `==` method
601
+ # @param [Object] Object to be compared
602
+ def eql?(o)
603
+ self == o
604
+ end
605
+
606
+ # Calculates hash code according to all attributes.
607
+ # @return [Integer] Hash code
608
+ def hash
609
+ [archived_at, bcc_crm_email, client_label, created_at, daily_limit, from_email, from_name, health_updated_at, id, imap_host, imap_port, imap_security, min_gap_minutes, object, reply_to, reputation, sending_domain_id, signature_html, smtp_host, smtp_port, smtp_security, state, transport_mode, transport_provider, updated_at, usage, warmup].hash
610
+ end
611
+
612
+ # Builds the object from hash
613
+ # @param [Hash] attributes Model attributes in the form of hash
614
+ # @return [Object] Returns the model itself
615
+ def self.build_from_hash(attributes)
616
+ return nil unless attributes.is_a?(Hash)
617
+ attributes = attributes.transform_keys(&:to_sym)
618
+ transformed_hash = {}
619
+ openapi_types.each_pair do |key, type|
620
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
621
+ transformed_hash["#{key}"] = nil
622
+ elsif type =~ /\AArray<(.*)>/i
623
+ # check to ensure the input is an array given that the attribute
624
+ # is documented as an array but the input is not
625
+ if attributes[attribute_map[key]].is_a?(Array)
626
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
627
+ end
628
+ elsif !attributes[attribute_map[key]].nil?
629
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
630
+ end
631
+ end
632
+ new(transformed_hash)
633
+ end
634
+
635
+ # Deserializes the data based on type
636
+ # @param string type Data type
637
+ # @param string value Value to be deserialized
638
+ # @return [Object] Deserialized data
639
+ def self._deserialize(type, value)
640
+ case type.to_sym
641
+ when :Time
642
+ Time.parse(value)
643
+ when :Date
644
+ Date.parse(value)
645
+ when :String
646
+ value.to_s
647
+ when :Integer
648
+ value.to_i
649
+ when :Float
650
+ value.to_f
651
+ when :Boolean
652
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
653
+ true
654
+ else
655
+ false
656
+ end
657
+ when :Object
658
+ # generic object (usually a Hash), return directly
659
+ value
660
+ when /\AArray<(?<inner_type>.+)>\z/
661
+ inner_type = Regexp.last_match[:inner_type]
662
+ value.map { |v| _deserialize(inner_type, v) }
663
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
664
+ k_type = Regexp.last_match[:k_type]
665
+ v_type = Regexp.last_match[:v_type]
666
+ {}.tap do |hash|
667
+ value.each do |k, v|
668
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
669
+ end
670
+ end
671
+ else # model
672
+ # models (e.g. Pet) or oneOf
673
+ klass = Norbelys.const_get(type)
674
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
675
+ end
676
+ end
677
+
678
+ # Returns the string representation of the object
679
+ # @return [String] String presentation of the object
680
+ def to_s
681
+ to_hash.to_s
682
+ end
683
+
684
+ # to_body is an alias to to_hash (backward compatibility)
685
+ # @return [Hash] Returns the object in the form of hash
686
+ def to_body
687
+ to_hash
688
+ end
689
+
690
+ # Returns the object in the form of hash
691
+ # @return [Hash] Returns the object in the form of hash
692
+ def to_hash
693
+ hash = {}
694
+ self.class.attribute_map.each_pair do |attr, param|
695
+ value = self.send(attr)
696
+ if value.nil?
697
+ is_nullable = self.class.openapi_nullable.include?(attr)
698
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
699
+ end
700
+
701
+ hash[param] = _to_hash(value)
702
+ end
703
+ hash
704
+ end
705
+
706
+ # Outputs non-array value in the form of hash
707
+ # For object, use to_hash. Otherwise, just return the value
708
+ # @param [Object] value Any valid value
709
+ # @return [Hash] Returns the value in the form of hash
710
+ def _to_hash(value)
711
+ if value.is_a?(Array)
712
+ value.compact.map { |v| _to_hash(v) }
713
+ elsif value.is_a?(Hash)
714
+ {}.tap do |hash|
715
+ value.each { |k, v| hash[k] = _to_hash(v) }
716
+ end
717
+ elsif value.respond_to? :to_hash
718
+ value.to_hash
719
+ else
720
+ value
721
+ end
722
+ end
723
+
724
+ end
725
+
726
+ end