lockally 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (571) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +166 -117
  3. data/docs/AdminApi.md +33 -33
  4. data/docs/{V1AdminLoginPost200Response.md → AdminLogin200Response.md} +2 -2
  5. data/docs/{V1AdminLoginPostRequest.md → AdminLoginRequest.md} +2 -2
  6. data/docs/AdminsApi.md +76 -76
  7. data/docs/AgentSendResult.md +22 -0
  8. data/docs/AgentsApi.md +247 -247
  9. data/docs/AiApi.md +69 -69
  10. data/docs/AiConfig.md +26 -0
  11. data/docs/AiConfigUpdate.md +20 -0
  12. data/docs/AliasesApi.md +59 -59
  13. data/docs/ApiKeysApi.md +59 -59
  14. data/docs/BatchResult.md +1 -1
  15. data/docs/Calendar.md +8 -0
  16. data/docs/CalendarsApi.md +73 -0
  17. data/docs/ContactLookup.md +26 -0
  18. data/docs/ContactLookupContact.md +28 -0
  19. data/docs/ContactLookupHistory.md +22 -0
  20. data/docs/CreateAiUnitsCheckout200Response.md +22 -0
  21. data/docs/{V1AliasesPostRequest.md → CreateAliasRequest.md} +2 -2
  22. data/docs/{V1ApiKeysPost201Response.md → CreateApiKey201Response.md} +2 -2
  23. data/docs/CreateApiKeyRequest.md +22 -0
  24. data/docs/{V1DomainsPostRequest.md → CreateDomainRequest.md} +2 -2
  25. data/docs/{V1MailboxesPostRequest.md → CreateMailboxRequest.md} +2 -2
  26. data/docs/{V1SuppressionsPostRequest.md → CreateSuppressionRequest.md} +2 -2
  27. data/docs/{V1WebhooksPostRequest.md → CreateWebhookRequest.md} +2 -2
  28. data/docs/DomainsApi.md +339 -60
  29. data/docs/Draft.md +44 -0
  30. data/docs/DraftList.md +18 -0
  31. data/docs/DraftResult.md +26 -0
  32. data/docs/DraftsApi.md +115 -115
  33. data/docs/{V1MailboxesEmailExportPost201Response.md → ExportMailbox201Response.md} +2 -2
  34. data/docs/GetCalendarOverview200Response.md +34 -0
  35. data/docs/GetCalendarOverview200ResponseActivityInner.md +24 -0
  36. data/docs/{V1AdminMeGet200Response.md → GetCurrentAdmin200Response.md} +2 -2
  37. data/docs/{V1UsageGet200Response.md → GetUsage200Response.md} +2 -2
  38. data/docs/GetUserInsights200Response.md +2 -0
  39. data/docs/HealthApi.md +11 -11
  40. data/docs/{HealthzGet200Response.md → HealthCheck200Response.md} +2 -2
  41. data/docs/Inbox.md +24 -0
  42. data/docs/InboxList.md +18 -0
  43. data/docs/{V1AdminsPostRequest.md → InviteAdminRequest.md} +2 -2
  44. data/docs/{V1AdminsGet200Response.md → ListAdmins200Response.md} +2 -2
  45. data/docs/{V1AliasesGet200Response.md → ListAliases200Response.md} +2 -2
  46. data/docs/{V1ApiKeysGet200Response.md → ListApiKeys200Response.md} +2 -2
  47. data/docs/{V1DomainsGet200Response.md → ListDomains200Response.md} +2 -2
  48. data/docs/{V1MailboxesGet200Response.md → ListMailboxes200Response.md} +2 -2
  49. data/docs/{V1MessagesGet200Response.md → ListMessages200Response.md} +2 -2
  50. data/docs/{V1SuppressionsGet200Response.md → ListSuppressions200Response.md} +2 -2
  51. data/docs/{V1TemplatesGet200Response.md → ListTemplates200Response.md} +2 -2
  52. data/docs/{V1VacationGet200Response.md → ListVacationResponders200Response.md} +2 -2
  53. data/docs/{V1WebhooksGet200Response.md → ListWebhooks200Response.md} +2 -2
  54. data/docs/MailboxGrant.md +20 -0
  55. data/docs/MailboxGrantList.md +18 -0
  56. data/docs/MailboxesApi.md +204 -204
  57. data/docs/MarkReadResult.md +18 -0
  58. data/docs/MessageDetail.md +52 -0
  59. data/docs/ReturnPath.md +28 -0
  60. data/docs/ReturnPathCheck.md +20 -0
  61. data/docs/SendApi.md +121 -121
  62. data/docs/SendEmail200Response.md +24 -0
  63. data/docs/{V1SendPost202Response.md → SendEmail202Response.md} +2 -2
  64. data/docs/{V1SendBatchPost200Response.md → SendEmailBatch200Response.md} +2 -2
  65. data/docs/{V1SendBatchPostRequest.md → SendEmailBatchRequest.md} +2 -2
  66. data/docs/{V1SendPostRequest.md → SendEmailRequest.md} +7 -3
  67. data/docs/{V1SendPostRequestAttachmentsInner.md → SendEmailRequestAttachmentsInner.md} +2 -2
  68. data/docs/SendMessage.md +5 -1
  69. data/docs/{V1MailboxesEmailVacationPutRequest.md → SetVacationResponderRequest.md} +2 -2
  70. data/docs/SignupApi.md +4 -4
  71. data/docs/SimulatedInbound.md +22 -0
  72. data/docs/{V1InboxesMailboxMessagesPostRequest.md → StartConversationRequest.md} +2 -2
  73. data/docs/SuppressionsApi.md +75 -75
  74. data/docs/TemplatesApi.md +67 -67
  75. data/docs/TenantApi.md +20 -20
  76. data/docs/TestApi.md +11 -11
  77. data/docs/Thread.md +22 -0
  78. data/docs/ThreadClassification.md +22 -0
  79. data/docs/ThreadList.md +20 -0
  80. data/docs/ThreadMessage.md +40 -0
  81. data/docs/ThreadMessageBody.md +42 -0
  82. data/docs/ThreadMessageBodyAllOfBody.md +22 -0
  83. data/docs/ThreadSummary.md +28 -0
  84. data/docs/{V1AdminsIdPatchRequest.md → UpdateAdminRequest.md} +2 -2
  85. data/docs/{V1MailboxesEmailPatchRequest.md → UpdateMailboxRequest.md} +2 -2
  86. data/docs/{V1WebhooksIdPatchRequest.md → UpdateWebhookRequest.md} +2 -2
  87. data/docs/WebhooksApi.md +63 -63
  88. data/docs/Whoami.md +24 -0
  89. data/lib/lockally/api/add_ons_api.rb +1 -1
  90. data/lib/lockally/api/admin_api.rb +31 -31
  91. data/lib/lockally/api/admins_api.rb +90 -90
  92. data/lib/lockally/api/agents_api.rb +310 -310
  93. data/lib/lockally/api/ai_api.rb +70 -70
  94. data/lib/lockally/api/aliases_api.rb +65 -65
  95. data/lib/lockally/api/api_keys_api.rb +67 -67
  96. data/lib/lockally/api/billing_api.rb +1 -1
  97. data/lib/lockally/api/calendars_api.rb +64 -1
  98. data/lib/lockally/api/contact_lists_api.rb +1 -1
  99. data/lib/lockally/api/contacts_api.rb +1 -1
  100. data/lib/lockally/api/dashboard_api.rb +1 -1
  101. data/lib/lockally/api/directory_api.rb +1 -1
  102. data/lib/lockally/api/distribution_lists_api.rb +1 -1
  103. data/lib/lockally/api/domains_api.rb +314 -62
  104. data/lib/lockally/api/drafts_api.rb +141 -141
  105. data/lib/lockally/api/encryption_api.rb +1 -1
  106. data/lib/lockally/api/health_api.rb +10 -10
  107. data/lib/lockally/api/ip_pools_api.rb +1 -1
  108. data/lib/lockally/api/mailboxes_api.rb +236 -236
  109. data/lib/lockally/api/migrations_api.rb +1 -1
  110. data/lib/lockally/api/resources_api.rb +1 -1
  111. data/lib/lockally/api/send_api.rb +147 -147
  112. data/lib/lockally/api/signup_api.rb +4 -4
  113. data/lib/lockally/api/suppressions_api.rb +88 -88
  114. data/lib/lockally/api/templates_api.rb +70 -70
  115. data/lib/lockally/api/tenant_api.rb +16 -16
  116. data/lib/lockally/api/test_api.rb +10 -10
  117. data/lib/lockally/api/users_api.rb +1 -1
  118. data/lib/lockally/api/webhooks_api.rb +74 -74
  119. data/lib/lockally/api_client.rb +1 -1
  120. data/lib/lockally/api_error.rb +1 -1
  121. data/lib/lockally/api_model_base.rb +1 -1
  122. data/lib/lockally/configuration.rb +1 -1
  123. data/lib/lockally/models/activate_add_on200_response.rb +1 -1
  124. data/lib/lockally/models/add_calendar_member_request.rb +1 -1
  125. data/lib/lockally/models/add_contact_list_member_request.rb +1 -1
  126. data/lib/lockally/models/add_on.rb +1 -1
  127. data/lib/lockally/models/add_shared_member_request.rb +1 -1
  128. data/lib/lockally/models/admin.rb +1 -1
  129. data/lib/lockally/models/admin_full.rb +1 -1
  130. data/lib/lockally/models/{v1_admin_login_post200_response.rb → admin_login200_response.rb} +4 -4
  131. data/lib/lockally/models/{v1_admin_login_post_request.rb → admin_login_request.rb} +4 -4
  132. data/lib/lockally/models/agent_send_result.rb +184 -0
  133. data/lib/lockally/models/ai_config.rb +242 -0
  134. data/lib/lockally/models/ai_config_update.rb +214 -0
  135. data/lib/lockally/models/api_key.rb +1 -1
  136. data/lib/lockally/models/audit_event.rb +1 -1
  137. data/lib/lockally/models/batch_lookup_public_keys200_response.rb +1 -1
  138. data/lib/lockally/models/batch_lookup_public_keys200_response_data_inner.rb +1 -1
  139. data/lib/lockally/models/batch_result.rb +4 -3
  140. data/lib/lockally/models/billing_status.rb +1 -1
  141. data/lib/lockally/models/calendar.rb +68 -4
  142. data/lib/lockally/models/calendar_event.rb +1 -1
  143. data/lib/lockally/models/calendar_integration.rb +1 -1
  144. data/lib/lockally/models/calendar_member.rb +1 -1
  145. data/lib/lockally/models/calendar_policies.rb +1 -1
  146. data/lib/lockally/models/contact.rb +1 -1
  147. data/lib/lockally/models/contact_list.rb +1 -1
  148. data/lib/lockally/models/contact_lookup.rb +235 -0
  149. data/lib/lockally/models/contact_lookup_contact.rb +192 -0
  150. data/lib/lockally/models/contact_lookup_history.rb +166 -0
  151. data/lib/lockally/models/create_ai_units_checkout200_response.rb +199 -0
  152. data/lib/lockally/models/{v1_aliases_post_request.rb → create_alias_request.rb} +4 -4
  153. data/lib/lockally/models/{v1_api_keys_post201_response.rb → create_api_key201_response.rb} +4 -4
  154. data/lib/lockally/models/{v1_api_keys_post_request.rb → create_api_key_request.rb} +20 -8
  155. data/lib/lockally/models/create_billing_checkout200_response.rb +1 -1
  156. data/lib/lockally/models/create_billing_checkout_request.rb +1 -1
  157. data/lib/lockally/models/create_calendar_event_request.rb +1 -1
  158. data/lib/lockally/models/create_calendar_integration_request.rb +1 -1
  159. data/lib/lockally/models/create_calendar_request.rb +1 -1
  160. data/lib/lockally/models/create_contact_list_request.rb +1 -1
  161. data/lib/lockally/models/create_contact_request.rb +1 -1
  162. data/lib/lockally/models/create_dedicated_ip_request_request.rb +1 -1
  163. data/lib/lockally/models/create_distribution_list_request.rb +1 -1
  164. data/lib/lockally/models/{v1_domains_post_request.rb → create_domain_request.rb} +4 -4
  165. data/lib/lockally/models/create_encryption_key201_response.rb +1 -1
  166. data/lib/lockally/models/create_encryption_key_request.rb +1 -1
  167. data/lib/lockally/models/create_encryption_recovery_request.rb +1 -1
  168. data/lib/lockally/models/{v1_mailboxes_post_request.rb → create_mailbox_request.rb} +4 -4
  169. data/lib/lockally/models/create_migration_credential_request.rb +1 -1
  170. data/lib/lockally/models/create_migration_credential_request_credentials.rb +1 -1
  171. data/lib/lockally/models/create_migration_request.rb +1 -1
  172. data/lib/lockally/models/create_resource_request.rb +1 -1
  173. data/lib/lockally/models/{v1_suppressions_post_request.rb → create_suppression_request.rb} +4 -4
  174. data/lib/lockally/models/create_units_checkout200_response.rb +1 -1
  175. data/lib/lockally/models/create_units_checkout_request.rb +1 -1
  176. data/lib/lockally/models/create_user_request.rb +1 -1
  177. data/lib/lockally/models/{v1_webhooks_post_request.rb → create_webhook_request.rb} +4 -4
  178. data/lib/lockally/models/dedicated_ip_request.rb +1 -1
  179. data/lib/lockally/models/directory_permissions.rb +1 -1
  180. data/lib/lockally/models/discover_migration202_response.rb +1 -1
  181. data/lib/lockally/models/distribution_list_detail.rb +1 -1
  182. data/lib/lockally/models/distribution_list_summary.rb +1 -1
  183. data/lib/lockally/models/dns_record.rb +1 -1
  184. data/lib/lockally/models/domain.rb +1 -1
  185. data/lib/lockally/models/draft.rb +413 -0
  186. data/lib/lockally/models/draft_list.rb +166 -0
  187. data/lib/lockally/models/draft_result.rb +260 -0
  188. data/lib/lockally/models/{v1_mailboxes_email_export_post201_response.rb → export_mailbox201_response.rb} +4 -4
  189. data/lib/lockally/models/gal_settings.rb +1 -1
  190. data/lib/lockally/models/get_add_on_status200_response.rb +1 -1
  191. data/lib/lockally/models/get_audit_summary200_response.rb +1 -1
  192. data/lib/lockally/models/get_calendar_overview200_response.rb +228 -0
  193. data/lib/lockally/models/get_calendar_overview200_response_activity_inner.rb +174 -0
  194. data/lib/lockally/models/get_calendar_security200_response.rb +1 -1
  195. data/lib/lockally/models/get_calendar_security200_response_alerts_inner.rb +1 -1
  196. data/lib/lockally/models/get_calendar_security200_response_delegated_access_inner.rb +1 -1
  197. data/lib/lockally/models/get_calendar_security200_response_external_sharing.rb +1 -1
  198. data/lib/lockally/models/get_calendar_security200_response_public_calendar_list_inner.rb +1 -1
  199. data/lib/lockally/models/get_contact_list200_response.rb +1 -1
  200. data/lib/lockally/models/get_contact_list200_response_members_inner.rb +1 -1
  201. data/lib/lockally/models/get_contact_lists200_response.rb +1 -1
  202. data/lib/lockally/models/get_contact_lists200_response_data_inner.rb +1 -1
  203. data/lib/lockally/models/{v1_admin_me_get200_response.rb → get_current_admin200_response.rb} +4 -4
  204. data/lib/lockally/models/get_directory_activity200_response.rb +1 -1
  205. data/lib/lockally/models/get_directory_activity200_response_data_inner.rb +1 -1
  206. data/lib/lockally/models/get_directory_stats200_response.rb +1 -1
  207. data/lib/lockally/models/get_domains_status200_response.rb +1 -1
  208. data/lib/lockally/models/get_domains_status200_response_domains_inner.rb +1 -1
  209. data/lib/lockally/models/get_domains_status200_response_domains_inner_checks_inner.rb +1 -1
  210. data/lib/lockally/models/get_encryption_key200_response.rb +1 -1
  211. data/lib/lockally/models/get_integrations_summary200_response.rb +1 -1
  212. data/lib/lockally/models/get_integrations_summary200_response_api_keys_inner.rb +1 -1
  213. data/lib/lockally/models/get_integrations_summary200_response_webhooks_inner.rb +1 -1
  214. data/lib/lockally/models/get_ip_assignment200_response.rb +1 -1
  215. data/lib/lockally/models/get_security200_response.rb +1 -1
  216. data/lib/lockally/models/get_security200_response_alerts_inner.rb +1 -1
  217. data/lib/lockally/models/get_security200_response_stats_inner.rb +1 -1
  218. data/lib/lockally/models/get_storage200_response.rb +1 -1
  219. data/lib/lockally/models/get_storage200_response_top_mailboxes_inner.rb +1 -1
  220. data/lib/lockally/models/get_storage200_response_top_messages_inner.rb +1 -1
  221. data/lib/lockally/models/{v1_usage_get200_response.rb → get_usage200_response.rb} +4 -4
  222. data/lib/lockally/models/get_user_insights200_response.rb +12 -2
  223. data/lib/lockally/models/{healthz_get200_response.rb → health_check200_response.rb} +4 -4
  224. data/lib/lockally/models/inbox.rb +225 -0
  225. data/lib/lockally/models/inbox_list.rb +166 -0
  226. data/lib/lockally/models/{v1_admins_post_request.rb → invite_admin_request.rb} +4 -4
  227. data/lib/lockally/models/list_add_ons200_response.rb +1 -1
  228. data/lib/lockally/models/{v1_api_keys_get200_response.rb → list_admins200_response.rb} +5 -5
  229. data/lib/lockally/models/list_aliases200_response.rb +166 -0
  230. data/lib/lockally/models/{v1_admins_get200_response.rb → list_api_keys200_response.rb} +5 -5
  231. data/lib/lockally/models/list_calendar_events200_response.rb +1 -1
  232. data/lib/lockally/models/list_calendar_integrations200_response.rb +1 -1
  233. data/lib/lockally/models/list_calendar_members200_response.rb +1 -1
  234. data/lib/lockally/models/list_calendars200_response.rb +1 -1
  235. data/lib/lockally/models/list_contact_lists200_response.rb +1 -1
  236. data/lib/lockally/models/list_contacts200_response.rb +1 -1
  237. data/lib/lockally/models/list_dedicated_ip_requests200_response.rb +1 -1
  238. data/lib/lockally/models/list_distribution_lists200_response.rb +1 -1
  239. data/lib/lockally/models/{v1_domains_get200_response.rb → list_domains200_response.rb} +4 -4
  240. data/lib/lockally/models/{v1_mailboxes_get200_response.rb → list_mailboxes200_response.rb} +4 -4
  241. data/lib/lockally/models/{v1_messages_get200_response.rb → list_messages200_response.rb} +4 -4
  242. data/lib/lockally/models/list_migration_credentials200_response.rb +1 -1
  243. data/lib/lockally/models/list_migration_events200_response.rb +1 -1
  244. data/lib/lockally/models/list_migration_mailboxes200_response.rb +1 -1
  245. data/lib/lockally/models/list_migrations200_response.rb +1 -1
  246. data/lib/lockally/models/list_resources200_response.rb +1 -1
  247. data/lib/lockally/models/list_shared_members200_response.rb +1 -1
  248. data/lib/lockally/models/{v1_suppressions_get200_response.rb → list_suppressions200_response.rb} +4 -4
  249. data/lib/lockally/models/{v1_send_batch_post200_response.rb → list_templates200_response.rb} +5 -5
  250. data/lib/lockally/models/list_users200_response.rb +1 -1
  251. data/lib/lockally/models/{v1_vacation_get200_response.rb → list_vacation_responders200_response.rb} +4 -4
  252. data/lib/lockally/models/{v1_aliases_get200_response.rb → list_webhooks200_response.rb} +5 -5
  253. data/lib/lockally/models/mailbox.rb +1 -1
  254. data/lib/lockally/models/mailbox_grant.rb +156 -0
  255. data/lib/lockally/models/mailbox_grant_list.rb +166 -0
  256. data/lib/lockally/models/map_migration_request.rb +1 -1
  257. data/lib/lockally/models/map_migration_request_mappings_inner.rb +1 -1
  258. data/lib/lockally/models/mark_read_result.rb +147 -0
  259. data/lib/lockally/models/message.rb +1 -1
  260. data/lib/lockally/models/message_detail.rb +479 -0
  261. data/lib/lockally/models/message_stats.rb +1 -1
  262. data/lib/lockally/models/message_stats_counts.rb +1 -1
  263. data/lib/lockally/models/message_stats_rates.rb +1 -1
  264. data/lib/lockally/models/message_stats_window.rb +1 -1
  265. data/lib/lockally/models/migration.rb +1 -1
  266. data/lib/lockally/models/migration_credential.rb +1 -1
  267. data/lib/lockally/models/migration_event.rb +1 -1
  268. data/lib/lockally/models/migration_mailbox.rb +1 -1
  269. data/lib/lockally/models/migration_progress.rb +1 -1
  270. data/lib/lockally/models/migration_progress_mailboxes_inner.rb +1 -1
  271. data/lib/lockally/models/migration_settings.rb +1 -1
  272. data/lib/lockally/models/model_alias.rb +1 -1
  273. data/lib/lockally/models/plan_catalog_entry.rb +1 -1
  274. data/lib/lockally/models/problem.rb +1 -1
  275. data/lib/lockally/models/replace_distribution_list_members200_response.rb +1 -1
  276. data/lib/lockally/models/replace_distribution_list_members_request.rb +1 -1
  277. data/lib/lockally/models/resource.rb +1 -1
  278. data/lib/lockally/models/return_path.rb +269 -0
  279. data/lib/lockally/models/return_path_check.rb +157 -0
  280. data/lib/lockally/models/rotate_encryption_key_request.rb +1 -1
  281. data/lib/lockally/models/send_email200_response.rb +218 -0
  282. data/lib/lockally/models/{v1_send_post202_response.rb → send_email202_response.rb} +4 -4
  283. data/lib/lockally/models/{v1_templates_get200_response.rb → send_email_batch200_response.rb} +5 -5
  284. data/lib/lockally/models/{v1_send_batch_post_request.rb → send_email_batch_request.rb} +4 -4
  285. data/lib/lockally/models/{v1_send_post_request.rb → send_email_request.rb} +26 -6
  286. data/lib/lockally/models/{v1_send_post_request_attachments_inner.rb → send_email_request_attachments_inner.rb} +4 -4
  287. data/lib/lockally/models/send_message.rb +23 -3
  288. data/lib/lockally/models/{v1_mailboxes_email_vacation_put_request.rb → set_vacation_responder_request.rb} +4 -4
  289. data/lib/lockally/models/shared_member.rb +1 -1
  290. data/lib/lockally/models/signup_request.rb +1 -1
  291. data/lib/lockally/models/simulated_inbound.rb +167 -0
  292. data/lib/lockally/models/{v1_inboxes_mailbox_messages_post_request.rb → start_conversation_request.rb} +4 -4
  293. data/lib/lockally/models/start_migration202_response.rb +1 -1
  294. data/lib/lockally/models/suppression.rb +1 -1
  295. data/lib/lockally/models/template.rb +1 -1
  296. data/lib/lockally/models/template_input.rb +1 -1
  297. data/lib/lockally/models/tenant.rb +1 -1
  298. data/lib/lockally/models/thread.rb +219 -0
  299. data/lib/lockally/models/thread_classification.rb +186 -0
  300. data/lib/lockally/models/thread_list.rb +192 -0
  301. data/lib/lockally/models/thread_message.rb +397 -0
  302. data/lib/lockally/models/thread_message_body.rb +413 -0
  303. data/lib/lockally/models/thread_message_body_all_of_body.rb +165 -0
  304. data/lib/lockally/models/thread_summary.rb +280 -0
  305. data/lib/lockally/models/unit_bundle.rb +1 -1
  306. data/lib/lockally/models/{v1_admins_id_patch_request.rb → update_admin_request.rb} +4 -4
  307. data/lib/lockally/models/update_calendar_event_request.rb +1 -1
  308. data/lib/lockally/models/update_calendar_integration_request.rb +1 -1
  309. data/lib/lockally/models/update_calendar_member_request.rb +1 -1
  310. data/lib/lockally/models/update_calendar_policies_request.rb +1 -1
  311. data/lib/lockally/models/update_calendar_request.rb +1 -1
  312. data/lib/lockally/models/update_contact_list_request.rb +1 -1
  313. data/lib/lockally/models/update_contact_request.rb +1 -1
  314. data/lib/lockally/models/update_directory_permissions_request.rb +1 -1
  315. data/lib/lockally/models/update_gal_settings_request.rb +1 -1
  316. data/lib/lockally/models/{v1_mailboxes_email_patch_request.rb → update_mailbox_request.rb} +4 -4
  317. data/lib/lockally/models/update_migration_mailbox_request.rb +1 -1
  318. data/lib/lockally/models/update_migration_request.rb +1 -1
  319. data/lib/lockally/models/update_resource_request.rb +1 -1
  320. data/lib/lockally/models/update_user_request.rb +1 -1
  321. data/lib/lockally/models/{v1_webhooks_id_patch_request.rb → update_webhook_request.rb} +4 -4
  322. data/lib/lockally/models/user.rb +1 -1
  323. data/lib/lockally/models/user_event.rb +1 -1
  324. data/lib/lockally/models/vacation_params.rb +1 -1
  325. data/lib/lockally/models/vacation_responder.rb +1 -1
  326. data/lib/lockally/models/webhook.rb +1 -1
  327. data/lib/lockally/models/whoami.rb +177 -0
  328. data/lib/lockally/version.rb +2 -2
  329. data/lib/lockally.rb +65 -35
  330. data/lockally.gemspec +2 -2
  331. data/spec/api/add_ons_api_spec.rb +1 -1
  332. data/spec/api/admin_api_spec.rb +10 -10
  333. data/spec/api/admins_api_spec.rb +23 -23
  334. data/spec/api/agents_api_spec.rb +79 -79
  335. data/spec/api/ai_api_spec.rb +23 -23
  336. data/spec/api/aliases_api_spec.rb +17 -17
  337. data/spec/api/api_keys_api_spec.rb +18 -18
  338. data/spec/api/billing_api_spec.rb +1 -1
  339. data/spec/api/calendars_api_spec.rb +15 -1
  340. data/spec/api/contact_lists_api_spec.rb +1 -1
  341. data/spec/api/contacts_api_spec.rb +1 -1
  342. data/spec/api/dashboard_api_spec.rb +1 -1
  343. data/spec/api/directory_api_spec.rb +1 -1
  344. data/spec/api/distribution_lists_api_spec.rb +1 -1
  345. data/spec/api/domains_api_spec.rb +66 -18
  346. data/spec/api/drafts_api_spec.rb +39 -39
  347. data/spec/api/encryption_api_spec.rb +1 -1
  348. data/spec/api/health_api_spec.rb +4 -4
  349. data/spec/api/ip_pools_api_spec.rb +1 -1
  350. data/spec/api/mailboxes_api_spec.rb +63 -63
  351. data/spec/api/migrations_api_spec.rb +1 -1
  352. data/spec/api/resources_api_spec.rb +1 -1
  353. data/spec/api/send_api_spec.rb +37 -37
  354. data/spec/api/signup_api_spec.rb +2 -2
  355. data/spec/api/suppressions_api_spec.rb +19 -19
  356. data/spec/api/templates_api_spec.rb +18 -18
  357. data/spec/api/tenant_api_spec.rb +6 -6
  358. data/spec/api/test_api_spec.rb +4 -4
  359. data/spec/api/users_api_spec.rb +1 -1
  360. data/spec/api/webhooks_api_spec.rb +20 -20
  361. data/spec/models/activate_add_on200_response_spec.rb +1 -1
  362. data/spec/models/add_calendar_member_request_spec.rb +1 -1
  363. data/spec/models/add_contact_list_member_request_spec.rb +1 -1
  364. data/spec/models/add_on_spec.rb +1 -1
  365. data/spec/models/add_shared_member_request_spec.rb +1 -1
  366. data/spec/models/admin_full_spec.rb +1 -1
  367. data/spec/models/{v1_admin_login_post200_response_spec.rb → admin_login200_response_spec.rb} +7 -7
  368. data/spec/models/{v1_admin_login_post_request_spec.rb → admin_login_request_spec.rb} +7 -7
  369. data/spec/models/admin_spec.rb +1 -1
  370. data/spec/models/agent_send_result_spec.rb +48 -0
  371. data/spec/models/ai_config_spec.rb +64 -0
  372. data/spec/models/{v1_api_keys_post_request_spec.rb → ai_config_update_spec.rb} +13 -13
  373. data/spec/models/api_key_spec.rb +1 -1
  374. data/spec/models/audit_event_spec.rb +1 -1
  375. data/spec/models/batch_lookup_public_keys200_response_data_inner_spec.rb +1 -1
  376. data/spec/models/batch_lookup_public_keys200_response_spec.rb +1 -1
  377. data/spec/models/batch_result_spec.rb +2 -2
  378. data/spec/models/billing_status_spec.rb +1 -1
  379. data/spec/models/calendar_event_spec.rb +1 -1
  380. data/spec/models/calendar_integration_spec.rb +1 -1
  381. data/spec/models/calendar_member_spec.rb +1 -1
  382. data/spec/models/calendar_policies_spec.rb +1 -1
  383. data/spec/models/calendar_spec.rb +34 -2
  384. data/spec/models/contact_list_spec.rb +1 -1
  385. data/spec/models/contact_lookup_contact_spec.rb +66 -0
  386. data/spec/models/contact_lookup_history_spec.rb +48 -0
  387. data/spec/models/contact_lookup_spec.rb +60 -0
  388. data/spec/models/contact_spec.rb +1 -1
  389. data/spec/models/create_ai_units_checkout200_response_spec.rb +48 -0
  390. data/spec/models/{v1_aliases_post_request_spec.rb → create_alias_request_spec.rb} +7 -7
  391. data/spec/models/{v1_api_keys_post201_response_spec.rb → create_api_key201_response_spec.rb} +7 -7
  392. data/spec/models/create_api_key_request_spec.rb +52 -0
  393. data/spec/models/create_billing_checkout200_response_spec.rb +1 -1
  394. data/spec/models/create_billing_checkout_request_spec.rb +1 -1
  395. data/spec/models/create_calendar_event_request_spec.rb +1 -1
  396. data/spec/models/create_calendar_integration_request_spec.rb +1 -1
  397. data/spec/models/create_calendar_request_spec.rb +1 -1
  398. data/spec/models/create_contact_list_request_spec.rb +1 -1
  399. data/spec/models/create_contact_request_spec.rb +1 -1
  400. data/spec/models/create_dedicated_ip_request_request_spec.rb +1 -1
  401. data/spec/models/create_distribution_list_request_spec.rb +1 -1
  402. data/spec/models/{v1_domains_post_request_spec.rb → create_domain_request_spec.rb} +7 -7
  403. data/spec/models/create_encryption_key201_response_spec.rb +1 -1
  404. data/spec/models/create_encryption_key_request_spec.rb +1 -1
  405. data/spec/models/create_encryption_recovery_request_spec.rb +1 -1
  406. data/spec/models/{v1_mailboxes_post_request_spec.rb → create_mailbox_request_spec.rb} +7 -7
  407. data/spec/models/create_migration_credential_request_credentials_spec.rb +1 -1
  408. data/spec/models/create_migration_credential_request_spec.rb +1 -1
  409. data/spec/models/create_migration_request_spec.rb +1 -1
  410. data/spec/models/create_resource_request_spec.rb +1 -1
  411. data/spec/models/{v1_suppressions_post_request_spec.rb → create_suppression_request_spec.rb} +7 -7
  412. data/spec/models/create_units_checkout200_response_spec.rb +1 -1
  413. data/spec/models/create_units_checkout_request_spec.rb +1 -1
  414. data/spec/models/create_user_request_spec.rb +1 -1
  415. data/spec/models/{v1_webhooks_post_request_spec.rb → create_webhook_request_spec.rb} +7 -7
  416. data/spec/models/dedicated_ip_request_spec.rb +1 -1
  417. data/spec/models/directory_permissions_spec.rb +1 -1
  418. data/spec/models/discover_migration202_response_spec.rb +1 -1
  419. data/spec/models/distribution_list_detail_spec.rb +1 -1
  420. data/spec/models/distribution_list_summary_spec.rb +1 -1
  421. data/spec/models/dns_record_spec.rb +1 -1
  422. data/spec/models/domain_spec.rb +1 -1
  423. data/spec/models/{v1_aliases_get200_response_spec.rb → draft_list_spec.rb} +8 -8
  424. data/spec/models/draft_result_spec.rb +64 -0
  425. data/spec/models/draft_spec.rb +118 -0
  426. data/spec/models/{v1_mailboxes_email_export_post201_response_spec.rb → export_mailbox201_response_spec.rb} +7 -7
  427. data/spec/models/gal_settings_spec.rb +1 -1
  428. data/spec/models/get_add_on_status200_response_spec.rb +1 -1
  429. data/spec/models/get_audit_summary200_response_spec.rb +1 -1
  430. data/spec/models/get_calendar_overview200_response_activity_inner_spec.rb +54 -0
  431. data/spec/models/get_calendar_overview200_response_spec.rb +84 -0
  432. data/spec/models/get_calendar_security200_response_alerts_inner_spec.rb +1 -1
  433. data/spec/models/get_calendar_security200_response_delegated_access_inner_spec.rb +1 -1
  434. data/spec/models/get_calendar_security200_response_external_sharing_spec.rb +1 -1
  435. data/spec/models/get_calendar_security200_response_public_calendar_list_inner_spec.rb +1 -1
  436. data/spec/models/get_calendar_security200_response_spec.rb +1 -1
  437. data/spec/models/get_contact_list200_response_members_inner_spec.rb +1 -1
  438. data/spec/models/get_contact_list200_response_spec.rb +1 -1
  439. data/spec/models/get_contact_lists200_response_data_inner_spec.rb +1 -1
  440. data/spec/models/get_contact_lists200_response_spec.rb +1 -1
  441. data/spec/models/{v1_admin_me_get200_response_spec.rb → get_current_admin200_response_spec.rb} +7 -7
  442. data/spec/models/get_directory_activity200_response_data_inner_spec.rb +1 -1
  443. data/spec/models/get_directory_activity200_response_spec.rb +1 -1
  444. data/spec/models/get_directory_stats200_response_spec.rb +1 -1
  445. data/spec/models/get_domains_status200_response_domains_inner_checks_inner_spec.rb +1 -1
  446. data/spec/models/get_domains_status200_response_domains_inner_spec.rb +1 -1
  447. data/spec/models/get_domains_status200_response_spec.rb +1 -1
  448. data/spec/models/get_encryption_key200_response_spec.rb +1 -1
  449. data/spec/models/get_integrations_summary200_response_api_keys_inner_spec.rb +1 -1
  450. data/spec/models/get_integrations_summary200_response_spec.rb +1 -1
  451. data/spec/models/get_integrations_summary200_response_webhooks_inner_spec.rb +1 -1
  452. data/spec/models/get_ip_assignment200_response_spec.rb +1 -1
  453. data/spec/models/get_security200_response_alerts_inner_spec.rb +1 -1
  454. data/spec/models/get_security200_response_spec.rb +1 -1
  455. data/spec/models/get_security200_response_stats_inner_spec.rb +1 -1
  456. data/spec/models/get_storage200_response_spec.rb +1 -1
  457. data/spec/models/get_storage200_response_top_mailboxes_inner_spec.rb +1 -1
  458. data/spec/models/get_storage200_response_top_messages_inner_spec.rb +1 -1
  459. data/spec/models/{v1_usage_get200_response_spec.rb → get_usage200_response_spec.rb} +7 -7
  460. data/spec/models/get_user_insights200_response_spec.rb +7 -1
  461. data/spec/models/{healthz_get200_response_spec.rb → health_check200_response_spec.rb} +7 -7
  462. data/spec/models/inbox_list_spec.rb +36 -0
  463. data/spec/models/inbox_spec.rb +54 -0
  464. data/spec/models/{v1_admins_post_request_spec.rb → invite_admin_request_spec.rb} +7 -7
  465. data/spec/models/list_add_ons200_response_spec.rb +1 -1
  466. data/spec/models/list_admins200_response_spec.rb +36 -0
  467. data/spec/models/{v1_admins_get200_response_spec.rb → list_aliases200_response_spec.rb} +7 -7
  468. data/spec/models/{v1_api_keys_get200_response_spec.rb → list_api_keys200_response_spec.rb} +7 -7
  469. data/spec/models/list_calendar_events200_response_spec.rb +1 -1
  470. data/spec/models/list_calendar_integrations200_response_spec.rb +1 -1
  471. data/spec/models/list_calendar_members200_response_spec.rb +1 -1
  472. data/spec/models/list_calendars200_response_spec.rb +1 -1
  473. data/spec/models/list_contact_lists200_response_spec.rb +1 -1
  474. data/spec/models/list_contacts200_response_spec.rb +1 -1
  475. data/spec/models/list_dedicated_ip_requests200_response_spec.rb +1 -1
  476. data/spec/models/list_distribution_lists200_response_spec.rb +1 -1
  477. data/spec/models/list_domains200_response_spec.rb +36 -0
  478. data/spec/models/{v1_mailboxes_get200_response_spec.rb → list_mailboxes200_response_spec.rb} +7 -7
  479. data/spec/models/{v1_suppressions_get200_response_spec.rb → list_messages200_response_spec.rb} +7 -7
  480. data/spec/models/list_migration_credentials200_response_spec.rb +1 -1
  481. data/spec/models/list_migration_events200_response_spec.rb +1 -1
  482. data/spec/models/list_migration_mailboxes200_response_spec.rb +1 -1
  483. data/spec/models/list_migrations200_response_spec.rb +1 -1
  484. data/spec/models/list_resources200_response_spec.rb +1 -1
  485. data/spec/models/list_shared_members200_response_spec.rb +1 -1
  486. data/spec/models/{v1_messages_get200_response_spec.rb → list_suppressions200_response_spec.rb} +7 -7
  487. data/spec/models/{v1_vacation_get200_response_spec.rb → list_templates200_response_spec.rb} +7 -7
  488. data/spec/models/list_users200_response_spec.rb +1 -1
  489. data/spec/models/list_vacation_responders200_response_spec.rb +36 -0
  490. data/spec/models/{v1_domains_get200_response_spec.rb → list_webhooks200_response_spec.rb} +7 -7
  491. data/spec/models/mailbox_grant_list_spec.rb +36 -0
  492. data/spec/models/mailbox_grant_spec.rb +42 -0
  493. data/spec/models/mailbox_spec.rb +1 -1
  494. data/spec/models/map_migration_request_mappings_inner_spec.rb +1 -1
  495. data/spec/models/map_migration_request_spec.rb +1 -1
  496. data/spec/models/mark_read_result_spec.rb +36 -0
  497. data/spec/models/message_detail_spec.rb +142 -0
  498. data/spec/models/message_spec.rb +1 -1
  499. data/spec/models/message_stats_counts_spec.rb +1 -1
  500. data/spec/models/message_stats_rates_spec.rb +1 -1
  501. data/spec/models/message_stats_spec.rb +1 -1
  502. data/spec/models/message_stats_window_spec.rb +1 -1
  503. data/spec/models/migration_credential_spec.rb +1 -1
  504. data/spec/models/migration_event_spec.rb +1 -1
  505. data/spec/models/migration_mailbox_spec.rb +1 -1
  506. data/spec/models/migration_progress_mailboxes_inner_spec.rb +1 -1
  507. data/spec/models/migration_progress_spec.rb +1 -1
  508. data/spec/models/migration_settings_spec.rb +1 -1
  509. data/spec/models/migration_spec.rb +1 -1
  510. data/spec/models/model_alias_spec.rb +1 -1
  511. data/spec/models/plan_catalog_entry_spec.rb +1 -1
  512. data/spec/models/problem_spec.rb +1 -1
  513. data/spec/models/replace_distribution_list_members200_response_spec.rb +1 -1
  514. data/spec/models/replace_distribution_list_members_request_spec.rb +1 -1
  515. data/spec/models/resource_spec.rb +1 -1
  516. data/spec/models/return_path_check_spec.rb +42 -0
  517. data/spec/models/return_path_spec.rb +70 -0
  518. data/spec/models/rotate_encryption_key_request_spec.rb +1 -1
  519. data/spec/models/send_email200_response_spec.rb +58 -0
  520. data/spec/models/{v1_send_post202_response_spec.rb → send_email202_response_spec.rb} +7 -7
  521. data/spec/models/{v1_templates_get200_response_spec.rb → send_email_batch200_response_spec.rb} +7 -7
  522. data/spec/models/{v1_send_batch_post_request_spec.rb → send_email_batch_request_spec.rb} +7 -7
  523. data/spec/models/{v1_send_post_request_attachments_inner_spec.rb → send_email_request_attachments_inner_spec.rb} +7 -7
  524. data/spec/models/{v1_send_post_request_spec.rb → send_email_request_spec.rb} +19 -7
  525. data/spec/models/send_message_spec.rb +13 -1
  526. data/spec/models/{v1_mailboxes_email_vacation_put_request_spec.rb → set_vacation_responder_request_spec.rb} +7 -7
  527. data/spec/models/shared_member_spec.rb +1 -1
  528. data/spec/models/signup_request_spec.rb +1 -1
  529. data/spec/models/simulated_inbound_spec.rb +48 -0
  530. data/spec/models/{v1_inboxes_mailbox_messages_post_request_spec.rb → start_conversation_request_spec.rb} +7 -7
  531. data/spec/models/start_migration202_response_spec.rb +1 -1
  532. data/spec/models/suppression_spec.rb +1 -1
  533. data/spec/models/template_input_spec.rb +1 -1
  534. data/spec/models/template_spec.rb +1 -1
  535. data/spec/models/tenant_spec.rb +1 -1
  536. data/spec/models/thread_classification_spec.rb +48 -0
  537. data/spec/models/thread_list_spec.rb +42 -0
  538. data/spec/models/thread_message_body_all_of_body_spec.rb +48 -0
  539. data/spec/models/thread_message_body_spec.rb +112 -0
  540. data/spec/models/thread_message_spec.rb +106 -0
  541. data/spec/models/thread_spec.rb +48 -0
  542. data/spec/models/thread_summary_spec.rb +70 -0
  543. data/spec/models/unit_bundle_spec.rb +1 -1
  544. data/spec/models/{v1_admins_id_patch_request_spec.rb → update_admin_request_spec.rb} +7 -7
  545. data/spec/models/update_calendar_event_request_spec.rb +1 -1
  546. data/spec/models/update_calendar_integration_request_spec.rb +1 -1
  547. data/spec/models/update_calendar_member_request_spec.rb +1 -1
  548. data/spec/models/update_calendar_policies_request_spec.rb +1 -1
  549. data/spec/models/update_calendar_request_spec.rb +1 -1
  550. data/spec/models/update_contact_list_request_spec.rb +1 -1
  551. data/spec/models/update_contact_request_spec.rb +1 -1
  552. data/spec/models/update_directory_permissions_request_spec.rb +1 -1
  553. data/spec/models/update_gal_settings_request_spec.rb +1 -1
  554. data/spec/models/{v1_mailboxes_email_patch_request_spec.rb → update_mailbox_request_spec.rb} +7 -7
  555. data/spec/models/update_migration_mailbox_request_spec.rb +1 -1
  556. data/spec/models/update_migration_request_spec.rb +1 -1
  557. data/spec/models/update_resource_request_spec.rb +1 -1
  558. data/spec/models/update_user_request_spec.rb +1 -1
  559. data/spec/models/{v1_webhooks_id_patch_request_spec.rb → update_webhook_request_spec.rb} +7 -7
  560. data/spec/models/user_event_spec.rb +1 -1
  561. data/spec/models/user_spec.rb +1 -1
  562. data/spec/models/vacation_params_spec.rb +1 -1
  563. data/spec/models/vacation_responder_spec.rb +1 -1
  564. data/spec/models/webhook_spec.rb +1 -1
  565. data/spec/models/whoami_spec.rb +54 -0
  566. data/spec/spec_helper.rb +1 -1
  567. metadata +408 -285
  568. data/docs/V1ApiKeysPostRequest.md +0 -20
  569. data/lib/lockally/models/v1_webhooks_get200_response.rb +0 -166
  570. data/spec/models/v1_send_batch_post200_response_spec.rb +0 -36
  571. data/spec/models/v1_webhooks_get200_response_spec.rb +0 -36
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  #lockally control plane
3
3
 
