lockally 0.1.0 → 0.2.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 (450) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +32 -7
  3. data/docs/AliasesApi.md +1 -1
  4. data/docs/BatchResult.md +1 -1
  5. data/docs/Calendar.md +8 -0
  6. data/docs/CalendarsApi.md +73 -0
  7. data/docs/DomainsApi.md +279 -0
  8. data/docs/GetCalendarOverview200Response.md +34 -0
  9. data/docs/GetCalendarOverview200ResponseActivityInner.md +24 -0
  10. data/docs/GetUserInsights200Response.md +2 -0
  11. data/docs/MailboxesApi.md +1 -1
  12. data/docs/MessageDetail.md +52 -0
  13. data/docs/ReturnPath.md +28 -0
  14. data/docs/ReturnPathCheck.md +20 -0
  15. data/docs/SendApi.md +9 -9
  16. data/docs/SendMessage.md +4 -0
  17. data/docs/V1ApiKeysPostRequest.md +3 -1
  18. data/docs/V1SendPost200Response.md +24 -0
  19. data/docs/V1SendPostRequest.md +4 -0
  20. data/lib/lockally/api/add_ons_api.rb +1 -1
  21. data/lib/lockally/api/admin_api.rb +1 -1
  22. data/lib/lockally/api/admins_api.rb +1 -1
  23. data/lib/lockally/api/agents_api.rb +1 -1
  24. data/lib/lockally/api/ai_api.rb +1 -1
  25. data/lib/lockally/api/aliases_api.rb +3 -3
  26. data/lib/lockally/api/api_keys_api.rb +1 -1
  27. data/lib/lockally/api/billing_api.rb +1 -1
  28. data/lib/lockally/api/calendars_api.rb +64 -1
  29. data/lib/lockally/api/contact_lists_api.rb +1 -1
  30. data/lib/lockally/api/contacts_api.rb +1 -1
  31. data/lib/lockally/api/dashboard_api.rb +1 -1
  32. data/lib/lockally/api/directory_api.rb +1 -1
  33. data/lib/lockally/api/distribution_lists_api.rb +1 -1
  34. data/lib/lockally/api/domains_api.rb +253 -1
  35. data/lib/lockally/api/drafts_api.rb +1 -1
  36. data/lib/lockally/api/encryption_api.rb +1 -1
  37. data/lib/lockally/api/health_api.rb +1 -1
  38. data/lib/lockally/api/ip_pools_api.rb +1 -1
  39. data/lib/lockally/api/mailboxes_api.rb +3 -3
  40. data/lib/lockally/api/migrations_api.rb +1 -1
  41. data/lib/lockally/api/resources_api.rb +1 -1
  42. data/lib/lockally/api/send_api.rb +9 -9
  43. data/lib/lockally/api/signup_api.rb +1 -1
  44. data/lib/lockally/api/suppressions_api.rb +1 -1
  45. data/lib/lockally/api/templates_api.rb +1 -1
  46. data/lib/lockally/api/tenant_api.rb +1 -1
  47. data/lib/lockally/api/test_api.rb +1 -1
  48. data/lib/lockally/api/users_api.rb +1 -1
  49. data/lib/lockally/api/webhooks_api.rb +1 -1
  50. data/lib/lockally/api_client.rb +1 -1
  51. data/lib/lockally/api_error.rb +1 -1
  52. data/lib/lockally/api_model_base.rb +1 -1
  53. data/lib/lockally/configuration.rb +1 -1
  54. data/lib/lockally/models/activate_add_on200_response.rb +1 -1
  55. data/lib/lockally/models/add_calendar_member_request.rb +1 -1
  56. data/lib/lockally/models/add_contact_list_member_request.rb +1 -1
  57. data/lib/lockally/models/add_on.rb +1 -1
  58. data/lib/lockally/models/add_shared_member_request.rb +1 -1
  59. data/lib/lockally/models/admin.rb +1 -1
  60. data/lib/lockally/models/admin_full.rb +1 -1
  61. data/lib/lockally/models/api_key.rb +1 -1
  62. data/lib/lockally/models/audit_event.rb +1 -1
  63. data/lib/lockally/models/batch_lookup_public_keys200_response.rb +1 -1
  64. data/lib/lockally/models/batch_lookup_public_keys200_response_data_inner.rb +1 -1
  65. data/lib/lockally/models/batch_result.rb +4 -3
  66. data/lib/lockally/models/billing_status.rb +1 -1
  67. data/lib/lockally/models/calendar.rb +68 -4
  68. data/lib/lockally/models/calendar_event.rb +1 -1
  69. data/lib/lockally/models/calendar_integration.rb +1 -1
  70. data/lib/lockally/models/calendar_member.rb +1 -1
  71. data/lib/lockally/models/calendar_policies.rb +1 -1
  72. data/lib/lockally/models/contact.rb +1 -1
  73. data/lib/lockally/models/contact_list.rb +1 -1
  74. data/lib/lockally/models/create_billing_checkout200_response.rb +1 -1
  75. data/lib/lockally/models/create_billing_checkout_request.rb +1 -1
  76. data/lib/lockally/models/create_calendar_event_request.rb +1 -1
  77. data/lib/lockally/models/create_calendar_integration_request.rb +1 -1
  78. data/lib/lockally/models/create_calendar_request.rb +1 -1
  79. data/lib/lockally/models/create_contact_list_request.rb +1 -1
  80. data/lib/lockally/models/create_contact_request.rb +1 -1
  81. data/lib/lockally/models/create_dedicated_ip_request_request.rb +1 -1
  82. data/lib/lockally/models/create_distribution_list_request.rb +1 -1
  83. data/lib/lockally/models/create_encryption_key201_response.rb +1 -1
  84. data/lib/lockally/models/create_encryption_key_request.rb +1 -1
  85. data/lib/lockally/models/create_encryption_recovery_request.rb +1 -1
  86. data/lib/lockally/models/create_migration_credential_request.rb +1 -1
  87. data/lib/lockally/models/create_migration_credential_request_credentials.rb +1 -1
  88. data/lib/lockally/models/create_migration_request.rb +1 -1
  89. data/lib/lockally/models/create_resource_request.rb +1 -1
  90. data/lib/lockally/models/create_units_checkout200_response.rb +1 -1
  91. data/lib/lockally/models/create_units_checkout_request.rb +1 -1
  92. data/lib/lockally/models/create_user_request.rb +1 -1
  93. data/lib/lockally/models/dedicated_ip_request.rb +1 -1
  94. data/lib/lockally/models/directory_permissions.rb +1 -1
  95. data/lib/lockally/models/discover_migration202_response.rb +1 -1
  96. data/lib/lockally/models/distribution_list_detail.rb +1 -1
  97. data/lib/lockally/models/distribution_list_summary.rb +1 -1
  98. data/lib/lockally/models/dns_record.rb +1 -1
  99. data/lib/lockally/models/domain.rb +1 -1
  100. data/lib/lockally/models/gal_settings.rb +1 -1
  101. data/lib/lockally/models/get_add_on_status200_response.rb +1 -1
  102. data/lib/lockally/models/get_audit_summary200_response.rb +1 -1
  103. data/lib/lockally/models/get_calendar_overview200_response.rb +228 -0
  104. data/lib/lockally/models/get_calendar_overview200_response_activity_inner.rb +174 -0
  105. data/lib/lockally/models/get_calendar_security200_response.rb +1 -1
  106. data/lib/lockally/models/get_calendar_security200_response_alerts_inner.rb +1 -1
  107. data/lib/lockally/models/get_calendar_security200_response_delegated_access_inner.rb +1 -1
  108. data/lib/lockally/models/get_calendar_security200_response_external_sharing.rb +1 -1
  109. data/lib/lockally/models/get_calendar_security200_response_public_calendar_list_inner.rb +1 -1
  110. data/lib/lockally/models/get_contact_list200_response.rb +1 -1
  111. data/lib/lockally/models/get_contact_list200_response_members_inner.rb +1 -1
  112. data/lib/lockally/models/get_contact_lists200_response.rb +1 -1
  113. data/lib/lockally/models/get_contact_lists200_response_data_inner.rb +1 -1
  114. data/lib/lockally/models/get_directory_activity200_response.rb +1 -1
  115. data/lib/lockally/models/get_directory_activity200_response_data_inner.rb +1 -1
  116. data/lib/lockally/models/get_directory_stats200_response.rb +1 -1
  117. data/lib/lockally/models/get_domains_status200_response.rb +1 -1
  118. data/lib/lockally/models/get_domains_status200_response_domains_inner.rb +1 -1
  119. data/lib/lockally/models/get_domains_status200_response_domains_inner_checks_inner.rb +1 -1
  120. data/lib/lockally/models/get_encryption_key200_response.rb +1 -1
  121. data/lib/lockally/models/get_integrations_summary200_response.rb +1 -1
  122. data/lib/lockally/models/get_integrations_summary200_response_api_keys_inner.rb +1 -1
  123. data/lib/lockally/models/get_integrations_summary200_response_webhooks_inner.rb +1 -1
  124. data/lib/lockally/models/get_ip_assignment200_response.rb +1 -1
  125. data/lib/lockally/models/get_security200_response.rb +1 -1
  126. data/lib/lockally/models/get_security200_response_alerts_inner.rb +1 -1
  127. data/lib/lockally/models/get_security200_response_stats_inner.rb +1 -1
  128. data/lib/lockally/models/get_storage200_response.rb +1 -1
  129. data/lib/lockally/models/get_storage200_response_top_mailboxes_inner.rb +1 -1
  130. data/lib/lockally/models/get_storage200_response_top_messages_inner.rb +1 -1
  131. data/lib/lockally/models/get_user_insights200_response.rb +12 -2
  132. data/lib/lockally/models/healthz_get200_response.rb +1 -1
  133. data/lib/lockally/models/list_add_ons200_response.rb +1 -1
  134. data/lib/lockally/models/list_calendar_events200_response.rb +1 -1
  135. data/lib/lockally/models/list_calendar_integrations200_response.rb +1 -1
  136. data/lib/lockally/models/list_calendar_members200_response.rb +1 -1
  137. data/lib/lockally/models/list_calendars200_response.rb +1 -1
  138. data/lib/lockally/models/list_contact_lists200_response.rb +1 -1
  139. data/lib/lockally/models/list_contacts200_response.rb +1 -1
  140. data/lib/lockally/models/list_dedicated_ip_requests200_response.rb +1 -1
  141. data/lib/lockally/models/list_distribution_lists200_response.rb +1 -1
  142. data/lib/lockally/models/list_migration_credentials200_response.rb +1 -1
  143. data/lib/lockally/models/list_migration_events200_response.rb +1 -1
  144. data/lib/lockally/models/list_migration_mailboxes200_response.rb +1 -1
  145. data/lib/lockally/models/list_migrations200_response.rb +1 -1
  146. data/lib/lockally/models/list_resources200_response.rb +1 -1
  147. data/lib/lockally/models/list_shared_members200_response.rb +1 -1
  148. data/lib/lockally/models/list_users200_response.rb +1 -1
  149. data/lib/lockally/models/mailbox.rb +1 -1
  150. data/lib/lockally/models/map_migration_request.rb +1 -1
  151. data/lib/lockally/models/map_migration_request_mappings_inner.rb +1 -1
  152. data/lib/lockally/models/message.rb +1 -1
  153. data/lib/lockally/models/message_detail.rb +479 -0
  154. data/lib/lockally/models/message_stats.rb +1 -1
  155. data/lib/lockally/models/message_stats_counts.rb +1 -1
  156. data/lib/lockally/models/message_stats_rates.rb +1 -1
  157. data/lib/lockally/models/message_stats_window.rb +1 -1
  158. data/lib/lockally/models/migration.rb +1 -1
  159. data/lib/lockally/models/migration_credential.rb +1 -1
  160. data/lib/lockally/models/migration_event.rb +1 -1
  161. data/lib/lockally/models/migration_mailbox.rb +1 -1
  162. data/lib/lockally/models/migration_progress.rb +1 -1
  163. data/lib/lockally/models/migration_progress_mailboxes_inner.rb +1 -1
  164. data/lib/lockally/models/migration_settings.rb +1 -1
  165. data/lib/lockally/models/model_alias.rb +1 -1
  166. data/lib/lockally/models/plan_catalog_entry.rb +1 -1
  167. data/lib/lockally/models/problem.rb +1 -1
  168. data/lib/lockally/models/replace_distribution_list_members200_response.rb +1 -1
  169. data/lib/lockally/models/replace_distribution_list_members_request.rb +1 -1
  170. data/lib/lockally/models/resource.rb +1 -1
  171. data/lib/lockally/models/return_path.rb +269 -0
  172. data/lib/lockally/models/return_path_check.rb +157 -0
  173. data/lib/lockally/models/rotate_encryption_key_request.rb +1 -1
  174. data/lib/lockally/models/send_message.rb +22 -2
  175. data/lib/lockally/models/shared_member.rb +1 -1
  176. data/lib/lockally/models/signup_request.rb +1 -1
  177. data/lib/lockally/models/start_migration202_response.rb +1 -1
  178. data/lib/lockally/models/suppression.rb +1 -1
  179. data/lib/lockally/models/template.rb +1 -1
  180. data/lib/lockally/models/template_input.rb +1 -1
  181. data/lib/lockally/models/tenant.rb +1 -1
  182. data/lib/lockally/models/unit_bundle.rb +1 -1
  183. data/lib/lockally/models/update_calendar_event_request.rb +1 -1
  184. data/lib/lockally/models/update_calendar_integration_request.rb +1 -1
  185. data/lib/lockally/models/update_calendar_member_request.rb +1 -1
  186. data/lib/lockally/models/update_calendar_policies_request.rb +1 -1
  187. data/lib/lockally/models/update_calendar_request.rb +1 -1
  188. data/lib/lockally/models/update_contact_list_request.rb +1 -1
  189. data/lib/lockally/models/update_contact_request.rb +1 -1
  190. data/lib/lockally/models/update_directory_permissions_request.rb +1 -1
  191. data/lib/lockally/models/update_gal_settings_request.rb +1 -1
  192. data/lib/lockally/models/update_migration_mailbox_request.rb +1 -1
  193. data/lib/lockally/models/update_migration_request.rb +1 -1
  194. data/lib/lockally/models/update_resource_request.rb +1 -1
  195. data/lib/lockally/models/update_user_request.rb +1 -1
  196. data/lib/lockally/models/user.rb +1 -1
  197. data/lib/lockally/models/user_event.rb +1 -1
  198. data/lib/lockally/models/v1_admin_login_post200_response.rb +1 -1
  199. data/lib/lockally/models/v1_admin_login_post_request.rb +1 -1
  200. data/lib/lockally/models/v1_admin_me_get200_response.rb +1 -1
  201. data/lib/lockally/models/v1_admins_get200_response.rb +1 -1
  202. data/lib/lockally/models/v1_admins_id_patch_request.rb +1 -1
  203. data/lib/lockally/models/v1_admins_post_request.rb +1 -1
  204. data/lib/lockally/models/v1_aliases_get200_response.rb +1 -1
  205. data/lib/lockally/models/v1_aliases_post_request.rb +1 -1
  206. data/lib/lockally/models/v1_api_keys_get200_response.rb +1 -1
  207. data/lib/lockally/models/v1_api_keys_post201_response.rb +1 -1
  208. data/lib/lockally/models/v1_api_keys_post_request.rb +17 -5
  209. data/lib/lockally/models/v1_domains_get200_response.rb +1 -1
  210. data/lib/lockally/models/v1_domains_post_request.rb +1 -1
  211. data/lib/lockally/models/v1_inboxes_mailbox_messages_post_request.rb +1 -1
  212. data/lib/lockally/models/v1_mailboxes_email_export_post201_response.rb +1 -1
  213. data/lib/lockally/models/v1_mailboxes_email_patch_request.rb +1 -1
  214. data/lib/lockally/models/v1_mailboxes_email_vacation_put_request.rb +1 -1
  215. data/lib/lockally/models/v1_mailboxes_get200_response.rb +1 -1
  216. data/lib/lockally/models/v1_mailboxes_post_request.rb +1 -1
  217. data/lib/lockally/models/v1_messages_get200_response.rb +1 -1
  218. data/lib/lockally/models/v1_send_batch_post200_response.rb +1 -1
  219. data/lib/lockally/models/v1_send_batch_post_request.rb +1 -1
  220. data/lib/lockally/models/v1_send_post200_response.rb +218 -0
  221. data/lib/lockally/models/v1_send_post202_response.rb +1 -1
  222. data/lib/lockally/models/v1_send_post_request.rb +22 -2
  223. data/lib/lockally/models/v1_send_post_request_attachments_inner.rb +1 -1
  224. data/lib/lockally/models/v1_suppressions_get200_response.rb +1 -1
  225. data/lib/lockally/models/v1_suppressions_post_request.rb +1 -1
  226. data/lib/lockally/models/v1_templates_get200_response.rb +1 -1
  227. data/lib/lockally/models/v1_usage_get200_response.rb +1 -1
  228. data/lib/lockally/models/v1_vacation_get200_response.rb +1 -1
  229. data/lib/lockally/models/v1_webhooks_get200_response.rb +1 -1
  230. data/lib/lockally/models/v1_webhooks_id_patch_request.rb +1 -1
  231. data/lib/lockally/models/v1_webhooks_post_request.rb +1 -1
  232. data/lib/lockally/models/vacation_params.rb +1 -1
  233. data/lib/lockally/models/vacation_responder.rb +1 -1
  234. data/lib/lockally/models/webhook.rb +1 -1
  235. data/lib/lockally/version.rb +2 -2
  236. data/lib/lockally.rb +7 -1
  237. data/lockally.gemspec +2 -2
  238. data/spec/api/add_ons_api_spec.rb +1 -1
  239. data/spec/api/admin_api_spec.rb +1 -1
  240. data/spec/api/admins_api_spec.rb +1 -1
  241. data/spec/api/agents_api_spec.rb +1 -1
  242. data/spec/api/ai_api_spec.rb +1 -1
  243. data/spec/api/aliases_api_spec.rb +2 -2
  244. data/spec/api/api_keys_api_spec.rb +1 -1
  245. data/spec/api/billing_api_spec.rb +1 -1
  246. data/spec/api/calendars_api_spec.rb +15 -1
  247. data/spec/api/contact_lists_api_spec.rb +1 -1
  248. data/spec/api/contacts_api_spec.rb +1 -1
  249. data/spec/api/dashboard_api_spec.rb +1 -1
  250. data/spec/api/directory_api_spec.rb +1 -1
  251. data/spec/api/distribution_lists_api_spec.rb +1 -1
  252. data/spec/api/domains_api_spec.rb +49 -1
  253. data/spec/api/drafts_api_spec.rb +1 -1
  254. data/spec/api/encryption_api_spec.rb +1 -1
  255. data/spec/api/health_api_spec.rb +1 -1
  256. data/spec/api/ip_pools_api_spec.rb +1 -1
  257. data/spec/api/mailboxes_api_spec.rb +2 -2
  258. data/spec/api/migrations_api_spec.rb +1 -1
  259. data/spec/api/resources_api_spec.rb +1 -1
  260. data/spec/api/send_api_spec.rb +4 -4
  261. data/spec/api/signup_api_spec.rb +1 -1
  262. data/spec/api/suppressions_api_spec.rb +1 -1
  263. data/spec/api/templates_api_spec.rb +1 -1
  264. data/spec/api/tenant_api_spec.rb +1 -1
  265. data/spec/api/test_api_spec.rb +1 -1
  266. data/spec/api/users_api_spec.rb +1 -1
  267. data/spec/api/webhooks_api_spec.rb +1 -1
  268. data/spec/models/activate_add_on200_response_spec.rb +1 -1
  269. data/spec/models/add_calendar_member_request_spec.rb +1 -1
  270. data/spec/models/add_contact_list_member_request_spec.rb +1 -1
  271. data/spec/models/add_on_spec.rb +1 -1
  272. data/spec/models/add_shared_member_request_spec.rb +1 -1
  273. data/spec/models/admin_full_spec.rb +1 -1
  274. data/spec/models/admin_spec.rb +1 -1
  275. data/spec/models/api_key_spec.rb +1 -1
  276. data/spec/models/audit_event_spec.rb +1 -1
  277. data/spec/models/batch_lookup_public_keys200_response_data_inner_spec.rb +1 -1
  278. data/spec/models/batch_lookup_public_keys200_response_spec.rb +1 -1
  279. data/spec/models/batch_result_spec.rb +2 -2
  280. data/spec/models/billing_status_spec.rb +1 -1
  281. data/spec/models/calendar_event_spec.rb +1 -1
  282. data/spec/models/calendar_integration_spec.rb +1 -1
  283. data/spec/models/calendar_member_spec.rb +1 -1
  284. data/spec/models/calendar_policies_spec.rb +1 -1
  285. data/spec/models/calendar_spec.rb +34 -2
  286. data/spec/models/contact_list_spec.rb +1 -1
  287. data/spec/models/contact_spec.rb +1 -1
  288. data/spec/models/create_billing_checkout200_response_spec.rb +1 -1
  289. data/spec/models/create_billing_checkout_request_spec.rb +1 -1
  290. data/spec/models/create_calendar_event_request_spec.rb +1 -1
  291. data/spec/models/create_calendar_integration_request_spec.rb +1 -1
  292. data/spec/models/create_calendar_request_spec.rb +1 -1
  293. data/spec/models/create_contact_list_request_spec.rb +1 -1
  294. data/spec/models/create_contact_request_spec.rb +1 -1
  295. data/spec/models/create_dedicated_ip_request_request_spec.rb +1 -1
  296. data/spec/models/create_distribution_list_request_spec.rb +1 -1
  297. data/spec/models/create_encryption_key201_response_spec.rb +1 -1
  298. data/spec/models/create_encryption_key_request_spec.rb +1 -1
  299. data/spec/models/create_encryption_recovery_request_spec.rb +1 -1
  300. data/spec/models/create_migration_credential_request_credentials_spec.rb +1 -1
  301. data/spec/models/create_migration_credential_request_spec.rb +1 -1
  302. data/spec/models/create_migration_request_spec.rb +1 -1
  303. data/spec/models/create_resource_request_spec.rb +1 -1
  304. data/spec/models/create_units_checkout200_response_spec.rb +1 -1
  305. data/spec/models/create_units_checkout_request_spec.rb +1 -1
  306. data/spec/models/create_user_request_spec.rb +1 -1
  307. data/spec/models/dedicated_ip_request_spec.rb +1 -1
  308. data/spec/models/directory_permissions_spec.rb +1 -1
  309. data/spec/models/discover_migration202_response_spec.rb +1 -1
  310. data/spec/models/distribution_list_detail_spec.rb +1 -1
  311. data/spec/models/distribution_list_summary_spec.rb +1 -1
  312. data/spec/models/dns_record_spec.rb +1 -1
  313. data/spec/models/domain_spec.rb +1 -1
  314. data/spec/models/gal_settings_spec.rb +1 -1
  315. data/spec/models/get_add_on_status200_response_spec.rb +1 -1
  316. data/spec/models/get_audit_summary200_response_spec.rb +1 -1
  317. data/spec/models/get_calendar_overview200_response_activity_inner_spec.rb +54 -0
  318. data/spec/models/get_calendar_overview200_response_spec.rb +84 -0
  319. data/spec/models/get_calendar_security200_response_alerts_inner_spec.rb +1 -1
  320. data/spec/models/get_calendar_security200_response_delegated_access_inner_spec.rb +1 -1
  321. data/spec/models/get_calendar_security200_response_external_sharing_spec.rb +1 -1
  322. data/spec/models/get_calendar_security200_response_public_calendar_list_inner_spec.rb +1 -1
  323. data/spec/models/get_calendar_security200_response_spec.rb +1 -1
  324. data/spec/models/get_contact_list200_response_members_inner_spec.rb +1 -1
  325. data/spec/models/get_contact_list200_response_spec.rb +1 -1
  326. data/spec/models/get_contact_lists200_response_data_inner_spec.rb +1 -1
  327. data/spec/models/get_contact_lists200_response_spec.rb +1 -1
  328. data/spec/models/get_directory_activity200_response_data_inner_spec.rb +1 -1
  329. data/spec/models/get_directory_activity200_response_spec.rb +1 -1
  330. data/spec/models/get_directory_stats200_response_spec.rb +1 -1
  331. data/spec/models/get_domains_status200_response_domains_inner_checks_inner_spec.rb +1 -1
  332. data/spec/models/get_domains_status200_response_domains_inner_spec.rb +1 -1
  333. data/spec/models/get_domains_status200_response_spec.rb +1 -1
  334. data/spec/models/get_encryption_key200_response_spec.rb +1 -1
  335. data/spec/models/get_integrations_summary200_response_api_keys_inner_spec.rb +1 -1
  336. data/spec/models/get_integrations_summary200_response_spec.rb +1 -1
  337. data/spec/models/get_integrations_summary200_response_webhooks_inner_spec.rb +1 -1
  338. data/spec/models/get_ip_assignment200_response_spec.rb +1 -1
  339. data/spec/models/get_security200_response_alerts_inner_spec.rb +1 -1
  340. data/spec/models/get_security200_response_spec.rb +1 -1
  341. data/spec/models/get_security200_response_stats_inner_spec.rb +1 -1
  342. data/spec/models/get_storage200_response_spec.rb +1 -1
  343. data/spec/models/get_storage200_response_top_mailboxes_inner_spec.rb +1 -1
  344. data/spec/models/get_storage200_response_top_messages_inner_spec.rb +1 -1
  345. data/spec/models/get_user_insights200_response_spec.rb +7 -1
  346. data/spec/models/healthz_get200_response_spec.rb +1 -1
  347. data/spec/models/list_add_ons200_response_spec.rb +1 -1
  348. data/spec/models/list_calendar_events200_response_spec.rb +1 -1
  349. data/spec/models/list_calendar_integrations200_response_spec.rb +1 -1
  350. data/spec/models/list_calendar_members200_response_spec.rb +1 -1
  351. data/spec/models/list_calendars200_response_spec.rb +1 -1
  352. data/spec/models/list_contact_lists200_response_spec.rb +1 -1
  353. data/spec/models/list_contacts200_response_spec.rb +1 -1
  354. data/spec/models/list_dedicated_ip_requests200_response_spec.rb +1 -1
  355. data/spec/models/list_distribution_lists200_response_spec.rb +1 -1
  356. data/spec/models/list_migration_credentials200_response_spec.rb +1 -1
  357. data/spec/models/list_migration_events200_response_spec.rb +1 -1
  358. data/spec/models/list_migration_mailboxes200_response_spec.rb +1 -1
  359. data/spec/models/list_migrations200_response_spec.rb +1 -1
  360. data/spec/models/list_resources200_response_spec.rb +1 -1
  361. data/spec/models/list_shared_members200_response_spec.rb +1 -1
  362. data/spec/models/list_users200_response_spec.rb +1 -1
  363. data/spec/models/mailbox_spec.rb +1 -1
  364. data/spec/models/map_migration_request_mappings_inner_spec.rb +1 -1
  365. data/spec/models/map_migration_request_spec.rb +1 -1
  366. data/spec/models/message_detail_spec.rb +142 -0
  367. data/spec/models/message_spec.rb +1 -1
  368. data/spec/models/message_stats_counts_spec.rb +1 -1
  369. data/spec/models/message_stats_rates_spec.rb +1 -1
  370. data/spec/models/message_stats_spec.rb +1 -1
  371. data/spec/models/message_stats_window_spec.rb +1 -1
  372. data/spec/models/migration_credential_spec.rb +1 -1
  373. data/spec/models/migration_event_spec.rb +1 -1
  374. data/spec/models/migration_mailbox_spec.rb +1 -1
  375. data/spec/models/migration_progress_mailboxes_inner_spec.rb +1 -1
  376. data/spec/models/migration_progress_spec.rb +1 -1
  377. data/spec/models/migration_settings_spec.rb +1 -1
  378. data/spec/models/migration_spec.rb +1 -1
  379. data/spec/models/model_alias_spec.rb +1 -1
  380. data/spec/models/plan_catalog_entry_spec.rb +1 -1
  381. data/spec/models/problem_spec.rb +1 -1
  382. data/spec/models/replace_distribution_list_members200_response_spec.rb +1 -1
  383. data/spec/models/replace_distribution_list_members_request_spec.rb +1 -1
  384. data/spec/models/resource_spec.rb +1 -1
  385. data/spec/models/return_path_check_spec.rb +42 -0
  386. data/spec/models/return_path_spec.rb +70 -0
  387. data/spec/models/rotate_encryption_key_request_spec.rb +1 -1
  388. data/spec/models/send_message_spec.rb +13 -1
  389. data/spec/models/shared_member_spec.rb +1 -1
  390. data/spec/models/signup_request_spec.rb +1 -1
  391. data/spec/models/start_migration202_response_spec.rb +1 -1
  392. data/spec/models/suppression_spec.rb +1 -1
  393. data/spec/models/template_input_spec.rb +1 -1
  394. data/spec/models/template_spec.rb +1 -1
  395. data/spec/models/tenant_spec.rb +1 -1
  396. data/spec/models/unit_bundle_spec.rb +1 -1
  397. data/spec/models/update_calendar_event_request_spec.rb +1 -1
  398. data/spec/models/update_calendar_integration_request_spec.rb +1 -1
  399. data/spec/models/update_calendar_member_request_spec.rb +1 -1
  400. data/spec/models/update_calendar_policies_request_spec.rb +1 -1
  401. data/spec/models/update_calendar_request_spec.rb +1 -1
  402. data/spec/models/update_contact_list_request_spec.rb +1 -1
  403. data/spec/models/update_contact_request_spec.rb +1 -1
  404. data/spec/models/update_directory_permissions_request_spec.rb +1 -1
  405. data/spec/models/update_gal_settings_request_spec.rb +1 -1
  406. data/spec/models/update_migration_mailbox_request_spec.rb +1 -1
  407. data/spec/models/update_migration_request_spec.rb +1 -1
  408. data/spec/models/update_resource_request_spec.rb +1 -1
  409. data/spec/models/update_user_request_spec.rb +1 -1
  410. data/spec/models/user_event_spec.rb +1 -1
  411. data/spec/models/user_spec.rb +1 -1
  412. data/spec/models/v1_admin_login_post200_response_spec.rb +1 -1
  413. data/spec/models/v1_admin_login_post_request_spec.rb +1 -1
  414. data/spec/models/v1_admin_me_get200_response_spec.rb +1 -1
  415. data/spec/models/v1_admins_get200_response_spec.rb +1 -1
  416. data/spec/models/v1_admins_id_patch_request_spec.rb +1 -1
  417. data/spec/models/v1_admins_post_request_spec.rb +1 -1
  418. data/spec/models/v1_aliases_get200_response_spec.rb +1 -1
  419. data/spec/models/v1_aliases_post_request_spec.rb +1 -1
  420. data/spec/models/v1_api_keys_get200_response_spec.rb +1 -1
  421. data/spec/models/v1_api_keys_post201_response_spec.rb +1 -1
  422. data/spec/models/v1_api_keys_post_request_spec.rb +8 -2
  423. data/spec/models/v1_domains_get200_response_spec.rb +1 -1
  424. data/spec/models/v1_domains_post_request_spec.rb +1 -1
  425. data/spec/models/v1_inboxes_mailbox_messages_post_request_spec.rb +1 -1
  426. data/spec/models/v1_mailboxes_email_export_post201_response_spec.rb +1 -1
  427. data/spec/models/v1_mailboxes_email_patch_request_spec.rb +1 -1
  428. data/spec/models/v1_mailboxes_email_vacation_put_request_spec.rb +1 -1
  429. data/spec/models/v1_mailboxes_get200_response_spec.rb +1 -1
  430. data/spec/models/v1_mailboxes_post_request_spec.rb +1 -1
  431. data/spec/models/v1_messages_get200_response_spec.rb +1 -1
  432. data/spec/models/v1_send_batch_post200_response_spec.rb +1 -1
  433. data/spec/models/v1_send_batch_post_request_spec.rb +1 -1
  434. data/spec/models/v1_send_post200_response_spec.rb +58 -0
  435. data/spec/models/v1_send_post202_response_spec.rb +1 -1
  436. data/spec/models/v1_send_post_request_attachments_inner_spec.rb +1 -1
  437. data/spec/models/v1_send_post_request_spec.rb +13 -1
  438. data/spec/models/v1_suppressions_get200_response_spec.rb +1 -1
  439. data/spec/models/v1_suppressions_post_request_spec.rb +1 -1
  440. data/spec/models/v1_templates_get200_response_spec.rb +1 -1
  441. data/spec/models/v1_usage_get200_response_spec.rb +1 -1
  442. data/spec/models/v1_vacation_get200_response_spec.rb +1 -1
  443. data/spec/models/v1_webhooks_get200_response_spec.rb +1 -1
  444. data/spec/models/v1_webhooks_id_patch_request_spec.rb +1 -1
  445. data/spec/models/v1_webhooks_post_request_spec.rb +1 -1
  446. data/spec/models/vacation_params_spec.rb +1 -1
  447. data/spec/models/vacation_responder_spec.rb +1 -1
  448. data/spec/models/webhook_spec.rb +1 -1
  449. data/spec/spec_helper.rb +1 -1
  450. metadata +207 -180
