docspring 4.3.0 → 4.4.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 (160) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +80 -0
  3. data/.openapi-generator/FILES +84 -0
  4. data/CHANGELOG.md +55 -0
  5. data/Gemfile.lock +2 -2
  6. data/README.md +20 -1
  7. data/docs/AddTemplateFieldsRequest.md +1 -1
  8. data/docs/Client.md +2311 -766
  9. data/docs/CombinedPdfSource.md +1 -1
  10. data/docs/CreateAccountEmailActionRequest.md +54 -0
  11. data/docs/CreateEmailActionRequest.md +50 -0
  12. data/docs/CreateEmailDomainRequest.md +18 -0
  13. data/docs/CreateSubmissionBatchRequest.md +2 -2
  14. data/docs/CreateSubmissionRequest.md +22 -4
  15. data/docs/CreateTemplateRequest.md +22 -6
  16. data/docs/DnsRecordType.md +15 -0
  17. data/docs/EmailAction.md +76 -0
  18. data/docs/EmailActionConditions.md +20 -0
  19. data/docs/EmailActionConditionsInput.md +20 -0
  20. data/docs/EmailActionCustomization.md +36 -0
  21. data/docs/EmailActionDelivery.md +15 -0
  22. data/docs/EmailActionFileFormats.md +15 -0
  23. data/docs/EmailActionList.md +20 -0
  24. data/docs/EmailActionSetting.md +15 -0
  25. data/docs/EmailActionSubmissionType.md +15 -0
  26. data/docs/EmailActionTestEmail.md +18 -0
  27. data/docs/EmailDomain.md +38 -0
  28. data/docs/EmailDomainDnsRecord.md +24 -0
  29. data/docs/EmailDomainDnsRecordPurpose.md +15 -0
  30. data/docs/EmailDomainList.md +20 -0
  31. data/docs/EmailDomainRecordState.md +15 -0
  32. data/docs/EmailDomainState.md +15 -0
  33. data/docs/ErrorInfo.md +12 -6
  34. data/docs/Field.md +1 -1
  35. data/docs/FieldInput.md +1 -1
  36. data/docs/HtmlEngineOptions.md +1 -1
  37. data/docs/HtmlEngineOptionsInput.md +1 -1
  38. data/docs/SendAccountEmailActionTestEmailRequest.md +18 -0
  39. data/docs/SignatureRequest.md +9 -1
  40. data/docs/SignatureRequestEmailAttachments.md +15 -0
  41. data/docs/SignatureRequestEmailStatus.md +15 -0
  42. data/docs/SignatureRequestInput.md +7 -3
  43. data/docs/SignatureRequestReminders.md +20 -0
  44. data/docs/SigningOrder.md +15 -0
  45. data/docs/Submission.md +4 -2
  46. data/docs/SubmissionAction.md +5 -3
  47. data/docs/SubmissionInput.md +3 -3
  48. data/docs/SubmissionSummary.md +1 -1
  49. data/docs/Template.md +23 -7
  50. data/docs/TemplateSourcePdf.md +1 -1
  51. data/docs/TemplateSummary.md +4 -4
  52. data/docs/UpdateAccountEmailActionRequest.md +54 -0
  53. data/docs/UpdateEmailActionCustomizationRequest.md +46 -0
  54. data/docs/UpdateEmailActionRequest.md +50 -0
  55. data/docs/UpdateTemplateDocumentRequest.md +1 -1
  56. data/docs/UpdateTemplateRequest.md +21 -5
  57. data/docs/ValidateSubmissionRequest.md +22 -4
  58. data/lib/docspring/api/client.rb +1749 -314
  59. data/lib/docspring/api_client.rb +1 -1
  60. data/lib/docspring/models/add_template_fields_request.rb +1 -1
  61. data/lib/docspring/models/combined_pdf_source.rb +1 -1
  62. data/lib/docspring/models/create_account_email_action_request.rb +388 -0
  63. data/lib/docspring/models/create_email_action_request.rb +364 -0
  64. data/lib/docspring/models/create_email_domain_request.rb +185 -0
  65. data/lib/docspring/models/create_submission_batch_request.rb +2 -2
  66. data/lib/docspring/models/create_submission_request.rb +143 -7
  67. data/lib/docspring/models/create_template_request.rb +107 -7
  68. data/lib/docspring/models/dns_record_type.rb +42 -0
  69. data/lib/docspring/models/email_action.rb +790 -0
  70. data/lib/docspring/models/email_action_conditions.rb +219 -0
  71. data/lib/docspring/models/email_action_conditions_input.rb +219 -0
  72. data/lib/docspring/models/email_action_customization.rb +360 -0
  73. data/lib/docspring/models/email_action_delivery.rb +41 -0
  74. data/lib/docspring/models/email_action_file_formats.rb +43 -0
  75. data/lib/docspring/models/email_action_list.rb +200 -0
  76. data/lib/docspring/models/email_action_setting.rb +53 -0
  77. data/lib/docspring/models/email_action_submission_type.rb +42 -0
  78. data/lib/docspring/models/email_action_test_email.rb +185 -0
  79. data/lib/docspring/models/email_domain.rb +423 -0
  80. data/lib/docspring/models/email_domain_dns_record.rb +288 -0
  81. data/lib/docspring/models/email_domain_dns_record_purpose.rb +42 -0
  82. data/lib/docspring/models/email_domain_list.rb +200 -0
  83. data/lib/docspring/models/email_domain_record_state.rb +42 -0
  84. data/lib/docspring/models/email_domain_state.rb +42 -0
  85. data/lib/docspring/models/error_code.rb +3 -1
  86. data/lib/docspring/models/error_info.rb +39 -9
  87. data/lib/docspring/models/field.rb +1 -1
  88. data/lib/docspring/models/field_input.rb +1 -1
  89. data/lib/docspring/models/html_engine_options.rb +1 -1
  90. data/lib/docspring/models/html_engine_options_input.rb +1 -1
  91. data/lib/docspring/models/send_account_email_action_test_email_request.rb +168 -0
  92. data/lib/docspring/models/signature_request.rb +68 -2
  93. data/lib/docspring/models/signature_request_email_attachments.rb +41 -0
  94. data/lib/docspring/models/signature_request_email_status.rb +47 -0
  95. data/lib/docspring/models/signature_request_event_type.rb +3 -1
  96. data/lib/docspring/models/signature_request_input.rb +25 -22
  97. data/lib/docspring/models/signature_request_reminders.rb +212 -0
  98. data/lib/docspring/models/signing_order.rb +41 -0
  99. data/lib/docspring/models/string_condition_type.rb +8 -1
  100. data/lib/docspring/models/submission.rb +30 -3
  101. data/lib/docspring/models/submission_action.rb +18 -5
  102. data/lib/docspring/models/submission_input.rb +3 -3
  103. data/lib/docspring/models/submission_summary.rb +1 -1
  104. data/lib/docspring/models/template.rb +144 -8
  105. data/lib/docspring/models/template_source_pdf.rb +1 -1
  106. data/lib/docspring/models/template_summary.rb +4 -4
  107. data/lib/docspring/models/template_type.rb +2 -1
  108. data/lib/docspring/models/update_account_email_action_request.rb +388 -0
  109. data/lib/docspring/models/update_email_action_customization_request.rb +343 -0
  110. data/lib/docspring/models/update_email_action_request.rb +364 -0
  111. data/lib/docspring/models/update_template_document_request.rb +1 -1
  112. data/lib/docspring/models/update_template_request.rb +108 -8
  113. data/lib/docspring/models/validate_submission_request.rb +143 -7
  114. data/lib/docspring/models/webhook_event_type.rb +3 -1
  115. data/lib/docspring/request_schemas.json +1691 -145
  116. data/lib/docspring/request_validator.rb +4 -0
  117. data/lib/docspring/version.rb +1 -1
  118. data/lib/docspring.rb +28 -0
  119. data/spec/api/client_spec.rb +306 -18
  120. data/spec/models/create_account_email_action_request_spec.rb +144 -0
  121. data/spec/models/create_email_action_request_spec.rb +132 -0
  122. data/spec/models/create_email_domain_request_spec.rb +36 -0
  123. data/spec/models/create_submission_request_spec.rb +54 -0
  124. data/spec/models/create_template_request_spec.rb +48 -0
  125. data/spec/models/dns_record_type_spec.rb +30 -0
  126. data/spec/models/email_action_conditions_input_spec.rb +42 -0
  127. data/spec/models/email_action_conditions_spec.rb +42 -0
  128. data/spec/models/email_action_customization_spec.rb +90 -0
  129. data/spec/models/email_action_delivery_spec.rb +30 -0
  130. data/spec/models/email_action_file_formats_spec.rb +30 -0
  131. data/spec/models/email_action_list_spec.rb +42 -0
  132. data/spec/models/email_action_setting_spec.rb +30 -0
  133. data/spec/models/email_action_spec.rb +210 -0
  134. data/spec/models/email_action_submission_type_spec.rb +30 -0
  135. data/spec/models/email_action_test_email_spec.rb +36 -0
  136. data/spec/models/email_domain_dns_record_purpose_spec.rb +30 -0
  137. data/spec/models/email_domain_dns_record_spec.rb +54 -0
  138. data/spec/models/email_domain_list_spec.rb +42 -0
  139. data/spec/models/email_domain_record_state_spec.rb +30 -0
  140. data/spec/models/email_domain_spec.rb +96 -0
  141. data/spec/models/email_domain_state_spec.rb +30 -0
  142. data/spec/models/error_info_spec.rb +18 -0
  143. data/spec/models/send_account_email_action_test_email_request_spec.rb +36 -0
  144. data/spec/models/signature_request_email_attachments_spec.rb +30 -0
  145. data/spec/models/signature_request_email_status_spec.rb +30 -0
  146. data/spec/models/signature_request_input_spec.rb +12 -0
  147. data/spec/models/signature_request_reminders_spec.rb +42 -0
  148. data/spec/models/signature_request_spec.rb +24 -0
  149. data/spec/models/signing_order_spec.rb +30 -0
  150. data/spec/models/submission_action_spec.rb +6 -0
  151. data/spec/models/submission_spec.rb +6 -0
  152. data/spec/models/template_spec.rb +48 -0
  153. data/spec/models/update_account_email_action_request_spec.rb +144 -0
  154. data/spec/models/update_email_action_customization_request_spec.rb +120 -0
  155. data/spec/models/update_email_action_request_spec.rb +132 -0
  156. data/spec/models/update_template_request_spec.rb +48 -0
  157. data/spec/models/validate_submission_request_spec.rb +54 -0
  158. metadata +115 -4
  159. data/.gitlab-ci.yml +0 -26
  160. data/.travis.yml +0 -11
