docspring 4.1.0 → 4.2.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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/.openapi-generator/FILES +15 -0
  3. data/.travis.yml +1 -1
  4. data/AGENTS.md +3 -2
  5. data/CHANGELOG.md +40 -0
  6. data/Gemfile.lock +9 -9
  7. data/README.md +5 -1
  8. data/docs/Client.md +176 -10
  9. data/docs/CombinedPdf.md +1 -1
  10. data/docs/CreateCombinedPdfRequest.md +1 -1
  11. data/docs/CreateSubmissionRequest.md +2 -2
  12. data/docs/CreateTemplatePreviewRequest.md +18 -0
  13. data/docs/CreateTemplateRequest.md +3 -1
  14. data/docs/ErrorDetail.md +1 -1
  15. data/docs/ErrorInfo.md +4 -4
  16. data/docs/Submission.md +15 -15
  17. data/docs/SubmissionInput.md +2 -2
  18. data/docs/SubmissionList.md +1 -1
  19. data/docs/SubmissionSummary.md +54 -0
  20. data/docs/Template.md +12 -10
  21. data/docs/TemplateActor.md +1 -1
  22. data/docs/TemplateDocument.md +5 -5
  23. data/docs/TemplateDocumentSummary.md +24 -0
  24. data/docs/TemplatePreview.md +32 -0
  25. data/docs/TemplatePreviewState.md +15 -0
  26. data/docs/TemplateSummary.md +2 -48
  27. data/docs/UpdateTemplateRequest.md +4 -2
  28. data/docs/ValidateSubmissionRequest.md +2 -2
  29. data/lib/docspring/api/client.rb +178 -8
  30. data/lib/docspring/api_client.rb +4 -2
  31. data/lib/docspring/date_time_values.rb +33 -0
  32. data/lib/docspring/models/combined_pdf.rb +1 -1
  33. data/lib/docspring/models/create_combined_pdf_request.rb +1 -1
  34. data/lib/docspring/models/create_submission_request.rb +2 -2
  35. data/lib/docspring/models/create_template_preview_request.rb +187 -0
  36. data/lib/docspring/models/create_template_request.rb +12 -2
  37. data/lib/docspring/models/error_code.rb +3 -1
  38. data/lib/docspring/models/error_detail.rb +1 -1
  39. data/lib/docspring/models/error_info.rb +4 -4
  40. data/lib/docspring/models/submission.rb +140 -140
  41. data/lib/docspring/models/submission_input.rb +2 -2
  42. data/lib/docspring/models/submission_list.rb +1 -1
  43. data/lib/docspring/models/submission_summary.rb +601 -0
  44. data/lib/docspring/models/template.rb +96 -83
  45. data/lib/docspring/models/template_actor.rb +1 -1
  46. data/lib/docspring/models/template_document.rb +42 -42
  47. data/lib/docspring/models/template_document_summary.rb +260 -0
  48. data/lib/docspring/models/template_preview.rb +356 -0
  49. data/lib/docspring/models/template_preview_state.rb +42 -0
  50. data/lib/docspring/models/template_summary.rb +5 -572
  51. data/lib/docspring/models/update_template_request.rb +16 -6
  52. data/lib/docspring/models/validate_submission_request.rb +2 -2
  53. data/lib/docspring/request_schemas.json +105 -8
  54. data/lib/docspring/version.rb +1 -1
  55. data/lib/docspring/webhook_signature.rb +45 -0
  56. data/lib/docspring.rb +6 -0
  57. data/spec/api/client_spec.rb +39 -4
  58. data/spec/models/create_template_preview_request_spec.rb +36 -0
  59. data/spec/models/create_template_request_spec.rb +6 -0
  60. data/spec/models/submission_spec.rb +12 -12
  61. data/spec/models/submission_summary_spec.rb +144 -0
  62. data/spec/models/template_document_spec.rb +5 -5
  63. data/spec/models/template_document_summary_spec.rb +54 -0
  64. data/spec/models/template_preview_spec.rb +78 -0
  65. data/spec/models/template_preview_state_spec.rb +30 -0
  66. data/spec/models/template_spec.rb +28 -22
  67. data/spec/models/template_summary_spec.rb +0 -138
  68. data/spec/models/update_template_request_spec.rb +6 -0
  69. metadata +23 -1
@@ -43,7 +43,7 @@ module DocSpring
43
43
  # `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`.
44
44
  attr_accessor :editable
