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
@@ -0,0 +1,52 @@
1
+ # Lockally::MessageDetail
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **id** | **String** | | |
8
+ | **tenant_id** | **String** | | |
9
+ | **message_id** | **String** | RFC 5322 Message-ID header, including angle brackets. | |
10
+ | **sender** | **String** | | |
11
+ | **recipients** | **Array<String>** | | |
12
+ | **subject** | **String** | | [optional] |
13
+ | **status** | **String** | | |
14
+ | **queued_at** | **Time** | | |
15
+ | **updated_at** | **Time** | | |
16
+ | **bounce_reason** | **String** | | [optional] |
17
+ | **size_bytes** | **Integer** | | [optional] |
18
+ | **from** | **String** | | [optional] |
19
+ | **to** | **Array<String>** | | [optional] |
20
+ | **cc** | **Array<String>** | | [optional] |
21
+ | **bcc** | **Array<String>** | | [optional] |
22
+ | **text** | **String** | | [optional] |
23
+ | **html** | **String** | | [optional] |
24
+ | **headers** | **Hash<String, String>** | | [optional] |
25
+
26
+ ## Example
27
+
28
+ ```ruby
29
+ require 'lockally'
30
+
31
+ instance = Lockally::MessageDetail.new(
32
+ id: null,
33
+ tenant_id: null,
34
+ message_id: null,
35
+ sender: null,
36
+ recipients: null,
37
+ subject: null,
38
+ status: null,
39
+ queued_at: null,
40
+ updated_at: null,
41
+ bounce_reason: null,
42
+ size_bytes: null,
43
+ from: null,
44
+ to: null,
45
+ cc: null,
46
+ bcc: null,
47
+ text: null,
48
+ html: null,
49
+ headers: null
50
+ )
51
+ ```
52
+
@@ -0,0 +1,28 @@
1
+ # Lockally::ReturnPath
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **status** | **String** | | |
8
+ | **host** | **String** | | |
9
+ | **records** | [**Array<DNSRecord>**](DNSRecord.md) | | |
10
+ | **check** | [**ReturnPathCheck**](ReturnPathCheck.md) | | [optional] |
11
+ | **requested_at** | **Time** | | [optional] |
12
+ | **verified_at** | **Time** | | [optional] |
13
+
14
+ ## Example
15
+
16
+ ```ruby
17
+ require 'lockally'
18
+
19
+ instance = Lockally::ReturnPath.new(
20
+ status: null,
21
+ host: bounces.acme.com,
22
+ records: null,
23
+ check: null,
24
+ requested_at: null,
25
+ verified_at: null
26
+ )
27
+ ```
28
+
@@ -0,0 +1,20 @@
1
+ # Lockally::ReturnPathCheck
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **mx** | **Boolean** | | [optional] |
8
+ | **spf** | **Boolean** | | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'lockally'
14
+
15
+ instance = Lockally::ReturnPathCheck.new(
16
+ mx: null,
17
+ spf: null
18
+ )
19
+ ```
20
+
data/docs/SendApi.md CHANGED
@@ -163,7 +163,7 @@ nil (empty response body)
163
163
 
164
164
  ## v1_messages_id_get
165
165
 
166
- > <Message> v1_messages_id_get(id)
166
+ > <MessageDetail> v1_messages_id_get(id)
167
167
 
168
168
  Get message status
169
169
 
@@ -194,7 +194,7 @@ end
194
194
 
195
195
  This returns an Array which contains the response data, status code and headers.
196
196
 
197
- > <Array(<Message>, Integer, Hash)> v1_messages_id_get_with_http_info(id)
197
+ > <Array(<MessageDetail>, Integer, Hash)> v1_messages_id_get_with_http_info(id)
198
198
 
199
199
  ```ruby
200
200
  begin
@@ -202,7 +202,7 @@ begin
202
202
  data, status_code, headers = api_instance.v1_messages_id_get_with_http_info(id)
203
203
  p status_code # => 2xx
204
204
  p headers # => { ... }
205
- p data # => <Message>
205
+ p data # => <MessageDetail>
206
206
  rescue Lockally::ApiError => e
207
207
  puts "Error when calling SendApi->v1_messages_id_get_with_http_info: #{e}"
208
208
  end
@@ -216,7 +216,7 @@ end
216
216
 
217
217
  ### Return type
218
218
 
219
- [**Message**](Message.md)
219
+ [**MessageDetail**](MessageDetail.md)
220
220
 
221
221
  ### Authorization
222
222
 
@@ -376,11 +376,11 @@ end
376
376
 
