docspring 4.1.0 → 4.3.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 (372) hide show
  1. checksums.yaml +4 -4
  2. data/.openapi-generator/FILES +15 -0
  3. data/.travis.yml +1 -1
  4. data/AGENTS.md +5 -4
  5. data/CHANGELOG.md +67 -0
  6. data/Gemfile.lock +11 -10
  7. data/README.md +11 -6
  8. data/docs/Client.md +273 -105
  9. data/docs/CombinedPdf.md +1 -1
  10. data/docs/CreateCombinedPdfRequest.md +1 -1
  11. data/docs/CreateSubmissionRequest.md +5 -5
  12. data/docs/CreateTemplatePreviewRequest.md +18 -0
  13. data/docs/CreateTemplateRequest.md +14 -10
  14. data/docs/ErrorDetail.md +1 -1
  15. data/docs/ErrorInfo.md +4 -4
  16. data/docs/FieldGroup.md +2 -2
  17. data/docs/FieldGroupInput.md +1 -1
  18. data/docs/GenerateSubmissionFilesRequest.md +1 -1
  19. data/docs/GeneratedFile.md +2 -2
  20. data/docs/Submission.md +18 -18
  21. data/docs/SubmissionBatch.md +3 -3
  22. data/docs/SubmissionFiles.md +4 -0
  23. data/docs/SubmissionInput.md +5 -5
  24. data/docs/SubmissionList.md +1 -1
  25. data/docs/SubmissionSummary.md +54 -0
  26. data/docs/Template.md +21 -17
  27. data/docs/TemplateActor.md +1 -1
  28. data/docs/TemplateDiff.md +2 -2
  29. data/docs/TemplateDocument.md +12 -12
  30. data/docs/TemplateDocumentSummary.md +24 -0
  31. data/docs/TemplatePreview.md +32 -0
  32. data/docs/TemplatePreviewState.md +15 -0
  33. data/docs/TemplateSummary.md +5 -49
  34. data/docs/UpdateTemplateDocumentRequest.md +5 -5
  35. data/docs/UpdateTemplateRequest.md +10 -6
  36. data/docs/ValidateSubmissionRequest.md +5 -5
  37. data/docspring.gemspec +2 -2
  38. data/lib/docspring/api/client.rb +222 -49
  39. data/lib/docspring/api_client.rb +5 -3
  40. data/lib/docspring/api_error.rb +1 -1
  41. data/lib/docspring/api_model_base.rb +1 -1
  42. data/lib/docspring/configuration.rb +1 -1
  43. data/lib/docspring/date_time_values.rb +33 -0
  44. data/lib/docspring/models/add_template_fields_request.rb +1 -1
  45. data/lib/docspring/models/ai_field_naming_language.rb +1 -1
  46. data/lib/docspring/models/authentication_check.rb +1 -1
  47. data/lib/docspring/models/barcode_symbology.rb +1 -1
  48. data/lib/docspring/models/check_character.rb +1 -1
  49. data/lib/docspring/models/combined_field_type.rb +1 -1
  50. data/lib/docspring/models/combined_pdf.rb +2 -2
  51. data/lib/docspring/models/combined_pdf_files.rb +1 -1
  52. data/lib/docspring/models/combined_pdf_list.rb +1 -1
  53. data/lib/docspring/models/combined_pdf_source.rb +1 -1
  54. data/lib/docspring/models/combined_pdf_source_input.rb +1 -1
  55. data/lib/docspring/models/combined_pdf_source_pdf.rb +1 -1
  56. data/lib/docspring/models/combined_pdf_source_type.rb +1 -1
  57. data/lib/docspring/models/combined_pdf_state.rb +1 -1
  58. data/lib/docspring/models/copy_template_request.rb +1 -1
  59. data/lib/docspring/models/create_combined_pdf_request.rb +2 -2
  60. data/lib/docspring/models/create_custom_file_from_upload_request.rb +1 -1
  61. data/lib/docspring/models/create_folder_request.rb +1 -1
  62. data/lib/docspring/models/create_signature_request_event_request.rb +1 -1
  63. data/lib/docspring/models/create_signature_request_token_request.rb +1 -1
  64. data/lib/docspring/models/create_submission_batch_request.rb +1 -1
  65. data/lib/docspring/models/create_submission_request.rb +6 -6
  66. data/lib/docspring/models/create_template_preview_request.rb +187 -0
  67. data/lib/docspring/models/create_template_request.rb +32 -12
  68. data/lib/docspring/models/create_webhook_request.rb +1 -1
  69. data/lib/docspring/models/custom_file.rb +1 -1
  70. data/lib/docspring/models/custom_file_list.rb +1 -1
  71. data/lib/docspring/models/custom_file_source_pdf.rb +1 -1
  72. data/lib/docspring/models/error_code.rb +4 -2
  73. data/lib/docspring/models/error_detail.rb +2 -2
  74. data/lib/docspring/models/error_info.rb +5 -5
  75. data/lib/docspring/models/error_response.rb +1 -1
  76. data/lib/docspring/models/expiration_interval.rb +1 -1
  77. data/lib/docspring/models/field.rb +2 -2
  78. data/lib/docspring/models/field_comparison_condition.rb +1 -1
  79. data/lib/docspring/models/field_comparison_operator.rb +1 -1
  80. data/lib/docspring/models/field_dependency.rb +1 -1
  81. data/lib/docspring/models/field_dependency_input.rb +1 -1
  82. data/lib/docspring/models/field_display_type.rb +1 -1
  83. data/lib/docspring/models/field_equals_condition.rb +1 -1
  84. data/lib/docspring/models/field_equals_operator.rb +1 -1
  85. data/lib/docspring/models/field_group.rb +3 -3
  86. data/lib/docspring/models/field_group_input.rb +2 -2
  87. data/lib/docspring/models/field_group_type.rb +1 -1
  88. data/lib/docspring/models/field_in_condition.rb +1 -1
  89. data/lib/docspring/models/field_input.rb +2 -2
  90. data/lib/docspring/models/field_override.rb +1 -1
  91. data/lib/docspring/models/field_presence_condition.rb +1 -1
  92. data/lib/docspring/models/field_presence_operator.rb +1 -1
  93. data/lib/docspring/models/field_range_condition.rb +1 -1
  94. data/lib/docspring/models/field_reimport_state.rb +1 -1
  95. data/lib/docspring/models/field_setup_logic.rb +1 -1
  96. data/lib/docspring/models/field_setup_naming.rb +1 -1
  97. data/lib/docspring/models/field_setup_source.rb +1 -1
  98. data/lib/docspring/models/field_type.rb +1 -1
  99. data/lib/docspring/models/folder.rb +1 -1
  100. data/lib/docspring/models/folder_list.rb +1 -1
  101. data/lib/docspring/models/generate_files_format.rb +5 -2
  102. data/lib/docspring/models/generate_submission_files_request.rb +2 -2
  103. data/lib/docspring/models/generated_file.rb +4 -4
  104. data/lib/docspring/models/generated_file_state.rb +1 -1
  105. data/lib/docspring/models/html_engine_options.rb +1 -1
  106. data/lib/docspring/models/html_engine_options_input.rb +1 -1
  107. data/lib/docspring/models/image_gravity.rb +1 -1
  108. data/lib/docspring/models/image_scale_type.rb +1 -1
  109. data/lib/docspring/models/model_code_language.rb +3 -2
  110. data/lib/docspring/models/move_folder_request.rb +1 -1
  111. data/lib/docspring/models/move_template_request.rb +1 -1
  112. data/lib/docspring/models/number_condition_type.rb +1 -1
  113. data/lib/docspring/models/output_format.rb +4 -2
  114. data/lib/docspring/models/page_format.rb +1 -1
  115. data/lib/docspring/models/page_image.rb +1 -1
  116. data/lib/docspring/models/page_images.rb +1 -1
  117. data/lib/docspring/models/predefined_field.rb +1 -1
  118. data/lib/docspring/models/predefined_field_input.rb +1 -1
  119. data/lib/docspring/models/publish_template_version_request.rb +1 -1
  120. data/lib/docspring/models/remove_template_fields_request.rb +1 -1
  121. data/lib/docspring/models/rename_folder_request.rb +1 -1
  122. data/lib/docspring/models/reorder_template_fields_request.rb +1 -1
  123. data/lib/docspring/models/restore_template_version_request.rb +1 -1
  124. data/lib/docspring/models/shape_type.rb +1 -1
  125. data/lib/docspring/models/signature_request.rb +1 -1
  126. data/lib/docspring/models/signature_request_auth_second_factor_type.rb +1 -1
  127. data/lib/docspring/models/signature_request_auth_type.rb +1 -1
  128. data/lib/docspring/models/signature_request_event.rb +1 -1
  129. data/lib/docspring/models/signature_request_event_type.rb +1 -1
  130. data/lib/docspring/models/signature_request_input.rb +1 -1
  131. data/lib/docspring/models/signature_request_message_type.rb +1 -1
  132. data/lib/docspring/models/signature_request_state.rb +1 -1
  133. data/lib/docspring/models/signature_request_token.rb +1 -1
  134. data/lib/docspring/models/signature_request_token_type.rb +1 -1
  135. data/lib/docspring/models/string_condition_type.rb +1 -1
  136. data/lib/docspring/models/submission.rb +145 -145
  137. data/lib/docspring/models/submission_action.rb +1 -1
  138. data/lib/docspring/models/submission_action_state.rb +1 -1
  139. data/lib/docspring/models/submission_action_type.rb +1 -1
  140. data/lib/docspring/models/submission_batch.rb +5 -5
  141. data/lib/docspring/models/submission_batch_state.rb +1 -1
  142. data/lib/docspring/models/submission_files.rb +22 -2
  143. data/lib/docspring/models/submission_input.rb +6 -6
  144. data/lib/docspring/models/submission_list.rb +2 -2
  145. data/lib/docspring/models/submission_source.rb +1 -1
  146. data/lib/docspring/models/submission_source_pdf.rb +1 -1
  147. data/lib/docspring/models/submission_state.rb +1 -1
  148. data/lib/docspring/models/submission_summary.rb +601 -0
  149. data/lib/docspring/models/submission_validation.rb +1 -1
  150. data/lib/docspring/models/template.rb +131 -91
  151. data/lib/docspring/models/template_actor.rb +2 -2
  152. data/lib/docspring/models/template_actor_type.rb +1 -1
  153. data/lib/docspring/models/template_defaults.rb +1 -1
  154. data/lib/docspring/models/template_defaults_input.rb +1 -1
  155. data/lib/docspring/models/template_diff.rb +3 -3
  156. data/lib/docspring/models/template_diff_summary.rb +1 -1
  157. data/lib/docspring/models/template_document.rb +51 -51
  158. data/lib/docspring/models/template_document_state.rb +4 -2
  159. data/lib/docspring/models/template_document_summary.rb +260 -0
  160. data/lib/docspring/models/template_field_change.rb +1 -1
  161. data/lib/docspring/models/template_field_changes.rb +1 -1
  162. data/lib/docspring/models/template_field_dependency.rb +1 -1
  163. data/lib/docspring/models/template_field_dependency_action.rb +1 -1
  164. data/lib/docspring/models/template_field_dependency_condition.rb +1 -1
  165. data/lib/docspring/models/template_field_dependency_condition_input.rb +1 -1
  166. data/lib/docspring/models/template_field_dependency_input.rb +1 -1
  167. data/lib/docspring/models/template_field_dependency_match.rb +1 -1
  168. data/lib/docspring/models/template_field_dependency_operator.rb +1 -1
  169. data/lib/docspring/models/template_field_logic_status.rb +1 -1
  170. data/lib/docspring/models/template_field_move.rb +1 -1
  171. data/lib/docspring/models/template_fields.rb +1 -1
  172. data/lib/docspring/models/template_form_mode.rb +1 -1
  173. data/lib/docspring/models/template_model_code.rb +1 -1
  174. data/lib/docspring/models/template_page_ai_error.rb +1 -1
  175. data/lib/docspring/models/template_page_ai_naming_status.rb +1 -1
  176. data/lib/docspring/models/template_page_fields_status.rb +1 -1
  177. data/lib/docspring/models/template_page_image_status.rb +1 -1
  178. data/lib/docspring/models/template_page_images.rb +1 -1
  179. data/lib/docspring/models/template_page_processing_status.rb +1 -1
  180. data/lib/docspring/models/template_preview.rb +356 -0
  181. data/lib/docspring/models/template_preview_state.rb +42 -0
  182. data/lib/docspring/models/template_source_pdf.rb +1 -1
  183. data/lib/docspring/models/template_summary.rb +34 -574
  184. data/lib/docspring/models/template_summary_list.rb +1 -1
  185. data/lib/docspring/models/template_type.rb +3 -2
  186. data/lib/docspring/models/template_version.rb +1 -1
  187. data/lib/docspring/models/template_version_type.rb +1 -1
  188. data/lib/docspring/models/text_alignment.rb +1 -1
  189. data/lib/docspring/models/text_overflow.rb +1 -1
  190. data/lib/docspring/models/text_vertical_alignment.rb +1 -1
  191. data/lib/docspring/models/typeface.rb +1 -1
  192. data/lib/docspring/models/update_signature_request_request.rb +1 -1
  193. data/lib/docspring/models/update_template_document_request.rb +7 -7
  194. data/lib/docspring/models/update_template_fields_request.rb +1 -1
  195. data/lib/docspring/models/update_template_request.rb +31 -11
  196. data/lib/docspring/models/update_webhook_request.rb +1 -1
  197. data/lib/docspring/models/upload_method.rb +1 -1
  198. data/lib/docspring/models/upload_presign.rb +1 -1
  199. data/lib/docspring/models/url_source_pdf.rb +1 -1
  200. data/lib/docspring/models/validate_submission_request.rb +6 -6
  201. data/lib/docspring/models/webhook.rb +1 -1
  202. data/lib/docspring/models/webhook_event_type.rb +1 -1
  203. data/lib/docspring/models/webhook_list.rb +1 -1
  204. data/lib/docspring/models/webhook_mode.rb +1 -1
  205. data/lib/docspring/request_schemas.json +144 -10
  206. data/lib/docspring/version.rb +2 -2
  207. data/lib/docspring/webhook_signature.rb +45 -0
  208. data/lib/docspring.rb +7 -1
  209. data/spec/api/client_spec.rb +61 -25
  210. data/spec/models/add_template_fields_request_spec.rb +1 -1
  211. data/spec/models/ai_field_naming_language_spec.rb +1 -1
  212. data/spec/models/authentication_check_spec.rb +1 -1
  213. data/spec/models/barcode_symbology_spec.rb +1 -1
  214. data/spec/models/check_character_spec.rb +1 -1
  215. data/spec/models/combined_field_type_spec.rb +1 -1
  216. data/spec/models/combined_pdf_files_spec.rb +1 -1
  217. data/spec/models/combined_pdf_list_spec.rb +1 -1
  218. data/spec/models/combined_pdf_source_input_spec.rb +1 -1
  219. data/spec/models/combined_pdf_source_pdf_spec.rb +1 -1
  220. data/spec/models/combined_pdf_source_spec.rb +1 -1
  221. data/spec/models/combined_pdf_source_type_spec.rb +1 -1
  222. data/spec/models/combined_pdf_spec.rb +1 -1
  223. data/spec/models/combined_pdf_state_spec.rb +1 -1
  224. data/spec/models/copy_template_request_spec.rb +1 -1
  225. data/spec/models/create_combined_pdf_request_spec.rb +1 -1
  226. data/spec/models/create_custom_file_from_upload_request_spec.rb +1 -1
  227. data/spec/models/create_folder_request_spec.rb +1 -1
  228. data/spec/models/create_signature_request_event_request_spec.rb +1 -1
  229. data/spec/models/create_signature_request_token_request_spec.rb +1 -1
  230. data/spec/models/create_submission_batch_request_spec.rb +1 -1
  231. data/spec/models/create_submission_request_spec.rb +1 -1
  232. data/spec/models/create_template_preview_request_spec.rb +36 -0
  233. data/spec/models/create_template_request_spec.rb +13 -1
  234. data/spec/models/create_webhook_request_spec.rb +1 -1
  235. data/spec/models/custom_file_list_spec.rb +1 -1
  236. data/spec/models/custom_file_source_pdf_spec.rb +1 -1
  237. data/spec/models/custom_file_spec.rb +1 -1
  238. data/spec/models/error_code_spec.rb +1 -1
  239. data/spec/models/error_detail_spec.rb +1 -1
  240. data/spec/models/error_info_spec.rb +1 -1
  241. data/spec/models/error_response_spec.rb +1 -1
  242. data/spec/models/expiration_interval_spec.rb +1 -1
  243. data/spec/models/field_comparison_condition_spec.rb +1 -1
  244. data/spec/models/field_comparison_operator_spec.rb +1 -1
  245. data/spec/models/field_dependency_input_spec.rb +1 -1
  246. data/spec/models/field_dependency_spec.rb +1 -1
  247. data/spec/models/field_display_type_spec.rb +1 -1
  248. data/spec/models/field_equals_condition_spec.rb +1 -1
  249. data/spec/models/field_equals_operator_spec.rb +1 -1
  250. data/spec/models/field_group_input_spec.rb +1 -1
  251. data/spec/models/field_group_spec.rb +1 -1
  252. data/spec/models/field_group_type_spec.rb +1 -1
  253. data/spec/models/field_in_condition_spec.rb +1 -1
  254. data/spec/models/field_input_spec.rb +1 -1
  255. data/spec/models/field_override_spec.rb +1 -1
  256. data/spec/models/field_presence_condition_spec.rb +1 -1
  257. data/spec/models/field_presence_operator_spec.rb +1 -1
  258. data/spec/models/field_range_condition_spec.rb +1 -1
  259. data/spec/models/field_reimport_state_spec.rb +1 -1
  260. data/spec/models/field_setup_logic_spec.rb +1 -1
  261. data/spec/models/field_setup_naming_spec.rb +1 -1
  262. data/spec/models/field_setup_source_spec.rb +1 -1
  263. data/spec/models/field_spec.rb +1 -1
  264. data/spec/models/field_type_spec.rb +1 -1
  265. data/spec/models/folder_list_spec.rb +1 -1
  266. data/spec/models/folder_spec.rb +1 -1
  267. data/spec/models/generate_files_format_spec.rb +1 -1
  268. data/spec/models/generate_submission_files_request_spec.rb +1 -1
  269. data/spec/models/generated_file_spec.rb +1 -1
  270. data/spec/models/generated_file_state_spec.rb +1 -1
  271. data/spec/models/html_engine_options_input_spec.rb +1 -1
  272. data/spec/models/html_engine_options_spec.rb +1 -1
  273. data/spec/models/image_gravity_spec.rb +1 -1
  274. data/spec/models/image_scale_type_spec.rb +1 -1
  275. data/spec/models/model_code_language_spec.rb +1 -1
  276. data/spec/models/move_folder_request_spec.rb +1 -1
  277. data/spec/models/move_template_request_spec.rb +1 -1
  278. data/spec/models/number_condition_type_spec.rb +1 -1
  279. data/spec/models/output_format_spec.rb +1 -1
  280. data/spec/models/page_format_spec.rb +1 -1
  281. data/spec/models/page_image_spec.rb +1 -1
  282. data/spec/models/page_images_spec.rb +1 -1
  283. data/spec/models/predefined_field_input_spec.rb +1 -1
  284. data/spec/models/predefined_field_spec.rb +1 -1
  285. data/spec/models/publish_template_version_request_spec.rb +1 -1
  286. data/spec/models/remove_template_fields_request_spec.rb +1 -1
  287. data/spec/models/rename_folder_request_spec.rb +1 -1
  288. data/spec/models/reorder_template_fields_request_spec.rb +1 -1
  289. data/spec/models/restore_template_version_request_spec.rb +1 -1
  290. data/spec/models/shape_type_spec.rb +1 -1
  291. data/spec/models/signature_request_auth_second_factor_type_spec.rb +1 -1
  292. data/spec/models/signature_request_auth_type_spec.rb +1 -1
  293. data/spec/models/signature_request_event_spec.rb +1 -1
  294. data/spec/models/signature_request_event_type_spec.rb +1 -1
  295. data/spec/models/signature_request_input_spec.rb +1 -1
  296. data/spec/models/signature_request_message_type_spec.rb +1 -1
  297. data/spec/models/signature_request_spec.rb +1 -1
  298. data/spec/models/signature_request_state_spec.rb +1 -1
  299. data/spec/models/signature_request_token_spec.rb +1 -1
  300. data/spec/models/signature_request_token_type_spec.rb +1 -1
  301. data/spec/models/string_condition_type_spec.rb +1 -1
  302. data/spec/models/submission_action_spec.rb +1 -1
  303. data/spec/models/submission_action_state_spec.rb +1 -1
  304. data/spec/models/submission_action_type_spec.rb +1 -1
  305. data/spec/models/submission_batch_spec.rb +1 -1
  306. data/spec/models/submission_batch_state_spec.rb +1 -1
  307. data/spec/models/submission_files_spec.rb +13 -1
  308. data/spec/models/submission_input_spec.rb +1 -1
  309. data/spec/models/submission_list_spec.rb +1 -1
  310. data/spec/models/submission_source_pdf_spec.rb +1 -1
  311. data/spec/models/submission_source_spec.rb +1 -1
  312. data/spec/models/submission_spec.rb +13 -13
  313. data/spec/models/submission_state_spec.rb +1 -1
  314. data/spec/models/submission_summary_spec.rb +144 -0
  315. data/spec/models/submission_validation_spec.rb +1 -1
  316. data/spec/models/template_actor_spec.rb +1 -1
  317. data/spec/models/template_actor_type_spec.rb +1 -1
  318. data/spec/models/template_defaults_input_spec.rb +1 -1
  319. data/spec/models/template_defaults_spec.rb +1 -1
  320. data/spec/models/template_diff_spec.rb +1 -1
  321. data/spec/models/template_diff_summary_spec.rb +1 -1
  322. data/spec/models/template_document_spec.rb +6 -6
  323. data/spec/models/template_document_state_spec.rb +1 -1
  324. data/spec/models/template_document_summary_spec.rb +54 -0
  325. data/spec/models/template_field_change_spec.rb +1 -1
  326. data/spec/models/template_field_changes_spec.rb +1 -1
  327. data/spec/models/template_field_dependency_action_spec.rb +1 -1
  328. data/spec/models/template_field_dependency_condition_input_spec.rb +1 -1
  329. data/spec/models/template_field_dependency_condition_spec.rb +1 -1
  330. data/spec/models/template_field_dependency_input_spec.rb +1 -1
  331. data/spec/models/template_field_dependency_match_spec.rb +1 -1
  332. data/spec/models/template_field_dependency_operator_spec.rb +1 -1
  333. data/spec/models/template_field_dependency_spec.rb +1 -1
  334. data/spec/models/template_field_logic_status_spec.rb +1 -1
  335. data/spec/models/template_field_move_spec.rb +1 -1
  336. data/spec/models/template_fields_spec.rb +1 -1
  337. data/spec/models/template_form_mode_spec.rb +1 -1
  338. data/spec/models/template_model_code_spec.rb +1 -1
  339. data/spec/models/template_page_ai_error_spec.rb +1 -1
  340. data/spec/models/template_page_ai_naming_status_spec.rb +1 -1
  341. data/spec/models/template_page_fields_status_spec.rb +1 -1
  342. data/spec/models/template_page_image_status_spec.rb +1 -1
  343. data/spec/models/template_page_images_spec.rb +1 -1
  344. data/spec/models/template_page_processing_status_spec.rb +1 -1
  345. data/spec/models/template_preview_spec.rb +78 -0
  346. data/spec/models/template_preview_state_spec.rb +30 -0
  347. data/spec/models/template_source_pdf_spec.rb +1 -1
  348. data/spec/models/template_spec.rb +35 -23
  349. data/spec/models/template_summary_list_spec.rb +1 -1
  350. data/spec/models/template_summary_spec.rb +6 -138
  351. data/spec/models/template_type_spec.rb +1 -1
  352. data/spec/models/template_version_spec.rb +1 -1
  353. data/spec/models/template_version_type_spec.rb +1 -1
  354. data/spec/models/text_alignment_spec.rb +1 -1
  355. data/spec/models/text_overflow_spec.rb +1 -1
  356. data/spec/models/text_vertical_alignment_spec.rb +1 -1
  357. data/spec/models/typeface_spec.rb +1 -1
  358. data/spec/models/update_signature_request_request_spec.rb +1 -1
  359. data/spec/models/update_template_document_request_spec.rb +1 -1
  360. data/spec/models/update_template_fields_request_spec.rb +1 -1
  361. data/spec/models/update_template_request_spec.rb +13 -1
  362. data/spec/models/update_webhook_request_spec.rb +1 -1
  363. data/spec/models/upload_method_spec.rb +1 -1
  364. data/spec/models/upload_presign_spec.rb +1 -1
  365. data/spec/models/url_source_pdf_spec.rb +1 -1
  366. data/spec/models/validate_submission_request_spec.rb +1 -1
  367. data/spec/models/webhook_event_type_spec.rb +1 -1
  368. data/spec/models/webhook_list_spec.rb +1 -1
  369. data/spec/models/webhook_mode_spec.rb +1 -1
  370. data/spec/models/webhook_spec.rb +1 -1
  371. data/spec/spec_helper.rb +1 -1
  372. metadata +25 -2