@@ -16,13 +16,13 @@ require 'time'
16
16
  module DocSpring
17
17
  # The submission's data and settings.
18
18
  class CreateSubmissionRequest < ApiModelBase
19
- # Test PDFs have a watermark and are free. Live PDFs use credits. Submissions made with a test API token are always test submissions.
19
+ # Test PDFs have a watermark and are free. Live PDFs use credits. Submissions made with a test API token are always test submissions, and the demo API token's are always live.
20
20
  attr_accessor :test
21
21
 
22
22
  # `true` keeps the PDF's text and check fields fillable, and `false` flattens every field. Left out, the template decides: its `editable_submissions` setting, or each field's own Editable option. A response shows the template's setting when the request left this out. Can't be `true` with `signature_requests`.
23
23
  attr_accessor :editable
24
24
 
25
- # The values of the template's fields, by field name. Required for PDF and Word templates, unless `signature_requests` collects them (PDF templates only).
25
+ # The values of the template's fields, by field name. Required for PDF templates, Word templates and page designs, unless `signature_requests` collects them (PDF templates only).
26
26
  attr_accessor :data
27
27
 
28
28
  # Your own data about the submission, such as an ID from your app. It isn't printed on the PDF. Two keys also change the PDF: `pdf_filename` names its file (`files.pdf.filename`, and its download), and `pdf_title` is its title in the PDF's document properties (and an HTML template's `<title>`, unless its HTML has one). Without `pdf_title`, the title is the template's name. In `pdf_filename`, a `.pdf` ending is removed, each run of characters other than letters, digits, `-`, `_` and `.` becomes one `_`, and the first 128 characters are kept, then `.pdf` is added. Without it, the file is named after the submission's ID (`sub_1234567890abcdef01.pdf`).
