pdf_generator_api_client 8.0.29 → 8.0.31

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 (353) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -6
  3. data/docs/ConversionApi.md +1 -1
  4. data/docs/ConvertURL2PDFRequest.md +11 -1
  5. data/docs/FormActionSendSendDocument.md +1 -1
  6. data/docs/FormActionSign.md +18 -0
  7. data/docs/FormConfigurationImport.md +24 -0
  8. data/docs/FormConfigurationNew.md +3 -3
  9. data/docs/FormConfigurationNewActionsInner.md +3 -1
  10. data/docs/FormField.md +30 -0
  11. data/docs/FormFieldOptions.md +18 -0
  12. data/docs/FormFieldSubRowsInner.md +30 -0
  13. data/docs/FormTableColumn.md +28 -0
  14. data/docs/FormsApi.md +72 -4
  15. data/docs/ImportFormBase64.md +1 -1
  16. data/docs/ImportFormUrl.md +1 -1
  17. data/lib/pdf_generator_api_client/api/assets_api.rb +1 -1
  18. data/lib/pdf_generator_api_client/api/conversion_api.rb +3 -3
  19. data/lib/pdf_generator_api_client/api/documents_api.rb +1 -1
  20. data/lib/pdf_generator_api_client/api/e_invoices_api.rb +1 -1
  21. data/lib/pdf_generator_api_client/api/forms_api.rb +77 -3
  22. data/lib/pdf_generator_api_client/api/misc_api.rb +1 -1
  23. data/lib/pdf_generator_api_client/api/services_api.rb +1 -1
  24. data/lib/pdf_generator_api_client/api/template_library_api.rb +1 -1
  25. data/lib/pdf_generator_api_client/api/template_versions_api.rb +1 -1
  26. data/lib/pdf_generator_api_client/api/templates_api.rb +1 -1
  27. data/lib/pdf_generator_api_client/api/workspaces_api.rb +1 -1
  28. data/lib/pdf_generator_api_client/api_client.rb +1 -1
  29. data/lib/pdf_generator_api_client/api_error.rb +1 -1
  30. data/lib/pdf_generator_api_client/configuration.rb +1 -1
  31. data/lib/pdf_generator_api_client/models/accessibility_option.rb +1 -1
  32. data/lib/pdf_generator_api_client/models/add_watermark_request.rb +1 -1
  33. data/lib/pdf_generator_api_client/models/async_output_param.rb +1 -1
  34. data/lib/pdf_generator_api_client/models/callback_param.rb +1 -1
  35. data/lib/pdf_generator_api_client/models/component.rb +1 -1
  36. data/lib/pdf_generator_api_client/models/convert_html2_pdf_request.rb +1 -1
  37. data/lib/pdf_generator_api_client/models/convert_pdf2_image_request.rb +1 -1
  38. data/lib/pdf_generator_api_client/models/convert_url2_pdf_request.rb +151 -5
  39. data/lib/pdf_generator_api_client/models/copy_template_request.rb +1 -1
  40. data/lib/pdf_generator_api_client/models/create_e_invoice_request.rb +1 -1
  41. data/lib/pdf_generator_api_client/models/create_factur_xe_invoice_request.rb +1 -1
  42. data/lib/pdf_generator_api_client/models/create_factur_xe_invoice_request_template.rb +1 -1
  43. data/lib/pdf_generator_api_client/models/create_workspace_request.rb +1 -1
  44. data/lib/pdf_generator_api_client/models/data_batch_inner.rb +1 -1
  45. data/lib/pdf_generator_api_client/models/document.rb +1 -1
  46. data/lib/pdf_generator_api_client/models/document_action.rb +1 -1
  47. data/lib/pdf_generator_api_client/models/document_signature.rb +1 -1
  48. data/lib/pdf_generator_api_client/models/document_signatures.rb +1 -1
  49. data/lib/pdf_generator_api_client/models/document_user.rb +1 -1
  50. data/lib/pdf_generator_api_client/models/document_version.rb +1 -1
  51. data/lib/pdf_generator_api_client/models/encrypt_and_decrypt_base64.rb +1 -1
  52. data/lib/pdf_generator_api_client/models/encrypt_and_decrypt_url.rb +1 -1
  53. data/lib/pdf_generator_api_client/models/encrypt_document_request.rb +1 -1
  54. data/lib/pdf_generator_api_client/models/extract_form_fields_request.rb +1 -1
  55. data/lib/pdf_generator_api_client/models/fill_form_fields_request.rb +1 -1
  56. data/lib/pdf_generator_api_client/models/form_action_download.rb +1 -1
  57. data/lib/pdf_generator_api_client/models/form_action_send.rb +1 -1
  58. data/lib/pdf_generator_api_client/models/form_action_send_send_document.rb +2 -2
  59. data/lib/pdf_generator_api_client/models/form_action_send_send_document_headers_inner.rb +19 -1
  60. data/lib/pdf_generator_api_client/models/form_action_sign.rb +221 -0
  61. data/lib/pdf_generator_api_client/models/form_action_store.rb +1 -1
  62. data/lib/pdf_generator_api_client/models/form_configuration.rb +28 -1
  63. data/lib/pdf_generator_api_client/models/form_configuration_import.rb +301 -0
  64. data/lib/pdf_generator_api_client/models/form_configuration_new.rb +92 -4
  65. data/lib/pdf_generator_api_client/models/form_configuration_new_actions_inner.rb +2 -1
  66. data/lib/pdf_generator_api_client/models/form_field.rb +462 -0
  67. data/lib/pdf_generator_api_client/models/{form_fields_inner.rb → form_field_options.rb} +45 -74
  68. data/lib/pdf_generator_api_client/models/form_field_sub_rows_inner.rb +104 -0
  69. data/lib/pdf_generator_api_client/models/form_fields_base64.rb +1 -1
  70. data/lib/pdf_generator_api_client/models/form_fields_url.rb +1 -1
  71. data/lib/pdf_generator_api_client/models/form_fill_base64.rb +1 -1
  72. data/lib/pdf_generator_api_client/models/form_fill_url.rb +1 -1
  73. data/lib/pdf_generator_api_client/models/form_table_column.rb +446 -0
  74. data/lib/pdf_generator_api_client/models/format_param.rb +1 -1
  75. data/lib/pdf_generator_api_client/models/generate_document_asynchronous_request.rb +1 -1
  76. data/lib/pdf_generator_api_client/models/generate_document_batch_asynchronous_request.rb +1 -1
  77. data/lib/pdf_generator_api_client/models/generate_document_batch_request.rb +1 -1
  78. data/lib/pdf_generator_api_client/models/generate_document_request.rb +1 -1
  79. data/lib/pdf_generator_api_client/models/generate_qr_code201_response.rb +1 -1
  80. data/lib/pdf_generator_api_client/models/generate_qr_code201_response_meta.rb +1 -1
  81. data/lib/pdf_generator_api_client/models/generate_qr_code_request.rb +1 -1
  82. data/lib/pdf_generator_api_client/models/generate_viewer_url200_response.rb +1 -1
  83. data/lib/pdf_generator_api_client/models/generate_viewer_url200_response_meta.rb +1 -1
  84. data/lib/pdf_generator_api_client/models/generate_viewer_url_request.rb +1 -1
  85. data/lib/pdf_generator_api_client/models/get_status200_response.rb +1 -1
  86. data/lib/pdf_generator_api_client/models/get_template_library200_response.rb +1 -1
  87. data/lib/pdf_generator_api_client/models/get_template_version422_response.rb +1 -1
  88. data/lib/pdf_generator_api_client/models/import_form_base64.rb +2 -2
  89. data/lib/pdf_generator_api_client/models/import_form_request.rb +1 -1
  90. data/lib/pdf_generator_api_client/models/import_form_url.rb +2 -2
  91. data/lib/pdf_generator_api_client/models/import_template_base64.rb +1 -1
  92. data/lib/pdf_generator_api_client/models/import_template_request.rb +1 -1
  93. data/lib/pdf_generator_api_client/models/import_template_url.rb +1 -1
  94. data/lib/pdf_generator_api_client/models/import_template_url_template.rb +1 -1
  95. data/lib/pdf_generator_api_client/models/inline_object.rb +1 -1
  96. data/lib/pdf_generator_api_client/models/inline_object1.rb +1 -1
  97. data/lib/pdf_generator_api_client/models/inline_object10.rb +1 -1
  98. data/lib/pdf_generator_api_client/models/inline_object10_meta.rb +1 -1
  99. data/lib/pdf_generator_api_client/models/inline_object11.rb +1 -1
  100. data/lib/pdf_generator_api_client/models/inline_object11_meta.rb +1 -1
  101. data/lib/pdf_generator_api_client/models/inline_object12.rb +1 -1
  102. data/lib/pdf_generator_api_client/models/inline_object12_meta.rb +1 -1
  103. data/lib/pdf_generator_api_client/models/inline_object12_meta_stats.rb +1 -1
  104. data/lib/pdf_generator_api_client/models/inline_object13.rb +1 -1
  105. data/lib/pdf_generator_api_client/models/inline_object14.rb +1 -1
  106. data/lib/pdf_generator_api_client/models/inline_object14_response_value.rb +1 -1
  107. data/lib/pdf_generator_api_client/models/inline_object14_response_value_default.rb +1 -1
  108. data/lib/pdf_generator_api_client/models/inline_object14_response_value_value.rb +1 -1
  109. data/lib/pdf_generator_api_client/models/inline_object15.rb +1 -1
  110. data/lib/pdf_generator_api_client/models/inline_object16.rb +1 -1
  111. data/lib/pdf_generator_api_client/models/inline_object17.rb +1 -1
  112. data/lib/pdf_generator_api_client/models/inline_object18.rb +1 -1
  113. data/lib/pdf_generator_api_client/models/inline_object19.rb +1 -1
  114. data/lib/pdf_generator_api_client/models/inline_object1_response.rb +1 -1
  115. data/lib/pdf_generator_api_client/models/inline_object2.rb +1 -1
  116. data/lib/pdf_generator_api_client/models/inline_object20.rb +1 -1
  117. data/lib/pdf_generator_api_client/models/inline_object21.rb +1 -1
  118. data/lib/pdf_generator_api_client/models/inline_object21_meta.rb +1 -1
  119. data/lib/pdf_generator_api_client/models/inline_object22.rb +1 -1
  120. data/lib/pdf_generator_api_client/models/inline_object23.rb +1 -1
  121. data/lib/pdf_generator_api_client/models/inline_object23_response.rb +1 -1
  122. data/lib/pdf_generator_api_client/models/inline_object24.rb +1 -1
  123. data/lib/pdf_generator_api_client/models/inline_object25.rb +1 -1
  124. data/lib/pdf_generator_api_client/models/inline_object26.rb +1 -1
  125. data/lib/pdf_generator_api_client/models/inline_object27.rb +1 -1
  126. data/lib/pdf_generator_api_client/models/inline_object28.rb +1 -1
  127. data/lib/pdf_generator_api_client/models/inline_object29.rb +1 -1
  128. data/lib/pdf_generator_api_client/models/inline_object3.rb +1 -1
  129. data/lib/pdf_generator_api_client/models/inline_object30.rb +1 -1
  130. data/lib/pdf_generator_api_client/models/inline_object31.rb +1 -1
  131. data/lib/pdf_generator_api_client/models/inline_object4.rb +1 -1
  132. data/lib/pdf_generator_api_client/models/inline_object5.rb +1 -1
  133. data/lib/pdf_generator_api_client/models/inline_object6.rb +1 -1
  134. data/lib/pdf_generator_api_client/models/inline_object7.rb +1 -1
  135. data/lib/pdf_generator_api_client/models/inline_object7_response.rb +1 -1
  136. data/lib/pdf_generator_api_client/models/inline_object8.rb +1 -1
  137. data/lib/pdf_generator_api_client/models/inline_object9.rb +1 -1
  138. data/lib/pdf_generator_api_client/models/inline_object9_meta.rb +1 -1
  139. data/lib/pdf_generator_api_client/models/inline_object_meta.rb +1 -1
  140. data/lib/pdf_generator_api_client/models/key_field_param.rb +1 -1
  141. data/lib/pdf_generator_api_client/models/make_accessible_base64.rb +1 -1
  142. data/lib/pdf_generator_api_client/models/make_accessible_request.rb +1 -1
  143. data/lib/pdf_generator_api_client/models/make_accessible_url.rb +1 -1
  144. data/lib/pdf_generator_api_client/models/metadata_param.rb +1 -1
  145. data/lib/pdf_generator_api_client/models/open_editor_request.rb +1 -1
  146. data/lib/pdf_generator_api_client/models/open_editor_request_data.rb +1 -1
  147. data/lib/pdf_generator_api_client/models/optimize_base64.rb +1 -1
  148. data/lib/pdf_generator_api_client/models/optimize_document_request.rb +1 -1
  149. data/lib/pdf_generator_api_client/models/optimize_url.rb +1 -1
  150. data/lib/pdf_generator_api_client/models/output_param.rb +1 -1
  151. data/lib/pdf_generator_api_client/models/pagination_meta.rb +1 -1
  152. data/lib/pdf_generator_api_client/models/prefill_param.rb +1 -1
  153. data/lib/pdf_generator_api_client/models/promote_template_version200_response.rb +1 -1
  154. data/lib/pdf_generator_api_client/models/public_template_library_item.rb +1 -1
  155. data/lib/pdf_generator_api_client/models/status_param.rb +1 -1
  156. data/lib/pdf_generator_api_client/models/store_document_request.rb +1 -1
  157. data/lib/pdf_generator_api_client/models/template.rb +1 -1
  158. data/lib/pdf_generator_api_client/models/template_definition.rb +1 -1
  159. data/lib/pdf_generator_api_client/models/template_definition_data_settings.rb +1 -1
  160. data/lib/pdf_generator_api_client/models/template_definition_editor.rb +1 -1
  161. data/lib/pdf_generator_api_client/models/template_definition_new.rb +1 -1
  162. data/lib/pdf_generator_api_client/models/template_definition_new_data_settings.rb +1 -1
  163. data/lib/pdf_generator_api_client/models/template_definition_new_editor.rb +1 -1
  164. data/lib/pdf_generator_api_client/models/template_definition_new_layout.rb +1 -1
  165. data/lib/pdf_generator_api_client/models/template_definition_new_layout_margins.rb +1 -1
  166. data/lib/pdf_generator_api_client/models/template_definition_new_layout_repeat_layout.rb +1 -1
  167. data/lib/pdf_generator_api_client/models/template_definition_new_pages_inner.rb +1 -1
  168. data/lib/pdf_generator_api_client/models/template_definition_new_pages_inner_margins.rb +1 -1
  169. data/lib/pdf_generator_api_client/models/template_definition_pages_inner.rb +1 -1
  170. data/lib/pdf_generator_api_client/models/template_param.rb +1 -1
  171. data/lib/pdf_generator_api_client/models/template_param_data.rb +1 -1
  172. data/lib/pdf_generator_api_client/models/template_param_id.rb +1 -1
  173. data/lib/pdf_generator_api_client/models/template_version.rb +1 -1
  174. data/lib/pdf_generator_api_client/models/template_version_collection.rb +1 -1
  175. data/lib/pdf_generator_api_client/models/template_version_collection_meta.rb +1 -1
  176. data/lib/pdf_generator_api_client/models/watermark_base64.rb +1 -1
  177. data/lib/pdf_generator_api_client/models/watermark_file_url_watermark.rb +1 -1
  178. data/lib/pdf_generator_api_client/models/watermark_image.rb +1 -1
  179. data/lib/pdf_generator_api_client/models/watermark_image_content_base64.rb +1 -1
  180. data/lib/pdf_generator_api_client/models/watermark_image_content_url.rb +1 -1
  181. data/lib/pdf_generator_api_client/models/watermark_position.rb +1 -1
  182. data/lib/pdf_generator_api_client/models/watermark_text.rb +1 -1
  183. data/lib/pdf_generator_api_client/models/workspace.rb +1 -1
  184. data/lib/pdf_generator_api_client/version.rb +2 -2
  185. data/lib/pdf_generator_api_client.rb +7 -2
  186. data/pdf_generator_api_client.gemspec +1 -1
  187. data/spec/api/assets_api_spec.rb +1 -1
  188. data/spec/api/conversion_api_spec.rb +2 -2
  189. data/spec/api/documents_api_spec.rb +1 -1
  190. data/spec/api/e_invoices_api_spec.rb +1 -1
  191. data/spec/api/forms_api_spec.rb +16 -2
  192. data/spec/api/misc_api_spec.rb +1 -1
  193. data/spec/api/services_api_spec.rb +1 -1
  194. data/spec/api/template_library_api_spec.rb +1 -1
  195. data/spec/api/template_versions_api_spec.rb +1 -1
  196. data/spec/api/templates_api_spec.rb +1 -1
  197. data/spec/api/workspaces_api_spec.rb +1 -1
  198. data/spec/models/accessibility_option_spec.rb +1 -1
  199. data/spec/models/add_watermark_request_spec.rb +1 -1
  200. data/spec/models/async_output_param_spec.rb +1 -1
  201. data/spec/models/callback_param_spec.rb +1 -1
  202. data/spec/models/component_spec.rb +1 -1
  203. data/spec/models/convert_html2_pdf_request_spec.rb +1 -1
  204. data/spec/models/convert_pdf2_image_request_spec.rb +1 -1
  205. data/spec/models/convert_url2_pdf_request_spec.rb +39 -1
  206. data/spec/models/copy_template_request_spec.rb +1 -1
  207. data/spec/models/create_e_invoice_request_spec.rb +1 -1
  208. data/spec/models/create_factur_xe_invoice_request_spec.rb +1 -1
  209. data/spec/models/create_factur_xe_invoice_request_template_spec.rb +1 -1
  210. data/spec/models/create_workspace_request_spec.rb +1 -1
  211. data/spec/models/data_batch_inner_spec.rb +1 -1
  212. data/spec/models/document_action_spec.rb +1 -1
  213. data/spec/models/document_signature_spec.rb +1 -1
  214. data/spec/models/document_signatures_spec.rb +1 -1
  215. data/spec/models/document_spec.rb +1 -1
  216. data/spec/models/document_user_spec.rb +1 -1
  217. data/spec/models/document_version_spec.rb +1 -1
  218. data/spec/models/encrypt_and_decrypt_base64_spec.rb +1 -1
  219. data/spec/models/encrypt_and_decrypt_url_spec.rb +1 -1
  220. data/spec/models/encrypt_document_request_spec.rb +1 -1
  221. data/spec/models/extract_form_fields_request_spec.rb +1 -1
  222. data/spec/models/fill_form_fields_request_spec.rb +1 -1
  223. data/spec/models/form_action_download_spec.rb +1 -1
  224. data/spec/models/form_action_send_send_document_headers_inner_spec.rb +1 -1
  225. data/spec/models/form_action_send_send_document_spec.rb +1 -1
  226. data/spec/models/form_action_send_spec.rb +1 -1
  227. data/spec/models/form_action_sign_spec.rb +36 -0
  228. data/spec/models/form_action_store_spec.rb +1 -1
  229. data/spec/models/{form_fields_inner_spec.rb → form_configuration_import_spec.rb} +10 -14
  230. data/spec/models/form_configuration_new_actions_inner_spec.rb +1 -1
  231. data/spec/models/form_configuration_new_spec.rb +1 -1
  232. data/spec/models/form_configuration_spec.rb +1 -1
  233. data/spec/models/form_field_options_spec.rb +36 -0
  234. data/spec/models/form_field_spec.rb +76 -0
  235. data/spec/models/form_field_sub_rows_inner_spec.rb +21 -0
  236. data/spec/models/form_fields_base64_spec.rb +1 -1
  237. data/spec/models/form_fields_url_spec.rb +1 -1
  238. data/spec/models/form_fill_base64_spec.rb +1 -1
  239. data/spec/models/form_fill_url_spec.rb +1 -1
  240. data/spec/models/form_table_column_spec.rb +70 -0
  241. data/spec/models/format_param_spec.rb +1 -1
  242. data/spec/models/generate_document_asynchronous_request_spec.rb +1 -1
  243. data/spec/models/generate_document_batch_asynchronous_request_spec.rb +1 -1
  244. data/spec/models/generate_document_batch_request_spec.rb +1 -1
  245. data/spec/models/generate_document_request_spec.rb +1 -1
  246. data/spec/models/generate_qr_code201_response_meta_spec.rb +1 -1
  247. data/spec/models/generate_qr_code201_response_spec.rb +1 -1
  248. data/spec/models/generate_qr_code_request_spec.rb +1 -1
  249. data/spec/models/generate_viewer_url200_response_meta_spec.rb +1 -1
  250. data/spec/models/generate_viewer_url200_response_spec.rb +1 -1
  251. data/spec/models/generate_viewer_url_request_spec.rb +1 -1
  252. data/spec/models/get_status200_response_spec.rb +1 -1
  253. data/spec/models/get_template_library200_response_spec.rb +1 -1
  254. data/spec/models/get_template_version422_response_spec.rb +1 -1
  255. data/spec/models/import_form_base64_spec.rb +1 -1
  256. data/spec/models/import_form_request_spec.rb +1 -1
  257. data/spec/models/import_form_url_spec.rb +1 -1
  258. data/spec/models/import_template_base64_spec.rb +1 -1
  259. data/spec/models/import_template_request_spec.rb +1 -1
  260. data/spec/models/import_template_url_spec.rb +1 -1
  261. data/spec/models/import_template_url_template_spec.rb +1 -1
  262. data/spec/models/inline_object10_meta_spec.rb +1 -1
  263. data/spec/models/inline_object10_spec.rb +1 -1
  264. data/spec/models/inline_object11_meta_spec.rb +1 -1
  265. data/spec/models/inline_object11_spec.rb +1 -1
  266. data/spec/models/inline_object12_meta_spec.rb +1 -1
  267. data/spec/models/inline_object12_meta_stats_spec.rb +1 -1
  268. data/spec/models/inline_object12_spec.rb +1 -1
  269. data/spec/models/inline_object13_spec.rb +1 -1
  270. data/spec/models/inline_object14_response_value_default_spec.rb +1 -1
  271. data/spec/models/inline_object14_response_value_spec.rb +1 -1
  272. data/spec/models/inline_object14_response_value_value_spec.rb +1 -1
  273. data/spec/models/inline_object14_spec.rb +1 -1
  274. data/spec/models/inline_object15_spec.rb +1 -1
  275. data/spec/models/inline_object16_spec.rb +1 -1
  276. data/spec/models/inline_object17_spec.rb +1 -1
  277. data/spec/models/inline_object18_spec.rb +1 -1
  278. data/spec/models/inline_object19_spec.rb +1 -1
  279. data/spec/models/inline_object1_response_spec.rb +1 -1
  280. data/spec/models/inline_object1_spec.rb +1 -1
  281. data/spec/models/inline_object20_spec.rb +1 -1
  282. data/spec/models/inline_object21_meta_spec.rb +1 -1
  283. data/spec/models/inline_object21_spec.rb +1 -1
  284. data/spec/models/inline_object22_spec.rb +1 -1
  285. data/spec/models/inline_object23_response_spec.rb +1 -1
  286. data/spec/models/inline_object23_spec.rb +1 -1
  287. data/spec/models/inline_object24_spec.rb +1 -1
  288. data/spec/models/inline_object25_spec.rb +1 -1
  289. data/spec/models/inline_object26_spec.rb +1 -1
  290. data/spec/models/inline_object27_spec.rb +1 -1
  291. data/spec/models/inline_object28_spec.rb +1 -1
  292. data/spec/models/inline_object29_spec.rb +1 -1
  293. data/spec/models/inline_object2_spec.rb +1 -1
  294. data/spec/models/inline_object30_spec.rb +1 -1
  295. data/spec/models/inline_object31_spec.rb +1 -1
  296. data/spec/models/inline_object3_spec.rb +1 -1
  297. data/spec/models/inline_object4_spec.rb +1 -1
  298. data/spec/models/inline_object5_spec.rb +1 -1
  299. data/spec/models/inline_object6_spec.rb +1 -1
  300. data/spec/models/inline_object7_response_spec.rb +1 -1
  301. data/spec/models/inline_object7_spec.rb +1 -1
  302. data/spec/models/inline_object8_spec.rb +1 -1
  303. data/spec/models/inline_object9_meta_spec.rb +1 -1
  304. data/spec/models/inline_object9_spec.rb +1 -1
  305. data/spec/models/inline_object_meta_spec.rb +1 -1
  306. data/spec/models/inline_object_spec.rb +1 -1
  307. data/spec/models/key_field_param_spec.rb +1 -1
  308. data/spec/models/make_accessible_base64_spec.rb +1 -1
  309. data/spec/models/make_accessible_request_spec.rb +1 -1
  310. data/spec/models/make_accessible_url_spec.rb +1 -1
  311. data/spec/models/metadata_param_spec.rb +1 -1
  312. data/spec/models/open_editor_request_data_spec.rb +1 -1
  313. data/spec/models/open_editor_request_spec.rb +1 -1
  314. data/spec/models/optimize_base64_spec.rb +1 -1
  315. data/spec/models/optimize_document_request_spec.rb +1 -1
  316. data/spec/models/optimize_url_spec.rb +1 -1
  317. data/spec/models/output_param_spec.rb +1 -1
  318. data/spec/models/pagination_meta_spec.rb +1 -1
  319. data/spec/models/prefill_param_spec.rb +1 -1
  320. data/spec/models/promote_template_version200_response_spec.rb +1 -1
  321. data/spec/models/public_template_library_item_spec.rb +1 -1
  322. data/spec/models/status_param_spec.rb +1 -1
  323. data/spec/models/store_document_request_spec.rb +1 -1
  324. data/spec/models/template_definition_data_settings_spec.rb +1 -1
  325. data/spec/models/template_definition_editor_spec.rb +1 -1
  326. data/spec/models/template_definition_new_data_settings_spec.rb +1 -1
  327. data/spec/models/template_definition_new_editor_spec.rb +1 -1
  328. data/spec/models/template_definition_new_layout_margins_spec.rb +1 -1
  329. data/spec/models/template_definition_new_layout_repeat_layout_spec.rb +1 -1
  330. data/spec/models/template_definition_new_layout_spec.rb +1 -1
  331. data/spec/models/template_definition_new_pages_inner_margins_spec.rb +1 -1
  332. data/spec/models/template_definition_new_pages_inner_spec.rb +1 -1
  333. data/spec/models/template_definition_new_spec.rb +1 -1
  334. data/spec/models/template_definition_pages_inner_spec.rb +1 -1
  335. data/spec/models/template_definition_spec.rb +1 -1
  336. data/spec/models/template_param_data_spec.rb +1 -1
  337. data/spec/models/template_param_id_spec.rb +1 -1
  338. data/spec/models/template_param_spec.rb +1 -1
  339. data/spec/models/template_spec.rb +1 -1
  340. data/spec/models/template_version_collection_meta_spec.rb +1 -1
  341. data/spec/models/template_version_collection_spec.rb +1 -1
  342. data/spec/models/template_version_spec.rb +1 -1
  343. data/spec/models/watermark_base64_spec.rb +1 -1
  344. data/spec/models/watermark_file_url_watermark_spec.rb +1 -1
  345. data/spec/models/watermark_image_content_base64_spec.rb +1 -1
  346. data/spec/models/watermark_image_content_url_spec.rb +1 -1
  347. data/spec/models/watermark_image_spec.rb +1 -1
  348. data/spec/models/watermark_position_spec.rb +1 -1
  349. data/spec/models/watermark_text_spec.rb +1 -1
  350. data/spec/models/workspace_spec.rb +1 -1
  351. data/spec/spec_helper.rb +1 -1
  352. metadata +160 -140
  353. data/docs/FormFieldsInner.md +0 -24
