docspring 4.4.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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/.openapi-generator/FILES +6 -0
  3. data/AGENTS.md +2 -0
  4. data/CHANGELOG.md +15 -0
  5. data/Gemfile.lock +10 -10
  6. data/LICENSE +1 -1
  7. data/README.md +4 -1
  8. data/docs/Client.md +98 -96
  9. data/docs/CreateSubmissionRequest.md +3 -3
  10. data/docs/CreateTemplateRequest.md +11 -3
  11. data/docs/ErrorInfo.md +7 -3
  12. data/docs/HtmlEngineOptions.md +4 -4
  13. data/docs/HtmlEngineOptionsInput.md +4 -4
  14. data/docs/SubmissionInput.md +1 -1
  15. data/docs/Template.md +10 -2
  16. data/docs/TemplateFormSection.md +24 -0
  17. data/docs/TemplateFormSectionInput.md +24 -0
  18. data/docs/UpdateTemplateRequest.md +10 -2
  19. data/docs/ValidateSubmissionRequest.md +3 -3
  20. data/lib/docspring/api/client.rb +99 -96
  21. data/lib/docspring/api_client.rb +1 -1
  22. data/lib/docspring/models/create_submission_request.rb +3 -3
  23. data/lib/docspring/models/create_template_request.rb +48 -6
  24. data/lib/docspring/models/error_info.rb +26 -6
  25. data/lib/docspring/models/html_engine_options.rb +4 -4
  26. data/lib/docspring/models/html_engine_options_input.rb +4 -4
  27. data/lib/docspring/models/submission_input.rb +1 -1
  28. data/lib/docspring/models/template.rb +85 -3
  29. data/lib/docspring/models/template_form_section.rb +254 -0
  30. data/lib/docspring/models/template_form_section_input.rb +252 -0
  31. data/lib/docspring/models/update_template_request.rb +47 -3
  32. data/lib/docspring/models/validate_submission_request.rb +3 -3
  33. data/lib/docspring/request_schemas.json +84 -10
  34. data/lib/docspring/version.rb +1 -1
  35. data/lib/docspring.rb +2 -0
  36. data/spec/api/client_spec.rb +49 -48
  37. data/spec/models/create_template_request_spec.rb +24 -0
  38. data/spec/models/error_info_spec.rb +12 -0
  39. data/spec/models/template_form_section_input_spec.rb +54 -0
  40. data/spec/models/template_form_section_spec.rb +54 -0
  41. data/spec/models/template_spec.rb +24 -0
  42. data/spec/models/update_template_request_spec.rb +24 -0
  43. metadata +9 -1
@@ -34,7 +34,7 @@ module DocSpring
34
34
  # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
35
35
  def initialize(config = Configuration.default)
36
36
  @config = config
37
- @user_agent = "docspring-ruby-4.4.0"
37
+ @user_agent = "docspring-ruby-4.5.0"
38
38
  @default_headers = {
39
39
  'Content-Type' => 'application/json',
40
40
  'User-Agent' => @user_agent
@@ -22,7 +22,7 @@ module DocSpring
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 templates, Word templates and page designs, 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). Signatures come only from signature requests: a value for a signature or initials field makes the submission `invalid_data`, in test mode too. To print an image or a name you send, use an Image or Text field.
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`).
@@ -37,7 +37,7 @@ module DocSpring
37
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
- # 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`.
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. A `default` for a signature or initials field makes the submission `invalid_data`. With `signature_requests`, `editable: true` is a 422.
41
41
  attr_accessor :field_overrides
42
42
 
43
43
  # For an HTML template, HTML to use instead of the template's.
@@ -46,7 +46,7 @@ module DocSpring
46
46
  # For an HTML template, SCSS (plain CSS works too) added after the template's styles, on the page and in its header and footer. It doesn't replace them: its rules come later, so they win over the template's rules of the same specificity.
47
47
  attr_accessor :css
