@automate.ax/integration-contracts 0.146.0 → 0.147.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.
@@ -0,0 +1,2858 @@
1
+ /* eslint-disable */
2
+ /* oxlint-disable -- Generated from Tally's externally versioned OpenAPI document. */
3
+ /**
4
+ * Generated from https://developers.tally.so/api-reference/openapi.json. Source
5
+ * SHA-256: 28b98ea5fb21692746d85f8bb8110c74d3826c6e15d33dd0ccf1aa0e92f1db7b.
6
+ */
7
+ export interface components {
8
+ schemas: {
9
+ /**
10
+ * Deleting a form is done through DELETE /forms/{formId}, which moves it to
11
+ * the trash so it can be restored.
12
+ *
13
+ * @enum {string}
14
+ */
15
+ FormStatus: "BLANK" | "DRAFT" | "PUBLISHED"
16
+ /**
17
+ * Format: uuid
18
+ *
19
+ * Unique identifier for this block.
20
+ */
21
+ BlockUuid: string
22
+ /**
23
+ * Format: uuid
24
+ *
25
+ * Groups related blocks together. For standalone blocks, use the block's
26
+ * own uuid. For child blocks (e.g., dropdown options, multiple choice
27
+ * options), use the parent block's uuid so all children share the same
28
+ * groupUuid.
29
+ */
30
+ GroupUuid: string
31
+ /**
32
+ * When true, hides the field from respondents. Hidden fields don't appear
33
+ * on the form but can be shown via conditional logic.
34
+ */
35
+ IsHidden: boolean
36
+ /**
37
+ * When true, collapses the question group in the form builder UI, hiding
38
+ * child blocks while showing a count indicator. Only applies to Title and
39
+ * Label blocks.
40
+ */
41
+ IsFolded: boolean
42
+ /**
43
+ * When true, the field must be filled out before the form can be submitted.
44
+ * Respondents will see a required indicator.
45
+ */
46
+ IsRequired: boolean
47
+ /**
48
+ * When true, the field is pre-populated with the value from defaultAnswer
49
+ * when the form loads.
50
+ */
51
+ HasDefaultAnswer: boolean
52
+ /**
53
+ * Set to true to enable minCharacters validation. When true, minCharacters
54
+ * must be provided.
55
+ */
56
+ HasMinCharacters: boolean
57
+ /**
58
+ * The minimum number of characters allowed. Required when hasMinCharacters
59
+ * is true.
60
+ */
61
+ MinCharacters: number
62
+ /**
63
+ * Set to true to enable maxCharacters validation. When true, maxCharacters
64
+ * must be provided.
65
+ */
66
+ HasMaxCharacters: boolean
67
+ /**
68
+ * The maximum number of characters allowed. Required when hasMaxCharacters
69
+ * is true.
70
+ */
71
+ MaxCharacters: number
72
+ /**
73
+ * Set to true to enable minChoices validation. When true, minChoices must
74
+ * be provided.
75
+ */
76
+ HasMinChoices: boolean
77
+ /**
78
+ * Minimum number of selections required. Required when hasMinChoices is
79
+ * true.
80
+ */
81
+ MinChoices: number
82
+ /**
83
+ * Set to true to enable maxChoices validation. When true, maxChoices must
84
+ * be provided.
85
+ */
86
+ HasMaxChoices: boolean
87
+ /**
88
+ * Maximum number of selections allowed. Required when hasMaxChoices is
89
+ * true.
90
+ */
91
+ MaxChoices: number
92
+ /** Position of this option within the group (0-indexed). */
93
+ OptionIndex: number
94
+ /** True if this is the first option in the group. */
95
+ IsFirstOption: boolean
96
+ /** True if this is the last option in the group. */
97
+ IsLastOption: boolean
98
+ /**
99
+ * Allow selecting multiple options. Only needs to be set on the first
100
+ * option in the group.
101
+ */
102
+ AllowMultiple: boolean
103
+ /**
104
+ * Enable color-coded options display. Only needs to be set on the first
105
+ * option in the group.
106
+ */
107
+ ColorCodeOptions: boolean
108
+ /**
109
+ * Color name for this option when colorCodeOptions is enabled.
110
+ *
111
+ * @enum {string}
112
+ */
113
+ OptionColor:
114
+ | "red"
115
+ | "orange"
116
+ | "yellow"
117
+ | "green"
118
+ | "blue"
119
+ | "purple"
120
+ | "pink"
121
+ | "gray"
122
+ /**
123
+ * The default value for this field. Can be either a raw string value or a
124
+ * Field reference to dynamically populate from another field's answer.
125
+ */
126
+ DefaultAnswerString: components["schemas"]["Field"] | string
127
+ /**
128
+ * The default value for this field. Can be either a raw number value or a
129
+ * Field reference to dynamically populate from another field's answer.
130
+ */
131
+ DefaultAnswerNumber: components["schemas"]["Field"] | number
132
+ /** Customizes the button text for form navigation. */
133
+ Button: {
134
+ /** The text displayed on the button (e.g., "Start", "Next", "Submit"). */
135
+ label?: string
136
+ }
137
+ /**
138
+ * Optional identifier for this block. Can be used to reference the block in
139
+ * integrations or conditional logic.
140
+ */
141
+ Name: string
142
+ /**
143
+ * Rich text content. Supports basic formatting: bold, italic, underline,
144
+ * links, and mentions.
145
+ */
146
+ Html: string
147
+ /** Rich text value represented as HTML with optional field mentions. */
148
+ RichText: {
149
+ html: components["schemas"]["Html"]
150
+ mentions?: components["schemas"]["Mention"][]
151
+ } | null
152
+ /**
153
+ * The name of the content provider. Auto-detected from the URL via oEmbed
154
+ * protocol or pattern matching. Common values include: YouTube, Loom,
155
+ * Twitch, Twitter, Canva, Google Maps, Imgur, JSFiddle, GitHub Gist, Video,
156
+ * Audio, Image, PDF. May also be any other oEmbed-supported provider.
157
+ */
158
+ EmbedProvider: string
159
+ /**
160
+ * Format: uri
161
+ *
162
+ * The URL of the content to embed. Supports video platforms (YouTube, Loom,
163
+ * Twitch, etc.) and audio platforms. The URL is used to auto-detect the
164
+ * provider and fetch embed data via oEmbed.
165
+ */
166
+ EmbedUrl: string
167
+ FormSettings: {
168
+ language?: string | null
169
+ /** @default false */
170
+ isClosed: boolean
171
+ closeMessageTitle?: string | null
172
+ closeMessageDescription?: string | null
173
+ closeTimezone?: string | null
174
+ closeDate?: string | null
175
+ closeTime?: string | null
176
+ /** Format: int64 */
177
+ submissionsLimit?: number | null
178
+ uniqueSubmissionKey?: components["schemas"]["RichText"]
179
+ redirectOnCompletion?: components["schemas"]["RichText"]
180
+ /** @default false */
181
+ hasSelfEmailNotifications: boolean
182
+ selfEmailTo?: components["schemas"]["RichText"]
183
+ selfEmailReplyTo?: components["schemas"]["RichText"]
184
+ selfEmailSubject?: components["schemas"]["RichText"]
185
+ selfEmailFromName?: components["schemas"]["RichText"]
186
+ selfEmailBody?: components["schemas"]["RichText"]
187
+ /** @default false */
188
+ hasRespondentEmailNotifications: boolean
189
+ respondentEmailTo?: components["schemas"]["RichText"]
190
+ respondentEmailReplyTo?: components["schemas"]["RichText"]
191
+ respondentEmailSubject?: components["schemas"]["RichText"]
192
+ respondentEmailFromName?: components["schemas"]["RichText"]
193
+ respondentEmailBody?: components["schemas"]["RichText"]
194
+ /** @default false */
195
+ hasProgressBar: boolean
196
+ /** @default false */
197
+ hasPartialSubmissions: boolean
198
+ /** @default false */
199
+ pageAutoJump: boolean
200
+ /** @default true */
201
+ saveForLater: boolean
202
+ styles?: string | null
203
+ password?: string | null
204
+ /** Format: int64 */
205
+ submissionsDataRetentionDuration?: number | null
206
+ submissionsDataRetentionUnit?: string | null
207
+ }
208
+ Form: {
209
+ id: string
210
+ name: string
211
+ workspaceId: string
212
+ status: components["schemas"]["FormStatus"]
213
+ numberOfSubmissions: number
214
+ isClosed: boolean
215
+ payments?: {
216
+ amount?: number
217
+ currency?: string
218
+ }[]
219
+ /** Format: date-time */
220
+ createdAt: string
221
+ /** Format: date-time */
222
+ updatedAt: string
223
+ }
224
+ Block:
225
+ | components["schemas"]["FormTitleBlock"]
226
+ | components["schemas"]["TitleBlock"]
227
+ | components["schemas"]["TextBlock"]
228
+ | components["schemas"]["LabelBlock"]
229
+ | components["schemas"]["Heading1Block"]
230
+ | components["schemas"]["Heading2Block"]
231
+ | components["schemas"]["Heading3Block"]
232
+ | components["schemas"]["ImageBlock"]
233
+ | components["schemas"]["EmbedBlock"]
234
+ | components["schemas"]["EmbedVideoBlock"]
235
+ | components["schemas"]["EmbedAudioBlock"]
236
+ | components["schemas"]["DividerBlock"]
237
+ | components["schemas"]["PageBreakBlock"]
238
+ | components["schemas"]["InputTextBlock"]
239
+ | components["schemas"]["TextareaBlock"]
240
+ | components["schemas"]["InputNumberBlock"]
241
+ | components["schemas"]["InputEmailBlock"]
242
+ | components["schemas"]["InputLinkBlock"]
243
+ | components["schemas"]["InputPhoneNumberBlock"]
244
+ | components["schemas"]["InputDateBlock"]
245
+ | components["schemas"]["InputTimeBlock"]
246
+ | components["schemas"]["MultipleChoiceOptionBlock"]
247
+ | components["schemas"]["CheckboxBlock"]
248
+ | components["schemas"]["DropdownOptionBlock"]
249
+ | components["schemas"]["RankingOptionBlock"]
250
+ | components["schemas"]["MultiSelectOptionBlock"]
251
+ | components["schemas"]["LinearScaleBlock"]
252
+ | components["schemas"]["RatingBlock"]
253
+ | components["schemas"]["MatrixBlock"]
254
+ | components["schemas"]["MatrixRowBlock"]
255
+ | components["schemas"]["MatrixColumnBlock"]
256
+ | components["schemas"]["FileUploadBlock"]
257
+ | components["schemas"]["SignatureBlock"]
258
+ | components["schemas"]["PaymentBlock"]
259
+ | components["schemas"]["HiddenFieldsBlock"]
260
+ | components["schemas"]["ConditionalLogicBlock"]
261
+ | components["schemas"]["CalculatedFieldsBlock"]
262
+ | components["schemas"]["CaptchaBlock"]
263
+ | components["schemas"]["RespondentCountryBlock"]
264
+ CalculatedField: {
265
+ /** Format: uuid */
266
+ uuid: string
267
+ /**
268
+ * Name your calculated field to easily retrieve it in calculations later
269
+ * on.
270
+ */
271
+ name?: components["schemas"]["Name"]
272
+ type?: components["schemas"]["CalculatedFieldType"]
273
+ /**
274
+ * An initial value as a starting point of your calculation. This can be
275
+ * zero (for numbers) or left blank (for text).
276
+ */
277
+ value?: string | number
278
+ }
279
+ HiddenField: {
280
+ /** Format: uuid */
281
+ uuid: string
282
+ name?: components["schemas"]["Name"]
283
+ }
284
+ /** @enum {string} */
285
+ EventType: "FORM_RESPONSE"
286
+ User: {
287
+ id?: string
288
+ firstName?: string
289
+ lastName?: string
290
+ fullName?: string
291
+ email?: string
292
+ /** Format: uri */
293
+ avatarUrl?: string | null
294
+ organizationId?: string
295
+ isDeleted?: boolean
296
+ hasTwoFactorEnabled?: boolean
297
+ /** Format: date-time */
298
+ createdAt?: string
299
+ /** Format: date-time */
300
+ updatedAt?: string
301
+ /** @enum {string} */
302
+ subscriptionPlan?: "FREE" | "PRO" | "BUSINESS"
303
+ }
304
+ Folder: {
305
+ id: string
306
+ name: string
307
+ workspaceId: string
308
+ parentId: string | null
309
+ createdByUserId: string
310
+ /** Format: date-time */
311
+ createdAt: string
312
+ /** Format: date-time */
313
+ updatedAt: string
314
+ }
315
+ Workspace: {
316
+ id: string
317
+ name: string
318
+ index: number
319
+ members?: components["schemas"]["User"][]
320
+ invites?: {
321
+ id?: string
322
+ email?: string
323
+ workspaceIds?: string[]
324
+ }[]
325
+ folders?: components["schemas"]["Folder"][]
326
+ createdByUserId: string
327
+ /** Format: date-time */
328
+ createdAt: string
329
+ /** Format: date-time */
330
+ updatedAt: string
331
+ }
332
+ Invite: {
333
+ id: string
334
+ /** Format: email */
335
+ email: string
336
+ /** Format: date-time */
337
+ createdAt: string
338
+ /** Format: date-time */
339
+ updatedAt: string
340
+ }
341
+ QuestionField: {
342
+ /** Format: uuid */
343
+ uuid?: string
344
+ type?: components["schemas"]["BlockType"]
345
+ /** Format: uuid */
346
+ blockGroupUuid?: string
347
+ title?: string
348
+ }
349
+ Question: {
350
+ id?: string
351
+ type?: components["schemas"]["BlockType"]
352
+ title?: string
353
+ isTitleModifiedByUser?: boolean
354
+ formId?: string
355
+ isDeleted?: boolean
356
+ numberOfResponses?: number
357
+ /** Format: date-time */
358
+ createdAt?: string
359
+ /** Format: date-time */
360
+ updatedAt?: string
361
+ fields?: components["schemas"]["QuestionField"][]
362
+ }
363
+ /**
364
+ * A reference to a form field, used to dynamically access another field's
365
+ * value (e.g., for default answers or mentions).
366
+ */
367
+ Field: {
368
+ /**
369
+ * Unique identifier of the referenced field. A UUID for regular fields,
370
+ * or a UtilityUuid value when type is UTILITY.
371
+ */
372
+ uuid: string | components["schemas"]["UtilityUuid"]
373
+ /** The category of field being referenced. */
374
+ type: components["schemas"]["FieldType"]
375
+ /** The block type of the referenced field. */
376
+ questionType: components["schemas"]["FieldQuestionType"]
377
+ /**
378
+ * Identifier of the block group containing the referenced field. A UUID
379
+ * for regular fields, or a UtilityUuid value when type is UTILITY.
380
+ */
381
+ blockGroupUuid: string | components["schemas"]["UtilityUuid"]
382
+ /** Display title of the referenced field. */
383
+ title: string
384
+ /** For calculated fields, specifies whether the result is NUMBER or TEXT. */
385
+ calculatedFieldType?: components["schemas"]["CalculatedFieldType"]
386
+ /**
387
+ * Additional configuration for utility fields. Only present when type is
388
+ * UTILITY.
389
+ */
390
+ payload?: Record<string, never>
391
+ }
392
+ /**
393
+ * The category of a field reference.
394
+ *
395
+ * @enum {string}
396
+ */
397
+ FieldType:
398
+ | "INPUT_FIELD"
399
+ | "CALCULATED_FIELD"
400
+ | "HIDDEN_FIELD"
401
+ | "UTILITY"
402
+ | "PLACEHOLDER"
403
+ | "METADATA"
404
+ /**
405
+ * Identifier used as uuid and blockGroupUuid for utility field references.
406
+ *
407
+ * @enum {string}
408
+ */
409
+ UtilityUuid: "utility::today()"
410
+ /**
411
+ * Block types that produce answer values and can be referenced as field
412
+ * sources.
413
+ *
414
+ * @enum {string}
415
+ */
416
+ FieldQuestionType:
417
+ | "INPUT_TEXT"
418
+ | "INPUT_NUMBER"
419
+ | "INPUT_EMAIL"
420
+ | "INPUT_LINK"
421
+ | "INPUT_PHONE_NUMBER"
422
+ | "INPUT_DATE"
423
+ | "INPUT_TIME"
424
+ | "TEXTAREA"
425
+ | "RATING"
426
+ | "LINEAR_SCALE"
427
+ | "CHECKBOX"
428
+ | "MULTIPLE_CHOICE_OPTION"
429
+ | "DROPDOWN_OPTION"
430
+ | "RANKING_OPTION"
431
+ | "MULTI_SELECT_OPTION"
432
+ | "HIDDEN_FIELDS"
433
+ | "CALCULATED_FIELDS"
434
+ /**
435
+ * Choose whether the value will be text or a numeric value (number).
436
+ *
437
+ * @enum {string}
438
+ */
439
+ CalculatedFieldType: "NUMBER" | "TEXT"
440
+ /**
441
+ * A dynamic placeholder that references another field's value. Used to
442
+ * personalize form content (e.g., "Hello @name").
443
+ */
444
+ Mention: {
445
+ /**
446
+ * Format: uuid
447
+ *
448
+ * Unique identifier for this mention.
449
+ */
450
+ uuid: string
451
+ /**
452
+ * The field being referenced. Its value replaces the mention placeholder
453
+ * at runtime.
454
+ */
455
+ field: components["schemas"]["Field"]
456
+ /** Fallback value displayed when the referenced field has no data. */
457
+ defaultValue?: unknown
458
+ }
459
+ /** @enum {string} */
460
+ BlockType:
461
+ | "FORM_TITLE"
462
+ | "TEXT"
463
+ | "LABEL"
464
+ | "TITLE"
465
+ | "HEADING_1"
466
+ | "HEADING_2"
467
+ | "HEADING_3"
468
+ | "DIVIDER"
469
+ | "PAGE_BREAK"
470
+ | "IMAGE"
471
+ | "EMBED"
472
+ | "EMBED_VIDEO"
473
+ | "EMBED_AUDIO"
474
+ | "QUESTION"
475
+ | "MATRIX"
476
+ | "INPUT_TEXT"
477
+ | "INPUT_NUMBER"
478
+ | "INPUT_EMAIL"
479
+ | "INPUT_LINK"
480
+ | "INPUT_PHONE_NUMBER"
481
+ | "INPUT_DATE"
482
+ | "INPUT_TIME"
483
+ | "TEXTAREA"
484
+ | "FILE_UPLOAD"
485
+ | "LINEAR_SCALE"
486
+ | "RATING"
487
+ | "HIDDEN_FIELDS"
488
+ | "MULTIPLE_CHOICE_OPTION"
489
+ | "CHECKBOX"
490
+ | "DROPDOWN_OPTION"
491
+ | "RANKING_OPTION"
492
+ | "MULTI_SELECT_OPTION"
493
+ | "PAYMENT"
494
+ | "SIGNATURE"
495
+ | "MATRIX_ROW"
496
+ | "MATRIX_COLUMN"
497
+ | "CONDITIONAL_LOGIC"
498
+ | "CALCULATED_FIELDS"
499
+ | "CAPTCHA"
500
+ | "RESPONDENT_COUNTRY"
501
+ /**
502
+ * Days or date ranges to disable in the date picker.
503
+ *
504
+ * @enum {string}
505
+ */
506
+ DisableDays:
507
+ | "IN_THE_PAST"
508
+ | "IN_THE_FUTURE"
509
+ | "MONDAYS"
510
+ | "TUESDAYS"
511
+ | "WEDNESDAYS"
512
+ | "THURSDAYS"
513
+ | "FRIDAYS"
514
+ | "SATURDAYS"
515
+ | "SUNDAYS"
516
+ /**
517
+ * The literal character used as decimal separator.
518
+ *
519
+ * @enum {string}
520
+ */
521
+ DecimalSeparator: "." | ","
522
+ /**
523
+ * The literal character used as thousands separator. An empty string means
524
+ * no separator.
525
+ *
526
+ * @enum {string}
527
+ */
528
+ ThousandsSeparator: "" | "." | "," | " "
529
+ /** @enum {string} */
530
+ NumberFormat:
531
+ | "NUMBER"
532
+ | "PERCENT"
533
+ | "US_DOLLAR"
534
+ | "EURO"
535
+ | "POUND"
536
+ | "CUSTOM"
537
+ /** @enum {string} */
538
+ Currency:
539
+ | "AED"
540
+ | "AUD"
541
+ | "BGN"
542
+ | "BRL"
543
+ | "CAD"
544
+ | "CHF"
545
+ | "CNY"
546
+ | "CZK"
547
+ | "DKK"
548
+ | "EUR"
549
+ | "GBP"
550
+ | "HKD"
551
+ | "HRK"
552
+ | "HUF"
553
+ | "IDR"
554
+ | "ILS"
555
+ | "INR"
556
+ | "ISK"
557
+ | "JPY"
558
+ | "KRW"
559
+ | "MAD"
560
+ | "MXN"
561
+ | "MYR"
562
+ | "NOK"
563
+ | "NZD"
564
+ | "PHP"
565
+ | "PLN"
566
+ | "RON"
567
+ | "RSD"
568
+ | "RUB"
569
+ | "SAR"
570
+ | "SEK"
571
+ | "SGD"
572
+ | "THB"
573
+ | "TRY"
574
+ | "TWD"
575
+ | "UAH"
576
+ | "USD"
577
+ | "VND"
578
+ | "ZAR"
579
+ /**
580
+ * Allowed file types for upload. Keys are MIME type categories, values are
581
+ * arrays of file extensions or ['*'] for all types in that category.
582
+ *
583
+ * @example
584
+ * { "image/*": [".png", ".jpg", ".gif"], "application/*": [".pdf"] }
585
+ */
586
+ AllowedFiles: {
587
+ /** Image file extensions or ['*'] for all image types. */
588
+ "image/*"?: (
589
+ | "*"
590
+ | ".jpg"
591
+ | ".jpeg"
592
+ | ".png"
593
+ | ".gif"
594
+ | ".svg"
595
+ | ".heic"
596
+ | ".webp"
597
+ | ".bmp"
598
+ | ".psd"
599
+ )[]
600
+ /** Video file extensions or ['*'] for all video types. */
601
+ "video/*"?: ("*" | ".mp4" | ".mov" | ".webm")[]
602
+ /** Audio file extensions or ['*'] for all audio types. */
603
+ "audio/*"?: ("*" | ".mp3" | ".wav" | ".m4a")[]
604
+ /** Text file extensions or ['*'] for all text types. */
605
+ "text/*"?: ("*" | ".txt" | ".csv" | ".html" | ".xml")[]
606
+ /**
607
+ * Application/document file extensions or ['*'] for all application
608
+ * types.
609
+ */
610
+ "application/*"?: (
611
+ | "*"
612
+ | ".pdf"
613
+ | ".doc"
614
+ | ".docx"
615
+ | ".xls"
616
+ | ".xlsx"
617
+ | ".ppt"
618
+ | ".pptx"
619
+ | ".zip"
620
+ | ".rar"
621
+ | ".json"
622
+ | ".gzip"
623
+ | ".odt"
624
+ )[]
625
+ }
626
+ SingleConditional: {
627
+ /** Format: uuid */
628
+ uuid: string
629
+ /** @enum {string} */
630
+ type: "SINGLE"
631
+ /** Single condition comparing one field to a value. */
632
+ payload: {
633
+ field: components["schemas"]["Field"]
634
+ /**
635
+ * Comparison operator for the condition.
636
+ *
637
+ * @enum {string}
638
+ */
639
+ comparison:
640
+ | "IS"
641
+ | "IS_NOT"
642
+ | "IS_ANY_OF"
643
+ | "IS_NOT_ANY_OF"
644
+ | "IS_EVERY_OF"
645
+ | "CONTAINS"
646
+ | "DOES_NOT_CONTAIN"
647
+ | "STARTS_WITH"
648
+ | "DOES_NOT_START_WITH"
649
+ | "ENDS_WITH"
650
+ | "DOES_NOT_END_WITH"
651
+ | "IS_EMPTY"
652
+ | "IS_NOT_EMPTY"
653
+ | "EQUAL"
654
+ | "NOT_EQUAL"
655
+ | "GREATER_THAN"
656
+ | "LESS_THAN"
657
+ | "GREATER_OR_EQUAL_THAN"
658
+ | "LESS_OR_EQUAL_THAN"
659
+ | "IS_BEFORE"
660
+ | "IS_AFTER"
661
+ /** Comparison value or field reference. Nullable for empty checks. */
662
+ value:
663
+ | (string | number | string[] | components["schemas"]["Field"])
664
+ | null
665
+ }
666
+ }
667
+ GroupConditional: {
668
+ /** Format: uuid */
669
+ uuid: string
670
+ /** @enum {string} */
671
+ type: "GROUP"
672
+ /** Group of conditions combined with AND/OR. */
673
+ payload: {
674
+ /**
675
+ * How to combine child conditions (AND/OR).
676
+ *
677
+ * @enum {string}
678
+ */
679
+ logicalOperator: "AND" | "OR"
680
+ /** Child conditions in this group. */
681
+ conditionals: components["schemas"]["Conditional"][]
682
+ }
683
+ }
684
+ /** Union of single and group conditionals. */
685
+ Conditional:
686
+ | components["schemas"]["SingleConditional"]
687
+ | components["schemas"]["GroupConditional"]
688
+ /** Conditional action wrapper. */
689
+ ConditionalAction: {
690
+ /** Format: uuid */
691
+ uuid: string
692
+ /**
693
+ * Action type; determines which payload fields are relevant.
694
+ *
695
+ * @enum {string}
696
+ */
697
+ type:
698
+ | "JUMP_TO_PAGE"
699
+ | "CALCULATE"
700
+ | "REQUIRE_ANSWER"
701
+ | "SHOW_BLOCKS"
702
+ | "HIDE_BLOCKS"
703
+ | "HIDE_BUTTON_TO_DISABLE_COMPLETION"
704
+ /** Action details executed when conditions match. */
705
+ payload?: {
706
+ /** Target page number or page UUID to jump to. */
707
+ jumpToPage?: string | number
708
+ /** Block UUIDs to show when condition matches. */
709
+ showBlocks?: string[]
710
+ /** Block UUIDs to hide when condition matches. */
711
+ hideBlocks?: string[]
712
+ /**
713
+ * Format: uuid
714
+ *
715
+ * Block UUID to mark as required when condition matches.
716
+ */
717
+ requireAnswer?: string
718
+ /** Calculation to apply when condition matches. */
719
+ calculate?: {
720
+ field: components["schemas"]["Field"]
721
+ /**
722
+ * Math or assignment operator.
723
+ *
724
+ * @enum {string}
725
+ */
726
+ operator:
727
+ | "ADDITION"
728
+ | "SUBTRACTION"
729
+ | "MULTIPLICATION"
730
+ | "DIVISION"
731
+ | "ASSIGNMENT"
732
+ /** Value or field reference used in the calculation. */
733
+ value: string | number | string[] | components["schemas"]["Field"]
734
+ }
735
+ }
736
+ }
737
+ BlockPayload:
738
+ | components["schemas"]["FormTitlePayload"]
739
+ | components["schemas"]["TextPayload"]
740
+ | components["schemas"]["LabelPayload"]
741
+ | components["schemas"]["TitlePayload"]
742
+ | components["schemas"]["Heading1Payload"]
743
+ | components["schemas"]["Heading2Payload"]
744
+ | components["schemas"]["Heading3Payload"]
745
+ | components["schemas"]["DividerPayload"]
746
+ | components["schemas"]["PageBreakPayload"]
747
+ | components["schemas"]["ImagePayload"]
748
+ | components["schemas"]["EmbedPayload"]
749
+ | components["schemas"]["EmbedVideoPayload"]
750
+ | components["schemas"]["EmbedAudioPayload"]
751
+ | components["schemas"]["MatrixPayload"]
752
+ | components["schemas"]["InputTextPayload"]
753
+ | components["schemas"]["InputNumberPayload"]
754
+ | components["schemas"]["InputEmailPayload"]
755
+ | components["schemas"]["InputLinkPayload"]
756
+ | components["schemas"]["InputPhoneNumberPayload"]
757
+ | components["schemas"]["InputDatePayload"]
758
+ | components["schemas"]["InputTimePayload"]
759
+ | components["schemas"]["TextareaPayload"]
760
+ | components["schemas"]["FileUploadPayload"]
761
+ | components["schemas"]["LinearScalePayload"]
762
+ | components["schemas"]["RatingPayload"]
763
+ | components["schemas"]["HiddenFieldsPayload"]
764
+ | components["schemas"]["MultipleChoiceOptionPayload"]
765
+ | components["schemas"]["CheckboxPayload"]
766
+ | components["schemas"]["DropdownOptionPayload"]
767
+ | components["schemas"]["RankingOptionPayload"]
768
+ | components["schemas"]["MultiSelectOptionPayload"]
769
+ | components["schemas"]["PaymentPayload"]
770
+ | components["schemas"]["SignaturePayload"]
771
+ | components["schemas"]["MatrixRowPayload"]
772
+ | components["schemas"]["MatrixColumnPayload"]
773
+ | components["schemas"]["ConditionalLogicPayload"]
774
+ | components["schemas"]["CalculatedFieldsPayload"]
775
+ | components["schemas"]["CaptchaPayload"]
776
+ | components["schemas"]["RespondentCountryPayload"]
777
+ /**
778
+ * FormTitlePayload
779
+ *
780
+ * Payload for FORM_TITLE block type. Used for the main form title with
781
+ * optional logo and cover image.
782
+ */
783
+ FormTitlePayload: {
784
+ html?: components["schemas"]["Html"]
785
+ /** Plain-text form title. Used as the form name when provided. */
786
+ title?: string | null
787
+ /**
788
+ * Format: uri
789
+ *
790
+ * URL of the logo image displayed as form branding. Recommended size:
791
+ * 200x200 pixels. Rendered as a circular image.
792
+ */
793
+ logo?: string
794
+ /**
795
+ * Format: uri
796
+ *
797
+ * URL of a full-width cover image displayed at the top of the form.
798
+ * Recommended minimum width: 1500 pixels.
799
+ */
800
+ cover?: string
801
+ coverSettings?: {
802
+ /**
803
+ * Vertical position of the cover image as a percentage. Controls the
804
+ * CSS object-position property. 0 shows the top edge, 50 centers the
805
+ * image, and 100 shows the bottom edge.
806
+ *
807
+ * @default 50
808
+ */
809
+ objectPositionYPercent: number
810
+ }
811
+ mentions?: components["schemas"]["Mention"][]
812
+ button?: components["schemas"]["Button"]
813
+ }
814
+ /**
815
+ * TextPayload
816
+ *
817
+ * Payload for TEXT block type. Used for text content blocks.
818
+ */
819
+ TextPayload: {
820
+ html?: components["schemas"]["Html"]
821
+ isHidden?: components["schemas"]["IsHidden"]
822
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
823
+ columnUuid?: components["schemas"]["ColumnUuid"]
824
+ columnRatio?: components["schemas"]["ColumnRatio"]
825
+ }
826
+ /**
827
+ * LabelPayload
828
+ *
829
+ * Payload for LABEL block type. Used for label elements.
830
+ */
831
+ LabelPayload: {
832
+ html?: components["schemas"]["Html"]
833
+ isHidden?: components["schemas"]["IsHidden"]
834
+ isFolded?: components["schemas"]["IsFolded"]
835
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
836
+ columnUuid?: components["schemas"]["ColumnUuid"]
837
+ columnRatio?: components["schemas"]["ColumnRatio"]
838
+ }
839
+ /**
840
+ * TitlePayload
841
+ *
842
+ * Payload for TITLE block type. Used for title elements.
843
+ */
844
+ TitlePayload: {
845
+ html?: components["schemas"]["Html"]
846
+ isHidden?: components["schemas"]["IsHidden"]
847
+ isFolded?: components["schemas"]["IsFolded"]
848
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
849
+ columnUuid?: components["schemas"]["ColumnUuid"]
850
+ columnRatio?: components["schemas"]["ColumnRatio"]
851
+ }
852
+ /**
853
+ * Heading1Payload
854
+ *
855
+ * Payload for HEADING_1 block type. Used for H1 headings.
856
+ */
857
+ Heading1Payload: {
858
+ html?: components["schemas"]["Html"]
859
+ isHidden?: components["schemas"]["IsHidden"]
860
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
861
+ columnUuid?: components["schemas"]["ColumnUuid"]
862
+ columnRatio?: components["schemas"]["ColumnRatio"]
863
+ }
864
+ /**
865
+ * Heading2Payload
866
+ *
867
+ * Payload for HEADING_2 block type. Used for H2 headings.
868
+ */
869
+ Heading2Payload: {
870
+ html?: components["schemas"]["Html"]
871
+ isHidden?: components["schemas"]["IsHidden"]
872
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
873
+ columnUuid?: components["schemas"]["ColumnUuid"]
874
+ columnRatio?: components["schemas"]["ColumnRatio"]
875
+ }
876
+ /**
877
+ * Heading3Payload
878
+ *
879
+ * Payload for HEADING_3 block type. Used for H3 headings.
880
+ */
881
+ Heading3Payload: {
882
+ html?: components["schemas"]["Html"]
883
+ isHidden?: components["schemas"]["IsHidden"]
884
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
885
+ columnUuid?: components["schemas"]["ColumnUuid"]
886
+ columnRatio?: components["schemas"]["ColumnRatio"]
887
+ }
888
+ /**
889
+ * DividerPayload
890
+ *
891
+ * Payload for DIVIDER block type. Used for visual separators.
892
+ */
893
+ DividerPayload: {
894
+ isHidden?: components["schemas"]["IsHidden"]
895
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
896
+ columnUuid?: components["schemas"]["ColumnUuid"]
897
+ columnRatio?: components["schemas"]["ColumnRatio"]
898
+ }
899
+ /**
900
+ * PageBreakPayload
901
+ *
902
+ * Payload for PAGE_BREAK block type. Used for multi-page form navigation.
903
+ */
904
+ PageBreakPayload: {
905
+ /**
906
+ * Sequential position of this page break within the form, starting from
907
+ * 0.
908
+ */
909
+ index?: number
910
+ /** When true, indicates this is the first page break in the form. */
911
+ isFirst?: boolean
912
+ /** When true, indicates this is the last page break in the form. */
913
+ isLast?: boolean
914
+ name?: components["schemas"]["Name"]
915
+ /**
916
+ * When true, indicates this page break represents a custom thank-you page
917
+ * shown after form submission.
918
+ */
919
+ isThankYouPage?: boolean
920
+ /** When true, indicates this page is collapsed in the form builder. */
921
+ isFolded?: boolean
922
+ /** When true, this page qualifies as the thank-you page target. */
923
+ isQualifiedForThankYouPage?: boolean
924
+ /**
925
+ * Customizes the button text for form navigation. When provided, label is
926
+ * required.
927
+ */
928
+ button?: {
929
+ /** The text displayed on the button (e.g., "Start", "Next", "Submit"). */
930
+ label: string
931
+ }
932
+ }
933
+ /**
934
+ * ImagePayload
935
+ *
936
+ * Payload for IMAGE block type. Used for displaying images.
937
+ */
938
+ ImagePayload: {
939
+ images?: {
940
+ /** The filename of the image. */
941
+ name: string
942
+ /** Format: uri */
943
+ url: string
944
+ }[]
945
+ /**
946
+ * Set to true to enable caption; caption must be present if hasCaption is
947
+ * true.
948
+ */
949
+ hasCaption?: boolean
950
+ /** The caption text to display below the image. */
951
+ caption?: string
952
+ /** Set to true to enable link; link must be present if hasLink is true. */
953
+ hasLink?: boolean
954
+ /**
955
+ * Format: uri
956
+ *
957
+ * The URL to link to when the image is clicked.
958
+ */
959
+ link?: string
960
+ /**
961
+ * Set to true to enable alt text; altText must be present if hasAltText
962
+ * is true.
963
+ */
964
+ hasAltText?: boolean
965
+ /** The alternative text for the image. */
966
+ altText?: string
967
+ isHidden?: components["schemas"]["IsHidden"]
968
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
969
+ columnUuid?: components["schemas"]["ColumnUuid"]
970
+ columnRatio?: components["schemas"]["ColumnRatio"]
971
+ }
972
+ /**
973
+ * EmbedPayload
974
+ *
975
+ * Payload for EMBED block type. Used for embedding external content.
976
+ */
977
+ EmbedPayload: {
978
+ isHidden?: components["schemas"]["IsHidden"]
979
+ /** @enum {string} */
980
+ type:
981
+ | "rich"
982
+ | "video"
983
+ | "photo"
984
+ | "link"
985
+ | "pdf"
986
+ | "gist"
987
+ | "image/*"
988
+ | "video/*"
989
+ | "audio/*"
990
+ provider: components["schemas"]["EmbedProvider"]
991
+ title: string
992
+ /** Format: uri */
993
+ inputUrl: string
994
+ display: {
995
+ /** Format: uri */
996
+ url?: string
997
+ }
998
+ width?: string | number
999
+ height?: string | number
1000
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1001
+ columnUuid?: components["schemas"]["ColumnUuid"]
1002
+ columnRatio?: components["schemas"]["ColumnRatio"]
1003
+ }
1004
+ /**
1005
+ * EmbedVideoPayload
1006
+ *
1007
+ * Payload for EMBED_VIDEO block type. Used for embedding video content.
1008
+ */
1009
+ EmbedVideoPayload: {
1010
+ isHidden?: components["schemas"]["IsHidden"]
1011
+ /** @enum {string} */
1012
+ type: "video" | "video/*"
1013
+ provider: components["schemas"]["EmbedProvider"]
1014
+ title: string
1015
+ inputUrl: components["schemas"]["EmbedUrl"]
1016
+ display: {
1017
+ /** Format: uri */
1018
+ url?: string
1019
+ }
1020
+ width?: string | number
1021
+ height?: string | number
1022
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1023
+ columnUuid?: components["schemas"]["ColumnUuid"]
1024
+ columnRatio?: components["schemas"]["ColumnRatio"]
1025
+ }
1026
+ /**
1027
+ * EmbedAudioPayload
1028
+ *
1029
+ * Payload for EMBED_AUDIO block type. Used for embedding audio content.
1030
+ */
1031
+ EmbedAudioPayload: {
1032
+ isHidden?: components["schemas"]["IsHidden"]
1033
+ /** @enum {string} */
1034
+ type: "audio/*" | "rich"
1035
+ provider: components["schemas"]["EmbedProvider"]
1036
+ title: string
1037
+ inputUrl: components["schemas"]["EmbedUrl"]
1038
+ display: {
1039
+ /** Format: uri */
1040
+ url?: string
1041
+ }
1042
+ width?: string | number
1043
+ height?: string | number
1044
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1045
+ columnUuid?: components["schemas"]["ColumnUuid"]
1046
+ columnRatio?: components["schemas"]["ColumnRatio"]
1047
+ }
1048
+ /**
1049
+ * MatrixPayload
1050
+ *
1051
+ * Payload for MATRIX block type. Used for matrix/grid questions.
1052
+ */
1053
+ MatrixPayload: {
1054
+ isRequired?: components["schemas"]["IsRequired"]
1055
+ isHidden?: components["schemas"]["IsHidden"]
1056
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1057
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1058
+ name?: components["schemas"]["Name"]
1059
+ }
1060
+ /**
1061
+ * InputTextPayload
1062
+ *
1063
+ * Payload for INPUT_TEXT block type. Used for short text input fields.
1064
+ */
1065
+ InputTextPayload: {
1066
+ isHidden?: components["schemas"]["IsHidden"]
1067
+ isRequired?: components["schemas"]["IsRequired"]
1068
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1069
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1070
+ placeholder?: string
1071
+ hasMinCharacters?: components["schemas"]["HasMinCharacters"]
1072
+ minCharacters?: components["schemas"]["MinCharacters"]
1073
+ hasMaxCharacters?: components["schemas"]["HasMaxCharacters"]
1074
+ maxCharacters?: components["schemas"]["MaxCharacters"]
1075
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1076
+ columnUuid?: components["schemas"]["ColumnUuid"]
1077
+ columnRatio?: components["schemas"]["ColumnRatio"]
1078
+ name?: components["schemas"]["Name"]
1079
+ }
1080
+ /**
1081
+ * InputNumberPayload
1082
+ *
1083
+ * Payload for INPUT_NUMBER block type. Used for numeric input fields.
1084
+ */
1085
+ InputNumberPayload: {
1086
+ isHidden?: components["schemas"]["IsHidden"]
1087
+ isRequired?: components["schemas"]["IsRequired"]
1088
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1089
+ defaultAnswer?: components["schemas"]["DefaultAnswerNumber"]
1090
+ placeholder?: string
1091
+ /**
1092
+ * Set to true to enable minNumber; minNumber must be present if
1093
+ * hasMinNumber is true.
1094
+ */
1095
+ hasMinNumber?: boolean
1096
+ /** The minimum allowed value (required if hasMinNumber is true). */
1097
+ minNumber?: number
1098
+ /**
1099
+ * Set to true to enable maxNumber; maxNumber must be present if
1100
+ * hasMaxNumber is true.
1101
+ */
1102
+ hasMaxNumber?: boolean
1103
+ /** The maximum allowed value (required if hasMaxNumber is true). */
1104
+ maxNumber?: number
1105
+ decimalSeparator?: components["schemas"]["DecimalSeparator"]
1106
+ thousandsSeparator?: components["schemas"]["ThousandsSeparator"]
1107
+ format?: components["schemas"]["NumberFormat"]
1108
+ /**
1109
+ * Custom prefix to display before the number (e.g., currency symbol).
1110
+ * Used with NumberFormat.Custom.
1111
+ */
1112
+ prefix?: string
1113
+ /**
1114
+ * Custom suffix to display after the number (e.g., unit). Used with
1115
+ * NumberFormat.Custom.
1116
+ */
1117
+ suffix?: string
1118
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1119
+ columnUuid?: components["schemas"]["ColumnUuid"]
1120
+ columnRatio?: components["schemas"]["ColumnRatio"]
1121
+ name?: components["schemas"]["Name"]
1122
+ }
1123
+ /**
1124
+ * InputEmailPayload
1125
+ *
1126
+ * Payload for INPUT_EMAIL block type. Used for email input fields.
1127
+ */
1128
+ InputEmailPayload: {
1129
+ isHidden?: components["schemas"]["IsHidden"]
1130
+ isRequired?: components["schemas"]["IsRequired"]
1131
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1132
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1133
+ /**
1134
+ * When true, respondents must verify their email address before
1135
+ * submitting.
1136
+ */
1137
+ requireVerification?: boolean
1138
+ placeholder?: string
1139
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1140
+ columnUuid?: components["schemas"]["ColumnUuid"]
1141
+ columnRatio?: components["schemas"]["ColumnRatio"]
1142
+ name?: components["schemas"]["Name"]
1143
+ }
1144
+ /**
1145
+ * InputLinkPayload
1146
+ *
1147
+ * Payload for INPUT_LINK block type. Used for URL input fields.
1148
+ */
1149
+ InputLinkPayload: {
1150
+ isHidden?: components["schemas"]["IsHidden"]
1151
+ isRequired?: components["schemas"]["IsRequired"]
1152
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1153
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1154
+ placeholder?: string
1155
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1156
+ columnUuid?: components["schemas"]["ColumnUuid"]
1157
+ columnRatio?: components["schemas"]["ColumnRatio"]
1158
+ name?: components["schemas"]["Name"]
1159
+ }
1160
+ /**
1161
+ * InputPhoneNumberPayload
1162
+ *
1163
+ * Payload for INPUT_PHONE_NUMBER block type. Used for phone number input
1164
+ * fields.
1165
+ */
1166
+ InputPhoneNumberPayload: {
1167
+ isHidden?: components["schemas"]["IsHidden"]
1168
+ isRequired?: components["schemas"]["IsRequired"]
1169
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1170
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1171
+ placeholder?: string
1172
+ /**
1173
+ * When true, allows international phone numbers from any country. When
1174
+ * false, restricts input to the default country.
1175
+ */
1176
+ internationalFormat?: boolean
1177
+ /**
1178
+ * ISO 3166-1 alpha-2 country code (e.g., 'US', 'GB', 'DE') that sets the
1179
+ * default country for the phone number input.
1180
+ */
1181
+ defaultCountryCode?: string
1182
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1183
+ columnUuid?: components["schemas"]["ColumnUuid"]
1184
+ columnRatio?: components["schemas"]["ColumnRatio"]
1185
+ name?: components["schemas"]["Name"]
1186
+ }
1187
+ /**
1188
+ * InputDatePayload
1189
+ *
1190
+ * Payload for INPUT_DATE block type. Used for date picker fields.
1191
+ */
1192
+ InputDatePayload: {
1193
+ isHidden?: components["schemas"]["IsHidden"]
1194
+ isRequired?: components["schemas"]["IsRequired"]
1195
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1196
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1197
+ placeholder?: string
1198
+ /** Array of days or date ranges to disable in the date picker. */
1199
+ disableDays?: components["schemas"]["DisableDays"][]
1200
+ /**
1201
+ * Display format for the date.
1202
+ *
1203
+ * @enum {string}
1204
+ */
1205
+ format?:
1206
+ | "MM/dd/yyyy"
1207
+ | "dd/MM/yyyy"
1208
+ | "yyyy/MM/dd"
1209
+ | "dd.MM.yyyy"
1210
+ | "yyyy-MM-dd"
1211
+ /**
1212
+ * Format: date
1213
+ *
1214
+ * Disable dates before this date.
1215
+ */
1216
+ beforeDate?: string
1217
+ /**
1218
+ * Format: date
1219
+ *
1220
+ * Disable dates after this date.
1221
+ */
1222
+ afterDate?: string
1223
+ /** Restrict selectable dates to a specific range. */
1224
+ dateRange?: {
1225
+ /**
1226
+ * Format: date
1227
+ *
1228
+ * Start date of the allowed range.
1229
+ */
1230
+ from?: string
1231
+ /**
1232
+ * Format: date
1233
+ *
1234
+ * End date of the allowed range.
1235
+ */
1236
+ to?: string
1237
+ }
1238
+ /** Array of specific dates to disable. */
1239
+ specificDates?: string[]
1240
+ /**
1241
+ * Day the week starts on in the calendar view. 0=Sunday, 1=Monday,
1242
+ * 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday.
1243
+ *
1244
+ * @enum {string}
1245
+ */
1246
+ startWeekOn?: "0" | "1" | "2" | "3" | "4" | "5" | "6"
1247
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1248
+ columnUuid?: components["schemas"]["ColumnUuid"]
1249
+ columnRatio?: components["schemas"]["ColumnRatio"]
1250
+ name?: components["schemas"]["Name"]
1251
+ }
1252
+ /**
1253
+ * InputTimePayload
1254
+ *
1255
+ * Payload for INPUT_TIME block type. Used for time picker fields.
1256
+ */
1257
+ InputTimePayload: {
1258
+ isHidden?: components["schemas"]["IsHidden"]
1259
+ isRequired?: components["schemas"]["IsRequired"]
1260
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1261
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1262
+ placeholder?: string
1263
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1264
+ columnUuid?: components["schemas"]["ColumnUuid"]
1265
+ columnRatio?: components["schemas"]["ColumnRatio"]
1266
+ name?: components["schemas"]["Name"]
1267
+ }
1268
+ /**
1269
+ * TextareaPayload
1270
+ *
1271
+ * Payload for TEXTAREA block type. Used for long text input fields.
1272
+ */
1273
+ TextareaPayload: {
1274
+ isHidden?: components["schemas"]["IsHidden"]
1275
+ isRequired?: components["schemas"]["IsRequired"]
1276
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1277
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1278
+ placeholder?: string
1279
+ hasMinCharacters?: components["schemas"]["HasMinCharacters"]
1280
+ minCharacters?: components["schemas"]["MinCharacters"]
1281
+ hasMaxCharacters?: components["schemas"]["HasMaxCharacters"]
1282
+ maxCharacters?: components["schemas"]["MaxCharacters"]
1283
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1284
+ columnUuid?: components["schemas"]["ColumnUuid"]
1285
+ columnRatio?: components["schemas"]["ColumnRatio"]
1286
+ name?: components["schemas"]["Name"]
1287
+ }
1288
+ /**
1289
+ * FileUploadPayload
1290
+ *
1291
+ * Payload for FILE_UPLOAD block type. Used for file upload fields.
1292
+ */
1293
+ FileUploadPayload: {
1294
+ isHidden?: components["schemas"]["IsHidden"]
1295
+ isRequired?: components["schemas"]["IsRequired"]
1296
+ /** When true, allows uploading multiple files. */
1297
+ hasMultipleFiles?: boolean
1298
+ /**
1299
+ * Set to true to enable minFiles validation. When true, minFiles must be
1300
+ * provided.
1301
+ */
1302
+ hasMinFiles?: boolean
1303
+ /** Minimum number of files required. Required when hasMinFiles is true. */
1304
+ minFiles?: number
1305
+ /**
1306
+ * Set to true to enable maxFiles validation. When true, maxFiles must be
1307
+ * provided.
1308
+ */
1309
+ hasMaxFiles?: boolean
1310
+ /** Maximum number of files allowed. Required when hasMaxFiles is true. */
1311
+ maxFiles?: number
1312
+ /**
1313
+ * Set to true to enable maxFileSize validation. When true, maxFileSize
1314
+ * and maxFileSizeUnit must be provided.
1315
+ */
1316
+ hasMaxFileSize?: boolean
1317
+ /** Maximum file size. Required when hasMaxFileSize is true. */
1318
+ maxFileSize?: number
1319
+ /**
1320
+ * Unit for maxFileSize. Required when hasMaxFileSize is true.
1321
+ *
1322
+ * @enum {string}
1323
+ */
1324
+ maxFileSizeUnit?: "KB" | "MB" | "GB"
1325
+ allowedFiles?: components["schemas"]["AllowedFiles"]
1326
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1327
+ columnUuid?: components["schemas"]["ColumnUuid"]
1328
+ columnRatio?: components["schemas"]["ColumnRatio"]
1329
+ name?: components["schemas"]["Name"]
1330
+ }
1331
+ /**
1332
+ * LinearScalePayload
1333
+ *
1334
+ * Payload for LINEAR_SCALE block type. Used for scale/slider questions.
1335
+ */
1336
+ LinearScalePayload: {
1337
+ isHidden?: components["schemas"]["IsHidden"]
1338
+ isRequired?: components["schemas"]["IsRequired"]
1339
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1340
+ /** Default selected value. Must be within the start-end range. */
1341
+ defaultAnswer?: number
1342
+ /** Starting value of the scale (0-100). Defaults to 0. */
1343
+ start?: number
1344
+ /** Ending value of the scale (0-100). Must be >= start. Defaults to 10. */
1345
+ end?: number
1346
+ /** Step increment between scale values. Must be >= 1. Defaults to 1. */
1347
+ step?: number
1348
+ /** When true, leftLabel must be provided. */
1349
+ hasLeftLabel?: boolean
1350
+ /**
1351
+ * Label displayed at the start of the scale. Required when hasLeftLabel
1352
+ * is true.
1353
+ */
1354
+ leftLabel?: string
1355
+ /** When true, centerLabel must be provided. */
1356
+ hasCenterLabel?: boolean
1357
+ /**
1358
+ * Label displayed at the center of the scale. Required when
1359
+ * hasCenterLabel is true.
1360
+ */
1361
+ centerLabel?: string
1362
+ /** When true, rightLabel must be provided. */
1363
+ hasRightLabel?: boolean
1364
+ /**
1365
+ * Label displayed at the end of the scale. Required when hasRightLabel is
1366
+ * true.
1367
+ */
1368
+ rightLabel?: string
1369
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1370
+ columnUuid?: components["schemas"]["ColumnUuid"]
1371
+ columnRatio?: components["schemas"]["ColumnRatio"]
1372
+ name?: components["schemas"]["Name"]
1373
+ }
1374
+ /**
1375
+ * RatingPayload
1376
+ *
1377
+ * Payload for RATING block type. Used for star rating questions.
1378
+ */
1379
+ RatingPayload: {
1380
+ isHidden?: components["schemas"]["IsHidden"]
1381
+ isRequired?: components["schemas"]["IsRequired"]
1382
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1383
+ defaultAnswer?: components["schemas"]["DefaultAnswerNumber"]
1384
+ /** Number of stars for the rating scale (1-10). Defaults to 5. */
1385
+ stars?: number
1386
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1387
+ columnUuid?: components["schemas"]["ColumnUuid"]
1388
+ columnRatio?: components["schemas"]["ColumnRatio"]
1389
+ name?: components["schemas"]["Name"]
1390
+ }
1391
+ /**
1392
+ * HiddenFieldsPayload
1393
+ *
1394
+ * Payload for HIDDEN_FIELDS block type. Used for hidden form fields.
1395
+ */
1396
+ HiddenFieldsPayload: {
1397
+ /**
1398
+ * Array of hidden fields. Each hidden field captures a value from URL
1399
+ * query parameters matching the field name.
1400
+ */
1401
+ hiddenFields: components["schemas"]["HiddenField"][]
1402
+ }
1403
+ /**
1404
+ * MultipleChoiceOptionPayload
1405
+ *
1406
+ * Payload for MULTIPLE_CHOICE_OPTION block type. Used for single-select
1407
+ * radio questions.
1408
+ */
1409
+ MultipleChoiceOptionPayload: {
1410
+ isHidden?: components["schemas"]["IsHidden"]
1411
+ isRequired?: components["schemas"]["IsRequired"]
1412
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1413
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1414
+ index: components["schemas"]["OptionIndex"]
1415
+ isFirst: components["schemas"]["IsFirstOption"]
1416
+ isLast: components["schemas"]["IsLastOption"]
1417
+ allowMultiple?: components["schemas"]["AllowMultiple"]
1418
+ hasMinChoices?: components["schemas"]["HasMinChoices"]
1419
+ minChoices?: components["schemas"]["MinChoices"]
1420
+ hasMaxChoices?: components["schemas"]["HasMaxChoices"]
1421
+ maxChoices?: components["schemas"]["MaxChoices"]
1422
+ colorCodeOptions?: components["schemas"]["ColorCodeOptions"]
1423
+ color?: components["schemas"]["OptionColor"]
1424
+ /**
1425
+ * Enable option badges (numbers or letters). Only needs to be set on the
1426
+ * first option in the group.
1427
+ */
1428
+ hasBadge?: boolean
1429
+ /**
1430
+ * Badge display type. Only needs to be set on the first option in the
1431
+ * group.
1432
+ *
1433
+ * @enum {string}
1434
+ */
1435
+ badgeType?: "OFF" | "NUMBERS" | "LETTERS"
1436
+ /** True if the question group has an 'Other' option enabled. */
1437
+ hasOtherOption?: boolean
1438
+ /** True if this specific option is the 'Other' free-text field. */
1439
+ isOtherOption?: boolean
1440
+ /**
1441
+ * Randomize option order. Only needs to be set on the first option in the
1442
+ * group.
1443
+ */
1444
+ randomize?: boolean
1445
+ /**
1446
+ * Array of option UUIDs that should stay in their original position when
1447
+ * randomize is enabled. Only needs to be set on the first option in the
1448
+ * group.
1449
+ */
1450
+ lockInPlace?: string[]
1451
+ /** URL of an image to display alongside the option. */
1452
+ image?: string
1453
+ name?: components["schemas"]["Name"]
1454
+ /** The display text of the option. */
1455
+ text?: string
1456
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1457
+ columnUuid?: components["schemas"]["ColumnUuid"]
1458
+ columnRatio?: components["schemas"]["ColumnRatio"]
1459
+ }
1460
+ /**
1461
+ * CheckboxPayload
1462
+ *
1463
+ * Payload for CHECKBOX block type. Used for individual checkbox options
1464
+ * within a checkbox group.
1465
+ */
1466
+ CheckboxPayload: {
1467
+ isHidden?: components["schemas"]["IsHidden"]
1468
+ isRequired?: components["schemas"]["IsRequired"]
1469
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1470
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1471
+ index: components["schemas"]["OptionIndex"]
1472
+ isFirst: components["schemas"]["IsFirstOption"]
1473
+ isLast: components["schemas"]["IsLastOption"]
1474
+ /**
1475
+ * Format: uri
1476
+ *
1477
+ * URL of an image displayed alongside this checkbox option.
1478
+ */
1479
+ image?: string
1480
+ hasMinChoices?: components["schemas"]["HasMinChoices"]
1481
+ minChoices?: components["schemas"]["MinChoices"]
1482
+ hasMaxChoices?: components["schemas"]["HasMaxChoices"]
1483
+ maxChoices?: components["schemas"]["MaxChoices"]
1484
+ /** True if the question group has an 'Other' option enabled. */
1485
+ hasOtherOption?: boolean
1486
+ /** True if this specific option is the 'Other' free-text field. */
1487
+ isOtherOption?: boolean
1488
+ /**
1489
+ * Randomize option order. Only needs to be set on the first option in the
1490
+ * group.
1491
+ */
1492
+ randomize?: boolean
1493
+ /**
1494
+ * Array of option UUIDs that stay in their original position when
1495
+ * randomize is enabled.
1496
+ */
1497
+ lockInPlace?: string[]
1498
+ name?: components["schemas"]["Name"]
1499
+ /** The display text of the checkbox option. */
1500
+ text?: string
1501
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1502
+ columnUuid?: components["schemas"]["ColumnUuid"]
1503
+ columnRatio?: components["schemas"]["ColumnRatio"]
1504
+ }
1505
+ /**
1506
+ * DropdownOptionPayload
1507
+ *
1508
+ * Payload for DROPDOWN_OPTION block type. Used for dropdown select
1509
+ * questions.
1510
+ */
1511
+ DropdownOptionPayload: {
1512
+ isHidden?: components["schemas"]["IsHidden"]
1513
+ isRequired?: components["schemas"]["IsRequired"]
1514
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1515
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1516
+ placeholder?: string
1517
+ index: components["schemas"]["OptionIndex"]
1518
+ isFirst: components["schemas"]["IsFirstOption"]
1519
+ isLast: components["schemas"]["IsLastOption"]
1520
+ allowMultiple?: components["schemas"]["AllowMultiple"]
1521
+ hasMinChoices?: components["schemas"]["HasMinChoices"]
1522
+ minChoices?: components["schemas"]["MinChoices"]
1523
+ hasMaxChoices?: components["schemas"]["HasMaxChoices"]
1524
+ maxChoices?: components["schemas"]["MaxChoices"]
1525
+ /** True if the question group has an 'Other' option enabled. */
1526
+ hasOtherOption?: boolean
1527
+ /** True if this specific option is the 'Other' free-text field. */
1528
+ isOtherOption?: boolean
1529
+ /**
1530
+ * Randomize option order. Only needs to be set on the first option in the
1531
+ * group.
1532
+ */
1533
+ randomize?: boolean
1534
+ /**
1535
+ * Array of option UUIDs that should stay in their original position when
1536
+ * randomize is enabled. Only needs to be set on the first option in the
1537
+ * group.
1538
+ */
1539
+ lockInPlace?: string[]
1540
+ name?: components["schemas"]["Name"]
1541
+ /** The display text of the dropdown option. */
1542
+ text?: string
1543
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1544
+ columnUuid?: components["schemas"]["ColumnUuid"]
1545
+ columnRatio?: components["schemas"]["ColumnRatio"]
1546
+ }
1547
+ /**
1548
+ * RankingOptionPayload
1549
+ *
1550
+ * Payload for RANKING_OPTION block type. Used for ranking/ordering
1551
+ * questions.
1552
+ */
1553
+ RankingOptionPayload: {
1554
+ isHidden?: components["schemas"]["IsHidden"]
1555
+ isRequired?: components["schemas"]["IsRequired"]
1556
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1557
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1558
+ index: components["schemas"]["OptionIndex"]
1559
+ isFirst: components["schemas"]["IsFirstOption"]
1560
+ isLast: components["schemas"]["IsLastOption"]
1561
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1562
+ columnUuid?: components["schemas"]["ColumnUuid"]
1563
+ columnRatio?: components["schemas"]["ColumnRatio"]
1564
+ name?: components["schemas"]["Name"]
1565
+ html?: components["schemas"]["Html"]
1566
+ /** The text of the ranking option. */
1567
+ text?: string
1568
+ /** The image of the ranking option. */
1569
+ image?: string
1570
+ /**
1571
+ * Whether to randomize the ranking options. Only needs to be set on the
1572
+ * first option in the group.
1573
+ */
1574
+ randomize?: boolean
1575
+ /**
1576
+ * Array of option UUIDs that should stay in their original position when
1577
+ * randomize is enabled. Only needs to be set on the first option in the
1578
+ * group.
1579
+ */
1580
+ lockInPlace?: string[]
1581
+ }
1582
+ /**
1583
+ * MultiSelectOptionPayload
1584
+ *
1585
+ * Payload for MULTI_SELECT_OPTION block type. Used for multi-select
1586
+ * checkbox questions.
1587
+ */
1588
+ MultiSelectOptionPayload: {
1589
+ isHidden?: components["schemas"]["IsHidden"]
1590
+ isRequired?: components["schemas"]["IsRequired"]
1591
+ hasDefaultAnswer?: components["schemas"]["HasDefaultAnswer"]
1592
+ defaultAnswer?: components["schemas"]["DefaultAnswerString"]
1593
+ index: components["schemas"]["OptionIndex"]
1594
+ isFirst: components["schemas"]["IsFirstOption"]
1595
+ isLast: components["schemas"]["IsLastOption"]
1596
+ color?: components["schemas"]["OptionColor"]
1597
+ /** True if the question group has an 'Other' option enabled. */
1598
+ hasOtherOption?: boolean
1599
+ /** True if this specific option is the 'Other' free-text field. */
1600
+ isOtherOption?: boolean
1601
+ /**
1602
+ * Randomize option order. Only needs to be set on the first option in the
1603
+ * group.
1604
+ */
1605
+ randomize?: boolean
1606
+ /**
1607
+ * Array of option UUIDs that should stay in their original position when
1608
+ * randomize is enabled. Only needs to be set on the first option in the
1609
+ * group.
1610
+ */
1611
+ lockInPlace?: string[]
1612
+ hasMinChoices?: components["schemas"]["HasMinChoices"]
1613
+ minChoices?: components["schemas"]["MinChoices"]
1614
+ hasMaxChoices?: components["schemas"]["HasMaxChoices"]
1615
+ maxChoices?: components["schemas"]["MaxChoices"]
1616
+ /** Display text for this option. */
1617
+ text?: string
1618
+ /** Placeholder text for the 'Other' option input field. */
1619
+ placeholder?: string
1620
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1621
+ columnUuid?: components["schemas"]["ColumnUuid"]
1622
+ columnRatio?: components["schemas"]["ColumnRatio"]
1623
+ name?: components["schemas"]["Name"]
1624
+ }
1625
+ /**
1626
+ * PaymentPayload
1627
+ *
1628
+ * Payload for PAYMENT block type. Used for payment collection.
1629
+ */
1630
+ PaymentPayload: {
1631
+ isHidden?: components["schemas"]["IsHidden"]
1632
+ isRequired?: components["schemas"]["IsRequired"]
1633
+ /**
1634
+ * Payment amount. Can be a fixed number or a Field reference for dynamic
1635
+ * pricing based on another form field's value.
1636
+ */
1637
+ amount?: number | components["schemas"]["Field"]
1638
+ currency: components["schemas"]["Currency"]
1639
+ /**
1640
+ * True once the payment block is connected to a payment provider (e.g.,
1641
+ * Stripe).
1642
+ */
1643
+ isConfigured: boolean
1644
+ /** Format: uuid */
1645
+ stateUuid?: string
1646
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1647
+ columnUuid?: components["schemas"]["ColumnUuid"]
1648
+ columnRatio?: components["schemas"]["ColumnRatio"]
1649
+ name?: components["schemas"]["Name"]
1650
+ }
1651
+ /**
1652
+ * SignaturePayload
1653
+ *
1654
+ * Payload for SIGNATURE block type. Used for signature collection.
1655
+ */
1656
+ SignaturePayload: {
1657
+ isHidden?: components["schemas"]["IsHidden"]
1658
+ isRequired?: components["schemas"]["IsRequired"]
1659
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1660
+ columnUuid?: components["schemas"]["ColumnUuid"]
1661
+ columnRatio?: components["schemas"]["ColumnRatio"]
1662
+ name?: components["schemas"]["Name"]
1663
+ /** Custom label text displayed below the signature pad. */
1664
+ label?: string
1665
+ }
1666
+ /**
1667
+ * MatrixRowPayload
1668
+ *
1669
+ * Payload for MATRIX_ROW block type. Used for matrix question rows.
1670
+ */
1671
+ MatrixRowPayload: {
1672
+ isHidden?: components["schemas"]["IsHidden"]
1673
+ isRequired?: components["schemas"]["IsRequired"]
1674
+ index: components["schemas"]["OptionIndex"]
1675
+ isFirst: components["schemas"]["IsFirstOption"]
1676
+ isLast: components["schemas"]["IsLastOption"]
1677
+ /** True if respondents can select multiple columns per row. */
1678
+ allowMultiple?: boolean
1679
+ /** True if the matrix rows are shown in random order. */
1680
+ randomizeRows?: boolean
1681
+ name?: components["schemas"]["Name"]
1682
+ html?: components["schemas"]["Html"]
1683
+ /** Display text for this matrix row. */
1684
+ text?: string
1685
+ }
1686
+ /**
1687
+ * MatrixColumnPayload
1688
+ *
1689
+ * Payload for MATRIX_COLUMN block type. Used for matrix question columns.
1690
+ */
1691
+ MatrixColumnPayload: {
1692
+ isHidden?: components["schemas"]["IsHidden"]
1693
+ isRequired?: components["schemas"]["IsRequired"]
1694
+ index: components["schemas"]["OptionIndex"]
1695
+ isFirst: components["schemas"]["IsFirstOption"]
1696
+ isLast: components["schemas"]["IsLastOption"]
1697
+ /** True if respondents can select multiple columns per row. */
1698
+ allowMultiple?: boolean
1699
+ /** True if the matrix rows are shown in random order. */
1700
+ randomizeRows?: boolean
1701
+ name?: components["schemas"]["Name"]
1702
+ html?: components["schemas"]["Html"]
1703
+ /** Display text for this matrix column. */
1704
+ text?: string
1705
+ }
1706
+ /**
1707
+ * ConditionalLogicPayload
1708
+ *
1709
+ * Payload for CONDITIONAL_LOGIC block type. Used for form logic and
1710
+ * branching.
1711
+ */
1712
+ ConditionalLogicPayload: {
1713
+ /** Conditions that must be satisfied before actions run. */
1714
+ conditionals: components["schemas"]["Conditional"][]
1715
+ /** Actions executed when conditions are satisfied. */
1716
+ actions: components["schemas"]["ConditionalAction"][]
1717
+ /**
1718
+ * How to combine top-level conditions (AND/OR).
1719
+ *
1720
+ * @enum {string}
1721
+ */
1722
+ logicalOperator: "AND" | "OR"
1723
+ /**
1724
+ * Format: uuid
1725
+ *
1726
+ * UUID of the logic block being updated; null when creating.
1727
+ */
1728
+ updateUuid?: string | null
1729
+ }
1730
+ /**
1731
+ * CalculatedFieldsPayload
1732
+ *
1733
+ * Payload for CALCULATED_FIELDS block type. Used for computed/calculated
1734
+ * values.
1735
+ */
1736
+ CalculatedFieldsPayload: {
1737
+ calculatedFields: components["schemas"]["CalculatedField"][]
1738
+ }
1739
+ /**
1740
+ * CaptchaPayload
1741
+ *
1742
+ * Payload for CAPTCHA block type. Used for bot protection.
1743
+ */
1744
+ CaptchaPayload: {
1745
+ columnListUuid?: components["schemas"]["ColumnListUuid"]
1746
+ columnUuid?: components["schemas"]["ColumnUuid"]
1747
+ columnRatio?: components["schemas"]["ColumnRatio"]
1748
+ }
1749
+ /**
1750
+ * RespondentCountryPayload
1751
+ *
1752
+ * Payload for RESPONDENT_COUNTRY block type. Used for capturing respondent
1753
+ * location.
1754
+ */
1755
+ RespondentCountryPayload: Record<string, never>
1756
+ /**
1757
+ * The width percentage of a column within a column layout row. Valid values
1758
+ * range from 10 to 90, where the sum of all column ratios in a row should
1759
+ * equal 100.
1760
+ */
1761
+ ColumnRatio: number
1762
+ /**
1763
+ * Format: uuid
1764
+ *
1765
+ * Groups blocks into a column layout row. Blocks sharing the same
1766
+ * columnListUuid are displayed side-by-side.
1767
+ */
1768
+ ColumnListUuid: string
1769
+ /**
1770
+ * Format: uuid
1771
+ *
1772
+ * Identifies which column within a row this block belongs to. Blocks with
1773
+ * the same columnUuid stack vertically within that column.
1774
+ */
1775
+ ColumnUuid: string
1776
+ /**
1777
+ * FormTitleBlock
1778
+ *
1779
+ * A block with type FORM_TITLE. Used for the main form title with optional
1780
+ * logo and cover image.
1781
+ */
1782
+ FormTitleBlock: {
1783
+ uuid: components["schemas"]["BlockUuid"]
1784
+ /** @enum {string} */
1785
+ type: "FORM_TITLE"
1786
+ groupUuid: components["schemas"]["GroupUuid"]
1787
+ /** @enum {string} */
1788
+ groupType: "FORM_TITLE" | "TEXT"
1789
+ payload: components["schemas"]["FormTitlePayload"]
1790
+ }
1791
+ /**
1792
+ * TitleBlock
1793
+ *
1794
+ * A block with type TITLE. Used for section titles within the form.
1795
+ */
1796
+ TitleBlock: {
1797
+ uuid: components["schemas"]["BlockUuid"]
1798
+ /** @enum {string} */
1799
+ type: "TITLE"
1800
+ groupUuid: components["schemas"]["GroupUuid"]
1801
+ /** @enum {string} */
1802
+ groupType: "TITLE" | "QUESTION"
1803
+ payload: components["schemas"]["TitlePayload"]
1804
+ }
1805
+ /**
1806
+ * TextBlock
1807
+ *
1808
+ * A block with type TEXT. Used for rich text content within the form.
1809
+ */
1810
+ TextBlock: {
1811
+ uuid: components["schemas"]["BlockUuid"]
1812
+ /** @enum {string} */
1813
+ type: "TEXT"
1814
+ groupUuid: components["schemas"]["GroupUuid"]
1815
+ /** @enum {string} */
1816
+ groupType: "TEXT" | "PAGE_BREAK" | "DIVIDER"
1817
+ payload: components["schemas"]["TextPayload"]
1818
+ }
1819
+ /**
1820
+ * LabelBlock
1821
+ *
1822
+ * A block with type LABEL. Used for form field labels.
1823
+ */
1824
+ LabelBlock: {
1825
+ uuid: components["schemas"]["BlockUuid"]
1826
+ /** @enum {string} */
1827
+ type: "LABEL"
1828
+ groupUuid: components["schemas"]["GroupUuid"]
1829
+ /** @enum {string} */
1830
+ groupType: "LABEL"
1831
+ payload: components["schemas"]["LabelPayload"]
1832
+ }
1833
+ /**
1834
+ * Heading1Block
1835
+ *
1836
+ * A block with type HEADING_1. Used for large headings.
1837
+ */
1838
+ Heading1Block: {
1839
+ uuid: components["schemas"]["BlockUuid"]
1840
+ /** @enum {string} */
1841
+ type: "HEADING_1"
1842
+ groupUuid: components["schemas"]["GroupUuid"]
1843
+ /** @enum {string} */
1844
+ groupType: "HEADING_1"
1845
+ payload: components["schemas"]["Heading1Payload"]
1846
+ }
1847
+ /**
1848
+ * Heading2Block
1849
+ *
1850
+ * A block with type HEADING_2. Used for medium headings.
1851
+ */
1852
+ Heading2Block: {
1853
+ uuid: components["schemas"]["BlockUuid"]
1854
+ /** @enum {string} */
1855
+ type: "HEADING_2"
1856
+ groupUuid: components["schemas"]["GroupUuid"]
1857
+ /** @enum {string} */
1858
+ groupType: "HEADING_2"
1859
+ payload: components["schemas"]["Heading2Payload"]
1860
+ }
1861
+ /**
1862
+ * Heading3Block
1863
+ *
1864
+ * A block with type HEADING_3. Used for small headings.
1865
+ */
1866
+ Heading3Block: {
1867
+ uuid: components["schemas"]["BlockUuid"]
1868
+ /** @enum {string} */
1869
+ type: "HEADING_3"
1870
+ groupUuid: components["schemas"]["GroupUuid"]
1871
+ /** @enum {string} */
1872
+ groupType: "HEADING_3"
1873
+ payload: components["schemas"]["Heading3Payload"]
1874
+ }
1875
+ /**
1876
+ * ImageBlock
1877
+ *
1878
+ * A block with type IMAGE. Used for displaying images in the form.
1879
+ */
1880
+ ImageBlock: {
1881
+ uuid: components["schemas"]["BlockUuid"]
1882
+ /** @enum {string} */
1883
+ type: "IMAGE"
1884
+ groupUuid: components["schemas"]["GroupUuid"]
1885
+ /** @enum {string} */
1886
+ groupType: "IMAGE"
1887
+ payload: components["schemas"]["ImagePayload"]
1888
+ }
1889
+ /**
1890
+ * EmbedBlock
1891
+ *
1892
+ * A block with type EMBED. Used for embedding external content.
1893
+ */
1894
+ EmbedBlock: {
1895
+ uuid: components["schemas"]["BlockUuid"]
1896
+ /** @enum {string} */
1897
+ type: "EMBED"
1898
+ groupUuid: components["schemas"]["GroupUuid"]
1899
+ /** @enum {string} */
1900
+ groupType: "EMBED"
1901
+ payload: components["schemas"]["EmbedPayload"]
1902
+ }
1903
+ /**
1904
+ * EmbedVideoBlock
1905
+ *
1906
+ * A block with type EMBED_VIDEO. Used for embedding video content.
1907
+ */
1908
+ EmbedVideoBlock: {
1909
+ uuid: components["schemas"]["BlockUuid"]
1910
+ /** @enum {string} */
1911
+ type: "EMBED_VIDEO"
1912
+ groupUuid: components["schemas"]["GroupUuid"]
1913
+ /** @enum {string} */
1914
+ groupType: "EMBED_VIDEO"
1915
+ payload: components["schemas"]["EmbedVideoPayload"]
1916
+ }
1917
+ /**
1918
+ * EmbedAudioBlock
1919
+ *
1920
+ * A block with type EMBED_AUDIO. Used for embedding audio content.
1921
+ */
1922
+ EmbedAudioBlock: {
1923
+ uuid: components["schemas"]["BlockUuid"]
1924
+ /** @enum {string} */
1925
+ type: "EMBED_AUDIO"
1926
+ groupUuid: components["schemas"]["GroupUuid"]
1927
+ /** @enum {string} */
1928
+ groupType: "EMBED_AUDIO"
1929
+ payload: components["schemas"]["EmbedAudioPayload"]
1930
+ }
1931
+ /**
1932
+ * DividerBlock
1933
+ *
1934
+ * A block with type DIVIDER. Used for visual separation between sections.
1935
+ */
1936
+ DividerBlock: {
1937
+ uuid: components["schemas"]["BlockUuid"]
1938
+ /** @enum {string} */
1939
+ type: "DIVIDER"
1940
+ groupUuid: components["schemas"]["GroupUuid"]
1941
+ /** @enum {string} */
1942
+ groupType: "DIVIDER"
1943
+ payload: components["schemas"]["DividerPayload"]
1944
+ }
1945
+ /**
1946
+ * PageBreakBlock
1947
+ *
1948
+ * A block with type PAGE_BREAK. Used for creating multi-page forms.
1949
+ */
1950
+ PageBreakBlock: {
1951
+ uuid: components["schemas"]["BlockUuid"]
1952
+ /** @enum {string} */
1953
+ type: "PAGE_BREAK"
1954
+ groupUuid: components["schemas"]["GroupUuid"]
1955
+ /** @enum {string} */
1956
+ groupType: "PAGE_BREAK"
1957
+ payload: components["schemas"]["PageBreakPayload"]
1958
+ }
1959
+ /**
1960
+ * InputTextBlock
1961
+ *
1962
+ * A block with type INPUT_TEXT. Used for single-line text input.
1963
+ */
1964
+ InputTextBlock: {
1965
+ uuid: components["schemas"]["BlockUuid"]
1966
+ /** @enum {string} */
1967
+ type: "INPUT_TEXT"
1968
+ groupUuid: components["schemas"]["GroupUuid"]
1969
+ /** @enum {string} */
1970
+ groupType: "INPUT_TEXT"
1971
+ payload: components["schemas"]["InputTextPayload"]
1972
+ }
1973
+ /**
1974
+ * TextareaBlock
1975
+ *
1976
+ * A block with type TEXTAREA. Used for multi-line text input.
1977
+ */
1978
+ TextareaBlock: {
1979
+ uuid: components["schemas"]["BlockUuid"]
1980
+ /** @enum {string} */
1981
+ type: "TEXTAREA"
1982
+ groupUuid: components["schemas"]["GroupUuid"]
1983
+ /** @enum {string} */
1984
+ groupType: "TEXTAREA"
1985
+ payload: components["schemas"]["TextareaPayload"]
1986
+ }
1987
+ /**
1988
+ * InputNumberBlock
1989
+ *
1990
+ * A block with type INPUT_NUMBER. Used for numeric input.
1991
+ */
1992
+ InputNumberBlock: {
1993
+ uuid: components["schemas"]["BlockUuid"]
1994
+ /** @enum {string} */
1995
+ type: "INPUT_NUMBER"
1996
+ groupUuid: components["schemas"]["GroupUuid"]
1997
+ /** @enum {string} */
1998
+ groupType: "INPUT_NUMBER"
1999
+ payload: components["schemas"]["InputNumberPayload"]
2000
+ }
2001
+ /**
2002
+ * InputEmailBlock
2003
+ *
2004
+ * A block with type INPUT_EMAIL. Used for email address input.
2005
+ */
2006
+ InputEmailBlock: {
2007
+ uuid: components["schemas"]["BlockUuid"]
2008
+ /** @enum {string} */
2009
+ type: "INPUT_EMAIL"
2010
+ groupUuid: components["schemas"]["GroupUuid"]
2011
+ /** @enum {string} */
2012
+ groupType: "INPUT_EMAIL"
2013
+ payload: components["schemas"]["InputEmailPayload"]
2014
+ }
2015
+ /**
2016
+ * InputLinkBlock
2017
+ *
2018
+ * A block with type INPUT_LINK. Used for URL input.
2019
+ */
2020
+ InputLinkBlock: {
2021
+ uuid: components["schemas"]["BlockUuid"]
2022
+ /** @enum {string} */
2023
+ type: "INPUT_LINK"
2024
+ groupUuid: components["schemas"]["GroupUuid"]
2025
+ /** @enum {string} */
2026
+ groupType: "INPUT_LINK"
2027
+ payload: components["schemas"]["InputLinkPayload"]
2028
+ }
2029
+ /**
2030
+ * InputPhoneNumberBlock
2031
+ *
2032
+ * A block with type INPUT_PHONE_NUMBER. Used for phone number input.
2033
+ */
2034
+ InputPhoneNumberBlock: {
2035
+ uuid: components["schemas"]["BlockUuid"]
2036
+ /** @enum {string} */
2037
+ type: "INPUT_PHONE_NUMBER"
2038
+ groupUuid: components["schemas"]["GroupUuid"]
2039
+ /** @enum {string} */
2040
+ groupType: "INPUT_PHONE_NUMBER"
2041
+ payload: components["schemas"]["InputPhoneNumberPayload"]
2042
+ }
2043
+ /**
2044
+ * InputDateBlock
2045
+ *
2046
+ * A block with type INPUT_DATE. Used for date selection.
2047
+ */
2048
+ InputDateBlock: {
2049
+ uuid: components["schemas"]["BlockUuid"]
2050
+ /** @enum {string} */
2051
+ type: "INPUT_DATE"
2052
+ groupUuid: components["schemas"]["GroupUuid"]
2053
+ /** @enum {string} */
2054
+ groupType: "INPUT_DATE"
2055
+ payload: components["schemas"]["InputDatePayload"]
2056
+ }
2057
+ /**
2058
+ * InputTimeBlock
2059
+ *
2060
+ * A block with type INPUT_TIME. Used for time selection.
2061
+ */
2062
+ InputTimeBlock: {
2063
+ uuid: components["schemas"]["BlockUuid"]
2064
+ /** @enum {string} */
2065
+ type: "INPUT_TIME"
2066
+ groupUuid: components["schemas"]["GroupUuid"]
2067
+ /** @enum {string} */
2068
+ groupType: "INPUT_TIME"
2069
+ payload: components["schemas"]["InputTimePayload"]
2070
+ }
2071
+ /**
2072
+ * MultipleChoiceOptionBlock
2073
+ *
2074
+ * A block with type MULTIPLE_CHOICE_OPTION. Individual option within a
2075
+ * multiple choice question.
2076
+ */
2077
+ MultipleChoiceOptionBlock: {
2078
+ uuid: components["schemas"]["BlockUuid"]
2079
+ /** @enum {string} */
2080
+ type: "MULTIPLE_CHOICE_OPTION"
2081
+ groupUuid: components["schemas"]["GroupUuid"]
2082
+ /** @enum {string} */
2083
+ groupType: "MULTIPLE_CHOICE"
2084
+ payload: components["schemas"]["MultipleChoiceOptionPayload"]
2085
+ }
2086
+ /**
2087
+ * CheckboxBlock
2088
+ *
2089
+ * A block with type CHECKBOX. Individual checkbox option within a
2090
+ * checkboxes group.
2091
+ */
2092
+ CheckboxBlock: {
2093
+ uuid: components["schemas"]["BlockUuid"]
2094
+ /** @enum {string} */
2095
+ type: "CHECKBOX"
2096
+ groupUuid: components["schemas"]["GroupUuid"]
2097
+ /** @enum {string} */
2098
+ groupType: "CHECKBOXES"
2099
+ payload: components["schemas"]["CheckboxPayload"]
2100
+ }
2101
+ /**
2102
+ * DropdownOptionBlock
2103
+ *
2104
+ * A block with type DROPDOWN_OPTION. Individual option within a dropdown.
2105
+ */
2106
+ DropdownOptionBlock: {
2107
+ uuid: components["schemas"]["BlockUuid"]
2108
+ /** @enum {string} */
2109
+ type: "DROPDOWN_OPTION"
2110
+ groupUuid: components["schemas"]["GroupUuid"]
2111
+ /** @enum {string} */
2112
+ groupType: "DROPDOWN"
2113
+ payload: components["schemas"]["DropdownOptionPayload"]
2114
+ }
2115
+ /**
2116
+ * RankingOptionBlock
2117
+ *
2118
+ * A block with type RANKING_OPTION. Individual option within a ranking
2119
+ * question.
2120
+ */
2121
+ RankingOptionBlock: {
2122
+ uuid: components["schemas"]["BlockUuid"]
2123
+ /** @enum {string} */
2124
+ type: "RANKING_OPTION"
2125
+ groupUuid: components["schemas"]["GroupUuid"]
2126
+ /** @enum {string} */
2127
+ groupType: "RANKING"
2128
+ payload: components["schemas"]["RankingOptionPayload"]
2129
+ }
2130
+ /**
2131
+ * MultiSelectOptionBlock
2132
+ *
2133
+ * A block with type MULTI_SELECT_OPTION. Individual option within a
2134
+ * multi-select dropdown.
2135
+ */
2136
+ MultiSelectOptionBlock: {
2137
+ uuid: components["schemas"]["BlockUuid"]
2138
+ /** @enum {string} */
2139
+ type: "MULTI_SELECT_OPTION"
2140
+ groupUuid: components["schemas"]["GroupUuid"]
2141
+ /** @enum {string} */
2142
+ groupType: "MULTI_SELECT"
2143
+ payload: components["schemas"]["MultiSelectOptionPayload"]
2144
+ }
2145
+ /**
2146
+ * LinearScaleBlock
2147
+ *
2148
+ * A block with type LINEAR_SCALE. Used for numeric scale ratings (e.g.,
2149
+ * 1-10).
2150
+ */
2151
+ LinearScaleBlock: {
2152
+ uuid: components["schemas"]["BlockUuid"]
2153
+ /** @enum {string} */
2154
+ type: "LINEAR_SCALE"
2155
+ groupUuid: components["schemas"]["GroupUuid"]
2156
+ /** @enum {string} */
2157
+ groupType: "LINEAR_SCALE"
2158
+ payload: components["schemas"]["LinearScalePayload"]
2159
+ }
2160
+ /**
2161
+ * RatingBlock
2162
+ *
2163
+ * A block with type RATING. Used for star/emoji ratings.
2164
+ */
2165
+ RatingBlock: {
2166
+ uuid: components["schemas"]["BlockUuid"]
2167
+ /** @enum {string} */
2168
+ type: "RATING"
2169
+ groupUuid: components["schemas"]["GroupUuid"]
2170
+ /** @enum {string} */
2171
+ groupType: "RATING"
2172
+ payload: components["schemas"]["RatingPayload"]
2173
+ }
2174
+ /**
2175
+ * MatrixBlock
2176
+ *
2177
+ * A block with type MATRIX. Container for matrix/grid questions.
2178
+ */
2179
+ MatrixBlock: {
2180
+ uuid: components["schemas"]["BlockUuid"]
2181
+ /** @enum {string} */
2182
+ type: "MATRIX"
2183
+ groupUuid: components["schemas"]["GroupUuid"]
2184
+ /** @enum {string} */
2185
+ groupType: "MATRIX"
2186
+ payload: components["schemas"]["MatrixPayload"]
2187
+ }
2188
+ /**
2189
+ * MatrixRowBlock
2190
+ *
2191
+ * A block with type MATRIX_ROW. Row within a matrix question.
2192
+ */
2193
+ MatrixRowBlock: {
2194
+ uuid: components["schemas"]["BlockUuid"]
2195
+ /** @enum {string} */
2196
+ type: "MATRIX_ROW"
2197
+ groupUuid: components["schemas"]["GroupUuid"]
2198
+ /** @enum {string} */
2199
+ groupType: "MATRIX"
2200
+ payload: components["schemas"]["MatrixRowPayload"]
2201
+ }
2202
+ /**
2203
+ * MatrixColumnBlock
2204
+ *
2205
+ * A block with type MATRIX_COLUMN. Column within a matrix question.
2206
+ */
2207
+ MatrixColumnBlock: {
2208
+ uuid: components["schemas"]["BlockUuid"]
2209
+ /** @enum {string} */
2210
+ type: "MATRIX_COLUMN"
2211
+ groupUuid: components["schemas"]["GroupUuid"]
2212
+ /** @enum {string} */
2213
+ groupType: "MATRIX"
2214
+ payload: components["schemas"]["MatrixColumnPayload"]
2215
+ }
2216
+ /**
2217
+ * FileUploadBlock
2218
+ *
2219
+ * A block with type FILE_UPLOAD. Used for file upload input.
2220
+ */
2221
+ FileUploadBlock: {
2222
+ uuid: components["schemas"]["BlockUuid"]
2223
+ /** @enum {string} */
2224
+ type: "FILE_UPLOAD"
2225
+ groupUuid: components["schemas"]["GroupUuid"]
2226
+ /** @enum {string} */
2227
+ groupType: "FILE_UPLOAD"
2228
+ payload: components["schemas"]["FileUploadPayload"]
2229
+ }
2230
+ /**
2231
+ * SignatureBlock
2232
+ *
2233
+ * A block with type SIGNATURE. Used for capturing signatures.
2234
+ */
2235
+ SignatureBlock: {
2236
+ uuid: components["schemas"]["BlockUuid"]
2237
+ /** @enum {string} */
2238
+ type: "SIGNATURE"
2239
+ groupUuid: components["schemas"]["GroupUuid"]
2240
+ /** @enum {string} */
2241
+ groupType: "SIGNATURE"
2242
+ payload: components["schemas"]["SignaturePayload"]
2243
+ }
2244
+ /**
2245
+ * PaymentBlock
2246
+ *
2247
+ * A block with type PAYMENT. Used for payment collection.
2248
+ */
2249
+ PaymentBlock: {
2250
+ uuid: components["schemas"]["BlockUuid"]
2251
+ /** @enum {string} */
2252
+ type: "PAYMENT"
2253
+ groupUuid: components["schemas"]["GroupUuid"]
2254
+ /** @enum {string} */
2255
+ groupType: "PAYMENT"
2256
+ payload: components["schemas"]["PaymentPayload"]
2257
+ }
2258
+ /**
2259
+ * HiddenFieldsBlock
2260
+ *
2261
+ * A block with type HIDDEN_FIELDS. Used for hidden form fields.
2262
+ */
2263
+ HiddenFieldsBlock: {
2264
+ uuid: components["schemas"]["BlockUuid"]
2265
+ /** @enum {string} */
2266
+ type: "HIDDEN_FIELDS"
2267
+ groupUuid: components["schemas"]["GroupUuid"]
2268
+ /** @enum {string} */
2269
+ groupType: "HIDDEN_FIELDS"
2270
+ payload: components["schemas"]["HiddenFieldsPayload"]
2271
+ }
2272
+ /**
2273
+ * ConditionalLogicBlock
2274
+ *
2275
+ * A block with type CONDITIONAL_LOGIC. Used for form branching logic.
2276
+ */
2277
+ ConditionalLogicBlock: {
2278
+ uuid: components["schemas"]["BlockUuid"]
2279
+ /** @enum {string} */
2280
+ type: "CONDITIONAL_LOGIC"
2281
+ groupUuid: components["schemas"]["GroupUuid"]
2282
+ /** @enum {string} */
2283
+ groupType: "CONDITIONAL_LOGIC"
2284
+ payload: components["schemas"]["ConditionalLogicPayload"]
2285
+ }
2286
+ /**
2287
+ * CalculatedFieldsBlock
2288
+ *
2289
+ * A block with type CALCULATED_FIELDS. Used for computed/calculated values.
2290
+ */
2291
+ CalculatedFieldsBlock: {
2292
+ uuid: components["schemas"]["BlockUuid"]
2293
+ /** @enum {string} */
2294
+ type: "CALCULATED_FIELDS"
2295
+ groupUuid: components["schemas"]["GroupUuid"]
2296
+ /** @enum {string} */
2297
+ groupType: "CALCULATED_FIELDS"
2298
+ payload: components["schemas"]["CalculatedFieldsPayload"]
2299
+ }
2300
+ /**
2301
+ * CaptchaBlock
2302
+ *
2303
+ * A block with type CAPTCHA. Used for bot protection.
2304
+ */
2305
+ CaptchaBlock: {
2306
+ uuid: components["schemas"]["BlockUuid"]
2307
+ /** @enum {string} */
2308
+ type: "CAPTCHA"
2309
+ groupUuid: components["schemas"]["GroupUuid"]
2310
+ /** @enum {string} */
2311
+ groupType: "CAPTCHA"
2312
+ payload: components["schemas"]["CaptchaPayload"]
2313
+ }
2314
+ /**
2315
+ * RespondentCountryBlock
2316
+ *
2317
+ * A block with type RESPONDENT_COUNTRY. Used for capturing respondent
2318
+ * location.
2319
+ */
2320
+ RespondentCountryBlock: {
2321
+ uuid: components["schemas"]["BlockUuid"]
2322
+ /** @enum {string} */
2323
+ type: "RESPONDENT_COUNTRY"
2324
+ groupUuid: components["schemas"]["GroupUuid"]
2325
+ /** @enum {string} */
2326
+ groupType: "RESPONDENT_COUNTRY"
2327
+ payload: components["schemas"]["RespondentCountryPayload"]
2328
+ }
2329
+ GetFormsResponse: {
2330
+ items: components["schemas"]["Form"][]
2331
+ /** Current page number */
2332
+ page: number
2333
+ /** Number of items per page */
2334
+ limit: number
2335
+ /** Total number of items */
2336
+ total: number
2337
+ /** Whether there are more pages available */
2338
+ hasMore: boolean
2339
+ }
2340
+ PostFormsRequest: {
2341
+ /**
2342
+ * ID of the workspace to create the form in. If not provided, uses the
2343
+ * user's default workspace
2344
+ */
2345
+ workspaceId?: string
2346
+ /** ID of the template to base the form on */
2347
+ templateId?: string
2348
+ /**
2349
+ * ID of the folder to place the form in. Must belong to the target
2350
+ * workspace.
2351
+ */
2352
+ folderId?: string
2353
+ /** Initial status of the form */
2354
+ status: components["schemas"]["FormStatus"]
2355
+ blocks: components["schemas"]["Block"][]
2356
+ settings?: components["schemas"]["FormSettings"]
2357
+ }
2358
+ PostFormsResponse: components["schemas"]["Form"]
2359
+ GetFormsFormIdResponse: components["schemas"]["Form"] & {
2360
+ settings?: components["schemas"]["FormSettings"]
2361
+ blocks?: components["schemas"]["Block"][]
2362
+ }
2363
+ PatchFormsFormIdRequest: {
2364
+ /** New name for the form */
2365
+ name?: string
2366
+ /** New status for the form */
2367
+ status?: components["schemas"]["FormStatus"]
2368
+ /** Updated blocks for the form */
2369
+ blocks?: components["schemas"]["Block"][]
2370
+ /** Updated settings for the form */
2371
+ settings?: components["schemas"]["FormSettings"]
2372
+ }
2373
+ PatchFormsFormIdResponse: components["schemas"]["Form"]
2374
+ GetUsersMeResponse: {
2375
+ subscriptionPlan?: string
2376
+ } & components["schemas"]["User"]
2377
+ GetWorkspacesResponse: {
2378
+ items: components["schemas"]["Workspace"][]
2379
+ /** Current page number */
2380
+ page: number
2381
+ /** Number of items per page */
2382
+ limit: number
2383
+ /** Total number of items */
2384
+ total: number
2385
+ /** Whether there are more pages available */
2386
+ hasMore: boolean
2387
+ }
2388
+ PostWorkspacesRequest: {
2389
+ /** The name of the workspace */
2390
+ name: string
2391
+ }
2392
+ PostWorkspacesResponse: components["schemas"]["Workspace"]
2393
+ GetWorkspacesWorkspaceIdResponse: components["schemas"]["Workspace"]
2394
+ PatchWorkspacesWorkspaceIdRequest: {
2395
+ /** The new name for the workspace */
2396
+ name: string
2397
+ }
2398
+ GetWorkspacesWorkspaceIdFoldersResponse: components["schemas"]["Folder"][]
2399
+ PostWorkspacesWorkspaceIdFoldersRequest: {
2400
+ /** The name of the folder */
2401
+ name: string
2402
+ /** The ID of the parent folder to nest this folder under */
2403
+ parentId?: string
2404
+ }
2405
+ PostWorkspacesWorkspaceIdFoldersResponse: components["schemas"]["Folder"]
2406
+ PatchWorkspacesWorkspaceIdFoldersIdRequest: {
2407
+ /** The new name for the folder */
2408
+ name: string
2409
+ }
2410
+ GetOrganizationsOrganizationIdUsersResponse: components["schemas"]["User"][]
2411
+ GetOrganizationsOrganizationIdInvitesResponse: {
2412
+ id?: string
2413
+ organizationId?: string
2414
+ email?: string
2415
+ /** Format: date-time */
2416
+ createdAt?: string
2417
+ /** Format: date-time */
2418
+ updatedAt?: string
2419
+ }[]
2420
+ PostOrganizationsOrganizationIdInvitesRequest: {
2421
+ /** Array of workspace IDs to invite users to */
2422
+ workspaceIds: string[]
2423
+ /** Comma or semicolon separated list of email addresses to invite */
2424
+ emails: string
2425
+ }
2426
+ GetFormsFormIdQuestionsResponse: {
2427
+ questions?: components["schemas"]["Question"][]
2428
+ hasResponses?: boolean
2429
+ }
2430
+ PatchFormsFormIdQuestionsQuestionIdRequest: {
2431
+ /** The new title for the question */
2432
+ title?: string
2433
+ }
2434
+ PatchFormsFormIdQuestionsQuestionIdResponse: components["schemas"]["Question"]
2435
+ GetFormsFormIdBlocksResponse: {
2436
+ id?: string
2437
+ name?: string
2438
+ blocks?: components["schemas"]["Block"][]
2439
+ }
2440
+ PatchFormsFormIdBlocksRequest: {
2441
+ blocks: components["schemas"]["Block"][]
2442
+ settings?: components["schemas"]["FormSettings"] | null
2443
+ }
2444
+ PatchFormsFormIdBlocksResponse: components["schemas"]["Block"]
2445
+ GetFormsFormIdSubmissionsResponse: {
2446
+ /** Current page number */
2447
+ page?: number
2448
+ /** Number of submissions per page */
2449
+ limit?: number
2450
+ /** Whether there are more pages available */
2451
+ hasMore?: boolean
2452
+ totalNumberOfSubmissionsPerFilter?: {
2453
+ /** Total number of all submissions */
2454
+ all?: number
2455
+ /** Total number of completed submissions */
2456
+ completed?: number
2457
+ /** Total number of partial submissions */
2458
+ partial?: number
2459
+ }
2460
+ /** List of form questions */
2461
+ questions?: components["schemas"]["Question"][]
2462
+ /** List of form submissions */
2463
+ submissions?: {
2464
+ /** Submission ID */
2465
+ id?: string
2466
+ /** Form ID */
2467
+ formId?: string
2468
+ /** Whether the submission is completed */
2469
+ isCompleted?: boolean
2470
+ /**
2471
+ * Format: date-time
2472
+ *
2473
+ * When the submission was submitted
2474
+ */
2475
+ submittedAt?: string
2476
+ /**
2477
+ * Format: uri
2478
+ *
2479
+ * Signed URL to view the submission in a browser. Includes an access
2480
+ * token, no expiry.
2481
+ */
2482
+ previewUrl?: string
2483
+ /**
2484
+ * Format: uri
2485
+ *
2486
+ * Signed URL to download the submission as a PDF. Includes an access
2487
+ * token, no expiry.
2488
+ */
2489
+ pdfUrl?: string
2490
+ /**
2491
+ * List of responses to form questions. Note: Only questions that have
2492
+ * been answered will appear in this array.
2493
+ */
2494
+ responses?: {
2495
+ /** Response ID */
2496
+ id: string
2497
+ /** Form ID */
2498
+ formId: string
2499
+ /** Question ID */
2500
+ questionId: string
2501
+ /** Respondent ID */
2502
+ respondentId: string
2503
+ /** Submission ID */
2504
+ submissionId?: string | null
2505
+ /**
2506
+ * Format: uuid
2507
+ *
2508
+ * Session UUID
2509
+ */
2510
+ sessionUuid: string
2511
+ /**
2512
+ * The answer value for this question. Type varies based on question
2513
+ * type.
2514
+ */
2515
+ answer:
2516
+ | (string | number | boolean | unknown[] | Record<string, never>)
2517
+ | null
2518
+ /** Formatted answer (e.g., for number inputs with custom formatting) */
2519
+ formattedAnswer?: string
2520
+ /**
2521
+ * Format: date-time
2522
+ *
2523
+ * When the response was created
2524
+ */
2525
+ createdAt: string
2526
+ /**
2527
+ * Format: date-time
2528
+ *
2529
+ * When the response was last updated
2530
+ */
2531
+ updatedAt: string
2532
+ }[]
2533
+ }[]
2534
+ }
2535
+ GetFormsFormIdSubmissionsSubmissionIdResponse: {
2536
+ /** List of form questions with their fields */
2537
+ questions?: components["schemas"]["Question"][]
2538
+ /** The form submission with responses */
2539
+ submission?: {
2540
+ /** Submission ID */
2541
+ id?: string
2542
+ /** Form ID */
2543
+ formId?: string
2544
+ /** Whether the submission is completed */
2545
+ isCompleted?: boolean
2546
+ /**
2547
+ * Format: date-time
2548
+ *
2549
+ * When the submission was submitted
2550
+ */
2551
+ submittedAt?: string
2552
+ /**
2553
+ * Format: date-time
2554
+ *
2555
+ * When the submission was created
2556
+ */
2557
+ createdAt?: string
2558
+ /**
2559
+ * Format: date-time
2560
+ *
2561
+ * When the submission was last updated
2562
+ */
2563
+ updatedAt?: string
2564
+ /**
2565
+ * Format: uri
2566
+ *
2567
+ * Signed URL to view the submission in a browser. Includes an access
2568
+ * token, no expiry.
2569
+ */
2570
+ previewUrl?: string
2571
+ /**
2572
+ * Format: uri
2573
+ *
2574
+ * Signed URL to download the submission as a PDF. Includes an access
2575
+ * token, no expiry.
2576
+ */
2577
+ pdfUrl?: string
2578
+ /**
2579
+ * List of responses to form questions. Note: Only questions that have
2580
+ * been answered will appear in this array.
2581
+ */
2582
+ responses?: {
2583
+ /** Response ID */
2584
+ id: string
2585
+ /** Form ID */
2586
+ formId: string
2587
+ /** Question ID */
2588
+ questionId: string
2589
+ /** Respondent ID */
2590
+ respondentId: string
2591
+ /** Submission ID */
2592
+ submissionId?: string | null
2593
+ /**
2594
+ * Format: uuid
2595
+ *
2596
+ * Session UUID
2597
+ */
2598
+ sessionUuid: string
2599
+ /**
2600
+ * The answer value for this question. Type varies based on question
2601
+ * type.
2602
+ */
2603
+ answer:
2604
+ | (string | number | boolean | unknown[] | Record<string, never>)
2605
+ | null
2606
+ /** Formatted answer (e.g., for number inputs with custom formatting) */
2607
+ formattedAnswer?: string
2608
+ /**
2609
+ * Format: date-time
2610
+ *
2611
+ * When the response was created
2612
+ */
2613
+ createdAt: string
2614
+ /**
2615
+ * Format: date-time
2616
+ *
2617
+ * When the response was last updated
2618
+ */
2619
+ updatedAt: string
2620
+ }[]
2621
+ }
2622
+ }
2623
+ GetFormsFormIdAnalyticsMetricsResponse: {
2624
+ visits?: number
2625
+ visitDuration?: number
2626
+ submissions?: number
2627
+ uniqueRespondents?: number
2628
+ totalViews?: number
2629
+ starts?: number
2630
+ completions?: number
2631
+ completionDuration?: number
2632
+ completionRate?: number
2633
+ }
2634
+ GetFormsFormIdAnalyticsVisitsResponse: {
2635
+ data?: {
2636
+ [key: string]: {
2637
+ totalVisits?: number
2638
+ }
2639
+ }
2640
+ interval?: number
2641
+ }
2642
+ GetFormsFormIdAnalyticsSubmissionsResponse: {
2643
+ data?: {
2644
+ [key: string]: {
2645
+ completed?: number
2646
+ partial?: number
2647
+ }
2648
+ }
2649
+ interval?: number
2650
+ }
2651
+ GetFormsFormIdAnalyticsDimensionsResponse: {
2652
+ source?: {
2653
+ [key: string]: number
2654
+ }
2655
+ browser?: {
2656
+ [key: string]: number
2657
+ }
2658
+ os?: {
2659
+ [key: string]: number
2660
+ }
2661
+ device?: {
2662
+ [key: string]: number
2663
+ }
2664
+ country?: {
2665
+ [key: string]: number
2666
+ }
2667
+ city?: {
2668
+ [key: string]: number
2669
+ }
2670
+ }
2671
+ GetFormsFormIdAnalyticsDropOffResponse: {
2672
+ stats?: {
2673
+ totalVisitors?: number
2674
+ formStarts?: number
2675
+ formCompletes?: number
2676
+ completionRate?: number
2677
+ completionTimeInSeconds?: number
2678
+ visitDurationInSeconds?: number
2679
+ }
2680
+ /** Format: date-time */
2681
+ dataAvailableSince?: string
2682
+ shouldShowDataCutoffNotice?: boolean
2683
+ data?: {
2684
+ blockGroupUuid?: string
2685
+ views?: number
2686
+ startedViews?: number
2687
+ answers?: number
2688
+ drops?: number
2689
+ title?: string
2690
+ type?: string
2691
+ answerRate?: number
2692
+ dropRate?: number
2693
+ isRequired?: boolean
2694
+ }[]
2695
+ hasConditionalLogic?: boolean
2696
+ } | null
2697
+ GetWebhooksResponse: {
2698
+ /** List of webhooks */
2699
+ webhooks?: {
2700
+ /** Webhook ID */
2701
+ id?: string
2702
+ /** Form ID the webhook is attached to */
2703
+ formId?: string
2704
+ /** The webhook endpoint URL */
2705
+ url?: string
2706
+ /** Secret used to sign webhook payloads */
2707
+ signingSecret?: string | null
2708
+ /** Custom HTTP headers to include in webhook requests */
2709
+ httpHeaders?:
2710
+ | {
2711
+ /** Header name */
2712
+ name?: string
2713
+ /** Header value */
2714
+ value?: string
2715
+ }[]
2716
+ | null
2717
+ /** Types of events this webhook subscribes to */
2718
+ eventTypes?: components["schemas"]["EventType"][]
2719
+ /** External subscriber identifier */
2720
+ externalSubscriber?: string | null
2721
+ /** Whether the webhook is enabled */
2722
+ isEnabled?: boolean
2723
+ /**
2724
+ * Format: date-time
2725
+ *
2726
+ * When the webhook was last synced
2727
+ */
2728
+ lastSyncedAt?: string | null
2729
+ /**
2730
+ * Format: date-time
2731
+ *
2732
+ * When the webhook was created
2733
+ */
2734
+ createdAt?: string
2735
+ /**
2736
+ * Format: date-time
2737
+ *
2738
+ * When the webhook was last updated
2739
+ */
2740
+ updatedAt?: string
2741
+ }[]
2742
+ /** Current page number */
2743
+ page?: number
2744
+ /** Number of webhooks per page */
2745
+ limit?: number
2746
+ /** Whether there are more pages available */
2747
+ hasMore?: boolean
2748
+ /** Total number of webhooks */
2749
+ totalCount?: number
2750
+ }
2751
+ PostWebhooksRequest: {
2752
+ /** The ID of the form to create the webhook for */
2753
+ formId: string
2754
+ /** The URL to send webhook events to */
2755
+ url: string
2756
+ /** Optional secret used to sign webhook payloads */
2757
+ signingSecret?: string | null
2758
+ /** Optional custom HTTP headers to include in webhook requests */
2759
+ httpHeaders?:
2760
+ | {
2761
+ /** The header name */
2762
+ name: string
2763
+ /** The header value */
2764
+ value: string
2765
+ }[]
2766
+ | null
2767
+ /** Types of events to receive */
2768
+ eventTypes: components["schemas"]["EventType"][]
2769
+ /** Optional identifier for the external subscriber */
2770
+ externalSubscriber?: string
2771
+ }
2772
+ PostWebhooksResponse: {
2773
+ id?: string
2774
+ url?: string
2775
+ eventTypes?: components["schemas"]["EventType"][]
2776
+ isEnabled?: boolean
2777
+ /** Format: date-time */
2778
+ createdAt?: string
2779
+ }
2780
+ PatchWebhooksWebhookIdRequest: {
2781
+ /** The ID of the form the webhook is for */
2782
+ formId: string
2783
+ /** The URL to send webhook events to */
2784
+ url: string
2785
+ /** Optional secret used to sign webhook payloads */
2786
+ signingSecret?: string | null
2787
+ /** Optional custom HTTP headers to include in webhook requests */
2788
+ httpHeaders?:
2789
+ | {
2790
+ /** The header name */
2791
+ name: string
2792
+ /** The header value */
2793
+ value: string
2794
+ }[]
2795
+ | null
2796
+ /** Types of events to receive */
2797
+ eventTypes: components["schemas"]["EventType"][]
2798
+ /** Whether the webhook is enabled */
2799
+ isEnabled: boolean
2800
+ }
2801
+ GetWebhooksWebhookIdEventsResponse: {
2802
+ /** Current page number */
2803
+ page?: number
2804
+ /** Number of events per page (25) */
2805
+ limit?: number
2806
+ /** Whether there are more pages available */
2807
+ hasMore?: boolean
2808
+ /** Total number of webhook events */
2809
+ totalNumberOfEvents?: number
2810
+ /** List of webhook events */
2811
+ events?: {
2812
+ /** Event ID */
2813
+ id?: string
2814
+ /** Webhook ID */
2815
+ webhookId?: string
2816
+ /** The URL the webhook was sent to */
2817
+ webhookUrl?: string
2818
+ /**
2819
+ * Type of event
2820
+ *
2821
+ * @enum {string}
2822
+ */
2823
+ eventType?: "FORM_RESPONSE"
2824
+ /**
2825
+ * Delivery status of the webhook
2826
+ *
2827
+ * @enum {string}
2828
+ */
2829
+ deliveryStatus?: "QUEUED" | "SUCCEEDED" | "FAILED" | "DROPPED"
2830
+ /** HTTP status code returned by the webhook endpoint */
2831
+ statusCode?: number | null
2832
+ /** Response body from the webhook endpoint */
2833
+ response?: string | null
2834
+ /** Number of retry attempts */
2835
+ retry?: number
2836
+ /** The webhook payload that was sent */
2837
+ payload?: Record<string, never>
2838
+ /**
2839
+ * Format: date-time
2840
+ *
2841
+ * When the event was created
2842
+ */
2843
+ createdAt?: string
2844
+ /**
2845
+ * Format: date-time
2846
+ *
2847
+ * When the event was last updated
2848
+ */
2849
+ updatedAt?: string
2850
+ }[]
2851
+ }
2852
+ }
2853
+ responses: never
2854
+ parameters: never
2855
+ requestBodies: never
2856
+ headers: never
2857
+ pathItems: never
2858
+ }