@@ -3,7 +3,7 @@
3
3
 
4
4
  ## Introduction [PDF Generator API](https://pdfgeneratorapi.com) allows you easily generate transactional PDF documents and reduce the development and support costs by enabling your users to create and manage their document templates using a browser-based drag-and-drop document editor. The PDF Generator API features a web API architecture, allowing you to code in the language of your choice. This API supports the JSON media type, and uses UTF-8 character encoding. ## Base URL The base URL for all the API endpoints is `https://us1.pdfgeneratorapi.com/api/v4` For example * `https://us1.pdfgeneratorapi.com/api/v4/templates` * `https://us1.pdfgeneratorapi.com/api/v4/workspaces` * `https://us1.pdfgeneratorapi.com/api/v4/templates/123123` ## Editor PDF Generator API comes with a powerful drag & drop editor that allows to create any kind of document templates, from barcode labels to invoices, quotes and reports. You can find tutorials and videos from our [Support Portal](https://support.pdfgeneratorapi.com). * [Component specification](https://support.pdfgeneratorapi.com/en/category/components-1ffseaj/) * [Expression Language documentation](https://support.pdfgeneratorapi.com/en/category/expression-language-q203pa/) * [Frequently asked questions and answers](https://support.pdfgeneratorapi.com/en/category/qanda-1ov519d/) ## Definitions ### Organization Organization is a group of workspaces owned by your account. ### Workspace Workspace contains templates. Each workspace has access to their own templates and organization default templates. ### Master Workspace Master Workspace is the main/default workspace of your Organization. The Master Workspace identifier is the email you signed up with. ### Default Template Default template is a template that is available for all workspaces by default. You can set the template access type under Page Setup. If template has \"Organization\" access then your users can use them from the \"New\" menu in the Editor. ### Data Field Data Field is a placeholder for the specific data in your JSON data set. In this example JSON you can access the buyer name using Data Field `{paymentDetails::buyerName}`. The separator between depth levels is :: (two colons). When designing the template you don’t have to know every Data Field, our editor automatically extracts all the available fields from your data set and provides an easy way to insert them into the template. ``` { \"documentNumber\": 1, \"paymentDetails\": { \"method\": \"Credit Card\", \"buyerName\": \"John Smith\" }, \"items\": [ { \"id\": 1, \"name\": \"Item one\" } ] } ``` ## Rate limiting Our API endpoints use IP-based rate limiting and allow you to make up to 2 requests per second and 60 requests per minute. If you make more requests, you will receive a response with HTTP code 429. Response headers contain additional values: | Header | Description | |--------|--------------------------------| | X-RateLimit-Limit | Maximum requests per minute | | X-RateLimit-Remaining | The requests remaining in the current minute | | Retry-After | How many seconds you need to wait until you are allowed to make requests | * * * * * # Libraries and SDKs ## Postman Collection We have created a [Postman Collection](https://www.postman.com/pdfgeneratorapi/workspace/pdf-generator-api-public-workspace/overview) so you can easily test all the API endpoints without developing and code. ## Client Libraries All our Client Libraries are auto-generated using [OpenAPI Generator](https://openapi-generator.tech/) which uses the OpenAPI v3 specification to automatically generate a client library in specific programming language. * [PHP Client](https://github.com/pdfgeneratorapi/php-client) * [Java Client](https://github.com/pdfgeneratorapi/java-client) * [Ruby Client](https://github.com/pdfgeneratorapi/ruby-client) * [Python Client](https://github.com/pdfgeneratorapi/python-client) * [Javascript Client](https://github.com/pdfgeneratorapi/javascript-client) We have validated the generated libraries, but let us know if you find any anomalies in the client code. ## Model Context Protocol (MCP) Server Integrate document generation directly into your AI agents and LLM applications using our official Model Context Protocol (MCP) Server. The MCP server provides a standardized interface that allows AI assistants (like Claude Desktop and other MCP-compatible clients) to securely interact with the PDF Generator API. With it, your AI applications can automatically fetch workspaces, retrieve templates, merge data, and generate PDF documents on the fly. [Get PDF Generator API MCP Server](https://github.com/pdfgeneratorapi/mcp-server) * * * * * # Authentication The PDF Generator API uses __JSON Web Tokens (JWT)__ to authenticate all API requests. These tokens offer a method to establish secure server-to-server authentication by transferring a compact JSON object with a signed payload of your account’s API Key and Secret. When authenticating to the PDF Generator API, a JWT should be generated uniquely by a __server-side application__ and included as a __Bearer Token__ in the header of each request. <SecurityDefinitions /> ## Accessing your API Key and Secret You can find your __API Key__ and __API Secret__ from the __Account Settings__ page after you login to PDF Generator API [here](https://pdfgeneratorapi.com/login). ## Creating a JWT JSON Web Tokens are composed of three sections: a header, a payload (containing a claim set), and a signature. The header and payload are JSON objects, which are serialized to UTF-8 bytes, then encoded using base64url encoding. The JWT's header, payload, and signature are concatenated with periods (.). As a result, a JWT typically takes the following form: ``` {Base64url encoded header}.{Base64url encoded payload}.{Base64url encoded signature} ``` We recommend and support libraries provided on [jwt.io](https://jwt.io/). While other libraries can create JWT, these recommended libraries are the most robust. ### Header Property `alg` defines which signing algorithm is being used. PDF Generator API users HS256. Property `typ` defines the type of token and it is always JWT. ``` { \"alg\": \"HS256\", \"typ\": \"JWT\" } ``` ### Payload The second part of the token is the payload, which contains the claims or the pieces of information being passed about the user and any metadata required. It is mandatory to specify the following claims: * issuer (`iss`): Your API key * subject (`sub`): Workspace identifier * expiration time (`exp`): Timestamp (unix epoch time) until the token is valid. It is highly recommended to set the exp timestamp for a short period, i.e. a matter of seconds. This way, if a token is intercepted or shared, the token will only be valid for a short period of time. ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"exp\": 1586112639 } ``` ### Payload for Partners Our partners can send their unique identifier (provided by us) in JWT's partner_id claim. If the `partner_id` value is specified in the JWT, the organization making the request is automatically connected to the partner account. * Partner ID (`partner_id`): Unique identifier provide by PDF Generator API team ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"partner_id\": \"my-partner-identifier\", \"exp\": 1586112639 } ``` ### Signature To create the signature part you have to take the encoded header, the encoded payload, a secret, the algorithm specified in the header, and sign that. The signature is used to verify the message wasn't changed along the way, and, in the case of tokens signed with a private key, it can also verify that the sender of the JWT is who it says it is. ``` HMACSHA256( base64UrlEncode(header) + \".\" + base64UrlEncode(payload), API_SECRET) ``` ### Putting all together The output is three Base64-URL strings separated by dots. The following shows a JWT that has the previous header and payload encoded, and it is signed with a secret. ``` eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0.SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q // Base64 encoded header: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 // Base64 encoded payload: eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0 // Signature: SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q ``` ## Temporary JWTs You can create a temporary token in [Account Settings](https://pdfgeneratorapi.com/account/organization) page after you login to PDF Generator API. The generated token uses your email address as the subject (`sub`) value and is valid for __15 minutes__. You can also use [jwt.io](https://jwt.io/) to generate test tokens for your API calls. These test tokens should never be used in production applications. * * * * * # Error codes | Code | Description | |--------|--------------------------------| | 401 | Unauthorized | | 402 | Payment Required | | 403 | Forbidden | | 404 | Not Found | | 422 | Unprocessable Entity | | 429 | Too Many Requests | | 500 | Internal Server Error | ## 401 Unauthorized | Description | |-------------------------------------------------------------------------| | Authentication failed: request expired | | Authentication failed: workspace missing | | Authentication failed: key missing | | Authentication failed: property 'iss' (issuer) missing in JWT | | Authentication failed: property 'sub' (subject) missing in JWT | | Authentication failed: property 'exp' (expiration time) missing in JWT | | Authentication failed: incorrect signature | ## 402 Payment Required | Description | |-------------------------------------------------------------------------| | Your account is suspended, please upgrade your account | ## 403 Forbidden | Description | |-------------------------------------------------------------------------| | Your account has exceeded the monthly document generation limit. | | Access not granted: You cannot delete master workspace via API | | Access not granted: Template is not accessible by this organization | | Your session has expired, please close and reopen the editor. | ## 404 Entity not found | Description | |-------------------------------------------------------------------------| | Entity not found | | Resource not found | | None of the templates is available for the workspace. | ## 422 Unprocessable Entity | Description | |-------------------------------------------------------------------------| | Unable to parse JSON, please check formatting | | Required parameter missing | | Required parameter missing: template definition not defined | | Required parameter missing: template not defined | ## 429 Too Many Requests | Description | |-------------------------------------------------------------------------| | You can make up to 2 requests per second and 60 requests per minute. | * * * * *
