@automate.ax/integration-contracts 0.146.1 → 0.147.1

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