48
48
 
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`.
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.
50
50
  attr_accessor :signature_requests
51
51
 
52
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.
@@ -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), 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.
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. 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.
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).
@@ -91,7 +91,7 @@ module DocSpring
91
91
  # Allow anyone to fill in the template's web form.
92
92
  attr_accessor :public_web_form
93
93
 
94
- # Where the web form sends people after they submit it.
94
+ # 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.
95
95
  attr_accessor :redirect_url
96
96
 
97
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.
@@ -115,6 +115,15 @@ module DocSpring
115
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
116
  attr_accessor :signature_request_signing_url
117
117
 
118
+ # 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 }}`.
119
+ attr_accessor :success_title
120
+
121
+ # 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 }}`.
122
+ attr_accessor :success_message
123
+
124
+ # Whether the web form's success screen has a "Fill out again" button, which clears the form so someone can fill it in again.
125
+ attr_accessor :show_fill_again_button
126
+
118
127
  # 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.
119
128
  attr_accessor :slack_webhook_url
120
129
 
@@ -175,6 +184,9 @@ module DocSpring
175
184
  # With `detect_fields`, whether AI reads the whole form once the fields are named and sets up conditional logic and required fields (`ai`) or not (`none`). Default: your account's template settings.
176
185
  attr_accessor :field_logic
177
186
 
187
+ # With `detect_fields`, whether AI field setup keeps the fields that only the office receiving the form fills in, such as a "For office use only" box (`true`), or leaves them out (`false`). Default: your account's template settings.
188
+ attr_accessor :include_office_use_fields
189
+
178
190
  class EnumAttributeValidator
179
191
  attr_reader :datatype
180
192
  attr_reader :allowable_values
@@ -233,6 +245,9 @@ module DocSpring
233
245
  :'signature_request_notification_emails' => :'signature_request_notification_emails',
234
246
  :'signature_request_reply_to' => :'signature_request_reply_to',
235
247
  :'signature_request_signing_url' => :'signature_request_signing_url',
248
+ :'success_title' => :'success_title',
249
+ :'success_message' => :'success_message',
250
+ :'show_fill_again_button' => :'show_fill_again_button',
236
251
  :'slack_webhook_url' => :'slack_webhook_url',
237
252
  :'defaults' => :'defaults',
238
253
  :'field_dependencies' => :'field_dependencies',
@@ -252,7 +267,8 @@ module DocSpring
252
267
  :'detect_fields' => :'detect_fields',
253
268
  :'field_source' => :'field_source',
254
269
  :'field_naming' => :'field_naming',
255
- :'field_logic' => :'field_logic'
270
+ :'field_logic' => :'field_logic',
271
+ :'include_office_use_fields' => :'include_office_use_fields'
256
272
  }
257
273
  end
258
274
 
@@ -302,6 +318,9 @@ module DocSpring
302
318
  :'signature_request_notification_emails' => :'Array<String>',
303
319
  :'signature_request_reply_to' => :'String',
304
320
  :'signature_request_signing_url' => :'String',
321
+ :'success_title' => :'String',
322
+ :'success_message' => :'String',
323
+ :'show_fill_again_button' => :'Boolean',
305
324
  :'slack_webhook_url' => :'String',
306
325
  :'defaults' => :'TemplateDefaultsInput',
307
326
  :'field_dependencies' => :'Array<TemplateFieldDependencyInput>',
@@ -321,7 +340,8 @@ module DocSpring
321
340
  :'detect_fields' => :'Boolean',
322
341
  :'field_source' => :'FieldSetupSource',
323
342
  :'field_naming' => :'FieldSetupNaming',
324
- :'field_logic' => :'FieldSetupLogic'
343
+ :'field_logic' => :'FieldSetupLogic',
344
+ :'include_office_use_fields' => :'Boolean'
325
345
  }
326
346
  end
327
347
 
@@ -337,6 +357,8 @@ module DocSpring
337
357
  :'signature_request_from_name',
338
358
  :'signature_request_reply_to',
339
359
  :'signature_request_signing_url',
360
+ :'success_title',
361
+ :'success_message',
340
362
  :'slack_webhook_url',