5
5
 
6
- The version of the OpenAPI document: 4.0.29
6
+ The version of the OpenAPI document: 4.0.31
7
7
  Contact: support@pdfgeneratorapi.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.14.0
@@ -14,49 +14,15 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module PDFGeneratorAPI
17
- # Form field definition
18
- class FormFieldsInner
19
- # Field label displayed in the form
20
- attr_accessor :label
21
-
22
- # Data field name. For example \"name\" can be used as \"{name}\" in the document as placeholder.
23
- attr_accessor :name
24
-
25
- # Field type
26
- attr_accessor :type
27
-
28
- # Specifies if the field is required or not
29
- attr_accessor :required
30
-
31
- class EnumAttributeValidator
32
- attr_reader :datatype
33
- attr_reader :allowable_values
34
-
35
- def initialize(datatype, allowable_values)
36
- @allowable_values = allowable_values.map do |value|
37
- case datatype.to_s
38
- when /Integer/i
39
- value.to_i
40
- when /Float/i
41
- value.to_f
42
- else
43
- value
44
- end
45
- end
46
- end
47
-
48
- def valid?(value)
49
- !value || allowable_values.include?(value)
50
- end
51
- end
17
+ # Choices of a `select` or `multi-select` field
18
+ class FormFieldOptions
19
+ # Comma-separated list of choices. Whitespace around each choice is trimmed and choices must be unique.
20
+ attr_accessor :options
52
21
 