@@ -635,7 +635,7 @@
635
635
  "name": {
636
636
  "type": "string",
637
637
  "minLength": 1,
638
- "maxLength": 255
638
+ "maxLength": 512
639
639
  },
640
640
  "parent_folder_id": {
641
641
  "type": [
@@ -905,6 +905,8 @@
905
905
  "type": "string",
906
906
  "enum": [
907
907
  "pdf",
908
+ "docx",
909
+ "odt",
908
910
  "png"
909
911
  ]
910
912
  }
@@ -944,7 +946,7 @@
944
946
  "string",
945
947
  "null"
946
948
  ],
947
- "maxLength": 255
949
+ "maxLength": 254
948
950
  },
949
951
  "fields": {
950
952
  "type": "array",
@@ -1078,6 +1080,8 @@
1078
1080
  "type": "string",
1079
1081
  "enum": [
1080
1082
  "pdf",
1083
+ "docx",
1084
+ "odt",
1081
1085
  "png"
1082
1086
  ]
1083
1087
  }
@@ -1113,6 +1117,8 @@
1113
1117
  "type": "string",
1114
1118
  "enum": [
1115
1119
  "pdf",
1120
+ "docx",
1121
+ "odt",
1116
1122
  "png"
1117
1123
  ]
1118
1124
  }