341
363
  :'predefined_fields_sample_data',
342
364
  :'html',
@@ -512,6 +534,18 @@ module DocSpring
512
534
  self.signature_request_signing_url = attributes[:'signature_request_signing_url']
513
535
  end
514
536
 
537
+ if attributes.key?(:'success_title')
538
+ self.success_title = attributes[:'success_title']
539
+ end
540
+
541
+ if attributes.key?(:'success_message')
542
+ self.success_message = attributes[:'success_message']
543
+ end
544
+
545
+ if attributes.key?(:'show_fill_again_button')
546
+ self.show_fill_again_button = attributes[:'show_fill_again_button']
547
+ end
548
+
515
549
  if attributes.key?(:'slack_webhook_url')
516
550
  self.slack_webhook_url = attributes[:'slack_webhook_url']
517
551
  end
@@ -599,6 +633,10 @@ module DocSpring
599
633
  if attributes.key?(:'field_logic')
600
634
  self.field_logic = attributes[:'field_logic']
601
635
  end
636
+
637
+ if attributes.key?(:'include_office_use_fields')
638
+ self.include_office_use_fields = attributes[:'include_office_use_fields']
639
+ end
602
640
  end
603
641
 
604
642
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -679,6 +717,9 @@ module DocSpring
679
717
  signature_request_notification_emails == o.signature_request_notification_emails &&
680
718
  signature_request_reply_to == o.signature_request_reply_to &&
681
719
  signature_request_signing_url == o.signature_request_signing_url &&
720
+ success_title == o.success_title &&
721
+ success_message == o.success_message &&
722
+ show_fill_again_button == o.show_fill_again_button &&
682
723
  slack_webhook_url == o.slack_webhook_url &&
683
724
  defaults == o.defaults &&
684
725
  field_dependencies == o.field_dependencies &&
@@ -698,7 +739,8 @@ module DocSpring
698
739
  detect_fields == o.detect_fields &&
699
740
  field_source == o.field_source &&
700
741
  field_naming == o.field_naming &&
701
- field_logic == o.field_logic
742
+ field_logic == o.field_logic &&
743
+ include_office_use_fields == o.include_office_use_fields
702
744
  end
703
745
 
704
746
  # @see the `==` method
@@ -710,7 +752,7 @@ module DocSpring
710
752
  # Calculates hash code according to all attributes.
711
753
  # @return [Integer] Hash code
712
754
  def 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
755
+ [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, success_title, success_message, show_fill_again_button, 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, include_office_use_fields].hash
714
756
  end
715
757
 
716
758
  # Builds the object from hash
@@ -16,7 +16,7 @@ require 'time'
16
16
  module DocSpring
17
17
  # What went wrong.
18
18
  class ErrorInfo < ApiModelBase