53
22
  # Attribute mapping from ruby-style variable name to JSON key.
54
23
  def self.attribute_map
55
24
  {
56
- :'label' => :'label',
57
- :'name' => :'name',
58
- :'type' => :'type',
59
- :'required' => :'required'
25
+ :'options' => :'options'
60
26
  }
61
27
  end
62
28
 
@@ -73,10 +39,7 @@ module PDFGeneratorAPI
73
39
  # Attribute type mapping.
74
40
  def self.openapi_types
75
41
  {
76
- :'label' => :'String',
77
- :'name' => :'String',
78
- :'type' => :'String',
79
- :'required' => :'Boolean'
42
+ :'options' => :'String'
80
43
  }
81
44
  end
82
45
 
@@ -90,32 +53,22 @@ module PDFGeneratorAPI
90
53
  # @param [Hash] attributes Model attributes in the form of hash
91
54
  def initialize(attributes = {})
92
55
  if (!attributes.is_a?(Hash))
93
- fail ArgumentError, "The input argument (attributes) must be a hash in `PDFGeneratorAPI::FormFieldsInner` initialize method"
56
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PDFGeneratorAPI::FormFieldOptions` initialize method"
94
57
  end
95
58
 
96
59
  # check to see if the attribute exists and convert string to symbol for hash key
97
60
  acceptable_attribute_map = self.class.acceptable_attribute_map
98
61
  attributes = attributes.each_with_object({}) { |(k, v), h|
99
62
  if (!acceptable_attribute_map.key?(k.to_sym))
100
- fail ArgumentError, "`#{k}` is not a valid attribute in `PDFGeneratorAPI::FormFieldsInner`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
63
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PDFGeneratorAPI::FormFieldOptions`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
101
64
  end
102
65
  h[k.to_sym] = v
103
66
  }
104
67
 
105
- if attributes.key?(:'label')
106
- self.label = attributes[:'label']
107
- end
108
-
109
- if attributes.key?(:'name')
110
- self.name = attributes[:'name']
111
- end
112
-
113
- if attributes.key?(:'type')
114
- self.type = attributes[:'type']
115
- end
116
-
117
- if attributes.key?(:'required')
118
- self.required = attributes[:'required']
68
+ if attributes.key?(:'options')
69
+ self.options = attributes[:'options']
70
+ else
71
+ self.options = nil
119
72
  end
120
73
  end
121
74
 
@@ -124,6 +77,18 @@ module PDFGeneratorAPI
124
77
  def list_invalid_properties
125
78
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
126
79
  invalid_properties = Array.new
80
+ if @options.nil?
81
+ invalid_properties.push('invalid value for "options", options cannot be nil.')
82
+ end
83
+
84
+ if @options.to_s.length > 1275
85
+ invalid_properties.push('invalid value for "options", the character length must be smaller than or equal to 1275.')
86
+ end
87
+
88
+ if @options.to_s.length < 1
89
+ invalid_properties.push('invalid value for "options", the character length must be greater than or equal to 1.')
90
+ end
91
+
127
92
  invalid_properties
128
93
  end
129
94
 
@@ -131,19 +96,28 @@ module PDFGeneratorAPI
131
96
  # @return true if the model is valid
132
97
  def valid?
133
98
  warn '[DEPRECATED] the `valid?` method is obsolete'
134
- type_validator = EnumAttributeValidator.new('String', ["text", "integer", "number", "date", "signature"])
135
- return false unless type_validator.valid?(@type)
99
+ return false if @options.nil?
100
+ return false if @options.to_s.length > 1275
101
+ return false if @options.to_s.length < 1
136
102
  true
137
103
  end
138
104
 
139
- # Custom attribute writer method checking allowed values (enum).
140
- # @param [Object] type Object to be assigned
141
- def type=(type)
142
- validator = EnumAttributeValidator.new('String', ["text", "integer", "number", "date", "signature"])
143
- unless validator.valid?(type)
144
- fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
105
+ # Custom attribute writer method with validation
106
+ # @param [Object] options Value to be assigned
107
+ def options=(options)
108
+ if options.nil?
109
+ fail ArgumentError, 'options cannot be nil'
110
+ end
111
+
112
+ if options.to_s.length > 1275
113
+ fail ArgumentError, 'invalid value for "options", the character length must be smaller than or equal to 1275.'
145
114
  end
146
- @type = type
115
+
116
+ if options.to_s.length < 1
117
+ fail ArgumentError, 'invalid value for "options", the character length must be greater than or equal to 1.'
118
+ end
119
+
120
+ @options = options
147
121
  end
148
122
 
149
123
  # Checks equality by comparing each attribute.
@@ -151,10 +125,7 @@ module PDFGeneratorAPI
151
125
  def ==(o)
152
126
  return true if self.equal?(o)
153
127
  self.class == o.class &&
154
- label == o.label &&
155
- name == o.name &&
156
- type == o.type &&
157
- required == o.required
128
+ options == o.options
158
129
  end
159
130
 
160
131
  # @see the `==` method
@@ -166,7 +137,7 @@ module PDFGeneratorAPI
166
137
  # Calculates hash code according to all attributes.
167
138
  # @return [Integer] Hash code
168
139
  def hash
169
- [label, name, type, required].hash
140
+ [options].hash
170
141
  end
171
142
 
172
143
  # Builds the object from hash
@@ -0,0 +1,104 @@
1
+ =begin
2
+ #PDF Generator API
3
+
4
+ ## Introduction [PDF Generator API](https://pdfgeneratorapi.com) allows you easily generate transactional PDF documents and reduce the development and support costs by enabling your users to create and manage their document templates using a browser-based drag-and-drop document editor. The PDF Generator API features a web API architecture, allowing you to code in the language of your choice. This API supports the JSON media type, and uses UTF-8 character encoding. ## Base URL The base URL for all the API endpoints is `https://us1.pdfgeneratorapi.com/api/v4` For example * `https://us1.pdfgeneratorapi.com/api/v4/templates` * `https://us1.pdfgeneratorapi.com/api/v4/workspaces` * `https://us1.pdfgeneratorapi.com/api/v4/templates/123123` ## Editor PDF Generator API comes with a powerful drag & drop editor that allows to create any kind of document templates, from barcode labels to invoices, quotes and reports. You can find tutorials and videos from our [Support Portal](https://support.pdfgeneratorapi.com). * [Component specification](https://support.pdfgeneratorapi.com/en/category/components-1ffseaj/) * [Expression Language documentation](https://support.pdfgeneratorapi.com/en/category/expression-language-q203pa/) * [Frequently asked questions and answers](https://support.pdfgeneratorapi.com/en/category/qanda-1ov519d/) ## Definitions ### Organization Organization is a group of workspaces owned by your account. ### Workspace Workspace contains templates. Each workspace has access to their own templates and organization default templates. ### Master Workspace Master Workspace is the main/default workspace of your Organization. The Master Workspace identifier is the email you signed up with. ### Default Template Default template is a template that is available for all workspaces by default. You can set the template access type under Page Setup. If template has \"Organization\" access then your users can use them from the \"New\" menu in the Editor. ### Data Field Data Field is a placeholder for the specific data in your JSON data set. In this example JSON you can access the buyer name using Data Field `{paymentDetails::buyerName}`. The separator between depth levels is :: (two colons). When designing the template you don’t have to know every Data Field, our editor automatically extracts all the available fields from your data set and provides an easy way to insert them into the template. ``` { \"documentNumber\": 1, \"paymentDetails\": { \"method\": \"Credit Card\", \"buyerName\": \"John Smith\" }, \"items\": [ { \"id\": 1, \"name\": \"Item one\" } ] } ``` ## Rate limiting Our API endpoints use IP-based rate limiting and allow you to make up to 2 requests per second and 60 requests per minute. If you make more requests, you will receive a response with HTTP code 429. Response headers contain additional values: | Header | Description | |--------|--------------------------------| | X-RateLimit-Limit | Maximum requests per minute | | X-RateLimit-Remaining | The requests remaining in the current minute | | Retry-After | How many seconds you need to wait until you are allowed to make requests | * * * * * # Libraries and SDKs ## Postman Collection We have created a [Postman Collection](https://www.postman.com/pdfgeneratorapi/workspace/pdf-generator-api-public-workspace/overview) so you can easily test all the API endpoints without developing and code. ## Client Libraries All our Client Libraries are auto-generated using [OpenAPI Generator](https://openapi-generator.tech/) which uses the OpenAPI v3 specification to automatically generate a client library in specific programming language. * [PHP Client](https://github.com/pdfgeneratorapi/php-client) * [Java Client](https://github.com/pdfgeneratorapi/java-client) * [Ruby Client](https://github.com/pdfgeneratorapi/ruby-client) * [Python Client](https://github.com/pdfgeneratorapi/python-client) * [Javascript Client](https://github.com/pdfgeneratorapi/javascript-client) We have validated the generated libraries, but let us know if you find any anomalies in the client code. ## Model Context Protocol (MCP) Server Integrate document generation directly into your AI agents and LLM applications using our official Model Context Protocol (MCP) Server. The MCP server provides a standardized interface that allows AI assistants (like Claude Desktop and other MCP-compatible clients) to securely interact with the PDF Generator API. With it, your AI applications can automatically fetch workspaces, retrieve templates, merge data, and generate PDF documents on the fly. [Get PDF Generator API MCP Server](https://github.com/pdfgeneratorapi/mcp-server) * * * * * # Authentication The PDF Generator API uses __JSON Web Tokens (JWT)__ to authenticate all API requests. These tokens offer a method to establish secure server-to-server authentication by transferring a compact JSON object with a signed payload of your account’s API Key and Secret. When authenticating to the PDF Generator API, a JWT should be generated uniquely by a __server-side application__ and included as a __Bearer Token__ in the header of each request. <SecurityDefinitions /> ## Accessing your API Key and Secret You can find your __API Key__ and __API Secret__ from the __Account Settings__ page after you login to PDF Generator API [here](https://pdfgeneratorapi.com/login). ## Creating a JWT JSON Web Tokens are composed of three sections: a header, a payload (containing a claim set), and a signature. The header and payload are JSON objects, which are serialized to UTF-8 bytes, then encoded using base64url encoding. The JWT's header, payload, and signature are concatenated with periods (.). As a result, a JWT typically takes the following form: ``` {Base64url encoded header}.{Base64url encoded payload}.{Base64url encoded signature} ``` We recommend and support libraries provided on [jwt.io](https://jwt.io/). While other libraries can create JWT, these recommended libraries are the most robust. ### Header Property `alg` defines which signing algorithm is being used. PDF Generator API users HS256. Property `typ` defines the type of token and it is always JWT. ``` { \"alg\": \"HS256\", \"typ\": \"JWT\" } ``` ### Payload The second part of the token is the payload, which contains the claims or the pieces of information being passed about the user and any metadata required. It is mandatory to specify the following claims: * issuer (`iss`): Your API key * subject (`sub`): Workspace identifier * expiration time (`exp`): Timestamp (unix epoch time) until the token is valid. It is highly recommended to set the exp timestamp for a short period, i.e. a matter of seconds. This way, if a token is intercepted or shared, the token will only be valid for a short period of time. ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"exp\": 1586112639 } ``` ### Payload for Partners Our partners can send their unique identifier (provided by us) in JWT's partner_id claim. If the `partner_id` value is specified in the JWT, the organization making the request is automatically connected to the partner account. * Partner ID (`partner_id`): Unique identifier provide by PDF Generator API team ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"partner_id\": \"my-partner-identifier\", \"exp\": 1586112639 } ``` ### Signature To create the signature part you have to take the encoded header, the encoded payload, a secret, the algorithm specified in the header, and sign that. The signature is used to verify the message wasn't changed along the way, and, in the case of tokens signed with a private key, it can also verify that the sender of the JWT is who it says it is. ``` HMACSHA256( base64UrlEncode(header) + \".\" + base64UrlEncode(payload), API_SECRET) ``` ### Putting all together The output is three Base64-URL strings separated by dots. The following shows a JWT that has the previous header and payload encoded, and it is signed with a secret. ``` eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0.SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q // Base64 encoded header: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 // Base64 encoded payload: eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0 // Signature: SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q ``` ## Temporary JWTs You can create a temporary token in [Account Settings](https://pdfgeneratorapi.com/account/organization) page after you login to PDF Generator API. The generated token uses your email address as the subject (`sub`) value and is valid for __15 minutes__. You can also use [jwt.io](https://jwt.io/) to generate test tokens for your API calls. These test tokens should never be used in production applications. * * * * * # Error codes | Code | Description | |--------|--------------------------------| | 401 | Unauthorized | | 402 | Payment Required | | 403 | Forbidden | | 404 | Not Found | | 422 | Unprocessable Entity | | 429 | Too Many Requests | | 500 | Internal Server Error | ## 401 Unauthorized | Description | |-------------------------------------------------------------------------| | Authentication failed: request expired | | Authentication failed: workspace missing | | Authentication failed: key missing | | Authentication failed: property 'iss' (issuer) missing in JWT | | Authentication failed: property 'sub' (subject) missing in JWT | | Authentication failed: property 'exp' (expiration time) missing in JWT | | Authentication failed: incorrect signature | ## 402 Payment Required | Description | |-------------------------------------------------------------------------| | Your account is suspended, please upgrade your account | ## 403 Forbidden | Description | |-------------------------------------------------------------------------| | Your account has exceeded the monthly document generation limit. | | Access not granted: You cannot delete master workspace via API | | Access not granted: Template is not accessible by this organization | | Your session has expired, please close and reopen the editor. | ## 404 Entity not found | Description | |-------------------------------------------------------------------------| | Entity not found | | Resource not found | | None of the templates is available for the workspace. | ## 422 Unprocessable Entity | Description | |-------------------------------------------------------------------------| | Unable to parse JSON, please check formatting | | Required parameter missing | | Required parameter missing: template definition not defined | | Required parameter missing: template not defined | ## 429 Too Many Requests | Description | |-------------------------------------------------------------------------| | You can make up to 2 requests per second and 60 requests per minute. | * * * * *
5
+
6
+ The version of the OpenAPI document: 4.0.31
7
+ Contact: support@pdfgeneratorapi.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.14.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module PDFGeneratorAPI
17
+ module FormFieldSubRowsInner
18
+ class << self
19
+ # List of class defined in anyOf (OpenAPI v3)
20
+ def openapi_any_of
21
+ [
22
+ :'FormFieldOptions',
23
+ :'FormTableColumn'
24
+ ]
25
+ end
26
+
27
+ # Builds the object
28
+ # @param [Mixed] Data to be matched against the list of anyOf items
29
+ # @return [Object] Returns the model or the data itself
30
+ def build(data)
31
+ # Go through the list of anyOf items and attempt to identify the appropriate one.
32
+ # Note:
33
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
34
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
35
+ # - TODO: scalar values are de facto behaving as if they were nullable.
36
+ # - TODO: logging when debugging is set.
37
+ openapi_any_of.each do |klass|
38
+ begin
39
+ next if klass == :AnyType # "nullable: true"
40
+ typed_data = find_and_cast_into_type(klass, data)
41
+ return typed_data if typed_data
42
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
43
+ end
44
+ end
45
+
46
+ openapi_any_of.include?(:AnyType) ? data : nil
47
+ end
48
+
49
+ private
50
+
51
+ SchemaMismatchError = Class.new(StandardError)
52
+
53
+ # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
54
+ def find_and_cast_into_type(klass, data)
55
+ return if data.nil?
56
+
57
+ case klass.to_s
58
+ when 'Boolean'
59
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
60
+ when 'Float'
61
+ return data if data.instance_of?(Float)
62
+ when 'Integer'
63
+ return data if data.instance_of?(Integer)
64
+ when 'Time'
65
+ return Time.parse(data)
66
+ when 'Date'
67
+ return Date.iso8601(data)
68
+ when 'String'
69
+ return data if data.instance_of?(String)
70
+ when 'Object' # "type: object"
71
+ return data if data.instance_of?(Hash)
72
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
73
+ if data.instance_of?(Array)
74
+ sub_type = Regexp.last_match[:sub_type]
75
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
76
+ end
77
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
78
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
79
+ sub_type = Regexp.last_match[:sub_type]
80
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
81
+ end
82
+ else # model
83
+ const = PDFGeneratorAPI.const_get(klass)
84
+ if const
85
+ if const.respond_to?(:openapi_any_of) # nested anyOf model
86
+ model = const.build(data)
87
+ return model if model
88
+ else
89
+ # raise if data contains keys that are not known to the model
90
+ raise if const.respond_to?(:acceptable_attributes) && !(data.keys - const.acceptable_attributes).empty?
91
+ model = const.build_from_hash(data)
92
+ return model if model
93
+ end
94
+ end
95
+ end
96
+
97
+ raise # if no match by now, raise
98
+ rescue
99
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
100
+ end
101
+ end
102
+ end
103
+
104
+ end
@@ -3,7 +3,7 @@
3
3
 
