coss 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 (351) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/lib/coss/billing/types/usage_billing_request_meter.rb +7 -0
  4. data/lib/coss/client.rb +21 -1
  5. data/lib/coss/domains/client.rb +54 -2
  6. data/lib/coss/domains/types/create_domain_request.rb +2 -0
  7. data/lib/coss/domains/types/list_domains_request.rb +11 -0
  8. data/lib/coss/domains/types/update_domain_request.rb +13 -0
  9. data/lib/coss/email/client.rb +7 -0
  10. data/lib/coss/email/subaccounts/client.rb +322 -0
  11. data/lib/coss/email/subaccounts/types/create_subaccount_request.rb +19 -0
  12. data/lib/coss/email/subaccounts/types/create_subaccount_request_quotas.rb +18 -0
  13. data/lib/coss/email/subaccounts/types/delete_subaccounts_request.rb +13 -0
  14. data/lib/coss/email/subaccounts/types/get_subaccounts_request.rb +13 -0
  15. data/lib/coss/email/subaccounts/types/list_subaccounts_request.rb +15 -0
  16. data/lib/coss/email/subaccounts/types/reinstate_subaccounts_request.rb +13 -0
  17. data/lib/coss/email/subaccounts/types/stats_subaccounts_request.rb +17 -0
  18. data/lib/coss/email/subaccounts/types/update_subaccount_request.rb +23 -0
  19. data/lib/coss/email/subaccounts/types/update_subaccount_request_quotas.rb +18 -0
  20. data/lib/coss/email/subaccounts/types/update_subaccount_request_status.rb +16 -0
  21. data/lib/coss/email/suppressions/client.rb +7 -1
  22. data/lib/coss/email/suppressions/types/check_suppressions_request.rb +2 -0
  23. data/lib/coss/email/suppressions/types/create_suppression_request.rb +2 -0
  24. data/lib/coss/email/suppressions/types/export_suppressions_request.rb +2 -0
  25. data/lib/coss/email/suppressions/types/import_suppressions_request.rb +2 -0
  26. data/lib/coss/email/suppressions/types/list_suppressions_request.rb +2 -0
  27. data/lib/coss/email/types/list_email_request.rb +2 -0
  28. data/lib/coss/forms/client.rb +233 -0
  29. data/lib/coss/forms/submissions/client.rb +229 -0
  30. data/lib/coss/forms/submissions/types/file_submissions_request.rb +17 -0
  31. data/lib/coss/forms/submissions/types/get_submissions_request.rb +15 -0
  32. data/lib/coss/forms/submissions/types/list_submissions_request.rb +19 -0
  33. data/lib/coss/forms/submissions/types/release_submissions_request.rb +15 -0
  34. data/lib/coss/forms/submissions/types/remove_submissions_request.rb +15 -0
  35. data/lib/coss/forms/types/create_form_request.rb +33 -0
  36. data/lib/coss/forms/types/create_form_request_contacts.rb +23 -0
  37. data/lib/coss/forms/types/create_form_request_files.rb +17 -0
  38. data/lib/coss/forms/types/create_form_request_hosted.rb +19 -0
  39. data/lib/coss/forms/types/create_form_request_notifications.rb +13 -0
  40. data/lib/coss/forms/types/create_form_request_spam.rb +19 -0
  41. data/lib/coss/forms/types/create_form_request_spam_captcha.rb +14 -0
  42. data/lib/coss/forms/types/create_form_request_spam_on_review.rb +14 -0
  43. data/lib/coss/forms/types/create_form_request_submitter.rb +15 -0
  44. data/lib/coss/forms/types/get_forms_request.rb +11 -0
  45. data/lib/coss/forms/types/list_forms_request.rb +13 -0
  46. data/lib/coss/forms/types/remove_forms_request.rb +11 -0
  47. data/lib/coss/forms/types/update_form_request.rb +35 -0
  48. data/lib/coss/forms/types/update_form_request_contacts.rb +23 -0
  49. data/lib/coss/forms/types/update_form_request_files.rb +17 -0
  50. data/lib/coss/forms/types/update_form_request_hosted.rb +19 -0
  51. data/lib/coss/forms/types/update_form_request_notifications.rb +13 -0
  52. data/lib/coss/forms/types/update_form_request_spam.rb +19 -0
  53. data/lib/coss/forms/types/update_form_request_spam_captcha.rb +14 -0
  54. data/lib/coss/forms/types/update_form_request_spam_on_review.rb +14 -0
  55. data/lib/coss/forms/types/update_form_request_submitter.rb +15 -0
  56. data/lib/coss/inboxes/client.rb +234 -0
  57. data/lib/coss/inboxes/messages/client.rb +259 -0
  58. data/lib/coss/inboxes/messages/types/get_attachment_messages_request.rb +17 -0
  59. data/lib/coss/inboxes/messages/types/get_messages_request.rb +15 -0
  60. data/lib/coss/inboxes/messages/types/list_messages_request.rb +19 -0
  61. data/lib/coss/inboxes/messages/types/list_messages_request_direction.rb +16 -0
  62. data/lib/coss/inboxes/messages/types/reply_inbox_message_request.rb +31 -0
  63. data/lib/coss/inboxes/messages/types/reply_inbox_message_request_bcc.rb +17 -0
  64. data/lib/coss/inboxes/messages/types/reply_inbox_message_request_cc.rb +17 -0
  65. data/lib/coss/inboxes/messages/types/reply_inbox_message_request_tags_item.rb +15 -0
  66. data/lib/coss/inboxes/messages/types/send_inbox_message_request.rb +31 -0
  67. data/lib/coss/inboxes/messages/types/send_inbox_message_request_bcc.rb +17 -0
  68. data/lib/coss/inboxes/messages/types/send_inbox_message_request_cc.rb +17 -0
  69. data/lib/coss/inboxes/messages/types/send_inbox_message_request_tags_item.rb +15 -0
  70. data/lib/coss/inboxes/messages/types/send_inbox_message_request_to.rb +17 -0
  71. data/lib/coss/inboxes/threads/client.rb +147 -0
  72. data/lib/coss/inboxes/threads/types/delete_threads_request.rb +15 -0
  73. data/lib/coss/inboxes/threads/types/get_threads_request.rb +15 -0
  74. data/lib/coss/inboxes/threads/types/list_threads_request.rb +17 -0
  75. data/lib/coss/inboxes/types/create_inbox_request.rb +17 -0
  76. data/lib/coss/inboxes/types/delete_inboxes_request.rb +11 -0
  77. data/lib/coss/inboxes/types/get_inboxes_request.rb +11 -0
  78. data/lib/coss/inboxes/types/list_inboxes_request.rb +13 -0
  79. data/lib/coss/inboxes/types/update_inbox_request.rb +13 -0
  80. data/lib/coss/risk/client.rb +46 -0
  81. data/lib/coss/risk/types/risk_phone_check_request.rb +11 -0
  82. data/lib/coss/sign/client.rb +39 -0
  83. data/lib/coss/sign/documents/client.rb +177 -0
  84. data/lib/coss/sign/documents/types/get_documents_request.rb +13 -0
  85. data/lib/coss/sign/documents/types/list_documents_request.rb +15 -0
  86. data/lib/coss/sign/documents/types/remove_documents_request.rb +13 -0
  87. data/lib/coss/sign/documents/types/upload_sign_document_request.rb +15 -0
  88. data/lib/coss/sign/requests/client.rb +409 -0
  89. data/lib/coss/sign/requests/types/audit_trail_requests_request.rb +13 -0
  90. data/lib/coss/sign/requests/types/cancel_requests_request.rb +13 -0
  91. data/lib/coss/sign/requests/types/create_sign_request_request.rb +31 -0
  92. data/lib/coss/sign/requests/types/create_sign_request_request_documents_item.rb +17 -0
  93. data/lib/coss/sign/requests/types/create_sign_request_request_documents_item_content.rb +15 -0
  94. data/lib/coss/sign/requests/types/create_sign_request_request_documents_item_document_id.rb +13 -0
  95. data/lib/coss/sign/requests/types/create_sign_request_request_signers_item.rb +23 -0
  96. data/lib/coss/sign/requests/types/create_sign_request_request_signers_item_delivery.rb +16 -0
  97. data/lib/coss/sign/requests/types/create_sign_request_request_signing_order.rb +16 -0
  98. data/lib/coss/sign/requests/types/get_requests_request.rb +13 -0
  99. data/lib/coss/sign/requests/types/list_requests_request.rb +17 -0
  100. data/lib/coss/sign/requests/types/remind_requests_request.rb +13 -0
  101. data/lib/coss/sign/requests/types/remove_requests_request.rb +13 -0
  102. data/lib/coss/sign/requests/types/send_requests_request.rb +13 -0
  103. data/lib/coss/sign/requests/types/signed_document_requests_request.rb +13 -0
  104. data/lib/coss/sign/sessions/client.rb +69 -0
  105. data/lib/coss/sign/sessions/types/create_sign_session_request.rb +17 -0
  106. data/lib/coss/sign/settings/client.rb +92 -0
  107. data/lib/coss/sign/settings/types/update_sign_settings_request.rb +25 -0
  108. data/lib/coss/sign/settings/types/update_sign_settings_request_theme.rb +17 -0
  109. data/lib/coss/sign/templates/client.rb +374 -0
  110. data/lib/coss/sign/templates/types/create_sign_builder_session_request.rb +15 -0
  111. data/lib/coss/sign/templates/types/create_sign_request_from_template_request.rb +33 -0
  112. data/lib/coss/sign/templates/types/create_sign_request_from_template_request_signers_item.rb +23 -0
  113. data/lib/coss/sign/templates/types/create_sign_request_from_template_request_signers_item_delivery.rb +16 -0
  114. data/lib/coss/sign/templates/types/create_sign_request_from_template_request_signing_order.rb +16 -0
  115. data/lib/coss/sign/templates/types/create_sign_template_request.rb +25 -0
  116. data/lib/coss/sign/templates/types/create_sign_template_request_documents_item.rb +17 -0
  117. data/lib/coss/sign/templates/types/create_sign_template_request_documents_item_content.rb +15 -0
  118. data/lib/coss/sign/templates/types/create_sign_template_request_documents_item_document_id.rb +13 -0
  119. data/lib/coss/sign/templates/types/create_sign_template_request_fields_item.rb +17 -0
  120. data/lib/coss/sign/templates/types/create_sign_template_request_fields_item_anchor.rb +31 -0
  121. data/lib/coss/sign/templates/types/create_sign_template_request_fields_item_anchor_type.rb +21 -0
  122. data/lib/coss/sign/templates/types/create_sign_template_request_fields_item_document.rb +33 -0
  123. data/lib/coss/sign/templates/types/create_sign_template_request_fields_item_document_type.rb +21 -0
  124. data/lib/coss/sign/templates/types/create_sign_template_request_roles_item.rb +15 -0
  125. data/lib/coss/sign/templates/types/create_sign_template_request_signing_order.rb +16 -0
  126. data/lib/coss/sign/templates/types/get_templates_request.rb +13 -0
  127. data/lib/coss/sign/templates/types/list_templates_request.rb +15 -0
  128. data/lib/coss/sign/templates/types/remove_templates_request.rb +13 -0
  129. data/lib/coss/sign/templates/types/update_sign_template_request.rb +27 -0
  130. data/lib/coss/sign/templates/types/update_sign_template_request_documents_item.rb +17 -0
  131. data/lib/coss/sign/templates/types/update_sign_template_request_documents_item_content.rb +15 -0
  132. data/lib/coss/sign/templates/types/update_sign_template_request_documents_item_document_id.rb +13 -0
  133. data/lib/coss/sign/templates/types/update_sign_template_request_fields_item.rb +17 -0
  134. data/lib/coss/sign/templates/types/update_sign_template_request_fields_item_anchor.rb +31 -0
  135. data/lib/coss/sign/templates/types/update_sign_template_request_fields_item_anchor_type.rb +21 -0
  136. data/lib/coss/sign/templates/types/update_sign_template_request_fields_item_document.rb +33 -0
  137. data/lib/coss/sign/templates/types/update_sign_template_request_fields_item_document_type.rb +21 -0
  138. data/lib/coss/sign/templates/types/update_sign_template_request_roles_item.rb +15 -0
  139. data/lib/coss/sign/templates/types/update_sign_template_request_signing_order.rb +16 -0
  140. data/lib/coss/types/billing_limits.rb +2 -0
  141. data/lib/coss/types/billing_usage_item_meter.rb +7 -0
  142. data/lib/coss/types/billing_webhook_event_three_data_meter.rb +7 -0
  143. data/lib/coss/types/contact_source.rb +1 -0
  144. data/lib/coss/types/contact_webhook_event_data_source.rb +1 -0
  145. data/lib/coss/types/credit_meter.rb +7 -0
  146. data/lib/coss/types/credit_meters_item.rb +7 -0
  147. data/lib/coss/types/deleted_form.rb +13 -0
  148. data/lib/coss/types/deleted_form_object.rb +11 -0
  149. data/lib/coss/types/deleted_form_submission.rb +13 -0
  150. data/lib/coss/types/deleted_form_submission_object.rb +11 -0
  151. data/lib/coss/types/deleted_inbox.rb +13 -0
  152. data/lib/coss/types/deleted_inbox_object.rb +11 -0
  153. data/lib/coss/types/deleted_inbox_thread.rb +13 -0
  154. data/lib/coss/types/deleted_inbox_thread_object.rb +11 -0
  155. data/lib/coss/types/deleted_sign_document.rb +13 -0
  156. data/lib/coss/types/deleted_sign_document_object.rb +11 -0
  157. data/lib/coss/types/deleted_sign_request.rb +13 -0
  158. data/lib/coss/types/deleted_sign_request_object.rb +11 -0
  159. data/lib/coss/types/deleted_sign_template.rb +13 -0
  160. data/lib/coss/types/deleted_sign_template_object.rb +11 -0
  161. data/lib/coss/types/domain.rb +4 -0
  162. data/lib/coss/types/email.rb +2 -0
  163. data/lib/coss/types/email_summary.rb +2 -0
  164. data/lib/coss/types/email_webhook_event_data.rb +2 -0
  165. data/lib/coss/types/error_body.rb +2 -0
  166. data/lib/coss/types/form.rb +47 -0
  167. data/lib/coss/types/form_contacts.rb +21 -0
  168. data/lib/coss/types/form_field.rb +21 -0
  169. data/lib/coss/types/form_field_input.rb +21 -0
  170. data/lib/coss/types/form_field_input_type.rb +22 -0
  171. data/lib/coss/types/form_field_type.rb +22 -0
  172. data/lib/coss/types/form_files.rb +15 -0
  173. data/lib/coss/types/form_hosted.rb +19 -0
  174. data/lib/coss/types/form_list.rb +13 -0
  175. data/lib/coss/types/form_list_object.rb +11 -0
  176. data/lib/coss/types/form_notifications.rb +11 -0
  177. data/lib/coss/types/form_object.rb +11 -0
  178. data/lib/coss/types/form_spam.rb +17 -0
  179. data/lib/coss/types/form_spam_captcha.rb +12 -0
  180. data/lib/coss/types/form_spam_on_review.rb +12 -0
  181. data/lib/coss/types/form_submission.rb +43 -0
  182. data/lib/coss/types/form_submission_data_value.rb +13 -0
  183. data/lib/coss/types/form_submission_file.rb +17 -0
  184. data/lib/coss/types/form_submission_list.rb +13 -0
  185. data/lib/coss/types/form_submission_list_object.rb +11 -0
  186. data/lib/coss/types/form_submission_object.rb +11 -0
  187. data/lib/coss/types/form_submission_risk.rb +14 -0
  188. data/lib/coss/types/form_submission_risk_decision.rb +13 -0
  189. data/lib/coss/types/form_submission_spam_reason.rb +14 -0
  190. data/lib/coss/types/form_submission_status.rb +14 -0
  191. data/lib/coss/types/form_submission_webhook_event.rb +19 -0
  192. data/lib/coss/types/form_submission_webhook_event_data.rb +27 -0
  193. data/lib/coss/types/form_submission_webhook_event_data_data_value.rb +13 -0
  194. data/lib/coss/types/form_submission_webhook_event_data_spam_reason.rb +14 -0
  195. data/lib/coss/types/form_submission_webhook_event_data_status.rb +14 -0
  196. data/lib/coss/types/form_submission_webhook_event_object.rb +11 -0
  197. data/lib/coss/types/form_submission_webhook_event_type.rb +12 -0
  198. data/lib/coss/types/form_submitter.rb +13 -0
  199. data/lib/coss/types/inbox.rb +31 -0
  200. data/lib/coss/types/inbox_kind.rb +12 -0
  201. data/lib/coss/types/inbox_list.rb +13 -0
  202. data/lib/coss/types/inbox_list_object.rb +11 -0
  203. data/lib/coss/types/inbox_message.rb +55 -0
  204. data/lib/coss/types/inbox_message_direction.rb +12 -0
  205. data/lib/coss/types/inbox_message_list.rb +13 -0
  206. data/lib/coss/types/inbox_message_list_object.rb +11 -0
  207. data/lib/coss/types/inbox_message_object.rb +11 -0
  208. data/lib/coss/types/inbox_message_received_webhook_event.rb +19 -0
  209. data/lib/coss/types/inbox_message_received_webhook_event_data.rb +33 -0
  210. data/lib/coss/types/inbox_message_received_webhook_event_object.rb +11 -0
  211. data/lib/coss/types/inbox_message_received_webhook_event_type.rb +11 -0
  212. data/lib/coss/types/inbox_message_status.rb +16 -0
  213. data/lib/coss/types/inbox_message_summary.rb +39 -0
  214. data/lib/coss/types/inbox_message_summary_direction.rb +12 -0
  215. data/lib/coss/types/inbox_message_summary_object.rb +11 -0
  216. data/lib/coss/types/inbox_message_summary_status.rb +16 -0
  217. data/lib/coss/types/inbox_object.rb +11 -0
  218. data/lib/coss/types/inbox_thread.rb +29 -0
  219. data/lib/coss/types/inbox_thread_list.rb +13 -0
  220. data/lib/coss/types/inbox_thread_list_object.rb +11 -0
  221. data/lib/coss/types/inbox_thread_object.rb +11 -0
  222. data/lib/coss/types/inbox_thread_summary.rb +27 -0
  223. data/lib/coss/types/inbox_thread_summary_object.rb +11 -0
  224. data/lib/coss/types/invoice_line_meter.rb +7 -0
  225. data/lib/coss/types/log_drain_source.rb +3 -0
  226. data/lib/coss/types/log_source.rb +3 -0
  227. data/lib/coss/types/risk_phone_carrier.rb +13 -0
  228. data/lib/coss/types/risk_phone_check.rb +23 -0
  229. data/lib/coss/types/risk_phone_check_degraded_item.rb +12 -0
  230. data/lib/coss/types/risk_phone_check_line_type.rb +22 -0
  231. data/lib/coss/types/risk_phone_check_object.rb +11 -0
  232. data/lib/coss/types/risk_phone_sim_swap.rb +13 -0
  233. data/lib/coss/types/send_email_request.rb +2 -0
  234. data/lib/coss/types/sign_builder_session.rb +19 -0
  235. data/lib/coss/types/sign_builder_session_object.rb +11 -0
  236. data/lib/coss/types/sign_document.rb +27 -0
  237. data/lib/coss/types/sign_document_anchors_item.rb +20 -0
  238. data/lib/coss/types/sign_document_list.rb +13 -0
  239. data/lib/coss/types/sign_document_list_object.rb +11 -0
  240. data/lib/coss/types/sign_document_object.rb +11 -0
  241. data/lib/coss/types/sign_document_pages_item.rb +11 -0
  242. data/lib/coss/types/sign_event.rb +31 -0
  243. data/lib/coss/types/sign_event_actor.rb +14 -0
  244. data/lib/coss/types/sign_event_details.rb +23 -0
  245. data/lib/coss/types/sign_event_list.rb +13 -0
  246. data/lib/coss/types/sign_event_list_object.rb +11 -0
  247. data/lib/coss/types/sign_event_object.rb +11 -0
  248. data/lib/coss/types/sign_event_type.rb +22 -0
  249. data/lib/coss/types/sign_field.rb +33 -0
  250. data/lib/coss/types/sign_field_input.rb +13 -0
  251. data/lib/coss/types/sign_field_input_anchor.rb +23 -0
  252. data/lib/coss/types/sign_field_input_anchor_type.rb +17 -0
  253. data/lib/coss/types/sign_field_input_document.rb +25 -0
  254. data/lib/coss/types/sign_field_input_document_type.rb +17 -0
  255. data/lib/coss/types/sign_field_object.rb +11 -0
  256. data/lib/coss/types/sign_field_type.rb +17 -0
  257. data/lib/coss/types/sign_request.rb +47 -0
  258. data/lib/coss/types/sign_request_documents_item.rb +15 -0
  259. data/lib/coss/types/sign_request_list.rb +13 -0
  260. data/lib/coss/types/sign_request_list_object.rb +11 -0
  261. data/lib/coss/types/sign_request_object.rb +11 -0
  262. data/lib/coss/types/sign_request_signed_document.rb +11 -0
  263. data/lib/coss/types/sign_request_signing_order.rb +12 -0
  264. data/lib/coss/types/sign_request_status.rb +16 -0
  265. data/lib/coss/types/sign_request_webhook_event.rb +19 -0
  266. data/lib/coss/types/sign_request_webhook_event_data.rb +23 -0
  267. data/lib/coss/types/sign_request_webhook_event_data_signer.rb +18 -0
  268. data/lib/coss/types/sign_request_webhook_event_data_signer_status.rb +15 -0
  269. data/lib/coss/types/sign_request_webhook_event_data_status.rb +16 -0
  270. data/lib/coss/types/sign_request_webhook_event_object.rb +11 -0
  271. data/lib/coss/types/sign_request_webhook_event_type.rb +17 -0
  272. data/lib/coss/types/sign_session.rb +21 -0
  273. data/lib/coss/types/sign_session_object.rb +11 -0
  274. data/lib/coss/types/sign_settings.rb +23 -0
  275. data/lib/coss/types/sign_settings_object.rb +11 -0
  276. data/lib/coss/types/sign_settings_theme.rb +13 -0
  277. data/lib/coss/types/sign_signer.rb +33 -0
  278. data/lib/coss/types/sign_signer_authentication.rb +12 -0
  279. data/lib/coss/types/sign_signer_delivery.rb +12 -0
  280. data/lib/coss/types/sign_signer_object.rb +11 -0
  281. data/lib/coss/types/sign_signer_status.rb +15 -0
  282. data/lib/coss/types/sign_template.rb +33 -0
  283. data/lib/coss/types/sign_template_documents_item.rb +17 -0
  284. data/lib/coss/types/sign_template_documents_item_pages_item.rb +11 -0
  285. data/lib/coss/types/sign_template_fields_item.rb +31 -0
  286. data/lib/coss/types/sign_template_fields_item_type.rb +17 -0
  287. data/lib/coss/types/sign_template_list.rb +13 -0
  288. data/lib/coss/types/sign_template_list_object.rb +11 -0
  289. data/lib/coss/types/sign_template_object.rb +11 -0
  290. data/lib/coss/types/sign_template_roles_item.rb +11 -0
  291. data/lib/coss/types/sign_template_signing_order.rb +12 -0
  292. data/lib/coss/types/subaccount.rb +27 -0
  293. data/lib/coss/types/subaccount_list.rb +13 -0
  294. data/lib/coss/types/subaccount_list_object.rb +11 -0
  295. data/lib/coss/types/subaccount_object.rb +11 -0
  296. data/lib/coss/types/subaccount_quotas.rb +13 -0
  297. data/lib/coss/types/subaccount_reputation.rb +15 -0
  298. data/lib/coss/types/subaccount_reputation_status.rb +13 -0
  299. data/lib/coss/types/subaccount_stats.rb +17 -0
  300. data/lib/coss/types/subaccount_stats_day.rb +23 -0
  301. data/lib/coss/types/subaccount_stats_object.rb +11 -0
  302. data/lib/coss/types/subaccount_status.rb +13 -0
  303. data/lib/coss/types/subaccount_webhook_event.rb +19 -0
  304. data/lib/coss/types/subaccount_webhook_event_data.rb +21 -0
  305. data/lib/coss/types/subaccount_webhook_event_data_previous_status.rb +13 -0
  306. data/lib/coss/types/subaccount_webhook_event_data_status.rb +13 -0
  307. data/lib/coss/types/subaccount_webhook_event_object.rb +11 -0
  308. data/lib/coss/types/subaccount_webhook_event_type.rb +14 -0
  309. data/lib/coss/types/suppression.rb +2 -0
  310. data/lib/coss/types/usage_meter.rb +7 -0
  311. data/lib/coss/types/verification.rb +39 -0
  312. data/lib/coss/types/verification_channel.rb +12 -0
  313. data/lib/coss/types/verification_check.rb +13 -0
  314. data/lib/coss/types/verification_check_object.rb +11 -0
  315. data/lib/coss/types/verification_failure.rb +12 -0
  316. data/lib/coss/types/verification_list.rb +13 -0
  317. data/lib/coss/types/verification_list_object.rb +11 -0
  318. data/lib/coss/types/verification_object.rb +11 -0
  319. data/lib/coss/types/verification_reasons_item.rb +12 -0
  320. data/lib/coss/types/verification_send.rb +17 -0
  321. data/lib/coss/types/verification_send_channel.rb +12 -0
  322. data/lib/coss/types/verification_send_route.rb +14 -0
  323. data/lib/coss/types/verification_status.rb +16 -0
  324. data/lib/coss/types/verification_tags_item.rb +11 -0
  325. data/lib/coss/types/verification_webhook_event.rb +19 -0
  326. data/lib/coss/types/verification_webhook_event_data.rb +25 -0
  327. data/lib/coss/types/verification_webhook_event_data_channel.rb +12 -0
  328. data/lib/coss/types/verification_webhook_event_data_failure.rb +11 -0
  329. data/lib/coss/types/verification_webhook_event_data_reasons_item.rb +12 -0
  330. data/lib/coss/types/verification_webhook_event_data_status.rb +16 -0
  331. data/lib/coss/types/verification_webhook_event_data_tags_item.rb +11 -0
  332. data/lib/coss/types/verification_webhook_event_object.rb +11 -0
  333. data/lib/coss/types/verification_webhook_event_type.rb +13 -0
  334. data/lib/coss/types/webhook_test_event_event.rb +8 -0
  335. data/lib/coss/verify/client.rb +248 -0
  336. data/lib/coss/verify/types/cancel_verify_request.rb +11 -0
  337. data/lib/coss/verify/types/check_verification_request.rb +17 -0
  338. data/lib/coss/verify/types/get_verify_request.rb +11 -0
  339. data/lib/coss/verify/types/list_verify_request.rb +17 -0
  340. data/lib/coss/verify/types/list_verify_request_status.rb +18 -0
  341. data/lib/coss/verify/types/start_verification_request.rb +21 -0
  342. data/lib/coss/verify/types/start_verification_request_channel.rb +14 -0
  343. data/lib/coss/verify/types/start_verification_request_tags_item.rb +13 -0
  344. data/lib/coss/version.rb +1 -1
  345. data/lib/coss/webhook_endpoints/types/create_webhook_endpoint_request_event_types_item.rb +17 -0
  346. data/lib/coss/webhook_endpoints/types/update_webhook_endpoint_request_event_types_item.rb +17 -0
  347. data/lib/coss/webhook_events/types/create_test_webhook_event_request_type.rb +17 -0
  348. data/lib/coss/webhook_listeners/types/create_webhook_listener_request_event_types_item.rb +17 -0
  349. data/lib/coss.rb +309 -0
  350. data/reference.md +7422 -2479
  351. metadata +310 -1
