docspring 4.3.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/AGENTS.md +2 -0
  2. package/LICENSE +1 -1
  3. package/README.md +23 -1
  4. package/dist/ApiClient.js +2 -2
  5. package/dist/RequestSchemas.js +1212 -132
  6. package/dist/RequestValidator.js +4 -0
  7. package/dist/api/Client.js +1364 -207
  8. package/dist/index.js +210 -0
  9. package/dist/model/AddTemplateFieldsRequest.js +3 -3
  10. package/dist/model/AuthenticationCheck.js +1 -1
  11. package/dist/model/CombinedPdf.js +1 -1
  12. package/dist/model/CombinedPdfFiles.js +1 -1
  13. package/dist/model/CombinedPdfList.js +1 -1
  14. package/dist/model/CombinedPdfSource.js +2 -2
  15. package/dist/model/CombinedPdfSourceInput.js +2 -2
  16. package/dist/model/CombinedPdfSourcePdf.js +1 -1
  17. package/dist/model/CopyTemplateRequest.js +1 -1
  18. package/dist/model/CreateAccountEmailActionRequest.js +306 -0
  19. package/dist/model/CreateCombinedPdfRequest.js +1 -1
  20. package/dist/model/CreateCustomFileFromUploadRequest.js +1 -1
  21. package/dist/model/CreateEmailActionRequest.js +280 -0
  22. package/dist/model/CreateEmailDomainRequest.js +114 -0
  23. package/dist/model/CreateFolderRequest.js +1 -1
  24. package/dist/model/CreateSignatureRequestEventRequest.js +1 -1
  25. package/dist/model/CreateSignatureRequestTokenRequest.js +1 -1
  26. package/dist/model/CreateSubmissionBatchRequest.js +4 -4
  27. package/dist/model/CreateSubmissionRequest.js +114 -6
  28. package/dist/model/CreateTemplatePreviewRequest.js +1 -1
  29. package/dist/model/CreateTemplateRequest.js +148 -9
  30. package/dist/model/CreateWebhookRequest.js +1 -1
  31. package/dist/model/CustomFile.js +1 -1
  32. package/dist/model/CustomFileList.js +1 -1
  33. package/dist/model/CustomFileSourcePdf.js +1 -1
  34. package/dist/model/DnsRecordType.js +64 -0
  35. package/dist/model/EmailAction.js +510 -0
  36. package/dist/model/EmailActionConditions.js +142 -0
  37. package/dist/model/EmailActionConditionsInput.js +142 -0
  38. package/dist/model/EmailActionCustomization.js +222 -0
  39. package/dist/model/EmailActionDelivery.js +59 -0
  40. package/dist/model/EmailActionFileFormats.js +69 -0
  41. package/dist/model/EmailActionList.js +132 -0
  42. package/dist/model/EmailActionSetting.js +119 -0
  43. package/dist/model/EmailActionSubmissionType.js +64 -0
  44. package/dist/model/EmailActionTestEmail.js +116 -0
  45. package/dist/model/EmailDomain.js +245 -0
  46. package/dist/model/EmailDomainDnsRecord.js +155 -0
  47. package/dist/model/EmailDomainDnsRecordPurpose.js +64 -0
  48. package/dist/model/EmailDomainList.js +132 -0
  49. package/dist/model/EmailDomainRecordState.js +64 -0
  50. package/dist/model/EmailDomainState.js +64 -0
  51. package/dist/model/ErrorCode.js +10 -0
  52. package/dist/model/ErrorDetail.js +1 -1
  53. package/dist/model/ErrorInfo.js +72 -7
  54. package/dist/model/ErrorResponse.js +1 -1
  55. package/dist/model/Field.js +3 -3
  56. package/dist/model/FieldComparisonCondition.js +1 -1
  57. package/dist/model/FieldDependency.js +1 -1
  58. package/dist/model/FieldDependencyInput.js +1 -1
  59. package/dist/model/FieldEqualsCondition.js +1 -1
  60. package/dist/model/FieldGroup.js +1 -1
  61. package/dist/model/FieldGroupInput.js +1 -1
  62. package/dist/model/FieldInCondition.js +1 -1
  63. package/dist/model/FieldInput.js +2 -2
  64. package/dist/model/FieldOverride.js +1 -1
  65. package/dist/model/FieldPresenceCondition.js +1 -1
  66. package/dist/model/FieldRangeCondition.js +1 -1
  67. package/dist/model/Folder.js +1 -1
  68. package/dist/model/FolderList.js +1 -1
  69. package/dist/model/GenerateSubmissionFilesRequest.js +1 -1
  70. package/dist/model/GeneratedFile.js +1 -1
  71. package/dist/model/HtmlEngineOptions.js +9 -9
  72. package/dist/model/HtmlEngineOptionsInput.js +6 -6
  73. package/dist/model/MoveFolderRequest.js +1 -1
  74. package/dist/model/MoveTemplateRequest.js +1 -1
  75. package/dist/model/PageImage.js +1 -1
  76. package/dist/model/PageImages.js +1 -1
  77. package/dist/model/PredefinedField.js +1 -1
  78. package/dist/model/PredefinedFieldInput.js +1 -1
  79. package/dist/model/PublishTemplateVersionRequest.js +1 -1
  80. package/dist/model/RemoveTemplateFieldsRequest.js +1 -1
  81. package/dist/model/RenameFolderRequest.js +1 -1
  82. package/dist/model/ReorderTemplateFieldsRequest.js +1 -1
  83. package/dist/model/RestoreTemplateVersionRequest.js +1 -1
  84. package/dist/model/SendAccountEmailActionTestEmailRequest.js +91 -0
  85. package/dist/model/SignatureRequest.js +52 -7
  86. package/dist/model/SignatureRequestEmailAttachments.js +59 -0
  87. package/dist/model/SignatureRequestEmailStatus.js +89 -0
  88. package/dist/model/SignatureRequestEvent.js +1 -1
  89. package/dist/model/SignatureRequestEventType.js +11 -1
  90. package/dist/model/SignatureRequestInput.js +24 -8
  91. package/dist/model/SignatureRequestReminders.js +121 -0
  92. package/dist/model/SignatureRequestToken.js +1 -1
  93. package/dist/model/SigningOrder.js +59 -0
  94. package/dist/model/StringConditionType.js +36 -1
  95. package/dist/model/Submission.js +21 -9
  96. package/dist/model/SubmissionAction.js +27 -12
  97. package/dist/model/SubmissionBatch.js +1 -1
  98. package/dist/model/SubmissionFiles.js +1 -1
  99. package/dist/model/SubmissionInput.js +5 -5
  100. package/dist/model/SubmissionList.js +1 -1
  101. package/dist/model/SubmissionSourcePdf.js +1 -1
  102. package/dist/model/SubmissionSummary.js +3 -3
  103. package/dist/model/SubmissionValidation.js +1 -1
  104. package/dist/model/Template.js +189 -21
  105. package/dist/model/TemplateActor.js +1 -1
  106. package/dist/model/TemplateDefaults.js +1 -1
  107. package/dist/model/TemplateDefaultsInput.js +1 -1
  108. package/dist/model/TemplateDiff.js +1 -1
  109. package/dist/model/TemplateDiffSummary.js +1 -1
  110. package/dist/model/TemplateDocument.js +1 -1
  111. package/dist/model/TemplateDocumentSummary.js +1 -1
  112. package/dist/model/TemplateFieldChange.js +1 -1
  113. package/dist/model/TemplateFieldChanges.js +1 -1
  114. package/dist/model/TemplateFieldDependency.js +1 -1
  115. package/dist/model/TemplateFieldDependencyCondition.js +1 -1
  116. package/dist/model/TemplateFieldDependencyConditionInput.js +1 -1
  117. package/dist/model/TemplateFieldDependencyInput.js +1 -1
  118. package/dist/model/TemplateFieldMove.js +1 -1
  119. package/dist/model/TemplateFields.js +1 -1
  120. package/dist/model/TemplateFormSection.js +161 -0
  121. package/dist/model/TemplateFormSectionInput.js +157 -0
  122. package/dist/model/TemplateModelCode.js +1 -1
  123. package/dist/model/TemplatePageImages.js +1 -1
  124. package/dist/model/TemplatePageProcessingStatus.js +1 -1
  125. package/dist/model/TemplatePreview.js +1 -1
  126. package/dist/model/TemplateSourcePdf.js +2 -2
  127. package/dist/model/TemplateSummary.js +9 -9
  128. package/dist/model/TemplateSummaryList.js +1 -1
  129. package/dist/model/TemplateType.js +6 -1
  130. package/dist/model/TemplateVersion.js +1 -1
  131. package/dist/model/UpdateAccountEmailActionRequest.js +306 -0
  132. package/dist/model/UpdateEmailActionCustomizationRequest.js +258 -0
  133. package/dist/model/UpdateEmailActionRequest.js +280 -0
  134. package/dist/model/UpdateSignatureRequestRequest.js +1 -1
  135. package/dist/model/UpdateTemplateDocumentRequest.js +2 -2
  136. package/dist/model/UpdateTemplateFieldsRequest.js +1 -1
  137. package/dist/model/UpdateTemplateRequest.js +173 -12
  138. package/dist/model/UpdateWebhookRequest.js +1 -1
  139. package/dist/model/UploadPresign.js +1 -1
  140. package/dist/model/UrlSourcePdf.js +1 -1
  141. package/dist/model/ValidateSubmissionRequest.js +114 -6
  142. package/dist/model/Webhook.js +1 -1
  143. package/dist/model/WebhookEventType.js +10 -0
  144. package/dist/model/WebhookList.js +1 -1
  145. package/package.json +1 -1