4
- #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`. Generate the first key for a tenant via `cmd/seed`; subsequent keys via `POST /v1/api-keys`. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
4
+ #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`, or `lk_test_<...>` for a test key. Create keys in the dashboard, or with `POST /v1/api-keys` using a key that holds `tenant:admin`. The key's plan is checked on every request, so a key stops working if the account moves to a plan without API access, and works again if it moves back. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
5
5
 
6
6
  The version of the OpenAPI document: 0.1.0
7
7
  Contact: support@lockally.com
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  #lockally control plane
3
3
 
4
- #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`. Generate the first key for a tenant via `cmd/seed`; subsequent keys via `POST /v1/api-keys`. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
4
+ #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`, or `lk_test_<...>` for a test key. Create keys in the dashboard, or with `POST /v1/api-keys` using a key that holds `tenant:admin`. The key's plan is checked on every request, so a key stops working if the account moves to a plan without API access, and works again if it moves back. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
5
5
 
6
6
  The version of the OpenAPI document: 0.1.0
7
7
  Contact: support@lockally.com
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  #lockally control plane
3
3
 
4
- #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`. Generate the first key for a tenant via `cmd/seed`; subsequent keys via `POST /v1/api-keys`. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
4
+ #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`, or `lk_test_<...>` for a test key. Create keys in the dashboard, or with `POST /v1/api-keys` using a key that holds `tenant:admin`. The key's plan is checked on every request, so a key stops working if the account moves to a plan without API access, and works again if it moves back. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
5
5
 