@@ -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
@@ -143,6 +143,258 @@ module Lockally
143
143
  return data, status_code, headers
144
144
  end
145
145
 
146
+ # Turn off the custom Return-Path
147
+ # API mail uses the sender's own address as the envelope sender again, from the next message.
148
+ # @param domain [String]
149
+ # @param [Hash] opts the optional parameters
150
+ # @return [nil]
151
+ def v1_domains_domain_return_path_delete(domain, opts = {})
152
+ v1_domains_domain_return_path_delete_with_http_info(domain, opts)
153
+ nil
154
+ end
155
+
156
+ # Turn off the custom Return-Path
157
+ # API mail uses the sender&#39;s own address as the envelope sender again, from the next message.
158
+ # @param domain [String]
159
+ # @param [Hash] opts the optional parameters
160
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
161
+ def v1_domains_domain_return_path_delete_with_http_info(domain, opts = {})
162
+ if @api_client.config.debugging
163
+ @api_client.config.logger.debug 'Calling API: DomainsApi.v1_domains_domain_return_path_delete ...'
164
+ end
165
+ # verify the required parameter 'domain' is set
166
+ if @api_client.config.client_side_validation && domain.nil?
167
+ fail ArgumentError, "Missing the required parameter 'domain' when calling DomainsApi.v1_domains_domain_return_path_delete"
168
+ end
169
+ # resource path
170
+ local_var_path = '/v1/domains/{domain}/return-path'.sub('{domain}', CGI.escape(domain.to_s))
171
+
172
+ # query parameters
173
+ query_params = opts[:query_params] || {}
174
+
175
+ # header parameters
176
+ header_params = opts[:header_params] || {}
177
+ # HTTP header 'Accept' (if needed)
178
+ header_params['Accept'] = @api_client.select_header_accept(['application/problem+json']) unless header_params['Accept']
179
+
180
+ # form parameters
181
+ form_params = opts[:form_params] || {}
182
+
183
+ # http body (model)
184
+ post_body = opts[:debug_body]
185
+
186
+ # return_type
187
+ return_type = opts[:debug_return_type]
188
+
189
+ # auth_names
190
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
191
+
192
+ new_options = opts.merge(
193
+ :operation => :"DomainsApi.v1_domains_domain_return_path_delete",
194
+ :header_params => header_params,
195
+ :query_params => query_params,
196
+ :form_params => form_params,
197
+ :body => post_body,
198
+ :auth_names => auth_names,
199
+ :return_type => return_type
200
+ )
201
+
202
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
203
+ if @api_client.config.debugging
204
+ @api_client.config.logger.debug "API called: DomainsApi#v1_domains_domain_return_path_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
205
+ end
206
+ return data, status_code, headers
207
+ end
208
+
209
+ # Get the custom Return-Path
210
+ # A custom Return-Path moves the envelope sender of mail sent through the API from this domain onto `bounces.<domain>`. Bounce reports then come back to Lockally instead of the sending mailbox, and a bounce that arrives after delivery marks the message bounced, suppresses the address and fires `delivery.bounced`. Mail sent from webmail or mail apps is not affected. DKIM stays signed by the domain itself. `status` is `off`, `pending` (records not confirmed yet) or `active`.
211
+ # @param domain [String]
212
+ # @param [Hash] opts the optional parameters
213
+ # @return [ReturnPath]
214
+ def v1_domains_domain_return_path_get(domain, opts = {})
215
+ data, _status_code, _headers = v1_domains_domain_return_path_get_with_http_info(domain, opts)
216
+ data
217
+ end
218
+
219
+ # Get the custom Return-Path
220
+ # A custom Return-Path moves the envelope sender of mail sent through the API from this domain onto &#x60;bounces.&lt;domain&gt;&#x60;. Bounce reports then come back to Lockally instead of the sending mailbox, and a bounce that arrives after delivery marks the message bounced, suppresses the address and fires &#x60;delivery.bounced&#x60;. Mail sent from webmail or mail apps is not affected. DKIM stays signed by the domain itself. &#x60;status&#x60; is &#x60;off&#x60;, &#x60;pending&#x60; (records not confirmed yet) or &#x60;active&#x60;.
221
+ # @param domain [String]
222
+ # @param [Hash] opts the optional parameters
223
+ # @return [Array<(ReturnPath, Integer, Hash)>] ReturnPath data, response status code and response headers
224
+ def v1_domains_domain_return_path_get_with_http_info(domain, opts = {})
225
+ if @api_client.config.debugging
226
+ @api_client.config.logger.debug 'Calling API: DomainsApi.v1_domains_domain_return_path_get ...'
227
+ end
228
+ # verify the required parameter 'domain' is set
229
+ if @api_client.config.client_side_validation && domain.nil?
230
+ fail ArgumentError, "Missing the required parameter 'domain' when calling DomainsApi.v1_domains_domain_return_path_get"
231
+ end
232
+ # resource path
233
+ local_var_path = '/v1/domains/{domain}/return-path'.sub('{domain}', CGI.escape(domain.to_s))
234
+
235
+ # query parameters
236
+ query_params = opts[:query_params] || {}
237
+
238
+ # header parameters
239
+ header_params = opts[:header_params] || {}
240
+ # HTTP header 'Accept' (if needed)
241
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'application/problem+json']) unless header_params['Accept']
242
+
243
+ # form parameters
244
+ form_params = opts[:form_params] || {}
245
+
246
+ # http body (model)
247
+ post_body = opts[:debug_body]
248
+
249
+ # return_type
250
+ return_type = opts[:debug_return_type] || 'ReturnPath'
251
+
252
+ # auth_names
253
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
254
+
255
+ new_options = opts.merge(
256
+ :operation => :"DomainsApi.v1_domains_domain_return_path_get",
257
+ :header_params => header_params,
258
+ :query_params => query_params,
259
+ :form_params => form_params,
260
+ :body => post_body,
261
+ :auth_names => auth_names,
262
+ :return_type => return_type
263
+ )
264
+
265
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
266
+ if @api_client.config.debugging
267
+ @api_client.config.logger.debug "API called: DomainsApi#v1_domains_domain_return_path_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
268
+ end
269
+ return data, status_code, headers
270
+ end
271
+
272
+ # Turn on the custom Return-Path
273
+ # Moves it to `pending` and returns the two records to publish on `bounces.<domain>`. Nothing changes for mail until they are confirmed with the verify call. The domain must be verified. Available on every plan except Free.
274
+ # @param domain [String]
275
+ # @param [Hash] opts the optional parameters
276
+ # @return [ReturnPath]
277
+ def v1_domains_domain_return_path_post(domain, opts = {})
278
+ data, _status_code, _headers = v1_domains_domain_return_path_post_with_http_info(domain, opts)
279
+ data
280
+ end
281
+
282
+ # Turn on the custom Return-Path
283
+ # Moves it to &#x60;pending&#x60; and returns the two records to publish on &#x60;bounces.&lt;domain&gt;&#x60;. Nothing changes for mail until they are confirmed with the verify call. The domain must be verified. Available on every plan except Free.
284
+ # @param domain [String]
285
+ # @param [Hash] opts the optional parameters
286
+ # @return [Array<(ReturnPath, Integer, Hash)>] ReturnPath data, response status code and response headers
287
+ def v1_domains_domain_return_path_post_with_http_info(domain, opts = {})
288
+ if @api_client.config.debugging
289
+ @api_client.config.logger.debug 'Calling API: DomainsApi.v1_domains_domain_return_path_post ...'
290
+ end
291
+ # verify the required parameter 'domain' is set
292
+ if @api_client.config.client_side_validation && domain.nil?
293
+ fail ArgumentError, "Missing the required parameter 'domain' when calling DomainsApi.v1_domains_domain_return_path_post"
294
+ end
295
+ # resource path
296
+ local_var_path = '/v1/domains/{domain}/return-path'.sub('{domain}', CGI.escape(domain.to_s))
297
+
298
+ # query parameters
299
+ query_params = opts[:query_params] || {}
300
+
301
+ # header parameters
302
+ header_params = opts[:header_params] || {}
303
+ # HTTP header 'Accept' (if needed)
304
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'application/problem+json']) unless header_params['Accept']
305
+
306
+ # form parameters
307
+ form_params = opts[:form_params] || {}
308
+
309
+ # http body (model)
310
+ post_body = opts[:debug_body]
311
+
312
+ # return_type
313
+ return_type = opts[:debug_return_type] || 'ReturnPath'
314
+
315
+ # auth_names
316
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
317
+
318
+ new_options = opts.merge(
319
+ :operation => :"DomainsApi.v1_domains_domain_return_path_post",
320
+ :header_params => header_params,
321
+ :query_params => query_params,
322
+ :form_params => form_params,
323
+ :body => post_body,
324
+ :auth_names => auth_names,
325
+ :return_type => return_type
326
+ )
327
+
328
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
329
+ if @api_client.config.debugging
330
+ @api_client.config.logger.debug "API called: DomainsApi#v1_domains_domain_return_path_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
331
+ end
332
+ return data, status_code, headers
333
+ end
334
+
335
+ # Check the custom Return-Path records
336
+ # Looks up the MX and SPF records on `bounces.<domain>`. Returns 200 either way: while a record is missing the status stays `pending` and `check` says which one. Once both are found the Return-Path becomes `active` and the send path starts using it.
337
+ # @param domain [String]
338
+ # @param [Hash] opts the optional parameters
339
+ # @return [ReturnPath]
340
+ def v1_domains_domain_return_path_verify_post(domain, opts = {})
341
+ data, _status_code, _headers = v1_domains_domain_return_path_verify_post_with_http_info(domain, opts)
342
+ data
343
+ end
344
+
345
+ # Check the custom Return-Path records
346
+ # Looks up the MX and SPF records on &#x60;bounces.&lt;domain&gt;&#x60;. Returns 200 either way: while a record is missing the status stays &#x60;pending&#x60; and &#x60;check&#x60; says which one. Once both are found the Return-Path becomes &#x60;active&#x60; and the send path starts using it.
347
+ # @param domain [String]
348
+ # @param [Hash] opts the optional parameters
349
+ # @return [Array<(ReturnPath, Integer, Hash)>] ReturnPath data, response status code and response headers
350
+ def v1_domains_domain_return_path_verify_post_with_http_info(domain, opts = {})
351
+ if @api_client.config.debugging
352
+ @api_client.config.logger.debug 'Calling API: DomainsApi.v1_domains_domain_return_path_verify_post ...'
353
+ end
354
+ # verify the required parameter 'domain' is set
355
+ if @api_client.config.client_side_validation && domain.nil?
356
+ fail ArgumentError, "Missing the required parameter 'domain' when calling DomainsApi.v1_domains_domain_return_path_verify_post"
357
+ end
358
+ # resource path
359
+ local_var_path = '/v1/domains/{domain}/return-path/verify'.sub('{domain}', CGI.escape(domain.to_s))
360
+
361
+ # query parameters
362
+ query_params = opts[:query_params] || {}
363
+
364
+ # header parameters
365
+ header_params = opts[:header_params] || {}
366
+ # HTTP header 'Accept' (if needed)
367
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'application/problem+json']) unless header_params['Accept']
368
+
369
+ # form parameters
370
+ form_params = opts[:form_params] || {}
371
+
372
+ # http body (model)
373
+ post_body = opts[:debug_body]
374
+
375
+ # return_type
376
+ return_type = opts[:debug_return_type] || 'ReturnPath'
377
+
378
+ # auth_names
379
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
380
+
381
+ new_options = opts.merge(
382
+ :operation => :"DomainsApi.v1_domains_domain_return_path_verify_post",
383
+ :header_params => header_params,
384
+ :query_params => query_params,
385
+ :form_params => form_params,
386
+ :body => post_body,
387
+ :auth_names => auth_names,
388
+ :return_type => return_type
389
+ )
390
+
391
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
392
+ if @api_client.config.debugging
393
+ @api_client.config.logger.debug "API called: DomainsApi#v1_domains_domain_return_path_verify_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
394
+ end
395
+ return data, status_code, headers
396
+ end
397
+
146
398
  # Force-poll DNS verification