19
- # A machine-readable error code. Clients should handle codes they don't know: new codes can be added. `invalid_data`: a submission's data doesn't match its template's fields. The submission is still recorded. `insufficient_credits` (402): your credit balance can't cover a live PDF. The record was saved and waits for credits in the `insufficient_credits` state: its ID is in `submission_id`, `submission_batch_id` or `combined_pdf_id`. `insufficient_credits_to_send` (402): your credit balance can't cover a live signature request that DocSpring would email, so nothing was saved. Add credits and send the request again. `upgrade_required` (403): your plan doesn't include this, such as more templates, another active integration (webhooks count), the embedded template editor, email actions, or live signature requests before your account's first payment. `account_suspended` (403): the account is suspended, so it can't create submissions. `polling_timeout`: on a sync.api host, the files weren't ready in time. The record was created and is still being processed: its ID is in `submission_id`, `submission_batch_id`, `combined_pdf_id` or `template_id`. Without one of these IDs, the request itself got no answer in time, and the record may or may not have been created. `idempotency_key_in_use` (409): the first request with the same Idempotency-Key is still being processed, and the response has a `Retry-After` header: send the request again then. Without the header, the first request was processed but its response is no longer kept. When the first request created a record, its ID is in `submission_id`, `submission_batch_id`, `combined_pdf_id`, `template_id`, `folder_id`, `custom_file_id` or `webhook_id`. `idempotency_key_reused` (422): the Idempotency-Key was already used for a different request. `rate_limited` (429): too many API requests. Wait for the `Retry-After` header's seconds. `daily_email_limit_reached` (429): a submission that DocSpring would email would take your account over its daily email limit, so nothing was saved. Send it again after the `Retry-After` header's seconds (midnight UTC), or send the signing links yourself (`send_email: false`).
19
+ # A machine-readable error code. Clients should handle codes they don't know: new codes can be added. `invalid_data`: a submission's data doesn't match its template's fields. The submission is still recorded. `insufficient_credits` (402): your credit balance can't cover a live PDF. The record was saved and waits for credits in the `insufficient_credits` state: its ID is in `submission_id`, `submission_batch_id` or `combined_pdf_id`. `insufficient_credits_to_send` (402): your credit balance can't cover a live signature request that DocSpring would email, so nothing was saved. Add credits and send the request again. `upgrade_required` (403): your plan doesn't include this, such as more templates, another active integration (webhooks count), the embedded template editor, email actions, or live signature requests before your account's first payment. `account_suspended` (403): the account is suspended, so it can't create submissions. `polling_timeout`: on a sync.api host, the files weren't ready in time. The record was created and is still being processed: its ID is in `submission_id`, `submission_batch_id`, `combined_pdf_id` or `template_id`. Without one of these IDs, the request itself got no answer in time, and the record may or may not have been created. `idempotency_key_in_use` (409): the first request with the same Idempotency-Key is still being processed, and the response has a `Retry-After` header: send the request again then. Without the header, the first request was processed but its response is no longer kept, or it failed after creating or changing a record, and the message says which. When the first request created a record, or changed a template's fields or published a version of it, the message names it, and its ID is in `submission_id`, `submission_batch_id`, `combined_pdf_id`, `template_id`, `folder_id`, `custom_file_id`, `webhook_id`, `email_action_id` or `email_domain_id` (a signature request's events and tokens have no member). `idempotency_key_reused` (422): the Idempotency-Key was already used for a different request. `rate_limited` (429): too many API requests. Wait for the `Retry-After` header's seconds. `daily_email_limit_reached` (429): a submission that DocSpring would email would take your account over its daily email limit, so nothing was saved. Send it again after the `Retry-After` header's seconds (midnight UTC), or send the signing links yourself (`send_email: false`).
20
20
  attr_accessor :code
21
21
 
22
22
  # A human-readable explanation, safe to show to developers.
@@ -37,7 +37,7 @@ module DocSpring
37
37
  # With `insufficient_credits`, the combined PDF that waits for credits. With `polling_timeout`, the combined PDF that's still being processed. With `idempotency_key_in_use`, the combined PDF the first request with the key created.
38
38
  attr_accessor :combined_pdf_id
39
39
 
40
- # With `polling_timeout`, the template whose PDF is still being processed. With `idempotency_key_in_use`, the template the first request with the key created.
40
+ # With `polling_timeout`, the template whose PDF is still being processed. With `idempotency_key_in_use`, the template the first request with the key created, or whose fields it changed or whose version it published.
41
41
  attr_accessor :template_id
42
42
 
43
43
  # With `idempotency_key_in_use`, the folder the first request with the key created.
@@ -49,6 +49,12 @@ module DocSpring
49
49
  # With `idempotency_key_in_use`, the webhook the first request with the key created.
50
50
  attr_accessor :webhook_id
51
51
 
52
+ # With `idempotency_key_in_use`, the email action the first request with the key created.
53
+ attr_accessor :email_action_id
54
+
55
+ # With `idempotency_key_in_use`, the email domain the first request with the key created.
56
+ attr_accessor :email_domain_id
57
+
52
58
  class EnumAttributeValidator
53
59
  attr_reader :datatype
54
60
  attr_reader :allowable_values