@@ -34,7 +34,7 @@ module DocSpring
34
34
  # What the submission makes: `pdf`, `docx` (a Word document, from a Word template), `odt` (an OpenDocument file, the format LibreOffice uses, converted from a Word template's Word document), and `png` (an image of each page of the PDF, up to 100 pages, which adds `pdf`) when you ask for it. Default `["pdf"]`, or a Word template's `output_format`. POST /submissions/{submission_id}/generate_files adds `png`, and a Word template's submission's `pdf`, `docx` or `odt`, to a processed submission.
35
35
  attr_accessor :output_formats
36
36
 
37
- # Seconds after the PDF is generated until the submission expires, up to 10 years (315360000). Default the template's expiration setting. A submission that isn't processed, such as one with invalid data, is kept for at least 48 hours.
37
+ # Seconds after the PDF is generated until the submission expires, up to 10 years (315360000). Default the template's expiration setting. A submission that isn't processed, such as one with invalid data, is kept for at least 48 hours. The demo API token's submissions expire within an hour: up to 3600, and that's their default.
38
38
  attr_accessor :expires_in
39
39
 
40
40
  # Changes to field settings for this submission only, by field name, such as `{"name": {"required": false, "font_size": 9}}`. A setting that identifies the field (`id`, `name`, `type`), that only the template sets (such as `description`), or that doesn't apply to the field's type and display type (such as `check_character` on a field displayed as text) is a 422. With `signature_requests`, `editable: true` is a 422, and a `default` for a signature or initials field makes the submission `invalid_data`.