147
399
  # Synchronously checks the `_lockally-verify.<domain>` TXT record against the stored verification token. Returns 200 either way: the returned `verified` boolean tells you whether DNS now confirms. Caller polls until `verified: true`. In v2 a background worker auto-polls and fires a `domain.verified` webhook.
148
400
  # @param domain [String]
@@ -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
@@ -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
@@ -353,7 +353,7 @@ module Lockally
353
353
  end
354
354
 
355
355
  # Request a mailbox export
356
- # Issues a one-shot \"presigned\" download URL for the mailbox's content in mbox format. The URL works without an Authorization header — the token in the query string is the authz. TTL is 5 minutes; the token is consumed on first GET. **v1 caveat:** the synthesized mbox only contains outbound mail (from `lockally.messages`). v2 swaps in Stalwart's export primitive for full inbox + folder structure + flags. The endpoint contract stays unchanged.
356
+ # Issues a one-shot \"presigned\" download URL for the mailbox's content in mbox format. The URL works without an Authorization header — the token in the query string is the authz. TTL is 5 minutes; the token is consumed on first GET. **v1 caveat:** the synthesized mbox only contains outbound mail (from `lockally.messages`). v2 swaps in Stalwart's export primitive for full inbox + folder structure + flags. The endpoint contract stays unchanged. **Scope changed:** this used to accept `mailboxes:read`. It takes any mailbox in the tenant and returns that mailbox's mail, so it now requires `tenant:admin`, matching `POST /v1/ediscovery/export`. A key scoped `mailboxes:read` gets 403 and has to be reissued; admin console sessions are unaffected.
357
357
  # @param email [String]