@@ -84,7 +90,9 @@ module DocSpring
84
90
  :'template_id' => :'template_id',
85
91
  :'folder_id' => :'folder_id',
86
92
  :'custom_file_id' => :'custom_file_id',
87
- :'webhook_id' => :'webhook_id'
93
+ :'webhook_id' => :'webhook_id',
94
+ :'email_action_id' => :'email_action_id',
95
+ :'email_domain_id' => :'email_domain_id'
88
96
  }
89
97
  end
90
98
 
@@ -111,7 +119,9 @@ module DocSpring
111
119
  :'template_id' => :'String',
112
120
  :'folder_id' => :'String',
113
121
  :'custom_file_id' => :'String',
114
- :'webhook_id' => :'String'
122
+ :'webhook_id' => :'String',
123
+ :'email_action_id' => :'String',
124
+ :'email_domain_id' => :'String'
115
125
  }
116
126
  end
117
127
 
@@ -201,6 +211,14 @@ module DocSpring
201
211
  if attributes.key?(:'webhook_id')
202
212
  self.webhook_id = attributes[:'webhook_id']
203
213
  end
214
+
215
+ if attributes.key?(:'email_action_id')
216
+ self.email_action_id = attributes[:'email_action_id']
217
+ end
218
+
219
+ if attributes.key?(:'email_domain_id')
220
+ self.email_domain_id = attributes[:'email_domain_id']
221
+ end
204
222
  end
205
223
 
206
224
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -278,7 +296,9 @@ module DocSpring
278
296
  template_id == o.template_id &&
279
297
  folder_id == o.folder_id &&
280
298
  custom_file_id == o.custom_file_id &&
281
- webhook_id == o.webhook_id
299
+ webhook_id == o.webhook_id &&
300
+ email_action_id == o.email_action_id &&
301
+ email_domain_id == o.email_domain_id
282
302
  end
283
303
 
284
304
  # @see the `==` method
@@ -290,7 +310,7 @@ module DocSpring
290
310
  # Calculates hash code according to all attributes.
291
311
  # @return [Integer] Hash code
292
312
  def hash
293
- [code, message, details, request_id, submission_id, submission_batch_id, combined_pdf_id, template_id, folder_id, custom_file_id, webhook_id].hash
313
+ [code, message, details, request_id, submission_id, submission_batch_id, combined_pdf_id, template_id, folder_id, custom_file_id, webhook_id, email_action_id, email_domain_id].hash
294
314
  end
295
315
 
296
316
  # Builds the object from hash
@@ -19,10 +19,10 @@ module DocSpring
19
19
  # The paper size. `Custom` uses `width` and `height`.
20
20
  attr_accessor :format
21
21
 
22
- # The page width for the `Custom` format, with a unit (`8.5in`, `210mm`).
22
+ # The page width for the `Custom` format, with a unit (`8.5in`, `210mm`), from 0.05in to 200in.
23
23
  attr_accessor :width
24
24
 
25
- # The page height for the `Custom` format, with a unit.
25
+ # The page height for the `Custom` format, with a unit, from 0.05in to 200in.
26
26
  attr_accessor :height
27
27
 
28
28
  # How much to scale the page, from 0.1 to 2, such as `0.8`. `1` prints it at its normal size.
@@ -34,13 +34,13 @@ module DocSpring
34
34
  # Print background colors and images.
35
35
  attr_accessor :print_background
36
36
 
37
- # The top margin, with a unit, such as `1in` or `20mm`.
37
+ # The top margin, with a unit, such as `1in` or `20mm`. The top and bottom margins together must be less than the page's height.
38
38
  attr_accessor :margin_top
39
39
 
40
40
  # The bottom margin, with a unit.
41
41
  attr_accessor :margin_bottom
42
42
 
43
- # The left margin, with a unit.
43
+ # The left margin, with a unit. The left and right margins together must be less than the page's width.
44
44
  attr_accessor :margin_left
45
45
 
46
46
  # The right margin, with a unit.