@@ -49,6 +49,55 @@ module DocSpring
49
49
  # The people who sign the PDF, and fill in their fields first. The PDF is generated once every signature request is completed. PDF templates only. Without `role`s, the first signature request is `Signer 1`, the second `Signer 2`, and so on. To leave a signer out, give every signature request its `role` and leave that one's out. Only the signers sign: a value for a signature or initials field in `data` makes the submission `invalid_data`.
50
50
  attr_accessor :signature_requests
51
51
 
52
+ # Whether DocSpring emails the signers their signing links, and sends the reminders and the completed document. Default true. Each signature request's own `send_email` overrides it. A test submission only emails your DocSpring team: every other address is a 422. `true` needs `signature_requests`. DocSpring doesn't email the signers of a form library template: leave `send_email` out, and send them their links yourself.
53
+ attr_accessor :send_email
54
+
55
+ # `parallel` (the default): everyone can sign at once. `sequential`: people sign one step at a time (`signing_step`), and DocSpring emails each step when the one before it is done. Needs `signature_requests`.
56
+ attr_accessor :signing_order
57
+
58
+ # The subject of the emails that ask people to sign. You can use `{{ signer.name }}`, `{{ signer.email }}`, `{{ document.name }}`, `{{ sender.name }}` and `{{ account.name }}`. Default "<sender> sent you <document> to sign" when you leave it out (a blank subject is a 422). Links and web addresses are shown as plain text (`example[.]com`).
59
+ attr_accessor :email_subject
60
+
61
+ # A message for the people who sign, shown above the signing button. It takes the same variables as `email_subject`. Links and web addresses are shown as plain text. Leave it out for none: a blank message is a 422.
62
+ attr_accessor :email_message
63
+
64
+ # People who get a copy of the completed document. They don't sign.
65
+ attr_accessor :cc
66
+
67
+ # Where replies to the emails go: a member of your DocSpring team, or an address at one of your verified email domains. Leave it out for the template's reply-to address (the account owner when it has none).
68
+ attr_accessor :reply_to
69
+
70
+ # Who DocSpring tells when the 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. Leave it out for the template's notification addresses (the account owner when it has none); an empty list means the account owner.
71
+ attr_accessor :notification_emails
72
+
73
+ # Also email `notification_emails` each time someone signs. Default false.
74
+ attr_accessor :notify_when_signed
75
+
76
+ # Remind people who haven't signed: every `interval_days` days, up to `max_count` times. Each reminder has a new signing link. Without it, DocSpring sends no reminders.
77
+ attr_accessor :reminders
78
+
79
+ class EnumAttributeValidator
80
+ attr_reader :datatype
81
+ attr_reader :allowable_values
82
+
83
+ def initialize(datatype, allowable_values)
84
+ @allowable_values = allowable_values.map do |value|
85
+ case datatype.to_s
86
+ when /Integer/i
87
+ value.to_i
88
+ when /Float/i
89
+ value.to_f
90
+ else
91
+ value
92
+ end
93
+ end
94
+ end
95
+
96
+ def valid?(value)
97
+ !value || allowable_values.include?(value)
98
+ end
99
+ end
100
+
52
101
  # Attribute mapping from ruby-style variable name to JSON key.
53
102
  def self.attribute_map
54
103
  {
@@ -62,7 +111,16 @@ module DocSpring
62
111
  :'field_overrides' => :'field_overrides',
63
112
  :'html' => :'html',
64
113
  :'css' => :'css',
65
- :'signature_requests' => :'signature_requests'
114
+ :'signature_requests' => :'signature_requests',
115
+ :'send_email' => :'send_email',
116
+ :'signing_order' => :'signing_order',
117
+ :'email_subject' => :'email_subject',
118
+ :'email_message' => :'email_message',
119
+ :'cc' => :'cc',
120
+ :'reply_to' => :'reply_to',
121
+ :'notification_emails' => :'notification_emails',
122
+ :'notify_when_signed' => :'notify_when_signed',
123
+ :'reminders' => :'reminders'
66
124
  }
67
125
  end
68
126
 
@@ -89,7 +147,16 @@ module DocSpring
89
147
  :'field_overrides' => :'Hash<String, FieldOverride>',