45
45
 
46
- # The submission's data, with the values entered in completed signature requests. Lists leave it out (null) unless you pass `include_data=true`. Empty once the submission has expired.
46
+ # The submission's data, with the values entered in completed signature requests. Empty once the submission has expired. Null in a batch's submissions unless you pass `include_data=true`, and in the events of a webhook that leaves out submission data.
47
47
  attr_accessor :data
48
48
 
49
49
  # Why the data doesn't match the template's fields, when `state` is `invalid_data`: the same details as the 422 response that recorded it, with pointers into the request that created the submission (`/data/name`). Cleared once the submission has expired.
@@ -52,30 +52,12 @@ module DocSpring
52
52
  # Why the PDF couldn't be generated, when `state` is `error`.
53
53
  attr_accessor :error_message
54
54
 
55
- # Your own data about the submission, such as an ID from your app. It isn't printed on the PDF.
55
+ # 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`).
56
56
  attr_accessor :metadata
57
57
 
58
- # Whether the PDF needs a password to open (`password`).
59
- attr_accessor :has_password
60
-
61
- # The people asked to sign the submission (and fill in their fields), in order.
62
- attr_accessor :signature_requests
63
-
64
- # The uploads of the submission's PDF to your storage (account integrations).
65
- attr_accessor :actions
66
-
67
- # The text of each field that didn't fit in it, by field name. Left out (null) with `data`, and empty once the submission has expired.
68
- attr_accessor :truncated_text
69
-
70
- # What the submission makes: `pdf`, and `png` (an image of each page of the PDF, up to 100 pages) when you ask for it. Default `["pdf"]`. POST /submissions/{submission_id}/generate_files adds `png` to a processed submission.
71
- attr_accessor :output_formats
72
-
73
58
  # The generated files: `pdf` once the submission has been processed, `png` (the images of the PDF's pages, when `output_formats` has it: `files.png.pages[0]` is page 1), `audit_trail` once its signature requests are completed, and `preview` once a preview PDF has been generated. Empty once the submission has expired.
74
59
  attr_accessor :files
75
60
 
76
- # When the preview PDF was generated. Null if there is no preview.
77
- attr_accessor :preview_generated_at
78
-
79
61
  # An expired submission's data, metadata, password and PDF have been deleted.
80
62
  attr_accessor :expired
81
63
 
@@ -91,6 +73,24 @@ module DocSpring
91
73
  # When the submission was last updated.
92
74
  attr_accessor :updated_at
93
75
 
76
+ # Whether the PDF needs a password to open (`password`).
77
+ attr_accessor :has_password
78
+
79
+ # The people asked to sign the submission (and fill in their fields), in order.
80
+ attr_accessor :signature_requests
81
+
82
+ # The uploads of the submission's PDF to your storage (account integrations).
83
+ attr_accessor :actions
84
+
85
+ # The text of each field that didn't fit in it, by field name. Left out (null) with `data`, and empty once the submission has expired.
86
+ attr_accessor :truncated_text
87
+
88
+ # What the submission makes: `pdf`, and `png` (an image of each page of the PDF, up to 100 pages) when you ask for it. Default `["pdf"]`. POST /submissions/{submission_id}/generate_files adds `png` to a processed submission.
89
+ attr_accessor :output_formats
90
+
91
+ # When the preview PDF was generated. Null if there is no preview.
92
+ attr_accessor :preview_generated_at
93
+
94
94
  class EnumAttributeValidator
95
95
  attr_reader :datatype
96
96
  attr_reader :allowable_values
@@ -129,18 +129,18 @@ module DocSpring
129
129
  :'data_errors' => :'data_errors',
130
130
  :'error_message' => :'error_message',
131
131
  :'metadata' => :'metadata',
132
- :'has_password' => :'has_password',
133
- :'signature_requests' => :'signature_requests',
134
- :'actions' => :'actions',
135
- :'truncated_text' => :'truncated_text',
136
- :'output_formats' => :'output_formats',
137
132
  :'files' => :'files',
138
- :'preview_generated_at' => :'preview_generated_at',
139
133
  :'expired' => :'expired',
140
134
  :'expires_at' => :'expires_at',
141
135
  :'processed_at' => :'processed_at',
142
136
  :'created_at' => :'created_at',