@@ -1172,7 +1178,7 @@
1172
1178
  "name": {
1173
1179
  "type": "string",
1174
1180
  "minLength": 1,
1175
- "maxLength": 255
1181
+ "maxLength": 512
1176
1182
  },
1177
1183
  "description": {
1178
1184
  "type": [
@@ -1184,7 +1190,16 @@
1184
1190
  "type": "string",
1185
1191
  "enum": [
1186
1192
  "pdf",
1187
- "html"
1193
+ "html",
1194
+ "docx"
1195
+ ]
1196
+ },
1197
+ "output_format": {
1198
+ "type": "string",
1199
+ "enum": [
1200
+ "pdf",
1201
+ "docx",
1202
+ "odt"
1188
1203
  ]
1189
1204
  },
1190
1205
  "parent_folder_id": {
@@ -1711,6 +1726,9 @@
1711
1726
  },
1712
1727
  "additionalProperties": false
1713
1728
  },
1729
+ "html_escape_data": {
1730
+ "type": "boolean"
1731
+ },
1714
1732
  "cache_id": {
1715
1733
  "type": "string",
1716
1734
  "minLength": 1,
@@ -1765,6 +1783,34 @@
1765
1783
  }
1766
1784
  }
1767
1785
  },
1786
+ "createTemplatePreview": {
1787
+ "query": {
1788
+ "version": {
1789
+ "required": false,
1790
+ "schema": {
1791
+ "type": "string",
1792
+ "pattern": "^(\\d+(\\.\\d+(\\.\\d+)?)?|latest|draft)$",
1793
+ "x-pattern-message": "must be a version like 1.2.3 or 1, or latest or draft"
1794
+ }
1795
+ }
1796
+ },
1797
+ "body": {
1798
+ "mediaType": "application/json",
1799
+ "required": true,
1800
+ "schema": {
1801
+ "type": "object",
1802
+ "required": [
1803
+ "data"
1804
+ ],
1805
+ "properties": {
1806
+ "data": {
1807
+ "type": "object"
1808
+ }
1809
+ },
1810
+ "additionalProperties": false
1811
+ }
1812
+ }
1813
+ },
1768
1814
  "createWebhook": {
1769
1815
  "body": {
1770
1816
  "mediaType": "application/json",
@@ -1777,7 +1823,7 @@
1777
1823
  "string",
1778
1824
  "null"
1779
1825
  ],
1780
- "maxLength": 255
1826
+ "maxLength": 512
1781
1827
  },
