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,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Email
5
+ module Subaccounts
6
+ module Types
7
+ class UpdateSubaccountRequest < Internal::Types::Model
8
+ field :subaccount, -> { String }, optional: false, nullable: false
9
+
10
+ field :name, -> { String }, optional: true, nullable: false
11
+
12
+ field :uid, -> { String }, optional: true, nullable: false
13
+
14
+ field :metadata, -> { Internal::Types::Hash[String, String] }, optional: true, nullable: false
15
+
16
+ field :status, -> { Coss::Email::Subaccounts::Types::UpdateSubaccountRequestStatus }, optional: true, nullable: false
17
+
18
+ field :quotas, -> { Coss::Email::Subaccounts::Types::UpdateSubaccountRequestQuotas }, optional: true, nullable: false
19
+ end
20
+ end
21
+ end
22
+ end
23
+ 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 UpdateSubaccountRequestQuotas < 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,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Email
5
+ module Subaccounts
6
+ module Types
7
+ module UpdateSubaccountRequestStatus
8
+ extend Coss::Internal::Types::Enum
9
+
10
+ ACTIVE = "active"
11
+ DISABLED = "disabled"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -21,18 +21,20 @@ module Coss
21
21
  # @option request_options [Hash{String => Object}] :additional_query_parameters
22
22
  # @option request_options [Hash{String => Object}] :additional_body_parameters
23
23
  # @option request_options [Integer] :timeout_in_seconds
24
+ # @option params [String, nil] :subaccount
24
25
  # @option params [String, nil] :address
25
26
  # @option params [Coss::Types::ListSuppressionsRequestScope, nil] :scope
26
27
  # @option params [Integer, nil] :limit
27
28
  # @option params [String, nil] :after
28
29
  #
29
30
  # @example
30
- # client.email.suppressions.list
31
+ # client.email.suppressions.list(subaccount: "user_8812")
31
32
  #
32
33
  # @return [Coss::Types::SuppressionList]
33
34
  def list(request_options: {}, **params)
34
35
  params = Coss::Internal::Types::Utils.normalize_keys(params)
35
36
  query_params = {}
37
+ query_params["subaccount"] = params[:subaccount] if params.key?(:subaccount)
36
38
  query_params["address"] = params[:address] if params.key?(:address)
37
39
  query_params["scope"] = params[:scope] if params.key?(:scope)
38
40
  query_params["limit"] = params[:limit] if params.key?(:limit)
@@ -116,6 +118,7 @@ module Coss
116
118
  # @option params [String] :address
117
119
  # @option params [String, nil] :category
118
120
  # @option params [Coss::Email::Suppressions::Types::CheckSuppressionsRequestStream, nil] :stream
121
+ # @option params [String, nil] :subaccount
119
122
  #
120
123
  # @example
121
124
  # client.email.suppressions.check(address: "user@example.com")
@@ -127,6 +130,7 @@ module Coss
127
130
  query_params["address"] = params[:address] if params.key?(:address)
128
131
  query_params["category"] = params[:category] if params.key?(:category)
129
132
  query_params["stream"] = params[:stream] if params.key?(:stream)
133
+ query_params["subaccount"] = params[:subaccount] if params.key?(:subaccount)
130
134
 