358
358
  # @param [Hash] opts the optional parameters
359
359
  # @return [V1MailboxesEmailExportPost201Response]
@@ -363,7 +363,7 @@ module Lockally
363
363
  end
364
364
 
365
365
  # Request a mailbox export
366
- # Issues a one-shot \&quot;presigned\&quot; download URL for the mailbox&#39;s content in mbox format. The URL works without an Authorization header — the token in the query string is the authz. TTL is 5 minutes; the token is consumed on first GET. **v1 caveat:** the synthesized mbox only contains outbound mail (from &#x60;lockally.messages&#x60;). v2 swaps in Stalwart&#39;s export primitive for full inbox + folder structure + flags. The endpoint contract stays unchanged.
366
+ # Issues a one-shot \&quot;presigned\&quot; download URL for the mailbox&#39;s content in mbox format. The URL works without an Authorization header — the token in the query string is the authz. TTL is 5 minutes; the token is consumed on first GET. **v1 caveat:** the synthesized mbox only contains outbound mail (from &#x60;lockally.messages&#x60;). v2 swaps in Stalwart&#39;s export primitive for full inbox + folder structure + flags. The endpoint contract stays unchanged. **Scope changed:** this used to accept &#x60;mailboxes:read&#x60;. It takes any mailbox in the tenant and returns that mailbox&#39;s mail, so it now requires &#x60;tenant:admin&#x60;, matching &#x60;POST /v1/ediscovery/export&#x60;. A key scoped &#x60;mailboxes:read&#x60; gets 403 and has to be reissued; admin console sessions are unaffected.
367
367
  # @param email [String]