377
377
  ## v1_send_post
378
378
 
379
- > <V1SendPost202Response> v1_send_post(idempotency_key, v1_send_post_request)
379
+ > <V1SendPost200Response> v1_send_post(idempotency_key, v1_send_post_request)
380
380
 
381
381
  Send an email
382
382
 
383
- 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.
383
+ 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.
384
384
 
385
385
  ### Examples
386
386
 
@@ -410,7 +410,7 @@ end
410
410
 
411
411
  This returns an Array which contains the response data, status code and headers.
412
412
 
413
- > <Array(<V1SendPost202Response>, Integer, Hash)> v1_send_post_with_http_info(idempotency_key, v1_send_post_request)
413
+ > <Array(<V1SendPost200Response>, Integer, Hash)> v1_send_post_with_http_info(idempotency_key, v1_send_post_request)
414
414
 
415
415
  ```ruby
416
416
  begin
@@ -418,7 +418,7 @@ begin
418
418
  data, status_code, headers = api_instance.v1_send_post_with_http_info(idempotency_key, v1_send_post_request)
419
419
  p status_code # => 2xx
420
420
  p headers # => { ... }
421
- p data # => <V1SendPost202Response>
421
+ p data # => <V1SendPost200Response>
422
422
  rescue Lockally::ApiError => e
423
423
  puts "Error when calling SendApi->v1_send_post_with_http_info: #{e}"
424
424
  end
@@ -433,7 +433,7 @@ end
433
433
 
434
434
  ### Return type
435
435
 
436
- [**V1SendPost202Response**](V1SendPost202Response.md)
436
+ [**V1SendPost200Response**](V1SendPost200Response.md)
437
437
 
438
438
  ### Authorization
439
439
 
data/docs/SendMessage.md CHANGED
@@ -12,6 +12,8 @@
12
12
  | **text** | **String** | | [optional] |
13
13
  | **html** | **String** | | [optional] |
14
14
  | **headers** | **Hash&lt;String, String&gt;** | | [optional] |
15
+ | **reply_to** | **String** | Where replies go. Required when &#x60;from&#x60; has no mailbox behind it. The named form &#x60;Acme Support &lt;a@b.com&gt;&#x60; is also accepted. | [optional] |
16
+ | **reply_to_name** | **String** | Display name shown on &#x60;Reply-To&#x60;. Ignored without &#x60;reply_to&#x60;. | [optional] |
15
17
  | **unsubscribe** | **Boolean** | | [optional] |
16
18
  | **template_id** | **String** | | [optional] |
17
19
  | **variables** | **Hash&lt;String, String&gt;** | | [optional] |
@@ -32,6 +34,8 @@ instance = Lockally::SendMessage.new(
32
34
  text: null,
33
35
  html: null,
34
36
  headers: null,
37
+ reply_to: null,
38
+ reply_to_name: null,
35
39
  unsubscribe: null,
36
40
  template_id: null,
37
41
  variables: null,
@@ -6,6 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **label** | **String** | Free-text identifier shown in the dashboard. | |
8
8
  | **scopes** | **Array&lt;String&gt;** | Allowed scopes on this key. | |
9
+ | **test** | **Boolean** | Issue a test key (&#x60;lk_test_&#x60; prefix). A test key accepts sends, records them and fires a simulated delivery webhook without sending mail, and counts against no limit or allowance. | [optional][default to false] |
9
10
 
10
11
  ## Example
11
12
 
@@ -14,7 +15,8 @@ require 'lockally'
14
15
 
15
16
  instance = Lockally::V1ApiKeysPostRequest.new(
16
17
  label: ci-pipeline,
17
- scopes: null
18
+ scopes: null,
19
+ test: null
18
20
  )
19
21
  ```
20
22
 