4
4
  ## Introduction [PDF Generator API](https://pdfgeneratorapi.com) allows you easily generate transactional PDF documents and reduce the development and support costs by enabling your users to create and manage their document templates using a browser-based drag-and-drop document editor. The PDF Generator API features a web API architecture, allowing you to code in the language of your choice. This API supports the JSON media type, and uses UTF-8 character encoding. ## Base URL The base URL for all the API endpoints is `https://us1.pdfgeneratorapi.com/api/v4` For example * `https://us1.pdfgeneratorapi.com/api/v4/templates` * `https://us1.pdfgeneratorapi.com/api/v4/workspaces` * `https://us1.pdfgeneratorapi.com/api/v4/templates/123123` ## Editor PDF Generator API comes with a powerful drag & drop editor that allows to create any kind of document templates, from barcode labels to invoices, quotes and reports. You can find tutorials and videos from our [Support Portal](https://support.pdfgeneratorapi.com). * [Component specification](https://support.pdfgeneratorapi.com/en/category/components-1ffseaj/) * [Expression Language documentation](https://support.pdfgeneratorapi.com/en/category/expression-language-q203pa/) * [Frequently asked questions and answers](https://support.pdfgeneratorapi.com/en/category/qanda-1ov519d/) ## Definitions ### Organization Organization is a group of workspaces owned by your account. ### Workspace Workspace contains templates. Each workspace has access to their own templates and organization default templates. ### Master Workspace Master Workspace is the main/default workspace of your Organization. The Master Workspace identifier is the email you signed up with. ### Default Template Default template is a template that is available for all workspaces by default. You can set the template access type under Page Setup. If template has \"Organization\" access then your users can use them from the \"New\" menu in the Editor. ### Data Field Data Field is a placeholder for the specific data in your JSON data set. In this example JSON you can access the buyer name using Data Field `{paymentDetails::buyerName}`. The separator between depth levels is :: (two colons). When designing the template you don’t have to know every Data Field, our editor automatically extracts all the available fields from your data set and provides an easy way to insert them into the template. ``` { \"documentNumber\": 1, \"paymentDetails\": { \"method\": \"Credit Card\", \"buyerName\": \"John Smith\" }, \"items\": [ { \"id\": 1, \"name\": \"Item one\" } ] } ``` ## Rate limiting Our API endpoints use IP-based rate limiting and allow you to make up to 2 requests per second and 60 requests per minute. If you make more requests, you will receive a response with HTTP code 429. Response headers contain additional values: | Header | Description | |--------|--------------------------------| | X-RateLimit-Limit | Maximum requests per minute | | X-RateLimit-Remaining | The requests remaining in the current minute | | Retry-After | How many seconds you need to wait until you are allowed to make requests | * * * * * # Libraries and SDKs ## Postman Collection We have created a [Postman Collection](https://www.postman.com/pdfgeneratorapi/workspace/pdf-generator-api-public-workspace/overview) so you can easily test all the API endpoints without developing and code. ## Client Libraries All our Client Libraries are auto-generated using [OpenAPI Generator](https://openapi-generator.tech/) which uses the OpenAPI v3 specification to automatically generate a client library in specific programming language. * [PHP Client](https://github.com/pdfgeneratorapi/php-client) * [Java Client](https://github.com/pdfgeneratorapi/java-client) * [Ruby Client](https://github.com/pdfgeneratorapi/ruby-client) * [Python Client](https://github.com/pdfgeneratorapi/python-client) * [Javascript Client](https://github.com/pdfgeneratorapi/javascript-client) We have validated the generated libraries, but let us know if you find any anomalies in the client code. ## Model Context Protocol (MCP) Server Integrate document generation directly into your AI agents and LLM applications using our official Model Context Protocol (MCP) Server. The MCP server provides a standardized interface that allows AI assistants (like Claude Desktop and other MCP-compatible clients) to securely interact with the PDF Generator API. With it, your AI applications can automatically fetch workspaces, retrieve templates, merge data, and generate PDF documents on the fly. [Get PDF Generator API MCP Server](https://github.com/pdfgeneratorapi/mcp-server) * * * * * # Authentication The PDF Generator API uses __JSON Web Tokens (JWT)__ to authenticate all API requests. These tokens offer a method to establish secure server-to-server authentication by transferring a compact JSON object with a signed payload of your account’s API Key and Secret. When authenticating to the PDF Generator API, a JWT should be generated uniquely by a __server-side application__ and included as a __Bearer Token__ in the header of each request. <SecurityDefinitions /> ## Accessing your API Key and Secret You can find your __API Key__ and __API Secret__ from the __Account Settings__ page after you login to PDF Generator API [here](https://pdfgeneratorapi.com/login). ## Creating a JWT JSON Web Tokens are composed of three sections: a header, a payload (containing a claim set), and a signature. The header and payload are JSON objects, which are serialized to UTF-8 bytes, then encoded using base64url encoding. The JWT's header, payload, and signature are concatenated with periods (.). As a result, a JWT typically takes the following form: ``` {Base64url encoded header}.{Base64url encoded payload}.{Base64url encoded signature} ``` We recommend and support libraries provided on [jwt.io](https://jwt.io/). While other libraries can create JWT, these recommended libraries are the most robust. ### Header Property `alg` defines which signing algorithm is being used. PDF Generator API users HS256. Property `typ` defines the type of token and it is always JWT. ``` { \"alg\": \"HS256\", \"typ\": \"JWT\" } ``` ### Payload The second part of the token is the payload, which contains the claims or the pieces of information being passed about the user and any metadata required. It is mandatory to specify the following claims: * issuer (`iss`): Your API key * subject (`sub`): Workspace identifier * expiration time (`exp`): Timestamp (unix epoch time) until the token is valid. It is highly recommended to set the exp timestamp for a short period, i.e. a matter of seconds. This way, if a token is intercepted or shared, the token will only be valid for a short period of time. ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"exp\": 1586112639 } ``` ### Payload for Partners Our partners can send their unique identifier (provided by us) in JWT's partner_id claim. If the `partner_id` value is specified in the JWT, the organization making the request is automatically connected to the partner account. * Partner ID (`partner_id`): Unique identifier provide by PDF Generator API team ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"partner_id\": \"my-partner-identifier\", \"exp\": 1586112639 } ``` ### Signature To create the signature part you have to take the encoded header, the encoded payload, a secret, the algorithm specified in the header, and sign that. The signature is used to verify the message wasn't changed along the way, and, in the case of tokens signed with a private key, it can also verify that the sender of the JWT is who it says it is. ``` HMACSHA256( base64UrlEncode(header) + \".\" + base64UrlEncode(payload), API_SECRET) ``` ### Putting all together The output is three Base64-URL strings separated by dots. The following shows a JWT that has the previous header and payload encoded, and it is signed with a secret. ``` eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0.SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q // Base64 encoded header: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 // Base64 encoded payload: eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0 // Signature: SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q ``` ## Temporary JWTs You can create a temporary token in [Account Settings](https://pdfgeneratorapi.com/account/organization) page after you login to PDF Generator API. The generated token uses your email address as the subject (`sub`) value and is valid for __15 minutes__. You can also use [jwt.io](https://jwt.io/) to generate test tokens for your API calls. These test tokens should never be used in production applications. * * * * * # Error codes | Code | Description | |--------|--------------------------------| | 401 | Unauthorized | | 402 | Payment Required | | 403 | Forbidden | | 404 | Not Found | | 422 | Unprocessable Entity | | 429 | Too Many Requests | | 500 | Internal Server Error | ## 401 Unauthorized | Description | |-------------------------------------------------------------------------| | Authentication failed: request expired | | Authentication failed: workspace missing | | Authentication failed: key missing | | Authentication failed: property 'iss' (issuer) missing in JWT | | Authentication failed: property 'sub' (subject) missing in JWT | | Authentication failed: property 'exp' (expiration time) missing in JWT | | Authentication failed: incorrect signature | ## 402 Payment Required | Description | |-------------------------------------------------------------------------| | Your account is suspended, please upgrade your account | ## 403 Forbidden | Description | |-------------------------------------------------------------------------| | Your account has exceeded the monthly document generation limit. | | Access not granted: You cannot delete master workspace via API | | Access not granted: Template is not accessible by this organization | | Your session has expired, please close and reopen the editor. | ## 404 Entity not found | Description | |-------------------------------------------------------------------------| | Entity not found | | Resource not found | | None of the templates is available for the workspace. | ## 422 Unprocessable Entity | Description | |-------------------------------------------------------------------------| | Unable to parse JSON, please check formatting | | Required parameter missing | | Required parameter missing: template definition not defined | | Required parameter missing: template not defined | ## 429 Too Many Requests | Description | |-------------------------------------------------------------------------| | You can make up to 2 requests per second and 60 requests per minute. | * * * * *