1782
1828
  "url": {
1783
1829
  "type": "string",
@@ -1919,6 +1965,9 @@
1919
1965
  "items": {
1920
1966
  "type": "string",
1921
1967
  "enum": [
1968
+ "pdf",
1969
+ "docx",
1970
+ "odt",
1922
1971
  "png"
1923
1972
  ]
1924
1973
  }
@@ -1992,9 +2041,16 @@
1992
2041
  "java",
1993
2042
  "csharp",
1994
2043
  "elixir",
1995
- "go"
2044
+ "go",
2045
+ "rust"
1996
2046
  ]
1997
2047
  }
2048
+ },
2049
+ "just_types": {
2050
+ "required": false,
2051
+ "schema": {
2052
+ "type": "boolean"
2053
+ }
1998
2054
  }
1999
2055
  }
2000
2056
  },
@@ -2010,6 +2066,7 @@
2010
2066
  }
2011
2067
  }
2012
2068
  },
2069
+ "getTemplatePreview": {},
2013
2070
  "getTemplateSchema": {
2014
2071
  "query": {
2015
2072
  "version": {
@@ -2130,6 +2187,33 @@
2130
2187
  "schema": {
2131
2188
  "type": "string"
2132
2189
  }
2190
+ },
2191
+ "state": {
2192
+ "required": false,
2193
+ "schema": {
2194
+ "type": "string",
2195
+ "enum": [
2196
+ "pending",
2197
+ "processed",
2198
+ "invalid_data",
2199
+ "error",
2200
+ "image_download_failed",
2201
+ "image_processing_failed",
2202
+ "waiting_for_signature_requests",
2203
+ "syntax_error",
2204
+ "insufficient_credits",
2205
+ "account_suspended",
2206
+ "license_revoked",
2207
+ "accidental",
2208
+ "declined"
2209
+ ]
2210
+ }
2211
+ },
2212
+ "include_files": {
2213
+ "required": false,
2214
+ "schema": {
2215
+ "type": "boolean"
2216
+ }
2133
2217
  }
2134
2218
  }
2135
2219
  },