6
6
  The version of the OpenAPI document: 0.1.0
7
7
  Contact: support@lockally.com
@@ -0,0 +1,269 @@
1
+ =begin
2
+ #lockally control plane
3
+
4
+ #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`, or `lk_test_<...>` for a test key. Create keys in the dashboard, or with `POST /v1/api-keys` using a key that holds `tenant:admin`. The key's plan is checked on every request, so a key stops working if the account moves to a plan without API access, and works again if it moves back. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
5
+
6
+ The version of the OpenAPI document: 0.1.0
7
+ Contact: support@lockally.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.23.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Lockally
17
+ class ReturnPath < ApiModelBase
18
+ attr_accessor :status
19
+
20
+ attr_accessor :host
21
+
22
+ attr_accessor :records
23
+
24
+ attr_accessor :check
25
+
26
+ attr_accessor :requested_at
27
+
28
+ attr_accessor :verified_at
29
+
30
+ class EnumAttributeValidator
31
+ attr_reader :datatype
32
+ attr_reader :allowable_values
33
+
34
+ def initialize(datatype, allowable_values)
35
+ @allowable_values = allowable_values.map do |value|
36
+ case datatype.to_s
37
+ when /Integer/i
38
+ value.to_i
39
+ when /Float/i
40
+ value.to_f
41
+ else
42
+ value
43
+ end
44
+ end
45
+ end
46
+
47
+ def valid?(value)
48
+ !value || allowable_values.include?(value)
49
+ end
50
+ end
51
+
52
+ # Attribute mapping from ruby-style variable name to JSON key.
53
+ def self.attribute_map
54
+ {
55
+ :'status' => :'status',
56
+ :'host' => :'host',
57
+ :'records' => :'records',
58
+ :'check' => :'check',
59
+ :'requested_at' => :'requested_at',
60
+ :'verified_at' => :'verified_at'
61
+ }
62
+ end
63
+
64
+ # Returns attribute mapping this model knows about
65
+ def self.acceptable_attribute_map
66
+ attribute_map
67
+ end
68
+
69
+ # Returns all the JSON keys this model knows about
70
+ def self.acceptable_attributes
71
+ acceptable_attribute_map.values
72
+ end
73
+
74
+ # Attribute type mapping.
75
+ def self.openapi_types
76
+ {
77
+ :'status' => :'String',
78
+ :'host' => :'String',
79
+ :'records' => :'Array<DNSRecord>',
80
+ :'check' => :'ReturnPathCheck',
81
+ :'requested_at' => :'Time',
82
+ :'verified_at' => :'Time'
83
+ }
84
+ end
85
+
86
+ # List of attributes with nullable: true
87
+ def self.openapi_nullable
88
+ Set.new([
89
+ ])
90
+ end
91
+
92
+ # Initializes the object
93
+ # @param [Hash] attributes Model attributes in the form of hash
94
+ def initialize(attributes = {})
95
+ if (!attributes.is_a?(Hash))
96
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Lockally::ReturnPath` initialize method"
97
+ end
98
+
99
+ # check to see if the attribute exists and convert string to symbol for hash key
100
+ acceptable_attribute_map = self.class.acceptable_attribute_map
101
+ attributes = attributes.each_with_object({}) { |(k, v), h|
102
+ if (!acceptable_attribute_map.key?(k.to_sym))
103
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Lockally::ReturnPath`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
104
+ end
105
+ h[k.to_sym] = v
106
+ }
107
+
108
+ if attributes.key?(:'status')
109
+ self.status = attributes[:'status']
110
+ else
111
+ self.status = nil
112
+ end
113
+
114
+ if attributes.key?(:'host')
115
+ self.host = attributes[:'host']
116
+ else
117
+ self.host = nil
118
+ end
119
+
120
+ if attributes.key?(:'records')
121
+ if (value = attributes[:'records']).is_a?(Array)
122
+ self.records = value
123
+ end
124
+ else
125
+ self.records = nil
126
+ end
127
+
128
+ if attributes.key?(:'check')
129
+ self.check = attributes[:'check']
130
+ end
131
+
132
+ if attributes.key?(:'requested_at')
133
+ self.requested_at = attributes[:'requested_at']
134
+ end
135
+
136
+ if attributes.key?(:'verified_at')
137
+ self.verified_at = attributes[:'verified_at']
138
+ end
139
+ end
140
+
141
+ # Show invalid properties with the reasons. Usually used together with valid?
142
+ # @return Array for valid properties with the reasons
143
+ def list_invalid_properties
144
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
145
+ invalid_properties = Array.new
146
+ if @status.nil?
147
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
148
+ end
149
+
150
+ if @host.nil?
151
+ invalid_properties.push('invalid value for "host", host cannot be nil.')
152
+ end
153
+
154
+ if @records.nil?
155
+ invalid_properties.push('invalid value for "records", records cannot be nil.')
156
+ end
157
+
158
+ invalid_properties
159
+ end
160
+
161
+ # Check to see if the all the properties in the model are valid
162
+ # @return true if the model is valid
163
+ def valid?
164
+ warn '[DEPRECATED] the `valid?` method is obsolete'
165
+ return false if @status.nil?
166
+ status_validator = EnumAttributeValidator.new('String', ["false", "pending", "active"])
167
+ return false unless status_validator.valid?(@status)
168
+ return false if @host.nil?
169
+ return false if @records.nil?
170
+ true
171
+ end
172
+
173
+ # Custom attribute writer method checking allowed values (enum).
174
+ # @param [Object] status Object to be assigned
175
+ def status=(status)
176
+ validator = EnumAttributeValidator.new('String', ["false", "pending", "active"])
177
+ unless validator.valid?(status)
178
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
179
+ end
180
+ @status = status
181
+ end
182
+
183
+ # Custom attribute writer method with validation
184
+ # @param [Object] host Value to be assigned
185
+ def host=(host)
186
+ if host.nil?
187
+ fail ArgumentError, 'host cannot be nil'
188
+ end
189
+
190
+ @host = host
191
+ end
192
+
193
+ # Custom attribute writer method with validation
194
+ # @param [Object] records Value to be assigned
195
+ def records=(records)
196
+ if records.nil?
197
+ fail ArgumentError, 'records cannot be nil'
198
+ end
199
+
200
+ @records = records
201
+ end
202
+
203
+ # Checks equality by comparing each attribute.
204
+ # @param [Object] Object to be compared
205
+ def ==(o)
206
+ return true if self.equal?(o)
207
+ self.class == o.class &&
208
+ status == o.status &&
209
+ host == o.host &&
210
+ records == o.records &&
211
+ check == o.check &&
212
+ requested_at == o.requested_at &&
213
+ verified_at == o.verified_at
214
+ end
215
+
216
+ # @see the `==` method
217
+ # @param [Object] Object to be compared
218
+ def eql?(o)
219
+ self == o
220
+ end
221
+
222
+ # Calculates hash code according to all attributes.
223
+ # @return [Integer] Hash code
224
+ def hash
225
+ [status, host, records, check, requested_at, verified_at].hash
226
+ end
227
+
228
+ # Builds the object from hash
229
+ # @param [Hash] attributes Model attributes in the form of hash
230
+ # @return [Object] Returns the model itself
231
+ def self.build_from_hash(attributes)
232
+ return nil unless attributes.is_a?(Hash)
233
+ attributes = attributes.transform_keys(&:to_sym)
234
+ transformed_hash = {}
235
+ openapi_types.each_pair do |key, type|
236
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
237
+ transformed_hash["#{key}"] = nil
238
+ elsif type =~ /\AArray<(.*)>/i
239
+ # check to ensure the input is an array given that the attribute
240
+ # is documented as an array but the input is not
241
+ if attributes[attribute_map[key]].is_a?(Array)
242
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
243
+ end
244
+ elsif !attributes[attribute_map[key]].nil?
245
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
246
+ end
247
+ end
248
+ new(transformed_hash)
249
+ end
250
+
251
+ # Returns the object in the form of hash
252
+ # @return [Hash] Returns the object in the form of hash
253
+ def to_hash
254
+ hash = {}
255
+ self.class.attribute_map.each_pair do |attr, param|
256
+ value = self.send(attr)
257
+ if value.nil?
258
+ is_nullable = self.class.openapi_nullable.include?(attr)
259
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
260
+ end
261
+
262
+ hash[param] = _to_hash(value)
263
+ end
264
+ hash
265
+ end
266
+
267
+ end
268
+
269
+ end
@@ -0,0 +1,157 @@
1
+ =begin
2
+ #lockally control plane
3
+
4
+ #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`, or `lk_test_<...>` for a test key. Create keys in the dashboard, or with `POST /v1/api-keys` using a key that holds `tenant:admin`. The key's plan is checked on every request, so a key stops working if the account moves to a plan without API access, and works again if it moves back. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
5
+
6
+ The version of the OpenAPI document: 0.1.0
7
+ Contact: support@lockally.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.23.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Lockally
17
+ # Present after a verify call.
18
+ class ReturnPathCheck < ApiModelBase
19
+ attr_accessor :mx
20
+
21
+ attr_accessor :spf
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ :'mx' => :'mx',
27
+ :'spf' => :'spf'
28
+ }
29
+ end
30
+
31
+ # Returns attribute mapping this model knows about
32
+ def self.acceptable_attribute_map
33
+ attribute_map
34
+ end
35
+
36
+ # Returns all the JSON keys this model knows about
37
+ def self.acceptable_attributes
38
+ acceptable_attribute_map.values
39
+ end
40
+
41
+ # Attribute type mapping.
42
+ def self.openapi_types
43
+ {
44
+ :'mx' => :'Boolean',
45
+ :'spf' => :'Boolean'
46
+ }
47
+ end
48
+
49
+ # List of attributes with nullable: true
50
+ def self.openapi_nullable
51
+ Set.new([
52
+ ])
53
+ end
54
+
55
+ # Initializes the object
56
+ # @param [Hash] attributes Model attributes in the form of hash
57
+ def initialize(attributes = {})
58
+ if (!attributes.is_a?(Hash))
59
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Lockally::ReturnPathCheck` initialize method"
60
+ end
61
+
62
+ # check to see if the attribute exists and convert string to symbol for hash key
63
+ acceptable_attribute_map = self.class.acceptable_attribute_map
64
+ attributes = attributes.each_with_object({}) { |(k, v), h|
65
+ if (!acceptable_attribute_map.key?(k.to_sym))
66
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Lockally::ReturnPathCheck`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
67
+ end
68
+ h[k.to_sym] = v
69
+ }
70
+
71
+ if attributes.key?(:'mx')
72
+ self.mx = attributes[:'mx']
73
+ end
74
+
75
+ if attributes.key?(:'spf')
76
+ self.spf = attributes[:'spf']
77
+ end
78
+ end
79
+
80
+ # Show invalid properties with the reasons. Usually used together with valid?
81
+ # @return Array for valid properties with the reasons
82
+ def list_invalid_properties
83
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
84
+ invalid_properties = Array.new
85
+ invalid_properties
86
+ end
87
+
88
+ # Check to see if the all the properties in the model are valid
89
+ # @return true if the model is valid
90
+ def valid?
91
+ warn '[DEPRECATED] the `valid?` method is obsolete'
92
+ true
93
+ end
94
+
95
+ # Checks equality by comparing each attribute.
96
+ # @param [Object] Object to be compared
97
+ def ==(o)
98
+ return true if self.equal?(o)
99
+ self.class == o.class &&
100
+ mx == o.mx &&
101
+ spf == o.spf
102
+ end
103
+
104
+ # @see the `==` method
105
+ # @param [Object] Object to be compared
106
+ def eql?(o)
107
+ self == o
108
+ end
109
+
110
+ # Calculates hash code according to all attributes.
111
+ # @return [Integer] Hash code
112
+ def hash
113
+ [mx, spf].hash
114
+ end
115
+
116
+ # Builds the object from hash
117
+ # @param [Hash] attributes Model attributes in the form of hash
118
+ # @return [Object] Returns the model itself
119
+ def self.build_from_hash(attributes)
120
+ return nil unless attributes.is_a?(Hash)
121
+ attributes = attributes.transform_keys(&:to_sym)
122
+ transformed_hash = {}
123
+ openapi_types.each_pair do |key, type|
124
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
125
+ transformed_hash["#{key}"] = nil
126
+ elsif type =~ /\AArray<(.*)>/i
127
+ # check to ensure the input is an array given that the attribute
128
+ # is documented as an array but the input is not
129
+ if attributes[attribute_map[key]].is_a?(Array)
130
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
131
+ end
132
+ elsif !attributes[attribute_map[key]].nil?
133
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
134
+ end
135
+ end
136
+ new(transformed_hash)
137
+ end
138
+
139
+ # Returns the object in the form of hash
140
+ # @return [Hash] Returns the object in the form of hash
141
+ def to_hash
142
+ hash = {}
143
+ self.class.attribute_map.each_pair do |attr, param|
144
+ value = self.send(attr)
145
+ if value.nil?
146
+ is_nullable = self.class.openapi_nullable.include?(attr)
147
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
148
+ end
149
+
150
+ hash[param] = _to_hash(value)
151
+ end
152
+ hash
153
+ end
154
+
155
+ end
156
+
157
+ end
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  #lockally control plane
3
3
 