5
5
 
6
- The version of the OpenAPI document: 4.0.29
6
+ The version of the OpenAPI document: 4.0.31
7
7
  Contact: support@pdfgeneratorapi.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.14.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  ## Introduction [PDF Generator API](https://pdfgeneratorapi.com) allows you easily generate transactional PDF documents and reduce the development and support costs by enabling your users to create and manage their document templates using a browser-based drag-and-drop document editor. The PDF Generator API features a web API architecture, allowing you to code in the language of your choice. This API supports the JSON media type, and uses UTF-8 character encoding. ## Base URL The base URL for all the API endpoints is `https://us1.pdfgeneratorapi.com/api/v4` For example * `https://us1.pdfgeneratorapi.com/api/v4/templates` * `https://us1.pdfgeneratorapi.com/api/v4/workspaces` * `https://us1.pdfgeneratorapi.com/api/v4/templates/123123` ## Editor PDF Generator API comes with a powerful drag & drop editor that allows to create any kind of document templates, from barcode labels to invoices, quotes and reports. You can find tutorials and videos from our [Support Portal](https://support.pdfgeneratorapi.com). * [Component specification](https://support.pdfgeneratorapi.com/en/category/components-1ffseaj/) * [Expression Language documentation](https://support.pdfgeneratorapi.com/en/category/expression-language-q203pa/) * [Frequently asked questions and answers](https://support.pdfgeneratorapi.com/en/category/qanda-1ov519d/) ## Definitions ### Organization Organization is a group of workspaces owned by your account. ### Workspace Workspace contains templates. Each workspace has access to their own templates and organization default templates. ### Master Workspace Master Workspace is the main/default workspace of your Organization. The Master Workspace identifier is the email you signed up with. ### Default Template Default template is a template that is available for all workspaces by default. You can set the template access type under Page Setup. If template has \"Organization\" access then your users can use them from the \"New\" menu in the Editor. ### Data Field Data Field is a placeholder for the specific data in your JSON data set. In this example JSON you can access the buyer name using Data Field `{paymentDetails::buyerName}`. The separator between depth levels is :: (two colons). When designing the template you don’t have to know every Data Field, our editor automatically extracts all the available fields from your data set and provides an easy way to insert them into the template. ``` { \"documentNumber\": 1, \"paymentDetails\": { \"method\": \"Credit Card\", \"buyerName\": \"John Smith\" }, \"items\": [ { \"id\": 1, \"name\": \"Item one\" } ] } ``` ## Rate limiting Our API endpoints use IP-based rate limiting and allow you to make up to 2 requests per second and 60 requests per minute. If you make more requests, you will receive a response with HTTP code 429. Response headers contain additional values: | Header | Description | |--------|--------------------------------| | X-RateLimit-Limit | Maximum requests per minute | | X-RateLimit-Remaining | The requests remaining in the current minute | | Retry-After | How many seconds you need to wait until you are allowed to make requests | * * * * * # Libraries and SDKs ## Postman Collection We have created a [Postman Collection](https://www.postman.com/pdfgeneratorapi/workspace/pdf-generator-api-public-workspace/overview) so you can easily test all the API endpoints without developing and code. ## Client Libraries All our Client Libraries are auto-generated using [OpenAPI Generator](https://openapi-generator.tech/) which uses the OpenAPI v3 specification to automatically generate a client library in specific programming language. * [PHP Client](https://github.com/pdfgeneratorapi/php-client) * [Java Client](https://github.com/pdfgeneratorapi/java-client) * [Ruby Client](https://github.com/pdfgeneratorapi/ruby-client) * [Python Client](https://github.com/pdfgeneratorapi/python-client) * [Javascript Client](https://github.com/pdfgeneratorapi/javascript-client) We have validated the generated libraries, but let us know if you find any anomalies in the client code. ## Model Context Protocol (MCP) Server Integrate document generation directly into your AI agents and LLM applications using our official Model Context Protocol (MCP) Server. The MCP server provides a standardized interface that allows AI assistants (like Claude Desktop and other MCP-compatible clients) to securely interact with the PDF Generator API. With it, your AI applications can automatically fetch workspaces, retrieve templates, merge data, and generate PDF documents on the fly. [Get PDF Generator API MCP Server](https://github.com/pdfgeneratorapi/mcp-server) * * * * * # Authentication The PDF Generator API uses __JSON Web Tokens (JWT)__ to authenticate all API requests. These tokens offer a method to establish secure server-to-server authentication by transferring a compact JSON object with a signed payload of your account’s API Key and Secret. When authenticating to the PDF Generator API, a JWT should be generated uniquely by a __server-side application__ and included as a __Bearer Token__ in the header of each request. <SecurityDefinitions /> ## Accessing your API Key and Secret You can find your __API Key__ and __API Secret__ from the __Account Settings__ page after you login to PDF Generator API [here](https://pdfgeneratorapi.com/login). ## Creating a JWT JSON Web Tokens are composed of three sections: a header, a payload (containing a claim set), and a signature. The header and payload are JSON objects, which are serialized to UTF-8 bytes, then encoded using base64url encoding. The JWT's header, payload, and signature are concatenated with periods (.). As a result, a JWT typically takes the following form: ``` {Base64url encoded header}.{Base64url encoded payload}.{Base64url encoded signature} ``` We recommend and support libraries provided on [jwt.io](https://jwt.io/). While other libraries can create JWT, these recommended libraries are the most robust. ### Header Property `alg` defines which signing algorithm is being used. PDF Generator API users HS256. Property `typ` defines the type of token and it is always JWT. ``` { \"alg\": \"HS256\", \"typ\": \"JWT\" } ``` ### Payload The second part of the token is the payload, which contains the claims or the pieces of information being passed about the user and any metadata required. It is mandatory to specify the following claims: * issuer (`iss`): Your API key * subject (`sub`): Workspace identifier * expiration time (`exp`): Timestamp (unix epoch time) until the token is valid. It is highly recommended to set the exp timestamp for a short period, i.e. a matter of seconds. This way, if a token is intercepted or shared, the token will only be valid for a short period of time. ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"exp\": 1586112639 } ``` ### Payload for Partners Our partners can send their unique identifier (provided by us) in JWT's partner_id claim. If the `partner_id` value is specified in the JWT, the organization making the request is automatically connected to the partner account. * Partner ID (`partner_id`): Unique identifier provide by PDF Generator API team ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"partner_id\": \"my-partner-identifier\", \"exp\": 1586112639 } ``` ### Signature To create the signature part you have to take the encoded header, the encoded payload, a secret, the algorithm specified in the header, and sign that. The signature is used to verify the message wasn't changed along the way, and, in the case of tokens signed with a private key, it can also verify that the sender of the JWT is who it says it is. ``` HMACSHA256( base64UrlEncode(header) + \".\" + base64UrlEncode(payload), API_SECRET) ``` ### Putting all together The output is three Base64-URL strings separated by dots. The following shows a JWT that has the previous header and payload encoded, and it is signed with a secret. ``` eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0.SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q // Base64 encoded header: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 // Base64 encoded payload: eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0 // Signature: SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q ``` ## Temporary JWTs You can create a temporary token in [Account Settings](https://pdfgeneratorapi.com/account/organization) page after you login to PDF Generator API. The generated token uses your email address as the subject (`sub`) value and is valid for __15 minutes__. You can also use [jwt.io](https://jwt.io/) to generate test tokens for your API calls. These test tokens should never be used in production applications. * * * * * # Error codes | Code | Description | |--------|--------------------------------| | 401 | Unauthorized | | 402 | Payment Required | | 403 | Forbidden | | 404 | Not Found | | 422 | Unprocessable Entity | | 429 | Too Many Requests | | 500 | Internal Server Error | ## 401 Unauthorized | Description | |-------------------------------------------------------------------------| | Authentication failed: request expired | | Authentication failed: workspace missing | | Authentication failed: key missing | | Authentication failed: property 'iss' (issuer) missing in JWT | | Authentication failed: property 'sub' (subject) missing in JWT | | Authentication failed: property 'exp' (expiration time) missing in JWT | | Authentication failed: incorrect signature | ## 402 Payment Required | Description | |-------------------------------------------------------------------------| | Your account is suspended, please upgrade your account | ## 403 Forbidden | Description | |-------------------------------------------------------------------------| | Your account has exceeded the monthly document generation limit. | | Access not granted: You cannot delete master workspace via API | | Access not granted: Template is not accessible by this organization | | Your session has expired, please close and reopen the editor. | ## 404 Entity not found | Description | |-------------------------------------------------------------------------| | Entity not found | | Resource not found | | None of the templates is available for the workspace. | ## 422 Unprocessable Entity | Description | |-------------------------------------------------------------------------| | Unable to parse JSON, please check formatting | | Required parameter missing | | Required parameter missing: template definition not defined | | Required parameter missing: template not defined | ## 429 Too Many Requests | Description | |-------------------------------------------------------------------------| | You can make up to 2 requests per second and 60 requests per minute. | * * * * *