@@ -19,10 +19,10 @@ module DocSpring
19
19
  # The paper size. `Custom` uses `width` and `height`.
20
20
  attr_accessor :format
21
21
 
22
- # The page width for the `Custom` format, with a unit (`8.5in`, `210mm`).
22
+ # The page width for the `Custom` format, with a unit (`8.5in`, `210mm`), from 0.05in to 200in.
23
23
  attr_accessor :width
24
24
 
25
- # The page height for the `Custom` format, with a unit.
25
+ # The page height for the `Custom` format, with a unit, from 0.05in to 200in.
26
26
  attr_accessor :height
27
27
 
28
28
  # How much to scale the page, from 0.1 to 2, such as `0.8`. `1` prints it at its normal size.
@@ -34,13 +34,13 @@ module DocSpring
34
34
  # Print background colors and images.
35
35
  attr_accessor :print_background
36
36
 
37
- # The top margin, with a unit, such as `1in` or `20mm`.
37
+ # The top margin, with a unit, such as `1in` or `20mm`. The top and bottom margins together must be less than the page's height.
38
38
  attr_accessor :margin_top
39
39
 
40
40
  # The bottom margin, with a unit.
41
41
  attr_accessor :margin_bottom
42
42
 
43
- # The left margin, with a unit.
43
+ # The left margin, with a unit. The left and right margins together must be less than the page's width.
44
44
  attr_accessor :margin_left
45
45
 
46
46
  # The right margin, with a unit.
@@ -37,7 +37,7 @@ module DocSpring
37
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
- # 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`.
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. A `default` for a signature or initials field makes the submission `invalid_data`. With `signature_requests`, `editable: true` is a 422.
41
41
  attr_accessor :field_overrides
42
42
 
43
43
  # For an HTML template, HTML to use instead of the template's.
@@ -82,7 +82,7 @@ module DocSpring
82
82
  # Generate PDFs whose text and check fields stay fillable ("Generate Editable PDFs"). A submission's `editable` overrides it.
83
83
  attr_accessor :editable_submissions
84
84
 
85
- # 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.
85
+ # 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.
86
86
  attr_accessor :embed_domains
87
87
 
88
88
  # Allow the embedded template editor to change sensitive template settings (webhooks, redirect URL, encryption, public access, expiration and so on).
@@ -121,7 +121,7 @@ module DocSpring
121
121
  # Allow anyone to fill in the template's web form.
122
122
  attr_accessor :public_web_form
123
123
 
124
- # Where the web form sends people after they submit it.
124
+ # 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.
125
125
  attr_accessor :redirect_url
126
126
 
127
127
  # 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.
@@ -145,6 +145,15 @@ module DocSpring
145
145
  # 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.
146
146
  attr_accessor :signature_request_signing_url
147
147
 
148
+ # 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 }}`.
149
+ attr_accessor :success_title
150
+
151
+ # 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 }}`.
152
+ attr_accessor :success_message
153
+
154
+ # Whether the web form's success screen has a "Fill out again" button, which clears the form so someone can fill it in again.
155
+ attr_accessor :show_fill_again_button
156
+
148
157
  # Whether `slack_webhook_url` is set.
149
158
  attr_accessor :has_slack_webhook_url
150
159
 
@@ -159,6 +168,9 @@ module DocSpring
159
168
  # 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/~`.
160
169
  attr_accessor :field_groups
161
170
 
171
+ # 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.
172
+ attr_accessor :form_sections
173
+
162
174
  # 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.
163
175
  attr_accessor :predefined_fields
164
176
 
@@ -260,11 +272,15 @@ module DocSpring
260
272
  :'signature_request_notification_emails' => :'signature_request_notification_emails',
261
273
  :'signature_request_reply_to' => :'signature_request_reply_to',
262
274
  :'signature_request_signing_url' => :'signature_request_signing_url',
275
+ :'success_title' => :'success_title',
276
+ :'success_message' => :'success_message',
277
+ :'show_fill_again_button' => :'show_fill_again_button',
263
278
  :'has_slack_webhook_url' => :'has_slack_webhook_url',