@@ -11,11 +11,13 @@ var _FieldGroup = _interopRequireDefault(require("./FieldGroup"));
11
11
  var _HtmlEngineOptions = _interopRequireDefault(require("./HtmlEngineOptions"));
12
12
  var _OutputFormat = _interopRequireDefault(require("./OutputFormat"));
13
13
  var _PredefinedField = _interopRequireDefault(require("./PredefinedField"));
14
+ var _SignatureRequestEmailAttachments = _interopRequireDefault(require("./SignatureRequestEmailAttachments"));
14
15
  var _TemplateActor = _interopRequireDefault(require("./TemplateActor"));
15
16
  var _TemplateDefaults = _interopRequireDefault(require("./TemplateDefaults"));
16
17
  var _TemplateDocument = _interopRequireDefault(require("./TemplateDocument"));
17
18
  var _TemplateFieldDependency = _interopRequireDefault(require("./TemplateFieldDependency"));
18
19
  var _TemplateFormMode = _interopRequireDefault(require("./TemplateFormMode"));
20
+ var _TemplateFormSection = _interopRequireDefault(require("./TemplateFormSection"));
19
21
  var _TemplateType = _interopRequireDefault(require("./TemplateType"));
20
22
  var _TemplateVersion = _interopRequireDefault(require("./TemplateVersion"));
21
23
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
@@ -42,7 +44,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
42
44
  /**
43
45
  * The Template model module.
44
46
  * @module model/Template
45
- * @version 4.3.0
47
+ * @version 4.5.0
46
48
  */
47
49
  var Template = /*#__PURE__*/function () {
48
50
  /**
@@ -53,9 +55,9 @@ var Template = /*#__PURE__*/function () {
53
55
  * @param id {String} The template's ID.
54
56
  * @param name {String} The template's name.
55
57
  * @param description {String} Shown under the template's name at the top of its hosted forms, and used as their meta description. Not shown on embedded forms or signature requests.
56
- * @param template_type {module:model/TemplateType} `pdf`: fields placed on an uploaded PDF. `html`: a PDF rendered from HTML and SCSS. `docx`: a Word document with tags where the data goes, which makes Word documents or PDFs. It can't be changed after the template is created.
57
- * @param output_format {module:model/OutputFormat} What each submission makes unless its request sets `output_formats`: `docx` (a Word document), `odt` (an OpenDocument file, converted from the Word document) or `pdf`. A Word template's is chosen when it's created; PDF and HTML templates always make PDFs. A Word template that encrypts its PDFs makes PDFs, because Word documents and OpenDocument files can't be password-protected.
58
- * @param ready {Boolean} Whether the template can make documents. HTML templates are always ready. A PDF template is ready once DocSpring has stored its PDF, made an image of each page and finished looking for fields on each page, which can be after `document.state` becomes `processed`. A PDF template with no PDF (`document` is null) isn't ready. A Word template is ready once it has a Word document (a `document_url`'s has been downloaded).
58
+ * @param template_type {module:model/TemplateType} `pdf`: fields placed on an uploaded PDF. `html`: a PDF rendered from HTML and SCSS. `docx`: a Word document with tags where the data goes, which makes Word documents or PDFs. `page_designer`: a page design, a PDF laid out in the Page Designer from its `layout`. It can't be changed after the template is created.
59
+ * @param output_format {module:model/OutputFormat} What each submission makes unless its request sets `output_formats`: `docx` (a Word document), `odt` (an OpenDocument file, converted from the Word document) or `pdf`. A Word template's is chosen when it's created; other templates always make PDFs. A Word template that encrypts its PDFs makes PDFs, because Word documents and OpenDocument files can't be password-protected.
60
+ * @param ready {Boolean} Whether the template can make documents. HTML templates and page designs are always ready. A PDF template is ready once DocSpring has stored its PDF, made an image of each page and finished looking for fields on each page, which can be after `document.state` becomes `processed`. A PDF template with no PDF (`document` is null) isn't ready. A Word template is ready once it has a Word document (a `document_url`'s has been downloaded).
59
61
  * @param document {module:model/TemplateDocument} The PDF of a PDF template, or the Word document of a Word template. Null for HTML templates, and for a PDF template that has no PDF yet. A template created from a `document_url` has one, with no file, while it's downloaded.
60
62
  * @param parent_folder_id {String} The ID of the folder the template is in. Null for a template at the root. Setting it moves the template and all of its published versions.
61
63
  * @param path {String} The path of the folder the template is in, such as `/Contracts`. `/` for a template at the root.