5
5
 
6
- The version of the OpenAPI document: 4.0.29
6
+ The version of the OpenAPI document: 4.0.31
7
7
  Contact: support@pdfgeneratorapi.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.14.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  ## Introduction [PDF Generator API](https://pdfgeneratorapi.com) allows you easily generate transactional PDF documents and reduce the development and support costs by enabling your users to create and manage their document templates using a browser-based drag-and-drop document editor. The PDF Generator API features a web API architecture, allowing you to code in the language of your choice. This API supports the JSON media type, and uses UTF-8 character encoding. ## Base URL The base URL for all the API endpoints is `https://us1.pdfgeneratorapi.com/api/v4` For example * `https://us1.pdfgeneratorapi.com/api/v4/templates` * `https://us1.pdfgeneratorapi.com/api/v4/workspaces` * `https://us1.pdfgeneratorapi.com/api/v4/templates/123123` ## Editor PDF Generator API comes with a powerful drag & drop editor that allows to create any kind of document templates, from barcode labels to invoices, quotes and reports. You can find tutorials and videos from our [Support Portal](https://support.pdfgeneratorapi.com). * [Component specification](https://support.pdfgeneratorapi.com/en/category/components-1ffseaj/) * [Expression Language documentation](https://support.pdfgeneratorapi.com/en/category/expression-language-q203pa/) * [Frequently asked questions and answers](https://support.pdfgeneratorapi.com/en/category/qanda-1ov519d/) ## Definitions ### Organization Organization is a group of workspaces owned by your account. ### Workspace Workspace contains templates. Each workspace has access to their own templates and organization default templates. ### Master Workspace Master Workspace is the main/default workspace of your Organization. The Master Workspace identifier is the email you signed up with. ### Default Template Default template is a template that is available for all workspaces by default. You can set the template access type under Page Setup. If template has \"Organization\" access then your users can use them from the \"New\" menu in the Editor. ### Data Field Data Field is a placeholder for the specific data in your JSON data set. In this example JSON you can access the buyer name using Data Field `{paymentDetails::buyerName}`. The separator between depth levels is :: (two colons). When designing the template you don’t have to know every Data Field, our editor automatically extracts all the available fields from your data set and provides an easy way to insert them into the template. ``` { \"documentNumber\": 1, \"paymentDetails\": { \"method\": \"Credit Card\", \"buyerName\": \"John Smith\" }, \"items\": [ { \"id\": 1, \"name\": \"Item one\" } ] } ``` ## Rate limiting Our API endpoints use IP-based rate limiting and allow you to make up to 2 requests per second and 60 requests per minute. If you make more requests, you will receive a response with HTTP code 429. Response headers contain additional values: | Header | Description | |--------|--------------------------------| | X-RateLimit-Limit | Maximum requests per minute | | X-RateLimit-Remaining | The requests remaining in the current minute | | Retry-After | How many seconds you need to wait until you are allowed to make requests | * * * * * # Libraries and SDKs ## Postman Collection We have created a [Postman Collection](https://www.postman.com/pdfgeneratorapi/workspace/pdf-generator-api-public-workspace/overview) so you can easily test all the API endpoints without developing and code. ## Client Libraries All our Client Libraries are auto-generated using [OpenAPI Generator](https://openapi-generator.tech/) which uses the OpenAPI v3 specification to automatically generate a client library in specific programming language. * [PHP Client](https://github.com/pdfgeneratorapi/php-client) * [Java Client](https://github.com/pdfgeneratorapi/java-client) * [Ruby Client](https://github.com/pdfgeneratorapi/ruby-client) * [Python Client](https://github.com/pdfgeneratorapi/python-client) * [Javascript Client](https://github.com/pdfgeneratorapi/javascript-client) We have validated the generated libraries, but let us know if you find any anomalies in the client code. ## Model Context Protocol (MCP) Server Integrate document generation directly into your AI agents and LLM applications using our official Model Context Protocol (MCP) Server. The MCP server provides a standardized interface that allows AI assistants (like Claude Desktop and other MCP-compatible clients) to securely interact with the PDF Generator API. With it, your AI applications can automatically fetch workspaces, retrieve templates, merge data, and generate PDF documents on the fly. [Get PDF Generator API MCP Server](https://github.com/pdfgeneratorapi/mcp-server) * * * * * # Authentication The PDF Generator API uses __JSON Web Tokens (JWT)__ to authenticate all API requests. These tokens offer a method to establish secure server-to-server authentication by transferring a compact JSON object with a signed payload of your account’s API Key and Secret. When authenticating to the PDF Generator API, a JWT should be generated uniquely by a __server-side application__ and included as a __Bearer Token__ in the header of each request. <SecurityDefinitions /> ## Accessing your API Key and Secret You can find your __API Key__ and __API Secret__ from the __Account Settings__ page after you login to PDF Generator API [here](https://pdfgeneratorapi.com/login). ## Creating a JWT JSON Web Tokens are composed of three sections: a header, a payload (containing a claim set), and a signature. The header and payload are JSON objects, which are serialized to UTF-8 bytes, then encoded using base64url encoding. The JWT's header, payload, and signature are concatenated with periods (.). As a result, a JWT typically takes the following form: ``` {Base64url encoded header}.{Base64url encoded payload}.{Base64url encoded signature} ``` We recommend and support libraries provided on [jwt.io](https://jwt.io/). While other libraries can create JWT, these recommended libraries are the most robust. ### Header Property `alg` defines which signing algorithm is being used. PDF Generator API users HS256. Property `typ` defines the type of token and it is always JWT. ``` { \"alg\": \"HS256\", \"typ\": \"JWT\" } ``` ### Payload The second part of the token is the payload, which contains the claims or the pieces of information being passed about the user and any metadata required. It is mandatory to specify the following claims: * issuer (`iss`): Your API key * subject (`sub`): Workspace identifier * expiration time (`exp`): Timestamp (unix epoch time) until the token is valid. It is highly recommended to set the exp timestamp for a short period, i.e. a matter of seconds. This way, if a token is intercepted or shared, the token will only be valid for a short period of time. ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"exp\": 1586112639 } ``` ### Payload for Partners Our partners can send their unique identifier (provided by us) in JWT's partner_id claim. If the `partner_id` value is specified in the JWT, the organization making the request is automatically connected to the partner account. * Partner ID (`partner_id`): Unique identifier provide by PDF Generator API team ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"partner_id\": \"my-partner-identifier\", \"exp\": 1586112639 } ``` ### Signature To create the signature part you have to take the encoded header, the encoded payload, a secret, the algorithm specified in the header, and sign that. The signature is used to verify the message wasn't changed along the way, and, in the case of tokens signed with a private key, it can also verify that the sender of the JWT is who it says it is. ``` HMACSHA256( base64UrlEncode(header) + \".\" + base64UrlEncode(payload), API_SECRET) ``` ### Putting all together The output is three Base64-URL strings separated by dots. The following shows a JWT that has the previous header and payload encoded, and it is signed with a secret. ``` eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0.SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q // Base64 encoded header: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 // Base64 encoded payload: eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0 // Signature: SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q ``` ## Temporary JWTs You can create a temporary token in [Account Settings](https://pdfgeneratorapi.com/account/organization) page after you login to PDF Generator API. The generated token uses your email address as the subject (`sub`) value and is valid for __15 minutes__. You can also use [jwt.io](https://jwt.io/) to generate test tokens for your API calls. These test tokens should never be used in production applications. * * * * * # Error codes | Code | Description | |--------|--------------------------------| | 401 | Unauthorized | | 402 | Payment Required | | 403 | Forbidden | | 404 | Not Found | | 422 | Unprocessable Entity | | 429 | Too Many Requests | | 500 | Internal Server Error | ## 401 Unauthorized | Description | |-------------------------------------------------------------------------| | Authentication failed: request expired | | Authentication failed: workspace missing | | Authentication failed: key missing | | Authentication failed: property 'iss' (issuer) missing in JWT | | Authentication failed: property 'sub' (subject) missing in JWT | | Authentication failed: property 'exp' (expiration time) missing in JWT | | Authentication failed: incorrect signature | ## 402 Payment Required | Description | |-------------------------------------------------------------------------| | Your account is suspended, please upgrade your account | ## 403 Forbidden | Description | |-------------------------------------------------------------------------| | Your account has exceeded the monthly document generation limit. | | Access not granted: You cannot delete master workspace via API | | Access not granted: Template is not accessible by this organization | | Your session has expired, please close and reopen the editor. | ## 404 Entity not found | Description | |-------------------------------------------------------------------------| | Entity not found | | Resource not found | | None of the templates is available for the workspace. | ## 422 Unprocessable Entity | Description | |-------------------------------------------------------------------------| | Unable to parse JSON, please check formatting | | Required parameter missing | | Required parameter missing: template definition not defined | | Required parameter missing: template not defined | ## 429 Too Many Requests | Description | |-------------------------------------------------------------------------| | You can make up to 2 requests per second and 60 requests per minute. | * * * * *