264
279
  :'last_changed_by' => :'last_changed_by',
265
280
  :'defaults' => :'defaults',
266
281
  :'field_dependencies' => :'field_dependencies',
267
282
  :'field_groups' => :'field_groups',
283
+ :'form_sections' => :'form_sections',
268
284
  :'predefined_fields' => :'predefined_fields',
269
285
  :'predefined_fields_sample_data' => :'predefined_fields_sample_data',
270
286
  :'html' => :'html',
@@ -335,11 +351,15 @@ module DocSpring
335
351
  :'signature_request_notification_emails' => :'Array<String>',
336
352
  :'signature_request_reply_to' => :'String',
337
353
  :'signature_request_signing_url' => :'String',
354
+ :'success_title' => :'String',
355
+ :'success_message' => :'String',
356
+ :'show_fill_again_button' => :'Boolean',
338
357
  :'has_slack_webhook_url' => :'Boolean',
339
358
  :'last_changed_by' => :'TemplateActor',
340
359
  :'defaults' => :'TemplateDefaults',
341
360
  :'field_dependencies' => :'Array<TemplateFieldDependency>',
342
361
  :'field_groups' => :'Array<FieldGroup>',
362
+ :'form_sections' => :'Array<TemplateFormSection>',
343
363
  :'predefined_fields' => :'Array<PredefinedField>',
344
364
  :'predefined_fields_sample_data' => :'Hash<String, Object>',
345
365
  :'html' => :'String',
@@ -372,6 +392,8 @@ module DocSpring
372
392
  :'signature_request_from_name',
373
393
  :'signature_request_reply_to',
374
394
  :'signature_request_signing_url',
395
+ :'success_title',
396
+ :'success_message',
375
397
  :'last_changed_by',
376
398
  :'predefined_fields_sample_data',
377
399
  :'html',
@@ -673,6 +695,24 @@ module DocSpring
673
695
  self.signature_request_signing_url = nil
674
696
  end
675
697
 
698
+ if attributes.key?(:'success_title')
699
+ self.success_title = attributes[:'success_title']
700
+ else
701
+ self.success_title = nil
702
+ end
703
+
704
+ if attributes.key?(:'success_message')
705
+ self.success_message = attributes[:'success_message']
706
+ else
707
+ self.success_message = nil
708
+ end
709
+
710
+ if attributes.key?(:'show_fill_again_button')
711
+ self.show_fill_again_button = attributes[:'show_fill_again_button']
712
+ else
713
+ self.show_fill_again_button = nil
714
+ end
715
+
676
716
  if attributes.key?(:'has_slack_webhook_url')
677
717
  self.has_slack_webhook_url = attributes[:'has_slack_webhook_url']
678
718
  else
@@ -707,6 +747,14 @@ module DocSpring
707
747
  self.field_groups = nil
708
748
  end
709
749
 
750
+ if attributes.key?(:'form_sections')
751
+ if (value = attributes[:'form_sections']).is_a?(Array)
752
+ self.form_sections = value
753
+ end
754
+ else
755
+ self.form_sections = nil
756
+ end
757
+
710
758
  if attributes.key?(:'predefined_fields')
711
759
  if (value = attributes[:'predefined_fields']).is_a?(Array)
712
760
  self.predefined_fields = value
@@ -899,6 +947,10 @@ module DocSpring
899
947
  invalid_properties.push('invalid value for "signature_request_notification_emails", signature_request_notification_emails cannot be nil.')
900
948
  end
901
949
 
950
+ if @show_fill_again_button.nil?
951
+ invalid_properties.push('invalid value for "show_fill_again_button", show_fill_again_button cannot be nil.')
952
+ end
953
+
902
954
  if @has_slack_webhook_url.nil?
903
955
  invalid_properties.push('invalid value for "has_slack_webhook_url", has_slack_webhook_url cannot be nil.')
904
956
  end
@@ -915,6 +967,10 @@ module DocSpring
915
967
  invalid_properties.push('invalid value for "field_groups", field_groups cannot be nil.')