@@ -72,7 +74,7 @@ var Template = /*#__PURE__*/function () {
72
74
  * @param allow_skipping_optional_fields {Boolean} Visual forms and signature request forms show the Continue button as soon as the required fields are filled in, without visiting each optional field. The `allowSkippingOptionalFields` embed option overrides it.
73
75
  * @param default_form_mode {module:model/TemplateFormMode} The hosted form that /templates/{template_id}/form shows when its URL has no `mode` parameter: `web` (the web form), `visual` (the visual form, where fields are filled in on the PDF) or `dual` (both, in tabs). Only PDF templates have a visual form, so other templates accept only `web`.
74
76
  * @param editable_submissions {Boolean} Generate PDFs whose text and check fields stay fillable ("Generate Editable PDFs"). A submission's `editable` overrides it.
75
- * @param embed_domains {Array.<String>} The sites that can embed the template's live signature requests and its embedded template editor: a host such as `app.example.com`, with an optional leading wildcard (`*.example.com`), port (`localhost:3000`) or scheme (`https://app.example.com`; without one, `http` and `https` both work). Browsers open a live signature request in a frame only on these sites (and DocSpring's), so with an empty list it can't be embedded anywhere; a test signature request can be embedded on any site. The embedded template editor loads only for a page on one of these sites (by its Referer or Origin header), and on any site when the list is empty. Forms embedded on a page (Visual Forms JS and the simple form) aren't restricted.
77
+ * @param embed_domains {Array.<String>} The sites that can embed the template's live signature requests and its embedded template editor: a host such as `app.example.com`, with an optional leading wildcard (`*.example.com`), port (`localhost:3000`) or scheme (`https://app.example.com`; without one, `http` and `https` both work), without a path. Each one is stored in lowercase, without a trailing slash. Browsers open a live signature request in a frame only on these sites (and DocSpring's), so with an empty list it can't be embedded anywhere; a test signature request can be embedded on any site. The embedded template editor loads only for a page on one of these sites (by its Referer or Origin header), and on any site when the list is empty. Forms embedded on a page (Visual Forms JS and Web Forms JS) aren't restricted.
76
78
  * @param embed_edit_allow_settings {Boolean} Allow the embedded template editor to change sensitive template settings (webhooks, redirect URL, encryption, public access, expiration and so on).
77
79
  * @param embed_edit_allow_versioning {Boolean} Allow the embedded template editor to publish, restore, compare and delete published versions.
78
80
  * @param embed_edit_allow_document_replacement {Boolean} Allow the embedded template editor to replace the template's PDF.
@@ -85,26 +87,38 @@ var Template = /*#__PURE__*/function () {
85
87
  * @param parse_dates_using_template_date_format {Boolean} Date fields also accept NN/NN/YYYY dates (with slashes, dashes or dots), read in the order of the template's default date format: month first for %m/%d/%Y, day first for %d/%m/%Y. When false, date fields only accept YYYY-MM-DD. Applies to PDF templates: an HTML or Word template's date fields only accept YYYY-MM-DD. Date fields that include a time take RFC 3339 date-times either way.
86
88
  * @param public_submissions {Boolean} Allow anyone with a submission's ID to download its PDF.
87
89
  * @param public_web_form {Boolean} Allow anyone to fill in the template's web form.
88
- * @param redirect_url {String} Where the web form sends people after they submit it.
90
+ * @param redirect_url {String} Where the web form sends people after they submit it, instead of showing its success screen. After its `?` or `#`, it can have variables such as `{{ data.first_name }}`, which the form fills in with what they submitted.
91
+ * @param signature_request_email_attachments {module:model/SignatureRequestEmailAttachments} How DocSpring's completed emails send the signed PDF to your signers and CCs: `attachment` (attached, or a download link when it's too big to attach) or `link` (a download link). Null uses your account's rule: a link if your account has signed a BAA, otherwise attached. PDF templates only. A signature request uses the value it had when the request was created.
92
+ * @param signature_request_from_address {String} The address DocSpring's emails to your signers come from: an address at one of your verified email domains, on the Growth plan or higher. Null sends them from DocSpring's shared address, with "via DocSpring" after the sender name. PDF templates only.
93
+ * @param signature_request_include_signing_token {Boolean} Puts a signing token in `signature_request_signing_url`, as `{{ token_id }}` and `{{ token_secret }}`, so your page can open the signing form without creating a token itself. The email then carries a credential: anyone who has it can open the form and sign. PDF templates only.
94
+ * @param signature_request_from_name {String} The sender name on the emails DocSpring sends your signers, as in "Acme via DocSpring". It can't contain an email address, a website or quotes. Null uses your account's name. PDF templates only.
95
+ * @param signature_request_notification_emails {Array.<String>} Who DocSpring tells when a signature request's document is completed or declined, or an email bounces or can't be sent: members of your DocSpring team or addresses at your verified email domains. Empty means your account's owner. A submission's `notification_emails` replaces them. PDF templates only.
96
+ * @param signature_request_reply_to {String} Where your signers' replies to DocSpring's emails go: a member of your DocSpring team or an address at one of your verified email domains. Null means your account's owner. A submission's `reply_to` replaces it. PDF templates only.
97
+ * @param signature_request_signing_url {String} A page on your own site that the button in DocSpring's email to a signer opens, instead of DocSpring's signing page: an https URL on one of your verified email domains or a subdomain of one, on the Growth plan or higher. It must include `{{ signature_request_id }}`. Your page authenticates the signer, creates a token for the signature request, and opens the signing form with it. Null links to DocSpring's signing page. PDF templates only.
98
+ * @param success_title {String} The title of the web form's success screen. When it's null or empty, the screen says "Thanks for filling out" and the template's name. It can have variables such as `{{ data.first_name }}`.
99
+ * @param success_message {String} A message under the title of the web form's success screen, as plain text. Line breaks show, and web addresses become links. It can have variables such as `{{ data.first_name }}`.
100
+ * @param show_fill_again_button {Boolean} Whether the web form's success screen has a "Fill out again" button, which clears the form so someone can fill it in again.
89
101
  * @param has_slack_webhook_url {Boolean} Whether `slack_webhook_url` is set.
90
102
  * @param last_changed_by {module:model/TemplateActor} Who last changed the draft: a user in your account, an API token, or someone using the embedded template editor. Null if no change has been recorded.
91
103
  * @param defaults {module:model/TemplateDefaults}
92
104
  * @param field_dependencies {Array.<module:model/TemplateFieldDependency>} Conditional logic: each rule shows or hides its target fields, or makes them required, depending on the values of other fields.
93
105
  * @param field_groups {Array.<module:model/FieldGroup>} The groups of the template's fields, with their settings. A field's name puts it in groups: `address/city` is in the group `address`, and `items/0/price` is in the list `items` and its items' group `items/~`.
106
+ * @param form_sections {Array.<module:model/TemplateFormSection>} The web form's sections, in order: Web Forms JS and the hosted web form show one section at a time. Empty when the template has none, and the web form shows all of its fields together, in the order the fields endpoint lists them. A field that no section lists (one added later) goes after the field before it in that order, in that field's section.
94
107
  * @param predefined_fields {Array.<module:model/PredefinedField>} The field names that people using the embedded template editor choose from, each with the data type and settings a field gets when it's given that name. Setting it replaces the whole list; an empty list turns them off.
95
108
  * @param predefined_fields_sample_data {Object.<String, Object>} Sample submission data that sets `predefined_fields`: each value becomes a predefined field, with a type that fits it (`string`, `number`, `boolean`, `date`, `email` or `url`) and `required_in_template` true. Nested objects and arrays become names with `/`, such as `customer/email`. Without `predefined_fields` in the same request, it replaces them; with them, it adds to them and sets the types of the ones it has values for.
96
- * @param html {String} The HTML of an HTML template, as a Liquid template. Null for PDF and Word templates.
109
+ * @param html {String} The HTML of an HTML template, as a Liquid template. Null for other templates.
97
110
  * @param scss {String} The SCSS of an HTML template.
98
111
  * @param header_html {String} The HTML printed at the top of each page of an HTML template.
99
112
  * @param footer_html {String} The HTML printed at the bottom of each page of an HTML template.