368
368
  # @param [Hash] opts the optional parameters
369
369
  # @return [Array<(V1MailboxesEmailExportPost201Response, Integer, Hash)>] V1MailboxesEmailExportPost201Response data, response status code and response headers
@@ -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
@@ -168,7 +168,7 @@ module Lockally
168
168
  # Get message status
169
169
  # @param id [String]
170
170
  # @param [Hash] opts the optional parameters
171
- # @return [Message]
171
+ # @return [MessageDetail]
172
172
  def v1_messages_id_get(id, opts = {})
173
173
  data, _status_code, _headers = v1_messages_id_get_with_http_info(id, opts)
174
174
  data
@@ -177,7 +177,7 @@ module Lockally
177
177
  # Get message status
178
178
  # @param id [String]
179
179
  # @param [Hash] opts the optional parameters
180
- # @return [Array<(Message, Integer, Hash)>] Message data, response status code and response headers
180
+ # @return [Array<(MessageDetail, Integer, Hash)>] MessageDetail data, response status code and response headers
181
181
  def v1_messages_id_get_with_http_info(id, opts = {})
182
182
  if @api_client.config.debugging
183
183
  @api_client.config.logger.debug 'Calling API: SendApi.v1_messages_id_get ...'
@@ -204,7 +204,7 @@ module Lockally
204
204
  post_body = opts[:debug_body]