143
- :'updated_at' => :'updated_at'
137
+ :'updated_at' => :'updated_at',
138
+ :'has_password' => :'has_password',
139
+ :'signature_requests' => :'signature_requests',
140
+ :'actions' => :'actions',
141
+ :'truncated_text' => :'truncated_text',
142
+ :'output_formats' => :'output_formats',
143
+ :'preview_generated_at' => :'preview_generated_at'
144
144
  }
145
145
  end
146
146
 
@@ -170,18 +170,18 @@ module DocSpring
170
170
  :'data_errors' => :'Array<ErrorDetail>',
171
171
  :'error_message' => :'String',
172
172
  :'metadata' => :'Hash<String, Object>',
173
- :'has_password' => :'Boolean',
174
- :'signature_requests' => :'Array<SignatureRequest>',
175
- :'actions' => :'Array<SubmissionAction>',
176
- :'truncated_text' => :'Hash<String, Array<String>>',
177
- :'output_formats' => :'Array<OutputFormat>',
178
173
  :'files' => :'SubmissionFiles',
179
- :'preview_generated_at' => :'Time',
180
174
  :'expired' => :'Boolean',
181
175
  :'expires_at' => :'Time',
182
176
  :'processed_at' => :'Time',
183
177
  :'created_at' => :'Time',
184
- :'updated_at' => :'Time'
178
+ :'updated_at' => :'Time',
179
+ :'has_password' => :'Boolean',
180
+ :'signature_requests' => :'Array<SignatureRequest>',
181
+ :'actions' => :'Array<SubmissionAction>',
182
+ :'truncated_text' => :'Hash<String, Array<String>>',
183
+ :'output_formats' => :'Array<OutputFormat>',
184
+ :'preview_generated_at' => :'Time'
185
185
  }
186
186
  end
187
187
 
@@ -193,10 +193,10 @@ module DocSpring
193
193
  :'batch_id',
194
194
  :'data',
195
195
  :'error_message',
196
- :'truncated_text',
197
- :'preview_generated_at',
198
196
  :'expires_at',
199
197
  :'processed_at',
198
+ :'truncated_text',
199
+ :'preview_generated_at'
200
200
  ])
201
201
  end
202
202
 
@@ -310,6 +310,42 @@ module DocSpring
310
310
  self.metadata = nil
311
311
  end
312
312
 
313
+ if attributes.key?(:'files')
314
+ self.files = attributes[:'files']
315
+ else
316
+ self.files = nil
317
+ end
318
+
319
+ if attributes.key?(:'expired')
320
+ self.expired = attributes[:'expired']
321
+ else
322
+ self.expired = nil
323
+ end
324
+
325
+ if attributes.key?(:'expires_at')
326
+ self.expires_at = attributes[:'expires_at']
327
+ else
328
+ self.expires_at = nil
329
+ end
330
+
331
+ if attributes.key?(:'processed_at')
332
+ self.processed_at = attributes[:'processed_at']
333
+ else
334
+ self.processed_at = nil
335
+ end
336
+
337
+ if attributes.key?(:'created_at')
338
+ self.created_at = attributes[:'created_at']
339
+ else
340
+ self.created_at = nil
341
+ end
342
+
343
+ if attributes.key?(:'updated_at')
344
+ self.updated_at = attributes[:'updated_at']
345
+ else
346
+ self.updated_at = nil
347
+ end
348
+
313
349
  if attributes.key?(:'has_password')
314
350
  self.has_password = attributes[:'has_password']
315
351
  else
@@ -348,47 +384,11 @@ module DocSpring
348
384
  self.output_formats = nil
349
385
  end
350
386
 
351
- if attributes.key?(:'files')
352
- self.files = attributes[:'files']
353
- else
354
- self.files = nil
355
- end
356
-
357
387
  if attributes.key?(:'preview_generated_at')
358
388
  self.preview_generated_at = attributes[:'preview_generated_at']
359
389
  else
360
390
  self.preview_generated_at = nil
361
391
  end
362
-
363
- if attributes.key?(:'expired')
364
- self.expired = attributes[:'expired']
365
- else
366
- self.expired = nil
367
- end
368
-
369
- if attributes.key?(:'expires_at')
370
- self.expires_at = attributes[:'expires_at']
371
- else
372
- self.expires_at = nil
373
- end
374
-
375
- if attributes.key?(:'processed_at')
376
- self.processed_at = attributes[:'processed_at']
377
- else
378
- self.processed_at = nil
379
- end
380
-
381
- if attributes.key?(:'created_at')
382
- self.created_at = attributes[:'created_at']
383
- else
384
- self.created_at = nil
385
- end
386
-
387
- if attributes.key?(:'updated_at')
388
- self.updated_at = attributes[:'updated_at']
389
- else
390
- self.updated_at = nil
391
- end
392
392
  end