90
148
  :'html' => :'String',
91
149
  :'css' => :'String',
92
- :'signature_requests' => :'Array<SignatureRequestInput>'
150
+ :'signature_requests' => :'Array<SignatureRequestInput>',
151
+ :'send_email' => :'Boolean',
152
+ :'signing_order' => :'SigningOrder',
153
+ :'email_subject' => :'String',
154
+ :'email_message' => :'String',
155
+ :'cc' => :'Array<String>',
156
+ :'reply_to' => :'String',
157
+ :'notification_emails' => :'Array<String>',
158
+ :'notify_when_signed' => :'Boolean',
159
+ :'reminders' => :'SignatureRequestReminders'
93
160
  }
94
161
  end
95
162
 
@@ -178,6 +245,46 @@ module DocSpring
178
245
  self.signature_requests = value
179
246
  end
180
247
  end
248
+
249
+ if attributes.key?(:'send_email')
250
+ self.send_email = attributes[:'send_email']
251
+ end
252
+
253
+ if attributes.key?(:'signing_order')
254
+ self.signing_order = attributes[:'signing_order']
255
+ end
256
+
257
+ if attributes.key?(:'email_subject')
258
+ self.email_subject = attributes[:'email_subject']
259
+ end
260
+
261
+ if attributes.key?(:'email_message')
262
+ self.email_message = attributes[:'email_message']
263
+ end
264
+
265
+ if attributes.key?(:'cc')
266
+ if (value = attributes[:'cc']).is_a?(Array)
267
+ self.cc = value
268
+ end
269
+ end
270
+
271
+ if attributes.key?(:'reply_to')
272
+ self.reply_to = attributes[:'reply_to']
273
+ end
274
+
275
+ if attributes.key?(:'notification_emails')
276
+ if (value = attributes[:'notification_emails']).is_a?(Array)
277
+ self.notification_emails = value
278
+ end
279
+ end
280
+
281
+ if attributes.key?(:'notify_when_signed')
282
+ self.notify_when_signed = attributes[:'notify_when_signed']
283
+ end
284
+
285
+ if attributes.key?(:'reminders')
286
+ self.reminders = attributes[:'reminders']
287
+ end
181
288
  end
182
289
 
183
290
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -205,6 +312,26 @@ module DocSpring
205
312
  @output_formats = output_formats
206
313
  end
207
314
 
315
+ # Custom attribute writer method with validation
316
+ # @param [Object] cc Value to be assigned
317
+ def cc=(cc)
318
+ if cc.nil?
319
+ fail ArgumentError, 'cc cannot be nil'
320
+ end
321
+
322
+ @cc = cc
323
+ end
324
+
325
+ # Custom attribute writer method with validation
326
+ # @param [Object] notification_emails Value to be assigned
327
+ def notification_emails=(notification_emails)
328
+ if notification_emails.nil?
329
+ fail ArgumentError, 'notification_emails cannot be nil'
330
+ end
331
+
332
+ @notification_emails = notification_emails
333
+ end
334
+
208
335
  # Checks equality by comparing each attribute.
209
336
  # @param [Object] Object to be compared
210
337
  def ==(o)
@@ -220,7 +347,16 @@ module DocSpring
220
347
  field_overrides == o.field_overrides &&
221
348
  html == o.html &&
222
349
  css == o.css &&
223
- signature_requests == o.signature_requests
350
+ signature_requests == o.signature_requests &&
351
+ send_email == o.send_email &&
352
+ signing_order == o.signing_order &&
353
+ email_subject == o.email_subject &&
354
+ email_message == o.email_message &&
355
+ cc == o.cc &&
356
+ reply_to == o.reply_to &&
357
+ notification_emails == o.notification_emails &&
358
+ notify_when_signed == o.notify_when_signed &&
359
+ reminders == o.reminders
224
360
  end
225
361
 
226
362
  # @see the `==` method
@@ -232,7 +368,7 @@ module DocSpring
232
368
  # Calculates hash code according to all attributes.
233
369
  # @return [Integer] Hash code
234
370
  def hash
235
- [test, editable, data, metadata, password, output_formats, expires_in, field_overrides, html, css, signature_requests].hash
371
+ [test, editable, data, metadata, password, output_formats, expires_in, field_overrides, html, css, signature_requests, send_email, signing_order, email_subject, email_message, cc, reply_to, notification_emails, notify_when_signed, reminders].hash
236
372
  end
237
373
 
238
374
  # Builds the object from hash
@@ -22,10 +22,10 @@ module DocSpring
22
22
  # 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.