205
205
 
206
206
  # return_type
207
- return_type = opts[:debug_return_type] || 'Message'
207
+ return_type = opts[:debug_return_type] || 'MessageDetail'
208
208
 
209
209
  # auth_names
210
210
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
@@ -372,22 +372,22 @@ module Lockally
372
372
  end
373
373
 
374
374
  # Send an email
375
- # Submits an email for delivery via lockally. Returns 202 immediately once the message is accepted into lockally's queue; the actual SMTP submission to the recipient is async. Track delivery via `GET /v1/messages/{id}` or webhook subscriptions for `delivery.delivered` / `delivery.bounced` / `delivery.complaint`. **Idempotency-Key required.** Per design L7 — any unique string per send, 24-hour dedupe window. Repeated calls with the same key return byte-exact the original response and do NOT create a duplicate message. **Sender authorisation.** `from` must be a non-disabled mailbox owned by the calling tenant on a verified domain. Sending from aliases is not yet supported. **Rate cap.** Per-tenant `rate_cap_per_min` (returned on `/v1/tenant`) is enforced — 429 with `Retry-After: 60` once tripped. **Recipient warning.** Over 25 total recipients (To+Cc+Bcc) sets a `warning` field in the response — large fan-outs queue noticeably at scale. Hard cap is 100/send.
375
+ # Submits an email for delivery via lockally. Returns 202 immediately once the message is accepted into lockally's queue; the actual SMTP submission to the recipient is async. Track delivery via `GET /v1/messages/{id}` or webhook subscriptions for `delivery.delivered` / `delivery.bounced` / `delivery.complaint`. **Idempotency-Key required.** Per design L7 — any unique string per send, 24-hour dedupe window. Repeated calls with the same key return byte-exact the original response and do NOT create a duplicate message. **Sender authorisation.** `from` must be a non-disabled mailbox owned by the calling tenant on a verified domain. Sending from aliases is not yet supported. **Rate cap.** Per-tenant `rate_cap_per_min` (returned on `/v1/tenant`) is enforced — 429 with `Retry-After: 60` once tripped. **Recipient warning.** Over 25 total recipients (To+Cc+Bcc) sets a `warning` field in the response — large fan-outs queue noticeably at scale. Hard cap is 100/send. **Not every success is a 202.** Check the status code, not just the body. A `200` means nothing was queued: either every recipient was already suppressed, or the call used a test key and the send was simulated. Both are successes, and neither produces a real delivery. See the `200` response below. **Warm-up headers.** While the platform is in its outbound warm-up ramp, accepted sends carry `X-Warmup-Day`, `X-Warmup-Daily-Cap` and `X-Warmup-Used-Today`. They describe a platform-wide cap shared by every tenant, not your own allowance, and they disappear once the ramp finishes. Hitting the cap returns 429.
376
376
  # @param idempotency_key [String]