393
393
 
394
394
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -428,22 +428,6 @@ module DocSpring
428
428
  invalid_properties.push('invalid value for "metadata", metadata cannot be nil.')
429
429
  end
430
430
 
431
- if @has_password.nil?
432
- invalid_properties.push('invalid value for "has_password", has_password cannot be nil.')
433
- end
434
-
435
- if @signature_requests.nil?
436
- invalid_properties.push('invalid value for "signature_requests", signature_requests cannot be nil.')
437
- end
438
-
439
- if @actions.nil?
440
- invalid_properties.push('invalid value for "actions", actions cannot be nil.')
441
- end
442
-
443
- if @output_formats.nil?
444
- invalid_properties.push('invalid value for "output_formats", output_formats cannot be nil.')
445
- end
446
-
447
431
  if @files.nil?
448
432
  invalid_properties.push('invalid value for "files", files cannot be nil.')
449
433
  end
@@ -460,6 +444,22 @@ module DocSpring
460
444
  invalid_properties.push('invalid value for "updated_at", updated_at cannot be nil.')
461
445
  end
462
446
 
447
+ if @has_password.nil?
448
+ invalid_properties.push('invalid value for "has_password", has_password cannot be nil.')
449
+ end
450
+
451
+ if @signature_requests.nil?
452
+ invalid_properties.push('invalid value for "signature_requests", signature_requests cannot be nil.')
453
+ end
454
+
455
+ if @actions.nil?
456
+ invalid_properties.push('invalid value for "actions", actions cannot be nil.')
457
+ end
458
+
459
+ if @output_formats.nil?
460
+ invalid_properties.push('invalid value for "output_formats", output_formats cannot be nil.')
461
+ end
462
+
463
463
  invalid_properties
464
464
  end
465
465
 
@@ -475,14 +475,14 @@ module DocSpring
475
475
  return false if @editable.nil?
476
476
  return false if @data_errors.nil?
477
477
  return false if @metadata.nil?
478
- return false if @has_password.nil?
479
- return false if @signature_requests.nil?
480
- return false if @actions.nil?
481
- return false if @output_formats.nil?
482
478
  return false if @files.nil?
483
479
  return false if @expired.nil?
484
480
  return false if @created_at.nil?
485
481
  return false if @updated_at.nil?
482
+ return false if @has_password.nil?
483
+ return false if @signature_requests.nil?
484
+ return false if @actions.nil?
485
+ return false if @output_formats.nil?
486
486
  true
487
487
  end
488
488
 
@@ -566,46 +566,6 @@ module DocSpring
566
566
  @metadata = metadata
567
567
  end
568
568
 
569
- # Custom attribute writer method with validation
570
- # @param [Object] has_password Value to be assigned
571
- def has_password=(has_password)
572
- if has_password.nil?
573
- fail ArgumentError, 'has_password cannot be nil'
574
- end
575
-
576
- @has_password = has_password
577
- end
578
-
579
- # Custom attribute writer method with validation
580
- # @param [Object] signature_requests Value to be assigned
581
- def signature_requests=(signature_requests)
582
- if signature_requests.nil?
583
- fail ArgumentError, 'signature_requests cannot be nil'
584
- end
585
-
586
- @signature_requests = signature_requests
587
- end
588
-
589
- # Custom attribute writer method with validation
590
- # @param [Object] actions Value to be assigned
591
- def actions=(actions)
592
- if actions.nil?
593
- fail ArgumentError, 'actions cannot be nil'
594
- end
595
-
596
- @actions = actions
597
- end
598
-
599
- # Custom attribute writer method with validation
600
- # @param [Object] output_formats Value to be assigned
601
- def output_formats=(output_formats)
602
- if output_formats.nil?
603
- fail ArgumentError, 'output_formats cannot be nil'
604
- end
605
-
606
- @output_formats = output_formats
607
- end
608
-
609
569
  # Custom attribute writer method with validation
610
570
  # @param [Object] files Value to be assigned
611
571
  def files=(files)
@@ -646,6 +606,46 @@ module DocSpring
646
606
  @updated_at = updated_at
647
607
  end
648
608
 