@@ -0,0 +1,234 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Inboxes
5
+ class Client
6
+ # @param client [Coss::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # The environment's inboxes, newest first. Pass the last `id` as `after` to get the next page while `has_more` is
14
+ # true.
15
+ #
16
+ # @param request_options [Hash]
17
+ # @param params [Hash]
18
+ # @option request_options [String] :base_url
19
+ # @option request_options [Hash{String => Object}] :additional_headers
20
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
21
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
22
+ # @option request_options [Integer] :timeout_in_seconds
23
+ # @option params [Integer, nil] :limit
24
+ # @option params [String, nil] :after
25
+ #
26
+ # @example
27
+ # client.inboxes.list
28
+ #
29
+ # @return [Coss::Types::InboxList]
30
+ def list(request_options: {}, **params)
31
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
32
+ query_params = {}
33
+ query_params["limit"] = params[:limit] if params.key?(:limit)
34
+ query_params["after"] = params[:after] if params.key?(:after)
35
+
36
+ request = Coss::Internal::JSON::Request.new(
37
+ base_url: request_options[:base_url],
38
+ method: "GET",
39
+ path: "v1/inboxes",
40
+ query: query_params,
41
+ request_options: request_options
42
+ )
43
+ begin
44
+ response = @client.send(request)
45
+ rescue Net::HTTPRequestTimeout
46
+ raise Coss::Errors::TimeoutError
47
+ end
48
+ code = response.code.to_i
49
+ if code.between?(200, 299)
50
+ (response.body.to_s.empty? ? nil : Coss::Types::InboxList.load(response.body))
51
+ else
52
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
53
+ raise error_class.new(response.body, code: code)
54
+ end
55
+ end
56
+
57
+ # Gives an agent (or anyone) its own email address in the API key's environment: `username@<the environment's
58
+ # inbound domain>`, which needs no DNS setup, or an address at one of the environment's receiving domains
59
+ # (`domain`). Mail to it is kept as threads, and each message that arrives sends an `inbox.message.received`
60
+ # webhook. With a `client_id` that already has an inbox, that inbox is returned (200) instead of a new one.
61
+ #
62
+ # @param request_options [Hash]
63
+ # @param params [Coss::Inboxes::Types::CreateInboxRequest]
64
+ # @option request_options [String] :base_url
65
+ # @option request_options [Hash{String => Object}] :additional_headers
66
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
67
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
68
+ # @option request_options [Integer] :timeout_in_seconds
69
+ #
70
+ # @example
71
+ # client.inboxes.create(
72
+ # username: "support-agent",
73
+ # display_name: "Acme Support",
74
+ # client_id: "agent-42"
75
+ # )
76
+ #
77
+ # @return [Coss::Types::Inbox]
78
+ def create(request_options: {}, **params)
79
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
80
+ headers = { "Idempotency-Key" => Coss::Internal::IdempotencyKey.generate }
81
+ request = Coss::Internal::JSON::Request.new(
82
+ base_url: request_options[:base_url],
83
+ method: "POST",
84
+ path: "v1/inboxes",
85
+ headers: headers,
86
+ body: Coss::Inboxes::Types::CreateInboxRequest.new(params).to_h,
87
+ request_options: request_options,
88
+ max_retries: 0
89
+ )
90
+ begin
91
+ response = @client.send(request)
92
+ rescue Net::HTTPRequestTimeout
93
+ raise Coss::Errors::TimeoutError
94
+ end
95
+ code = response.code.to_i
96
+ if code.between?(200, 299)
97
+ (response.body.to_s.empty? ? nil : Coss::Types::Inbox.load(response.body))
98
+ else
99
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
100
+ raise error_class.new(response.body, code: code)
101
+ end
102
+ end
103
+
104
+ # @param request_options [Hash]
105
+ # @param params [Hash]
106
+ # @option request_options [String] :base_url
107
+ # @option request_options [Hash{String => Object}] :additional_headers
108
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
109
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
110
+ # @option request_options [Integer] :timeout_in_seconds
111
+ # @option params [String] :inbox_id
112
+ #
113
+ # @example
114
+ # client.inboxes.get(inbox_id: "inbox_01k7c8m4q2f3e9v6t5r1n0p8yz")
115
+ #
116
+ # @return [Coss::Types::Inbox]
117
+ def get(request_options: {}, **params)
118
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
119
+ request = Coss::Internal::JSON::Request.new(
120
+ base_url: request_options[:base_url],
121
+ method: "GET",
122
+ path: "v1/inboxes/#{URI.encode_uri_component(params[:inbox_id].to_s)}",
123
+ request_options: request_options
124
+ )
125
+ begin
126
+ response = @client.send(request)
127
+ rescue Net::HTTPRequestTimeout
128
+ raise Coss::Errors::TimeoutError
129
+ end
130
+ code = response.code.to_i
131
+ if code.between?(200, 299)
132
+ (response.body.to_s.empty? ? nil : Coss::Types::Inbox.load(response.body))
133
+ else
134
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
135
+ raise error_class.new(response.body, code: code)
136
+ end
137
+ end
138
+
139
+ # Deletes the inbox and its threads. The received emails and emails they held stay in the environment until their
140
+ # retention ends, and mail to the address is still received by the environment (without a thread or
141
+ # `inbox.message.received` webhook).
142
+ #
143
+ # @param request_options [Hash]
144
+ # @param params [Hash]
145
+ # @option request_options [String] :base_url
146
+ # @option request_options [Hash{String => Object}] :additional_headers
147
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
148
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
149
+ # @option request_options [Integer] :timeout_in_seconds
150
+ # @option params [String] :inbox_id
151
+ #
152
+ # @example
153
+ # client.inboxes.delete(inbox_id: "inbox_01k7c8m4q2f3e9v6t5r1n0p8yz")
154
+ #
155
+ # @return [Coss::Types::DeletedInbox]
156
+ def delete(request_options: {}, **params)
157
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
158
+ request = Coss::Internal::JSON::Request.new(
159
+ base_url: request_options[:base_url],
160
+ method: "DELETE",
161
+ path: "v1/inboxes/#{URI.encode_uri_component(params[:inbox_id].to_s)}",
162
+ request_options: request_options
163
+ )
164
+ begin
165
+ response = @client.send(request)
166
+ rescue Net::HTTPRequestTimeout
167
+ raise Coss::Errors::TimeoutError
168
+ end
169
+ code = response.code.to_i
170
+ if code.between?(200, 299)
171
+ (response.body.to_s.empty? ? nil : Coss::Types::DeletedInbox.load(response.body))
172
+ else
173
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
174
+ raise error_class.new(response.body, code: code)
175
+ end
176
+ end
177
+
178
+ # Changes the name messages from the inbox are sent with. Its address never changes.
179
+ #
180
+ # @param request_options [Hash]
181
+ # @param params [Coss::Inboxes::Types::UpdateInboxRequest]
182
+ # @option request_options [String] :base_url
183
+ # @option request_options [Hash{String => Object}] :additional_headers
184
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
185
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
186
+ # @option request_options [Integer] :timeout_in_seconds
187
+ # @option params [String] :inbox_id
188
+ #
189
+ # @example
190
+ # client.inboxes.update(
191
+ # inbox_id: "inbox_01k7c8m4q2f3e9v6t5r1n0p8yz",
192
+ # display_name: "Acme Help"
193
+ # )
194
+ #
195
+ # @return [Coss::Types::Inbox]
196
+ def update(request_options: {}, **params)
197
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
198
+ request_data = Coss::Inboxes::Types::UpdateInboxRequest.new(params).to_h
199
+ non_body_param_names = %w[inbox_id]
200
+ body = request_data.except(*non_body_param_names)
201
+
202
+ request = Coss::Internal::JSON::Request.new(
203
+ base_url: request_options[:base_url],
204
+ method: "PATCH",
205
+ path: "v1/inboxes/#{URI.encode_uri_component(params[:inbox_id].to_s)}",
206
+ body: body,
207
+ request_options: request_options
208
+ )
209
+ begin
210
+ response = @client.send(request)
211
+ rescue Net::HTTPRequestTimeout
212
+ raise Coss::Errors::TimeoutError
213
+ end
214
+ code = response.code.to_i
215
+ if code.between?(200, 299)
216
+ (response.body.to_s.empty? ? nil : Coss::Types::Inbox.load(response.body))
217
+ else
218
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
219
+ raise error_class.new(response.body, code: code)
220
+ end
221
+ end
222
+
223
+ # @return [Coss::Threads::Client]
224
+ def threads
225
+ @threads ||= Coss::Inboxes::Threads::Client.new(client: @client)
226
+ end
227
+
228
+ # @return [Coss::Messages::Client]
229
+ def messages
230
+ @messages ||= Coss::Inboxes::Messages::Client.new(client: @client)
231
+ end
232
+ end
233
+ end
234
+ end
@@ -0,0 +1,259 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Inboxes
5
+ module Messages
6
+ class Client
7
+ # @param client [Coss::Internal::Http::RawClient]
8
+ #
9
+ # @return [void]
10
+ def initialize(client:)
11
+ @client = client
12
+ end
13
+
14
+ # Messages of every thread, newest first, with a preview instead of their bodies (retrieve one for those). Pass
15
+ # the last `id` as `after` to get the next page while `has_more` is true.
16
+ #
17
+ # @param request_options [Hash]
18
+ # @param params [Hash]
19
+ # @option request_options [String] :base_url
20
+ # @option request_options [Hash{String => Object}] :additional_headers
21
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
22
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
23
+ # @option request_options [Integer] :timeout_in_seconds
24
+ # @option params [String] :inbox_id
25
+ # @option params [Integer, nil] :limit
26
+ # @option params [String, nil] :after
27
+ # @option params [Coss::Inboxes::Messages::Types::ListMessagesRequestDirection, nil] :direction
28
+ #
29
+ # @example
30
+ # client.inboxes.messages.list(inbox_id: "inbox_01k7c8m4q2f3e9v6t5r1n0p8yz")
31
+ #
32
+ # @return [Coss::Types::InboxMessageList]
33
+ def list(request_options: {}, **params)
34
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
35
+ query_params = {}
36
+ query_params["limit"] = params[:limit] if params.key?(:limit)
37
+ query_params["after"] = params[:after] if params.key?(:after)
38
+ query_params["direction"] = params[:direction] if params.key?(:direction)
39
+
40
+ request = Coss::Internal::JSON::Request.new(
41
+ base_url: request_options[:base_url],
42
+ method: "GET",
43
+ path: "v1/inboxes/#{URI.encode_uri_component(params[:inbox_id].to_s)}/messages",
44
+ query: query_params,
45
+ request_options: request_options
46
+ )
47
+ begin
48
+ response = @client.send(request)
49
+ rescue Net::HTTPRequestTimeout
50
+ raise Coss::Errors::TimeoutError
51
+ end
52
+ code = response.code.to_i
53
+ if code.between?(200, 299)
54
+ (response.body.to_s.empty? ? nil : Coss::Types::InboxMessageList.load(response.body))
55
+ else
56
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
57
+ raise error_class.new(response.body, code: code)
58
+ end
59
+ end
60
+
61
+ # Starts a thread with a message from the inbox's address, sent like any email (its `email_id` has its delivery
62
+ # events and webhooks; never tracked). Replies to it arrive in the same thread. Live inboxes send only from
63
+ # receiving domains under one of the organization's verified domains (`can_send`); sandbox ones always can, and
64
+ # deliver nothing. Recipients count against the send quota.
65
+ #
66
+ # @param request_options [Hash]
67
+ # @param params [Coss::Inboxes::Messages::Types::SendInboxMessageRequest]
68
+ # @option request_options [String] :base_url
69
+ # @option request_options [Hash{String => Object}] :additional_headers
70
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
71
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
72
+ # @option request_options [Integer] :timeout_in_seconds
73
+ # @option params [String] :inbox_id
74
+ # @option params [String, nil] :idempotency_key
75
+ #
76
+ # @example
77
+ # client.inboxes.messages.send_(
78
+ # inbox_id: "inbox_01k7c8m4q2f3e9v6t5r1n0p8yz",
79
+ # idempotency_key: "welcome-user-123",
80
+ # to: "jane@example.com",
81
+ # subject: "Your order",
82
+ # text: "Hi Jane, your order has shipped."
83
+ # )
84
+ #
85
+ # @return [Coss::Types::InboxMessage]
86
+ def send_(request_options: {}, **params)
87
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
88
+ request_data = Coss::Inboxes::Messages::Types::SendInboxMessageRequest.new(params).to_h
89
+ non_body_param_names = %w[inbox_id Idempotency-Key]
90
+ body = request_data.except(*non_body_param_names)
91
+
92
+ headers = {}
93
+ headers["Idempotency-Key"] = params[:idempotency_key] if params[:idempotency_key]
94
+
95
+ request = Coss::Internal::JSON::Request.new(
96
+ base_url: request_options[:base_url],
97
+ method: "POST",
98
+ path: "v1/inboxes/#{URI.encode_uri_component(params[:inbox_id].to_s)}/messages",
99
+ headers: headers,
100
+ body: body,
101
+ request_options: request_options
102
+ )
103
+ begin
104
+ response = @client.send(request)
105
+ rescue Net::HTTPRequestTimeout
106
+ raise Coss::Errors::TimeoutError
107
+ end
108
+ code = response.code.to_i
109
+ if code.between?(200, 299)
110
+ (response.body.to_s.empty? ? nil : Coss::Types::InboxMessage.load(response.body))
111
+ else
112
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
113
+ raise error_class.new(response.body, code: code)
114
+ end
115
+ end
116
+
117
+ # The message with its text, HTML and `extracted_text`. An outbound message's delivery is its email's
118
+ # (`email_id`).
119
+ #
120
+ # @param request_options [Hash]
121
+ # @param params [Hash]
122
+ # @option request_options [String] :base_url
123
+ # @option request_options [Hash{String => Object}] :additional_headers
124
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
125
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
126
+ # @option request_options [Integer] :timeout_in_seconds
127
+ # @option params [String] :inbox_id
128
+ # @option params [String] :message_id
129
+ #
130
+ # @example
131
+ # client.inboxes.messages.get(
132
+ # inbox_id: "inbox_01k7c8m4q2f3e9v6t5r1n0p8yz",
133
+ # message_id: "imsg_01k7c8m4s1d3c9x0z4e6g7h8j9"
134
+ # )
135
+ #
136
+ # @return [Coss::Types::InboxMessage]
137
+ def get(request_options: {}, **params)
138
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
139
+ request = Coss::Internal::JSON::Request.new(
140
+ base_url: request_options[:base_url],
141
+ method: "GET",
142
+ path: "v1/inboxes/#{URI.encode_uri_component(params[:inbox_id].to_s)}/messages/#{URI.encode_uri_component(params[:message_id].to_s)}",
143
+ request_options: request_options
144
+ )
145
+ begin
146
+ response = @client.send(request)
147
+ rescue Net::HTTPRequestTimeout
148
+ raise Coss::Errors::TimeoutError
149
+ end
150
+ code = response.code.to_i
151
+ if code.between?(200, 299)
152
+ (response.body.to_s.empty? ? nil : Coss::Types::InboxMessage.load(response.body))
153
+ else
154
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
155
+ raise error_class.new(response.body, code: code)
156
+ end
157
+ end
158
+
159
+ # An inbound message's attachment, always as `application/octet-stream` (its declared type is the attachment's
160
+ # `content_type`): treat it as untrusted.
161
+ #
162
+ # @param request_options [Hash]
163
+ # @param params [Hash]
164
+ # @option request_options [String] :base_url
165
+ # @option request_options [Hash{String => Object}] :additional_headers
166
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
167
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
168
+ # @option request_options [Integer] :timeout_in_seconds
169
+ # @option params [String] :inbox_id
170
+ # @option params [String] :message_id
171
+ # @option params [String] :attachment_id
172
+ #
173
+ # @example
174
+ # client.inboxes.messages.get_attachment(
175
+ # inbox_id: "inbox_id",
176
+ # message_id: "message_id",
177
+ # attachment_id: "attachment_id"
178
+ # )
179
+ #
180
+ # @return [untyped]
181
+ def get_attachment(request_options: {}, **params)
182
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
183
+ request = Coss::Internal::JSON::Request.new(
184
+ base_url: request_options[:base_url],
185
+ method: "GET",
186
+ path: "v1/inboxes/#{URI.encode_uri_component(params[:inbox_id].to_s)}/messages/#{URI.encode_uri_component(params[:message_id].to_s)}/attachments/#{URI.encode_uri_component(params[:attachment_id].to_s)}",
187
+ request_options: request_options
188
+ )
189
+ begin
190
+ response = @client.send(request)
191
+ rescue Net::HTTPRequestTimeout
192
+ raise Coss::Errors::TimeoutError
193
+ end
194
+ code = response.code.to_i
195
+ return response.body if code.between?(200, 299)
196
+
197
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
198
+ raise error_class.new(response.body, code: code)
199
+ end
200
+
201
+ # Replies in the message's thread from the inbox's address: to its sender (its `Reply-To` first), or to an
202
+ # outbound message's recipients again for a follow-up; `reply_all` adds everyone else on it. The subject gets
203
+ # `Re:`, and `In-Reply-To`/`References` let the recipient's mail client thread it. Sent like any email, counted
204
+ # against the send quota.
205
+ #
206
+ # @param request_options [Hash]
207
+ # @param params [Coss::Inboxes::Messages::Types::ReplyInboxMessageRequest]
208
+ # @option request_options [String] :base_url
209
+ # @option request_options [Hash{String => Object}] :additional_headers
210
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
211
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
212
+ # @option request_options [Integer] :timeout_in_seconds
213
+ # @option params [String] :inbox_id
214
+ # @option params [String] :message_id
215
+ # @option params [String, nil] :idempotency_key
216
+ #
217
+ # @example
218
+ # client.inboxes.messages.reply(
219
+ # inbox_id: "inbox_01k7c8m4q2f3e9v6t5r1n0p8yz",
220
+ # message_id: "imsg_01k7c8m4s1d3c9x0z4e6g7h8j9",
221
+ # idempotency_key: "welcome-user-123",
222
+ # text: "Sorry about that, Jane! A new one is on its way."
223
+ # )
224
+ #
225
+ # @return [Coss::Types::InboxMessage]
226
+ def reply(request_options: {}, **params)
227
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
228
+ request_data = Coss::Inboxes::Messages::Types::ReplyInboxMessageRequest.new(params).to_h
229
+ non_body_param_names = %w[inbox_id message_id Idempotency-Key]
230
+ body = request_data.except(*non_body_param_names)
231
+
232
+ headers = {}
233
+ headers["Idempotency-Key"] = params[:idempotency_key] if params[:idempotency_key]
234
+
235
+ request = Coss::Internal::JSON::Request.new(
236
+ base_url: request_options[:base_url],
237
+ method: "POST",
238
+ path: "v1/inboxes/#{URI.encode_uri_component(params[:inbox_id].to_s)}/messages/#{URI.encode_uri_component(params[:message_id].to_s)}/reply",
239
+ headers: headers,
240
+ body: body,
241
+ request_options: request_options
242
+ )
243
+ begin
244
+ response = @client.send(request)
245
+ rescue Net::HTTPRequestTimeout
246
+ raise Coss::Errors::TimeoutError
247
+ end
248
+ code = response.code.to_i
249
+ if code.between?(200, 299)
250
+ (response.body.to_s.empty? ? nil : Coss::Types::InboxMessage.load(response.body))
251
+ else
252
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
253
+ raise error_class.new(response.body, code: code)
254
+ end
255
+ end
256
+ end
257
+ end
258
+ end
259
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Inboxes
5
+ module Messages
6
+ module Types
7
+ class GetAttachmentMessagesRequest < Internal::Types::Model
8
+ field :inbox_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :message_id, -> { String }, optional: false, nullable: false
11
+
12
+ field :attachment_id, -> { String }, optional: false, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Inboxes
5
+ module Messages
6
+ module Types
7
+ class GetMessagesRequest < Internal::Types::Model
8
+ field :inbox_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :message_id, -> { String }, optional: false, nullable: false
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Inboxes
5
+ module Messages
6
+ module Types
7
+ class ListMessagesRequest < Internal::Types::Model
8
+ field :inbox_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :limit, -> { Integer }, optional: true, nullable: false
11
+
12
+ field :after, -> { String }, optional: true, nullable: false
13
+
14
+ field :direction, -> { Coss::Inboxes::Messages::Types::ListMessagesRequestDirection }, optional: true, nullable: false
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Inboxes
5
+ module Messages
6
+ module Types
7
+ module ListMessagesRequestDirection
8
+ extend Coss::Internal::Types::Enum
9
+
10
+ INBOUND = "inbound"
11
+ OUTBOUND = "outbound"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Inboxes
5
+ module Messages
6
+ module Types
7
+ class ReplyInboxMessageRequest < Internal::Types::Model
8
+ field :inbox_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :message_id, -> { String }, optional: false, nullable: false
11
+
12
+ field :idempotency_key, -> { String }, optional: true, nullable: false, api_name: "Idempotency-Key"
13
+
14
+ field :reply_all, -> { Internal::Types::Boolean }, optional: true, nullable: false
15
+
16
+ field :cc, -> { Coss::Inboxes::Messages::Types::ReplyInboxMessageRequestCc }, optional: true, nullable: false
17
+
18
+ field :bcc, -> { Coss::Inboxes::Messages::Types::ReplyInboxMessageRequestBcc }, optional: true, nullable: false
19
+
20
+ field :text, -> { String }, optional: true, nullable: false
21
+
22
+ field :html, -> { String }, optional: true, nullable: false
23
+
24
+ field :attachments, -> { Internal::Types::Array[Coss::Types::SendEmailAttachment] }, optional: true, nullable: false
25
+
26
+ field :tags, -> { Internal::Types::Array[Coss::Inboxes::Messages::Types::ReplyInboxMessageRequestTagsItem] }, optional: true, nullable: false
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Inboxes
5
+ module Messages
6
+ module Types
7
+ class ReplyInboxMessageRequestBcc < Internal::Types::Model
8
+ extend Coss::Internal::Types::Union
9
+
10
+ member -> { String }
11
+
12
+ member -> { Internal::Types::Array[String] }
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Inboxes
5
+ module Messages
6
+ module Types
7
+ class ReplyInboxMessageRequestCc < Internal::Types::Model
8
+ extend Coss::Internal::Types::Union
9
+
10
+ member -> { String }
11
+
12
+ member -> { Internal::Types::Array[String] }
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Inboxes
5
+ module Messages
6
+ module Types
7
+ class ReplyInboxMessageRequestTagsItem < Internal::Types::Model
8
+ field :name, -> { String }, optional: false, nullable: false
9
+
10
+ field :value, -> { String }, optional: false, nullable: false
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Inboxes
5
+ module Messages
6
+ module Types
7
+ class SendInboxMessageRequest < Internal::Types::Model
8
+ field :inbox_id, -> { String }, optional: false, nullable: false
9
+
10
+ field :idempotency_key, -> { String }, optional: true, nullable: false, api_name: "Idempotency-Key"
11
+
12
+ field :to, -> { Coss::Inboxes::Messages::Types::SendInboxMessageRequestTo }, optional: false, nullable: false
13
+
14
+ field :cc, -> { Coss::Inboxes::Messages::Types::SendInboxMessageRequestCc }, optional: true, nullable: false
15
+
16
+ field :bcc, -> { Coss::Inboxes::Messages::Types::SendInboxMessageRequestBcc }, optional: true, nullable: false
17
+
18
+ field :subject, -> { String }, optional: false, nullable: false
19
+
20
+ field :text, -> { String }, optional: true, nullable: false
21
+
22
+ field :html, -> { String }, optional: true, nullable: false
23
+
24
+ field :attachments, -> { Internal::Types::Array[Coss::Types::SendEmailAttachment] }, optional: true, nullable: false
25
+
26
+ field :tags, -> { Internal::Types::Array[Coss::Inboxes::Messages::Types::SendInboxMessageRequestTagsItem] }, optional: true, nullable: false
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end