lockally 0.2.0 → 0.3.1

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 (253) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +148 -119
  3. data/docs/AdminApi.md +33 -33
  4. data/docs/{V1AdminLoginPost200Response.md → AdminLogin200Response.md} +2 -2
  5. data/docs/{V1AdminLoginPostRequest.md → AdminLoginRequest.md} +2 -2
  6. data/docs/AdminsApi.md +76 -76
  7. data/docs/AgentSendResult.md +22 -0
  8. data/docs/AgentsApi.md +247 -247
  9. data/docs/AiApi.md +69 -69
  10. data/docs/AiConfig.md +26 -0
  11. data/docs/AiConfigUpdate.md +20 -0
  12. data/docs/AliasesApi.md +59 -59
  13. data/docs/Annotations.md +22 -0
  14. data/docs/ApiKeysApi.md +59 -59
  15. data/docs/Attachment.md +26 -0
  16. data/docs/Classification.md +24 -0
  17. data/docs/ContactLookup.md +26 -0
  18. data/docs/ContactLookupContact.md +28 -0
  19. data/docs/ContactLookupHistory.md +22 -0
  20. data/docs/CreateAiUnitsCheckout200Response.md +22 -0
  21. data/docs/{V1AliasesPostRequest.md → CreateAliasRequest.md} +2 -2
  22. data/docs/{V1ApiKeysPost201Response.md → CreateApiKey201Response.md} +2 -2
  23. data/docs/{V1ApiKeysPostRequest.md → CreateApiKeyRequest.md} +2 -2
  24. data/docs/{V1DomainsPostRequest.md → CreateDomainRequest.md} +2 -2
  25. data/docs/{V1MailboxesPostRequest.md → CreateMailboxRequest.md} +2 -2
  26. data/docs/{V1SuppressionsPostRequest.md → CreateSuppressionRequest.md} +2 -2
  27. data/docs/{V1WebhooksPostRequest.md → CreateWebhookRequest.md} +2 -2
  28. data/docs/DomainsApi.md +141 -141
  29. data/docs/Draft.md +44 -0
  30. data/docs/DraftList.md +18 -0
  31. data/docs/DraftResult.md +26 -0
  32. data/docs/DraftsApi.md +115 -115
  33. data/docs/{V1MailboxesEmailExportPost201Response.md → ExportMailbox201Response.md} +2 -2
  34. data/docs/{V1AdminMeGet200Response.md → GetCurrentAdmin200Response.md} +2 -2
  35. data/docs/{V1UsageGet200Response.md → GetUsage200Response.md} +2 -2
  36. data/docs/HealthApi.md +11 -11
  37. data/docs/{HealthzGet200Response.md → HealthCheck200Response.md} +2 -2
  38. data/docs/Inbox.md +24 -0
  39. data/docs/InboxList.md +18 -0
  40. data/docs/InjectionRisk.md +20 -0
  41. data/docs/{V1AdminsPostRequest.md → InviteAdminRequest.md} +2 -2
  42. data/docs/{V1AdminsGet200Response.md → ListAdmins200Response.md} +2 -2
  43. data/docs/{V1AliasesGet200Response.md → ListAliases200Response.md} +2 -2
  44. data/docs/{V1ApiKeysGet200Response.md → ListApiKeys200Response.md} +2 -2
  45. data/docs/{V1DomainsGet200Response.md → ListDomains200Response.md} +2 -2
  46. data/docs/{V1MailboxesGet200Response.md → ListMailboxes200Response.md} +2 -2
  47. data/docs/{V1MessagesGet200Response.md → ListMessages200Response.md} +2 -2
  48. data/docs/{V1SuppressionsGet200Response.md → ListSuppressions200Response.md} +2 -2
  49. data/docs/{V1TemplatesGet200Response.md → ListTemplates200Response.md} +2 -2
  50. data/docs/{V1VacationGet200Response.md → ListVacationResponders200Response.md} +2 -2
  51. data/docs/{V1WebhooksGet200Response.md → ListWebhooks200Response.md} +2 -2
  52. data/docs/MailboxGrant.md +20 -0
  53. data/docs/MailboxGrantList.md +18 -0
  54. data/docs/MailboxesApi.md +203 -203
  55. data/docs/MarkReadResult.md +18 -0
  56. data/docs/PolicyFlags.md +28 -0
  57. data/docs/SendApi.md +121 -121
  58. data/docs/{V1SendPost200Response.md → SendEmail200Response.md} +2 -2
  59. data/docs/{V1SendPost202Response.md → SendEmail202Response.md} +2 -2
  60. data/docs/{V1SendBatchPost200Response.md → SendEmailBatch200Response.md} +2 -2
  61. data/docs/{V1SendBatchPostRequest.md → SendEmailBatchRequest.md} +2 -2
  62. data/docs/{V1SendPostRequest.md → SendEmailRequest.md} +3 -3
  63. data/docs/{V1SendPostRequestAttachmentsInner.md → SendEmailRequestAttachmentsInner.md} +2 -2
  64. data/docs/SendMessage.md +1 -1
  65. data/docs/{V1MailboxesEmailVacationPutRequest.md → SetVacationResponderRequest.md} +2 -2
  66. data/docs/SignupApi.md +4 -4
  67. data/docs/SimulatedInbound.md +22 -0
  68. data/docs/{V1InboxesMailboxMessagesPostRequest.md → StartConversationRequest.md} +2 -2
  69. data/docs/SuppressionsApi.md +75 -75
  70. data/docs/TemplatesApi.md +67 -67
  71. data/docs/TenantApi.md +20 -20
  72. data/docs/TestApi.md +11 -11
  73. data/docs/Thread.md +22 -0
  74. data/docs/ThreadClassification.md +22 -0
  75. data/docs/ThreadList.md +20 -0
  76. data/docs/ThreadMessage.md +40 -0
  77. data/docs/ThreadMessageBody.md +42 -0
  78. data/docs/ThreadMessageBodyAllOfBody.md +22 -0
  79. data/docs/ThreadSummary.md +28 -0
  80. data/docs/{V1AdminsIdPatchRequest.md → UpdateAdminRequest.md} +2 -2
  81. data/docs/{V1MailboxesEmailPatchRequest.md → UpdateMailboxRequest.md} +2 -2
  82. data/docs/{V1WebhooksIdPatchRequest.md → UpdateWebhookRequest.md} +2 -2
  83. data/docs/WebhooksApi.md +63 -63
  84. data/docs/Whoami.md +24 -0
  85. data/lib/lockally/api/admin_api.rb +30 -30
  86. data/lib/lockally/api/admins_api.rb +89 -89
  87. data/lib/lockally/api/agents_api.rb +309 -309
  88. data/lib/lockally/api/ai_api.rb +69 -69
  89. data/lib/lockally/api/aliases_api.rb +64 -64
  90. data/lib/lockally/api/api_keys_api.rb +66 -66
  91. data/lib/lockally/api/domains_api.rb +147 -147
  92. data/lib/lockally/api/drafts_api.rb +140 -140
  93. data/lib/lockally/api/health_api.rb +9 -9
  94. data/lib/lockally/api/mailboxes_api.rb +233 -233
  95. data/lib/lockally/api/send_api.rb +146 -146
  96. data/lib/lockally/api/signup_api.rb +3 -3
  97. data/lib/lockally/api/suppressions_api.rb +87 -87
  98. data/lib/lockally/api/templates_api.rb +69 -69
  99. data/lib/lockally/api/tenant_api.rb +15 -15
  100. data/lib/lockally/api/test_api.rb +9 -9
  101. data/lib/lockally/api/webhooks_api.rb +73 -73
  102. data/lib/lockally/models/{v1_admin_login_post200_response.rb → admin_login200_response.rb} +3 -3
  103. data/lib/lockally/models/{v1_admin_login_post_request.rb → admin_login_request.rb} +3 -3
  104. data/lib/lockally/models/agent_send_result.rb +184 -0
  105. data/lib/lockally/models/ai_config.rb +242 -0
  106. data/lib/lockally/models/ai_config_update.rb +214 -0
  107. data/lib/lockally/models/annotations.rb +168 -0
  108. data/lib/lockally/models/attachment.rb +185 -0
  109. data/lib/lockally/models/classification.rb +211 -0
  110. data/lib/lockally/models/contact_lookup.rb +235 -0
  111. data/lib/lockally/models/contact_lookup_contact.rb +192 -0
  112. data/lib/lockally/models/contact_lookup_history.rb +166 -0
  113. data/lib/lockally/models/create_ai_units_checkout200_response.rb +199 -0
  114. data/lib/lockally/models/{v1_aliases_post_request.rb → create_alias_request.rb} +3 -3
  115. data/lib/lockally/models/{v1_api_keys_post201_response.rb → create_api_key201_response.rb} +3 -3
  116. data/lib/lockally/models/{v1_api_keys_post_request.rb → create_api_key_request.rb} +3 -3
  117. data/lib/lockally/models/{v1_domains_post_request.rb → create_domain_request.rb} +3 -3
  118. data/lib/lockally/models/{v1_mailboxes_post_request.rb → create_mailbox_request.rb} +3 -3
  119. data/lib/lockally/models/{v1_suppressions_post_request.rb → create_suppression_request.rb} +3 -3
  120. data/lib/lockally/models/{v1_webhooks_post_request.rb → create_webhook_request.rb} +3 -3
  121. data/lib/lockally/models/draft.rb +411 -0
  122. data/lib/lockally/models/draft_list.rb +166 -0
  123. data/lib/lockally/models/draft_result.rb +258 -0
  124. data/lib/lockally/models/{v1_mailboxes_email_export_post201_response.rb → export_mailbox201_response.rb} +3 -3
  125. data/lib/lockally/models/{v1_admin_me_get200_response.rb → get_current_admin200_response.rb} +3 -3
  126. data/lib/lockally/models/{v1_usage_get200_response.rb → get_usage200_response.rb} +3 -3
  127. data/lib/lockally/models/{healthz_get200_response.rb → health_check200_response.rb} +3 -3
  128. data/lib/lockally/models/inbox.rb +225 -0
  129. data/lib/lockally/models/inbox_list.rb +166 -0
  130. data/lib/lockally/models/injection_risk.rb +159 -0
  131. data/lib/lockally/models/{v1_admins_post_request.rb → invite_admin_request.rb} +3 -3
  132. data/lib/lockally/models/list_admins200_response.rb +166 -0
  133. data/lib/lockally/models/{v1_aliases_get200_response.rb → list_aliases200_response.rb} +3 -3
  134. data/lib/lockally/models/{v1_admins_get200_response.rb → list_api_keys200_response.rb} +4 -4
  135. data/lib/lockally/models/{v1_domains_get200_response.rb → list_domains200_response.rb} +3 -3
  136. data/lib/lockally/models/{v1_mailboxes_get200_response.rb → list_mailboxes200_response.rb} +3 -3
  137. data/lib/lockally/models/{v1_messages_get200_response.rb → list_messages200_response.rb} +3 -3
  138. data/lib/lockally/models/{v1_suppressions_get200_response.rb → list_suppressions200_response.rb} +3 -3
  139. data/lib/lockally/models/{v1_send_batch_post200_response.rb → list_templates200_response.rb} +4 -4
  140. data/lib/lockally/models/{v1_vacation_get200_response.rb → list_vacation_responders200_response.rb} +3 -3
  141. data/lib/lockally/models/{v1_api_keys_get200_response.rb → list_webhooks200_response.rb} +4 -4
  142. data/lib/lockally/models/mailbox_grant.rb +156 -0
  143. data/lib/lockally/models/mailbox_grant_list.rb +166 -0
  144. data/lib/lockally/models/mark_read_result.rb +147 -0
  145. data/lib/lockally/models/policy_flags.rb +197 -0
  146. data/lib/lockally/models/{v1_send_post200_response.rb → send_email200_response.rb} +3 -3
  147. data/lib/lockally/models/{v1_send_post202_response.rb → send_email202_response.rb} +3 -3
  148. data/lib/lockally/models/{v1_templates_get200_response.rb → send_email_batch200_response.rb} +4 -4
  149. data/lib/lockally/models/{v1_send_batch_post_request.rb → send_email_batch_request.rb} +3 -3
  150. data/lib/lockally/models/{v1_send_post_request.rb → send_email_request.rb} +4 -4
  151. data/lib/lockally/models/{v1_send_post_request_attachments_inner.rb → send_email_request_attachments_inner.rb} +3 -3
  152. data/lib/lockally/models/send_message.rb +1 -1
  153. data/lib/lockally/models/{v1_mailboxes_email_vacation_put_request.rb → set_vacation_responder_request.rb} +3 -3
  154. data/lib/lockally/models/simulated_inbound.rb +165 -0
  155. data/lib/lockally/models/{v1_inboxes_mailbox_messages_post_request.rb → start_conversation_request.rb} +3 -3
  156. data/lib/lockally/models/thread.rb +219 -0
  157. data/lib/lockally/models/thread_classification.rb +183 -0
  158. data/lib/lockally/models/thread_list.rb +192 -0
  159. data/lib/lockally/models/thread_message.rb +394 -0
  160. data/lib/lockally/models/thread_message_body.rb +410 -0
  161. data/lib/lockally/models/thread_message_body_all_of_body.rb +165 -0
  162. data/lib/lockally/models/thread_summary.rb +280 -0
  163. data/lib/lockally/models/{v1_admins_id_patch_request.rb → update_admin_request.rb} +3 -3
  164. data/lib/lockally/models/{v1_mailboxes_email_patch_request.rb → update_mailbox_request.rb} +3 -3
  165. data/lib/lockally/models/{v1_webhooks_id_patch_request.rb → update_webhook_request.rb} +3 -3
  166. data/lib/lockally/models/whoami.rb +177 -0
  167. data/lib/lockally/version.rb +1 -1
  168. data/lib/lockally.rb +64 -35
  169. data/spec/api/admin_api_spec.rb +9 -9
  170. data/spec/api/admins_api_spec.rb +22 -22
  171. data/spec/api/agents_api_spec.rb +78 -78
  172. data/spec/api/ai_api_spec.rb +22 -22
  173. data/spec/api/aliases_api_spec.rb +16 -16
  174. data/spec/api/api_keys_api_spec.rb +17 -17
  175. data/spec/api/domains_api_spec.rb +42 -42
  176. data/spec/api/drafts_api_spec.rb +38 -38
  177. data/spec/api/health_api_spec.rb +3 -3
  178. data/spec/api/mailboxes_api_spec.rb +61 -61
  179. data/spec/api/send_api_spec.rb +35 -35
  180. data/spec/api/signup_api_spec.rb +1 -1
  181. data/spec/api/suppressions_api_spec.rb +18 -18
  182. data/spec/api/templates_api_spec.rb +17 -17
  183. data/spec/api/tenant_api_spec.rb +5 -5
  184. data/spec/api/test_api_spec.rb +3 -3
  185. data/spec/api/webhooks_api_spec.rb +19 -19
  186. data/spec/models/{v1_admin_login_post200_response_spec.rb → admin_login200_response_spec.rb} +6 -6
  187. data/spec/models/{v1_admin_login_post_request_spec.rb → admin_login_request_spec.rb} +6 -6
  188. data/spec/models/agent_send_result_spec.rb +48 -0
  189. data/spec/models/ai_config_spec.rb +64 -0
  190. data/spec/models/ai_config_update_spec.rb +46 -0
  191. data/spec/models/annotations_spec.rb +48 -0
  192. data/spec/models/attachment_spec.rb +60 -0
  193. data/spec/models/classification_spec.rb +58 -0
  194. data/spec/models/contact_lookup_contact_spec.rb +66 -0
  195. data/spec/models/contact_lookup_history_spec.rb +48 -0
  196. data/spec/models/contact_lookup_spec.rb +60 -0
  197. data/spec/models/create_ai_units_checkout200_response_spec.rb +48 -0
  198. data/spec/models/{v1_aliases_post_request_spec.rb → create_alias_request_spec.rb} +6 -6
  199. data/spec/models/{v1_api_keys_post201_response_spec.rb → create_api_key201_response_spec.rb} +6 -6
  200. data/spec/models/{v1_api_keys_post_request_spec.rb → create_api_key_request_spec.rb} +6 -6
  201. data/spec/models/{v1_domains_post_request_spec.rb → create_domain_request_spec.rb} +6 -6
  202. data/spec/models/{v1_mailboxes_post_request_spec.rb → create_mailbox_request_spec.rb} +6 -6
  203. data/spec/models/{v1_suppressions_post_request_spec.rb → create_suppression_request_spec.rb} +6 -6
  204. data/spec/models/{v1_webhooks_post_request_spec.rb → create_webhook_request_spec.rb} +6 -6
  205. data/spec/models/draft_list_spec.rb +36 -0
  206. data/spec/models/draft_result_spec.rb +64 -0
  207. data/spec/models/draft_spec.rb +118 -0
  208. data/spec/models/{v1_mailboxes_email_export_post201_response_spec.rb → export_mailbox201_response_spec.rb} +6 -6
  209. data/spec/models/{v1_admin_me_get200_response_spec.rb → get_current_admin200_response_spec.rb} +6 -6
  210. data/spec/models/{v1_usage_get200_response_spec.rb → get_usage200_response_spec.rb} +6 -6
  211. data/spec/models/{healthz_get200_response_spec.rb → health_check200_response_spec.rb} +6 -6
  212. data/spec/models/inbox_list_spec.rb +36 -0
  213. data/spec/models/inbox_spec.rb +54 -0
  214. data/spec/models/injection_risk_spec.rb +42 -0
  215. data/spec/models/{v1_admins_post_request_spec.rb → invite_admin_request_spec.rb} +6 -6
  216. data/spec/models/{v1_aliases_get200_response_spec.rb → list_admins200_response_spec.rb} +6 -6
  217. data/spec/models/{v1_admins_get200_response_spec.rb → list_aliases200_response_spec.rb} +6 -6
  218. data/spec/models/{v1_api_keys_get200_response_spec.rb → list_api_keys200_response_spec.rb} +6 -6
  219. data/spec/models/list_domains200_response_spec.rb +36 -0
  220. data/spec/models/{v1_mailboxes_get200_response_spec.rb → list_mailboxes200_response_spec.rb} +6 -6
  221. data/spec/models/{v1_messages_get200_response_spec.rb → list_messages200_response_spec.rb} +6 -6
  222. data/spec/models/{v1_suppressions_get200_response_spec.rb → list_suppressions200_response_spec.rb} +6 -6
  223. data/spec/models/{v1_vacation_get200_response_spec.rb → list_templates200_response_spec.rb} +6 -6
  224. data/spec/models/list_vacation_responders200_response_spec.rb +36 -0
  225. data/spec/models/{v1_domains_get200_response_spec.rb → list_webhooks200_response_spec.rb} +6 -6
  226. data/spec/models/mailbox_grant_list_spec.rb +36 -0
  227. data/spec/models/mailbox_grant_spec.rb +42 -0
  228. data/spec/models/mark_read_result_spec.rb +36 -0
  229. data/spec/models/policy_flags_spec.rb +66 -0
  230. data/spec/models/{v1_send_post200_response_spec.rb → send_email200_response_spec.rb} +6 -6
  231. data/spec/models/{v1_send_post202_response_spec.rb → send_email202_response_spec.rb} +6 -6
  232. data/spec/models/{v1_templates_get200_response_spec.rb → send_email_batch200_response_spec.rb} +6 -6
  233. data/spec/models/{v1_send_batch_post_request_spec.rb → send_email_batch_request_spec.rb} +6 -6
  234. data/spec/models/{v1_send_post_request_attachments_inner_spec.rb → send_email_request_attachments_inner_spec.rb} +6 -6
  235. data/spec/models/{v1_send_post_request_spec.rb → send_email_request_spec.rb} +6 -6
  236. data/spec/models/{v1_mailboxes_email_vacation_put_request_spec.rb → set_vacation_responder_request_spec.rb} +6 -6
  237. data/spec/models/simulated_inbound_spec.rb +48 -0
  238. data/spec/models/{v1_inboxes_mailbox_messages_post_request_spec.rb → start_conversation_request_spec.rb} +6 -6
  239. data/spec/models/thread_classification_spec.rb +48 -0
  240. data/spec/models/thread_list_spec.rb +42 -0
  241. data/spec/models/thread_message_body_all_of_body_spec.rb +48 -0
  242. data/spec/models/thread_message_body_spec.rb +112 -0
  243. data/spec/models/thread_message_spec.rb +106 -0
  244. data/spec/models/thread_spec.rb +48 -0
  245. data/spec/models/thread_summary_spec.rb +70 -0
  246. data/spec/models/{v1_admins_id_patch_request_spec.rb → update_admin_request_spec.rb} +6 -6
  247. data/spec/models/{v1_mailboxes_email_patch_request_spec.rb → update_mailbox_request_spec.rb} +6 -6
  248. data/spec/models/{v1_webhooks_id_patch_request_spec.rb → update_webhook_request_spec.rb} +6 -6
  249. data/spec/models/whoami_spec.rb +54 -0
  250. metadata +258 -142
  251. data/lib/lockally/models/v1_webhooks_get200_response.rb +0 -166
  252. data/spec/models/v1_send_batch_post200_response_spec.rb +0 -36
  253. data/spec/models/v1_webhooks_get200_response_spec.rb +0 -36