377
377
  # @param v1_send_post_request [V1SendPostRequest]
378
378
  # @param [Hash] opts the optional parameters
379
- # @return [V1SendPost202Response]
379
+ # @return [V1SendPost200Response]
380
380
  def v1_send_post(idempotency_key, v1_send_post_request, opts = {})
381
381
  data, _status_code, _headers = v1_send_post_with_http_info(idempotency_key, v1_send_post_request, opts)
382
382
  data
383
383
  end
384
384
 
385
385
  # Send an email
386
- # Submits an email for delivery via lockally. Returns 202 immediately once the message is accepted into lockally&#39;s queue; the actual SMTP submission to the recipient is async. Track delivery via &#x60;GET /v1/messages/{id}&#x60; or webhook subscriptions for &#x60;delivery.delivered&#x60; / &#x60;delivery.bounced&#x60; / &#x60;delivery.complaint&#x60;. **Idempotency-Key required.** Per design L7 — any unique string per send, 24-hour dedupe window. Repeated calls with the same key return byte-exact the original response and do NOT create a duplicate message. **Sender authorisation.** &#x60;from&#x60; must be a non-disabled mailbox owned by the calling tenant on a verified domain. Sending from aliases is not yet supported. **Rate cap.** Per-tenant &#x60;rate_cap_per_min&#x60; (returned on &#x60;/v1/tenant&#x60;) is enforced — 429 with &#x60;Retry-After: 60&#x60; once tripped. **Recipient warning.** Over 25 total recipients (To+Cc+Bcc) sets a &#x60;warning&#x60; field in the response — large fan-outs queue noticeably at scale. Hard cap is 100/send.
386
+ # Submits an email for delivery via lockally. Returns 202 immediately once the message is accepted into lockally&#39;s queue; the actual SMTP submission to the recipient is async. Track delivery via &#x60;GET /v1/messages/{id}&#x60; or webhook subscriptions for &#x60;delivery.delivered&#x60; / &#x60;delivery.bounced&#x60; / &#x60;delivery.complaint&#x60;. **Idempotency-Key required.** Per design L7 — any unique string per send, 24-hour dedupe window. Repeated calls with the same key return byte-exact the original response and do NOT create a duplicate message. **Sender authorisation.** &#x60;from&#x60; must be a non-disabled mailbox owned by the calling tenant on a verified domain. Sending from aliases is not yet supported. **Rate cap.** Per-tenant &#x60;rate_cap_per_min&#x60; (returned on &#x60;/v1/tenant&#x60;) is enforced — 429 with &#x60;Retry-After: 60&#x60; once tripped. **Recipient warning.** Over 25 total recipients (To+Cc+Bcc) sets a &#x60;warning&#x60; field in the response — large fan-outs queue noticeably at scale. Hard cap is 100/send. **Not every success is a 202.** Check the status code, not just the body. A &#x60;200&#x60; means nothing was queued: either every recipient was already suppressed, or the call used a test key and the send was simulated. Both are successes, and neither produces a real delivery. See the &#x60;200&#x60; response below. **Warm-up headers.** While the platform is in its outbound warm-up ramp, accepted sends carry &#x60;X-Warmup-Day&#x60;, &#x60;X-Warmup-Daily-Cap&#x60; and &#x60;X-Warmup-Used-Today&#x60;. They describe a platform-wide cap shared by every tenant, not your own allowance, and they disappear once the ramp finishes. Hitting the cap returns 429.
387
387
  # @param idempotency_key [String]
388
388
  # @param v1_send_post_request [V1SendPostRequest]
389
389
  # @param [Hash] opts the optional parameters
390
- # @return [Array<(V1SendPost202Response, Integer, Hash)>] V1SendPost202Response data, response status code and response headers
390
+ # @return [Array<(V1SendPost200Response, Integer, Hash)>] V1SendPost200Response data, response status code and response headers
391
391
  def v1_send_post_with_http_info(idempotency_key, v1_send_post_request, opts = {})
392
392
  if @api_client.config.debugging
393
393
  @api_client.config.logger.debug 'Calling API: SendApi.v1_send_post ...'
@@ -428,7 +428,7 @@ module Lockally
428
428
  post_body = opts[:debug_body] || @api_client.object_to_http_body(v1_send_post_request)
429
429
 
430
430
  # return_type
431
- return_type = opts[:debug_return_type] || 'V1SendPost202Response'
431
+ return_type = opts[:debug_return_type] || 'V1SendPost200Response'
432
432
 
433
433
  # auth_names
434
434
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
@@ -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
@@ -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
@@ -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
@@ -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