5
5
 
6
- The version of the OpenAPI document: 4.0.29
6
+ The version of the OpenAPI document: 4.0.31
7
7
  Contact: support@pdfgeneratorapi.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.14.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  ## Introduction [PDF Generator API](https://pdfgeneratorapi.com) allows you easily generate transactional PDF documents and reduce the development and support costs by enabling your users to create and manage their document templates using a browser-based drag-and-drop document editor. The PDF Generator API features a web API architecture, allowing you to code in the language of your choice. This API supports the JSON media type, and uses UTF-8 character encoding. ## Base URL The base URL for all the API endpoints is `https://us1.pdfgeneratorapi.com/api/v4` For example * `https://us1.pdfgeneratorapi.com/api/v4/templates` * `https://us1.pdfgeneratorapi.com/api/v4/workspaces` * `https://us1.pdfgeneratorapi.com/api/v4/templates/123123` ## Editor PDF Generator API comes with a powerful drag & drop editor that allows to create any kind of document templates, from barcode labels to invoices, quotes and reports. You can find tutorials and videos from our [Support Portal](https://support.pdfgeneratorapi.com). * [Component specification](https://support.pdfgeneratorapi.com/en/category/components-1ffseaj/) * [Expression Language documentation](https://support.pdfgeneratorapi.com/en/category/expression-language-q203pa/) * [Frequently asked questions and answers](https://support.pdfgeneratorapi.com/en/category/qanda-1ov519d/) ## Definitions ### Organization Organization is a group of workspaces owned by your account. ### Workspace Workspace contains templates. Each workspace has access to their own templates and organization default templates. ### Master Workspace Master Workspace is the main/default workspace of your Organization. The Master Workspace identifier is the email you signed up with. ### Default Template Default template is a template that is available for all workspaces by default. You can set the template access type under Page Setup. If template has \"Organization\" access then your users can use them from the \"New\" menu in the Editor. ### Data Field Data Field is a placeholder for the specific data in your JSON data set. In this example JSON you can access the buyer name using Data Field `{paymentDetails::buyerName}`. The separator between depth levels is :: (two colons). When designing the template you don’t have to know every Data Field, our editor automatically extracts all the available fields from your data set and provides an easy way to insert them into the template. ``` { \"documentNumber\": 1, \"paymentDetails\": { \"method\": \"Credit Card\", \"buyerName\": \"John Smith\" }, \"items\": [ { \"id\": 1, \"name\": \"Item one\" } ] } ``` ## Rate limiting Our API endpoints use IP-based rate limiting and allow you to make up to 2 requests per second and 60 requests per minute. If you make more requests, you will receive a response with HTTP code 429. Response headers contain additional values: | Header | Description | |--------|--------------------------------| | X-RateLimit-Limit | Maximum requests per minute | | X-RateLimit-Remaining | The requests remaining in the current minute | | Retry-After | How many seconds you need to wait until you are allowed to make requests | * * * * * # Libraries and SDKs ## Postman Collection We have created a [Postman Collection](https://www.postman.com/pdfgeneratorapi/workspace/pdf-generator-api-public-workspace/overview) so you can easily test all the API endpoints without developing and code. ## Client Libraries All our Client Libraries are auto-generated using [OpenAPI Generator](https://openapi-generator.tech/) which uses the OpenAPI v3 specification to automatically generate a client library in specific programming language. * [PHP Client](https://github.com/pdfgeneratorapi/php-client) * [Java Client](https://github.com/pdfgeneratorapi/java-client) * [Ruby Client](https://github.com/pdfgeneratorapi/ruby-client) * [Python Client](https://github.com/pdfgeneratorapi/python-client) * [Javascript Client](https://github.com/pdfgeneratorapi/javascript-client) We have validated the generated libraries, but let us know if you find any anomalies in the client code. ## Model Context Protocol (MCP) Server Integrate document generation directly into your AI agents and LLM applications using our official Model Context Protocol (MCP) Server. The MCP server provides a standardized interface that allows AI assistants (like Claude Desktop and other MCP-compatible clients) to securely interact with the PDF Generator API. With it, your AI applications can automatically fetch workspaces, retrieve templates, merge data, and generate PDF documents on the fly. [Get PDF Generator API MCP Server](https://github.com/pdfgeneratorapi/mcp-server) * * * * * # Authentication The PDF Generator API uses __JSON Web Tokens (JWT)__ to authenticate all API requests. These tokens offer a method to establish secure server-to-server authentication by transferring a compact JSON object with a signed payload of your account’s API Key and Secret. When authenticating to the PDF Generator API, a JWT should be generated uniquely by a __server-side application__ and included as a __Bearer Token__ in the header of each request. <SecurityDefinitions /> ## Accessing your API Key and Secret You can find your __API Key__ and __API Secret__ from the __Account Settings__ page after you login to PDF Generator API [here](https://pdfgeneratorapi.com/login). ## Creating a JWT JSON Web Tokens are composed of three sections: a header, a payload (containing a claim set), and a signature. The header and payload are JSON objects, which are serialized to UTF-8 bytes, then encoded using base64url encoding. The JWT's header, payload, and signature are concatenated with periods (.). As a result, a JWT typically takes the following form: ``` {Base64url encoded header}.{Base64url encoded payload}.{Base64url encoded signature} ``` We recommend and support libraries provided on [jwt.io](https://jwt.io/). While other libraries can create JWT, these recommended libraries are the most robust. ### Header Property `alg` defines which signing algorithm is being used. PDF Generator API users HS256. Property `typ` defines the type of token and it is always JWT. ``` { \"alg\": \"HS256\", \"typ\": \"JWT\" } ``` ### Payload The second part of the token is the payload, which contains the claims or the pieces of information being passed about the user and any metadata required. It is mandatory to specify the following claims: * issuer (`iss`): Your API key * subject (`sub`): Workspace identifier * expiration time (`exp`): Timestamp (unix epoch time) until the token is valid. It is highly recommended to set the exp timestamp for a short period, i.e. a matter of seconds. This way, if a token is intercepted or shared, the token will only be valid for a short period of time. ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"exp\": 1586112639 } ``` ### Payload for Partners Our partners can send their unique identifier (provided by us) in JWT's partner_id claim. If the `partner_id` value is specified in the JWT, the organization making the request is automatically connected to the partner account. * Partner ID (`partner_id`): Unique identifier provide by PDF Generator API team ``` { \"iss\": \"ad54aaff89ffdfeff178bb8a8f359b29fcb20edb56250b9f584aa2cb0162ed4a\", \"sub\": \"demo.example@actualreports.com\", \"partner_id\": \"my-partner-identifier\", \"exp\": 1586112639 } ``` ### Signature To create the signature part you have to take the encoded header, the encoded payload, a secret, the algorithm specified in the header, and sign that. The signature is used to verify the message wasn't changed along the way, and, in the case of tokens signed with a private key, it can also verify that the sender of the JWT is who it says it is. ``` HMACSHA256( base64UrlEncode(header) + \".\" + base64UrlEncode(payload), API_SECRET) ``` ### Putting all together The output is three Base64-URL strings separated by dots. The following shows a JWT that has the previous header and payload encoded, and it is signed with a secret. ``` eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0.SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q // Base64 encoded header: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 // Base64 encoded payload: eyJpc3MiOiJhZDU0YWFmZjg5ZmZkZmVmZjE3OGJiOGE4ZjM1OWIyOWZjYjIwZWRiNTYyNTBiOWY1ODRhYTJjYjAxNjJlZDRhIiwic3ViIjoiZGVtby5leGFtcGxlQGFjdHVhbHJlcG9ydHMuY29tIn0 // Signature: SxO-H7UYYYsclS8RGWO1qf0z1cB1m73wF9FLl9RCc1Q ``` ## Temporary JWTs You can create a temporary token in [Account Settings](https://pdfgeneratorapi.com/account/organization) page after you login to PDF Generator API. The generated token uses your email address as the subject (`sub`) value and is valid for __15 minutes__. You can also use [jwt.io](https://jwt.io/) to generate test tokens for your API calls. These test tokens should never be used in production applications. * * * * * # Error codes | Code | Description | |--------|--------------------------------| | 401 | Unauthorized | | 402 | Payment Required | | 403 | Forbidden | | 404 | Not Found | | 422 | Unprocessable Entity | | 429 | Too Many Requests | | 500 | Internal Server Error | ## 401 Unauthorized | Description | |-------------------------------------------------------------------------| | Authentication failed: request expired | | Authentication failed: workspace missing | | Authentication failed: key missing | | Authentication failed: property 'iss' (issuer) missing in JWT | | Authentication failed: property 'sub' (subject) missing in JWT | | Authentication failed: property 'exp' (expiration time) missing in JWT | | Authentication failed: incorrect signature | ## 402 Payment Required | Description | |-------------------------------------------------------------------------| | Your account is suspended, please upgrade your account | ## 403 Forbidden | Description | |-------------------------------------------------------------------------| | Your account has exceeded the monthly document generation limit. | | Access not granted: You cannot delete master workspace via API | | Access not granted: Template is not accessible by this organization | | Your session has expired, please close and reopen the editor. | ## 404 Entity not found | Description | |-------------------------------------------------------------------------| | Entity not found | | Resource not found | | None of the templates is available for the workspace. | ## 422 Unprocessable Entity | Description | |-------------------------------------------------------------------------| | Unable to parse JSON, please check formatting | | Required parameter missing | | Required parameter missing: template definition not defined | | Required parameter missing: template not defined | ## 429 Too Many Requests | Description | |-------------------------------------------------------------------------| | You can make up to 2 requests per second and 60 requests per minute. | * * * * *
5
5
 
6
- The version of the OpenAPI document: 4.0.29
6
+ The version of the OpenAPI document: 4.0.31
7
7
  Contact: support@pdfgeneratorapi.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.14.0