100
- * @param html_engine_options {module:model/HtmlEngineOptions} How an HTML template's PDFs are printed. Null for PDF and Word templates. Setting it replaces the whole object: options left out use their defaults.
101
- * @param html_escape_data {Boolean} Whether an HTML template HTML-escapes the values it prints. When true, `{{ value }}` prints a value as text, so a `<` or `&` in it is printed as that character, and `{{ value | raw }}` prints a value as HTML. New HTML templates default to true. Templates created before October 2026, or with API v1, default to false, which prints every value as HTML. Null for PDF templates.
113
+ * @param html_engine_options {module:model/HtmlEngineOptions} How an HTML template's PDFs are printed. Null for other templates. Setting it replaces the whole object: options left out use their defaults.
114
+ * @param html_escape_data {Boolean} Whether an HTML template HTML-escapes the values it prints. When true, `{{ value }}` prints a value as text, so a `<` or `&` in it is printed as that character, and `{{ value | raw }}` prints a value as HTML. New HTML templates default to true. Templates created before October 2026, or with API v1, default to false, which prints every value as HTML. Null for other templates.
115
+ * @param layout {Object.<String, Object>} A page design's layout: its page setup, its sections and the elements placed in them, in the Page Designer layout format (https://docspring.com/docs/page-designer/layout-format/). Its JSON Schema is at https://docspring.com/schemas/page-designer/layout.v1.json. Null for other templates. Setting it replaces the whole layout, and DocSpring adds a field for each value it reads. Left out when a page design is created, it starts with an empty page.
102
116
  * @param embed_edit_token {String} The token that opens the template in the embedded template editor.
103
117
  * @param versions {Array.<module:model/TemplateVersion>} The template's published versions, newest first (up to 100).
104
118
  */