@@ -2186,6 +2270,33 @@
2186
2270
  "schema": {
2187
2271
  "type": "string"
2188
2272
  }
2273
+ },
2274
+ "state": {
2275
+ "required": false,
2276
+ "schema": {
2277
+ "type": "string",
2278
+ "enum": [
2279
+ "pending",
2280
+ "processed",
2281
+ "invalid_data",
2282
+ "error",
2283
+ "image_download_failed",
2284
+ "image_processing_failed",
2285
+ "waiting_for_signature_requests",
2286
+ "syntax_error",
2287
+ "insufficient_credits",
2288
+ "account_suspended",
2289
+ "license_revoked",
2290
+ "accidental",
2291
+ "declined"
2292
+ ]
2293
+ }
2294
+ },
2295
+ "include_files": {
2296
+ "required": false,
2297
+ "schema": {
2298
+ "type": "boolean"
2299
+ }
2189
2300
  }
2190
2301
  }
2191
2302
  },
@@ -2542,7 +2653,7 @@
2542
2653
  "name": {
2543
2654
  "type": "string",
2544
2655
  "minLength": 1,
2545
- "maxLength": 255
2656
+ "maxLength": 512
2546
2657
  },
2547
2658
  "description": {
2548
2659
  "type": [
@@ -2550,6 +2661,14 @@
2550
2661
  "null"
2551
2662
  ]
2552
2663
  },