23
23
  attr_accessor :description
24
24
 
25
- # `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.
25
+ # `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.
26
26
  attr_accessor :template_type
27
27
 
28
- # 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.
28
+ # 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.
29
29
  attr_accessor :output_format
30
30
 
31
31
  # 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.
@@ -52,7 +52,7 @@ module DocSpring
52
52
  # Generate PDFs whose text and check fields stay fillable ("Generate Editable PDFs"). A submission's `editable` overrides it.
53
53
  attr_accessor :editable_submissions
54
54
 
55
- # 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.
55
+ # 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. 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.
56
56
  attr_accessor :embed_domains
57
57
 
58
58
  # Allow the embedded template editor to change sensitive template settings (webhooks, redirect URL, encryption, public access, expiration and so on).
@@ -94,6 +94,27 @@ module DocSpring
94
94
  # Where the web form sends people after they submit it.
95
95
  attr_accessor :redirect_url
96
96
 
97
+ # 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.
98
+ attr_accessor :signature_request_email_attachments
99
+
100
+ # 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.
101
+ attr_accessor :signature_request_from_address
102
+
103
+ # 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.
104
+ attr_accessor :signature_request_include_signing_token
105
+
106
+ # 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.
107
+ attr_accessor :signature_request_from_name
108
+
109
+ # 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.
110
+ attr_accessor :signature_request_notification_emails
111
+
112
+ # 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.
113
+ attr_accessor :signature_request_reply_to
114
+
115
+ # 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.
116
+ attr_accessor :signature_request_signing_url
117
+
97
118
  # A Slack incoming webhook URL that is notified about the template's submissions. It's never returned; `has_slack_webhook_url` says if it's set.
98
119
  attr_accessor :slack_webhook_url
99
120
 
@@ -109,7 +130,7 @@ module DocSpring
109
130
  # 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.
110
131
  attr_accessor :predefined_fields_sample_data
111
132
 
112
- # The HTML of an HTML template, as a Liquid template. Null for PDF and Word templates.
133
+ # The HTML of an HTML template, as a Liquid template. Null for other templates.
113
134
  attr_accessor :html
114
135
 
115
136
  # The SCSS of an HTML template.
@@ -124,16 +145,19 @@ module DocSpring
124
145
  # Null resets the options to their defaults.
125
146
  attr_accessor :html_engine_options
126
147
 
127
- # 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.
148
+ # 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.
128
149
  attr_accessor :html_escape_data
129
150
 
151
+ # 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.
152
+ attr_accessor :layout
153
+
130
154
  # The template's document, a PDF or a Word document (.docx or .odt): the `fields.key` of a file you uploaded with the presigned upload (GET /uploads/presign). PDF and Word templates need one of `cache_id`, `document_url` and `document_base64`. To upload the file with the request, use POST /templates/upload.
131
155
  attr_accessor :cache_id
132
156
 
133
157
  # An https:// link to the template's document, instead of `cache_id`: a PDF template's PDF (up to 100 MB) or a Word template's Word document (.docx or .odt, up to 50 MB). DocSpring downloads it after responding, following redirects to other https:// links: the template's `document.state` is `downloading` until then, and `converting` while an .odt is converted (sync.api hosts wait for both). If it can't be downloaded, the state is `download_failed` and `document.error_message` says why.
134
158
  attr_accessor :document_url
135
159
 
136
- # The template's document (a PDF, or a Word template's Word document), encoded as base64 (a `data:` URI works too), instead of `cache_id`. Up to 7 MB before it's encoded: send a larger file with `cache_id` or `document_url`.
160
+ # The template's document (a PDF, or a Word template's Word document), encoded as base64 (a `data:` URI works too), instead of `cache_id`. Line breaks and spaces in it are ignored. Up to 7 MB before it's encoded: send a larger file with `cache_id` or `document_url`.
137
161
  attr_accessor :document_base64
138
162
 
139
163
  # The file's name, for a `cache_id` (presigned uploads don't send one) or `document_base64`. A `document_url`'s is the last part of its path unless you set it.
@@ -202,6 +226,13 @@ module DocSpring
202
226
  :'public_submissions' => :'public_submissions',
203
227
  :'public_web_form' => :'public_web_form',
204
228
  :'redirect_url' => :'redirect_url',
229
+ :'signature_request_email_attachments' => :'signature_request_email_attachments',
230
+ :'signature_request_from_address' => :'signature_request_from_address',
231
+ :'signature_request_include_signing_token' => :'signature_request_include_signing_token',
232
+ :'signature_request_from_name' => :'signature_request_from_name',
233
+ :'signature_request_notification_emails' => :'signature_request_notification_emails',
234
+ :'signature_request_reply_to' => :'signature_request_reply_to',
235
+ :'signature_request_signing_url' => :'signature_request_signing_url',
205
236
  :'slack_webhook_url' => :'slack_webhook_url',