4
- #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`. Generate the first key for a tenant via `cmd/seed`; subsequent keys via `POST /v1/api-keys`. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
4
+ #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`, or `lk_test_<...>` for a test key. Create keys in the dashboard, or with `POST /v1/api-keys` using a key that holds `tenant:admin`. The key's plan is checked on every request, so a key stops working if the account moves to a plan without API access, and works again if it moves back. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
5
5
 
6
6
  The version of the OpenAPI document: 0.1.0
7
7
  Contact: support@lockally.com
@@ -0,0 +1,218 @@
1
+ =begin
2
+ #lockally control plane
3
+
4
+ #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`, or `lk_test_<...>` for a test key. Create keys in the dashboard, or with `POST /v1/api-keys` using a key that holds `tenant:admin`. The key's plan is checked on every request, so a key stops working if the account moves to a plan without API access, and works again if it moves back. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
5
+
6
+ The version of the OpenAPI document: 0.1.0
7
+ Contact: support@lockally.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.23.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Lockally
17
+ class SendEmail200Response < ApiModelBase
18
+ # Present on a test-mode send; absent when suppressed.
19
+ attr_accessor :id
20
+
21
+ # RFC 5322 Message-ID. On a test send the domain is test.lockally.com. Absent when suppressed.
22
+ attr_accessor :message_id
23
+
24
+ attr_accessor :status
25
+
26
+ # On a suppressed send, explains that nothing was sent.
27
+ attr_accessor :warning
28
+
29
+ class EnumAttributeValidator
30
+ attr_reader :datatype
31
+ attr_reader :allowable_values
32
+
33
+ def initialize(datatype, allowable_values)
34
+ @allowable_values = allowable_values.map do |value|
35
+ case datatype.to_s
36
+ when /Integer/i
37
+ value.to_i
38
+ when /Float/i
39
+ value.to_f
40
+ else
41
+ value
42
+ end
43
+ end
44
+ end
45
+
46
+ def valid?(value)
47
+ !value || allowable_values.include?(value)
48
+ end
49
+ end
50
+
51
+ # Attribute mapping from ruby-style variable name to JSON key.
52
+ def self.attribute_map
53
+ {
54
+ :'id' => :'id',
55
+ :'message_id' => :'message_id',
56
+ :'status' => :'status',
57
+ :'warning' => :'warning'
58
+ }
59
+ end
60
+
61
+ # Returns attribute mapping this model knows about
62
+ def self.acceptable_attribute_map
63
+ attribute_map
64
+ end
65
+
66
+ # Returns all the JSON keys this model knows about
67
+ def self.acceptable_attributes
68
+ acceptable_attribute_map.values
69
+ end
70
+
71
+ # Attribute type mapping.
72
+ def self.openapi_types
73
+ {
74
+ :'id' => :'String',
75
+ :'message_id' => :'String',
76
+ :'status' => :'String',
77
+ :'warning' => :'String'
78
+ }
79
+ end
80
+
81
+ # List of attributes with nullable: true
82
+ def self.openapi_nullable
83
+ Set.new([
84
+ ])
85
+ end
86
+
87
+ # Initializes the object
88
+ # @param [Hash] attributes Model attributes in the form of hash
89
+ def initialize(attributes = {})
90
+ if (!attributes.is_a?(Hash))
91
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Lockally::SendEmail200Response` initialize method"
92
+ end
93
+
94
+ # check to see if the attribute exists and convert string to symbol for hash key
95
+ acceptable_attribute_map = self.class.acceptable_attribute_map
96
+ attributes = attributes.each_with_object({}) { |(k, v), h|
97
+ if (!acceptable_attribute_map.key?(k.to_sym))
98
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Lockally::SendEmail200Response`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
99
+ end
100
+ h[k.to_sym] = v
101
+ }
102
+
103
+ if attributes.key?(:'id')
104
+ self.id = attributes[:'id']
105
+ end
106
+
107
+ if attributes.key?(:'message_id')
108
+ self.message_id = attributes[:'message_id']
109
+ end
110
+
111
+ if attributes.key?(:'status')
112
+ self.status = attributes[:'status']
113
+ else
114
+ self.status = nil
115
+ end
116
+
117
+ if attributes.key?(:'warning')
118
+ self.warning = attributes[:'warning']
119
+ end
120
+ end
121
+
122
+ # Show invalid properties with the reasons. Usually used together with valid?
123
+ # @return Array for valid properties with the reasons
124
+ def list_invalid_properties
125
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
126
+ invalid_properties = Array.new
127
+ if @status.nil?
128
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
129
+ end
130
+
131
+ invalid_properties
132
+ end
133
+
134
+ # Check to see if the all the properties in the model are valid
135
+ # @return true if the model is valid
136
+ def valid?
137
+ warn '[DEPRECATED] the `valid?` method is obsolete'
138
+ return false if @status.nil?
139
+ status_validator = EnumAttributeValidator.new('String', ["suppressed", "delivered"])
140
+ return false unless status_validator.valid?(@status)
141
+ true
142
+ end
143
+
144
+ # Custom attribute writer method checking allowed values (enum).
145
+ # @param [Object] status Object to be assigned
146
+ def status=(status)
147
+ validator = EnumAttributeValidator.new('String', ["suppressed", "delivered"])
148
+ unless validator.valid?(status)
149
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
150
+ end
151
+ @status = status
152
+ end
153
+
154
+ # Checks equality by comparing each attribute.
155
+ # @param [Object] Object to be compared
156
+ def ==(o)
157
+ return true if self.equal?(o)
158
+ self.class == o.class &&
159
+ id == o.id &&
160
+ message_id == o.message_id &&
161
+ status == o.status &&
162
+ warning == o.warning
163
+ end
164
+
165
+ # @see the `==` method
166
+ # @param [Object] Object to be compared
167
+ def eql?(o)
168
+ self == o
169
+ end
170
+
171
+ # Calculates hash code according to all attributes.
172
+ # @return [Integer] Hash code
173
+ def hash
174
+ [id, message_id, status, warning].hash
175
+ end
176
+
177
+ # Builds the object from hash
178
+ # @param [Hash] attributes Model attributes in the form of hash
179
+ # @return [Object] Returns the model itself
180
+ def self.build_from_hash(attributes)
181
+ return nil unless attributes.is_a?(Hash)
182
+ attributes = attributes.transform_keys(&:to_sym)
183
+ transformed_hash = {}
184
+ openapi_types.each_pair do |key, type|
185
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
186
+ transformed_hash["#{key}"] = nil
187
+ elsif type =~ /\AArray<(.*)>/i
188
+ # check to ensure the input is an array given that the attribute
189
+ # is documented as an array but the input is not
190
+ if attributes[attribute_map[key]].is_a?(Array)
191
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
192
+ end
193
+ elsif !attributes[attribute_map[key]].nil?
194
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
195
+ end
196
+ end
197
+ new(transformed_hash)
198
+ end
199
+
200
+ # Returns the object in the form of hash
201
+ # @return [Hash] Returns the object in the form of hash
202
+ def to_hash
203
+ hash = {}
204
+ self.class.attribute_map.each_pair do |attr, param|
205
+ value = self.send(attr)
206
+ if value.nil?
207
+ is_nullable = self.class.openapi_nullable.include?(attr)
208
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
209
+ end
210
+
211
+ hash[param] = _to_hash(value)
212
+ end
213
+ hash
214
+ end
215
+
216
+ end
217
+
218
+ end