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