@@ -0,0 +1,410 @@
1
+ =begin
2
+ #lockally control plane
3
+
4
+ #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`, or `lk_test_<...>` for a test key. Create keys in the dashboard, or with `POST /v1/api-keys` using a key that holds `tenant:admin`. The key's plan is checked on every request, so a key stops working if the account moves to a plan without API access, and works again if it moves back. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
5
+
6
+ The version of the OpenAPI document: 0.1.0
7
+ Contact: support@lockally.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.23.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Lockally
17
+ class ThreadMessageBody < ApiModelBase
18
+ attr_accessor :id
19
+
20
+ attr_accessor :direction
21
+
22
+ # The Internet Message-ID
23
+ attr_accessor :rfc_message_id
24
+
25
+ attr_accessor :in_reply_to
26
+
27
+ attr_accessor :subject
28
+
29
+ attr_accessor :from
30
+
31
+ attr_accessor :to
32
+
33
+ attr_accessor :snippet
34
+
35
+ attr_accessor :has_attachments
36
+
37
+ attr_accessor :attachments
38
+
39
+ attr_accessor :annotations
40
+
41
+ attr_accessor :received_at
42
+
43
+ attr_accessor :body
44
+
45
+ class EnumAttributeValidator
46
+ attr_reader :datatype
47
+ attr_reader :allowable_values
48
+
49
+ def initialize(datatype, allowable_values)
50
+ @allowable_values = allowable_values.map do |value|
51
+ case datatype.to_s
52
+ when /Integer/i
53
+ value.to_i
54
+ when /Float/i
55
+ value.to_f
56
+ else
57
+ value
58
+ end
59
+ end
60
+ end
61
+
62
+ def valid?(value)
63
+ !value || allowable_values.include?(value)
64
+ end
65
+ end
66
+
67
+ # Attribute mapping from ruby-style variable name to JSON key.
68
+ def self.attribute_map
69
+ {
70
+ :'id' => :'id',
71
+ :'direction' => :'direction',
72
+ :'rfc_message_id' => :'rfc_message_id',
73
+ :'in_reply_to' => :'in_reply_to',
74
+ :'subject' => :'subject',
75
+ :'from' => :'from',
76
+ :'to' => :'to',
77
+ :'snippet' => :'snippet',
78
+ :'has_attachments' => :'has_attachments',
79
+ :'attachments' => :'attachments',
80
+ :'annotations' => :'annotations',
81
+ :'received_at' => :'received_at',
82
+ :'body' => :'body'
83
+ }
84
+ end
85
+
86
+ # Returns attribute mapping this model knows about
87
+ def self.acceptable_attribute_map
88
+ attribute_map
89
+ end
90
+
91
+ # Returns all the JSON keys this model knows about
92
+ def self.acceptable_attributes
93
+ acceptable_attribute_map.values
94
+ end
95
+
96
+ # Attribute type mapping.
97
+ def self.openapi_types
98
+ {
99
+ :'id' => :'String',
100
+ :'direction' => :'String',
101
+ :'rfc_message_id' => :'String',
102
+ :'in_reply_to' => :'String',
103
+ :'subject' => :'String',
104
+ :'from' => :'String',
105
+ :'to' => :'Array<String>',
106
+ :'snippet' => :'String',
107
+ :'has_attachments' => :'Boolean',
108
+ :'attachments' => :'Array<Attachment>',
109
+ :'annotations' => :'Annotations',
110
+ :'received_at' => :'Time',
111
+ :'body' => :'ThreadMessageBodyAllOfBody'
112
+ }
113
+ end
114
+
115
+ # List of attributes with nullable: true
116
+ def self.openapi_nullable
117
+ Set.new([
118
+ ])
119
+ end
120
+
121
+ # List of class defined in allOf (OpenAPI v3)
122
+ def self.openapi_all_of
123
+ [
124
+ :'ThreadMessage'
125
+ ]
126
+ end
127
+
128
+ # Initializes the object
129
+ # @param [Hash] attributes Model attributes in the form of hash
130
+ def initialize(attributes = {})
131
+ if (!attributes.is_a?(Hash))
132
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Lockally::ThreadMessageBody` initialize method"
133
+ end
134
+
135
+ # check to see if the attribute exists and convert string to symbol for hash key
136
+ acceptable_attribute_map = self.class.acceptable_attribute_map
137
+ attributes = attributes.each_with_object({}) { |(k, v), h|
138
+ if (!acceptable_attribute_map.key?(k.to_sym))
139
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Lockally::ThreadMessageBody`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
140
+ end
141
+ h[k.to_sym] = v
142
+ }
143
+
144
+ if attributes.key?(:'id')
145
+ self.id = attributes[:'id']
146
+ else
147
+ self.id = nil
148
+ end
149
+
150
+ if attributes.key?(:'direction')
151
+ self.direction = attributes[:'direction']
152
+ else
153
+ self.direction = nil
154
+ end
155
+
156
+ if attributes.key?(:'rfc_message_id')
157
+ self.rfc_message_id = attributes[:'rfc_message_id']
158
+ else
159
+ self.rfc_message_id = nil
160
+ end
161
+
162
+ if attributes.key?(:'in_reply_to')
163
+ self.in_reply_to = attributes[:'in_reply_to']
164
+ end
165
+
166
+ if attributes.key?(:'subject')
167
+ self.subject = attributes[:'subject']
168
+ end
169
+
170
+ if attributes.key?(:'from')
171
+ self.from = attributes[:'from']
172
+ else
173
+ self.from = nil
174
+ end
175
+
176
+ if attributes.key?(:'to')
177
+ if (value = attributes[:'to']).is_a?(Array)
178
+ self.to = value
179
+ end
180
+ else
181
+ self.to = nil
182
+ end
183
+
184
+ if attributes.key?(:'snippet')
185
+ self.snippet = attributes[:'snippet']
186
+ end
187
+
188
+ if attributes.key?(:'has_attachments')
189
+ self.has_attachments = attributes[:'has_attachments']
190
+ else
191
+ self.has_attachments = nil
192
+ end
193
+
194
+ if attributes.key?(:'attachments')
195
+ if (value = attributes[:'attachments']).is_a?(Array)
196
+ self.attachments = value
197
+ end
198
+ end
199
+
200
+ if attributes.key?(:'annotations')
201
+ self.annotations = attributes[:'annotations']
202
+ end
203
+
204
+ if attributes.key?(:'received_at')
205
+ self.received_at = attributes[:'received_at']
206
+ else
207
+ self.received_at = nil
208
+ end
209
+
210
+ if attributes.key?(:'body')
211
+ self.body = attributes[:'body']
212
+ end
213
+ end
214
+
215
+ # Show invalid properties with the reasons. Usually used together with valid?
216
+ # @return Array for valid properties with the reasons
217
+ def list_invalid_properties
218
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
219
+ invalid_properties = Array.new
220
+ if @id.nil?
221
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
222
+ end
223
+
224
+ if @direction.nil?
225
+ invalid_properties.push('invalid value for "direction", direction cannot be nil.')
226
+ end
227
+
228
+ if @rfc_message_id.nil?
229
+ invalid_properties.push('invalid value for "rfc_message_id", rfc_message_id cannot be nil.')
230
+ end
231
+
232
+ if @from.nil?
233
+ invalid_properties.push('invalid value for "from", from cannot be nil.')
234
+ end
235
+
236
+ if @to.nil?
237
+ invalid_properties.push('invalid value for "to", to cannot be nil.')
238
+ end
239
+
240
+ if @has_attachments.nil?
241
+ invalid_properties.push('invalid value for "has_attachments", has_attachments cannot be nil.')
242
+ end
243
+
244
+ if @received_at.nil?
245
+ invalid_properties.push('invalid value for "received_at", received_at cannot be nil.')
246
+ end
247
+
248
+ invalid_properties
249
+ end
250
+
251
+ # Check to see if the all the properties in the model are valid
252
+ # @return true if the model is valid
253
+ def valid?
254
+ warn '[DEPRECATED] the `valid?` method is obsolete'
255
+ return false if @id.nil?
256
+ return false if @direction.nil?
257
+ direction_validator = EnumAttributeValidator.new('String', ["inbound", "outbound"])
258
+ return false unless direction_validator.valid?(@direction)
259
+ return false if @rfc_message_id.nil?
260
+ return false if @from.nil?
261
+ return false if @to.nil?
262
+ return false if @has_attachments.nil?
263
+ return false if @received_at.nil?
264
+ true
265
+ end
266
+
267
+ # Custom attribute writer method with validation
268
+ # @param [Object] id Value to be assigned
269
+ def id=(id)
270
+ if id.nil?
271
+ fail ArgumentError, 'id cannot be nil'
272
+ end
273
+
274
+ @id = id
275
+ end
276
+
277
+ # Custom attribute writer method checking allowed values (enum).
278
+ # @param [Object] direction Object to be assigned
279
+ def direction=(direction)
280
+ validator = EnumAttributeValidator.new('String', ["inbound", "outbound"])
281
+ unless validator.valid?(direction)
282
+ fail ArgumentError, "invalid value for \"direction\", must be one of #{validator.allowable_values}."
283
+ end
284
+ @direction = direction
285
+ end
286
+
287
+ # Custom attribute writer method with validation
288
+ # @param [Object] rfc_message_id Value to be assigned
289
+ def rfc_message_id=(rfc_message_id)
290
+ if rfc_message_id.nil?
291
+ fail ArgumentError, 'rfc_message_id cannot be nil'
292
+ end
293
+
294
+ @rfc_message_id = rfc_message_id
295
+ end
296
+
297
+ # Custom attribute writer method with validation
298
+ # @param [Object] from Value to be assigned
299
+ def from=(from)
300
+ if from.nil?
301
+ fail ArgumentError, 'from cannot be nil'
302
+ end
303
+
304
+ @from = from
305
+ end
306
+
307
+ # Custom attribute writer method with validation
308
+ # @param [Object] to Value to be assigned
309
+ def to=(to)
310
+ if to.nil?
311
+ fail ArgumentError, 'to cannot be nil'
312
+ end
313
+
314
+ @to = to
315
+ end
316
+
317
+ # Custom attribute writer method with validation
318
+ # @param [Object] has_attachments Value to be assigned
319
+ def has_attachments=(has_attachments)
320
+ if has_attachments.nil?
321
+ fail ArgumentError, 'has_attachments cannot be nil'
322
+ end
323
+
324
+ @has_attachments = has_attachments
325
+ end
326
+
327
+ # Custom attribute writer method with validation
328
+ # @param [Object] received_at Value to be assigned
329
+ def received_at=(received_at)
330
+ if received_at.nil?
331
+ fail ArgumentError, 'received_at cannot be nil'
332
+ end
333
+
334
+ @received_at = received_at
335
+ end
336
+
337
+ # Checks equality by comparing each attribute.
338
+ # @param [Object] Object to be compared
339
+ def ==(o)
340
+ return true if self.equal?(o)
341
+ self.class == o.class &&
342
+ id == o.id &&
343
+ direction == o.direction &&
344
+ rfc_message_id == o.rfc_message_id &&
345
+ in_reply_to == o.in_reply_to &&
346
+ subject == o.subject &&
347
+ from == o.from &&
348
+ to == o.to &&
349
+ snippet == o.snippet &&
350
+ has_attachments == o.has_attachments &&
351
+ attachments == o.attachments &&
352
+ annotations == o.annotations &&
353
+ received_at == o.received_at &&
354
+ body == o.body
355
+ end
356
+
357
+ # @see the `==` method
358
+ # @param [Object] Object to be compared
359
+ def eql?(o)
360
+ self == o
361
+ end
362
+
363
+ # Calculates hash code according to all attributes.
364
+ # @return [Integer] Hash code
365
+ def hash
366
+ [id, direction, rfc_message_id, in_reply_to, subject, from, to, snippet, has_attachments, attachments, annotations, received_at, body].hash
367
+ end
368
+
369
+ # Builds the object from hash
370
+ # @param [Hash] attributes Model attributes in the form of hash
371
+ # @return [Object] Returns the model itself
372
+ def self.build_from_hash(attributes)
373
+ return nil unless attributes.is_a?(Hash)
374
+ attributes = attributes.transform_keys(&:to_sym)
375
+ transformed_hash = {}
376
+ openapi_types.each_pair do |key, type|
377
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
378
+ transformed_hash["#{key}"] = nil
379
+ elsif type =~ /\AArray<(.*)>/i
380
+ # check to ensure the input is an array given that the attribute
381
+ # is documented as an array but the input is not
382
+ if attributes[attribute_map[key]].is_a?(Array)
383
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
384
+ end
385
+ elsif !attributes[attribute_map[key]].nil?
386
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
387
+ end
388
+ end
389
+ new(transformed_hash)
390
+ end
391
+
392
+ # Returns the object in the form of hash
393
+ # @return [Hash] Returns the object in the form of hash
394
+ def to_hash
395
+ hash = {}
396
+ self.class.attribute_map.each_pair do |attr, param|
397
+ value = self.send(attr)
398
+ if value.nil?
399
+ is_nullable = self.class.openapi_nullable.include?(attr)
400
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
401
+ end
402
+
403
+ hash[param] = _to_hash(value)
404
+ end
405
+ hash
406
+ end
407
+
408
+ end
409
+
410
+ end
@@ -0,0 +1,165 @@
1
+ =begin
2
+ #lockally control plane
3
+
4
+ #The lockally control plane lets integrators and direct customers manage everything except actual mail data flow (which uses standard JMAP / IMAP / SMTP-submission against the data plane endpoints). **Authentication.** All `/v1/*` endpoints require a Bearer API key in the `Authorization` header. Keys are formatted `lk_live_<8-char-prefix>_<32-char-secret>`, or `lk_test_<...>` for a test key. Create keys in the dashboard, or with `POST /v1/api-keys` using a key that holds `tenant:admin`. The key's plan is checked on every request, so a key stops working if the account moves to a plan without API access, and works again if it moves back. **Errors.** Failures return [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` documents. **Scopes.** Each endpoint requires a specific scope on the presented key. Insufficient scope returns `403` with the required scope name in `detail`.
5
+
6
+ The version of the OpenAPI document: 0.1.0
7
+ Contact: support@lockally.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.23.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Lockally
17
+ class ThreadMessageBodyAllOfBody < ApiModelBase
18
+ attr_accessor :text
19
+
20
+ attr_accessor :html
21
+
22
+ attr_accessor :truncated
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'text' => :'text',
28
+ :'html' => :'html',
29
+ :'truncated' => :'truncated'
30
+ }
31
+ end
32
+
33
+ # Returns attribute mapping this model knows about
34
+ def self.acceptable_attribute_map
35
+ attribute_map
36
+ end
37
+
38
+ # Returns all the JSON keys this model knows about
39
+ def self.acceptable_attributes
40
+ acceptable_attribute_map.values
41
+ end
42
+
43
+ # Attribute type mapping.
44
+ def self.openapi_types
45
+ {
46
+ :'text' => :'String',
47
+ :'html' => :'String',
48
+ :'truncated' => :'Boolean'
49
+ }
50
+ end
51
+
52
+ # List of attributes with nullable: true
53
+ def self.openapi_nullable
54
+ Set.new([
55
+ ])
56
+ end
57
+
58
+ # Initializes the object
59
+ # @param [Hash] attributes Model attributes in the form of hash
60
+ def initialize(attributes = {})
61
+ if (!attributes.is_a?(Hash))
62
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Lockally::ThreadMessageBodyAllOfBody` initialize method"
63
+ end
64
+
65
+ # check to see if the attribute exists and convert string to symbol for hash key
66
+ acceptable_attribute_map = self.class.acceptable_attribute_map
67
+ attributes = attributes.each_with_object({}) { |(k, v), h|
68
+ if (!acceptable_attribute_map.key?(k.to_sym))
69
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Lockally::ThreadMessageBodyAllOfBody`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
70
+ end
71
+ h[k.to_sym] = v
72
+ }
73
+
74
+ if attributes.key?(:'text')
75
+ self.text = attributes[:'text']
76
+ end
77
+
78
+ if attributes.key?(:'html')
79
+ self.html = attributes[:'html']
80
+ end
81
+
82
+ if attributes.key?(:'truncated')
83
+ self.truncated = attributes[:'truncated']
84
+ end
85
+ end
86
+
87
+ # Show invalid properties with the reasons. Usually used together with valid?
88
+ # @return Array for valid properties with the reasons
89
+ def list_invalid_properties
90
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
91
+ invalid_properties = Array.new
92
+ invalid_properties
93
+ end
94
+
95
+ # Check to see if the all the properties in the model are valid
96
+ # @return true if the model is valid
97
+ def valid?
98
+ warn '[DEPRECATED] the `valid?` method is obsolete'
99
+ true
100
+ end
101
+
102
+ # Checks equality by comparing each attribute.
103
+ # @param [Object] Object to be compared
104
+ def ==(o)
105
+ return true if self.equal?(o)
106
+ self.class == o.class &&
107
+ text == o.text &&
108
+ html == o.html &&
109
+ truncated == o.truncated
110
+ end
111
+
112
+ # @see the `==` method
113
+ # @param [Object] Object to be compared
114
+ def eql?(o)
115
+ self == o
116
+ end
117
+
118
+ # Calculates hash code according to all attributes.
119
+ # @return [Integer] Hash code
120
+ def hash
121
+ [text, html, truncated].hash
122
+ end
123
+
124
+ # Builds the object from hash
125
+ # @param [Hash] attributes Model attributes in the form of hash
126
+ # @return [Object] Returns the model itself
127
+ def self.build_from_hash(attributes)
128
+ return nil unless attributes.is_a?(Hash)
129
+ attributes = attributes.transform_keys(&:to_sym)
130
+ transformed_hash = {}
131
+ openapi_types.each_pair do |key, type|
132
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
133
+ transformed_hash["#{key}"] = nil
134
+ elsif type =~ /\AArray<(.*)>/i
135
+ # check to ensure the input is an array given that the attribute
136
+ # is documented as an array but the input is not
137
+ if attributes[attribute_map[key]].is_a?(Array)
138
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
139
+ end
140
+ elsif !attributes[attribute_map[key]].nil?
141
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
142
+ end
143
+ end
144
+ new(transformed_hash)
145
+ end
146
+
147
+ # Returns the object in the form of hash
148
+ # @return [Hash] Returns the object in the form of hash
149
+ def to_hash
150
+ hash = {}
151
+ self.class.attribute_map.each_pair do |attr, param|
152
+ value = self.send(attr)
153
+ if value.nil?
154
+ is_nullable = self.class.openapi_nullable.include?(attr)
155
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
156
+ end
157
+
158
+ hash[param] = _to_hash(value)
159
+ end
160
+ hash
161
+ end
162
+
163
+ end
164
+
165
+ end