2664
+ "output_format": {
2665
+ "type": "string",
2666
+ "enum": [
2667
+ "pdf",
2668
+ "docx",
2669
+ "odt"
2670
+ ]
2671
+ },
2553
2672
  "parent_folder_id": {
2554
2673
  "type": [
2555
2674
  "string",
@@ -3115,6 +3234,9 @@
3115
3234
  }
3116
3235
  },
3117
3236
  "additionalProperties": false
3237
+ },
3238
+ "html_escape_data": {
3239
+ "type": "boolean"
3118
3240
  }
3119
3241
  },
3120
3242
  "additionalProperties": false
@@ -3802,7 +3924,7 @@
3802
3924
  "string",
3803
3925
  "null"
3804
3926
  ],
3805
- "maxLength": 255
3927
+ "maxLength": 512
3806
3928
  },
3807
3929
  "url": {
3808
3930
  "type": "string",
@@ -3923,7 +4045,7 @@
3923
4045
  "name": {
3924
4046
  "type": "string",
3925
4047
  "minLength": 1,
3926
- "maxLength": 255
4048
+ "maxLength": 512
3927
4049
  },
3928
4050
  "description": {
3929
4051
  "type": "string"
@@ -3964,6 +4086,14 @@
3964
4086
  "ai",
3965
4087
  "none"
3966
4088
  ]
4089
+ },
4090
+ "output_format": {
4091
+ "type": "string",
4092
+ "enum": [
4093
+ "pdf",
4094
+ "docx",
4095
+ "odt"
4096
+ ]
3967
4097
  }