@@ -0,0 +1,24 @@
1
+ # Lockally::V1SendPost200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **id** | **String** | Present on a test-mode send; absent when suppressed. | [optional] |
8
+ | **message_id** | **String** | RFC 5322 Message-ID. On a test send the domain is test.lockally.com. Absent when suppressed. | [optional] |
9
+ | **status** | **String** | | |
10
+ | **warning** | **String** | On a suppressed send, explains that nothing was sent. | [optional] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'lockally'
16
+
17
+ instance = Lockally::V1SendPost200Response.new(
18
+ id: null,
19
+ message_id: null,
20
+ status: null,
21
+ warning: null
22
+ )
23
+ ```
24
+
@@ -12,6 +12,8 @@
12
12
  | **text** | **String** | Plain-text body. Required if &#x60;html&#x60; is absent. | [optional] |
13
13
  | **html** | **String** | HTML body. Required if &#x60;text&#x60; is absent. | [optional] |
14
14
  | **headers** | **Hash&lt;String, String&gt;** | | [optional] |
15
+ | **reply_to** | **String** | Where replies go. REQUIRED when &#x60;from&#x60; has no mailbox behind it, since a reply there would be delivered nowhere. A &#x60;Reply-To&#x60; entry in &#x60;headers&#x60; satisfies the same rule. The named form &#x60;Acme Support &lt;a@b.com&gt;&#x60; is also accepted. | [optional] |
16
+ | **reply_to_name** | **String** | Display name shown on &#x60;Reply-To&#x60;, e.g. &#x60;Acme Support&#x60;. Ignored without &#x60;reply_to&#x60;. Encoded and quoted for you, so accents, commas and quotes are all safe. | [optional] |
15
17
  | **unsubscribe** | **Boolean** | Mark as opt-in/broadcast: skips suppressed recipients and adds a managed one-click List-Unsubscribe header. | [optional] |
16
18
  | **template_id** | **String** | Render subject/text/html from a stored template (GET /v1/templates). Mutually exclusive with inline subject/text/html. | [optional] |
17
19
  | **variables** | **Hash&lt;String, String&gt;** | Values substituted into the template&#39;s {{variable}} placeholders. | [optional] |
@@ -32,6 +34,8 @@ instance = Lockally::V1SendPostRequest.new(
32
34
  text: null,
33
35
  html: null,
34
36
  headers: null,
37
+ reply_to: null,
38
+ reply_to_name: null,
35
39
  unsubscribe: null,
36
40
  template_id: null,
37
41
  variables: null,
@@ -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
@@ -138,7 +138,7 @@ module Lockally
138
138
  end
139
139
 
140
140
  # Create an alias
141
- # Creates an email alias. `alias_address` must be on a verified tenant-owned domain. `alias_target` can be any email — intra-tenant or external (forwarding to a Gmail account is a legitimate use).
141
+ # Creates an email alias. `alias_address` must be on a verified tenant-owned domain and must not be the address of an existing mailbox (live, suspended or deleted). `alias_target` must be an active mailbox in the same workspace; forwarding to an address Lockally does not host is not supported. The alias delivers as soon as the call returns.
142
142
  # @param v1_aliases_post_request [V1AliasesPostRequest]
143
143
  # @param [Hash] opts the optional parameters
144
144
  # @return [ModelAlias]
@@ -148,7 +148,7 @@ module Lockally
148
148
  end
149
149
 
150
150
  # Create an alias
151
- # Creates an email alias. &#x60;alias_address&#x60; must be on a verified tenant-owned domain. &#x60;alias_target&#x60; can be any email — intra-tenant or external (forwarding to a Gmail account is a legitimate use).
151
+ # Creates an email alias. &#x60;alias_address&#x60; must be on a verified tenant-owned domain and must not be the address of an existing mailbox (live, suspended or deleted). &#x60;alias_target&#x60; must be an active mailbox in the same workspace; forwarding to an address Lockally does not host is not supported. The alias delivers as soon as the call returns.
152
152
  # @param v1_aliases_post_request [V1AliasesPostRequest]
153
153
  # @param [Hash] opts the optional parameters
154
154
  # @return [Array<(ModelAlias, Integer, Hash)>] ModelAlias 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
@@ -230,6 +230,7 @@ module Lockally
230
230
  end
231
231
 
232
232
  # Create a calendar integration
233
+ # Not implemented. Calendar integrations do not sync with any provider yet, so this always answers 501. Listing and deleting still work, for entries created before the feature was withdrawn.
233
234
  # @param create_calendar_integration_request [CreateCalendarIntegrationRequest]
234
235
  # @param [Hash] opts the optional parameters
235
236
  # @return [CalendarIntegration]
@@ -239,6 +240,7 @@ module Lockally
239
240
  end
240
241
 
241
242
  # Create a calendar integration
243
+ # Not implemented. Calendar integrations do not sync with any provider yet, so this always answers 501. Listing and deleting still work, for entries created before the feature was withdrawn.
242
244
  # @param create_calendar_integration_request [CreateCalendarIntegrationRequest]
243
245
  # @param [Hash] opts the optional parameters
244
246
  # @return [Array<(CalendarIntegration, Integer, Hash)>] CalendarIntegration data, response status code and response headers
@@ -545,6 +547,63 @@ module Lockally
545
547
  return data, status_code, headers
546
548
  end
547
549
 
550
+ # Administrative overview of the organization's calendar system
551
+ # Counts across the whole account, plus the recent calendar entries from the audit trail. Not scoped to the caller's own calendar.
552
+ # @param [Hash] opts the optional parameters
553
+ # @return [GetCalendarOverview200Response]
554
+ def get_calendar_overview(opts = {})
555
+ data, _status_code, _headers = get_calendar_overview_with_http_info(opts)
556
+ data
557
+ end
558
+
559
+ # Administrative overview of the organization&#39;s calendar system
560
+ # Counts across the whole account, plus the recent calendar entries from the audit trail. Not scoped to the caller&#39;s own calendar.
561
+ # @param [Hash] opts the optional parameters
562
+ # @return [Array<(GetCalendarOverview200Response, Integer, Hash)>] GetCalendarOverview200Response data, response status code and response headers
563
+ def get_calendar_overview_with_http_info(opts = {})
564
+ if @api_client.config.debugging
565
+ @api_client.config.logger.debug 'Calling API: CalendarsApi.get_calendar_overview ...'
566
+ end
567
+ # resource path
568
+ local_var_path = '/v1/calendar-overview'
569
+
570
+ # query parameters
571
+ query_params = opts[:query_params] || {}
572
+
573
+ # header parameters
574
+ header_params = opts[:header_params] || {}
575
+ # HTTP header 'Accept' (if needed)
576
+ header_params['Accept'] = @api_client.select_header_accept(['application/json', 'application/problem+json']) unless header_params['Accept']
577
+
578
+ # form parameters
579
+ form_params = opts[:form_params] || {}
580
+
581
+ # http body (model)
582
+ post_body = opts[:debug_body]
583
+
584
+ # return_type
585
+ return_type = opts[:debug_return_type] || 'GetCalendarOverview200Response'
586
+
587
+ # auth_names
588
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
589
+
590
+ new_options = opts.merge(
591
+ :operation => :"CalendarsApi.get_calendar_overview",
592
+ :header_params => header_params,
593
+ :query_params => query_params,
594
+ :form_params => form_params,
595
+ :body => post_body,
596
+ :auth_names => auth_names,
597
+ :return_type => return_type
598
+ )
599
+
600
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
601
+ if @api_client.config.debugging
602
+ @api_client.config.logger.debug "API called: CalendarsApi#get_calendar_overview\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
603
+ end
604
+ return data, status_code, headers
605
+ end
606
+
548
607
  # Get calendar policies
549
608
  # @param [Hash] opts the optional parameters
550
609
  # @return [CalendarPolicies]
@@ -961,6 +1020,7 @@ module Lockally
961
1020
  end
962
1021
 
963
1022
  # Trigger sync for a calendar integration
1023
+ # Not implemented. Calendar integrations do not sync with any provider yet, so this always answers 501. Listing and deleting still work, for entries created before the feature was withdrawn.
964
1024
  # @param id [String]
965
1025
  # @param [Hash] opts the optional parameters
966
1026
  # @return [CalendarIntegration]
@@ -970,6 +1030,7 @@ module Lockally
970
1030
  end
971
1031
 
972
1032
  # Trigger sync for a calendar integration
1033
+ # Not implemented. Calendar integrations do not sync with any provider yet, so this always answers 501. Listing and deleting still work, for entries created before the feature was withdrawn.
973
1034
  # @param id [String]
974
1035
  # @param [Hash] opts the optional parameters
975
1036
  # @return [Array<(CalendarIntegration, Integer, Hash)>] CalendarIntegration data, response status code and response headers
@@ -1172,6 +1233,7 @@ module Lockally
1172
1233
  end
1173
1234
 
1174
1235
  # Update a calendar integration
1236
+ # Not implemented. Calendar integrations do not sync with any provider yet, so this always answers 501. Listing and deleting still work, for entries created before the feature was withdrawn.
1175
1237
  # @param id [String]
1176
1238
  # @param update_calendar_integration_request [UpdateCalendarIntegrationRequest]
1177
1239
  # @param [Hash] opts the optional parameters
@@ -1182,6 +1244,7 @@ module Lockally
1182
1244
  end
1183
1245
 
1184
1246
  # Update a calendar integration
1247
+ # Not implemented. Calendar integrations do not sync with any provider yet, so this always answers 501. Listing and deleting still work, for entries created before the feature was withdrawn.
1185
1248
  # @param id [String]
1186
1249
  # @param update_calendar_integration_request [UpdateCalendarIntegrationRequest]
1187
1250
  # @param [Hash] opts the optional parameters
@@ -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