916
968
  end
917
969
 
970
+ if @form_sections.nil?
971
+ invalid_properties.push('invalid value for "form_sections", form_sections cannot be nil.')
972
+ end
973
+
918
974
  if @predefined_fields.nil?
919
975
  invalid_properties.push('invalid value for "predefined_fields", predefined_fields cannot be nil.')
920
976
  end
@@ -958,10 +1014,12 @@ module DocSpring
958
1014
  return false if @public_web_form.nil?
959
1015
  return false if @signature_request_include_signing_token.nil?
960
1016
  return false if @signature_request_notification_emails.nil?
1017
+ return false if @show_fill_again_button.nil?
961
1018
  return false if @has_slack_webhook_url.nil?
962
1019
  return false if @defaults.nil?
963
1020
  return false if @field_dependencies.nil?
964
1021
  return false if @field_groups.nil?
1022
+ return false if @form_sections.nil?
965
1023
  return false if @predefined_fields.nil?
966
1024
  return false if @versions.nil?
967
1025
  true
@@ -1247,6 +1305,16 @@ module DocSpring
1247
1305
  @signature_request_notification_emails = signature_request_notification_emails
1248
1306
  end
1249
1307
 
1308
+ # Custom attribute writer method with validation
1309
+ # @param [Object] show_fill_again_button Value to be assigned
1310
+ def show_fill_again_button=(show_fill_again_button)
1311
+ if show_fill_again_button.nil?
1312
+ fail ArgumentError, 'show_fill_again_button cannot be nil'
1313
+ end
1314
+
1315
+ @show_fill_again_button = show_fill_again_button
1316
+ end
1317
+
1250
1318
  # Custom attribute writer method with validation
1251
1319
  # @param [Object] has_slack_webhook_url Value to be assigned
1252
1320
  def has_slack_webhook_url=(has_slack_webhook_url)
@@ -1287,6 +1355,16 @@ module DocSpring
1287
1355
  @field_groups = field_groups
1288
1356
  end
1289
1357
 
1358
+ # Custom attribute writer method with validation
1359
+ # @param [Object] form_sections Value to be assigned
1360
+ def form_sections=(form_sections)
1361
+ if form_sections.nil?
1362
+ fail ArgumentError, 'form_sections cannot be nil'
1363
+ end
1364
+
1365
+ @form_sections = form_sections
1366
+ end
1367
+
1290
1368
  # Custom attribute writer method with validation
1291
1369
  # @param [Object] predefined_fields Value to be assigned
1292
1370
  def predefined_fields=(predefined_fields)
@@ -1355,11 +1433,15 @@ module DocSpring
1355
1433
  signature_request_notification_emails == o.signature_request_notification_emails &&
1356
1434
  signature_request_reply_to == o.signature_request_reply_to &&
1357
1435
  signature_request_signing_url == o.signature_request_signing_url &&
1436
+ success_title == o.success_title &&
1437
+ success_message == o.success_message &&
1438
+ show_fill_again_button == o.show_fill_again_button &&
1358
1439
  has_slack_webhook_url == o.has_slack_webhook_url &&
1359
1440
  last_changed_by == o.last_changed_by &&
1360
1441
  defaults == o.defaults &&
1361
1442
  field_dependencies == o.field_dependencies &&
1362
1443
  field_groups == o.field_groups &&
1444
+ form_sections == o.form_sections &&
1363
1445
  predefined_fields == o.predefined_fields &&
1364
1446
  predefined_fields_sample_data == o.predefined_fields_sample_data &&
1365
1447
  html == o.html &&
@@ -1382,7 +1464,7 @@ module DocSpring
1382
1464
  # Calculates hash code according to all attributes.
1383
1465
  # @return [Integer] Hash code
1384
1466
  def hash
1385
- [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, 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, layout, embed_edit_token, versions].hash
1467
+ [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].hash
1386
1468
  end
1387
1469
 
1388
1470
  # Builds the object from hash