3968
4098
  },
3969
4099
  "additionalProperties": false
@@ -4041,6 +4171,8 @@
4041
4171
  "type": "string",
4042
4172
  "enum": [
4043
4173
  "pdf",
4174
+ "docx",
4175
+ "odt",
4044
4176
  "png"
4045
4177
  ]
4046
4178
  }
@@ -4080,7 +4212,7 @@
4080
4212
  "string",
4081
4213
  "null"
4082
4214
  ],
4083
- "maxLength": 255
4215
+ "maxLength": 254
4084
4216
  },
4085
4217
  "fields": {
4086
4218
  "type": "array",
@@ -4202,6 +4334,7 @@
4202
4334
  "GET /templates/{template_id}/fields": "listTemplateFields",
4203
4335
  "GET /templates/{template_id}/model_code": "getTemplateModelCode",
4204
4336
  "GET /templates/{template_id}/page_images": "getTemplatePageImages",
4337
+ "GET /templates/{template_id}/previews/{preview_id}": "getTemplatePreview",
4205
4338
  "GET /templates/{template_id}/schema": "getTemplateSchema",
4206
4339
  "GET /templates/{template_id}/submissions": "listTemplateSubmissions",
4207
4340
  "GET /uploads/presign": "getPresignUrl",
@@ -4224,6 +4357,7 @@
4224
4357
  "POST /templates/{template_id}/fields/remove": "removeTemplateFields",
4225
4358
  "POST /templates/{template_id}/fields/reorder": "reorderTemplateFields",
4226
4359
  "POST /templates/{template_id}/move": "moveTemplate",
4360
+ "POST /templates/{template_id}/previews": "createTemplatePreview",
4227
4361
  "POST /templates/{template_id}/publish_version": "publishTemplateVersion",
4228
4362
  "POST /templates/{template_id}/restore_version": "restoreTemplateVersion",
4229
4363
  "POST /templates/{template_id}/submissions": "createSubmission",
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  #DocSpring API
3
3
 
4
- #Use DocSpring's API to programmatically fill out PDF forms, convert HTML to PDFs, merge PDFs, or request legally binding e-signatures.
4
+ #Use DocSpring's API to fill PDF forms, generate PDFs and Word documents from HTML or Word templates, merge PDFs, and request legally binding e-signatures.
5
5
 
6
6
  The version of the OpenAPI document: v2
7
7
 
@@ -11,5 +11,5 @@ Generator version: 7.26.0-DOCSPRING
11
11
  =end
12
12
 
13
13
  module DocSpring
14
- VERSION = '4.1.0'
14
+ VERSION = '4.3.0'
15
15
  end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'openssl'
4
+
5
+ module DocSpring
6
+ # The number of seconds a webhook request's signature stays valid (verify_webhook_signature)
7
+ WEBHOOK_SIGNATURE_TOLERANCE = 300
8
+
9
+ # Checks a webhook request's X-DocSpring-Signature header (https://docspring.com/docs/webhooks/verifying-signatures/).
10
+ # Returns true when one of its v1 signatures is the HMAC-SHA256 of "{t}.{payload}" with the webhook's secret, and its
11
+ # timestamp t is at most `tolerance` seconds from `now`. Returns false for anything else, including a missing or
12
+ # malformed header.
13
+ #
14
+ # payload: the request body exactly as it was received (Rails: request.raw_post), not parsed JSON.
15
+ # signature_header: the X-DocSpring-Signature header.
16
+ # secret: the webhook's signing secret.
17
+ # tolerance: how many seconds old (or early) the timestamp can be. 5 minutes by default.
18
+ # now: the current Unix time in seconds, for tests. The system clock by default.
19
+ def self.verify_webhook_signature(payload, signature_header, secret, tolerance: WEBHOOK_SIGNATURE_TOLERANCE, now: nil)
20
+ return false unless payload.is_a?(String) && signature_header.is_a?(String) && secret.is_a?(String) && !secret.empty?
21
+
22
+ parts = signature_header.split(',').map { |part| part.strip.split('=', 2) }
23
+ timestamp = parts.find { |key, _value| key == 't' }&.last
24
+ signatures = parts.filter_map { |key, value| value if key == 'v1' && value && !value.empty? }
25
+ return false unless timestamp&.match?(/\A\d+\z/) && !signatures.empty?
26
+
27
+ now = Time.now.to_i if now.nil?
28
+ return false if (now.to_i - timestamp.to_i).abs > tolerance
29
+
30
+ expected = OpenSSL::HMAC.hexdigest('SHA256', secret, "#{timestamp}.#{payload}")
31
+ signatures.any? { |signature| webhook_signature_equal?(signature, expected) }
32
+ end
33
+
34
+ # Compares two signatures in constant time, so a timing attack can't find a valid one byte by byte
35
+ def self.webhook_signature_equal?(signature, expected)
36
+ return false unless signature.bytesize == expected.bytesize
37
+ # OpenSSL 2.2 (Ruby 3.0) and later
38
+ return OpenSSL.fixed_length_secure_compare(signature, expected) if OpenSSL.respond_to?(:fixed_length_secure_compare)
39
+
40
+ difference = 0
41
+ signature.bytes.zip(expected.bytes) { |a, b| difference |= a ^ b }
42
+ difference == 0
43
+ end
44
+ private_class_method :webhook_signature_equal?
45
+ end
data/lib/docspring.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  #DocSpring API
3
3
 
4
- #Use DocSpring's API to programmatically fill out PDF forms, convert HTML to PDFs, merge PDFs, or request legally binding e-signatures.
4
+ #Use DocSpring's API to fill PDF forms, generate PDFs and Word documents from HTML or Word templates, merge PDFs, and request legally binding e-signatures.
5
5
 
6
6
  The version of the OpenAPI document: v2
7
7
 
@@ -14,6 +14,7 @@ Generator version: 7.26.0-DOCSPRING
14
14
  require 'docspring/api_client'
15
15
  require 'docspring/api_error'
16
16
  require 'docspring/request_validator'
17
+ require 'docspring/webhook_signature'
17
18
  require 'docspring/api_model_base'
18
19
  require 'docspring/version'
19
20
  require 'docspring/configuration'
@@ -41,6 +42,7 @@ require 'docspring/models/create_signature_request_event_request'
41
42
  require 'docspring/models/create_signature_request_token_request'
42
43
  require 'docspring/models/create_submission_batch_request'
43
44
  require 'docspring/models/create_submission_request'
45
+ require 'docspring/models/create_template_preview_request'
44
46
  require 'docspring/models/create_template_request'
45
47
  require 'docspring/models/create_webhook_request'
46
48
  require 'docspring/models/custom_file'
@@ -122,6 +124,7 @@ require 'docspring/models/submission_list'
122
124
  require 'docspring/models/submission_source'
123
125
  require 'docspring/models/submission_source_pdf'
124
126
  require 'docspring/models/submission_state'
127
+ require 'docspring/models/submission_summary'
125
128
  require 'docspring/models/submission_validation'
126
129
  require 'docspring/models/template'
127
130
  require 'docspring/models/template_actor'
@@ -132,6 +135,7 @@ require 'docspring/models/template_diff'
132
135
  require 'docspring/models/template_diff_summary'
133
136
  require 'docspring/models/template_document'
134
137
  require 'docspring/models/template_document_state'
138
+ require 'docspring/models/template_document_summary'
135
139
  require 'docspring/models/template_field_change'
136
140
  require 'docspring/models/template_field_changes'
137
141
  require 'docspring/models/template_field_dependency'
@@ -152,6 +156,8 @@ require 'docspring/models/template_page_fields_status'
152
156
  require 'docspring/models/template_page_image_status'
153
157
  require 'docspring/models/template_page_images'
154
158
  require 'docspring/models/template_page_processing_status'
159
+ require 'docspring/models/template_preview'
160
+ require 'docspring/models/template_preview_state'
155
161
  require 'docspring/models/template_source_pdf'
156
162
  require 'docspring/models/template_summary'
157
163
  require 'docspring/models/template_summary_list'