131
135
  request = Coss::Internal::JSON::Request.new(
132
136
  base_url: request_options[:base_url],
@@ -206,6 +210,7 @@ module Coss
206
210
  # @option request_options [Hash{String => Object}] :additional_query_parameters
207
211
  # @option request_options [Hash{String => Object}] :additional_body_parameters
208
212
  # @option request_options [Integer] :timeout_in_seconds
213
+ # @option params [String, nil] :subaccount
209
214
  # @option params [Coss::Types::ExportSuppressionsRequestScope, nil] :scope
210
215
  # @option params [Coss::Email::Suppressions::Types::ExportSuppressionsRequestReason, nil] :reason
211
216
  #
@@ -216,6 +221,7 @@ module Coss
216
221
  def export(request_options: {}, **params)
217
222
  params = Coss::Internal::Types::Utils.normalize_keys(params)
218
223
  query_params = {}
224
+ query_params["subaccount"] = params[:subaccount] if params.key?(:subaccount)
219
225
  query_params["scope"] = params[:scope] if params.key?(:scope)
220
226
  query_params["reason"] = params[:reason] if params.key?(:reason)
221
227
 
@@ -10,6 +10,8 @@ module Coss
10
10
  field :category, -> { String }, optional: true, nullable: false
11
11
 
12
12
  field :stream, -> { Coss::Email::Suppressions::Types::CheckSuppressionsRequestStream }, optional: true, nullable: false
13
+
14
+ field :subaccount, -> { String }, optional: true, nullable: false
13
15
  end
14
16
  end
15
17
  end
@@ -8,6 +8,8 @@ module Coss
8
8
  field :address, -> { String }, optional: false, nullable: false
9
9
 
10
10
  field :scope, -> { Coss::Email::Suppressions::Types::CreateSuppressionRequestScope }, optional: true, nullable: false
11
+
12
+ field :subaccount, -> { String }, optional: true, nullable: false
11
13
  end
12
14
  end
13
15
  end
@@ -5,6 +5,8 @@ module Coss
5
5
  module Suppressions
6
6
  module Types
7
7
  class ExportSuppressionsRequest < Internal::Types::Model
8
+ field :subaccount, -> { String }, optional: true, nullable: false
9
+
8
10
  field :scope, -> { Coss::Types::ExportSuppressionsRequestScope }, optional: true, nullable: false
9
11
 
10
12
  field :reason, -> { Coss::Email::Suppressions::Types::ExportSuppressionsRequestReason }, optional: true, nullable: false
@@ -5,6 +5,8 @@ module Coss
5
5
  module Suppressions
6
6
  module Types
7
7
  class ImportSuppressionsRequest < Internal::Types::Model
8
+ field :subaccount, -> { String }, optional: true, nullable: false
9
+
8
10
  field :suppressions, -> { Internal::Types::Array[Coss::Email::Suppressions::Types::ImportSuppressionsRequestSuppressionsItem] }, optional: false, nullable: false
9
11
  end
10
12
  end
@@ -5,6 +5,8 @@ module Coss
5
5
  module Suppressions
6
6
  module Types
7
7
  class ListSuppressionsRequest < Internal::Types::Model
8
+ field :subaccount, -> { String }, optional: true, nullable: false
9
+
8
10
  field :address, -> { String }, optional: true, nullable: false
9
11
 
10
12
  field :scope, -> { Coss::Types::ListSuppressionsRequestScope }, optional: true, nullable: false
@@ -16,6 +16,8 @@ module Coss
16
16
 
17
17
  field :batch_id, -> { String }, optional: true, nullable: false
18
18
 
19
+ field :subaccount, -> { String }, optional: true, nullable: false
20
+
19
21
  field :created_after, -> { String }, optional: true, nullable: false
20
22
 
21
23
  field :created_before, -> { String }, optional: true, nullable: false
@@ -0,0 +1,233 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Forms
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 forms, newest first.
14
+ #
15
+ # @param request_options [Hash]
16
+ # @param params [Hash]
17
+ # @option request_options [String] :base_url
18
+ # @option request_options [Hash{String => Object}] :additional_headers
19
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
20
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
21
+ # @option request_options [Integer] :timeout_in_seconds
22
+ # @option params [Integer, nil] :limit
23
+ # @option params [String, nil] :after
24
+ #
25
+ # @example
26
+ # client.forms.list
27
+ #
28
+ # @return [Coss::Types::FormList]
29
+ def list(request_options: {}, **params)
30
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
31
+ query_params = {}
32
+ query_params["limit"] = params[:limit] if params.key?(:limit)
33
+ query_params["after"] = params[:after] if params.key?(:after)
34
+
35
+ request = Coss::Internal::JSON::Request.new(
36
+ base_url: request_options[:base_url],
37
+ method: "GET",
38
+ path: "v1/forms",
39
+ query: query_params,
40
+ request_options: request_options
41
+ )
42
+ begin
43
+ response = @client.send(request)
44
+ rescue Net::HTTPRequestTimeout
45
+ raise Coss::Errors::TimeoutError
46
+ end
47
+ code = response.code.to_i
48
+ if code.between?(200, 299)
49
+ (response.body.to_s.empty? ? nil : Coss::Types::FormList.load(response.body))
50
+ else
51
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
52
+ raise error_class.new(response.body, code: code)
53
+ end
54
+ end
55
+
56
+ # A hosted form endpoint: point an HTML `<form action>` (or `coss/forms`) at its `endpoint`. Every submission is
57
+ # screened by Risk (the honeypot, captcha, email, IP, device, velocity and content) and accepted ones go to
58
+ # webhooks (`form.submission.received`), notification emails and contacts. Without `fields`, any field is
59
+ # accepted.
60
+ #
61
+ # @param request_options [Hash]
62
+ # @param params [Coss::Forms::Types::CreateFormRequest]
63
+ # @option request_options [String] :base_url
64
+ # @option request_options [Hash{String => Object}] :additional_headers
65
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
66
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
67
+ # @option request_options [Integer] :timeout_in_seconds
68
+ #
69
+ # @example
70
+ # client.forms.create(
71
+ # name: "Contact us",
72
+ # allowed_origins: ["https://www.example.com"],
73
+ # notifications: {
74
+ # recipients: ["support@example.com"]
75
+ # }
76
+ # )
77
+ #
78
+ # @return [Coss::Types::Form]
79
+ def create(request_options: {}, **params)
80
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
81
+ headers = { "Idempotency-Key" => Coss::Internal::IdempotencyKey.generate }
82
+ request = Coss::Internal::JSON::Request.new(
83
+ base_url: request_options[:base_url],
84
+ method: "POST",
85
+ path: "v1/forms",
86
+ headers: headers,
87
+ body: Coss::Forms::Types::CreateFormRequest.new(params).to_h,
88
+ request_options: request_options,
89
+ max_retries: 0
90
+ )
91
+ begin
92
+ response = @client.send(request)
93
+ rescue Net::HTTPRequestTimeout
94
+ raise Coss::Errors::TimeoutError
95
+ end
96
+ code = response.code.to_i
97
+ if code.between?(200, 299)
98
+ (response.body.to_s.empty? ? nil : Coss::Types::Form.load(response.body))
99
+ else
100
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
101
+ raise error_class.new(response.body, code: code)
102
+ end
103
+ end
104
+
105
+ # @param request_options [Hash]
106
+ # @param params [Hash]
107
+ # @option request_options [String] :base_url
108
+ # @option request_options [Hash{String => Object}] :additional_headers
109
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
110
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
111
+ # @option request_options [Integer] :timeout_in_seconds
112
+ # @option params [String] :id
113
+ #
114
+ # @example
115
+ # client.forms.get(id: "form_01kd2m8n3p4q5r6s7t8v9w0x1y")
116
+ #
117
+ # @return [Coss::Types::Form]
118
+ def get(request_options: {}, **params)
119
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
120
+ request = Coss::Internal::JSON::Request.new(
121
+ base_url: request_options[:base_url],
122
+ method: "GET",
123
+ path: "v1/forms/#{URI.encode_uri_component(params[:id].to_s)}",
124
+ request_options: request_options
125
+ )
126
+ begin
127
+ response = @client.send(request)
128
+ rescue Net::HTTPRequestTimeout
129
+ raise Coss::Errors::TimeoutError
130
+ end
131
+ code = response.code.to_i
132
+ if code.between?(200, 299)
133
+ (response.body.to_s.empty? ? nil : Coss::Types::Form.load(response.body))
134
+ else
135
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
136
+ raise error_class.new(response.body, code: code)
137
+ end
138
+ end
139
+
140
+ # Deletes the form with every submission and uploaded file. Its endpoint answers 404 from then on.
141
+ #
142
+ # @param request_options [Hash]
143
+ # @param params [Hash]
144
+ # @option request_options [String] :base_url
145
+ # @option request_options [Hash{String => Object}] :additional_headers
146
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
147
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
148
+ # @option request_options [Integer] :timeout_in_seconds
149
+ # @option params [String] :id
150
+ #
151
+ # @example
152
+ # client.forms.remove(id: "form_01kd2m8n3p4q5r6s7t8v9w0x1y")
153
+ #
154
+ # @return [Coss::Types::DeletedForm]
155
+ def remove(request_options: {}, **params)
156
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
157
+ request = Coss::Internal::JSON::Request.new(
158
+ base_url: request_options[:base_url],
159
+ method: "DELETE",
160
+ path: "v1/forms/#{URI.encode_uri_component(params[:id].to_s)}",
161
+ request_options: request_options
162
+ )
163
+ begin
164
+ response = @client.send(request)
165
+ rescue Net::HTTPRequestTimeout
166
+ raise Coss::Errors::TimeoutError
167
+ end
168
+ code = response.code.to_i
169
+ if code.between?(200, 299)
170
+ (response.body.to_s.empty? ? nil : Coss::Types::DeletedForm.load(response.body))
171
+ else
172
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
173
+ raise error_class.new(response.body, code: code)
174
+ end
175
+ end
176
+
177
+ # Only the fields given change, within each group (`spam`, `contacts`, …) too.
178
+ #
179
+ # @param request_options [Hash]
180
+ # @param params [Coss::Forms::Types::UpdateFormRequest]
181
+ # @option request_options [String] :base_url
182
+ # @option request_options [Hash{String => Object}] :additional_headers
183
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
184
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
185
+ # @option request_options [Integer] :timeout_in_seconds
186
+ # @option params [String] :id
187
+ #
188
+ # @example
189
+ # client.forms.update(
190
+ # id: "form_01kd2m8n3p4q5r6s7t8v9w0x1y",
191
+ # spam: {
192
+ # captcha: "required"
193
+ # },
194
+ # contacts: {
195
+ # enabled: true
196
+ # }
197
+ # )
198
+ #
199
+ # @return [Coss::Types::Form]
200
+ def update(request_options: {}, **params)
201
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
202
+ request_data = Coss::Forms::Types::UpdateFormRequest.new(params).to_h
203
+ non_body_param_names = %w[id]
204
+ body = request_data.except(*non_body_param_names)
205
+
206
+ request = Coss::Internal::JSON::Request.new(
207
+ base_url: request_options[:base_url],
208
+ method: "PATCH",
209
+ path: "v1/forms/#{URI.encode_uri_component(params[:id].to_s)}",
210
+ body: body,
211
+ request_options: request_options
212
+ )
213
+ begin
214
+ response = @client.send(request)
215
+ rescue Net::HTTPRequestTimeout
216
+ raise Coss::Errors::TimeoutError
217
+ end
218
+ code = response.code.to_i
219
+ if code.between?(200, 299)
220
+ (response.body.to_s.empty? ? nil : Coss::Types::Form.load(response.body))
221
+ else
222
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
223
+ raise error_class.new(response.body, code: code)
224
+ end
225
+ end
226
+
227
+ # @return [Coss::Submissions::Client]
228
+ def submissions
229
+ @submissions ||= Coss::Forms::Submissions::Client.new(client: @client)
230
+ end
231
+ end
232
+ end
233
+ end
@@ -0,0 +1,229 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Forms
5
+ module Submissions
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
+ # Newest first. `status` narrows them: `accepted` (delivered), `held` (Risk asked for a review), `spam` and
15
+ # `pending_confirmation` (waiting for the submitter's email link).
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] :id
25
+ # @option params [String, nil] :status
26
+ # @option params [Integer, nil] :limit
27
+ # @option params [String, nil] :after
28
+ #
29
+ # @example
30
+ # client.forms.submissions.list(id: "form_01kd2m8n3p4q5r6s7t8v9w0x1y")
31
+ #
32
+ # @return [Coss::Types::FormSubmissionList]
33
+ def list(request_options: {}, **params)
34
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
35
+ query_params = {}
36
+ query_params["status"] = params[:status] if params.key?(:status)
37
+ query_params["limit"] = params[:limit] if params.key?(:limit)
38
+ query_params["after"] = params[:after] if params.key?(:after)
39
+
40
+ request = Coss::Internal::JSON::Request.new(
41
+ base_url: request_options[:base_url],
42
+ method: "GET",
43
+ path: "v1/forms/#{URI.encode_uri_component(params[:id].to_s)}/submissions",
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::FormSubmissionList.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
+ # @param request_options [Hash]
62
+ # @param params [Hash]
63
+ # @option request_options [String] :base_url
64
+ # @option request_options [Hash{String => Object}] :additional_headers
65
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
66
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
67
+ # @option request_options [Integer] :timeout_in_seconds
68
+ # @option params [String] :id
69
+ # @option params [String] :submission_id
70
+ #
71
+ # @example
72
+ # client.forms.submissions.get(
73
+ # id: "form_01kd2m8n3p4q5r6s7t8v9w0x1y",
74
+ # submission_id: "fsub_01kd2m9a0b1c2d3e4f5g6h7j8k"
75
+ # )
76
+ #
77
+ # @return [Coss::Types::FormSubmission]
78
+ def get(request_options: {}, **params)
79
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
80
+ request = Coss::Internal::JSON::Request.new(
81
+ base_url: request_options[:base_url],
82
+ method: "GET",
83
+ path: "v1/forms/#{URI.encode_uri_component(params[:id].to_s)}/submissions/#{URI.encode_uri_component(params[:submission_id].to_s)}",
84
+ request_options: request_options
85
+ )
86
+ begin
87
+ response = @client.send(request)
88
+ rescue Net::HTTPRequestTimeout
89
+ raise Coss::Errors::TimeoutError
90
+ end
91
+ code = response.code.to_i
92
+ if code.between?(200, 299)
93
+ (response.body.to_s.empty? ? nil : Coss::Types::FormSubmission.load(response.body))
94
+ else
95
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
96
+ raise error_class.new(response.body, code: code)
97
+ end
98
+ end
99
+
100
+ # Deletes the submission and its files.
101
+ #
102
+ # @param request_options [Hash]
103
+ # @param params [Hash]
104
+ # @option request_options [String] :base_url
105
+ # @option request_options [Hash{String => Object}] :additional_headers
106
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
107
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
108
+ # @option request_options [Integer] :timeout_in_seconds
109
+ # @option params [String] :id
110
+ # @option params [String] :submission_id
111
+ #
112
+ # @example
113
+ # client.forms.submissions.remove(
114
+ # id: "form_01kd2m8n3p4q5r6s7t8v9w0x1y",
115
+ # submission_id: "fsub_01kd2m9a0b1c2d3e4f5g6h7j8k"
116
+ # )
117
+ #
118
+ # @return [Coss::Types::DeletedFormSubmission]
119
+ def remove(request_options: {}, **params)
120
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
121
+ request = Coss::Internal::JSON::Request.new(
122
+ base_url: request_options[:base_url],
123
+ method: "DELETE",
124
+ path: "v1/forms/#{URI.encode_uri_component(params[:id].to_s)}/submissions/#{URI.encode_uri_component(params[:submission_id].to_s)}",
125
+ request_options: request_options
126
+ )
127
+ begin
128
+ response = @client.send(request)
129
+ rescue Net::HTTPRequestTimeout
130
+ raise Coss::Errors::TimeoutError
131
+ end
132
+ code = response.code.to_i
133
+ if code.between?(200, 299)
134
+ (response.body.to_s.empty? ? nil : Coss::Types::DeletedFormSubmission.load(response.body))
135
+ else
136
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
137
+ raise error_class.new(response.body, code: code)
138
+ end
139
+ end
140
+
141
+ # Not spam: a `held` or `spam` submission becomes `accepted` and is delivered (webhooks, notifications,
142
+ # contacts), and Risk records its assessment as `legitimate`. Releasing an accepted submission returns it as is.
143
+ #
144
+ # @param request_options [Hash]
145
+ # @param params [Hash]
146
+ # @option request_options [String] :base_url
147
+ # @option request_options [Hash{String => Object}] :additional_headers
148
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
149
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
150
+ # @option request_options [Integer] :timeout_in_seconds
151
+ # @option params [String] :id
152
+ # @option params [String] :submission_id
153
+ #
154
+ # @example
155
+ # client.forms.submissions.release(
156
+ # id: "form_01kd2m8n3p4q5r6s7t8v9w0x1y",
157
+ # submission_id: "fsub_01kd2m9a0b1c2d3e4f5g6h7j8k"
158
+ # )
159
+ #
160
+ # @return [Coss::Types::FormSubmission]
161
+ def release(request_options: {}, **params)
162
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
163
+ headers = { "Idempotency-Key" => Coss::Internal::IdempotencyKey.generate }
164
+ request = Coss::Internal::JSON::Request.new(
165
+ base_url: request_options[:base_url],
166
+ method: "POST",
167
+ path: "v1/forms/#{URI.encode_uri_component(params[:id].to_s)}/submissions/#{URI.encode_uri_component(params[:submission_id].to_s)}/release",
168
+ headers: headers,
169
+ request_options: request_options
170
+ )
171
+ begin
172
+ response = @client.send(request)
173
+ rescue Net::HTTPRequestTimeout
174
+ raise Coss::Errors::TimeoutError
175
+ end
176
+ code = response.code.to_i
177
+ if code.between?(200, 299)
178
+ (response.body.to_s.empty? ? nil : Coss::Types::FormSubmission.load(response.body))
179
+ else
180
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
181
+ raise error_class.new(response.body, code: code)
182
+ end
183
+ end
184
+
185
+ # A file uploaded with the submission, as `application/octet-stream`: whatever its type, treat it as untrusted
186
+ # (a submitter chose it).
187
+ #
188
+ # @param request_options [Hash]
189
+ # @param params [Hash]
190
+ # @option request_options [String] :base_url
191
+ # @option request_options [Hash{String => Object}] :additional_headers
192
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
193
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
194
+ # @option request_options [Integer] :timeout_in_seconds
195
+ # @option params [String] :id
196
+ # @option params [String] :submission_id
197
+ # @option params [String] :file_id
198
+ #
199
+ # @example
200
+ # client.forms.submissions.file(
201
+ # id: "id",
202
+ # submission_id: "submission_id",
203
+ # file_id: "file_id"
204
+ # )
205
+ #
206
+ # @return [untyped]
207
+ def file(request_options: {}, **params)
208
+ params = Coss::Internal::Types::Utils.normalize_keys(params)
209
+ request = Coss::Internal::JSON::Request.new(
210
+ base_url: request_options[:base_url],
211
+ method: "GET",
212
+ path: "v1/forms/#{URI.encode_uri_component(params[:id].to_s)}/submissions/#{URI.encode_uri_component(params[:submission_id].to_s)}/files/#{URI.encode_uri_component(params[:file_id].to_s)}",
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
+ return response.body if code.between?(200, 299)
222
+
223
+ error_class = Coss::Errors::ResponseError.subclass_for_code(code)
224
+ raise error_class.new(response.body, code: code)
225
+ end
226
+ end
227
+ end
228
+ end
229
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Coss
4
+ module Forms
5
+ module Submissions
6
+ module Types
7
+ class FileSubmissionsRequest < Internal::Types::Model
8
+ field :id, -> { String }, optional: false, nullable: false
9
+
10
+ field :submission_id, -> { String }, optional: false, nullable: false
11
+
12
+ field :file_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 Forms
5
+ module Submissions
6
+ module Types
7
+ class GetSubmissionsRequest < Internal::Types::Model
8
+ field :id, -> { String }, optional: false, nullable: false
9
+
10
+ field :submission_id, -> { String }, optional: false, nullable: false
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end