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,488 @@
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 PersonListItem
18
+ attr_accessor :archived_at
19
+
20
+ attr_accessor :created_at
21
+
22
+ attr_accessor :custom_fields
23
+
24
+ attr_accessor :email
25
+
26
+ attr_accessor :email_domain
27
+
28
+ attr_accessor :family_name
29
+
30
+ attr_accessor :given_name
31
+
32
+ # The person id.
33
+ attr_accessor :id
34
+
35
+ attr_accessor :import_id
36
+
37
+ attr_accessor :last_activity_at
38
+
39
+ attr_accessor :object
40
+
41
+ attr_accessor :score
42
+
43
+ # Where the person came from: `csv_import`, `manual`, `api`, `form`, `inbound`, `integration`.
44
+ attr_accessor :source
45
+
46
+ # Lifecycle status: `active`, `replied`, `bounced`, `unsubscribed`, `finished`.
47
+ attr_accessor :status
48
+
49
+ attr_accessor :telephone
50
+
51
+ attr_accessor :telephones
52
+
53
+ attr_accessor :updated_at
54
+
55
+ class EnumAttributeValidator
56
+ attr_reader :datatype
57
+ attr_reader :allowable_values
58
+
59
+ def initialize(datatype, allowable_values)
60
+ @allowable_values = allowable_values.map do |value|
61
+ case datatype.to_s
62
+ when /Integer/i
63
+ value.to_i
64
+ when /Float/i
65
+ value.to_f
66
+ else
67
+ value
68
+ end
69
+ end
70
+ end
71
+
72
+ def valid?(value)
73
+ !value || allowable_values.include?(value)
74
+ end
75
+ end
76
+
77
+ # Attribute mapping from ruby-style variable name to JSON key.
78
+ def self.attribute_map
79
+ {
80
+ :'archived_at' => :'archivedAt',
81
+ :'created_at' => :'createdAt',
82
+ :'custom_fields' => :'customFields',
83
+ :'email' => :'email',
84
+ :'email_domain' => :'emailDomain',
85
+ :'family_name' => :'familyName',
86
+ :'given_name' => :'givenName',
87
+ :'id' => :'id',
88
+ :'import_id' => :'importId',
89
+ :'last_activity_at' => :'lastActivityAt',
90
+ :'object' => :'object',
91
+ :'score' => :'score',
92
+ :'source' => :'source',
93
+ :'status' => :'status',
94
+ :'telephone' => :'telephone',
95
+ :'telephones' => :'telephones',
96
+ :'updated_at' => :'updatedAt'
97
+ }
98
+ end
99
+
100
+ # Returns all the JSON keys this model knows about
101
+ def self.acceptable_attributes
102
+ attribute_map.values
103
+ end
104
+
105
+ # Attribute type mapping.
106
+ def self.openapi_types
107
+ {
108
+ :'archived_at' => :'Object',
109
+ :'created_at' => :'Object',
110
+ :'custom_fields' => :'Hash<String, Object>',
111
+ :'email' => :'String',
112
+ :'email_domain' => :'String',
113
+ :'family_name' => :'String',
114
+ :'given_name' => :'String',
115
+ :'id' => :'String',
116
+ :'import_id' => :'String',
117
+ :'last_activity_at' => :'Object',
118
+ :'object' => :'Object',
119
+ :'score' => :'Integer',
120
+ :'source' => :'String',
121
+ :'status' => :'String',
122
+ :'telephone' => :'String',
123
+ :'telephones' => :'Array<String>',
124
+ :'updated_at' => :'Object'
125
+ }
126
+ end
127
+
128
+ # List of attributes with nullable: true
129
+ def self.openapi_nullable
130
+ Set.new([
131
+ :'archived_at',
132
+ :'created_at',
133
+ :'custom_fields',
134
+ :'email',
135
+ :'email_domain',
136
+ :'family_name',
137
+ :'given_name',
138
+ :'import_id',
139
+ :'last_activity_at',
140
+ :'object',
141
+ :'score',
142
+ :'telephone',
143
+ :'telephones',
144
+ :'updated_at'
145
+ ])
146
+ end
147
+
148
+ # Initializes the object
149
+ # @param [Hash] attributes Model attributes in the form of hash
150
+ def initialize(attributes = {})
151
+ if (!attributes.is_a?(Hash))
152
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Norbelys::PersonListItem` initialize method"
153
+ end
154
+
155
+ # check to see if the attribute exists and convert string to symbol for hash key
156
+ attributes = attributes.each_with_object({}) { |(k, v), h|
157
+ if (!self.class.attribute_map.key?(k.to_sym))
158
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Norbelys::PersonListItem`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
159
+ end
160
+ h[k.to_sym] = v
161
+ }
162
+
163
+ if attributes.key?(:'archived_at')
164
+ self.archived_at = attributes[:'archived_at']
165
+ end
166
+
167
+ if attributes.key?(:'created_at')
168
+ self.created_at = attributes[:'created_at']
169
+ end
170
+
171
+ if attributes.key?(:'custom_fields')
172
+ if (value = attributes[:'custom_fields']).is_a?(Hash)
173
+ self.custom_fields = value
174
+ end
175
+ else
176
+ self.custom_fields = nil
177
+ end
178
+
179
+ if attributes.key?(:'email')
180
+ self.email = attributes[:'email']
181
+ else
182
+ self.email = nil
183
+ end
184
+
185
+ if attributes.key?(:'email_domain')
186
+ self.email_domain = attributes[:'email_domain']
187
+ else
188
+ self.email_domain = nil
189
+ end
190
+
191
+ if attributes.key?(:'family_name')
192
+ self.family_name = attributes[:'family_name']
193
+ else
194
+ self.family_name = nil
195
+ end
196
+
197
+ if attributes.key?(:'given_name')
198
+ self.given_name = attributes[:'given_name']
199
+ else
200
+ self.given_name = nil
201
+ end
202
+
203
+ if attributes.key?(:'id')
204
+ self.id = attributes[:'id']
205
+ else
206
+ self.id = nil
207
+ end
208
+
209
+ if attributes.key?(:'import_id')
210
+ self.import_id = attributes[:'import_id']
211
+ else
212
+ self.import_id = nil
213
+ end
214
+
215
+ if attributes.key?(:'last_activity_at')
216
+ self.last_activity_at = attributes[:'last_activity_at']
217
+ end
218
+
219
+ if attributes.key?(:'object')
220
+ self.object = attributes[:'object']
221
+ end
222
+
223
+ if attributes.key?(:'score')
224
+ self.score = attributes[:'score']
225
+ else
226
+ self.score = nil
227
+ end
228
+
229
+ if attributes.key?(:'source')
230
+ self.source = attributes[:'source']
231
+ else
232
+ self.source = nil
233
+ end
234
+
235
+ if attributes.key?(:'status')
236
+ self.status = attributes[:'status']
237
+ else
238
+ self.status = nil
239
+ end
240
+
241
+ if attributes.key?(:'telephone')
242
+ self.telephone = attributes[:'telephone']
243
+ else
244
+ self.telephone = nil
245
+ end
246
+
247
+ if attributes.key?(:'telephones')
248
+ if (value = attributes[:'telephones']).is_a?(Array)
249
+ self.telephones = value
250
+ end
251
+ else
252
+ self.telephones = nil
253
+ end
254
+
255
+ if attributes.key?(:'updated_at')
256
+ self.updated_at = attributes[:'updated_at']
257
+ end
258
+ end
259
+
260
+ # Show invalid properties with the reasons. Usually used together with valid?
261
+ # @return Array for valid properties with the reasons
262
+ def list_invalid_properties
263
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
264
+ invalid_properties = Array.new
265
+ if @id.nil?
266
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
267
+ end
268
+
269
+ if @score > 100
270
+ invalid_properties.push('invalid value for "score", must be smaller than or equal to 100.')
271
+ end
272
+
273
+ if @score < 0
274
+ invalid_properties.push('invalid value for "score", must be greater than or equal to 0.')
275
+ end
276
+
277
+ if @source.nil?
278
+ invalid_properties.push('invalid value for "source", source cannot be nil.')
279
+ end
280
+
281
+ if @status.nil?
282
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
283
+ end
284
+
285
+ invalid_properties
286
+ end
287
+
288
+ # Check to see if the all the properties in the model are valid
289
+ # @return true if the model is valid
290
+ def valid?
291
+ warn '[DEPRECATED] the `valid?` method is obsolete'
292
+ return false if @id.nil?
293
+ return false if @score > 100
294
+ return false if @score < 0
295
+ return false if @source.nil?
296
+ source_validator = EnumAttributeValidator.new('String', ["csv_import", "manual", "api", "form", "inbound", "integration"])
297
+ return false unless source_validator.valid?(@source)
298
+ return false if @status.nil?
299
+ status_validator = EnumAttributeValidator.new('String', ["active", "replied", "bounced", "unsubscribed", "finished"])
300
+ return false unless status_validator.valid?(@status)
301
+ true
302
+ end
303
+
304
+ # Custom attribute writer method with validation
305
+ # @param [Object] score Value to be assigned
306
+ def score=(score)
307
+ if !score.nil? && score > 100
308
+ fail ArgumentError, 'invalid value for "score", must be smaller than or equal to 100.'
309
+ end
310
+
311
+ if !score.nil? && score < 0
312
+ fail ArgumentError, 'invalid value for "score", must be greater than or equal to 0.'
313
+ end
314
+
315
+ @score = score
316
+ end
317
+
318
+ # Custom attribute writer method checking allowed values (enum).
319
+ # @param [Object] source Object to be assigned
320
+ def source=(source)
321
+ validator = EnumAttributeValidator.new('String', ["csv_import", "manual", "api", "form", "inbound", "integration"])
322
+ unless validator.valid?(source)
323
+ fail ArgumentError, "invalid value for \"source\", must be one of #{validator.allowable_values}."
324
+ end
325
+ @source = source
326
+ end
327
+
328
+ # Custom attribute writer method checking allowed values (enum).
329
+ # @param [Object] status Object to be assigned
330
+ def status=(status)
331
+ validator = EnumAttributeValidator.new('String', ["active", "replied", "bounced", "unsubscribed", "finished"])
332
+ unless validator.valid?(status)
333
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
334
+ end
335
+ @status = status
336
+ end
337
+
338
+ # Checks equality by comparing each attribute.
339
+ # @param [Object] Object to be compared
340
+ def ==(o)
341
+ return true if self.equal?(o)
342
+ self.class == o.class &&
343
+ archived_at == o.archived_at &&
344
+ created_at == o.created_at &&
345
+ custom_fields == o.custom_fields &&
346
+ email == o.email &&
347
+ email_domain == o.email_domain &&
348
+ family_name == o.family_name &&
349
+ given_name == o.given_name &&
350
+ id == o.id &&
351
+ import_id == o.import_id &&
352
+ last_activity_at == o.last_activity_at &&
353
+ object == o.object &&
354
+ score == o.score &&
355
+ source == o.source &&
356
+ status == o.status &&
357
+ telephone == o.telephone &&
358
+ telephones == o.telephones &&
359
+ updated_at == o.updated_at
360
+ end
361
+
362
+ # @see the `==` method
363
+ # @param [Object] Object to be compared
364
+ def eql?(o)
365
+ self == o
366
+ end
367
+
368
+ # Calculates hash code according to all attributes.
369
+ # @return [Integer] Hash code
370
+ def hash
371
+ [archived_at, created_at, custom_fields, email, email_domain, family_name, given_name, id, import_id, last_activity_at, object, score, source, status, telephone, telephones, updated_at].hash
372
+ end
373
+
374
+ # Builds the object from hash
375
+ # @param [Hash] attributes Model attributes in the form of hash
376
+ # @return [Object] Returns the model itself
377
+ def self.build_from_hash(attributes)
378
+ return nil unless attributes.is_a?(Hash)
379
+ attributes = attributes.transform_keys(&:to_sym)
380
+ transformed_hash = {}
381
+ openapi_types.each_pair do |key, type|
382
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
383
+ transformed_hash["#{key}"] = nil
384
+ elsif type =~ /\AArray<(.*)>/i
385
+ # check to ensure the input is an array given that the attribute
386
+ # is documented as an array but the input is not
387
+ if attributes[attribute_map[key]].is_a?(Array)
388
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
389
+ end
390
+ elsif !attributes[attribute_map[key]].nil?
391
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
392
+ end
393
+ end
394
+ new(transformed_hash)
395
+ end
396
+
397
+ # Deserializes the data based on type
398
+ # @param string type Data type
399
+ # @param string value Value to be deserialized
400
+ # @return [Object] Deserialized data
401
+ def self._deserialize(type, value)
402
+ case type.to_sym
403
+ when :Time
404
+ Time.parse(value)
405
+ when :Date
406
+ Date.parse(value)
407
+ when :String
408
+ value.to_s
409
+ when :Integer
410
+ value.to_i
411
+ when :Float
412
+ value.to_f
413
+ when :Boolean
414
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
415
+ true
416
+ else
417
+ false
418
+ end
419
+ when :Object
420
+ # generic object (usually a Hash), return directly
421
+ value
422
+ when /\AArray<(?<inner_type>.+)>\z/
423
+ inner_type = Regexp.last_match[:inner_type]
424
+ value.map { |v| _deserialize(inner_type, v) }
425
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
426
+ k_type = Regexp.last_match[:k_type]
427
+ v_type = Regexp.last_match[:v_type]
428
+ {}.tap do |hash|
429
+ value.each do |k, v|
430
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
431
+ end
432
+ end
433
+ else # model
434
+ # models (e.g. Pet) or oneOf
435
+ klass = Norbelys.const_get(type)
436
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
437
+ end
438
+ end
439
+
440
+ # Returns the string representation of the object
441
+ # @return [String] String presentation of the object
442
+ def to_s
443
+ to_hash.to_s
444
+ end
445
+
446
+ # to_body is an alias to to_hash (backward compatibility)
447
+ # @return [Hash] Returns the object in the form of hash
448
+ def to_body
449
+ to_hash
450
+ end
451
+
452
+ # Returns the object in the form of hash
453
+ # @return [Hash] Returns the object in the form of hash
454
+ def to_hash
455
+ hash = {}
456
+ self.class.attribute_map.each_pair do |attr, param|
457
+ value = self.send(attr)
458
+ if value.nil?
459
+ is_nullable = self.class.openapi_nullable.include?(attr)
460
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
461
+ end
462
+
463
+ hash[param] = _to_hash(value)
464
+ end
465
+ hash
466
+ end
467
+
468
+ # Outputs non-array value in the form of hash
469
+ # For object, use to_hash. Otherwise, just return the value
470
+ # @param [Object] value Any valid value
471
+ # @return [Hash] Returns the value in the form of hash
472
+ def _to_hash(value)
473
+ if value.is_a?(Array)
474
+ value.compact.map { |v| _to_hash(v) }
475
+ elsif value.is_a?(Hash)
476
+ {}.tap do |hash|
477
+ value.each { |k, v| hash[k] = _to_hash(v) }
478
+ end
479
+ elsif value.respond_to? :to_hash
480
+ value.to_hash
481
+ else
482
+ value
483
+ end
484
+ end
485
+
486
+ end
487
+
488
+ end