206
237
  :'defaults' => :'defaults',
207
238
  :'field_dependencies' => :'field_dependencies',
@@ -213,6 +244,7 @@ module DocSpring
213
244
  :'footer_html' => :'footer_html',
214
245
  :'html_engine_options' => :'html_engine_options',
215
246
  :'html_escape_data' => :'html_escape_data',
247
+ :'layout' => :'layout',
216
248
  :'cache_id' => :'cache_id',
217
249
  :'document_url' => :'document_url',
218
250
  :'document_base64' => :'document_base64',
@@ -263,6 +295,13 @@ module DocSpring
263
295
  :'public_submissions' => :'Boolean',
264
296
  :'public_web_form' => :'Boolean',
265
297
  :'redirect_url' => :'String',
298
+ :'signature_request_email_attachments' => :'SignatureRequestEmailAttachments',
299
+ :'signature_request_from_address' => :'String',
300
+ :'signature_request_include_signing_token' => :'Boolean',
301
+ :'signature_request_from_name' => :'String',
302
+ :'signature_request_notification_emails' => :'Array<String>',
303
+ :'signature_request_reply_to' => :'String',
304
+ :'signature_request_signing_url' => :'String',
266
305
  :'slack_webhook_url' => :'String',
267
306
  :'defaults' => :'TemplateDefaultsInput',
268
307
  :'field_dependencies' => :'Array<TemplateFieldDependencyInput>',
@@ -274,6 +313,7 @@ module DocSpring
274
313
  :'footer_html' => :'String',
275
314
  :'html_engine_options' => :'HtmlEngineOptionsInput',
276
315
  :'html_escape_data' => :'Boolean',
316
+ :'layout' => :'Hash<String, Object>',
277
317
  :'cache_id' => :'String',
278
318
  :'document_url' => :'String',
279
319
  :'document_base64' => :'String',
@@ -292,6 +332,11 @@ module DocSpring
292
332
  :'parent_folder_id',
293
333
  :'encrypt_pdfs_password',
294
334
  :'redirect_url',
335
+ :'signature_request_email_attachments',
336
+ :'signature_request_from_address',
337
+ :'signature_request_from_name',
338
+ :'signature_request_reply_to',
339
+ :'signature_request_signing_url',
295
340
  :'slack_webhook_url',
296
341
  :'predefined_fields_sample_data',
297
342
  :'html',
@@ -299,6 +344,7 @@ module DocSpring
299
344
  :'header_html',
300
345
  :'footer_html',
301
346
  :'html_engine_options',
347
+ :'layout',
302
348
  ])
303
349
  end
304
350
 
@@ -436,6 +482,36 @@ module DocSpring
436
482
  self.redirect_url = attributes[:'redirect_url']
437
483
  end
438
484
 
485
+ if attributes.key?(:'signature_request_email_attachments')
486
+ self.signature_request_email_attachments = attributes[:'signature_request_email_attachments']
487
+ end
488
+
489
+ if attributes.key?(:'signature_request_from_address')
490
+ self.signature_request_from_address = attributes[:'signature_request_from_address']
491
+ end
492
+
493
+ if attributes.key?(:'signature_request_include_signing_token')
494
+ self.signature_request_include_signing_token = attributes[:'signature_request_include_signing_token']
495
+ end
496
+
497
+ if attributes.key?(:'signature_request_from_name')
498
+ self.signature_request_from_name = attributes[:'signature_request_from_name']
499
+ end
500
+
501
+ if attributes.key?(:'signature_request_notification_emails')
502
+ if (value = attributes[:'signature_request_notification_emails']).is_a?(Array)
503
+ self.signature_request_notification_emails = value
504
+ end
505
+ end
506
+
507
+ if attributes.key?(:'signature_request_reply_to')
508
+ self.signature_request_reply_to = attributes[:'signature_request_reply_to']
509
+ end
510
+
511
+ if attributes.key?(:'signature_request_signing_url')
512
+ self.signature_request_signing_url = attributes[:'signature_request_signing_url']
513
+ end
514
+
439
515
  if attributes.key?(:'slack_webhook_url')
440
516
  self.slack_webhook_url = attributes[:'slack_webhook_url']
441
517
  end
@@ -486,6 +562,12 @@ module DocSpring
486
562
  self.html_escape_data = attributes[:'html_escape_data']