609
+ # Custom attribute writer method with validation
610
+ # @param [Object] has_password Value to be assigned
611
+ def has_password=(has_password)
612
+ if has_password.nil?
613
+ fail ArgumentError, 'has_password cannot be nil'
614
+ end
615
+
616
+ @has_password = has_password
617
+ end
618
+
619
+ # Custom attribute writer method with validation
620
+ # @param [Object] signature_requests Value to be assigned
621
+ def signature_requests=(signature_requests)
622
+ if signature_requests.nil?
623
+ fail ArgumentError, 'signature_requests cannot be nil'
624
+ end
625
+
626
+ @signature_requests = signature_requests
627
+ end
628
+
629
+ # Custom attribute writer method with validation
630
+ # @param [Object] actions Value to be assigned
631
+ def actions=(actions)
632
+ if actions.nil?
633
+ fail ArgumentError, 'actions cannot be nil'
634
+ end
635
+
636
+ @actions = actions
637
+ end
638
+
639
+ # Custom attribute writer method with validation
640
+ # @param [Object] output_formats Value to be assigned
641
+ def output_formats=(output_formats)
642
+ if output_formats.nil?
643
+ fail ArgumentError, 'output_formats cannot be nil'
644
+ end
645
+
646
+ @output_formats = output_formats
647
+ end
648
+
649
649
  # Checks equality by comparing each attribute.
650
650
  # @param [Object] Object to be compared
651
651
  def ==(o)
@@ -664,18 +664,18 @@ module DocSpring
664
664
  data_errors == o.data_errors &&
665
665
  error_message == o.error_message &&
666
666
  metadata == o.metadata &&
667
- has_password == o.has_password &&
668
- signature_requests == o.signature_requests &&
669
- actions == o.actions &&
670
- truncated_text == o.truncated_text &&
671
- output_formats == o.output_formats &&
672
667
  files == o.files &&
673
- preview_generated_at == o.preview_generated_at &&
674
668
  expired == o.expired &&
675
669
  expires_at == o.expires_at &&
676
670
  processed_at == o.processed_at &&
677
671
  created_at == o.created_at &&
678
- updated_at == o.updated_at
672
+ updated_at == o.updated_at &&
673
+ has_password == o.has_password &&
674
+ signature_requests == o.signature_requests &&
675
+ actions == o.actions &&
676
+ truncated_text == o.truncated_text &&
677
+ output_formats == o.output_formats &&
678
+ preview_generated_at == o.preview_generated_at
679
679
  end
680
680
 
681
681
  # @see the `==` method
@@ -687,7 +687,7 @@ module DocSpring
687
687
  # Calculates hash code according to all attributes.
688
688
  # @return [Integer] Hash code
689
689
  def hash
690
- [id, template_id, template_type, template_version, batch_id, source, state, test, editable, data, data_errors, error_message, metadata, has_password, signature_requests, actions, truncated_text, output_formats, files, preview_generated_at, expired, expires_at, processed_at, created_at, updated_at].hash
690
+ [id, template_id, template_type, template_version, batch_id, source, state, test, editable, data, data_errors, error_message, metadata, files, expired, expires_at, processed_at, created_at, updated_at, has_password, signature_requests, actions, truncated_text, output_formats, preview_generated_at].hash
691
691
  end
692
692
 
693
693
  # Builds the object from hash
@@ -25,7 +25,7 @@ module DocSpring
25
25
  # The values of the template's fields, by field name. Required for a PDF template.
26
26
  attr_accessor :data
27
27
 
28
- # Your own data about the submission, such as an ID from your app. It isn't printed on the PDF.
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`).
29
29
  attr_accessor :metadata
30
30
 
31
31
  # A password that the PDF needs to be opened with. It's never returned; `has_password` says if it's set.
@@ -43,7 +43,7 @@ module DocSpring
43
43
  # For an HTML template, HTML to use instead of the template's.
44
44
  attr_accessor :html
45
45
 
46
- # For an HTML template, CSS to use instead of the template's.
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
49
  # The submission's template. Default the batch's `template_id`.
@@ -43,7 +43,7 @@ module DocSpring
43
43
  # Attribute type mapping.
44
44
  def self.openapi_types
45
45
  {
46
- :'data' => :'Array<Submission>',
46
+ :'data' => :'Array<SubmissionSummary>',
47
47
  :'next_cursor' => :'String'
48
48
  }
49
49
  end