105
- function Template(id, name, description, template_type, output_format, ready, document, parent_folder_id, path, latest_version, version_published_at, locked, last_changed_at, created_at, updated_at, version, add_signature_request_submission_id_footers, ai_field_naming_language, allow_additional_properties, allow_skipping_optional_fields, default_form_mode, editable_submissions, embed_domains, embed_edit_allow_settings, embed_edit_allow_versioning, embed_edit_allow_document_replacement, encrypt_pdfs, has_encrypt_pdfs_password, expire_submissions, expire_after, expiration_interval, merge_audit_trail_pdf, parse_dates_using_template_date_format, public_submissions, public_web_form, redirect_url, has_slack_webhook_url, last_changed_by, defaults, field_dependencies, field_groups, predefined_fields, predefined_fields_sample_data, html, scss, header_html, footer_html, html_engine_options, html_escape_data, embed_edit_token, versions) {
119
+ function Template(id, name, description, template_type, output_format, ready, document, parent_folder_id, path, latest_version, version_published_at, locked, last_changed_at, created_at, updated_at, version, add_signature_request_submission_id_footers, ai_field_naming_language, allow_additional_properties, allow_skipping_optional_fields, default_form_mode, editable_submissions, embed_domains, embed_edit_allow_settings, embed_edit_allow_versioning, embed_edit_allow_document_replacement, encrypt_pdfs, has_encrypt_pdfs_password, expire_submissions, expire_after, expiration_interval, merge_audit_trail_pdf, parse_dates_using_template_date_format, public_submissions, public_web_form, redirect_url, signature_request_email_attachments, signature_request_from_address, signature_request_include_signing_token, signature_request_from_name, signature_request_notification_emails, signature_request_reply_to, signature_request_signing_url, success_title, success_message, show_fill_again_button, has_slack_webhook_url, last_changed_by, defaults, field_dependencies, field_groups, form_sections, predefined_fields, predefined_fields_sample_data, html, scss, header_html, footer_html, html_engine_options, html_escape_data, layout, embed_edit_token, versions) {
106
120
  _classCallCheck(this, Template);
107
- Template.initialize(this, id, name, description, template_type, output_format, ready, document, parent_folder_id, path, latest_version, version_published_at, locked, last_changed_at, created_at, updated_at, version, add_signature_request_submission_id_footers, ai_field_naming_language, allow_additional_properties, allow_skipping_optional_fields, default_form_mode, editable_submissions, embed_domains, embed_edit_allow_settings, embed_edit_allow_versioning, embed_edit_allow_document_replacement, encrypt_pdfs, has_encrypt_pdfs_password, expire_submissions, expire_after, expiration_interval, merge_audit_trail_pdf, parse_dates_using_template_date_format, public_submissions, public_web_form, redirect_url, has_slack_webhook_url, last_changed_by, defaults, field_dependencies, field_groups, predefined_fields, predefined_fields_sample_data, html, scss, header_html, footer_html, html_engine_options, html_escape_data, embed_edit_token, versions);
121
+ Template.initialize(this, id, name, description, template_type, output_format, ready, document, parent_folder_id, path, latest_version, version_published_at, locked, last_changed_at, created_at, updated_at, version, add_signature_request_submission_id_footers, ai_field_naming_language, allow_additional_properties, allow_skipping_optional_fields, default_form_mode, editable_submissions, embed_domains, embed_edit_allow_settings, embed_edit_allow_versioning, embed_edit_allow_document_replacement, encrypt_pdfs, has_encrypt_pdfs_password, expire_submissions, expire_after, expiration_interval, merge_audit_trail_pdf, parse_dates_using_template_date_format, public_submissions, public_web_form, redirect_url, signature_request_email_attachments, signature_request_from_address, signature_request_include_signing_token, signature_request_from_name, signature_request_notification_emails, signature_request_reply_to, signature_request_signing_url, success_title, success_message, show_fill_again_button, has_slack_webhook_url, last_changed_by, defaults, field_dependencies, field_groups, form_sections, predefined_fields, predefined_fields_sample_data, html, scss, header_html, footer_html, html_engine_options, html_escape_data, layout, embed_edit_token, versions);
108
122
  }
109
123
 
110
124
  /**
@@ -114,7 +128,7 @@ var Template = /*#__PURE__*/function () {
114
128
  */
115
129
  return _createClass(Template, null, [{
116
130
  key: "initialize",
117
- value: function initialize(obj, id, name, description, template_type, output_format, ready, document, parent_folder_id, path, latest_version, version_published_at, locked, last_changed_at, created_at, updated_at, version, add_signature_request_submission_id_footers, ai_field_naming_language, allow_additional_properties, allow_skipping_optional_fields, default_form_mode, editable_submissions, embed_domains, embed_edit_allow_settings, embed_edit_allow_versioning, embed_edit_allow_document_replacement, encrypt_pdfs, has_encrypt_pdfs_password, expire_submissions, expire_after, expiration_interval, merge_audit_trail_pdf, parse_dates_using_template_date_format, public_submissions, public_web_form, redirect_url, has_slack_webhook_url, last_changed_by, defaults, field_dependencies, field_groups, predefined_fields, predefined_fields_sample_data, html, scss, header_html, footer_html, html_engine_options, html_escape_data, embed_edit_token, versions) {
131
+ value: function initialize(obj, id, name, description, template_type, output_format, ready, document, parent_folder_id, path, latest_version, version_published_at, locked, last_changed_at, created_at, updated_at, version, add_signature_request_submission_id_footers, ai_field_naming_language, allow_additional_properties, allow_skipping_optional_fields, default_form_mode, editable_submissions, embed_domains, embed_edit_allow_settings, embed_edit_allow_versioning, embed_edit_allow_document_replacement, encrypt_pdfs, has_encrypt_pdfs_password, expire_submissions, expire_after, expiration_interval, merge_audit_trail_pdf, parse_dates_using_template_date_format, public_submissions, public_web_form, redirect_url, signature_request_email_attachments, signature_request_from_address, signature_request_include_signing_token, signature_request_from_name, signature_request_notification_emails, signature_request_reply_to, signature_request_signing_url, success_title, success_message, show_fill_again_button, has_slack_webhook_url, last_changed_by, defaults, field_dependencies, field_groups, form_sections, predefined_fields, predefined_fields_sample_data, html, scss, header_html, footer_html, html_engine_options, html_escape_data, layout, embed_edit_token, versions) {
118
132
  obj['id'] = id;
119
133
  obj['name'] = name;
120
134
  obj['description'] = description;
@@ -151,11 +165,22 @@ var Template = /*#__PURE__*/function () {
151
165
  obj['public_submissions'] = public_submissions;
152
166
  obj['public_web_form'] = public_web_form;
153
167
  obj['redirect_url'] = redirect_url;
168
+ obj['signature_request_email_attachments'] = signature_request_email_attachments;
169
+ obj['signature_request_from_address'] = signature_request_from_address;
170
+ obj['signature_request_include_signing_token'] = signature_request_include_signing_token;
171
+ obj['signature_request_from_name'] = signature_request_from_name;
172
+ obj['signature_request_notification_emails'] = signature_request_notification_emails;
173
+ obj['signature_request_reply_to'] = signature_request_reply_to;
174
+ obj['signature_request_signing_url'] = signature_request_signing_url;
175
+ obj['success_title'] = success_title;
176
+ obj['success_message'] = success_message;
177
+ obj['show_fill_again_button'] = show_fill_again_button;
154
178
  obj['has_slack_webhook_url'] = has_slack_webhook_url;
155
179
  obj['last_changed_by'] = last_changed_by;
156
180
  obj['defaults'] = defaults;
157
181
  obj['field_dependencies'] = field_dependencies;
158
182
  obj['field_groups'] = field_groups;
183
+ obj['form_sections'] = form_sections;
159
184
  obj['predefined_fields'] = predefined_fields;
160
185
  obj['predefined_fields_sample_data'] = predefined_fields_sample_data;
161
186
  obj['html'] = html;
@@ -164,6 +189,7 @@ var Template = /*#__PURE__*/function () {
164
189
  obj['footer_html'] = footer_html;
165
190
  obj['html_engine_options'] = html_engine_options;
166
191
  obj['html_escape_data'] = html_escape_data;
192
+ obj['layout'] = layout;
167
193
  obj['embed_edit_token'] = embed_edit_token;
168
194
  obj['versions'] = versions;
169
195
  }
@@ -289,6 +315,36 @@ var Template = /*#__PURE__*/function () {
289
315
  if (data.hasOwnProperty('redirect_url')) {
290
316
  obj['redirect_url'] = _ApiClient["default"].convertToType(data['redirect_url'], 'String');
291
317
  }
318
+ if (data.hasOwnProperty('signature_request_email_attachments')) {
319
+ obj['signature_request_email_attachments'] = _ApiClient["default"].convertToType(data['signature_request_email_attachments'], _SignatureRequestEmailAttachments["default"]);
320
+ }
321
+ if (data.hasOwnProperty('signature_request_from_address')) {
322
+ obj['signature_request_from_address'] = _ApiClient["default"].convertToType(data['signature_request_from_address'], 'String');
323
+ }
324
+ if (data.hasOwnProperty('signature_request_include_signing_token')) {
325
+ obj['signature_request_include_signing_token'] = _ApiClient["default"].convertToType(data['signature_request_include_signing_token'], 'Boolean');
326
+ }
327
+ if (data.hasOwnProperty('signature_request_from_name')) {
328
+ obj['signature_request_from_name'] = _ApiClient["default"].convertToType(data['signature_request_from_name'], 'String');
329
+ }
330
+ if (data.hasOwnProperty('signature_request_notification_emails')) {
331
+ obj['signature_request_notification_emails'] = _ApiClient["default"].convertToType(data['signature_request_notification_emails'], ['String']);
332
+ }
333
+ if (data.hasOwnProperty('signature_request_reply_to')) {
334
+ obj['signature_request_reply_to'] = _ApiClient["default"].convertToType(data['signature_request_reply_to'], 'String');
335
+ }
336
+ if (data.hasOwnProperty('signature_request_signing_url')) {
337
+ obj['signature_request_signing_url'] = _ApiClient["default"].convertToType(data['signature_request_signing_url'], 'String');
338
+ }
339
+ if (data.hasOwnProperty('success_title')) {
340
+ obj['success_title'] = _ApiClient["default"].convertToType(data['success_title'], 'String');
341
+ }
342
+ if (data.hasOwnProperty('success_message')) {
343
+ obj['success_message'] = _ApiClient["default"].convertToType(data['success_message'], 'String');
344
+ }
345
+ if (data.hasOwnProperty('show_fill_again_button')) {
346
+ obj['show_fill_again_button'] = _ApiClient["default"].convertToType(data['show_fill_again_button'], 'Boolean');
347
+ }
292
348
  if (data.hasOwnProperty('has_slack_webhook_url')) {
293
349
  obj['has_slack_webhook_url'] = _ApiClient["default"].convertToType(data['has_slack_webhook_url'], 'Boolean');
294
350
  }
@@ -304,6 +360,9 @@ var Template = /*#__PURE__*/function () {
304
360
  if (data.hasOwnProperty('field_groups')) {
305
361
  obj['field_groups'] = _ApiClient["default"].convertToType(data['field_groups'], [_FieldGroup["default"]]);
306
362
  }
363
+ if (data.hasOwnProperty('form_sections')) {
364
+ obj['form_sections'] = _ApiClient["default"].convertToType(data['form_sections'], [_TemplateFormSection["default"]]);
365
+ }
307
366
  if (data.hasOwnProperty('predefined_fields')) {
308
367
  obj['predefined_fields'] = _ApiClient["default"].convertToType(data['predefined_fields'], [_PredefinedField["default"]]);
309
368
  }
@@ -330,6 +389,11 @@ var Template = /*#__PURE__*/function () {
330
389
  if (data.hasOwnProperty('html_escape_data')) {
331
390
  obj['html_escape_data'] = _ApiClient["default"].convertToType(data['html_escape_data'], 'Boolean');
332
391
  }
392
+ if (data.hasOwnProperty('layout')) {
393
+ obj['layout'] = _ApiClient["default"].convertToType(data['layout'], {
394
+ 'String': Object
395
+ });
396
+ }
333
397
  if (data.hasOwnProperty('embed_edit_token')) {
334
398
  obj['embed_edit_token'] = _ApiClient["default"].convertToType(data['embed_edit_token'], 'String');
335
399
  }
@@ -404,6 +468,34 @@ var Template = /*#__PURE__*/function () {
404
468
  if (data['redirect_url'] && !(typeof data['redirect_url'] === 'string' || data['redirect_url'] instanceof String)) {
405
469
  throw new Error("Expected the field `redirect_url` to be a primitive type in the JSON string but got " + data['redirect_url']);
406
470
  }
471
+ // ensure the json data is a string
472
+ if (data['signature_request_from_address'] && !(typeof data['signature_request_from_address'] === 'string' || data['signature_request_from_address'] instanceof String)) {
473
+ throw new Error("Expected the field `signature_request_from_address` to be a primitive type in the JSON string but got " + data['signature_request_from_address']);
474
+ }
475
+ // ensure the json data is a string
476
+ if (data['signature_request_from_name'] && !(typeof data['signature_request_from_name'] === 'string' || data['signature_request_from_name'] instanceof String)) {
477
+ throw new Error("Expected the field `signature_request_from_name` to be a primitive type in the JSON string but got " + data['signature_request_from_name']);
478
+ }
479
+ // ensure the json data is an array
480
+ if (!Array.isArray(data['signature_request_notification_emails'])) {
481
+ throw new Error("Expected the field `signature_request_notification_emails` to be an array in the JSON data but got " + data['signature_request_notification_emails']);
482
+ }
483
+ // ensure the json data is a string
484
+ if (data['signature_request_reply_to'] && !(typeof data['signature_request_reply_to'] === 'string' || data['signature_request_reply_to'] instanceof String)) {
485
+ throw new Error("Expected the field `signature_request_reply_to` to be a primitive type in the JSON string but got " + data['signature_request_reply_to']);
486
+ }
487
+ // ensure the json data is a string
488
+ if (data['signature_request_signing_url'] && !(typeof data['signature_request_signing_url'] === 'string' || data['signature_request_signing_url'] instanceof String)) {
489
+ throw new Error("Expected the field `signature_request_signing_url` to be a primitive type in the JSON string but got " + data['signature_request_signing_url']);
490
+ }
491
+ // ensure the json data is a string
492
+ if (data['success_title'] && !(typeof data['success_title'] === 'string' || data['success_title'] instanceof String)) {
493
+ throw new Error("Expected the field `success_title` to be a primitive type in the JSON string but got " + data['success_title']);
494
+ }
495
+ // ensure the json data is a string
496
+ if (data['success_message'] && !(typeof data['success_message'] === 'string' || data['success_message'] instanceof String)) {
497
+ throw new Error("Expected the field `success_message` to be a primitive type in the JSON string but got " + data['success_message']);
498
+ }
407
499
  // validate the optional field `last_changed_by`
408
500
  if (data['last_changed_by']) {
409
501
  // data not null
@@ -417,6 +509,10 @@ var Template = /*#__PURE__*/function () {
417
509
  if (!Array.isArray(data['field_groups'])) {
418
510
  throw new Error("Expected the field `field_groups` to be an array in the JSON data but got " + data['field_groups']);
419
511
  }
512
+ // ensure the json data is an array
513
+ if (!Array.isArray(data['form_sections'])) {
514
+ throw new Error("Expected the field `form_sections` to be an array in the JSON data but got " + data['form_sections']);
515
+ }
420
516
  if (data['predefined_fields']) {
421
517
  // data not null
422
518
  // ensure the json data is an array
@@ -471,7 +567,7 @@ var Template = /*#__PURE__*/function () {
471
567
  }
472
568
  }]);
473
569
  }();
474
- Template.RequiredProperties = ["id", "name", "description", "template_type", "output_format", "ready", "document", "parent_folder_id", "path", "latest_version", "version_published_at", "locked", "last_changed_at", "created_at", "updated_at", "version", "add_signature_request_submission_id_footers", "ai_field_naming_language", "allow_additional_properties", "allow_skipping_optional_fields", "default_form_mode", "editable_submissions", "embed_domains", "embed_edit_allow_settings", "embed_edit_allow_versioning", "embed_edit_allow_document_replacement", "encrypt_pdfs", "has_encrypt_pdfs_password", "expire_submissions", "expire_after", "expiration_interval", "merge_audit_trail_pdf", "parse_dates_using_template_date_format", "public_submissions", "public_web_form", "redirect_url", "has_slack_webhook_url", "last_changed_by", "defaults", "field_dependencies", "field_groups", "predefined_fields", "predefined_fields_sample_data", "html", "scss", "header_html", "footer_html", "html_engine_options", "html_escape_data", "embed_edit_token", "versions"];
570
+ Template.RequiredProperties = ["id", "name", "description", "template_type", "output_format", "ready", "document", "parent_folder_id", "path", "latest_version", "version_published_at", "locked", "last_changed_at", "created_at", "updated_at", "version", "add_signature_request_submission_id_footers", "ai_field_naming_language", "allow_additional_properties", "allow_skipping_optional_fields", "default_form_mode", "editable_submissions", "embed_domains", "embed_edit_allow_settings", "embed_edit_allow_versioning", "embed_edit_allow_document_replacement", "encrypt_pdfs", "has_encrypt_pdfs_password", "expire_submissions", "expire_after", "expiration_interval", "merge_audit_trail_pdf", "parse_dates_using_template_date_format", "public_submissions", "public_web_form", "redirect_url", "signature_request_email_attachments", "signature_request_from_address", "signature_request_include_signing_token", "signature_request_from_name", "signature_request_notification_emails", "signature_request_reply_to", "signature_request_signing_url", "success_title", "success_message", "show_fill_again_button", "has_slack_webhook_url", "last_changed_by", "defaults", "field_dependencies", "field_groups", "form_sections", "predefined_fields", "predefined_fields_sample_data", "html", "scss", "header_html", "footer_html", "html_engine_options", "html_escape_data", "layout", "embed_edit_token", "versions"];
475
571
 
476
572
  /**
477
573
  * The template's ID.
@@ -492,19 +588,19 @@ Template.prototype['name'] = undefined;
492
588
  Template.prototype['description'] = undefined;
493
589
 
494
590
  /**
495
- * `pdf`: fields placed on an uploaded PDF. `html`: a PDF rendered from HTML and SCSS. `docx`: a Word document with tags where the data goes, which makes Word documents or PDFs. It can't be changed after the template is created.
591
+ * `pdf`: fields placed on an uploaded PDF. `html`: a PDF rendered from HTML and SCSS. `docx`: a Word document with tags where the data goes, which makes Word documents or PDFs. `page_designer`: a page design, a PDF laid out in the Page Designer from its `layout`. It can't be changed after the template is created.
496
592
  * @member {module:model/TemplateType} template_type
497
593
  */
498
594
  Template.prototype['template_type'] = undefined;
499
595
 
500
596
  /**
501
- * What each submission makes unless its request sets `output_formats`: `docx` (a Word document), `odt` (an OpenDocument file, converted from the Word document) or `pdf`. A Word template's is chosen when it's created; PDF and HTML templates always make PDFs. A Word template that encrypts its PDFs makes PDFs, because Word documents and OpenDocument files can't be password-protected.
597
+ * What each submission makes unless its request sets `output_formats`: `docx` (a Word document), `odt` (an OpenDocument file, converted from the Word document) or `pdf`. A Word template's is chosen when it's created; other templates always make PDFs. A Word template that encrypts its PDFs makes PDFs, because Word documents and OpenDocument files can't be password-protected.
502
598
  * @member {module:model/OutputFormat} output_format
503
599
  */
504
600
  Template.prototype['output_format'] = undefined;
505
601
 
506
602
  /**
507
- * Whether the template can make documents. HTML templates are always ready. A PDF template is ready once DocSpring has stored its PDF, made an image of each page and finished looking for fields on each page, which can be after `document.state` becomes `processed`. A PDF template with no PDF (`document` is null) isn't ready. A Word template is ready once it has a Word document (a `document_url`'s has been downloaded).
603
+ * Whether the template can make documents. HTML templates and page designs are always ready. A PDF template is ready once DocSpring has stored its PDF, made an image of each page and finished looking for fields on each page, which can be after `document.state` becomes `processed`. A PDF template with no PDF (`document` is null) isn't ready. A Word template is ready once it has a Word document (a `document_url`'s has been downloaded).
508
604
  * @member {Boolean} ready
509
605
  */
510
606
  Template.prototype['ready'] = undefined;
@@ -606,7 +702,7 @@ Template.prototype['default_form_mode'] = undefined;
606
702
  Template.prototype['editable_submissions'] = undefined;
607
703
 
608
704
  /**
609
- * The sites that can embed the template's live signature requests and its embedded template editor: a host such as `app.example.com`, with an optional leading wildcard (`*.example.com`), port (`localhost:3000`) or scheme (`https://app.example.com`; without one, `http` and `https` both work). Browsers open a live signature request in a frame only on these sites (and DocSpring's), so with an empty list it can't be embedded anywhere; a test signature request can be embedded on any site. The embedded template editor loads only for a page on one of these sites (by its Referer or Origin header), and on any site when the list is empty. Forms embedded on a page (Visual Forms JS and the simple form) aren't restricted.
705
+ * The sites that can embed the template's live signature requests and its embedded template editor: a host such as `app.example.com`, with an optional leading wildcard (`*.example.com`), port (`localhost:3000`) or scheme (`https://app.example.com`; without one, `http` and `https` both work), without a path. Each one is stored in lowercase, without a trailing slash. Browsers open a live signature request in a frame only on these sites (and DocSpring's), so with an empty list it can't be embedded anywhere; a test signature request can be embedded on any site. The embedded template editor loads only for a page on one of these sites (by its Referer or Origin header), and on any site when the list is empty. Forms embedded on a page (Visual Forms JS and Web Forms JS) aren't restricted.
610
706
  * @member {Array.<String>} embed_domains
611
707
  */
612
708
  Template.prototype['embed_domains'] = undefined;
@@ -684,11 +780,71 @@ Template.prototype['public_submissions'] = undefined;
684
780
  Template.prototype['public_web_form'] = undefined;
685
781
 
686
782
  /**
687
- * Where the web form sends people after they submit it.
783
+ * Where the web form sends people after they submit it, instead of showing its success screen. After its `?` or `#`, it can have variables such as `{{ data.first_name }}`, which the form fills in with what they submitted.
688
784
  * @member {String} redirect_url
689
785
  */
690
786
  Template.prototype['redirect_url'] = undefined;
691
787
 
788
+ /**
789
+ * How DocSpring's completed emails send the signed PDF to your signers and CCs: `attachment` (attached, or a download link when it's too big to attach) or `link` (a download link). Null uses your account's rule: a link if your account has signed a BAA, otherwise attached. PDF templates only. A signature request uses the value it had when the request was created.
790
+ * @member {module:model/SignatureRequestEmailAttachments} signature_request_email_attachments
791
+ */
792
+ Template.prototype['signature_request_email_attachments'] = undefined;
793
+
794
+ /**
795
+ * The address DocSpring's emails to your signers come from: an address at one of your verified email domains, on the Growth plan or higher. Null sends them from DocSpring's shared address, with "via DocSpring" after the sender name. PDF templates only.
796
+ * @member {String} signature_request_from_address
797
+ */
798
+ Template.prototype['signature_request_from_address'] = undefined;
799
+
800
+ /**
801
+ * Puts a signing token in `signature_request_signing_url`, as `{{ token_id }}` and `{{ token_secret }}`, so your page can open the signing form without creating a token itself. The email then carries a credential: anyone who has it can open the form and sign. PDF templates only.
802
+ * @member {Boolean} signature_request_include_signing_token
803
+ */
804
+ Template.prototype['signature_request_include_signing_token'] = undefined;
805
+
806
+ /**
807
+ * The sender name on the emails DocSpring sends your signers, as in "Acme via DocSpring". It can't contain an email address, a website or quotes. Null uses your account's name. PDF templates only.
808
+ * @member {String} signature_request_from_name
809
+ */
810
+ Template.prototype['signature_request_from_name'] = undefined;
811
+
812
+ /**
813
+ * Who DocSpring tells when a signature request's document is completed or declined, or an email bounces or can't be sent: members of your DocSpring team or addresses at your verified email domains. Empty means your account's owner. A submission's `notification_emails` replaces them. PDF templates only.
814
+ * @member {Array.<String>} signature_request_notification_emails
815
+ */
816
+ Template.prototype['signature_request_notification_emails'] = undefined;
817
+
818
+ /**
819
+ * Where your signers' replies to DocSpring's emails go: a member of your DocSpring team or an address at one of your verified email domains. Null means your account's owner. A submission's `reply_to` replaces it. PDF templates only.
820
+ * @member {String} signature_request_reply_to
821
+ */
822
+ Template.prototype['signature_request_reply_to'] = undefined;
823
+
824
+ /**
825
+ * A page on your own site that the button in DocSpring's email to a signer opens, instead of DocSpring's signing page: an https URL on one of your verified email domains or a subdomain of one, on the Growth plan or higher. It must include `{{ signature_request_id }}`. Your page authenticates the signer, creates a token for the signature request, and opens the signing form with it. Null links to DocSpring's signing page. PDF templates only.
826
+ * @member {String} signature_request_signing_url
827
+ */
828
+ Template.prototype['signature_request_signing_url'] = undefined;
829
+
830
+ /**
831
+ * The title of the web form's success screen. When it's null or empty, the screen says "Thanks for filling out" and the template's name. It can have variables such as `{{ data.first_name }}`.
832
+ * @member {String} success_title
833
+ */
834
+ Template.prototype['success_title'] = undefined;
835
+
836
+ /**
837
+ * A message under the title of the web form's success screen, as plain text. Line breaks show, and web addresses become links. It can have variables such as `{{ data.first_name }}`.
838
+ * @member {String} success_message
839
+ */
840
+ Template.prototype['success_message'] = undefined;
841
+
842
+ /**
843
+ * Whether the web form's success screen has a "Fill out again" button, which clears the form so someone can fill it in again.
844
+ * @member {Boolean} show_fill_again_button
845
+ */
846
+ Template.prototype['show_fill_again_button'] = undefined;
847
+
692
848
  /**
693
849
  * Whether `slack_webhook_url` is set.
694
850
  * @member {Boolean} has_slack_webhook_url
@@ -718,6 +874,12 @@ Template.prototype['field_dependencies'] = undefined;
718
874
  */
719
875
  Template.prototype['field_groups'] = undefined;
720
876
 
877
+ /**
878
+ * The web form's sections, in order: Web Forms JS and the hosted web form show one section at a time. Empty when the template has none, and the web form shows all of its fields together, in the order the fields endpoint lists them. A field that no section lists (one added later) goes after the field before it in that order, in that field's section.
879
+ * @member {Array.<module:model/TemplateFormSection>} form_sections
880
+ */
881
+ Template.prototype['form_sections'] = undefined;
882
+
721
883
  /**
722
884
  * The field names that people using the embedded template editor choose from, each with the data type and settings a field gets when it's given that name. Setting it replaces the whole list; an empty list turns them off.
723
885
  * @member {Array.<module:model/PredefinedField>} predefined_fields
@@ -731,7 +893,7 @@ Template.prototype['predefined_fields'] = undefined;
731
893
  Template.prototype['predefined_fields_sample_data'] = undefined;
732
894
 
733
895
  /**
734
- * The HTML of an HTML template, as a Liquid template. Null for PDF and Word templates.
896
+ * The HTML of an HTML template, as a Liquid template. Null for other templates.
735
897
  * @member {String} html
736
898
  */
737
899
  Template.prototype['html'] = undefined;
@@ -755,17 +917,23 @@ Template.prototype['header_html'] = undefined;
755
917
  Template.prototype['footer_html'] = undefined;
756
918
 
757
919
  /**
758
- * How an HTML template's PDFs are printed. Null for PDF and Word templates. Setting it replaces the whole object: options left out use their defaults.
920
+ * How an HTML template's PDFs are printed. Null for other templates. Setting it replaces the whole object: options left out use their defaults.
759
921
  * @member {module:model/HtmlEngineOptions} html_engine_options
760
922
  */
761
923
  Template.prototype['html_engine_options'] = undefined;
762
924
 
763
925
  /**
764
- * Whether an HTML template HTML-escapes the values it prints. When true, `{{ value }}` prints a value as text, so a `<` or `&` in it is printed as that character, and `{{ value | raw }}` prints a value as HTML. New HTML templates default to true. Templates created before October 2026, or with API v1, default to false, which prints every value as HTML. Null for PDF templates.
926
+ * Whether an HTML template HTML-escapes the values it prints. When true, `{{ value }}` prints a value as text, so a `<` or `&` in it is printed as that character, and `{{ value | raw }}` prints a value as HTML. New HTML templates default to true. Templates created before October 2026, or with API v1, default to false, which prints every value as HTML. Null for other templates.
765
927
  * @member {Boolean} html_escape_data
766
928
  */
767
929
  Template.prototype['html_escape_data'] = undefined;
768
930
 
931
+ /**
932
+ * A page design's layout: its page setup, its sections and the elements placed in them, in the Page Designer layout format (https://docspring.com/docs/page-designer/layout-format/). Its JSON Schema is at https://docspring.com/schemas/page-designer/layout.v1.json. Null for other templates. Setting it replaces the whole layout, and DocSpring adds a field for each value it reads. Left out when a page design is created, it starts with an empty page.
933
+ * @member {Object.<String, Object>} layout
934
+ */
935
+ Template.prototype['layout'] = undefined;
936
+
769
937
  /**
770
938
  * The token that opens the template in the embedded template editor.
771
939
  * @member {String} embed_edit_token
@@ -30,7 +30,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
30
30
  /**
31
31
  * The TemplateActor model module.
32
32
  * @module model/TemplateActor
33
- * @version 4.3.0
33
+ * @version 4.5.0
34
34
  */
35
35
  var TemplateActor = /*#__PURE__*/function () {
36
36
  /**
@@ -29,7 +29,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
29
29
  /**
30
30
  * The TemplateDefaults model module.
31
31
  * @module model/TemplateDefaults
32
- * @version 4.3.0
32
+ * @version 4.5.0
33
33
  */
34
34
  var TemplateDefaults = /*#__PURE__*/function () {
35
35
  /**
@@ -29,7 +29,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
29
29
  /**
30
30
  * The TemplateDefaultsInput model module.
31
31
  * @module model/TemplateDefaultsInput
32
- * @version 4.3.0
32
+ * @version 4.5.0
33
33
  */
34
34
  var TemplateDefaultsInput = /*#__PURE__*/function () {
35
35
  /**
@@ -31,7 +31,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
31
31
  /**
32
32
  * The TemplateDiff model module.
33
33
  * @module model/TemplateDiff
34
- * @version 4.3.0
34
+ * @version 4.5.0
35
35
  */
36
36
  var TemplateDiff = /*#__PURE__*/function () {
37
37
  /**
@@ -29,7 +29,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
29
29
  /**
30
30
  * The TemplateDiffSummary model module.
31
31
  * @module model/TemplateDiffSummary
32
- * @version 4.3.0
32
+ * @version 4.5.0
33
33
  */
34
34
  var TemplateDiffSummary = /*#__PURE__*/function () {
35
35
  /**
@@ -33,7 +33,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
33
33
  /**
34
34
  * The TemplateDocument model module.
35
35
  * @module model/TemplateDocument
36
- * @version 4.3.0
36
+ * @version 4.5.0
37
37
  */
38
38
  var TemplateDocument = /*#__PURE__*/function () {
39
39
  /**
@@ -30,7 +30,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
30
30
  /**
31
31
  * The TemplateDocumentSummary model module.
32
32
  * @module model/TemplateDocumentSummary
33
- * @version 4.3.0
33
+ * @version 4.5.0
34
34
  */
35
35
  var TemplateDocumentSummary = /*#__PURE__*/function () {
36
36
  /**
@@ -30,7 +30,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
30
30
  /**
31
31
  * The TemplateFieldChange model module.
32
32
  * @module model/TemplateFieldChange
33
- * @version 4.3.0
33
+ * @version 4.5.0
34
34
  */
35
35
  var TemplateFieldChange = /*#__PURE__*/function () {
36
36
  /**
@@ -32,7 +32,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
32
32
  /**
33
33
  * The TemplateFieldChanges model module.
34
34
  * @module model/TemplateFieldChanges
35
- * @version 4.3.0
35
+ * @version 4.5.0
36
36
  */
37
37
  var TemplateFieldChanges = /*#__PURE__*/function () {
38
38
  /**
@@ -32,7 +32,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
32
32
  /**
33
33
  * The TemplateFieldDependency model module.
34
34
  * @module model/TemplateFieldDependency
35
- * @version 4.3.0
35
+ * @version 4.5.0
36
36
  */
37
37
  var TemplateFieldDependency = /*#__PURE__*/function () {
38
38
  /**
@@ -30,7 +30,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
30
30
  /**
31
31
  * The TemplateFieldDependencyCondition model module.
32
32
  * @module model/TemplateFieldDependencyCondition
33
- * @version 4.3.0
33
+ * @version 4.5.0
34
34
  */
35
35
  var TemplateFieldDependencyCondition = /*#__PURE__*/function () {
36
36
  /**
@@ -33,7 +33,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
33
33
  /**
34
34
  * The TemplateFieldDependencyConditionInput model module.
35
35
  * @module model/TemplateFieldDependencyConditionInput
36
- * @version 4.3.0
36
+ * @version 4.5.0
37
37
  */
38
38
  var TemplateFieldDependencyConditionInput = /*#__PURE__*/function () {
39
39
  /**
@@ -32,7 +32,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
32
32
  /**
33
33
  * The TemplateFieldDependencyInput model module.
34
34
  * @module model/TemplateFieldDependencyInput
35
- * @version 4.3.0
35
+ * @version 4.5.0
36
36
  */
37
37
  var TemplateFieldDependencyInput = /*#__PURE__*/function () {
38
38
  /**
@@ -29,7 +29,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
29
29
  /**
30
30
  * The TemplateFieldMove model module.
31
31
  * @module model/TemplateFieldMove
32
- * @version 4.3.0
32
+ * @version 4.5.0
33
33
  */
34
34
  var TemplateFieldMove = /*#__PURE__*/function () {
35
35
  /**
@@ -30,7 +30,7 @@ function _toPrimitive(t, e) { if ("object" != _typeof(t) || !t) return t; var r;
30
30
  /**
31
31
  * The TemplateFields model module.
32
32
  * @module model/TemplateFields
33
- * @version 4.3.0
33
+ * @version 4.5.0
34
34
  */
35
35
  var TemplateFields = /*#__PURE__*/function () {
36
36
  /**