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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4cf53180039d6c9e703a7b8bc07bb83283fa2b786c1e24215e626a0d08e3f142
4
- data.tar.gz: f65c4efc5537b94e093204a03b648dc536b184c9b221792c6f32e3b6b3afd260
3
+ metadata.gz: db2a36443a05458d327a71f7d2cb9f008bac45c478ec9c671b54f2a3968caf95
4
+ data.tar.gz: 260b90bc919e4ec3c6076c703c31a72e419842daecf8d3ce4e16d9b32987cf08
5
5
  SHA512:
6
- metadata.gz: 8932ef12f7f115d5f7b46dbc285d0ed5844a84e8fbe59e6bccaa16a687e278995c6d64b895d992ae66504864af380ba20fe5e81e5fbb41f5a6696f5650fa3ef6
7
- data.tar.gz: ab01375c0f6aa26adf8e9fd8eb75026721ad19a560c0d86df8e8cd47bb6dac39fc4144096dc3cb84c6ab210d465022a1c5e0c91ea82fc4c59d8d4738713b1016
6
+ metadata.gz: 54a4756575583de9be754d9c1d70ccb1dc6a3d71a4f01035aaa4e64c426d3cc3fca0523bac7779c4ab6b69ee6d970fa8db03b6923563455d8444be7a0152dd24
7
+ data.tar.gz: f742f3b37f4a16310db632a557d44150fbda12b94635efe7870460381c4012dffbba408cf3b846afb09e949480aee493530568bda099599f1ee433d6cded46aa
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.0
4
+
5
+ - Regenerated from the API's OpenAPI document at 9051e32f1f00. What changed in the API: the
6
+ [API changelog](https://coss.com/docs/api-reference/changelog).
7
+
3
8
  ## 0.1.0
4
9
 
5
10
  - First release: every endpoint of the coss.com API (version `2026-10-10`), generated from its
@@ -8,10 +8,17 @@ module Coss
8
8
 
9
9
  EMAIL_RECIPIENTS = "email.recipients"
10
10
  EMAIL_DEDICATED_IP = "email.dedicated_ip"
11
+ EMAIL_RECEIVED = "email.received"
12
+ EMAIL_INBOXES = "email.inboxes"
11
13
  SMS_SEGMENTS = "sms.segments"
12
14
  SMS_RECEIVED_SEGMENTS = "sms.received_segments"
13
15
  SMS_NUMBERS = "sms.numbers"
14
16
  SMS_REGISTRATIONS = "sms.registrations"
17
+ SIGN_COMPLETED_REQUESTS = "sign.completed_requests"
18
+ RISK_PHONE_CHECKS = "risk.phone_checks"
19
+ VERIFY_VERIFICATIONS = "verify.verifications"
20
+ VERIFY_SMS = "verify.sms"
21
+ FORMS_SUBMISSIONS = "forms.submissions"
15
22
  VIDEO_PARTICIPANT_MINUTES = "video.participant_minutes"
16
23
  SCHEDULING_BOOKINGS = "scheduling.bookings"
17
24
  end
data/lib/coss/client.rb CHANGED
@@ -12,7 +12,7 @@ module Coss
12
12
  @raw_client = Coss::Internal::Http::RawClient.new(
13
13
  base_url: base_url || Coss::Environment::DEFAULT,
14
14
  headers: {
15
- "User-Agent" => "coss-ruby/0.1.0",
15
+ "User-Agent" => "coss-ruby/0.2.0",
16
16
  "X-Fern-Language" => "Ruby",
17
17
  Authorization: "Bearer #{api_key}",
18
18
  "Coss-Version" => api_version.to_s
@@ -62,6 +62,16 @@ module Coss
62
62
  @sms ||= Coss::Sms::Client.new(client: @raw_client)
63
63
  end
64
64
 
65
+ # @return [Coss::Verify::Client]
66
+ def verify
67
+ @verify ||= Coss::Verify::Client.new(client: @raw_client)
68
+ end
69
+
70
+ # @return [Coss::Forms::Client]
71
+ def forms
72
+ @forms ||= Coss::Forms::Client.new(client: @raw_client)
73
+ end
74
+
65
75
  # @return [Coss::Reputation::Client]
66
76
  def reputation
67
77
  @reputation ||= Coss::Reputation::Client.new(client: @raw_client)
@@ -87,6 +97,11 @@ module Coss
87
97
  @log_drains ||= Coss::LogDrains::Client.new(client: @raw_client)
88
98
  end
89
99
 
100
+ # @return [Coss::Inboxes::Client]
101
+ def inboxes
102
+ @inboxes ||= Coss::Inboxes::Client.new(client: @raw_client)
103
+ end
104
+
90
105
  # @return [Coss::Risk::Client]
91
106
  def risk
92
107
  @risk ||= Coss::Risk::Client.new(client: @raw_client)
@@ -96,5 +111,10 @@ module Coss
96
111
  def hooks
97
112
  @hooks ||= Coss::Hooks::Client.new(client: @raw_client)
98
113
  end
114
+
115
+ # @return [Coss::Sign::Client]
116
+ def sign
117
+ @sign ||= Coss::Sign::Client.new(client: @raw_client)
118
+ end
99
119
  end
100
120
  end
@@ -14,22 +14,28 @@ module Coss
14
14
  # so every API key of the organization sees the same domains.
15
15
  #
16
16
  # @param request_options [Hash]
17
- # @param _params [Hash]
17
+ # @param params [Hash]
18
18
  # @option request_options [String] :base_url
19
19
  # @option request_options [Hash{String => Object}] :additional_headers
20
20
  # @option request_options [Hash{String => Object}] :additional_query_parameters
21
21
  # @option request_options [Hash{String => Object}] :additional_body_parameters
22
22
  # @option request_options [Integer] :timeout_in_seconds
23
+ # @option params [String, nil] :subaccount
23
24
  #
24
25
  # @example
25
26
  # client.domains.list
26
27
  #
27
28
  # @return [Coss::Types::DomainList]
28
- def list(request_options: {}, **_params)
29
+ def list(request_options: {}, **params)
30
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
31
+ query_params = {}
32
+ query_params["subaccount"] = params[:subaccount] if params.key?(:subaccount)
33
+
29
34
  request = Coss::Internal::JSON::Request.new(
30
35
  base_url: request_options[:base_url],
31
36
  method: "GET",
32
37
  path: "v1/domains",
38
+ query: query_params,
33
39
  request_options: request_options
34
40
  )
35
41
  begin
@@ -163,6 +169,52 @@ module Coss
163
169
  end
164
170
  end
165
171
 
172
+ # Shares one of the organization's own domains with its sub-accounts (they may then send from it, through the
173
+ # organization's reputation), or stops sharing it.
174
+ #
175
+ # @param request_options [Hash]
176
+ # @param params [Coss::Domains::Types::UpdateDomainRequest]
177
+ # @option request_options [String] :base_url
178
+ # @option request_options [Hash{String => Object}] :additional_headers
179
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
180
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
181
+ # @option request_options [Integer] :timeout_in_seconds
182
+ # @option params [String] :id
183
+ #
184
+ # @example
185
+ # client.domains.update(
186
+ # id: "dom_01k7c8m4q2f3e9v6t5r1n0p8yz",
187
+ # shared_with_subaccounts: true
188
+ # )
189
+ #
190
+ # @return [Coss::Types::Domain]
191
+ def update(request_options: {}, **params)
192
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
193
+ request_data = Coss::Domains::Types::UpdateDomainRequest.new(params).to_h
194
+ non_body_param_names = %w[id]
195
+ body = request_data.except(*non_body_param_names)
196
+
197
+ request = Coss::Internal::JSON::Request.new(
198
+ base_url: request_options[:base_url],
199
+ method: "PATCH",
200
+ path: "v1/domains/#{URI.encode_uri_component(params[:id].to_s)}",
201
+ body: body,
202
+ request_options: request_options
203
+ )
204
+ begin
205
+ response = @client.send(request)
206
+ rescue Net::HTTPRequestTimeout
207
+ raise Coss::Errors::TimeoutError
208
+ end
209
+ code = response.code.to_i
210
+ if code.between?(200, 299)
211
+ (response.body.to_s.empty? ? nil : Coss::Types::Domain.load(response.body))
212
+ else
213
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
214
+ raise error_class.new(response.body, code: code)
215
+ end
216
+ end
217
+
166
218
  # Asks the delivery provider and DNS about the domain immediately instead of waiting for the next background
167
219
  # check, and returns the updated domain. A `failed` domain starts verification over with fresh DKIM records, which
168
220
  # have to be published again. Its tracking domain, if any, is checked too (and set up again if it `failed`).
@@ -5,6 +5,8 @@ module Coss
5
5
  module Types
6
6
  class CreateDomainRequest < Internal::Types::Model
7
7
  field :name, -> { String }, optional: false, nullable: false
8
+
9
+ field :subaccount, -> { String }, optional: true, nullable: false
8
10
  end
9
11
  end
10
12
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Domains
5
+ module Types
6
+ class ListDomainsRequest < Internal::Types::Model
7
+ field :subaccount, -> { String }, optional: true, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Domains
5
+ module Types
6
+ class UpdateDomainRequest < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :shared_with_subaccounts, -> { Internal::Types::Boolean }, optional: false, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -27,6 +27,7 @@ module Coss
27
27
  # @option params [String, nil] :q
28
28
  # @option params [String, nil] :category
29
29
  # @option params [String, nil] :batch_id
30
+ # @option params [String, nil] :subaccount
30
31
  # @option params [String, nil] :created_after
31
32
  # @option params [String, nil] :created_before
32
33
  # @option params [Integer, nil] :limit
@@ -45,6 +46,7 @@ module Coss
45
46
  query_params["q"] = params[:q] if params.key?(:q)
46
47
  query_params["category"] = params[:category] if params.key?(:category)
47
48
  query_params["batch_id"] = params[:batch_id] if params.key?(:batch_id)
49
+ query_params["subaccount"] = params[:subaccount] if params.key?(:subaccount)
48
50
  query_params["created_after"] = params[:created_after] if params.key?(:created_after)
49
51
  query_params["created_before"] = params[:created_before] if params.key?(:created_before)
50
52
  query_params["limit"] = params[:limit] if params.key?(:limit)
@@ -460,6 +462,11 @@ module Coss
460
462
  @suppressions ||= Coss::Email::Suppressions::Client.new(client: @client)
461
463
  end
462
464
 
465
+ # @return [Coss::Subaccounts::Client]
466
+ def subaccounts
467
+ @subaccounts ||= Coss::Email::Subaccounts::Client.new(client: @client)
468
+ end
469
+
463
470
  # @return [Coss::Tracking::Client]
464
471
  def tracking
465
472
  @tracking ||= Coss::Email::Tracking::Client.new(client: @client)
@@ -0,0 +1,322 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Email
5
+ module Subaccounts
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
+ # The environment's sub-accounts, newest first. Sub-accounts belong to the API key's own environment: a
15
+ # `coss_test_…` key only ever sees sandbox ones, a `coss_live_…` key only production ones.
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 [Integer, nil] :limit
25
+ # @option params [String, nil] :after
26
+ #
27
+ # @example
28
+ # client.email.subaccounts.list(after: "sub_01k7c8m4q2f3e9v6t5r1n0p8yz")
29
+ #
30
+ # @return [Coss::Types::SubaccountList]
31
+ def list(request_options: {}, **params)
32
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
33
+ query_params = {}
34
+ query_params["limit"] = params[:limit] if params.key?(:limit)
35
+ query_params["after"] = params[:after] if params.key?(:after)
36
+
37
+ request = Coss::Internal::JSON::Request.new(
38
+ base_url: request_options[:base_url],
39
+ method: "GET",
40
+ path: "v1/subaccounts",
41
+ query: query_params,
42
+ request_options: request_options
43
+ )
44
+ begin
45
+ response = @client.send(request)
46
+ rescue Net::HTTPRequestTimeout
47
+ raise Coss::Errors::TimeoutError
48
+ end
49
+ code = response.code.to_i
50
+ if code.between?(200, 299)
51
+ (response.body.to_s.empty? ? nil : Coss::Types::SubaccountList.load(response.body))
52
+ else
53
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
54
+ raise error_class.new(response.body, code: code)
55
+ end
56
+ end
57
+
58
+ # Creates a sub-account: one of your users, who gets their own domains, suppressions, quotas and reputation.
59
+ # Give it a `uid` (e.g. your user's id) to address it by in every path and send. Sub-accounts belong to the API
60
+ # key's own environment: a `coss_test_…` key only ever sees sandbox ones, a `coss_live_…` key only production
61
+ # ones.
62
+ #
63
+ # @param request_options [Hash]
64
+ # @param params [Coss::Email::Subaccounts::Types::CreateSubaccountRequest]
65
+ # @option request_options [String] :base_url
66
+ # @option request_options [Hash{String => Object}] :additional_headers
67
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
68
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
69
+ # @option request_options [Integer] :timeout_in_seconds
70
+ #
71
+ # @example
72
+ # client.email.subaccounts.create(
73
+ # name: "Acme Bakery",
74
+ # uid: "user_8812",
75
+ # quotas: {
76
+ # recipients_per_day: 5000
77
+ # }
78
+ # )
79
+ #
80
+ # @return [Coss::Types::Subaccount]
81
+ def create(request_options: {}, **params)
82
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
83
+ headers = { "Idempotency-Key" => Coss::Internal::IdempotencyKey.generate }
84
+ request = Coss::Internal::JSON::Request.new(
85
+ base_url: request_options[:base_url],
86
+ method: "POST",
87
+ path: "v1/subaccounts",
88
+ headers: headers,
89
+ body: Coss::Email::Subaccounts::Types::CreateSubaccountRequest.new(params).to_h,
90
+ request_options: request_options,
91
+ max_retries: 0
92
+ )
93
+ begin
94
+ response = @client.send(request)
95
+ rescue Net::HTTPRequestTimeout
96
+ raise Coss::Errors::TimeoutError
97
+ end
98
+ code = response.code.to_i
99
+ if code.between?(200, 299)
100
+ (response.body.to_s.empty? ? nil : Coss::Types::Subaccount.load(response.body))
101
+ else
102
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
103
+ raise error_class.new(response.body, code: code)
104
+ end
105
+ end
106
+
107
+ # A sub-account of the API key's environment, by its id or uid, with its quotas and reputation.
108
+ #
109
+ # @param request_options [Hash]
110
+ # @param params [Hash]
111
+ # @option request_options [String] :base_url
112
+ # @option request_options [Hash{String => Object}] :additional_headers
113
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
114
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
115
+ # @option request_options [Integer] :timeout_in_seconds
116
+ # @option params [String] :subaccount
117
+ #
118
+ # @example
119
+ # client.email.subaccounts.get(subaccount: "user_8812")
120
+ #
121
+ # @return [Coss::Types::Subaccount]
122
+ def get(request_options: {}, **params)
123
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
124
+ request = Coss::Internal::JSON::Request.new(
125
+ base_url: request_options[:base_url],
126
+ method: "GET",
127
+ path: "v1/subaccounts/#{URI.encode_uri_component(params[:subaccount].to_s)}",
128
+ request_options: request_options
129
+ )
130
+ begin
131
+ response = @client.send(request)
132
+ rescue Net::HTTPRequestTimeout
133
+ raise Coss::Errors::TimeoutError
134
+ end
135
+ code = response.code.to_i
136
+ if code.between?(200, 299)
137
+ (response.body.to_s.empty? ? nil : Coss::Types::Subaccount.load(response.body))
138
+ else
139
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
140
+ raise error_class.new(response.body, code: code)
141
+ end
142
+ end
143
+
144
+ # Starts deleting the sub-account: its sends are refused at once, then its domains are released and it is
145
+ # removed with its suppressions (`status` is `deleting` until then). Its emails stay, with its id. Repeating the
146
+ # call returns it as it is.
147
+ #
148
+ # @param request_options [Hash]
149
+ # @param params [Hash]
150
+ # @option request_options [String] :base_url
151
+ # @option request_options [Hash{String => Object}] :additional_headers
152
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
153
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
154
+ # @option request_options [Integer] :timeout_in_seconds
155
+ # @option params [String] :subaccount
156
+ #
157
+ # @example
158
+ # client.email.subaccounts.delete(subaccount: "user_8812")
159
+ #
160
+ # @return [Coss::Types::Subaccount]
161
+ def delete(request_options: {}, **params)
162
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
163
+ request = Coss::Internal::JSON::Request.new(
164
+ base_url: request_options[:base_url],
165
+ method: "DELETE",
166
+ path: "v1/subaccounts/#{URI.encode_uri_component(params[:subaccount].to_s)}",
167
+ request_options: request_options
168
+ )
169
+ begin
170
+ response = @client.send(request)
171
+ rescue Net::HTTPRequestTimeout
172
+ raise Coss::Errors::TimeoutError
173
+ end
174
+ code = response.code.to_i
175
+ if code.between?(200, 299)
176
+ (response.body.to_s.empty? ? nil : Coss::Types::Subaccount.load(response.body))
177
+ else
178
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
179
+ raise error_class.new(response.body, code: code)
180
+ end
181
+ end
182
+
183
+ # Changes the name, uid, metadata, status or quotas. Fields left out keep their value; `status: "disabled"`
184
+ # refuses its sends until it is `active` again.
185
+ #
186
+ # @param request_options [Hash]
187
+ # @param params [Coss::Email::Subaccounts::Types::UpdateSubaccountRequest]
188
+ # @option request_options [String] :base_url
189
+ # @option request_options [Hash{String => Object}] :additional_headers
190
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
191
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
192
+ # @option request_options [Integer] :timeout_in_seconds
193
+ # @option params [String] :subaccount
194
+ #
195
+ # @example
196
+ # client.email.subaccounts.update(
197
+ # subaccount: "user_8812",
198
+ # status: "disabled"
199
+ # )
200
+ #
201
+ # @return [Coss::Types::Subaccount]
202
+ def update(request_options: {}, **params)
203
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
204
+ request_data = Coss::Email::Subaccounts::Types::UpdateSubaccountRequest.new(params).to_h
205
+ non_body_param_names = %w[subaccount]
206
+ body = request_data.except(*non_body_param_names)
207
+
208
+ request = Coss::Internal::JSON::Request.new(
209
+ base_url: request_options[:base_url],
210
+ method: "PATCH",
211
+ path: "v1/subaccounts/#{URI.encode_uri_component(params[:subaccount].to_s)}",
212
+ body: body,
213
+ request_options: request_options
214
+ )
215
+ begin
216
+ response = @client.send(request)
217
+ rescue Net::HTTPRequestTimeout
218
+ raise Coss::Errors::TimeoutError
219
+ end
220
+ code = response.code.to_i
221
+ if code.between?(200, 299)
222
+ (response.body.to_s.empty? ? nil : Coss::Types::Subaccount.load(response.body))
223
+ else
224
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
225
+ raise error_class.new(response.body, code: code)
226
+ end
227
+ end
228
+
229
+ # Lifts the sub-account's reputation pause (or warning) once you fixed what caused it: its rates are measured
230
+ # again from now on. A pause is never lifted on its own. Repeating the call returns it as it is. Your
231
+ # organization's own reputation still counts its sending.
232
+ #
233
+ # @param request_options [Hash]
234
+ # @param params [Hash]
235
+ # @option request_options [String] :base_url
236
+ # @option request_options [Hash{String => Object}] :additional_headers
237
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
238
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
239
+ # @option request_options [Integer] :timeout_in_seconds
240
+ # @option params [String] :subaccount
241
+ #
242
+ # @example
243
+ # client.email.subaccounts.reinstate(subaccount: "user_8812")
244
+ #
245
+ # @return [Coss::Types::Subaccount]
246
+ def reinstate(request_options: {}, **params)
247
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
248
+ headers = { "Idempotency-Key" => Coss::Internal::IdempotencyKey.generate }
249
+ request = Coss::Internal::JSON::Request.new(
250
+ base_url: request_options[:base_url],
251
+ method: "POST",
252
+ path: "v1/subaccounts/#{URI.encode_uri_component(params[:subaccount].to_s)}/reinstate",
253
+ headers: headers,
254
+ request_options: request_options
255
+ )
256
+ begin
257
+ response = @client.send(request)
258
+ rescue Net::HTTPRequestTimeout
259
+ raise Coss::Errors::TimeoutError
260
+ end
261
+ code = response.code.to_i
262
+ if code.between?(200, 299)
263
+ (response.body.to_s.empty? ? nil : Coss::Types::Subaccount.load(response.body))
264
+ else
265
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
266
+ raise error_class.new(response.body, code: code)
267
+ end
268
+ end
269
+
270
+ # The sub-account's sending per UTC day: recipients, sent, delivered, bounced, complained, failed and
271
+ # suppressed, counted from its emails as they are now (a later bounce moves its day's numbers). Emails are kept
272
+ # 45 days, so earlier days are left out.
273
+ #
274
+ # @param request_options [Hash]
275
+ # @param params [Hash]
276
+ # @option request_options [String] :base_url
277
+ # @option request_options [Hash{String => Object}] :additional_headers
278
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
279
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
280
+ # @option request_options [Integer] :timeout_in_seconds
281
+ # @option params [String] :subaccount
282
+ # @option params [String, nil] :from
283
+ # @option params [String, nil] :to
284
+ #
285
+ # @example
286
+ # client.email.subaccounts.stats(
287
+ # subaccount: "user_8812",
288
+ # from: "2026-10-01",
289
+ # to: "2026-10-15"
290
+ # )
291
+ #
292
+ # @return [Coss::Types::SubaccountStats]
293
+ def stats(request_options: {}, **params)
294
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
295
+ query_params = {}
296
+ query_params["from"] = params[:from] if params.key?(:from)
297
+ query_params["to"] = params[:to] if params.key?(:to)
298
+
299
+ request = Coss::Internal::JSON::Request.new(
300
+ base_url: request_options[:base_url],
301
+ method: "GET",
302
+ path: "v1/subaccounts/#{URI.encode_uri_component(params[:subaccount].to_s)}/stats",
303
+ query: query_params,
304
+ request_options: request_options
305
+ )
306
+ begin
307
+ response = @client.send(request)
308
+ rescue Net::HTTPRequestTimeout
309
+ raise Coss::Errors::TimeoutError
310
+ end
311
+ code = response.code.to_i
312
+ if code.between?(200, 299)
313
+ (response.body.to_s.empty? ? nil : Coss::Types::SubaccountStats.load(response.body))
314
+ else
315
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
316
+ raise error_class.new(response.body, code: code)
317
+ end
318
+ end
319
+ end
320
+ end
321
+ end
322
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Email
5
+ module Subaccounts
6
+ module Types
7
+ class CreateSubaccountRequest < Internal::Types::Model
8
+ field :name, -> { String }, optional: false, nullable: false
9
+
10
+ field :uid, -> { String }, optional: true, nullable: false
11
+
12
+ field :metadata, -> { Internal::Types::Hash[String, String] }, optional: true, nullable: false
13
+
14
+ field :quotas, -> { Coss::Email::Subaccounts::Types::CreateSubaccountRequestQuotas }, optional: true, nullable: false
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Email
5
+ module Subaccounts
6
+ module Types
7
+ # Fields left out keep their value; `null` removes a quota.
8
+ class CreateSubaccountRequestQuotas < Internal::Types::Model
9
+ field :recipients_per_day, -> { Integer }, optional: true, nullable: false
10
+
11
+ field :recipients_per_second, -> { Integer }, optional: true, nullable: false
12
+
13
+ field :burst, -> { Integer }, optional: true, nullable: false
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Email
5
+ module Subaccounts
6
+ module Types
7
+ class DeleteSubaccountsRequest < Internal::Types::Model
8
+ field :subaccount, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Email
5
+ module Subaccounts
6
+ module Types
7
+ class GetSubaccountsRequest < Internal::Types::Model
8
+ field :subaccount, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Email
5
+ module Subaccounts
6
+ module Types
7
+ class ListSubaccountsRequest < Internal::Types::Model
8
+ field :limit, -> { Integer }, optional: true, nullable: false
9
+
10
+ field :after, -> { String }, optional: true, nullable: false
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Email
5
+ module Subaccounts
6
+ module Types
7
+ class ReinstateSubaccountsRequest < Internal::Types::Model
8
+ field :subaccount, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Email
5
+ module Subaccounts
6
+ module Types
7
+ class StatsSubaccountsRequest < Internal::Types::Model
8
+ field :subaccount, -> { String }, optional: false, nullable: false
9
+
10
+ field :from, -> { String }, optional: true, nullable: false
11
+
12
+ field :to, -> { String }, optional: true, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end