487
563
  end
488
564
 
565
+ if attributes.key?(:'layout')
566
+ if (value = attributes[:'layout']).is_a?(Hash) || value.nil?
567
+ self.layout = value
568
+ end
569
+ end
570
+
489
571
  if attributes.key?(:'cache_id')
490
572
  self.cache_id = attributes[:'cache_id']
491
573
  end
@@ -549,6 +631,16 @@ module DocSpring
549
631
  @template_type = template_type
550
632
  end
551
633
 
634
+ # Custom attribute writer method with validation
635
+ # @param [Object] signature_request_notification_emails Value to be assigned
636
+ def signature_request_notification_emails=(signature_request_notification_emails)
637
+ if signature_request_notification_emails.nil?
638
+ fail ArgumentError, 'signature_request_notification_emails cannot be nil'
639
+ end
640
+
641
+ @signature_request_notification_emails = signature_request_notification_emails
642
+ end
643
+
552
644
  # Checks equality by comparing each attribute.
553
645
  # @param [Object] Object to be compared
554
646
  def ==(o)
@@ -580,6 +672,13 @@ module DocSpring
580
672
  public_submissions == o.public_submissions &&
581
673
  public_web_form == o.public_web_form &&
582
674
  redirect_url == o.redirect_url &&
675
+ signature_request_email_attachments == o.signature_request_email_attachments &&
676
+ signature_request_from_address == o.signature_request_from_address &&
677
+ signature_request_include_signing_token == o.signature_request_include_signing_token &&
678
+ signature_request_from_name == o.signature_request_from_name &&
679
+ signature_request_notification_emails == o.signature_request_notification_emails &&
680
+ signature_request_reply_to == o.signature_request_reply_to &&
681
+ signature_request_signing_url == o.signature_request_signing_url &&
583
682
  slack_webhook_url == o.slack_webhook_url &&
584
683
  defaults == o.defaults &&
585
684
  field_dependencies == o.field_dependencies &&
@@ -591,6 +690,7 @@ module DocSpring
591
690
  footer_html == o.footer_html &&
592
691
  html_engine_options == o.html_engine_options &&
593
692
  html_escape_data == o.html_escape_data &&
693
+ layout == o.layout &&
594
694
  cache_id == o.cache_id &&
595
695
  document_url == o.document_url &&
596
696
  document_base64 == o.document_base64 &&
@@ -610,7 +710,7 @@ module DocSpring
610
710
  # Calculates hash code according to all attributes.
611
711
  # @return [Integer] Hash code
612
712
  def hash
613
- [name, description, template_type, output_format, parent_folder_id, locked, 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, 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, slack_webhook_url, defaults, field_dependencies, predefined_fields, predefined_fields_sample_data, html, scss, header_html, footer_html, html_engine_options, html_escape_data, cache_id, document_url, document_base64, filename, detect_fields, field_source, field_naming, field_logic].hash
713
+ [name, description, template_type, output_format, parent_folder_id, locked, 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, 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, slack_webhook_url, defaults, field_dependencies, predefined_fields, predefined_fields_sample_data, html, scss, header_html, footer_html, html_engine_options, html_escape_data, layout, cache_id, document_url, document_base64, filename, detect_fields, field_source, field_naming, field_logic].hash
614
714
  end
615
715
 
616
716
  # Builds the object from hash
@@ -0,0 +1,42 @@
1
+ =begin
2
+ #DocSpring API
3
+
4
+ #Use DocSpring's API to fill PDF forms, generate PDFs and Word documents from HTML or Word templates, merge PDFs, and request legally binding e-signatures.
5
+
6
+ The version of the OpenAPI document: v2
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.26.0-DOCSPRING
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module DocSpring
17
+ class DnsRecordType
18
+ CNAME = "CNAME".freeze
19
+ MX = "MX".freeze
20
+ TXT = "TXT".freeze
21
+
22
+ def self.all_vars
23
+ @all_vars ||= [CNAME, MX, TXT].freeze
24
+ end
25
+
26
+ # Builds the enum from string
27
+ # @param [String] The enum value in the form of the string
28
+ # @return [String] The enum value
29
+ def self.build_from_hash(value)
30
+ new.build_from_hash(value)
31
+ end
32
+
33
+ # Builds the enum from string
34
+ # @param [String] The enum value in the form of the string
35
+ # @return [String] The enum value
36
+ def build_from_hash(value)
37
+ # Only responses are built from hashes, and a value added to the API after this client was released is kept as it
38
+ # is: the constants are the values this client knows
39
+ value
40
+ end
41
+ end
42
+ end