quickbase-js 1.2.0 → 2.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +351 -227
  2. package/dist/auth/index.d.ts +15 -0
  3. package/dist/auth/index.d.ts.map +1 -0
  4. package/dist/auth/index.js +29 -0
  5. package/dist/auth/index.js.map +1 -0
  6. package/dist/auth/sso-token.d.ts +28 -0
  7. package/dist/auth/sso-token.d.ts.map +1 -0
  8. package/dist/auth/sso-token.js +108 -0
  9. package/dist/auth/sso-token.js.map +1 -0
  10. package/dist/auth/temp-token.d.ts +31 -0
  11. package/dist/auth/temp-token.d.ts.map +1 -0
  12. package/dist/auth/temp-token.js +121 -0
  13. package/dist/auth/temp-token.js.map +1 -0
  14. package/dist/auth/token-cache.d.ts +44 -0
  15. package/dist/auth/token-cache.d.ts.map +1 -0
  16. package/dist/auth/token-cache.js +84 -0
  17. package/dist/auth/token-cache.js.map +1 -0
  18. package/dist/auth/types.d.ts +44 -0
  19. package/dist/auth/types.d.ts.map +1 -0
  20. package/dist/auth/types.js +5 -0
  21. package/dist/auth/types.js.map +1 -0
  22. package/dist/auth/user-token.d.ts +17 -0
  23. package/dist/auth/user-token.d.ts.map +1 -0
  24. package/dist/auth/user-token.js +30 -0
  25. package/dist/auth/user-token.js.map +1 -0
  26. package/dist/client/index.d.ts +12 -0
  27. package/dist/client/index.d.ts.map +1 -0
  28. package/dist/client/index.js +8 -0
  29. package/dist/client/index.js.map +1 -0
  30. package/dist/client/pagination.d.ts +131 -0
  31. package/dist/client/pagination.d.ts.map +1 -0
  32. package/dist/client/pagination.js +232 -0
  33. package/dist/client/pagination.js.map +1 -0
  34. package/dist/client/request.d.ts +45 -0
  35. package/dist/client/request.d.ts.map +1 -0
  36. package/dist/client/request.js +232 -0
  37. package/dist/client/request.js.map +1 -0
  38. package/dist/client/retry.d.ts +41 -0
  39. package/dist/client/retry.d.ts.map +1 -0
  40. package/dist/client/retry.js +122 -0
  41. package/dist/client/retry.js.map +1 -0
  42. package/dist/client/throttle.d.ts +46 -0
  43. package/dist/client/throttle.d.ts.map +1 -0
  44. package/dist/client/throttle.js +85 -0
  45. package/dist/client/throttle.js.map +1 -0
  46. package/dist/core/config.d.ts +13 -0
  47. package/dist/core/config.d.ts.map +1 -0
  48. package/dist/core/config.js +120 -0
  49. package/dist/core/config.js.map +1 -0
  50. package/dist/core/dates.d.ts +18 -0
  51. package/dist/core/dates.d.ts.map +1 -0
  52. package/dist/core/dates.js +58 -0
  53. package/dist/core/dates.js.map +1 -0
  54. package/dist/core/errors.d.ts +134 -0
  55. package/dist/core/errors.d.ts.map +1 -0
  56. package/dist/core/errors.js +185 -0
  57. package/dist/core/errors.js.map +1 -0
  58. package/dist/core/index.d.ts +10 -0
  59. package/dist/core/index.d.ts.map +1 -0
  60. package/dist/core/index.js +9 -0
  61. package/dist/core/index.js.map +1 -0
  62. package/dist/core/logger.d.ts +41 -0
  63. package/dist/core/logger.d.ts.map +1 -0
  64. package/dist/core/logger.js +96 -0
  65. package/dist/core/logger.js.map +1 -0
  66. package/dist/core/types.d.ts +154 -0
  67. package/dist/core/types.d.ts.map +1 -0
  68. package/dist/core/types.js +23 -0
  69. package/dist/core/types.js.map +1 -0
  70. package/dist/generated/client.d.ts +18 -0
  71. package/dist/generated/client.d.ts.map +1 -0
  72. package/dist/generated/client.js +1390 -0
  73. package/dist/generated/client.js.map +1 -0
  74. package/dist/generated/types.d.ts +3827 -0
  75. package/dist/generated/types.d.ts.map +1 -0
  76. package/dist/generated/types.js +8 -0
  77. package/dist/generated/types.js.map +1 -0
  78. package/dist/index.d.ts +89 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +99 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/quickbase.esm.js +7 -0
  83. package/dist/quickbase.esm.js.map +7 -0
  84. package/dist/quickbase.min.js +7 -0
  85. package/dist/quickbase.min.js.map +7 -0
  86. package/package.json +60 -86
  87. package/dist/esm/quickbase.d.ts +0 -8094
  88. package/dist/esm/quickbase.js +0 -8333
  89. package/dist/esm/quickbase.js.map +0 -1
  90. package/dist/esm/quickbase.min.js +0 -2
  91. package/dist/esm/quickbase.min.js.map +0 -1
  92. package/dist/umd/quickbase.umd.js +0 -8909
  93. package/dist/umd/quickbase.umd.js.map +0 -1
  94. package/dist/umd/quickbase.umd.min.js +0 -2
  95. package/dist/umd/quickbase.umd.min.js.map +0 -1
@@ -0,0 +1,3827 @@
1
+ /**
2
+ * Auto-generated TypeScript types from OpenAPI spec
3
+ * DO NOT EDIT - Regenerate with: npm run spec:generate
4
+ */
5
+ import type { PaginatedRequest } from '../client/pagination.js';
6
+ /**
7
+ * A field value in a QuickBase record.
8
+ * The value type depends on the field type:
9
+ * - string: text, email, URL, date/time (ISO format)
10
+ * - number: numeric fields, record IDs
11
+ * - boolean: checkbox fields
12
+ * - string[]: multi-select text lists
13
+ * - { id: string }[]: file attachments
14
+ */
15
+ export interface FieldValue {
16
+ value: string | number | boolean | string[] | {
17
+ id: string;
18
+ }[];
19
+ }
20
+ /**
21
+ * A QuickBase record where keys are field IDs (as strings) and values are FieldValue objects.
22
+ */
23
+ export interface QuickbaseRecord {
24
+ [fieldId: string]: FieldValue;
25
+ }
26
+ /**
27
+ * A field to sort by in a query.
28
+ */
29
+ export interface SortField {
30
+ /** The unique identifier of a field in a table. */
31
+ fieldId: number;
32
+ /** Sort direction: 'ASC' (ascending), 'DESC' (descending), or 'equal-values'. */
33
+ order: 'ASC' | 'DESC' | 'equal-values';
34
+ }
35
+ /** Create an app */
36
+ export interface CreateAppRequest {
37
+ /** Set to true if you would like to assign the app to the user token you used to create the application. The default is false. */
38
+ assignToken?: boolean;
39
+ /** The app variables. A maximum of 10 variables can be inserted at a time. See [About Application Variables](https://help.quickbase.com/user-assistance/variables.html) */
40
+ variables?: {
41
+ /** The name for the variable. */
42
+ name: string;
43
+ /** The value for the variable. */
44
+ value: string;
45
+ }[];
46
+ /** The app name. You are allowed to create multiple apps with the same name, in the same realm, because they will have different dbid values. We urge you to be careful about doing this. */
47
+ name: string;
48
+ /** Application security properties. */
49
+ securityProperties?: {
50
+ /** Hide from public application searches */
51
+ hideFromPublic?: boolean;
52
+ /** Only "approved" users may access this application */
53
+ mustBeRealmApproved?: boolean;
54
+ /** Allow users who are not administrators to copy */
55
+ allowClone?: boolean;
56
+ /** Only users logging in from "approved" IP addresses may access this application */
57
+ useIPFilter?: boolean;
58
+ /** Allow users who are not administrators to export data */
59
+ allowExport?: boolean;
60
+ /** Require Application Tokens */
61
+ enableAppTokens?: boolean;
62
+ };
63
+ /** The description for the app. If this property is left out, the app description will be blank. */
64
+ description?: string;
65
+ }
66
+ export interface CreateAppResponse {
67
+ /** The app name. You are allowed to create multiple apps with the same name, in the same realm, because they will have different dbid values. We urge you to be careful about doing this. */
68
+ name: string;
69
+ /** The description for the app. If this property is left out, the app description will be blank. */
70
+ description?: string;
71
+ /** The time and date the app was created, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
72
+ created?: string;
73
+ /** The time and date the app was last updated, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
74
+ updated?: string;
75
+ /** A description of the format used when displaying date values in this app. Note that this is a browser-only parameter - see the [Field type details](../fieldInfo) page in the API Guide for how time values are returned in API calls. See [About Localizing Dates](https://help.quickbase.com/user-assistance/about_localizing_dates_numbers.html) to set the app’s date format. */
76
+ dateFormat?: string;
77
+ /** A description of the time zone used when displaying time values in this app. Note that this is a browser-only parameter - see the [Field type details](../fieldInfo) page in the portal for how time values are returned in API calls. See [Set the Time Zone for Both the Application and the Account](https://help.quickbase.com/user-assistance/application_local_timezone.html) to set the application’s time zone. */
78
+ timeZone?: string;
79
+ /** Application memory info */
80
+ memoryInfo?: {
81
+ /** The estimated memory of this application in gigabytes */
82
+ estMemory?: number;
83
+ /** The estimated memory of this application and all dependent applications in gigabytes */
84
+ estMemoryInclDependentApps?: number;
85
+ };
86
+ /** The unique identifier for this application. */
87
+ id?: string;
88
+ /** Indicates whether app includes Everyone On The Internet access. See [Sharing apps with Everyone on the Internet (EOTI).](https://help.quickbase.com/user-assistance/share_with_everyone_on_internet.html) */
89
+ hasEveryoneOnTheInternet?: boolean;
90
+ /** The app variables. See [About Application Variables](https://help.quickbase.com/user-assistance/variables.html) */
91
+ variables?: {
92
+ /** Variable name. */
93
+ name?: string;
94
+ /** Variable value. */
95
+ value?: string;
96
+ [key: string]: unknown;
97
+ }[];
98
+ /** The Data Classification label assigned to the application. If Data Classification is not turned on, this will not be returned. If Data Classification is turned on, but application is not labeled, we return “None". Data Classification labels can be added in the Admin Console by a Realm Administrator for Platform+ plans. */
99
+ dataClassification?: string;
100
+ /** Security properties of the application */
101
+ securityProperties?: {
102
+ /** Allow users who are not administrators to copy */
103
+ allowClone?: boolean;
104
+ /** Allow users who are not administrators to export data */
105
+ allowExport?: boolean;
106
+ /** Hide from public application searches */
107
+ hideFromPublic?: boolean;
108
+ /** Require Application Tokens */
109
+ enableAppTokens?: boolean;
110
+ /** Only users logging in from "approved" IP addresses may access this application */
111
+ useIPFilter?: boolean;
112
+ /** Only "approved" users may access this application */
113
+ mustBeRealmApproved?: boolean;
114
+ [key: string]: unknown;
115
+ };
116
+ [key: string]: unknown;
117
+ }
118
+ /** Get an app */
119
+ export interface GetAppParams {
120
+ /** The unique identifier of an app */
121
+ appId: string;
122
+ }
123
+ export interface GetAppResponse {
124
+ /** The id of the app from which this app was copied */
125
+ ancestorId?: string;
126
+ /** The app name. You are allowed to create multiple apps with the same name, in the same realm, because they will have different dbid values. We urge you to be careful about doing this. */
127
+ name: string;
128
+ /** The description for the app. If this property is left out, the app description will be blank. */
129
+ description?: string;
130
+ /** The time and date the app was created, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
131
+ created?: string;
132
+ /** The time and date the app was last updated, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
133
+ updated?: string;
134
+ /** A description of the format used when displaying date values in this app. Note that this is a browser-only parameter - see the [Field type details](../fieldInfo) page in the API Guide for how time values are returned in API calls. See [About Localizing Dates](https://help.quickbase.com/user-assistance/about_localizing_dates_numbers.html) to set the app’s date format. */
135
+ dateFormat?: string;
136
+ /** A description of the time zone used when displaying time values in this app. Note that this is a browser-only parameter - see the [Field type details](../fieldInfo) page in the portal for how time values are returned in API calls. See [Set the Time Zone for Both the Application and the Account](https://help.quickbase.com/user-assistance/application_local_timezone.html) to set the application’s time zone. */
137
+ timeZone?: string;
138
+ /** Application memory info */
139
+ memoryInfo?: {
140
+ /** The estimated memory of this application in gigabytes */
141
+ estMemory?: number;
142
+ /** The estimated memory of this application and all dependent applications in gigabytes */
143
+ estMemoryInclDependentApps?: number;
144
+ };
145
+ /** The unique identifier for this application. */
146
+ id?: string;
147
+ /** Indicates whether app includes Everyone On The Internet access. See [Sharing apps with Everyone on the Internet (EOTI).](https://help.quickbase.com/user-assistance/share_with_everyone_on_internet.html) */
148
+ hasEveryoneOnTheInternet?: boolean;
149
+ /** The app variables. See [About Application Variables](https://help.quickbase.com/user-assistance/variables.html) */
150
+ variables?: {
151
+ /** Variable name. */
152
+ name?: string;
153
+ /** Variable value. */
154
+ value?: string;
155
+ [key: string]: unknown;
156
+ }[];
157
+ /** The Data Classification label assigned to the application. If Data Classification is not turned on, this will not be returned. If Data Classification is turned on, but application is not labeled, we return “None". Data Classification labels can be added in the Admin Console by a Realm Administrator for Platform+ plans. */
158
+ dataClassification?: string;
159
+ /** Security properties of the application */
160
+ securityProperties?: {
161
+ /** Allow users who are not administrators to copy */
162
+ allowClone?: boolean;
163
+ /** Allow users who are not administrators to export data */
164
+ allowExport?: boolean;
165
+ /** Hide from public application searches */
166
+ hideFromPublic?: boolean;
167
+ /** Require Application Tokens */
168
+ enableAppTokens?: boolean;
169
+ /** Only users logging in from "approved" IP addresses may access this application */
170
+ useIPFilter?: boolean;
171
+ /** Only "approved" users may access this application */
172
+ mustBeRealmApproved?: boolean;
173
+ [key: string]: unknown;
174
+ };
175
+ [key: string]: unknown;
176
+ }
177
+ /** Update an app */
178
+ export interface UpdateAppParams {
179
+ /** The unique identifier of an app */
180
+ appId: string;
181
+ }
182
+ export interface UpdateAppRequest {
183
+ /** The app variables. A maximum of 10 variables can be updated at a time. See [About Application Variables](https://help.quickbase.com/user-assistance/variables.html) */
184
+ variables?: {
185
+ /** The name for the variable. */
186
+ name: string;
187
+ /** The value for the variable. */
188
+ value: string;
189
+ }[];
190
+ /** The name for the app. */
191
+ name?: string;
192
+ /** Security properties of the application */
193
+ securityProperties?: {
194
+ /** Hide from public application searches */
195
+ hideFromPublic?: boolean;
196
+ /** Only "approved" users may access this application */
197
+ mustBeRealmApproved?: boolean;
198
+ /** Allow users who are not administrators to copy */
199
+ allowClone?: boolean;
200
+ /** Only users logging in from "approved" IP addresses may access this application */
201
+ useIPFilter?: boolean;
202
+ /** Allow users who are not administrators to export data */
203
+ allowExport?: boolean;
204
+ /** Require Application Tokens */
205
+ enableAppTokens?: boolean;
206
+ };
207
+ /** The description for the app. */
208
+ description?: string;
209
+ }
210
+ export interface UpdateAppResponse {
211
+ /** The id of the app from which this app was copied */
212
+ ancestorId?: string;
213
+ /** The app name. You are allowed to create multiple apps with the same name, in the same realm, because they will have different dbid values. We urge you to be careful about doing this. */
214
+ name: string;
215
+ /** The description for the app. If this property is left out, the app description will be blank. */
216
+ description?: string;
217
+ /** The time and date the app was created, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
218
+ created?: string;
219
+ /** The time and date the app was last updated, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
220
+ updated?: string;
221
+ /** A description of the format used when displaying date values in this app. Note that this is a browser-only parameter - see the [Field type details](../fieldInfo) page in the API Guide for how time values are returned in API calls. See [About Localizing Dates](https://help.quickbase.com/user-assistance/about_localizing_dates_numbers.html) to set the app’s date format. */
222
+ dateFormat?: string;
223
+ /** A description of the time zone used when displaying time values in this app. Note that this is a browser-only parameter - see the [Field type details](../fieldInfo) page in the portal for how time values are returned in API calls. See [Set the Time Zone for Both the Application and the Account](https://help.quickbase.com/user-assistance/application_local_timezone.html) to set the application’s time zone. */
224
+ timeZone?: string;
225
+ /** Application memory info */
226
+ memoryInfo?: {
227
+ /** The estimated memory of this application in gigabytes */
228
+ estMemory?: number;
229
+ /** The estimated memory of this application and all dependent applications in gigabytes */
230
+ estMemoryInclDependentApps?: number;
231
+ };
232
+ /** The unique identifier for this application. */
233
+ id?: string;
234
+ /** Indicates whether app includes Everyone On The Internet access. See [Sharing apps with Everyone on the Internet (EOTI).](https://help.quickbase.com/user-assistance/share_with_everyone_on_internet.html) */
235
+ hasEveryoneOnTheInternet?: boolean;
236
+ /** The app variables. See [About Application Variables](https://help.quickbase.com/user-assistance/variables.html) */
237
+ variables?: {
238
+ /** Variable name. */
239
+ name?: string;
240
+ /** Variable value. */
241
+ value?: string;
242
+ [key: string]: unknown;
243
+ }[];
244
+ /** The Data Classification label assigned to the application. If Data Classification is not turned on, this will not be returned. If Data Classification is turned on, but application is not labeled, we return “None". Data Classification labels can be added in the Admin Console by a Realm Administrator for Platform+ plans. */
245
+ dataClassification?: string;
246
+ /** Security properties of the application */
247
+ securityProperties?: {
248
+ /** Allow users who are not administrators to copy */
249
+ allowClone?: boolean;
250
+ /** Allow users who are not administrators to export data */
251
+ allowExport?: boolean;
252
+ /** Hide from public application searches */
253
+ hideFromPublic?: boolean;
254
+ /** Require Application Tokens */
255
+ enableAppTokens?: boolean;
256
+ /** Only users logging in from "approved" IP addresses may access this application */
257
+ useIPFilter?: boolean;
258
+ /** Only "approved" users may access this application */
259
+ mustBeRealmApproved?: boolean;
260
+ [key: string]: unknown;
261
+ };
262
+ [key: string]: unknown;
263
+ }
264
+ /** Delete an app */
265
+ export interface DeleteAppParams {
266
+ /** The unique identifier of an app */
267
+ appId: string;
268
+ }
269
+ export interface DeleteAppRequest {
270
+ /** To confirm application deletion we ask for application name. */
271
+ name: string;
272
+ }
273
+ export interface DeleteAppResponse {
274
+ /** An ID of deleted application. */
275
+ deletedAppId?: string;
276
+ [key: string]: unknown;
277
+ }
278
+ /** Get app events */
279
+ export interface GetAppEventsParams {
280
+ /** The unique identifier of an app */
281
+ appId: string;
282
+ }
283
+ export type GetAppEventsResponse = ({
284
+ /** Indication of whether current event is active. */
285
+ isActive?: boolean;
286
+ /** Type of an event. */
287
+ type?: 'webhook' | 'qb-action' | 'email-notification' | 'subscription' | 'reminder' | 'automation';
288
+ /** The name of the event. This property is not returned for automations. */
289
+ name?: string;
290
+ /** The url to automation that can be accessed from the browser. Only returned for automations. */
291
+ url?: string;
292
+ /** The user that owns the event. */
293
+ owner?: {
294
+ /** User full name. */
295
+ name?: string;
296
+ /** User Id. */
297
+ id?: string;
298
+ /** User email. */
299
+ email?: string;
300
+ /** User Name as updated in user properties. Optional, appears if not the same as user email. */
301
+ userName?: string;
302
+ [key: string]: unknown;
303
+ };
304
+ /** The unique identifier of the table to which event belongs to. */
305
+ tableId?: string;
306
+ [key: string]: unknown;
307
+ })[];
308
+ /** Copy an app */
309
+ export interface CopyAppParams {
310
+ /** The unique identifier of an app */
311
+ appId: string;
312
+ }
313
+ export interface CopyAppRequest {
314
+ /** The name of the newly copied app */
315
+ name: string;
316
+ /** The description of the newly copied app */
317
+ description?: string;
318
+ /** The configuration properties for performing the app copy */
319
+ properties?: {
320
+ /** Whether to add the user token used to make this request to the new app */
321
+ assignUserToken?: boolean;
322
+ /** If keepData is true, whether to copy the file attachments as well. If keepData is false, this property is ignored */
323
+ excludeFiles?: boolean;
324
+ /** Whether to copy the app's data along with the schema */
325
+ keepData?: boolean;
326
+ /** If true, users will be copied along with their assigned roles. If false, users and roles will be copied but roles will not be assigned */
327
+ usersAndRoles?: boolean;
328
+ };
329
+ }
330
+ export interface CopyAppResponse {
331
+ /** The app name. You are allowed to create multiple apps with the same name, in the same realm, because they will have different dbid values. We urge you to be careful about doing this. */
332
+ name: string;
333
+ /** The description for the app */
334
+ description?: string;
335
+ /** The time and date the app was created, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
336
+ created?: string;
337
+ /** The time and date the app was last updated, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
338
+ updated?: string;
339
+ /** A description of the format used when displaying date values in this app. Note that this is a browser-only parameter - see the [Field type details](../fieldInfo) page in the API Guide for how time values are returned in API calls. See [About Localizing Dates](https://help.quickbase.com/user-assistance/about_localizing_dates_numbers.html) to set the app’s date format. */
340
+ dateFormat?: string;
341
+ /** A description of the time zone used when displaying time values in this app. Note that this is a browser-only parameter - see the [Field type details](../fieldInfo) page in the portal for how time values are returned in API calls. See [Set the Time Zone for Both the Application and the Account](https://help.quickbase.com/user-assistance/application_local_timezone.html) to set the application’s time zone. */
342
+ timeZone?: string;
343
+ /** The unique identifier for this application. */
344
+ id?: string;
345
+ /** Indicates whether app includes Everyone On The Internet access. See [Sharing apps with Everyone on the Internet (EOTI).](https://help.quickbase.com/user-assistance/share_with_everyone_on_internet.html) */
346
+ hasEveryoneOnTheInternet?: boolean;
347
+ /** The app variables. See [About Application Variables](https://help.quickbase.com/user-assistance/variables.html) */
348
+ variables?: {
349
+ /** Variable name. */
350
+ name?: string;
351
+ /** Variable value. */
352
+ value?: string;
353
+ [key: string]: unknown;
354
+ }[];
355
+ /** The id of the app from which this app was copied */
356
+ ancestorId?: string;
357
+ /** The Data Classification label assigned to the application. If Data Classification is not turned on, this will not be returned. If Data Classification is turned on, but application is not labeled, we return “None". Data Classification labels can be added in the Admin Console by a Realm Administrator for Platform+ plans. */
358
+ dataClassification?: string;
359
+ [key: string]: unknown;
360
+ }
361
+ /** Get tables for an app */
362
+ export interface GetAppTablesParams {
363
+ /** The unique identifier of an app */
364
+ appId: string;
365
+ }
366
+ export type GetAppTablesResponse = ({
367
+ /** The name of the table. */
368
+ name?: string;
369
+ /** The unique identifier (dbid) of the table. */
370
+ id?: string;
371
+ /** The automatically-created table alias for the table. */
372
+ alias?: string;
373
+ /** The description of the table, as configured by an application administrator. */
374
+ description?: string;
375
+ /** The time and date when the table was created, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
376
+ created?: string;
377
+ /** The time and date when the table schema or data was last updated, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
378
+ updated?: string;
379
+ /** The incremental Record ID that will be used when the next record is created, as determined when the API call was ran. */
380
+ nextRecordId?: number;
381
+ /** The incremental Field ID that will be used when the next field is created, as determined when the API call was ran. */
382
+ nextFieldId?: number;
383
+ /** The id of the field that is configured for default sorting. */
384
+ defaultSortFieldId?: number;
385
+ /** The configuration of the default sort order on the table. */
386
+ defaultSortOrder?: 'ASC' | 'DESC';
387
+ /** The id of the field that is configured to be the key on this table, which is usually the Quickbase Record ID. */
388
+ keyFieldId?: number;
389
+ /** The builder-configured singular noun of the table. */
390
+ singleRecordName?: string;
391
+ /** The builder-configured plural noun of the table. */
392
+ pluralRecordName?: string;
393
+ /** The size limit for the table. */
394
+ sizeLimit?: string;
395
+ /** The amount of space currently being used by the table. */
396
+ spaceUsed?: string;
397
+ /** The amount of space remaining for use by the table. */
398
+ spaceRemaining?: string;
399
+ [key: string]: unknown;
400
+ })[];
401
+ /** Create a table */
402
+ export interface CreateTableParams {
403
+ /** The unique identifier of an app */
404
+ appId: string;
405
+ }
406
+ export interface CreateTableRequest {
407
+ /** The name for the table. */
408
+ name: string;
409
+ /** The plural noun for records in the table. If this value is not passed the default value is 'Records'. */
410
+ pluralRecordName?: string;
411
+ /** The singular noun for records in the table. If this value is not passed the default value is 'Record'. */
412
+ singleRecordName?: string;
413
+ /** The description for the table. If this value is not passed the default value is blank. */
414
+ description?: string;
415
+ [key: string]: unknown;
416
+ }
417
+ export interface CreateTableResponse {
418
+ /** The name of the table. */
419
+ name?: string;
420
+ /** The unique identifier (dbid) of the table. */
421
+ id?: string;
422
+ /** The automatically-created table alias for the table. */
423
+ alias?: string;
424
+ /** The description of the table, as configured by an application administrator. */
425
+ description?: string;
426
+ /** The time and date when the table was created, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
427
+ created?: string;
428
+ /** The time and date when the table schema or data was last updated, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
429
+ updated?: string;
430
+ /** The incremental Record ID that will be used when the next record is created, as determined when the API call was ran. */
431
+ nextRecordId?: number;
432
+ /** The incremental Field ID that will be used when the next field is created, as determined when the API call was ran. */
433
+ nextFieldId?: number;
434
+ /** The id of the field that is configured for default sorting. */
435
+ defaultSortFieldId?: number;
436
+ /** The configuration of the default sort order on the table. */
437
+ defaultSortOrder?: 'ASC' | 'DESC';
438
+ /** The id of the field that is configured to be the key on this table, which is usually the Quickbase Record ID. */
439
+ keyFieldId?: number;
440
+ /** The builder-configured singular noun of the table. */
441
+ singleRecordName?: string;
442
+ /** The builder-configured plural noun of the table. */
443
+ pluralRecordName?: string;
444
+ /** The size limit for the table. */
445
+ sizeLimit?: string;
446
+ /** The amount of space currently being used by the table. */
447
+ spaceUsed?: string;
448
+ /** The amount of space remaining for use by the table. */
449
+ spaceRemaining?: string;
450
+ [key: string]: unknown;
451
+ }
452
+ /** Get a table */
453
+ export interface GetTableParams {
454
+ /** The unique identifier of an app */
455
+ appId: string;
456
+ /** The unique identifier (dbid) of the table. */
457
+ tableId: string;
458
+ }
459
+ export interface GetTableResponse {
460
+ /** The name of the table. */
461
+ name?: string;
462
+ /** The unique identifier (dbid) of the table. */
463
+ id?: string;
464
+ /** The automatically-created table alias for the table. */
465
+ alias?: string;
466
+ /** The description of the table, as configured by an application administrator. */
467
+ description?: string;
468
+ /** The time and date when the table was created, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
469
+ created?: string;
470
+ /** The time and date when the table schema or data was last updated, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
471
+ updated?: string;
472
+ /** The incremental Record ID that will be used when the next record is created, as determined when the API call was ran. */
473
+ nextRecordId?: number;
474
+ /** The incremental Field ID that will be used when the next field is created, as determined when the API call was ran. */
475
+ nextFieldId?: number;
476
+ /** The id of the field that is configured for default sorting. */
477
+ defaultSortFieldId?: number;
478
+ /** The configuration of the default sort order on the table. */
479
+ defaultSortOrder?: 'ASC' | 'DESC';
480
+ /** The id of the field that is configured to be the key on this table, which is usually the Quickbase Record ID. */
481
+ keyFieldId?: number;
482
+ /** The builder-configured singular noun of the table. */
483
+ singleRecordName?: string;
484
+ /** The builder-configured plural noun of the table. */
485
+ pluralRecordName?: string;
486
+ /** The size limit for the table. */
487
+ sizeLimit?: string;
488
+ /** The amount of space currently being used by the table. */
489
+ spaceUsed?: string;
490
+ /** The amount of space remaining for use by the table. */
491
+ spaceRemaining?: string;
492
+ [key: string]: unknown;
493
+ }
494
+ /** Update a table */
495
+ export interface UpdateTableParams {
496
+ /** The unique identifier of an app */
497
+ appId: string;
498
+ /** The unique identifier (dbid) of the table. */
499
+ tableId: string;
500
+ }
501
+ export interface UpdateTableRequest {
502
+ /** The name for the table. */
503
+ name?: string;
504
+ /** The plural noun for records in the table. If this value is not passed the default value is 'Records'. */
505
+ pluralRecordName?: string;
506
+ /** The singular noun for records in the table. If this value is not passed the default value is 'Record'. */
507
+ singleRecordName?: string;
508
+ /** The description for the table. If this value is not passed the default value is blank. */
509
+ description?: string;
510
+ [key: string]: unknown;
511
+ }
512
+ export interface UpdateTableResponse {
513
+ /** The name of the table. */
514
+ name?: string;
515
+ /** The unique identifier (dbid) of the table. */
516
+ id?: string;
517
+ /** The automatically-created table alias for the table. */
518
+ alias?: string;
519
+ /** The description of the table, as configured by an application administrator. */
520
+ description?: string;
521
+ /** The time and date when the table was created, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
522
+ created?: string;
523
+ /** The time and date when the table schema or data was last updated, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
524
+ updated?: string;
525
+ /** The incremental Record ID that will be used when the next record is created, as determined when the API call was ran. */
526
+ nextRecordId?: number;
527
+ /** The incremental Field ID that will be used when the next field is created, as determined when the API call was ran. */
528
+ nextFieldId?: number;
529
+ /** The id of the field that is configured for default sorting. */
530
+ defaultSortFieldId?: number;
531
+ /** The configuration of the default sort order on the table. */
532
+ defaultSortOrder?: 'ASC' | 'DESC';
533
+ /** The id of the field that is configured to be the key on this table, which is usually the Quickbase Record ID. */
534
+ keyFieldId?: number;
535
+ /** The builder-configured singular noun of the table. */
536
+ singleRecordName?: string;
537
+ /** The builder-configured plural noun of the table. */
538
+ pluralRecordName?: string;
539
+ /** The size limit for the table. */
540
+ sizeLimit?: string;
541
+ /** The amount of space currently being used by the table. */
542
+ spaceUsed?: string;
543
+ /** The amount of space remaining for use by the table. */
544
+ spaceRemaining?: string;
545
+ [key: string]: unknown;
546
+ }
547
+ /** Delete a table */
548
+ export interface DeleteTableParams {
549
+ /** The unique identifier of an app */
550
+ appId: string;
551
+ /** The unique identifier (dbid) of the table. */
552
+ tableId: string;
553
+ }
554
+ export interface DeleteTableResponse {
555
+ /** The deleted table id. */
556
+ deletedTableId?: string;
557
+ [key: string]: unknown;
558
+ }
559
+ /** Get all relationships */
560
+ export interface GetRelationshipsParams {
561
+ /** The number of relationships to skip. */
562
+ skip?: number;
563
+ /** The unique identifier (dbid) of the child table. */
564
+ tableId: string;
565
+ }
566
+ export interface GetRelationshipsResponse {
567
+ /** The relationships in a table. */
568
+ relationships: {
569
+ /** The relationship id (foreign key field id). */
570
+ id: number;
571
+ /** The parent table id of the relationship. */
572
+ parentTableId: string;
573
+ /** The child table id of the relationship. */
574
+ childTableId: string;
575
+ /** The foreign key field information. */
576
+ foreignKeyField?: {
577
+ /** Field id. */
578
+ id?: number;
579
+ /** Field label. */
580
+ label?: string;
581
+ /** Field type. */
582
+ type?: string;
583
+ [key: string]: unknown;
584
+ };
585
+ /** Whether this is a cross-app relationship. */
586
+ isCrossApp: boolean;
587
+ /** The lookup fields array. */
588
+ lookupFields?: {
589
+ /** Field id. */
590
+ id?: number;
591
+ /** Field label. */
592
+ label?: string;
593
+ /** Field type. */
594
+ type?: string;
595
+ [key: string]: unknown;
596
+ }[];
597
+ /** The summary fields array. */
598
+ summaryFields?: {
599
+ /** Field id. */
600
+ id?: number;
601
+ /** Field label. */
602
+ label?: string;
603
+ /** Field type. */
604
+ type?: string;
605
+ [key: string]: unknown;
606
+ }[];
607
+ [key: string]: unknown;
608
+ }[];
609
+ /** Additional information about the results that may be helpful. */
610
+ metadata?: {
611
+ /** The number of relationships to skip. */
612
+ skip?: number;
613
+ /** The total number of relationships. */
614
+ totalRelationships?: number;
615
+ /** The number of relationships in the current response object. */
616
+ numRelationships?: number;
617
+ [key: string]: unknown;
618
+ };
619
+ [key: string]: unknown;
620
+ }
621
+ /** Create a relationship */
622
+ export interface CreateRelationshipParams {
623
+ /** The unique identifier (dbid) of the table. This will be the child table. */
624
+ tableId: string;
625
+ }
626
+ export interface CreateRelationshipRequest {
627
+ /** Array of summary field objects which will turn into summary fields in the parent table. When you specify the 'COUNT' accumulation type, you have to specify 0 as the summaryFid (or not set it in the request). 'DISTINCT-COUNT' requires that summaryFid be set to an actual fid. */
628
+ summaryFields?: ({
629
+ /** The field id to summarize. */
630
+ summaryFid?: number;
631
+ /** The label for the summary field. */
632
+ label?: string;
633
+ /** The accumulation type for the summary field. */
634
+ accumulationType: 'AVG' | 'SUM' | 'MAX' | 'MIN' | 'STD-DEV' | 'COUNT' | 'COMBINED-TEXT' | 'COMBINED-USER' | 'DISTINCT-COUNT';
635
+ /** The filter, using the Quickbase query language, which determines the records to return. */
636
+ where?: string;
637
+ [key: string]: unknown;
638
+ })[];
639
+ /** Array of field ids in the parent table that will become lookup fields in the child table. */
640
+ lookupFieldIds?: number[];
641
+ /** The parent table id for the relationship. */
642
+ parentTableId: string;
643
+ /** This property is optional. If it is not provided, the foreign key field will be created with the label ‘Related <record>’, where <record> is the name of a record in the parent table. */
644
+ foreignKeyField?: {
645
+ /** The label for the foreign key field. */
646
+ label?: string;
647
+ [key: string]: unknown;
648
+ };
649
+ }
650
+ export interface CreateRelationshipResponse {
651
+ /** The relationship id (foreign key field id). */
652
+ id: number;
653
+ /** The parent table id of the relationship. */
654
+ parentTableId: string;
655
+ /** The child table id of the relationship. */
656
+ childTableId: string;
657
+ /** The foreign key field information. */
658
+ foreignKeyField?: {
659
+ /** Field id. */
660
+ id?: number;
661
+ /** Field label. */
662
+ label?: string;
663
+ /** Field type. */
664
+ type?: string;
665
+ [key: string]: unknown;
666
+ };
667
+ /** Whether this is a cross-app relationship. */
668
+ isCrossApp: boolean;
669
+ /** The lookup fields array. */
670
+ lookupFields?: {
671
+ /** Field id. */
672
+ id?: number;
673
+ /** Field label. */
674
+ label?: string;
675
+ /** Field type. */
676
+ type?: string;
677
+ [key: string]: unknown;
678
+ }[];
679
+ /** The summary fields array. */
680
+ summaryFields?: {
681
+ /** Field id. */
682
+ id?: number;
683
+ /** Field label. */
684
+ label?: string;
685
+ /** Field type. */
686
+ type?: string;
687
+ [key: string]: unknown;
688
+ }[];
689
+ [key: string]: unknown;
690
+ }
691
+ /** Update a relationship */
692
+ export interface UpdateRelationshipParams {
693
+ /** The unique identifier (dbid) of the table. This will be the child table. */
694
+ tableId: string;
695
+ /** The relationship id. This is the field id of the reference field on the child table. */
696
+ relationshipId: number;
697
+ }
698
+ export interface UpdateRelationshipRequest {
699
+ /** An array of objects, each representing a configuration of one field from the child table, that will become summary fields on the parent table. When you specify the 'COUNT' accumulation type, you have to specify 0 as the summaryFid (or not set it in the request). 'DISTINCT-COUNT' requires that summaryFid be set to an actual fid. */
700
+ summaryFields?: ({
701
+ /** The field id to summarize. */
702
+ summaryFid?: number;
703
+ /** The label for the summary field. */
704
+ label?: string;
705
+ /** The accumulation type for the summary field. */
706
+ accumulationType: 'AVG' | 'SUM' | 'MAX' | 'MIN' | 'STD-DEV' | 'COUNT' | 'COMBINED-TEXT' | 'COMBINED-USER' | 'DISTINCT-COUNT';
707
+ /** The filter, using the Quickbase query language, which determines the records to return. */
708
+ where?: string;
709
+ [key: string]: unknown;
710
+ })[];
711
+ /** An array of field ids on the parent table that will become lookup fields on the child table. */
712
+ lookupFieldIds?: number[];
713
+ }
714
+ export interface UpdateRelationshipResponse {
715
+ /** The relationship id (foreign key field id). */
716
+ id: number;
717
+ /** The parent table id of the relationship. */
718
+ parentTableId: string;
719
+ /** The child table id of the relationship. */
720
+ childTableId: string;
721
+ /** The foreign key field information. */
722
+ foreignKeyField?: {
723
+ /** Field id. */
724
+ id?: number;
725
+ /** Field label. */
726
+ label?: string;
727
+ /** Field type. */
728
+ type?: string;
729
+ [key: string]: unknown;
730
+ };
731
+ /** Whether this is a cross-app relationship. */
732
+ isCrossApp: boolean;
733
+ /** The lookup fields array. */
734
+ lookupFields?: {
735
+ /** Field id. */
736
+ id?: number;
737
+ /** Field label. */
738
+ label?: string;
739
+ /** Field type. */
740
+ type?: string;
741
+ [key: string]: unknown;
742
+ }[];
743
+ /** The summary fields array. */
744
+ summaryFields?: {
745
+ /** Field id. */
746
+ id?: number;
747
+ /** Field label. */
748
+ label?: string;
749
+ /** Field type. */
750
+ type?: string;
751
+ [key: string]: unknown;
752
+ }[];
753
+ [key: string]: unknown;
754
+ }
755
+ /** Delete a relationship */
756
+ export interface DeleteRelationshipParams {
757
+ /** The unique identifier (dbid) of the table. This will be the child table. */
758
+ tableId: string;
759
+ /** The relationship id. This is the field id of the reference field on the child table. */
760
+ relationshipId: number;
761
+ }
762
+ export interface DeleteRelationshipResponse {
763
+ /** The relationship id. */
764
+ relationshipId: number;
765
+ [key: string]: unknown;
766
+ }
767
+ /** Get reports for a table */
768
+ export interface GetTableReportsParams {
769
+ /** The unique identifier of the table. */
770
+ tableId: string;
771
+ }
772
+ export type GetTableReportsResponse = ({
773
+ /** The identifier of the report, unique to the table. */
774
+ id?: string;
775
+ /** The configured name of the report. */
776
+ name?: string;
777
+ /** The type of report in Quickbase (e.g., chart). */
778
+ type?: string;
779
+ /** The configured description of a report. */
780
+ description?: string;
781
+ /** Optional, showed only for personal reports. The user ID of report owner. */
782
+ ownerId?: number;
783
+ /** The query definition as configured in Quickbase that gets executed when the report is run. */
784
+ query?: {
785
+ /** The table identifier for the report. */
786
+ tableId?: string;
787
+ /** Filter used to query for data. */
788
+ filter?: string;
789
+ /** Calculated formula fields. */
790
+ formulaFields?: ({
791
+ /** Formula field identifier. */
792
+ id?: number;
793
+ /** Formula field label. */
794
+ label?: string;
795
+ /** Resulting formula value type. */
796
+ fieldType?: 'rich-text' | 'text' | 'numeric' | 'currency' | 'percent' | 'rating' | 'date' | 'timestamp' | 'timeofday' | 'duration' | 'checkbox' | 'phone' | 'email' | 'user' | 'multiuser' | 'url';
797
+ /** Formula text. */
798
+ formula?: string;
799
+ /** For numeric formula the number precision. */
800
+ decimalPrecision?: number;
801
+ [key: string]: unknown;
802
+ })[];
803
+ [key: string]: unknown;
804
+ };
805
+ /** A list of properties specific to the report type. To see a detailed description of the properties for each report type, See [Report Types.](../reportTypes) */
806
+ properties?: Record<string, unknown>;
807
+ /** The instant at which a report was last used. */
808
+ usedLast?: string;
809
+ /** The number of times a report has been used. */
810
+ usedCount?: number;
811
+ [key: string]: unknown;
812
+ })[];
813
+ /** Get a report */
814
+ export interface GetReportParams {
815
+ /** The unique identifier of table. */
816
+ tableId: string;
817
+ /** The identifier of the report, unique to the table. */
818
+ reportId: string;
819
+ }
820
+ export interface GetReportResponse {
821
+ /** The identifier of the report, unique to the table. */
822
+ id?: string;
823
+ /** The configured name of the report. */
824
+ name?: string;
825
+ /** The type of report in Quickbase (e.g., chart). */
826
+ type?: string;
827
+ /** The configured description of a report. */
828
+ description?: string;
829
+ /** Optional, showed only for personal reports. The user ID of report owner. */
830
+ ownerId?: number;
831
+ /** The query definition as configured in Quickbase that gets executed when the report is run. */
832
+ query?: {
833
+ /** The table identifier for the report. */
834
+ tableId?: string;
835
+ /** Filter used to query for data. */
836
+ filter?: string;
837
+ /** Calculated formula fields. */
838
+ formulaFields?: ({
839
+ /** Formula field identifier. */
840
+ id?: number;
841
+ /** Formula field label. */
842
+ label?: string;
843
+ /** Resulting formula value type. */
844
+ fieldType?: 'rich-text' | 'text' | 'numeric' | 'currency' | 'percent' | 'rating' | 'date' | 'timestamp' | 'timeofday' | 'duration' | 'checkbox' | 'phone' | 'email' | 'user' | 'multiuser' | 'url';
845
+ /** Formula text. */
846
+ formula?: string;
847
+ /** For numeric formula the number precision. */
848
+ decimalPrecision?: number;
849
+ [key: string]: unknown;
850
+ })[];
851
+ [key: string]: unknown;
852
+ };
853
+ /** A list of properties specific to the report type. To see a detailed description of the properties for each report type, See [Report Types.](../reportTypes) */
854
+ properties?: Record<string, unknown>;
855
+ /** The instant at which a report was last used. */
856
+ usedLast?: string;
857
+ /** The number of times a report has been used. */
858
+ usedCount?: number;
859
+ [key: string]: unknown;
860
+ }
861
+ /** Run a report */
862
+ export interface RunReportParams {
863
+ /** The identifier of the table for the report. */
864
+ tableId: string;
865
+ /** The number of records to skip. You can set this value when paginating through a set of results. */
866
+ skip?: number;
867
+ /** The maximum number of records to return. You can override the default Quickbase pagination to get more or fewer results. If your requested value here exceeds the dynamic maximums, we will return a subset of results and the rest can be gathered in subsequent API calls. */
868
+ top?: number;
869
+ /** The identifier of the report, unique to the table. */
870
+ reportId: string;
871
+ }
872
+ export type RunReportRequest = unknown;
873
+ export interface RunReportResponse {
874
+ /** An array of objects that contains limited meta-data of each field displayed in the report. This assists in building logic that depends on field types and IDs. */
875
+ fields?: {
876
+ /** Field id. */
877
+ id?: number;
878
+ /** Field label. */
879
+ label?: string;
880
+ /** Field type. */
881
+ type?: string;
882
+ /** Column heading label override for field in report. */
883
+ labelOverride?: string;
884
+ [key: string]: unknown;
885
+ }[];
886
+ /** An array of objects that either represents the record data or summarized values, depending on the report type. */
887
+ data?: QuickbaseRecord[];
888
+ /** Additional information about the results that may be helpful. Pagination may be needed if either you specify a smaller number of results to skip than is available, or if the API automatically returns fewer results. numRecords can be compared to totalRecords to determine if further pagination is needed. */
889
+ metadata?: {
890
+ /** The number of records to skip */
891
+ skip?: number;
892
+ /** The number of fields in each record in the current response object */
893
+ numFields: number;
894
+ /** If present, the maximum number of records requested by the caller */
895
+ top?: number;
896
+ /** The total number of records in the result set */
897
+ totalRecords: number;
898
+ /** The number of records in the current response object */
899
+ numRecords: number;
900
+ [key: string]: unknown;
901
+ };
902
+ [key: string]: unknown;
903
+ }
904
+ /** Get fields for a table */
905
+ export interface GetFieldsParams {
906
+ /** The unique identifier (dbid) of the table. */
907
+ tableId: string;
908
+ /** Set to 'true' if you'd like to get back the custom permissions for the field(s). */
909
+ includeFieldPerms?: boolean;
910
+ }
911
+ export type GetFieldsResponse = ({
912
+ /** The id of the field, unique to this table. */
913
+ id: number;
914
+ /** The type of field, as described [here](https://help.quickbase.com/user-assistance/field_types.html). */
915
+ fieldType?: string;
916
+ /** For derived fields, this will be 'lookup', 'summary', or 'formula', to indicate the type of derived field. For non-derived fields, this will be blank. */
917
+ mode?: string;
918
+ /** The label (name) of the field. */
919
+ label?: string;
920
+ /** Indicates if the field is configured to not wrap when displayed in the product. */
921
+ noWrap?: boolean;
922
+ /** Indicates if the field is configured to display in bold in the product. */
923
+ bold?: boolean;
924
+ /** Indicates if the field is marked required. */
925
+ required?: boolean;
926
+ /** Indicates if the field is marked as a default in reports. */
927
+ appearsByDefault?: boolean;
928
+ /** Indicates if the field is marked as searchable. */
929
+ findEnabled?: boolean;
930
+ /** Indicates if the field is marked unique. */
931
+ unique?: boolean;
932
+ /** Indicates if the field data will copy when a user copies the record. */
933
+ doesDataCopy?: boolean;
934
+ /** The configured help text shown to users within the product. */
935
+ fieldHelp?: string;
936
+ /** Indicates if the field is being tracked as part of Quickbase Audit Logs. */
937
+ audited?: boolean;
938
+ /** Additional properties for the field. Please see [Field type details](../fieldInfo) page for more details on the properties for each field type. */
939
+ properties?: {
940
+ /** If someone can @mention users in the rich text field to generate an email notification. */
941
+ allowMentions?: boolean;
942
+ /** The comments entered on the field properties by an administrator. */
943
+ comments?: string;
944
+ /** Whether this field totals in reports within the product. */
945
+ doesTotal?: boolean;
946
+ /** Whether the link field will auto save. */
947
+ autoSave?: boolean;
948
+ /** Default user id value. */
949
+ defaultValueLuid?: number;
950
+ /** Whether phone numbers should be in E.164 standard international format. */
951
+ useI18NFormat?: boolean;
952
+ /** The maximum number of versions configured for a file attachment. */
953
+ maxVersions?: number;
954
+ /** Whether the field should carry its multiple choice fields when copied. */
955
+ carryChoices?: boolean;
956
+ /** The format to display time. */
957
+ format?: number;
958
+ /** The maximum number of characters allowed for entry in Quickbase for this field. */
959
+ maxLength?: number;
960
+ /** The configured text value that replaces the URL that users see within the product. */
961
+ linkText?: string;
962
+ /** The id of the parent composite field, when applicable. */
963
+ parentFieldId?: number;
964
+ /** Indicates whether to display the timezone within the product. */
965
+ displayTimezone?: boolean;
966
+ /** The id of the field that is used to aggregate values from the child, when applicable. This displays 0 if the summary function doesn’t require a field selection (like count). */
967
+ summaryTargetFieldId?: number;
968
+ /** Indicates if users can add new choices to a selection list. */
969
+ allowNewChoices?: boolean;
970
+ /** The id of the field that is the reference in the relationship. */
971
+ masterChoiceFieldId?: number;
972
+ /** Indicates if the field value is defaulted today for new records. */
973
+ defaultToday?: boolean;
974
+ /** The units label. */
975
+ units?: string;
976
+ /** The id of the field that is the target on the master table for this lookup. */
977
+ lookupTargetFieldId?: number;
978
+ /** The summary accumulation function type. */
979
+ summaryFunction?: 'AVG' | 'SUM' | 'MAX' | 'MIN' | 'STD-DEV' | 'COUNT' | 'COMBINED-TEXT' | 'COMBINED-USER' | 'DISTINCT-COUNT';
980
+ /** The id of the source field. */
981
+ sourceFieldId?: number;
982
+ /** The table alias for the master table in the relationship this field is part of. */
983
+ masterTableTag?: string;
984
+ /** Whether this field averages in reports within the product. */
985
+ doesAverage?: boolean;
986
+ /** The formula of the field as configured in Quickbase. */
987
+ formula?: string;
988
+ /** The number of decimal places displayed in the product for this field. */
989
+ decimalPlaces?: number;
990
+ /** Controls the default country shown on international phone widgets on forms. Country code should be entered in the ISO 3166-1 alpha-2 format. */
991
+ defaultCountryCode?: string;
992
+ /** Indicates if the user can see other versions, aside from the most recent, of a file attachment within the product. */
993
+ seeVersions?: boolean;
994
+ /** How to display months. */
995
+ displayMonth?: string;
996
+ /** The number of lines shown in Quickbase for this text field. */
997
+ numLines?: number;
998
+ /** How the email is displayed. */
999
+ displayEmail?: string;
1000
+ /** The user default type. */
1001
+ defaultKind?: string;
1002
+ /** An alternate user friendly text that can be used to display a link in the browser. */
1003
+ coverText?: string;
1004
+ /** The current symbol used when displaying field values within the product. */
1005
+ currencySymbol?: string;
1006
+ /** The id of the table that is the master in this relationship. */
1007
+ masterChoiceTableId?: string;
1008
+ /** The id of the target field. */
1009
+ targetFieldId?: number;
1010
+ /** The configured option for how users display within the product. */
1011
+ displayUser?: string;
1012
+ /** Whether a blank value is treated the same as 0 in calculations within the product. */
1013
+ blankIsZero?: boolean;
1014
+ /** Whether an exact match is required for a report link. */
1015
+ exact?: boolean;
1016
+ /** The start field id. */
1017
+ startField?: number;
1018
+ /** Default email domain. */
1019
+ defaultDomain?: string;
1020
+ /** The default value configured for a field when a new record is added. */
1021
+ defaultValue?: string;
1022
+ /** List of user choices. */
1023
+ choicesLuid?: string[];
1024
+ /** Don't show the URL protocol when showing the URL. */
1025
+ abbreviate?: boolean;
1026
+ /** The field's xml tag. */
1027
+ xmlTag?: string;
1028
+ /** The field's target table name. */
1029
+ targetTableName?: string;
1030
+ /** The format used for displaying numeric values in the product (decimal, separators, digit group). */
1031
+ numberFormat?: number;
1032
+ /** The link text, if empty, the url will be used as link text. */
1033
+ appearsAs?: string;
1034
+ /** The field's html input width in the product. */
1035
+ width?: number;
1036
+ /** The currency format used when displaying field values within the product. */
1037
+ currencyFormat?: 'left' | 'right' | 'middle';
1038
+ /** Indicates if the field is a foreign key (or reference field) in a relationship. */
1039
+ foreignKey?: boolean;
1040
+ /** Indicates whether to display the day of the week within the product. */
1041
+ displayDayOfWeek?: boolean;
1042
+ /** The id of the field that is the reference in the relationship for this summary. */
1043
+ summaryReferenceFieldId?: number;
1044
+ /** The number of digits before commas display in the product, when applicable. */
1045
+ commaStart?: number;
1046
+ /** An array of entries that exist for a field that offers choices to the user. */
1047
+ choices?: string[];
1048
+ /** The id of the target table. */
1049
+ targetTableId?: string;
1050
+ /** Whether to display time as relative. */
1051
+ displayRelative?: boolean;
1052
+ /** An array of the fields that make up a composite field (e.g., address). */
1053
+ compositeFields?: (number | Record<string, unknown>)[];
1054
+ /** Indicates whether the checkbox values will be shown as text in reports. */
1055
+ displayCheckboxAsText?: boolean;
1056
+ /** Version modes for files. Keep all versions vs keep last version. */
1057
+ versionMode?: 'keepallversions' | 'keeplastversions';
1058
+ /** Indicates whether to display the time, in addition to the date. */
1059
+ displayTime?: boolean;
1060
+ /** The duration field id. */
1061
+ durationField?: number;
1062
+ /** The id of the field that is used to snapshot values from, when applicable. */
1063
+ snapFieldId?: number;
1064
+ /** Indicates whether or not to display time in the 24-hour format within the product. */
1065
+ hours24?: boolean;
1066
+ /** Whether to sort alphabetically, default sort is by record ID. */
1067
+ sortAlpha?: boolean;
1068
+ /** Indicates if the listed entries sort as entered vs alphabetically. */
1069
+ sortAsGiven?: boolean;
1070
+ /** Whether this field has a phone extension. */
1071
+ hasExtension?: boolean;
1072
+ /** The work week type. */
1073
+ workWeek?: number;
1074
+ /** Indicates if the URL should open a new window when a user clicks it within the product. */
1075
+ useNewWindow?: boolean;
1076
+ /** Whether this field is append only. */
1077
+ appendOnly?: boolean;
1078
+ /** Indicates if a field that is part of the relationship should be shown as a hyperlink to the parent record within the product. */
1079
+ displayAsLink?: boolean;
1080
+ /** Whether this field allows html. */
1081
+ allowHTML?: boolean;
1082
+ /** The id of the field that is the reference in the relationship for this lookup. */
1083
+ lookupReferenceFieldId?: number;
1084
+ [key: string]: unknown;
1085
+ };
1086
+ /** Field Permissions for different roles. */
1087
+ permissions?: {
1088
+ /** The role associated with a given permission for the field */
1089
+ role?: string;
1090
+ /** The permission given to the role for this field */
1091
+ permissionType?: string;
1092
+ /** The Id of the given role */
1093
+ roleId?: number;
1094
+ }[];
1095
+ [key: string]: unknown;
1096
+ })[];
1097
+ /** Create a field */
1098
+ export interface CreateFieldParams {
1099
+ /** The unique identifier of the table. */
1100
+ tableId: string;
1101
+ }
1102
+ export interface CreateFieldRequest {
1103
+ /** Indicates if the field is being tracked as part of Quickbase Audit Logs. You can only set this property to "true" if the app has audit logs enabled. See Enable data change logs under [Quickbase Audit Logs](https://help.quickbase.com/user-assistance/audit_logs.html). Defaults to false. */
1104
+ audited?: boolean;
1105
+ /** The configured help text shown to users within the product. */
1106
+ fieldHelp?: string;
1107
+ /** Indicates if the field is configured to display in bold in the product. Defaults to false. */
1108
+ bold?: boolean;
1109
+ /** Specific field properties. */
1110
+ properties?: {
1111
+ /** If someone can @mention users in the rich text field to generate an email notification. */
1112
+ allowMentions?: boolean;
1113
+ /** The comments entered on the field properties by an administrator. */
1114
+ comments?: string;
1115
+ /** Whether this field totals in reports within the product. */
1116
+ doesTotal?: boolean;
1117
+ /** Whether the link field will auto save. */
1118
+ autoSave?: boolean;
1119
+ /** Default user id value. */
1120
+ defaultValueLuid?: number;
1121
+ /** Whether phone numbers should be in E.164 standard international format */
1122
+ useI18NFormat?: boolean;
1123
+ /** The maximum number of versions configured for a file attachment. */
1124
+ maxVersions?: number;
1125
+ /** The format to display time. */
1126
+ format?: number;
1127
+ /** Whether the field should carry its multiple choice fields when copied. */
1128
+ carryChoices?: boolean;
1129
+ /** The maximum number of characters allowed for entry in Quickbase for this field. */
1130
+ maxLength?: number;
1131
+ /** The configured text value that replaces the URL that users see within the product. */
1132
+ linkText?: string;
1133
+ /** The id of the parent composite field, when applicable. */
1134
+ parentFieldId?: number;
1135
+ /** Indicates whether to display the timezone within the product. */
1136
+ displayTimezone?: boolean;
1137
+ /** Indicates if users can add new choices to a selection list. */
1138
+ allowNewChoices?: boolean;
1139
+ /** Indicates if the field value is defaulted today for new records. */
1140
+ defaultToday?: boolean;
1141
+ /** The units label. */
1142
+ units?: string;
1143
+ /** Indicates which target the URL should open in when a user clicks it within the product. */
1144
+ openTargetIn?: 'sameWindow' | 'newWindow' | 'popup';
1145
+ /** The id of the source field. */
1146
+ sourceFieldId?: number;
1147
+ /** Whether this field averages in reports within the product. */
1148
+ doesAverage?: boolean;
1149
+ /** The formula of the field as configured in Quickbase. */
1150
+ formula?: string;
1151
+ /** The number of decimal places displayed in the product for this field. */
1152
+ decimalPlaces?: number;
1153
+ /** Controls the default country shown on international phone widgets on forms. Country code should be entered in the ISO 3166-1 alpha-2 format. */
1154
+ defaultCountryCode?: string;
1155
+ /** How to display months. */
1156
+ displayMonth?: string;
1157
+ /** Indicates if the user can see other versions, aside from the most recent, of a file attachment within the product. */
1158
+ seeVersions?: boolean;
1159
+ /** The number of lines shown in Quickbase for this text field. */
1160
+ numLines?: number;
1161
+ /** The user default type. */
1162
+ defaultKind?: string;
1163
+ /** How the email is displayed. */
1164
+ displayEmail?: string;
1165
+ /** An alternate user friendly text that can be used to display a link in the browser. */
1166
+ coverText?: string;
1167
+ /** The current symbol used when displaying field values within the product. */
1168
+ currencySymbol?: string;
1169
+ /** The id of the target field. */
1170
+ targetFieldId?: number;
1171
+ /** The configured option for how users display within the product. */
1172
+ displayUser?: string;
1173
+ /** Whether a blank value is treated the same as 0 in calculations within the product. */
1174
+ blankIsZero?: boolean;
1175
+ /** Whether an exact match is required for a report link. */
1176
+ exact?: boolean;
1177
+ /** Default email domain. */
1178
+ defaultDomain?: string;
1179
+ /** The default value configured for a field when a new record is added. */
1180
+ defaultValue?: string;
1181
+ /** Don't show the URL protocol when showing the URL. */
1182
+ abbreviate?: boolean;
1183
+ /** The format used for displaying numeric values in the product (decimal, separators, digit group). */
1184
+ numberFormat?: number;
1185
+ /** The field's target table name. */
1186
+ targetTableName?: string;
1187
+ /** The link text, if empty, the url will be used as link text. */
1188
+ appearsAs?: string;
1189
+ /** The field's html input width in the product. */
1190
+ width?: number;
1191
+ /** The currency format used when displaying field values within the product. */
1192
+ currencyFormat?: 'left' | 'right' | 'middle';
1193
+ /** Indicates whether to display the day of the week within the product. */
1194
+ displayDayOfWeek?: boolean;
1195
+ /** The number of digits before commas display in the product, when applicable. */
1196
+ commaStart?: number;
1197
+ /** An array of entries that exist for a field that offers choices to the user. Note that these choices refer to the valid values of any records added in the future. You are allowed to remove values from the list of choices even if there are existing records with those values in this field. They will be displayed in red when users look at the data in the browser but there is no other effect. While updating a field with this property, the old choices are removed and replaced by the new choices. */
1198
+ choices?: string[];
1199
+ /** The id of the target table. */
1200
+ targetTableId?: string;
1201
+ /** Whether to display time as relative. */
1202
+ displayRelative?: boolean;
1203
+ /** An array of the fields that make up a composite field (e.g., address). */
1204
+ compositeFields?: (number | Record<string, unknown>)[];
1205
+ /** Indicates whether the checkbox values will be shown as text in reports. */
1206
+ displayCheckboxAsText?: boolean;
1207
+ /** Indicates whether to display the time, in addition to the date. */
1208
+ displayTime?: boolean;
1209
+ /** Version modes for files. Keep all versions vs keep last version. */
1210
+ versionMode?: 'keepallversions' | 'keeplastversions';
1211
+ /** The id of the field that is used to snapshot values from, when applicable. */
1212
+ snapFieldId?: number;
1213
+ /** Indicates whether or not to display time in the 24-hour format within the product. */
1214
+ hours24?: boolean;
1215
+ /** Whether to sort alphabetically, default sort is by record ID. */
1216
+ sortAlpha?: boolean;
1217
+ /** Indicates if the listed entries sort as entered vs alphabetically. */
1218
+ sortAsGiven?: boolean;
1219
+ /** Whether this field has a phone extension. */
1220
+ hasExtension?: boolean;
1221
+ /** Indicates if the file should open a new window when a user clicks it within the product. */
1222
+ useNewWindow?: boolean;
1223
+ /** Whether this field is append only. */
1224
+ appendOnly?: boolean;
1225
+ /** Indicates if a field that is part of the relationship should be shown as a hyperlink to the parent record within the product. */
1226
+ displayAsLink?: boolean;
1227
+ };
1228
+ /** Indicates if the field is marked as a default in reports. Defaults to true. */
1229
+ appearsByDefault?: boolean;
1230
+ /** The [field types](https://help.quickbase.com/user-assistance/field_types.html), click on any of the field type links for more info. */
1231
+ fieldType: 'text' | 'text-multiple-choice' | 'text-multi-line' | 'rich-text' | 'numeric' | 'currency' | 'rating' | 'percent' | 'multitext' | 'email' | 'url' | 'duration' | 'date' | 'datetime' | 'timestamp' | 'timeofday' | 'checkbox' | 'user' | 'multiuser' | 'address' | 'phone' | 'file';
1232
+ /** Field Permissions for different roles. */
1233
+ permissions?: {
1234
+ /** The role associated with a given permission for the field */
1235
+ role?: string;
1236
+ /** The permission given to the role for this field */
1237
+ permissionType?: string;
1238
+ /** The Id of the given role */
1239
+ roleId?: number;
1240
+ }[];
1241
+ /** Whether the field you are adding should appear on forms. Defaults to false. */
1242
+ addToForms?: boolean;
1243
+ /** The label (name) of the field. */
1244
+ label: string;
1245
+ /** Indicates if the field is marked as searchable. Defaults to true. */
1246
+ findEnabled?: boolean;
1247
+ /** Indicates if the field is configured to not wrap when displayed in the product. Defaults to false. */
1248
+ noWrap?: boolean;
1249
+ }
1250
+ export interface CreateFieldResponse {
1251
+ /** The id of the field, unique to this table. */
1252
+ id: number;
1253
+ /** The type of field, as described [here](https://help.quickbase.com/user-assistance/field_types.html). */
1254
+ fieldType?: string;
1255
+ /** For derived fields, this will be 'lookup', 'summary', or 'formula', to indicate the type of derived field. For non-derived fields, this will be blank. */
1256
+ mode?: string;
1257
+ /** The label (name) of the field. */
1258
+ label?: string;
1259
+ /** Indicates if the field is configured to not wrap when displayed in the product. */
1260
+ noWrap?: boolean;
1261
+ /** Indicates if the field is configured to display in bold in the product. */
1262
+ bold?: boolean;
1263
+ /** Indicates if the field is marked required. */
1264
+ required?: boolean;
1265
+ /** Indicates if the field is marked as a default in reports. */
1266
+ appearsByDefault?: boolean;
1267
+ /** Indicates if the field is marked as searchable. */
1268
+ findEnabled?: boolean;
1269
+ /** Indicates if the field is marked unique. */
1270
+ unique?: boolean;
1271
+ /** Indicates if the field data will copy when a user copies the record. */
1272
+ doesDataCopy?: boolean;
1273
+ /** The configured help text shown to users within the product. */
1274
+ fieldHelp?: string;
1275
+ /** Indicates if the field is being tracked as part of Quickbase Audit Logs. */
1276
+ audited?: boolean;
1277
+ /** Additional properties for the field. Please see [Field type details](../fieldInfo) page for more details on the properties for each field type. */
1278
+ properties?: {
1279
+ /** If someone can @mention users in the rich text field to generate an email notification. */
1280
+ allowMentions?: boolean;
1281
+ /** The comments entered on the field properties by an administrator. */
1282
+ comments?: string;
1283
+ /** Whether this field totals in reports within the product. */
1284
+ doesTotal?: boolean;
1285
+ /** Whether the link field will auto save. */
1286
+ autoSave?: boolean;
1287
+ /** Default user id value. */
1288
+ defaultValueLuid?: number;
1289
+ /** Whether phone numbers should be in E.164 standard international format. */
1290
+ useI18NFormat?: boolean;
1291
+ /** The maximum number of versions configured for a file attachment. */
1292
+ maxVersions?: number;
1293
+ /** Whether the field should carry its multiple choice fields when copied. */
1294
+ carryChoices?: boolean;
1295
+ /** The format to display time. */
1296
+ format?: number;
1297
+ /** The maximum number of characters allowed for entry in Quickbase for this field. */
1298
+ maxLength?: number;
1299
+ /** The configured text value that replaces the URL that users see within the product. */
1300
+ linkText?: string;
1301
+ /** The id of the parent composite field, when applicable. */
1302
+ parentFieldId?: number;
1303
+ /** Indicates whether to display the timezone within the product. */
1304
+ displayTimezone?: boolean;
1305
+ /** The id of the field that is used to aggregate values from the child, when applicable. This displays 0 if the summary function doesn’t require a field selection (like count). */
1306
+ summaryTargetFieldId?: number;
1307
+ /** Indicates if users can add new choices to a selection list. */
1308
+ allowNewChoices?: boolean;
1309
+ /** The id of the field that is the reference in the relationship. */
1310
+ masterChoiceFieldId?: number;
1311
+ /** Indicates if the field value is defaulted today for new records. */
1312
+ defaultToday?: boolean;
1313
+ /** The units label. */
1314
+ units?: string;
1315
+ /** The id of the field that is the target on the master table for this lookup. */
1316
+ lookupTargetFieldId?: number;
1317
+ /** The summary accumulation function type. */
1318
+ summaryFunction?: 'AVG' | 'SUM' | 'MAX' | 'MIN' | 'STD-DEV' | 'COUNT' | 'COMBINED-TEXT' | 'COMBINED-USER' | 'DISTINCT-COUNT';
1319
+ /** The id of the source field. */
1320
+ sourceFieldId?: number;
1321
+ /** The table alias for the master table in the relationship this field is part of. */
1322
+ masterTableTag?: string;
1323
+ /** Whether this field averages in reports within the product. */
1324
+ doesAverage?: boolean;
1325
+ /** The formula of the field as configured in Quickbase. */
1326
+ formula?: string;
1327
+ /** The number of decimal places displayed in the product for this field. */
1328
+ decimalPlaces?: number;
1329
+ /** Controls the default country shown on international phone widgets on forms. Country code should be entered in the ISO 3166-1 alpha-2 format. */
1330
+ defaultCountryCode?: string;
1331
+ /** Indicates if the user can see other versions, aside from the most recent, of a file attachment within the product. */
1332
+ seeVersions?: boolean;
1333
+ /** How to display months. */
1334
+ displayMonth?: string;
1335
+ /** The number of lines shown in Quickbase for this text field. */
1336
+ numLines?: number;
1337
+ /** How the email is displayed. */
1338
+ displayEmail?: string;
1339
+ /** The user default type. */
1340
+ defaultKind?: string;
1341
+ /** An alternate user friendly text that can be used to display a link in the browser. */
1342
+ coverText?: string;
1343
+ /** The current symbol used when displaying field values within the product. */
1344
+ currencySymbol?: string;
1345
+ /** The id of the table that is the master in this relationship. */
1346
+ masterChoiceTableId?: string;
1347
+ /** The id of the target field. */
1348
+ targetFieldId?: number;
1349
+ /** The configured option for how users display within the product. */
1350
+ displayUser?: string;
1351
+ /** Whether a blank value is treated the same as 0 in calculations within the product. */
1352
+ blankIsZero?: boolean;
1353
+ /** Whether an exact match is required for a report link. */
1354
+ exact?: boolean;
1355
+ /** The start field id. */
1356
+ startField?: number;
1357
+ /** Default email domain. */
1358
+ defaultDomain?: string;
1359
+ /** The default value configured for a field when a new record is added. */
1360
+ defaultValue?: string;
1361
+ /** List of user choices. */
1362
+ choicesLuid?: string[];
1363
+ /** Don't show the URL protocol when showing the URL. */
1364
+ abbreviate?: boolean;
1365
+ /** The field's xml tag. */
1366
+ xmlTag?: string;
1367
+ /** The field's target table name. */
1368
+ targetTableName?: string;
1369
+ /** The format used for displaying numeric values in the product (decimal, separators, digit group). */
1370
+ numberFormat?: number;
1371
+ /** The link text, if empty, the url will be used as link text. */
1372
+ appearsAs?: string;
1373
+ /** The field's html input width in the product. */
1374
+ width?: number;
1375
+ /** The currency format used when displaying field values within the product. */
1376
+ currencyFormat?: 'left' | 'right' | 'middle';
1377
+ /** Indicates if the field is a foreign key (or reference field) in a relationship. */
1378
+ foreignKey?: boolean;
1379
+ /** Indicates whether to display the day of the week within the product. */
1380
+ displayDayOfWeek?: boolean;
1381
+ /** The id of the field that is the reference in the relationship for this summary. */
1382
+ summaryReferenceFieldId?: number;
1383
+ /** The number of digits before commas display in the product, when applicable. */
1384
+ commaStart?: number;
1385
+ /** An array of entries that exist for a field that offers choices to the user. */
1386
+ choices?: string[];
1387
+ /** The id of the target table. */
1388
+ targetTableId?: string;
1389
+ /** Whether to display time as relative. */
1390
+ displayRelative?: boolean;
1391
+ /** An array of the fields that make up a composite field (e.g., address). */
1392
+ compositeFields?: (number | Record<string, unknown>)[];
1393
+ /** Indicates whether the checkbox values will be shown as text in reports. */
1394
+ displayCheckboxAsText?: boolean;
1395
+ /** Version modes for files. Keep all versions vs keep last version. */
1396
+ versionMode?: 'keepallversions' | 'keeplastversions';
1397
+ /** Indicates whether to display the time, in addition to the date. */
1398
+ displayTime?: boolean;
1399
+ /** The duration field id. */
1400
+ durationField?: number;
1401
+ /** The id of the field that is used to snapshot values from, when applicable. */
1402
+ snapFieldId?: number;
1403
+ /** Indicates whether or not to display time in the 24-hour format within the product. */
1404
+ hours24?: boolean;
1405
+ /** Whether to sort alphabetically, default sort is by record ID. */
1406
+ sortAlpha?: boolean;
1407
+ /** Indicates if the listed entries sort as entered vs alphabetically. */
1408
+ sortAsGiven?: boolean;
1409
+ /** Whether this field has a phone extension. */
1410
+ hasExtension?: boolean;
1411
+ /** The work week type. */
1412
+ workWeek?: number;
1413
+ /** Indicates if the URL should open a new window when a user clicks it within the product. */
1414
+ useNewWindow?: boolean;
1415
+ /** Whether this field is append only. */
1416
+ appendOnly?: boolean;
1417
+ /** Indicates if a field that is part of the relationship should be shown as a hyperlink to the parent record within the product. */
1418
+ displayAsLink?: boolean;
1419
+ /** Whether this field allows html. */
1420
+ allowHTML?: boolean;
1421
+ /** The id of the field that is the reference in the relationship for this lookup. */
1422
+ lookupReferenceFieldId?: number;
1423
+ [key: string]: unknown;
1424
+ };
1425
+ /** Field Permissions for different roles. */
1426
+ permissions?: {
1427
+ /** The role associated with a given permission for the field */
1428
+ role?: string;
1429
+ /** The permission given to the role for this field */
1430
+ permissionType?: string;
1431
+ /** The Id of the given role */
1432
+ roleId?: number;
1433
+ }[];
1434
+ [key: string]: unknown;
1435
+ }
1436
+ /** Delete field(s) */
1437
+ export interface DeleteFieldsParams {
1438
+ /** The unique identifier of the table. */
1439
+ tableId: string;
1440
+ }
1441
+ export interface DeleteFieldsRequest {
1442
+ /** List of field ids to be deleted. */
1443
+ fieldIds: number[];
1444
+ [key: string]: unknown;
1445
+ }
1446
+ export interface DeleteFieldsResponse {
1447
+ /** List of field ids to were deleted. */
1448
+ deletedFieldIds: number[];
1449
+ /** List of errors found. */
1450
+ errors: string[];
1451
+ [key: string]: unknown;
1452
+ }
1453
+ /** Get field */
1454
+ export interface GetFieldParams {
1455
+ /** The unique identifier (dbid) of the table. */
1456
+ tableId: string;
1457
+ /** Set to 'true' if you'd like to get back the custom permissions for the field(s). */
1458
+ includeFieldPerms?: boolean;
1459
+ /** The unique identifier (fid) of the field. */
1460
+ fieldId: number;
1461
+ }
1462
+ export interface GetFieldResponse {
1463
+ /** The id of the field, unique to this table. */
1464
+ id: number;
1465
+ /** The type of field, as described [here](https://help.quickbase.com/user-assistance/field_types.html). */
1466
+ fieldType?: string;
1467
+ /** For derived fields, this will be 'lookup', 'summary', or 'formula', to indicate the type of derived field. For non-derived fields, this will be blank. */
1468
+ mode?: string;
1469
+ /** The label (name) of the field. */
1470
+ label?: string;
1471
+ /** Indicates if the field is configured to not wrap when displayed in the product. */
1472
+ noWrap?: boolean;
1473
+ /** Indicates if the field is configured to display in bold in the product. */
1474
+ bold?: boolean;
1475
+ /** Indicates if the field is marked required. */
1476
+ required?: boolean;
1477
+ /** Indicates if the field is marked as a default in reports. */
1478
+ appearsByDefault?: boolean;
1479
+ /** Indicates if the field is marked as searchable. */
1480
+ findEnabled?: boolean;
1481
+ /** Indicates if the field is marked unique. */
1482
+ unique?: boolean;
1483
+ /** Indicates if the field data will copy when a user copies the record. */
1484
+ doesDataCopy?: boolean;
1485
+ /** The configured help text shown to users within the product. */
1486
+ fieldHelp?: string;
1487
+ /** Indicates if the field is being tracked as part of Quickbase Audit Logs. */
1488
+ audited?: boolean;
1489
+ /** Additional properties for the field. Please see [Field type details](../fieldInfo) page for more details on the properties for each field type. */
1490
+ properties?: {
1491
+ /** If someone can @mention users in the rich text field to generate an email notification. */
1492
+ allowMentions?: boolean;
1493
+ /** The comments entered on the field properties by an administrator. */
1494
+ comments?: string;
1495
+ /** Whether this field totals in reports within the product. */
1496
+ doesTotal?: boolean;
1497
+ /** Whether the link field will auto save. */
1498
+ autoSave?: boolean;
1499
+ /** Default user id value. */
1500
+ defaultValueLuid?: number;
1501
+ /** Whether phone numbers should be in E.164 standard international format. */
1502
+ useI18NFormat?: boolean;
1503
+ /** The maximum number of versions configured for a file attachment. */
1504
+ maxVersions?: number;
1505
+ /** Whether the field should carry its multiple choice fields when copied. */
1506
+ carryChoices?: boolean;
1507
+ /** The format to display time. */
1508
+ format?: number;
1509
+ /** The maximum number of characters allowed for entry in Quickbase for this field. */
1510
+ maxLength?: number;
1511
+ /** The configured text value that replaces the URL that users see within the product. */
1512
+ linkText?: string;
1513
+ /** The id of the parent composite field, when applicable. */
1514
+ parentFieldId?: number;
1515
+ /** Indicates whether to display the timezone within the product. */
1516
+ displayTimezone?: boolean;
1517
+ /** The id of the field that is used to aggregate values from the child, when applicable. This displays 0 if the summary function doesn’t require a field selection (like count). */
1518
+ summaryTargetFieldId?: number;
1519
+ /** Indicates if users can add new choices to a selection list. */
1520
+ allowNewChoices?: boolean;
1521
+ /** The id of the field that is the reference in the relationship. */
1522
+ masterChoiceFieldId?: number;
1523
+ /** Indicates if the field value is defaulted today for new records. */
1524
+ defaultToday?: boolean;
1525
+ /** The units label. */
1526
+ units?: string;
1527
+ /** The id of the field that is the target on the master table for this lookup. */
1528
+ lookupTargetFieldId?: number;
1529
+ /** The summary accumulation function type. */
1530
+ summaryFunction?: 'AVG' | 'SUM' | 'MAX' | 'MIN' | 'STD-DEV' | 'COUNT' | 'COMBINED-TEXT' | 'COMBINED-USER' | 'DISTINCT-COUNT';
1531
+ /** The id of the source field. */
1532
+ sourceFieldId?: number;
1533
+ /** The table alias for the master table in the relationship this field is part of. */
1534
+ masterTableTag?: string;
1535
+ /** Whether this field averages in reports within the product. */
1536
+ doesAverage?: boolean;
1537
+ /** The formula of the field as configured in Quickbase. */
1538
+ formula?: string;
1539
+ /** The number of decimal places displayed in the product for this field. */
1540
+ decimalPlaces?: number;
1541
+ /** Controls the default country shown on international phone widgets on forms. Country code should be entered in the ISO 3166-1 alpha-2 format. */
1542
+ defaultCountryCode?: string;
1543
+ /** Indicates if the user can see other versions, aside from the most recent, of a file attachment within the product. */
1544
+ seeVersions?: boolean;
1545
+ /** How to display months. */
1546
+ displayMonth?: string;
1547
+ /** The number of lines shown in Quickbase for this text field. */
1548
+ numLines?: number;
1549
+ /** How the email is displayed. */
1550
+ displayEmail?: string;
1551
+ /** The user default type. */
1552
+ defaultKind?: string;
1553
+ /** An alternate user friendly text that can be used to display a link in the browser. */
1554
+ coverText?: string;
1555
+ /** The current symbol used when displaying field values within the product. */
1556
+ currencySymbol?: string;
1557
+ /** The id of the table that is the master in this relationship. */
1558
+ masterChoiceTableId?: string;
1559
+ /** The id of the target field. */
1560
+ targetFieldId?: number;
1561
+ /** The configured option for how users display within the product. */
1562
+ displayUser?: string;
1563
+ /** Whether a blank value is treated the same as 0 in calculations within the product. */
1564
+ blankIsZero?: boolean;
1565
+ /** Whether an exact match is required for a report link. */
1566
+ exact?: boolean;
1567
+ /** The start field id. */
1568
+ startField?: number;
1569
+ /** Default email domain. */
1570
+ defaultDomain?: string;
1571
+ /** The default value configured for a field when a new record is added. */
1572
+ defaultValue?: string;
1573
+ /** List of user choices. */
1574
+ choicesLuid?: string[];
1575
+ /** Don't show the URL protocol when showing the URL. */
1576
+ abbreviate?: boolean;
1577
+ /** The field's xml tag. */
1578
+ xmlTag?: string;
1579
+ /** The field's target table name. */
1580
+ targetTableName?: string;
1581
+ /** The format used for displaying numeric values in the product (decimal, separators, digit group). */
1582
+ numberFormat?: number;
1583
+ /** The link text, if empty, the url will be used as link text. */
1584
+ appearsAs?: string;
1585
+ /** The field's html input width in the product. */
1586
+ width?: number;
1587
+ /** The currency format used when displaying field values within the product. */
1588
+ currencyFormat?: 'left' | 'right' | 'middle';
1589
+ /** Indicates if the field is a foreign key (or reference field) in a relationship. */
1590
+ foreignKey?: boolean;
1591
+ /** Indicates whether to display the day of the week within the product. */
1592
+ displayDayOfWeek?: boolean;
1593
+ /** The id of the field that is the reference in the relationship for this summary. */
1594
+ summaryReferenceFieldId?: number;
1595
+ /** The number of digits before commas display in the product, when applicable. */
1596
+ commaStart?: number;
1597
+ /** An array of entries that exist for a field that offers choices to the user. */
1598
+ choices?: string[];
1599
+ /** The id of the target table. */
1600
+ targetTableId?: string;
1601
+ /** Whether to display time as relative. */
1602
+ displayRelative?: boolean;
1603
+ /** An array of the fields that make up a composite field (e.g., address). */
1604
+ compositeFields?: (number | Record<string, unknown>)[];
1605
+ /** Indicates whether the checkbox values will be shown as text in reports. */
1606
+ displayCheckboxAsText?: boolean;
1607
+ /** Version modes for files. Keep all versions vs keep last version. */
1608
+ versionMode?: 'keepallversions' | 'keeplastversions';
1609
+ /** Indicates whether to display the time, in addition to the date. */
1610
+ displayTime?: boolean;
1611
+ /** The duration field id. */
1612
+ durationField?: number;
1613
+ /** The id of the field that is used to snapshot values from, when applicable. */
1614
+ snapFieldId?: number;
1615
+ /** Indicates whether or not to display time in the 24-hour format within the product. */
1616
+ hours24?: boolean;
1617
+ /** Whether to sort alphabetically, default sort is by record ID. */
1618
+ sortAlpha?: boolean;
1619
+ /** Indicates if the listed entries sort as entered vs alphabetically. */
1620
+ sortAsGiven?: boolean;
1621
+ /** Whether this field has a phone extension. */
1622
+ hasExtension?: boolean;
1623
+ /** The work week type. */
1624
+ workWeek?: number;
1625
+ /** Indicates if the URL should open a new window when a user clicks it within the product. */
1626
+ useNewWindow?: boolean;
1627
+ /** Whether this field is append only. */
1628
+ appendOnly?: boolean;
1629
+ /** Indicates if a field that is part of the relationship should be shown as a hyperlink to the parent record within the product. */
1630
+ displayAsLink?: boolean;
1631
+ /** Whether this field allows html. */
1632
+ allowHTML?: boolean;
1633
+ /** The id of the field that is the reference in the relationship for this lookup. */
1634
+ lookupReferenceFieldId?: number;
1635
+ [key: string]: unknown;
1636
+ };
1637
+ /** Field Permissions for different roles. */
1638
+ permissions?: {
1639
+ /** The role associated with a given permission for the field */
1640
+ role?: string;
1641
+ /** The permission given to the role for this field */
1642
+ permissionType?: string;
1643
+ /** The Id of the given role */
1644
+ roleId?: number;
1645
+ }[];
1646
+ [key: string]: unknown;
1647
+ }
1648
+ /** Update a field */
1649
+ export interface UpdateFieldParams {
1650
+ /** The unique identifier of the table. */
1651
+ tableId: string;
1652
+ /** The unique identifier (fid) of the field. */
1653
+ fieldId: number;
1654
+ }
1655
+ export interface UpdateFieldRequest {
1656
+ /** Indicates if the field is being tracked as part of Quickbase Audit Logs. You can only set this property to "true" if the app has audit logs enabled. See Enable data change logs under [Quickbase Audit Logs](https://help.quickbase.com/user-assistance/audit_logs.html). */
1657
+ audited?: boolean;
1658
+ /** The configured help text shown to users within the product. */
1659
+ fieldHelp?: string;
1660
+ /** Indicates if the field is configured to display in bold in the product. */
1661
+ bold?: boolean;
1662
+ /** Indicates if the field is required (i.e. if every record must have a non-null value in this field). If you attempt to change a field from not-required to required, and the table currently contains records that have null values in that field, you will get an error indicating that there are null values of the field. In this case you need to find and update those records with null values of the field before changing the field to required. */
1663
+ required?: boolean;
1664
+ /** Specific field properties. */
1665
+ properties?: {
1666
+ /** If someone can @mention users in the rich text field to generate an email notification. */
1667
+ allowMentions?: boolean;
1668
+ /** The comments entered on the field properties by an administrator. */
1669
+ comments?: string;
1670
+ /** Whether this field totals in reports within the product. */
1671
+ doesTotal?: boolean;
1672
+ /** Whether the link field will auto save. */
1673
+ autoSave?: boolean;
1674
+ /** Default user id value. */
1675
+ defaultValueLuid?: number;
1676
+ /** Whether phone numbers should be in E.164 standard international format */
1677
+ useI18NFormat?: boolean;
1678
+ /** The maximum number of versions configured for a file attachment. */
1679
+ maxVersions?: number;
1680
+ /** The format to display time. */
1681
+ format?: number;
1682
+ /** Whether the field should carry its multiple choice fields when copied. */
1683
+ carryChoices?: boolean;
1684
+ /** The maximum number of characters allowed for entry in Quickbase for this field. */
1685
+ maxLength?: number;
1686
+ /** The configured text value that replaces the URL that users see within the product. */
1687
+ linkText?: string;
1688
+ /** The id of the parent composite field, when applicable. */
1689
+ parentFieldId?: number;
1690
+ /** Indicates whether to display the timezone within the product. */
1691
+ displayTimezone?: boolean;
1692
+ /** The id of the field that is used to aggregate values from the child, when applicable. This displays 0 if the summary function doesn’t require a field selection (like count). */
1693
+ summaryTargetFieldId?: number;
1694
+ /** Indicates if users can add new choices to a selection list. */
1695
+ allowNewChoices?: boolean;
1696
+ /** Indicates if the field value is defaulted today for new records. */
1697
+ defaultToday?: boolean;
1698
+ /** The units label. */
1699
+ units?: string;
1700
+ /** Indicates which target the URL should open in when a user clicks it within the product. */
1701
+ openTargetIn?: 'sameWindow' | 'newWindow' | 'popup';
1702
+ /** The id of the field that is the target on the parent table for this lookup. */
1703
+ lookupTargetFieldId?: number;
1704
+ /** The accumulation type for the summary field. */
1705
+ summaryFunction?: 'AVG' | 'SUM' | 'MAX' | 'MIN' | 'STD-DEV' | 'COUNT' | 'COMBINED-TEXT' | 'COMBINED-USER' | 'DISTINCT-COUNT';
1706
+ /** The id of the source field. */
1707
+ sourceFieldId?: number;
1708
+ /** Whether this field averages in reports within the product. */
1709
+ doesAverage?: boolean;
1710
+ /** The formula of the field as configured in Quickbase. */
1711
+ formula?: string;
1712
+ /** The number of decimal places displayed in the product for this field. */
1713
+ decimalPlaces?: number;
1714
+ /** Controls the default country shown on international phone widgets on forms. Country code should be entered in the ISO 3166-1 alpha-2 format. */
1715
+ defaultCountryCode?: string;
1716
+ /** How to display months. */
1717
+ displayMonth?: string;
1718
+ /** Indicates if the user can see other versions, aside from the most recent, of a file attachment within the product. */
1719
+ seeVersions?: boolean;
1720
+ /** The number of lines shown in Quickbase for this text field. */
1721
+ numLines?: number;
1722
+ /** The user default type. */
1723
+ defaultKind?: string;
1724
+ /** How the email is displayed. */
1725
+ displayEmail?: string;
1726
+ /** An alternate user friendly text that can be used to display a link in the browser. */
1727
+ coverText?: string;
1728
+ /** The current symbol used when displaying field values within the product. */
1729
+ currencySymbol?: string;
1730
+ /** The summary query. */
1731
+ summaryQuery?: string;
1732
+ /** The id of the target field. */
1733
+ targetFieldId?: number;
1734
+ /** The configured option for how users display within the product. */
1735
+ displayUser?: string;
1736
+ /** Whether a blank value is treated the same as 0 in calculations within the product. */
1737
+ blankIsZero?: boolean;
1738
+ /** Whether an exact match is required for a report link. */
1739
+ exact?: boolean;
1740
+ /** Default email domain. */
1741
+ defaultDomain?: string;
1742
+ /** The default value configured for a field when a new record is added. */
1743
+ defaultValue?: string;
1744
+ /** Don't show the URL protocol when showing the URL. */
1745
+ abbreviate?: boolean;
1746
+ /** The format used for displaying numeric values in the product (decimal, separators, digit group). */
1747
+ numberFormat?: number;
1748
+ /** The field's target table name. */
1749
+ targetTableName?: string;
1750
+ /** The link text, if empty, the url will be used as link text. */
1751
+ appearsAs?: string;
1752
+ /** The field's html input width in the product. */
1753
+ width?: number;
1754
+ /** The currency format used when displaying field values within the product. */
1755
+ currencyFormat?: 'left' | 'right' | 'middle';
1756
+ /** Indicates whether to display the day of the week within the product. */
1757
+ displayDayOfWeek?: boolean;
1758
+ /** The id of the field that is the reference in the relationship for this summary. */
1759
+ summaryReferenceFieldId?: number;
1760
+ /** The number of digits before commas display in the product, when applicable. */
1761
+ commaStart?: number;
1762
+ /** An array of entries that exist for a field that offers choices to the user. Note that these choices refer to the valid values of any records added in the future. You are allowed to remove values from the list of choices even if there are existing records with those values in this field. They will be displayed in red when users look at the data in the browser but there is no other effect. While updating a field with this property, the old choices are removed and replaced by the new choices. */
1763
+ choices?: string[];
1764
+ /** The id of the target table. */
1765
+ targetTableId?: string;
1766
+ /** Whether to display time as relative. */
1767
+ displayRelative?: boolean;
1768
+ /** An array of the fields that make up a composite field (e.g., address). */
1769
+ compositeFields?: (number | Record<string, unknown>)[];
1770
+ /** Indicates whether the checkbox values will be shown as text in reports. */
1771
+ displayCheckboxAsText?: boolean;
1772
+ /** The table the summary field references fields from. */
1773
+ summaryTableId?: string;
1774
+ /** Indicates whether to display the time, in addition to the date. */
1775
+ displayTime?: boolean;
1776
+ /** Version modes for files. Keep all versions vs keep last version. */
1777
+ versionMode?: 'keepallversions' | 'keeplastversions';
1778
+ /** The id of the field that is used to snapshot values from, when applicable. */
1779
+ snapFieldId?: number;
1780
+ /** Indicates whether or not to display time in the 24-hour format within the product. */
1781
+ hours24?: boolean;
1782
+ /** Whether to sort alphabetically, default sort is by record ID. */
1783
+ sortAlpha?: boolean;
1784
+ /** Indicates if the listed entries sort as entered vs alphabetically. */
1785
+ sortAsGiven?: boolean;
1786
+ /** Whether this field has a phone extension. */
1787
+ hasExtension?: boolean;
1788
+ /** Indicates if the file should open a new window when a user clicks it within the product. */
1789
+ useNewWindow?: boolean;
1790
+ /** Whether this field is append only. */
1791
+ appendOnly?: boolean;
1792
+ /** Indicates if a field that is part of the relationship should be shown as a hyperlink to the parent record within the product. */
1793
+ displayAsLink?: boolean;
1794
+ /** The id of the field that is the reference in the relationship for this lookup. */
1795
+ lookupReferenceFieldId?: number;
1796
+ };
1797
+ /** Indicates if the field is marked as a default in reports. */
1798
+ appearsByDefault?: boolean;
1799
+ /** Indicates if every record in the table must contain a unique value of this field. If you attempt to change a field from not-unique to unique, and the table currently contains records with the same value of this field, you will get an error. In this case you need to find and update those records with duplicate values of the field before changing the field to unique. */
1800
+ unique?: boolean;
1801
+ /** Field Permissions for different roles. */
1802
+ permissions?: {
1803
+ /** The role associated with a given permission for the field */
1804
+ role?: string;
1805
+ /** The permission given to the role for this field */
1806
+ permissionType?: string;
1807
+ /** The Id of the given role */
1808
+ roleId?: number;
1809
+ }[];
1810
+ /** Whether the field you are adding should appear on forms. */
1811
+ addToForms?: boolean;
1812
+ /** The label (name) of the field. */
1813
+ label?: string;
1814
+ /** Indicates if the field is marked as searchable. */
1815
+ findEnabled?: boolean;
1816
+ /** Indicates if the field is configured to not wrap when displayed in the product. */
1817
+ noWrap?: boolean;
1818
+ }
1819
+ export interface UpdateFieldResponse {
1820
+ /** The id of the field, unique to this table. */
1821
+ id: number;
1822
+ /** The type of field, as described [here](https://help.quickbase.com/user-assistance/field_types.html). */
1823
+ fieldType?: string;
1824
+ /** For derived fields, this will be 'lookup', 'summary', or 'formula', to indicate the type of derived field. For non-derived fields, this will be blank. */
1825
+ mode?: string;
1826
+ /** The label (name) of the field. */
1827
+ label?: string;
1828
+ /** Indicates if the field is configured to not wrap when displayed in the product. */
1829
+ noWrap?: boolean;
1830
+ /** Indicates if the field is configured to display in bold in the product. */
1831
+ bold?: boolean;
1832
+ /** Indicates if the field is marked required. */
1833
+ required?: boolean;
1834
+ /** Indicates if the field is marked as a default in reports. */
1835
+ appearsByDefault?: boolean;
1836
+ /** Indicates if the field is marked as searchable. */
1837
+ findEnabled?: boolean;
1838
+ /** Indicates if the field is marked unique. */
1839
+ unique?: boolean;
1840
+ /** Indicates if the field data will copy when a user copies the record. */
1841
+ doesDataCopy?: boolean;
1842
+ /** The configured help text shown to users within the product. */
1843
+ fieldHelp?: string;
1844
+ /** Indicates if the field is being tracked as part of Quickbase Audit Logs. */
1845
+ audited?: boolean;
1846
+ /** Additional properties for the field. Please see [Field type details](../fieldInfo) page for more details on the properties for each field type. */
1847
+ properties?: {
1848
+ /** If someone can @mention users in the rich text field to generate an email notification. */
1849
+ allowMentions?: boolean;
1850
+ /** The comments entered on the field properties by an administrator. */
1851
+ comments?: string;
1852
+ /** Whether this field totals in reports within the product. */
1853
+ doesTotal?: boolean;
1854
+ /** Whether the link field will auto save. */
1855
+ autoSave?: boolean;
1856
+ /** Default user id value. */
1857
+ defaultValueLuid?: number;
1858
+ /** Whether phone numbers should be in E.164 standard international format. */
1859
+ useI18NFormat?: boolean;
1860
+ /** The maximum number of versions configured for a file attachment. */
1861
+ maxVersions?: number;
1862
+ /** Whether the field should carry its multiple choice fields when copied. */
1863
+ carryChoices?: boolean;
1864
+ /** The format to display time. */
1865
+ format?: number;
1866
+ /** The maximum number of characters allowed for entry in Quickbase for this field. */
1867
+ maxLength?: number;
1868
+ /** The configured text value that replaces the URL that users see within the product. */
1869
+ linkText?: string;
1870
+ /** The id of the parent composite field, when applicable. */
1871
+ parentFieldId?: number;
1872
+ /** Indicates whether to display the timezone within the product. */
1873
+ displayTimezone?: boolean;
1874
+ /** The id of the field that is used to aggregate values from the child, when applicable. This displays 0 if the summary function doesn’t require a field selection (like count). */
1875
+ summaryTargetFieldId?: number;
1876
+ /** Indicates if users can add new choices to a selection list. */
1877
+ allowNewChoices?: boolean;
1878
+ /** The id of the field that is the reference in the relationship. */
1879
+ masterChoiceFieldId?: number;
1880
+ /** Indicates if the field value is defaulted today for new records. */
1881
+ defaultToday?: boolean;
1882
+ /** The units label. */
1883
+ units?: string;
1884
+ /** The id of the field that is the target on the master table for this lookup. */
1885
+ lookupTargetFieldId?: number;
1886
+ /** The summary accumulation function type. */
1887
+ summaryFunction?: 'AVG' | 'SUM' | 'MAX' | 'MIN' | 'STD-DEV' | 'COUNT' | 'COMBINED-TEXT' | 'COMBINED-USER' | 'DISTINCT-COUNT';
1888
+ /** The id of the source field. */
1889
+ sourceFieldId?: number;
1890
+ /** The table alias for the master table in the relationship this field is part of. */
1891
+ masterTableTag?: string;
1892
+ /** Whether this field averages in reports within the product. */
1893
+ doesAverage?: boolean;
1894
+ /** The formula of the field as configured in Quickbase. */
1895
+ formula?: string;
1896
+ /** The number of decimal places displayed in the product for this field. */
1897
+ decimalPlaces?: number;
1898
+ /** Controls the default country shown on international phone widgets on forms. Country code should be entered in the ISO 3166-1 alpha-2 format. */
1899
+ defaultCountryCode?: string;
1900
+ /** Indicates if the user can see other versions, aside from the most recent, of a file attachment within the product. */
1901
+ seeVersions?: boolean;
1902
+ /** How to display months. */
1903
+ displayMonth?: string;
1904
+ /** The number of lines shown in Quickbase for this text field. */
1905
+ numLines?: number;
1906
+ /** How the email is displayed. */
1907
+ displayEmail?: string;
1908
+ /** The user default type. */
1909
+ defaultKind?: string;
1910
+ /** An alternate user friendly text that can be used to display a link in the browser. */
1911
+ coverText?: string;
1912
+ /** The current symbol used when displaying field values within the product. */
1913
+ currencySymbol?: string;
1914
+ /** The id of the table that is the master in this relationship. */
1915
+ masterChoiceTableId?: string;
1916
+ /** The id of the target field. */
1917
+ targetFieldId?: number;
1918
+ /** The configured option for how users display within the product. */
1919
+ displayUser?: string;
1920
+ /** Whether a blank value is treated the same as 0 in calculations within the product. */
1921
+ blankIsZero?: boolean;
1922
+ /** Whether an exact match is required for a report link. */
1923
+ exact?: boolean;
1924
+ /** The start field id. */
1925
+ startField?: number;
1926
+ /** Default email domain. */
1927
+ defaultDomain?: string;
1928
+ /** The default value configured for a field when a new record is added. */
1929
+ defaultValue?: string;
1930
+ /** List of user choices. */
1931
+ choicesLuid?: string[];
1932
+ /** Don't show the URL protocol when showing the URL. */
1933
+ abbreviate?: boolean;
1934
+ /** The field's xml tag. */
1935
+ xmlTag?: string;
1936
+ /** The field's target table name. */
1937
+ targetTableName?: string;
1938
+ /** The format used for displaying numeric values in the product (decimal, separators, digit group). */
1939
+ numberFormat?: number;
1940
+ /** The link text, if empty, the url will be used as link text. */
1941
+ appearsAs?: string;
1942
+ /** The field's html input width in the product. */
1943
+ width?: number;
1944
+ /** The currency format used when displaying field values within the product. */
1945
+ currencyFormat?: 'left' | 'right' | 'middle';
1946
+ /** Indicates if the field is a foreign key (or reference field) in a relationship. */
1947
+ foreignKey?: boolean;
1948
+ /** Indicates whether to display the day of the week within the product. */
1949
+ displayDayOfWeek?: boolean;
1950
+ /** The id of the field that is the reference in the relationship for this summary. */
1951
+ summaryReferenceFieldId?: number;
1952
+ /** The number of digits before commas display in the product, when applicable. */
1953
+ commaStart?: number;
1954
+ /** An array of entries that exist for a field that offers choices to the user. */
1955
+ choices?: string[];
1956
+ /** The id of the target table. */
1957
+ targetTableId?: string;
1958
+ /** Whether to display time as relative. */
1959
+ displayRelative?: boolean;
1960
+ /** An array of the fields that make up a composite field (e.g., address). */
1961
+ compositeFields?: (number | Record<string, unknown>)[];
1962
+ /** Indicates whether the checkbox values will be shown as text in reports. */
1963
+ displayCheckboxAsText?: boolean;
1964
+ /** Version modes for files. Keep all versions vs keep last version. */
1965
+ versionMode?: 'keepallversions' | 'keeplastversions';
1966
+ /** Indicates whether to display the time, in addition to the date. */
1967
+ displayTime?: boolean;
1968
+ /** The duration field id. */
1969
+ durationField?: number;
1970
+ /** The id of the field that is used to snapshot values from, when applicable. */
1971
+ snapFieldId?: number;
1972
+ /** Indicates whether or not to display time in the 24-hour format within the product. */
1973
+ hours24?: boolean;
1974
+ /** Whether to sort alphabetically, default sort is by record ID. */
1975
+ sortAlpha?: boolean;
1976
+ /** Indicates if the listed entries sort as entered vs alphabetically. */
1977
+ sortAsGiven?: boolean;
1978
+ /** Whether this field has a phone extension. */
1979
+ hasExtension?: boolean;
1980
+ /** The work week type. */
1981
+ workWeek?: number;
1982
+ /** Indicates if the URL should open a new window when a user clicks it within the product. */
1983
+ useNewWindow?: boolean;
1984
+ /** Whether this field is append only. */
1985
+ appendOnly?: boolean;
1986
+ /** Indicates if a field that is part of the relationship should be shown as a hyperlink to the parent record within the product. */
1987
+ displayAsLink?: boolean;
1988
+ /** Whether this field allows html. */
1989
+ allowHTML?: boolean;
1990
+ /** The id of the field that is the reference in the relationship for this lookup. */
1991
+ lookupReferenceFieldId?: number;
1992
+ [key: string]: unknown;
1993
+ };
1994
+ /** Field Permissions for different roles. */
1995
+ permissions?: {
1996
+ /** The role associated with a given permission for the field */
1997
+ role?: string;
1998
+ /** The permission given to the role for this field */
1999
+ permissionType?: string;
2000
+ /** The Id of the given role */
2001
+ roleId?: number;
2002
+ }[];
2003
+ [key: string]: unknown;
2004
+ }
2005
+ /** Get usage for all fields */
2006
+ export interface GetFieldsUsageParams {
2007
+ /** The unique identifier (dbid) of the table. */
2008
+ tableId: string;
2009
+ /** The number of fields to skip from the list. */
2010
+ skip?: number;
2011
+ /** The maximum number of fields to return. */
2012
+ top?: number;
2013
+ }
2014
+ export interface GetFieldsUsageResponse {
2015
+ /** Basic information about the field. */
2016
+ field: {
2017
+ /** Field name. */
2018
+ name: string;
2019
+ /** Field id. */
2020
+ id: number;
2021
+ /** Field type. */
2022
+ type: string;
2023
+ [key: string]: unknown;
2024
+ };
2025
+ /** Usage Information about the field. */
2026
+ usage: {
2027
+ /** The number of quickbase actions where the given field is referenced. */
2028
+ actions: {
2029
+ /** the number of times a field has been used for the given item. */
2030
+ count: number;
2031
+ [key: string]: unknown;
2032
+ };
2033
+ /** The number of app home pages where the given field is referenced. */
2034
+ appHomePages: {
2035
+ /** the number of times a field has been used for the given item. */
2036
+ count: number;
2037
+ [key: string]: unknown;
2038
+ };
2039
+ /** The number of dashboards where the given field is referenced. */
2040
+ dashboards: {
2041
+ /** the number of times a field has been used for the given item. */
2042
+ count: number;
2043
+ };
2044
+ /** The number of default reports where the given field is referenced. */
2045
+ defaultReports: {
2046
+ /** the number of times a field has been used for the given item. */
2047
+ count: number;
2048
+ [key: string]: unknown;
2049
+ };
2050
+ /** The number of exact forms where the given field is referenced. */
2051
+ exactForms: {
2052
+ /** the number of times a field has been used for the given item. */
2053
+ count: number;
2054
+ [key: string]: unknown;
2055
+ };
2056
+ /** The number of fields where the given field is referenced. */
2057
+ fields: {
2058
+ /** the number of times a field has been used for the given item. */
2059
+ count: number;
2060
+ [key: string]: unknown;
2061
+ };
2062
+ /** The number of forms where the given field is referenced. */
2063
+ forms: {
2064
+ /** the number of times a field has been used for the given item. */
2065
+ count: number;
2066
+ [key: string]: unknown;
2067
+ };
2068
+ /** The number of notifications where the given field is referenced. */
2069
+ notifications: {
2070
+ /** the number of times a field has been used for the given item. */
2071
+ count: number;
2072
+ [key: string]: unknown;
2073
+ };
2074
+ /** The number of personal reports where the given field is referenced. */
2075
+ personalReports: {
2076
+ /** the number of times a field has been used for the given item. */
2077
+ count: number;
2078
+ [key: string]: unknown;
2079
+ };
2080
+ /** The number of pipelines where the given field is referenced. */
2081
+ pipelines: {
2082
+ /** the number of times a field has been used for the given item. */
2083
+ count: number;
2084
+ [key: string]: unknown;
2085
+ };
2086
+ /** The number of relationships where the given field is referenced. */
2087
+ relationships: {
2088
+ /** the number of times a field has been used for the given item. */
2089
+ count: number;
2090
+ [key: string]: unknown;
2091
+ };
2092
+ /** The number of reminders where the given field is referenced. */
2093
+ reminders: {
2094
+ /** the number of times a field has been used for the given item. */
2095
+ count: number;
2096
+ [key: string]: unknown;
2097
+ };
2098
+ /** The number of reports where the given field is referenced. */
2099
+ reports: {
2100
+ /** the number of times a field has been used for the given item. */
2101
+ count: number;
2102
+ [key: string]: unknown;
2103
+ };
2104
+ /** The number of roles where the given field is referenced. */
2105
+ roles: {
2106
+ /** the number of times a field has been used for the given item. */
2107
+ count: number;
2108
+ [key: string]: unknown;
2109
+ };
2110
+ /** The number of table imports where the given field is referenced. */
2111
+ tableImports: {
2112
+ /** the number of times a field has been used for the given item. */
2113
+ count: number;
2114
+ };
2115
+ /** The number of table rules where the given field is referenced. */
2116
+ tableRules: {
2117
+ /** the number of times a field has been used for the given item. */
2118
+ count: number;
2119
+ };
2120
+ /** The number of webhooks where the given field is referenced. */
2121
+ webhooks: {
2122
+ /** the number of times a field has been used for the given item. */
2123
+ count: number;
2124
+ [key: string]: unknown;
2125
+ };
2126
+ [key: string]: unknown;
2127
+ };
2128
+ [key: string]: unknown;
2129
+ }
2130
+ /** Get usage for a field */
2131
+ export interface GetFieldUsageParams {
2132
+ /** The unique identifier (dbid) of the table. */
2133
+ tableId: string;
2134
+ /** The unique identifier (fid) of the field. */
2135
+ fieldId: number;
2136
+ }
2137
+ export interface GetFieldUsageResponse {
2138
+ /** Basic information about the field. */
2139
+ field: {
2140
+ /** Field name. */
2141
+ name: string;
2142
+ /** Field id. */
2143
+ id: number;
2144
+ /** Field type. */
2145
+ type: string;
2146
+ [key: string]: unknown;
2147
+ };
2148
+ /** Usage Information about the field. */
2149
+ usage: {
2150
+ /** The number of quickbase actions where the given field is referenced. */
2151
+ actions: {
2152
+ /** the number of times a field has been used for the given item. */
2153
+ count: number;
2154
+ [key: string]: unknown;
2155
+ };
2156
+ /** The number of app home pages where the given field is referenced. */
2157
+ appHomePages: {
2158
+ /** the number of times a field has been used for the given item. */
2159
+ count: number;
2160
+ [key: string]: unknown;
2161
+ };
2162
+ /** The number of dashboards where the given field is referenced. */
2163
+ dashboards: {
2164
+ /** the number of times a field has been used for the given item. */
2165
+ count: number;
2166
+ };
2167
+ /** The number of default reports where the given field is referenced. */
2168
+ defaultReports: {
2169
+ /** the number of times a field has been used for the given item. */
2170
+ count: number;
2171
+ [key: string]: unknown;
2172
+ };
2173
+ /** The number of exact forms where the given field is referenced. */
2174
+ exactForms: {
2175
+ /** the number of times a field has been used for the given item. */
2176
+ count: number;
2177
+ [key: string]: unknown;
2178
+ };
2179
+ /** The number of fields where the given field is referenced. */
2180
+ fields: {
2181
+ /** the number of times a field has been used for the given item. */
2182
+ count: number;
2183
+ [key: string]: unknown;
2184
+ };
2185
+ /** The number of forms where the given field is referenced. */
2186
+ forms: {
2187
+ /** the number of times a field has been used for the given item. */
2188
+ count: number;
2189
+ [key: string]: unknown;
2190
+ };
2191
+ /** The number of notifications where the given field is referenced. */
2192
+ notifications: {
2193
+ /** the number of times a field has been used for the given item. */
2194
+ count: number;
2195
+ [key: string]: unknown;
2196
+ };
2197
+ /** The number of personal reports where the given field is referenced. */
2198
+ personalReports: {
2199
+ /** the number of times a field has been used for the given item. */
2200
+ count: number;
2201
+ [key: string]: unknown;
2202
+ };
2203
+ /** The number of pipelines where the given field is referenced. */
2204
+ pipelines: {
2205
+ /** the number of times a field has been used for the given item. */
2206
+ count: number;
2207
+ [key: string]: unknown;
2208
+ };
2209
+ /** The number of relationships where the given field is referenced. */
2210
+ relationships: {
2211
+ /** the number of times a field has been used for the given item. */
2212
+ count: number;
2213
+ [key: string]: unknown;
2214
+ };
2215
+ /** The number of reminders where the given field is referenced. */
2216
+ reminders: {
2217
+ /** the number of times a field has been used for the given item. */
2218
+ count: number;
2219
+ [key: string]: unknown;
2220
+ };
2221
+ /** The number of reports where the given field is referenced. */
2222
+ reports: {
2223
+ /** the number of times a field has been used for the given item. */
2224
+ count: number;
2225
+ [key: string]: unknown;
2226
+ };
2227
+ /** The number of roles where the given field is referenced. */
2228
+ roles: {
2229
+ /** the number of times a field has been used for the given item. */
2230
+ count: number;
2231
+ [key: string]: unknown;
2232
+ };
2233
+ /** The number of table imports where the given field is referenced. */
2234
+ tableImports: {
2235
+ /** the number of times a field has been used for the given item. */
2236
+ count: number;
2237
+ };
2238
+ /** The number of table rules where the given field is referenced. */
2239
+ tableRules: {
2240
+ /** the number of times a field has been used for the given item. */
2241
+ count: number;
2242
+ };
2243
+ /** The number of webhooks where the given field is referenced. */
2244
+ webhooks: {
2245
+ /** the number of times a field has been used for the given item. */
2246
+ count: number;
2247
+ [key: string]: unknown;
2248
+ };
2249
+ [key: string]: unknown;
2250
+ };
2251
+ [key: string]: unknown;
2252
+ }
2253
+ /** Run a formula */
2254
+ export interface RunFormulaRequest {
2255
+ /** The formula to run. This must be a valid Quickbase formula. */
2256
+ formula: string;
2257
+ /** The record ID to run the formula against. Only necessary for formulas that are run in the context of a record. For example, the formula User() does not need a record ID. */
2258
+ rid?: number;
2259
+ /** The unique identifier (dbid) of the table. */
2260
+ from: string;
2261
+ }
2262
+ export interface RunFormulaResponse {
2263
+ /** The formula execution result. */
2264
+ result?: string;
2265
+ [key: string]: unknown;
2266
+ }
2267
+ /** Insert/Update record(s) */
2268
+ export interface UpsertRequest {
2269
+ /** The table identifier. */
2270
+ to: string;
2271
+ /** Record data array, where each record contains key-value mappings of fields to be defined/updated and their values. */
2272
+ data?: QuickbaseRecord[];
2273
+ /** The merge field id. */
2274
+ mergeFieldId?: number;
2275
+ /** Specify an array of field ids that will return data for any updates or added record. Record ID (FID 3) is always returned if any field ID is requested. */
2276
+ fieldsToReturn?: number[];
2277
+ [key: string]: unknown;
2278
+ }
2279
+ export interface UpsertResponse {
2280
+ /** Information about created records, updated records, referenced but unchanged records, and records having any errors while being processed. */
2281
+ metadata?: {
2282
+ /** Array containing the created record ids. */
2283
+ createdRecordIds?: number[];
2284
+ /** This will only be returned in the case of failed records. It is a collection of errors that occurred when processing the incoming data that resulted in records not being processed. Each object has a key representing the sequence number of the record in the original payload (starting from 1). The value is a list of errors occurred. */
2285
+ lineErrors?: Record<string, string[]>;
2286
+ /** Array containing the unchanged record ids. */
2287
+ unchangedRecordIds?: number[];
2288
+ /** Array containing the updated record ids. */
2289
+ updatedRecordIds?: number[];
2290
+ /** Number of records processed. Includes successful and failed record updates. */
2291
+ totalNumberOfRecordsProcessed?: number;
2292
+ [key: string]: unknown;
2293
+ };
2294
+ /** The data that is expected to be returned. */
2295
+ data?: QuickbaseRecord[];
2296
+ [key: string]: unknown;
2297
+ }
2298
+ /** Delete record(s) */
2299
+ export interface DeleteRecordsRequest {
2300
+ /** The unique identifier of the table. */
2301
+ from: string;
2302
+ /** The filter to delete records. To delete all records specify a filter that will include all records, for example {3.GT.0} where 3 is the ID of the Record ID field. */
2303
+ where: string;
2304
+ [key: string]: unknown;
2305
+ }
2306
+ export interface DeleteRecordsResponse {
2307
+ /** The number of records deleted. */
2308
+ numberDeleted?: number;
2309
+ [key: string]: unknown;
2310
+ }
2311
+ /** Query for data */
2312
+ export interface RunQueryRequest {
2313
+ /** Additional query options. */
2314
+ options?: {
2315
+ /** The number of records to skip. */
2316
+ skip?: number;
2317
+ /** Whether to run the query against a date time field with respect to the application's local time. The query is run with UTC time by default. This parameter is ignored when querying by ISO8601, which is always in UTC. */
2318
+ compareWithAppLocalTime?: boolean;
2319
+ /** The maximum number of records to display. */
2320
+ top?: number;
2321
+ [key: string]: unknown;
2322
+ };
2323
+ /** The filter, using the Quickbase query language, which determines the records to return. If this parameter is omitted, the query will return all records. */
2324
+ where?: string;
2325
+ /** An array that contains the fields to group the records by. */
2326
+ groupBy?: {
2327
+ /** The unique identifier of a field in a table. */
2328
+ fieldId?: number;
2329
+ /** Group by based on equal values (equal-values) */
2330
+ grouping?: 'equal-values';
2331
+ [key: string]: unknown;
2332
+ }[];
2333
+ /** An array of field IDs and sort directions. If this attribute is not set or set to false, queries will be unsorted to improve performance. */
2334
+ sortBy?: SortField[] | false;
2335
+ /** An array of field ids for the fields that should be returned in the response. If empty, the default columns on the table will be returned. */
2336
+ select?: number[];
2337
+ /** The table identifier. */
2338
+ from: string;
2339
+ [key: string]: unknown;
2340
+ }
2341
+ export interface RunQueryResponse {
2342
+ /** An array of objects that contains limited meta-data of each field displayed in the report. This assists in building logic that depends on field types and IDs. */
2343
+ fields?: {
2344
+ /** Field id. */
2345
+ id?: number;
2346
+ /** Field label. */
2347
+ label?: string;
2348
+ /** Field type. */
2349
+ type?: string;
2350
+ [key: string]: unknown;
2351
+ }[];
2352
+ /** An array of objects that either represents the record data or summarized values, depending on the report type. */
2353
+ data?: QuickbaseRecord[];
2354
+ /** Additional information about the results that may be helpful. Pagination may be needed if either you specify a smaller number of results to skip than is available, or if the API automatically returns fewer results. numRecords can be compared to totalRecords to determine if further pagination is needed. */
2355
+ metadata?: {
2356
+ /** The number of records to skip */
2357
+ skip?: number;
2358
+ /** The number of fields in each record in the current response object */
2359
+ numFields: number;
2360
+ /** If present, the maximum number of records requested by the caller */
2361
+ top?: number;
2362
+ /** The total number of records in the result set */
2363
+ totalRecords: number;
2364
+ /** The number of records in the current response object */
2365
+ numRecords: number;
2366
+ [key: string]: unknown;
2367
+ };
2368
+ [key: string]: unknown;
2369
+ }
2370
+ /** Get a temporary token for a dbid */
2371
+ export interface GetTempTokenDBIDParams {
2372
+ /** The unique identifier of an app or table. */
2373
+ dbid: string;
2374
+ }
2375
+ export interface GetTempTokenDBIDResponse {
2376
+ /** Temporary authorization token. */
2377
+ temporaryAuthorization?: string;
2378
+ [key: string]: unknown;
2379
+ }
2380
+ /** Exchange an SSO token */
2381
+ export interface ExchangeSsoTokenRequest {
2382
+ /** The value `urn:ietf:params:oauth:grant-type:token-exchange` indicates that a token exchange is being performed. */
2383
+ grant_type: 'urn:ietf:params:oauth:grant-type:token-exchange';
2384
+ /** An identifier for the type of the requested security token. For the RESTful API, use `urn:quickbase:params:oauth:token-type:temp_token`. For the XML or SCIM APIs use `urn:quickbase:params:oauth:token-type:temp_ticket`. */
2385
+ requested_token_type: 'urn:quickbase:params:oauth:token-type:temp_ticket' | 'urn:quickbase:params:oauth:token-type:temp_token';
2386
+ /** A security token that represents the identity of the party on behalf of whom the request is being made. For SAML 2.0, the value should be a base64url-encoded SAML 2.0 assertion. */
2387
+ subject_token: string;
2388
+ /** An identifier that indicates the type of the security token in the `subject_token` parameter. */
2389
+ subject_token_type: 'urn:ietf:params:oauth:token-type:saml2';
2390
+ }
2391
+ export interface ExchangeSsoTokenResponse {
2392
+ /** The security token issued by the authorization server in response to the token exchange request. The identifier `access_token` is used for historical reasons and the issued token need not be an OAuth access token. */
2393
+ access_token?: string;
2394
+ /** An identifier for the representation of the issued security token. */
2395
+ issued_token_type?: 'urn:quickbase:params:oauth:token-type:temp_ticket' | 'urn:quickbase:params:oauth:token-type:temp_token';
2396
+ /** Will always return `N_A` */
2397
+ token_type?: 'N_A';
2398
+ [key: string]: unknown;
2399
+ }
2400
+ /** Clone a user token */
2401
+ export interface CloneUserTokenRequest {
2402
+ /** The new name for the cloned user token. */
2403
+ name?: string;
2404
+ /** The description for the cloned user token. */
2405
+ description?: string;
2406
+ }
2407
+ export interface CloneUserTokenResponse {
2408
+ /** Whether the user token is active. */
2409
+ active?: boolean;
2410
+ /** The list of apps this user token is assigned to. */
2411
+ apps?: {
2412
+ /** The unique identifier for this application. */
2413
+ id?: string;
2414
+ /** The application's name. */
2415
+ name?: string;
2416
+ [key: string]: unknown;
2417
+ }[];
2418
+ /** The last date this user token was used, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
2419
+ lastUsed?: string;
2420
+ /** User Token description. */
2421
+ description?: string;
2422
+ /** User Token id. */
2423
+ id?: number;
2424
+ /** User Token name. */
2425
+ name?: string;
2426
+ /** User Token value. */
2427
+ token?: string;
2428
+ [key: string]: unknown;
2429
+ }
2430
+ /** Transfer a user token */
2431
+ export interface TransferUserTokenRequest {
2432
+ /** The id of the user token to transfer */
2433
+ id?: number;
2434
+ /** The id of the user to transfer the user token from */
2435
+ from?: string;
2436
+ /** The id of the user to transfer the user token to */
2437
+ to?: string;
2438
+ }
2439
+ export interface TransferUserTokenResponse {
2440
+ /** Whether the user token is active. */
2441
+ active?: boolean;
2442
+ /** The list of apps this user token is assigned to. */
2443
+ apps?: {
2444
+ /** The unique identifier for this application. */
2445
+ id?: string;
2446
+ /** The application's name. */
2447
+ name?: string;
2448
+ [key: string]: unknown;
2449
+ }[];
2450
+ /** The last date this user token was used, in the ISO 8601 time format YYYY-MM-DDThh:mm:ss.sssZ (in UTC time zone). */
2451
+ lastUsed?: string;
2452
+ /** User Token description. */
2453
+ description?: string;
2454
+ /** User Token id. */
2455
+ id?: number;
2456
+ /** User Token name. */
2457
+ name?: string;
2458
+ [key: string]: unknown;
2459
+ }
2460
+ /** Deactivate a user token */
2461
+ export interface DeactivateUserTokenResponse {
2462
+ /** The user token id. */
2463
+ id?: number;
2464
+ [key: string]: unknown;
2465
+ }
2466
+ /** Delete a user token */
2467
+ export interface DeleteUserTokenResponse {
2468
+ /** The user token id. */
2469
+ id?: number;
2470
+ [key: string]: unknown;
2471
+ }
2472
+ /** Download file */
2473
+ export interface DownloadFileParams {
2474
+ /** The unique identifier of the table. */
2475
+ tableId: string;
2476
+ /** The unique identifier of the record. */
2477
+ recordId: number;
2478
+ /** The unique identifier of the field. */
2479
+ fieldId: number;
2480
+ /** The file attachment version number. */
2481
+ versionNumber: number;
2482
+ }
2483
+ export type DownloadFileResponse = unknown;
2484
+ /** Delete file */
2485
+ export interface DeleteFileParams {
2486
+ /** The unique identifier of the table. */
2487
+ tableId: string;
2488
+ /** The unique identifier of the record. */
2489
+ recordId: number;
2490
+ /** The unique identifier of the field. */
2491
+ fieldId: number;
2492
+ /** The file attachment version number. */
2493
+ versionNumber: number;
2494
+ }
2495
+ export interface DeleteFileResponse {
2496
+ /** The number of deleted version. */
2497
+ versionNumber?: number;
2498
+ /** The name of file associated with deleted version. */
2499
+ fileName?: string;
2500
+ /** The timestamp when the version was originally uploaded. */
2501
+ uploaded?: string;
2502
+ /** The user that uploaded version. */
2503
+ creator?: {
2504
+ /** User full name. */
2505
+ name?: string;
2506
+ /** User Id. */
2507
+ id?: string;
2508
+ /** User email. */
2509
+ email?: string;
2510
+ /** User Name as updated in user properties. Optional, appears if not the same as user email. */
2511
+ userName?: string;
2512
+ [key: string]: unknown;
2513
+ };
2514
+ [key: string]: unknown;
2515
+ }
2516
+ /** Get users */
2517
+ export interface GetUsersParams {
2518
+ /** The account id being used to get users. If no value is specified, the first account associated with the requesting user token is chosen. */
2519
+ accountId?: number;
2520
+ }
2521
+ export interface GetUsersRequest {
2522
+ /** When provided, the returned users will be narrowed down only to the users included in this list. */
2523
+ emails?: string[];
2524
+ /** When provided, the returned users will be narrowed down only to the users assigned to the app id's provided in this list. The provided app id's should belong to the same account. */
2525
+ appIds?: string[];
2526
+ /** Next page token used to get the next 'page' of results when available. When this field is empty, the first page is returned. */
2527
+ nextPageToken?: string;
2528
+ [key: string]: unknown;
2529
+ }
2530
+ export interface GetUsersResponse {
2531
+ /** A list of users found in an account with the given criterias */
2532
+ users: {
2533
+ userName: string;
2534
+ firstName: string;
2535
+ lastName: string;
2536
+ emailAddress: string;
2537
+ hashId: string;
2538
+ [key: string]: unknown;
2539
+ }[];
2540
+ /** Additional request information */
2541
+ metadata: {
2542
+ nextPageToken: string;
2543
+ [key: string]: unknown;
2544
+ };
2545
+ [key: string]: unknown;
2546
+ }
2547
+ /** Deny users */
2548
+ export interface DenyUsersParams {
2549
+ /** The account id being used to deny users. If no value is specified, the first account associated with the requesting user token is chosen. */
2550
+ accountId?: number;
2551
+ }
2552
+ export type DenyUsersRequest = string[];
2553
+ export interface DenyUsersResponse {
2554
+ /** A list of users that couldn't be denied. This also includes the ID's of users that are not valid. */
2555
+ failure: string[];
2556
+ /** A list of users that have successfully been denied. */
2557
+ success: string[];
2558
+ [key: string]: unknown;
2559
+ }
2560
+ /** Deny and remove users from groups */
2561
+ export interface DenyUsersAndGroupsParams {
2562
+ /** The account id being used to deny users. If no value is specified, the first account associated with the requesting user token is chosen. */
2563
+ accountId?: number;
2564
+ /** Specifies if the users should also be removed from all groups. */
2565
+ shouldDeleteFromGroups: boolean;
2566
+ }
2567
+ export type DenyUsersAndGroupsRequest = string[];
2568
+ export interface DenyUsersAndGroupsResponse {
2569
+ /** A list of users that couldn't be denied. This also includes the ID's of users that are not valid. */
2570
+ failure: string[];
2571
+ /** A list of users that have successfully been denied. */
2572
+ success: string[];
2573
+ [key: string]: unknown;
2574
+ }
2575
+ /** Undeny users */
2576
+ export interface UndenyUsersParams {
2577
+ /** The account id being used to undeny users. If no value is specified, the first account associated with the requesting user token is chosen. */
2578
+ accountId?: number;
2579
+ }
2580
+ export type UndenyUsersRequest = string[];
2581
+ export interface UndenyUsersResponse {
2582
+ /** A list of users that couldn't be undenied. This also includes the ID's of users that are not valid. */
2583
+ failure: string[];
2584
+ /** A list of users that have successfully been undenied. */
2585
+ success: string[];
2586
+ [key: string]: unknown;
2587
+ }
2588
+ /** Add members */
2589
+ export interface AddMembersToGroupParams {
2590
+ /** This is the ID of the group being modified. */
2591
+ gid: number;
2592
+ }
2593
+ export type AddMembersToGroupRequest = string[];
2594
+ export interface AddMembersToGroupResponse {
2595
+ /** A list of users that couldn’t be added to the group. This includes a list of IDs that represent invalid users and users who have already been added to the group. */
2596
+ failure: string[];
2597
+ /** A list of users that have been added to the group successfully. */
2598
+ success: string[];
2599
+ [key: string]: unknown;
2600
+ }
2601
+ /** Remove members */
2602
+ export interface RemoveMembersFromGroupParams {
2603
+ /** This is the ID of the group being modified. */
2604
+ gid: number;
2605
+ }
2606
+ export type RemoveMembersFromGroupRequest = string[];
2607
+ export interface RemoveMembersFromGroupResponse {
2608
+ /** A list of users that couldn’t be removed from the group. This includes a list of IDs that represent invalid users. */
2609
+ failure: string[];
2610
+ /** A list of users that have been removed from the group successfully. */
2611
+ success: string[];
2612
+ [key: string]: unknown;
2613
+ }
2614
+ /** Add managers */
2615
+ export interface AddManagersToGroupParams {
2616
+ /** This is the ID of the group being modified. */
2617
+ gid: number;
2618
+ }
2619
+ export type AddManagersToGroupRequest = string[];
2620
+ export interface AddManagersToGroupResponse {
2621
+ /** A list of users that couldn’t be added to the group. This includes a list of IDs that represent invalid users and users who have already been added to the group. */
2622
+ failure: string[];
2623
+ /** A list of users that have been added to the group successfully. */
2624
+ success: string[];
2625
+ [key: string]: unknown;
2626
+ }
2627
+ /** Remove managers */
2628
+ export interface RemoveManagersFromGroupParams {
2629
+ /** This is the ID of the group being modified. */
2630
+ gid: number;
2631
+ }
2632
+ export type RemoveManagersFromGroupRequest = string[];
2633
+ export interface RemoveManagersFromGroupResponse {
2634
+ /** A list of users that couldn’t be removed from the group. This includes a list of IDs that represent invalid users. */
2635
+ failure: string[];
2636
+ /** A list of users that have been removed from the group successfully. */
2637
+ success: string[];
2638
+ [key: string]: unknown;
2639
+ }
2640
+ /** Add child groups */
2641
+ export interface AddSubgroupsToGroupParams {
2642
+ /** This is the ID of the group being modified. */
2643
+ gid: number;
2644
+ }
2645
+ export type AddSubgroupsToGroupRequest = string[];
2646
+ export interface AddSubgroupsToGroupResponse {
2647
+ /** A list of child groups that couldn’t be added to the group. This includes a list of IDs that represent invalid groups and groups that have already been added to the group. */
2648
+ failure: string[];
2649
+ /** A list of child groups that have been added to the group successfully. */
2650
+ success: string[];
2651
+ [key: string]: unknown;
2652
+ }
2653
+ /** Remove child groups */
2654
+ export interface RemoveSubgroupsFromGroupParams {
2655
+ /** This is the ID of the group being modified. */
2656
+ gid: number;
2657
+ }
2658
+ export type RemoveSubgroupsFromGroupRequest = string[];
2659
+ export interface RemoveSubgroupsFromGroupResponse {
2660
+ /** A list of child groups that couldn’t be removed from the group. This includes a list of IDs that represent invalid groups. */
2661
+ failure: string[];
2662
+ /** A list of child groups that have been removed from the group successfully. */
2663
+ success: string[];
2664
+ [key: string]: unknown;
2665
+ }
2666
+ /** Get audit logs */
2667
+ export interface AuditRequest {
2668
+ /** Token specifying start of page. For first page don't supply this. */
2669
+ nextToken?: string;
2670
+ /** Number of logs to return per page, default is 10000, minimum is 1000, max is 50000. */
2671
+ numRows?: number;
2672
+ /** The query id of an audit log request. This id is needed to fetch subsequent paged results of a single query. */
2673
+ queryId?: string;
2674
+ /** The date for which audit logs need to be fetched. This must be date-time only, as YYYY-MM-DD, and a valid date in the past. */
2675
+ date?: string;
2676
+ /** An array that may contain up to 20 [topics](https://resources.quickbase.com/nav/app/budurkasx/action/showpage/2b2941e4-f34d-4d41-9b0e-db790d20e9ab?pageIdV2=quickbase.com-DashboardGroup-15760d74-2243-4ce9-9495-7cc8790f12e7) to filter by. If empty, all topics are returned. */
2677
+ topics?: string[];
2678
+ }
2679
+ export interface AuditResponse {
2680
+ /** Query id of the requested audit log. */
2681
+ queryId: string;
2682
+ /** All events of the audit log. */
2683
+ events?: {
2684
+ /** Log ID. */
2685
+ id: string;
2686
+ /** User's first name. */
2687
+ firstname: string;
2688
+ /** User's last name. */
2689
+ lastname: string;
2690
+ /** User's email address. */
2691
+ email: string;
2692
+ /** What action was taken, such as log in, create app, report access, or table search. */
2693
+ topic: string;
2694
+ /** Exact time the action was taken, including date, and time with hour, minutes and seconds. Time zone is the browser time zone. */
2695
+ time: string;
2696
+ /** The IP address the action was taken from. */
2697
+ ipaddress: string;
2698
+ /** The browser and OS the action was taken from. */
2699
+ useragent: string;
2700
+ /** UI for user interface or API for an API call. */
2701
+ application: string;
2702
+ /** A brief description of the action that you can click to see additional details. */
2703
+ description: string;
2704
+ /** The data changes that have occured to a field that has been marked as audited. */
2705
+ payloadChanges?: {
2706
+ /** An object describing the changes that occured on record changes. */
2707
+ changes: {
2708
+ /** The current value of the fields that have been changed. */
2709
+ current: unknown[];
2710
+ /** The previous value of the fields that have been changed. */
2711
+ previous: unknown[];
2712
+ /** The list of fields and their types that have been changed. */
2713
+ fields: unknown[];
2714
+ [key: string]: unknown;
2715
+ };
2716
+ /** The recordId that has been edited. */
2717
+ rid: number;
2718
+ /** The change type that occured for a record. Could be one of add, edit, delete. */
2719
+ changeType: string;
2720
+ /** A placeholder for type changes. */
2721
+ type: string;
2722
+ [key: string]: unknown;
2723
+ };
2724
+ [key: string]: unknown;
2725
+ }[];
2726
+ /** Token to fetch the next 1000 logs. */
2727
+ nextToken?: string;
2728
+ [key: string]: unknown;
2729
+ }
2730
+ /** Get read summaries */
2731
+ export interface PlatformAnalyticReadsParams {
2732
+ /** The date for which read summaries need to be fetched. This must be date-time only, as YYYY-MM-DD, and a valid date in the past. */
2733
+ day?: string;
2734
+ }
2735
+ export interface PlatformAnalyticReadsResponse {
2736
+ /** The date of the requested summary. */
2737
+ date: string;
2738
+ /** Total reads for the specified date. */
2739
+ reads: {
2740
+ /** Total user reads for the realm on the specified date. */
2741
+ user: number;
2742
+ /** Total integration reads for the realm on the specified date. */
2743
+ integrations: {
2744
+ /** Total reads by anonymous users for the realm on the specified date. */
2745
+ eoti: number;
2746
+ /** Total API reads for the realm on the specified date. */
2747
+ api: number;
2748
+ /** Total pipeline reads for the realm on the specified date. */
2749
+ pipelines: number;
2750
+ [key: string]: unknown;
2751
+ };
2752
+ [key: string]: unknown;
2753
+ };
2754
+ [key: string]: unknown;
2755
+ }
2756
+ /** Get event summaries */
2757
+ export interface PlatformAnalyticEventSummariesParams {
2758
+ /** The ID of the account to query. If no value is specified, the first account matching the provided domain is chosen. */
2759
+ accountId?: number;
2760
+ }
2761
+ export interface PlatformAnalyticEventSummariesRequest {
2762
+ /** The start date and time of the requested summaries in ISO 8601 time format. */
2763
+ start: string;
2764
+ /** The end date and time of the requested summaries in ISO 8601 time format. */
2765
+ end: string;
2766
+ /** How the events should be grouped. */
2767
+ groupBy: 'app' | 'user';
2768
+ /** A pagination token from a previous response. Used to fetch the next page. */
2769
+ nextToken?: string;
2770
+ /** A list of items to filter events by. Only events which match ALL criteria will be included in the results. */
2771
+ where?: ({
2772
+ /** Id of the item to filter by - the hash uid if filtering a user, or the app id if filtering an app. */
2773
+ id: string;
2774
+ /** The type of item to filter by. */
2775
+ type: 'app' | 'user';
2776
+ })[];
2777
+ }
2778
+ export interface PlatformAnalyticEventSummariesResponse {
2779
+ /** The ID of the account the events are associated with. */
2780
+ accountId: string;
2781
+ /** The start date and time of the requested summaries in ISO 8601 time format. */
2782
+ start: string;
2783
+ /** The end date and time of the requested summaries in ISO 8601 time format. */
2784
+ end: string;
2785
+ /** How the events should be grouped. */
2786
+ groupBy: 'app' | 'user';
2787
+ where: ({
2788
+ /** Id of the item to filter by. */
2789
+ id: string;
2790
+ /** The type of item to filter by. */
2791
+ type: 'app' | 'user';
2792
+ })[];
2793
+ /** An array of objects that contains Application/User information and an events object with summaries by event type. */
2794
+ results: ({
2795
+ /** An array of events that contains specific information associated with an Application/User broken down by event type. */
2796
+ eventTypes: ({
2797
+ /** Billing category of the event type. */
2798
+ billingCategory?: 'user' | 'integration';
2799
+ /** Count of events associated with that event type and Application/User. */
2800
+ count?: number;
2801
+ /** Event type */
2802
+ eventType?: string;
2803
+ })[];
2804
+ /** Id of the Application/User. */
2805
+ id: string;
2806
+ /** Name of the Application/User. */
2807
+ name: string;
2808
+ /** Totals by billing category for the event grouping. */
2809
+ totals: {
2810
+ all?: number;
2811
+ integration?: number;
2812
+ user?: number;
2813
+ };
2814
+ })[];
2815
+ /** Additional information about the results that may be helpful. */
2816
+ metadata?: {
2817
+ /** Supply this token in a subsequent request to fetch the next page of results. */
2818
+ nextToken: string;
2819
+ };
2820
+ /** Totals by billing category for all queried events. */
2821
+ totals?: {
2822
+ all?: number;
2823
+ integration?: number;
2824
+ user?: number;
2825
+ };
2826
+ }
2827
+ /** Export a solution */
2828
+ export interface ExportSolutionParams {
2829
+ /** The unique identifier of a solution */
2830
+ solutionId: string;
2831
+ }
2832
+ export type ExportSolutionResponse = unknown;
2833
+ /** Update a solution */
2834
+ export interface UpdateSolutionParams {
2835
+ /** The unique identifier of a solution */
2836
+ solutionId: string;
2837
+ }
2838
+ export type UpdateSolutionRequest = unknown;
2839
+ export type UpdateSolutionResponse = unknown;
2840
+ /** Create a solution */
2841
+ export type CreateSolutionRequest = unknown;
2842
+ export type CreateSolutionResponse = unknown;
2843
+ /** Export solution to record */
2844
+ export interface ExportSolutionToRecordParams {
2845
+ /** The unique identifier of the solution. */
2846
+ solutionId: string;
2847
+ /** The unique identifier (dbid) of the table. */
2848
+ tableId: string;
2849
+ /** The unique identifier (fid) of the field. It needs to be a file attachment field. */
2850
+ fieldId: number;
2851
+ }
2852
+ export type ExportSolutionToRecordResponse = unknown;
2853
+ /** Create solution from record */
2854
+ export interface CreateSolutionFromRecordParams {
2855
+ /** The unique identifier (dbid) of the table. */
2856
+ tableId: string;
2857
+ /** The unique identifier (fid) of the field. It needs to be a file attachment field. */
2858
+ fieldId: number;
2859
+ /** The unique identifier of the record. */
2860
+ recordId: number;
2861
+ }
2862
+ export type CreateSolutionFromRecordResponse = unknown;
2863
+ /** Update solution from record */
2864
+ export interface UpdateSolutionToRecordParams {
2865
+ /** The unique identifier of the solution. */
2866
+ solutionId: string;
2867
+ /** The unique identifier (dbid) of the table. */
2868
+ tableId: string;
2869
+ /** The unique identifier (fid) of the field. It needs to be a file attachment field. */
2870
+ fieldId: number;
2871
+ /** The unique identifier of the record. */
2872
+ recordId: number;
2873
+ }
2874
+ export type UpdateSolutionToRecordResponse = unknown;
2875
+ /** List solution changes */
2876
+ export interface ChangesetSolutionParams {
2877
+ /** The unique identifier of the solution. */
2878
+ solutionId: string;
2879
+ }
2880
+ export type ChangesetSolutionRequest = unknown;
2881
+ export type ChangesetSolutionResponse = unknown;
2882
+ /** List solution changes from record */
2883
+ export interface ChangesetSolutionFromRecordParams {
2884
+ /** The unique identifier of the solution. */
2885
+ solutionId: string;
2886
+ /** The unique identifier (dbid) of the table. */
2887
+ tableId: string;
2888
+ /** The unique identifier (fid) of the field. It needs to be a file attachment field. */
2889
+ fieldId: number;
2890
+ /** The unique identifier of the record. */
2891
+ recordId: number;
2892
+ }
2893
+ export type ChangesetSolutionFromRecordResponse = unknown;
2894
+ /** Generate a document */
2895
+ export interface GenerateDocumentParams {
2896
+ /** This is the ID of document template. */
2897
+ templateId: number;
2898
+ /** The unique identifier of the table. */
2899
+ tableId: string;
2900
+ /** The ID of the record */
2901
+ recordId?: number;
2902
+ /** File name for the downloaded file */
2903
+ filename: string;
2904
+ /** The format of the file that is returned. Default is "pdf". */
2905
+ format?: 'html' | 'pdf' | 'docx';
2906
+ /** Margin formatted as top right bottom left, separated by spaces. Add to override the value set in the template builder. */
2907
+ margin?: string;
2908
+ /** Unit of measurement for the margin. Default is "in". Add to override the value set in the template builder. */
2909
+ unit?: 'in' | 'cm' | 'nm' | 'px';
2910
+ /** Page size. Default is "A4". Add to override the value set in the template builder. */
2911
+ pageSize?: 'Letter' | 'Legal' | 'Tabloid' | 'A3' | 'A4' | 'A5' | 'A6';
2912
+ /** Page orientation. Default is "portrait". Add to override the value set in the template builder. */
2913
+ orientation?: 'portrait' | 'landscape';
2914
+ /** Your Quickbase domain, for example demo.quickbase.com */
2915
+ realm?: string;
2916
+ }
2917
+ export interface GenerateDocumentResponse {
2918
+ /** The file name. */
2919
+ fileName?: string;
2920
+ /** Base64 encoded file content. */
2921
+ data?: string;
2922
+ /** The document content type. */
2923
+ contentType?: string;
2924
+ [key: string]: unknown;
2925
+ }
2926
+ /**
2927
+ * QuickBase API client interface
2928
+ */
2929
+ export interface QuickbaseAPI {
2930
+ /**
2931
+ * Create an app
2932
+ *
2933
+ * Creates an application in an account. You must have application creation rights in the respective account. Main properties and application variables can be set with this API.
2934
+ *
2935
+ * @param body - Request body
2936
+ * @param body.assignToken - Set to true if you would like to assign the app to the user token you used to create the application. The default is false. (optional)
2937
+ * @param body.variables - The app variables. A maximum of 10 variables can be inserted at a time. See [About Application Variables](https://help.quickbase.com/user-assistance/variables.html) (optional)
2938
+ * @param body.name - The app name. You are allowed to create multiple apps with the same name, in the same realm, because they will have different dbid values. We urge you to be careful about doing this.
2939
+ * @param body.securityProperties - Application security properties. (optional)
2940
+ * @param body.description - The description for the app. If this property is left out, the app description will be blank. (optional)
2941
+ *
2942
+ * @returns Success
2943
+ *
2944
+ * @see https://developer.quickbase.com/operation/createApp
2945
+ */
2946
+ createApp(body: CreateAppRequest): Promise<CreateAppResponse>;
2947
+ /**
2948
+ * Get an app
2949
+ *
2950
+ * Returns the main properties of an application, including application variables.
2951
+ *
2952
+ * @param params.appId - The unique identifier of an app
2953
+ *
2954
+ * @returns Success
2955
+ *
2956
+ * @see https://developer.quickbase.com/operation/getApp
2957
+ */
2958
+ getApp(params: GetAppParams): Promise<GetAppResponse>;
2959
+ /**
2960
+ * Update an app
2961
+ *
2962
+ * Updates the main properties and/or application variables for a specific application. Any properties of the app that you do not specify in the request body will remain unchanged.
2963
+ *
2964
+ * @param params.appId - The unique identifier of an app
2965
+ *
2966
+ * @param body - Request body (optional)
2967
+ * @param body.variables - The app variables. A maximum of 10 variables can be updated at a time. See [About Application Variables](https://help.quickbase.com/user-assistance/variables.html) (optional)
2968
+ * @param body.name - The name for the app. (optional)
2969
+ * @param body.securityProperties - Security properties of the application (optional)
2970
+ * @param body.description - The description for the app. (optional)
2971
+ *
2972
+ * @returns Success
2973
+ *
2974
+ * @see https://developer.quickbase.com/operation/updateApp
2975
+ */
2976
+ updateApp(params: UpdateAppParams, body?: UpdateAppRequest): Promise<UpdateAppResponse>;
2977
+ /**
2978
+ * Delete an app
2979
+ *
2980
+ * Deletes an entire application, including all of the tables and data.
2981
+ *
2982
+ * @param params.appId - The unique identifier of an app
2983
+ *
2984
+ * @param body - Request body
2985
+ * @param body.name - To confirm application deletion we ask for application name.
2986
+ *
2987
+ * @returns Success
2988
+ *
2989
+ * @see https://developer.quickbase.com/operation/deleteApp
2990
+ */
2991
+ deleteApp(params: DeleteAppParams, body: DeleteAppRequest): Promise<DeleteAppResponse>;
2992
+ /**
2993
+ * Get app events
2994
+ *
2995
+ * Get a list of events that can be triggered based on data or user actions in this application, includes: Email notification, Reminders, Subscriptions, QB Actions, Webhooks, record change triggered Automations (does not include scheduled).
2996
+ *
2997
+ * @param params.appId - The unique identifier of an app
2998
+ *
2999
+ * @returns Success
3000
+ *
3001
+ * @see https://developer.quickbase.com/operation/getAppEvents
3002
+ */
3003
+ getAppEvents(params: GetAppEventsParams): Promise<GetAppEventsResponse>;
3004
+ /**
3005
+ * Copy an app
3006
+ *
3007
+ * Copies the specified application. The new application will have the same schema as the original. See below for additional copy options.
3008
+ *
3009
+ * @param params.appId - The unique identifier of an app
3010
+ *
3011
+ * @param body - Request body
3012
+ * @param body.name - The name of the newly copied app
3013
+ * @param body.description - The description of the newly copied app (optional)
3014
+ * @param body.properties - The configuration properties for performing the app copy (optional)
3015
+ *
3016
+ * @returns Success
3017
+ *
3018
+ * @see https://developer.quickbase.com/operation/copyApp
3019
+ */
3020
+ copyApp(params: CopyAppParams, body: CopyAppRequest): Promise<CopyAppResponse>;
3021
+ /**
3022
+ * Get tables for an app
3023
+ *
3024
+ * Gets a list of all the tables that exist in a specific application. The properties for each table are the same as what is returned in Get table.
3025
+ *
3026
+ * @param params.appId - The unique identifier of an app
3027
+ *
3028
+ * @returns Success
3029
+ *
3030
+ * @see https://developer.quickbase.com/operation/getAppTables
3031
+ */
3032
+ getAppTables(params: GetAppTablesParams): Promise<GetAppTablesResponse>;
3033
+ /**
3034
+ * Create a table
3035
+ *
3036
+ * Creates a table in an application.
3037
+ *
3038
+ * @param params.appId - The unique identifier of an app
3039
+ *
3040
+ * @param body - Request body
3041
+ * @param body.name - The name for the table.
3042
+ * @param body.pluralRecordName - The plural noun for records in the table. If this value is not passed the default value is 'Records'. (optional)
3043
+ * @param body.singleRecordName - The singular noun for records in the table. If this value is not passed the default value is 'Record'. (optional)
3044
+ * @param body.description - The description for the table. If this value is not passed the default value is blank. (optional)
3045
+ *
3046
+ * @returns Success
3047
+ *
3048
+ * @see https://developer.quickbase.com/operation/createTable
3049
+ */
3050
+ createTable(params: CreateTableParams, body: CreateTableRequest): Promise<CreateTableResponse>;
3051
+ /**
3052
+ * Get a table
3053
+ *
3054
+ * Gets the properties of an individual table that is part of an application.
3055
+ *
3056
+ * @param params.appId - The unique identifier of an app
3057
+ * @param params.tableId - The unique identifier (dbid) of the table.
3058
+ *
3059
+ * @returns Success
3060
+ *
3061
+ * @see https://developer.quickbase.com/operation/getTable
3062
+ */
3063
+ getTable(params: GetTableParams): Promise<GetTableResponse>;
3064
+ /**
3065
+ * Update a table
3066
+ *
3067
+ * Updates the main properties of a specific table. Any properties of the table that you do not specify in the request body will remain unchanged.
3068
+ *
3069
+ * @param params.appId - The unique identifier of an app
3070
+ * @param params.tableId - The unique identifier (dbid) of the table.
3071
+ *
3072
+ * @param body - Request body (optional)
3073
+ * @param body.name - The name for the table. (optional)
3074
+ * @param body.pluralRecordName - The plural noun for records in the table. If this value is not passed the default value is 'Records'. (optional)
3075
+ * @param body.singleRecordName - The singular noun for records in the table. If this value is not passed the default value is 'Record'. (optional)
3076
+ * @param body.description - The description for the table. If this value is not passed the default value is blank. (optional)
3077
+ *
3078
+ * @returns Success
3079
+ *
3080
+ * @see https://developer.quickbase.com/operation/updateTable
3081
+ */
3082
+ updateTable(params: UpdateTableParams, body?: UpdateTableRequest): Promise<UpdateTableResponse>;
3083
+ /**
3084
+ * Delete a table
3085
+ *
3086
+ * Deletes a specific table in an application, including all of the data within it.
3087
+ *
3088
+ * @param params.appId - The unique identifier of an app
3089
+ * @param params.tableId - The unique identifier (dbid) of the table.
3090
+ *
3091
+ * @returns Success
3092
+ *
3093
+ * @see https://developer.quickbase.com/operation/deleteTable
3094
+ */
3095
+ deleteTable(params: DeleteTableParams): Promise<DeleteTableResponse>;
3096
+ /**
3097
+ * Get all relationships
3098
+ *
3099
+ * Get a list of all relationships, and their definitions, for a specific table. Details are provided for the child side of relationships within a given application. Limited details are returned for cross-application relationships.
3100
+ *
3101
+ * @param params.skip - The number of relationships to skip. (optional)
3102
+ * @param params.tableId - The unique identifier (dbid) of the child table.
3103
+ *
3104
+ * @returns Success
3105
+ *
3106
+ * @see https://developer.quickbase.com/operation/getRelationships
3107
+ */
3108
+ getRelationships(params: GetRelationshipsParams): PaginatedRequest<GetRelationshipsResponse>;
3109
+ /**
3110
+ * Create a relationship
3111
+ *
3112
+ * Creates a relationship in a table as well as lookup/summary fields. Relationships can only be created for tables within the same app.
3113
+ *
3114
+ * @param params.tableId - The unique identifier (dbid) of the table. This will be the child table.
3115
+ *
3116
+ * @param body - Request body
3117
+ * @param body.summaryFields - Array of summary field objects which will turn into summary fields in the parent table. When you specify the 'COUNT' accumulation type, you have to specify 0 as the summaryFid (or not set it in the request). 'DISTINCT-COUNT' requires that summaryFid be set to an actual fid. (optional)
3118
+ * @param body.lookupFieldIds - Array of field ids in the parent table that will become lookup fields in the child table. (optional)
3119
+ * @param body.parentTableId - The parent table id for the relationship.
3120
+ * @param body.foreignKeyField - This property is optional. If it is not provided, the foreign key field will be created with the label ‘Related <record>’, where <record> is the name of a record in the parent table. (optional)
3121
+ *
3122
+ * @returns Success
3123
+ *
3124
+ * @see https://developer.quickbase.com/operation/createRelationship
3125
+ */
3126
+ createRelationship(params: CreateRelationshipParams, body: CreateRelationshipRequest): Promise<CreateRelationshipResponse>;
3127
+ /**
3128
+ * Update a relationship
3129
+ *
3130
+ * Use this endpoint to add lookup fields and summary fields to an existing relationship. Updating a relationship will not delete existing lookup/summary fields.
3131
+ *
3132
+ * @param params.tableId - The unique identifier (dbid) of the table. This will be the child table.
3133
+ * @param params.relationshipId - The relationship id. This is the field id of the reference field on the child table.
3134
+ *
3135
+ * @param body - Request body (optional)
3136
+ * @param body.summaryFields - An array of objects, each representing a configuration of one field from the child table, that will become summary fields on the parent table. When you specify the 'COUNT' accumulation type, you have to specify 0 as the summaryFid (or not set it in the request). 'DISTINCT-COUNT' requires that summaryFid be set to an actual fid. (optional)
3137
+ * @param body.lookupFieldIds - An array of field ids on the parent table that will become lookup fields on the child table. (optional)
3138
+ *
3139
+ * @returns Success
3140
+ *
3141
+ * @see https://developer.quickbase.com/operation/updateRelationship
3142
+ */
3143
+ updateRelationship(params: UpdateRelationshipParams, body?: UpdateRelationshipRequest): Promise<UpdateRelationshipResponse>;
3144
+ /**
3145
+ * Delete a relationship
3146
+ *
3147
+ * Use this endpoint to delete an entire relationship, including all lookup and summary fields. The reference field in the relationship will not be deleted.
3148
+ *
3149
+ * @param params.tableId - The unique identifier (dbid) of the table. This will be the child table.
3150
+ * @param params.relationshipId - The relationship id. This is the field id of the reference field on the child table.
3151
+ *
3152
+ * @returns Success
3153
+ *
3154
+ * @see https://developer.quickbase.com/operation/deleteRelationship
3155
+ */
3156
+ deleteRelationship(params: DeleteRelationshipParams): Promise<DeleteRelationshipResponse>;
3157
+ /**
3158
+ * Get reports for a table
3159
+ *
3160
+ * Get the schema (properties) of all reports for a table. If the user running the API is an application administrator, the API will also return all personal reports with owner's user id.
3161
+ *
3162
+ * @param params.tableId - The unique identifier of the table.
3163
+ *
3164
+ * @returns Success
3165
+ *
3166
+ * @see https://developer.quickbase.com/operation/getTableReports
3167
+ */
3168
+ getTableReports(params: GetTableReportsParams): Promise<GetTableReportsResponse>;
3169
+ /**
3170
+ * Get a report
3171
+ *
3172
+ * Get the schema (properties) of an individual report.
3173
+ *
3174
+ * @param params.tableId - The unique identifier of table.
3175
+ * @param params.reportId - The identifier of the report, unique to the table.
3176
+ *
3177
+ * @returns Success
3178
+ *
3179
+ * @see https://developer.quickbase.com/operation/getReport
3180
+ */
3181
+ getReport(params: GetReportParams): Promise<GetReportResponse>;
3182
+ /**
3183
+ * Run a report
3184
+ *
3185
+ * Runs a report, based on an ID and returns the underlying data associated with it. The format of the data will vary based on the report type. Reports that focus on record-level data (table, calendar, etc.) return the individual records. Aggregate reports (summary, chart) will return the summarized information as configured in the report. UI-specific elements are not returned, such as totals, averages and visualizations. Returns data with intelligent pagination based on the approximate size of each record. The metadata object will include the necessary information to iterate over the response and gather more data.
3186
+ *
3187
+ * @param params.tableId - The identifier of the table for the report.
3188
+ * @param params.skip - The number of records to skip. You can set this value when paginating through a set of results. (optional)
3189
+ * @param params.top - The maximum number of records to return. You can override the default Quickbase pagination to get more or fewer results. If your requested value here exceeds the dynamic maximums, we will return a subset of results and the rest can be gathered in subsequent API calls. (optional)
3190
+ * @param params.reportId - The identifier of the report, unique to the table.
3191
+ *
3192
+ * @param body - Request body (optional)
3193
+ *
3194
+ * @returns Success
3195
+ *
3196
+ * @see https://developer.quickbase.com/operation/runReport
3197
+ */
3198
+ runReport(params: RunReportParams, body?: RunReportRequest): PaginatedRequest<RunReportResponse>;
3199
+ /**
3200
+ * Get fields for a table
3201
+ *
3202
+ * Gets the properties for all fields in a specific table. The properties for each field are the same as in Get field.
3203
+ *
3204
+ * @param params.tableId - The unique identifier (dbid) of the table.
3205
+ * @param params.includeFieldPerms - Set to 'true' if you'd like to get back the custom permissions for the field(s). (optional)
3206
+ *
3207
+ * @returns Success
3208
+ *
3209
+ * @see https://developer.quickbase.com/operation/getFields
3210
+ */
3211
+ getFields(params: GetFieldsParams): Promise<GetFieldsResponse>;
3212
+ /**
3213
+ * Create a field
3214
+ *
3215
+ * Creates a field within a table, including the custom permissions of that field.
3216
+ *
3217
+ * @param params.tableId - The unique identifier of the table.
3218
+ *
3219
+ * @param body - Request body
3220
+ * @param body.audited - Indicates if the field is being tracked as part of Quickbase Audit Logs. You can only set this property to "true" if the app has audit logs enabled. See Enable data change logs under [Quickbase Audit Logs](https://help.quickbase.com/user-assistance/audit_logs.html). Defaults to false. (optional)
3221
+ * @param body.fieldHelp - The configured help text shown to users within the product. (optional)
3222
+ * @param body.bold - Indicates if the field is configured to display in bold in the product. Defaults to false. (optional)
3223
+ * @param body.properties - Specific field properties. (optional)
3224
+ * @param body.appearsByDefault - Indicates if the field is marked as a default in reports. Defaults to true. (optional)
3225
+ * @param body.fieldType - The [field types](https://help.quickbase.com/user-assistance/field_types.html), click on any of the field type links for more info.
3226
+ * @param body.permissions - Field Permissions for different roles. (optional)
3227
+ * @param body.addToForms - Whether the field you are adding should appear on forms. Defaults to false. (optional)
3228
+ * @param body.label - The label (name) of the field.
3229
+ * @param body.findEnabled - Indicates if the field is marked as searchable. Defaults to true. (optional)
3230
+ * @param body.noWrap - Indicates if the field is configured to not wrap when displayed in the product. Defaults to false. (optional)
3231
+ *
3232
+ * @returns Success
3233
+ *
3234
+ * @see https://developer.quickbase.com/operation/createField
3235
+ */
3236
+ createField(params: CreateFieldParams, body: CreateFieldRequest): Promise<CreateFieldResponse>;
3237
+ /**
3238
+ * Delete field(s)
3239
+ *
3240
+ * Deletes one or many fields in a table, based on field id. This will also permanently delete any data or calculations in that field.
3241
+ *
3242
+ * @param params.tableId - The unique identifier of the table.
3243
+ *
3244
+ * @param body - Request body
3245
+ * @param body.fieldIds - List of field ids to be deleted.
3246
+ *
3247
+ * @returns Success
3248
+ *
3249
+ * @see https://developer.quickbase.com/operation/deleteFields
3250
+ */
3251
+ deleteFields(params: DeleteFieldsParams, body: DeleteFieldsRequest): Promise<DeleteFieldsResponse>;
3252
+ /**
3253
+ * Get field
3254
+ *
3255
+ * Gets the properties of an individual field, based on field id.
3256
+ Properties present on all field types are returned at the top level. Properties unique to a specific type of field are returned under the 'properties' attribute. Please see [Field types page](../fieldInfo) for more details on the properties for each field type.
3257
+ *
3258
+ * @param params.tableId - The unique identifier (dbid) of the table.
3259
+ * @param params.includeFieldPerms - Set to 'true' if you'd like to get back the custom permissions for the field(s). (optional)
3260
+ * @param params.fieldId - The unique identifier (fid) of the field.
3261
+ *
3262
+ * @returns Success
3263
+ *
3264
+ * @see https://developer.quickbase.com/operation/getField
3265
+ */
3266
+ getField(params: GetFieldParams): Promise<GetFieldResponse>;
3267
+ /**
3268
+ * Update a field
3269
+ *
3270
+ * Updates the properties and custom permissions of a field. The attempt to update certain properties might cause existing data to no longer obey the field’s new properties and may be rejected. See the descriptions of required, unique, and choices, below, for specific situations. Any properties of the field that you do not specify in the request body will remain unchanged.
3271
+ *
3272
+ * @param params.tableId - The unique identifier of the table.
3273
+ * @param params.fieldId - The unique identifier (fid) of the field.
3274
+ *
3275
+ * @param body - Request body (optional)
3276
+ * @param body.audited - Indicates if the field is being tracked as part of Quickbase Audit Logs. You can only set this property to "true" if the app has audit logs enabled. See Enable data change logs under [Quickbase Audit Logs](https://help.quickbase.com/user-assistance/audit_logs.html). (optional)
3277
+ * @param body.fieldHelp - The configured help text shown to users within the product. (optional)
3278
+ * @param body.bold - Indicates if the field is configured to display in bold in the product. (optional)
3279
+ * @param body.required - Indicates if the field is required (i.e. if every record must have a non-null value in this field). If you attempt to change a field from not-required to required, and the table currently contains records that have null values in that field, you will get an error indicating that there are null values of the field. In this case you need to find and update those records with null values of the field before changing the field to required. (optional)
3280
+ * @param body.properties - Specific field properties. (optional)
3281
+ * @param body.appearsByDefault - Indicates if the field is marked as a default in reports. (optional)
3282
+ * @param body.unique - Indicates if every record in the table must contain a unique value of this field. If you attempt to change a field from not-unique to unique, and the table currently contains records with the same value of this field, you will get an error. In this case you need to find and update those records with duplicate values of the field before changing the field to unique. (optional)
3283
+ * @param body.permissions - Field Permissions for different roles. (optional)
3284
+ * @param body.addToForms - Whether the field you are adding should appear on forms. (optional)
3285
+ * @param body.label - The label (name) of the field. (optional)
3286
+ * @param body.findEnabled - Indicates if the field is marked as searchable. (optional)
3287
+ * @param body.noWrap - Indicates if the field is configured to not wrap when displayed in the product. (optional)
3288
+ *
3289
+ * @returns Success
3290
+ *
3291
+ * @see https://developer.quickbase.com/operation/updateField
3292
+ */
3293
+ updateField(params: UpdateFieldParams, body?: UpdateFieldRequest): Promise<UpdateFieldResponse>;
3294
+ /**
3295
+ * Get usage for all fields
3296
+ *
3297
+ * Get all the field usage statistics for a table. This is a summary of the information that can be found in the usage table of field properties.
3298
+ *
3299
+ * @param params.tableId - The unique identifier (dbid) of the table.
3300
+ * @param params.skip - The number of fields to skip from the list. (optional)
3301
+ * @param params.top - The maximum number of fields to return. (optional)
3302
+ *
3303
+ * @returns Success
3304
+ *
3305
+ * @see https://developer.quickbase.com/operation/getFieldsUsage
3306
+ */
3307
+ getFieldsUsage(params: GetFieldsUsageParams): Promise<GetFieldsUsageResponse>;
3308
+ /**
3309
+ * Get usage for a field
3310
+ *
3311
+ * Get a single fields usage statistics. This is a summary of the information that can be found in the usage table of field properties.
3312
+ *
3313
+ * @param params.tableId - The unique identifier (dbid) of the table.
3314
+ * @param params.fieldId - The unique identifier (fid) of the field.
3315
+ *
3316
+ * @returns Success
3317
+ *
3318
+ * @see https://developer.quickbase.com/operation/getFieldUsage
3319
+ */
3320
+ getFieldUsage(params: GetFieldUsageParams): Promise<GetFieldUsageResponse>;
3321
+ /**
3322
+ * Run a formula
3323
+ *
3324
+ * Allows running a formula via an API call. Use this method in custom code to get the value back of a formula without a discrete field on a record.
3325
+ *
3326
+ * @param body - Request body
3327
+ * @param body.formula - The formula to run. This must be a valid Quickbase formula.
3328
+ * @param body.rid - The record ID to run the formula against. Only necessary for formulas that are run in the context of a record. For example, the formula User() does not need a record ID. (optional)
3329
+ * @param body.from - The unique identifier (dbid) of the table.
3330
+ *
3331
+ * @returns Success
3332
+ *
3333
+ * @see https://developer.quickbase.com/operation/runFormula
3334
+ */
3335
+ runFormula(body: RunFormulaRequest): Promise<RunFormulaResponse>;
3336
+ /**
3337
+ * Insert/Update record(s)
3338
+ *
3339
+ * Insert and/or update record(s) in a table. In this single API call, inserts and updates can be submitted. Update can use the key field on the table, or any other supported unique field. Refer to the [Field types page](../fieldInfo) for more information about how each field type should be formatted. This operation allows for incremental processing of successful records, even when some of the records fail.
3340
+ **Note:** This endpoint supports a maximum payload size of 40MB.
3341
+ *
3342
+ * @param body - Request body
3343
+ * @param body.to - The table identifier.
3344
+ * @param body.data - Record data array, where each record contains key-value mappings of fields to be defined/updated and their values. (optional)
3345
+ * @param body.mergeFieldId - The merge field id. (optional)
3346
+ * @param body.fieldsToReturn - Specify an array of field ids that will return data for any updates or added record. Record ID (FID 3) is always returned if any field ID is requested. (optional)
3347
+ *
3348
+ * @returns Response
3349
+ *
3350
+ * @see https://developer.quickbase.com/operation/upsert
3351
+ */
3352
+ upsert(body: UpsertRequest): PaginatedRequest<UpsertResponse>;
3353
+ /**
3354
+ * Delete record(s)
3355
+ *
3356
+ * Deletes record(s) in a table based on a query. Alternatively, all records in the table can be deleted.
3357
+ *
3358
+ * @param body - Request body
3359
+ * @param body.from - The unique identifier of the table.
3360
+ * @param body.where - The filter to delete records. To delete all records specify a filter that will include all records, for example {3.GT.0} where 3 is the ID of the Record ID field.
3361
+ *
3362
+ * @returns Successful delete records response.
3363
+ *
3364
+ * @see https://developer.quickbase.com/operation/deleteRecords
3365
+ */
3366
+ deleteRecords(body: DeleteRecordsRequest): Promise<DeleteRecordsResponse>;
3367
+ /**
3368
+ * Query for data
3369
+ *
3370
+ * Pass in a query in the [Quickbase query language](https://help.quickbase.com/api-guide/componentsquery.html). Returns record data with [intelligent pagination](../pagination) based on the approximate size of each record. The metadata object will include the necessary information to iterate over the response and gather more data.
3371
+ *
3372
+ * @param body - Request body
3373
+ * @param body.options - Additional query options. (optional)
3374
+ * @param body.where - The filter, using the Quickbase query language, which determines the records to return. If this parameter is omitted, the query will return all records. (optional)
3375
+ * @param body.groupBy - An array that contains the fields to group the records by. (optional)
3376
+ * @param body.sortBy - An array of field IDs and sort directions. If this attribute is not set or set to false, queries will be unsorted to improve performance. (optional)
3377
+ * @param body.select - An array of field ids for the fields that should be returned in the response. If empty, the default columns on the table will be returned. (optional)
3378
+ * @param body.from - The table identifier.
3379
+ *
3380
+ * @returns Success
3381
+ *
3382
+ * @see https://developer.quickbase.com/operation/runQuery
3383
+ */
3384
+ runQuery(body: RunQueryRequest): PaginatedRequest<RunQueryResponse>;
3385
+ /**
3386
+ * Get a temporary token for a dbid
3387
+ *
3388
+ * Use this endpoint to get a temporary authorization token, scoped to either an app or a table. It can only be used inside of code pages for client-side authentication because it relies on the browser session. Learn more about [extending Quickbase](https://helpv2.quickbase.com/hc/en-us/articles/4570341709844-Extending-Quickbase). You can then use this token to make other API calls (see [authorization](../auth)). This token expires in 5 minutes.
3389
+ *
3390
+ * @param params.dbid - The unique identifier of an app or table.
3391
+ *
3392
+ * @returns This token is used in the authorization header value (similar to the QB-USER-TOKEN), except it uses the QB-TEMP-TOKEN prefix header['Authorization'] = 'QB-TEMP-TOKEN {token}'
3393
+ *
3394
+ * @see https://developer.quickbase.com/operation/getTempTokenDBID
3395
+ */
3396
+ getTempTokenDBID(params: GetTempTokenDBIDParams): Promise<GetTempTokenDBIDResponse>;
3397
+ /**
3398
+ * Exchange an SSO token
3399
+ *
3400
+ * Use this endpoint to exchange a SAML assertion for a Quickbase token following [RFC 8693](https://www.rfc-editor.org/rfc/rfc8693.html). Callers can choose to return a token compatible with SCIM, XML, or RESTful APIs. The token duration is determined by the [SAML timeout session time](https://helpv2.quickbase.com/hc/en-us/articles/4570410646420-SAML-assertion-example#:~:text=Setting%20SAML%20timeout%20session%20time). You must be able to create a SAML assertion in your code to use this endpoint. The SAML assertion is verified against the configuration on the realm. Learn more about about [SAML assertions](https://helpv2.quickbase.com/hc/en-us/articles/4570410646420-SAML-assertion-example).
3401
+ *
3402
+ * @param body - Request body
3403
+ * @param body.grant_type - The value `urn:ietf:params:oauth:grant-type:token-exchange` indicates that a token exchange is being performed.
3404
+ * @param body.requested_token_type - An identifier for the type of the requested security token. For the RESTful API, use `urn:quickbase:params:oauth:token-type:temp_token`. For the XML or SCIM APIs use `urn:quickbase:params:oauth:token-type:temp_ticket`.
3405
+ * @param body.subject_token - A security token that represents the identity of the party on behalf of whom the request is being made. For SAML 2.0, the value should be a base64url-encoded SAML 2.0 assertion.
3406
+ * @param body.subject_token_type - An identifier that indicates the type of the security token in the `subject_token` parameter.
3407
+ *
3408
+ * @returns Success
3409
+ *
3410
+ * @see https://developer.quickbase.com/operation/exchangeSsoToken
3411
+ */
3412
+ exchangeSsoToken(body: ExchangeSsoTokenRequest): Promise<ExchangeSsoTokenResponse>;
3413
+ /**
3414
+ * Clone a user token
3415
+ *
3416
+ * Clones the authenticated user token. All applications associated with that token are automatically associated with the new token.
3417
+ *
3418
+ * @param body - Request body
3419
+ * @param body.name - The new name for the cloned user token. (optional)
3420
+ * @param body.description - The description for the cloned user token. (optional)
3421
+ *
3422
+ * @returns Response
3423
+ *
3424
+ * @see https://developer.quickbase.com/operation/cloneUserToken
3425
+ */
3426
+ cloneUserToken(body: CloneUserTokenRequest): Promise<CloneUserTokenResponse>;
3427
+ /**
3428
+ * Transfer a user token
3429
+ *
3430
+ * Transfers the specified user token. Application associations will remain intact. For security, permissions must manually be reconciled.
3431
+ *
3432
+ * @param body - Request body
3433
+ * @param body.id - The id of the user token to transfer (optional)
3434
+ * @param body.from - The id of the user to transfer the user token from (optional)
3435
+ * @param body.to - The id of the user to transfer the user token to (optional)
3436
+ *
3437
+ * @returns Response
3438
+ *
3439
+ * @see https://developer.quickbase.com/operation/transferUserToken
3440
+ */
3441
+ transferUserToken(body: TransferUserTokenRequest): Promise<TransferUserTokenResponse>;
3442
+ /**
3443
+ * Deactivate a user token
3444
+ *
3445
+ * Deactivates the authenticated user token. Once this is done, the user token must be reactivated in the user interface.
3446
+ *
3447
+ * @returns Response
3448
+ *
3449
+ * @see https://developer.quickbase.com/operation/deactivateUserToken
3450
+ */
3451
+ deactivateUserToken(): Promise<DeactivateUserTokenResponse>;
3452
+ /**
3453
+ * Delete a user token
3454
+ *
3455
+ * Deletes the authenticated user token. This is not reversible.
3456
+ *
3457
+ * @returns Response
3458
+ *
3459
+ * @see https://developer.quickbase.com/operation/deleteUserToken
3460
+ */
3461
+ deleteUserToken(): Promise<DeleteUserTokenResponse>;
3462
+ /**
3463
+ * Download file
3464
+ *
3465
+ * Downloads the file attachment, with the file attachment content encoded in base64 format. The API response returns the file name in the `Content-Disposition` header. Meta-data about files can be retrieved from the /records and /reports endpoints, where applicable. Use those endpoints to get the necessary information to fetch files.
3466
+ *
3467
+ * @param params.tableId - The unique identifier of the table.
3468
+ * @param params.recordId - The unique identifier of the record.
3469
+ * @param params.fieldId - The unique identifier of the field.
3470
+ * @param params.versionNumber - The file attachment version number.
3471
+ *
3472
+ * @returns Success
3473
+ *
3474
+ * @see https://developer.quickbase.com/operation/downloadFile
3475
+ */
3476
+ downloadFile(params: DownloadFileParams): Promise<DownloadFileResponse>;
3477
+ /**
3478
+ * Delete file
3479
+ *
3480
+ * Deletes one file attachment version. Meta-data about files can be retrieved from the /records and /reports endpoints, where applicable. Use those endpoints to get the necessary information to delete file versions.
3481
+ *
3482
+ * @param params.tableId - The unique identifier of the table.
3483
+ * @param params.recordId - The unique identifier of the record.
3484
+ * @param params.fieldId - The unique identifier of the field.
3485
+ * @param params.versionNumber - The file attachment version number.
3486
+ *
3487
+ * @returns Successfully Deleted the File Attachment
3488
+ *
3489
+ * @see https://developer.quickbase.com/operation/deleteFile
3490
+ */
3491
+ deleteFile(params: DeleteFileParams): Promise<DeleteFileResponse>;
3492
+ /**
3493
+ * Get users
3494
+ *
3495
+ * Get all users in an account or narrowed down list of users filtered by email(s). The returned users may be paginated depending on the user count. The count of the returned users may vary. When `nextPageToken` value in the response is not empty, that indicates that there are more results to be returned, you can use this value to get the next result set ('page').
3496
+ *
3497
+ * @param params.accountId - The account id being used to get users. If no value is specified, the first account associated with the requesting user token is chosen. (optional)
3498
+ *
3499
+ * @param body - Request body (optional)
3500
+ * @param body.emails - When provided, the returned users will be narrowed down only to the users included in this list. (optional)
3501
+ * @param body.appIds - When provided, the returned users will be narrowed down only to the users assigned to the app id's provided in this list. The provided app id's should belong to the same account. (optional)
3502
+ * @param body.nextPageToken - Next page token used to get the next 'page' of results when available. When this field is empty, the first page is returned. (optional)
3503
+ *
3504
+ * @returns Success
3505
+ *
3506
+ * @see https://developer.quickbase.com/operation/getUsers
3507
+ */
3508
+ getUsers(params: GetUsersParams, body?: GetUsersRequest): PaginatedRequest<GetUsersResponse>;
3509
+ /**
3510
+ * Deny users
3511
+ *
3512
+ * Denies users access to the realm but leaves them listed in groups they have been added to.
3513
+ *
3514
+ * @param params.accountId - The account id being used to deny users. If no value is specified, the first account associated with the requesting user token is chosen. (optional)
3515
+ *
3516
+ * @param body - Request body
3517
+ *
3518
+ * @returns Success
3519
+ *
3520
+ * @see https://developer.quickbase.com/operation/denyUsers
3521
+ */
3522
+ denyUsers(params: DenyUsersParams, body: DenyUsersRequest): Promise<DenyUsersResponse>;
3523
+ /**
3524
+ * Deny and remove users from groups
3525
+ *
3526
+ * Denies users access to the realm and allows you to remove them from groups.
3527
+ *
3528
+ * @param params.accountId - The account id being used to deny users. If no value is specified, the first account associated with the requesting user token is chosen. (optional)
3529
+ * @param params.shouldDeleteFromGroups - Specifies if the users should also be removed from all groups.
3530
+ *
3531
+ * @param body - Request body
3532
+ *
3533
+ * @returns Success
3534
+ *
3535
+ * @see https://developer.quickbase.com/operation/denyUsersAndGroups
3536
+ */
3537
+ denyUsersAndGroups(params: DenyUsersAndGroupsParams, body: DenyUsersAndGroupsRequest): Promise<DenyUsersAndGroupsResponse>;
3538
+ /**
3539
+ * Undeny users
3540
+ *
3541
+ * Grants users that have previously been denied access to the realm.
3542
+ *
3543
+ * @param params.accountId - The account id being used to undeny users. If no value is specified, the first account associated with the requesting user token is chosen. (optional)
3544
+ *
3545
+ * @param body - Request body
3546
+ *
3547
+ * @returns Success
3548
+ *
3549
+ * @see https://developer.quickbase.com/operation/undenyUsers
3550
+ */
3551
+ undenyUsers(params: UndenyUsersParams, body: UndenyUsersRequest): Promise<UndenyUsersResponse>;
3552
+ /**
3553
+ * Add members
3554
+ *
3555
+ * Adds a list of users to a given group as members.
3556
+ *
3557
+ * @param params.gid - This is the ID of the group being modified.
3558
+ *
3559
+ * @param body - Request body
3560
+ *
3561
+ * @returns Success
3562
+ *
3563
+ * @see https://developer.quickbase.com/operation/addMembersToGroup
3564
+ */
3565
+ addMembersToGroup(params: AddMembersToGroupParams, body: AddMembersToGroupRequest): Promise<AddMembersToGroupResponse>;
3566
+ /**
3567
+ * Remove members
3568
+ *
3569
+ * Removes a list of members from a given group.
3570
+ *
3571
+ * @param params.gid - This is the ID of the group being modified.
3572
+ *
3573
+ * @param body - Request body
3574
+ *
3575
+ * @returns Success
3576
+ *
3577
+ * @see https://developer.quickbase.com/operation/removeMembersFromGroup
3578
+ */
3579
+ removeMembersFromGroup(params: RemoveMembersFromGroupParams, body: RemoveMembersFromGroupRequest): Promise<RemoveMembersFromGroupResponse>;
3580
+ /**
3581
+ * Add managers
3582
+ *
3583
+ * Adds a list of users to a given group as managers.
3584
+ *
3585
+ * @param params.gid - This is the ID of the group being modified.
3586
+ *
3587
+ * @param body - Request body
3588
+ *
3589
+ * @returns Success
3590
+ *
3591
+ * @see https://developer.quickbase.com/operation/addManagersToGroup
3592
+ */
3593
+ addManagersToGroup(params: AddManagersToGroupParams, body: AddManagersToGroupRequest): Promise<AddManagersToGroupResponse>;
3594
+ /**
3595
+ * Remove managers
3596
+ *
3597
+ * Removes a list of managers from a given group.
3598
+ *
3599
+ * @param params.gid - This is the ID of the group being modified.
3600
+ *
3601
+ * @param body - Request body
3602
+ *
3603
+ * @returns Success
3604
+ *
3605
+ * @see https://developer.quickbase.com/operation/removeManagersFromGroup
3606
+ */
3607
+ removeManagersFromGroup(params: RemoveManagersFromGroupParams, body: RemoveManagersFromGroupRequest): Promise<RemoveManagersFromGroupResponse>;
3608
+ /**
3609
+ * Add child groups
3610
+ *
3611
+ * Adds a list of groups to a given group.
3612
+ *
3613
+ * @param params.gid - This is the ID of the group being modified.
3614
+ *
3615
+ * @param body - Request body
3616
+ *
3617
+ * @returns Success
3618
+ *
3619
+ * @see https://developer.quickbase.com/operation/addSubgroupsToGroup
3620
+ */
3621
+ addSubgroupsToGroup(params: AddSubgroupsToGroupParams, body: AddSubgroupsToGroupRequest): Promise<AddSubgroupsToGroupResponse>;
3622
+ /**
3623
+ * Remove child groups
3624
+ *
3625
+ * Removes a list of groups from a given group.
3626
+ *
3627
+ * @param params.gid - This is the ID of the group being modified.
3628
+ *
3629
+ * @param body - Request body
3630
+ *
3631
+ * @returns Success
3632
+ *
3633
+ * @see https://developer.quickbase.com/operation/removeSubgroupsFromGroup
3634
+ */
3635
+ removeSubgroupsFromGroup(params: RemoveSubgroupsFromGroupParams, body: RemoveSubgroupsFromGroupRequest): Promise<RemoveSubgroupsFromGroupResponse>;
3636
+ /**
3637
+ * Get audit logs
3638
+ *
3639
+ * Gathers the audit logs for a single day from a realm. By default, this API returns 10,000 entries. This can be changed with the numRows parameter. Integrators can iterate through batches to get an entire day's worth of logs. Each realm has a maximum entitlement of querying 1,000 days per year (allowing lookbacks for up to two years). Requests for paginated data do not count towards the annual limit. Transactional rate limits are 10 per 10 seconds.
3640
+ **Note:** This API is available for enterprise users only.
3641
+ *
3642
+ * @param body - Request body
3643
+ * @param body.nextToken - Token specifying start of page. For first page don't supply this. (optional)
3644
+ * @param body.numRows - Number of logs to return per page, default is 10000, minimum is 1000, max is 50000. (optional)
3645
+ * @param body.queryId - The query id of an audit log request. This id is needed to fetch subsequent paged results of a single query. (optional)
3646
+ * @param body.date - The date for which audit logs need to be fetched. This must be date-time only, as YYYY-MM-DD, and a valid date in the past. (optional)
3647
+ * @param body.topics - An array that may contain up to 20 [topics](https://resources.quickbase.com/nav/app/budurkasx/action/showpage/2b2941e4-f34d-4d41-9b0e-db790d20e9ab?pageIdV2=quickbase.com-DashboardGroup-15760d74-2243-4ce9-9495-7cc8790f12e7) to filter by. If empty, all topics are returned. (optional)
3648
+ *
3649
+ * @returns Query ran successfully and has returned the events for the given time period.
3650
+ *
3651
+ * @see https://developer.quickbase.com/operation/audit
3652
+ */
3653
+ audit(body: AuditRequest): Promise<AuditResponse>;
3654
+ /**
3655
+ * Get read summaries
3656
+ *
3657
+ * Get user read and integration read summaries for any day in the past.
3658
+ **Note:** This API is available for enterprise users only.
3659
+ *
3660
+ * @param params.day - The date for which read summaries need to be fetched. This must be date-time only, as YYYY-MM-DD, and a valid date in the past. (optional)
3661
+ *
3662
+ * @returns Summaries returned succesfully
3663
+ *
3664
+ * @see https://developer.quickbase.com/operation/platformAnalyticReads
3665
+ */
3666
+ platformAnalyticReads(params: PlatformAnalyticReadsParams): Promise<PlatformAnalyticReadsResponse>;
3667
+ /**
3668
+ * Get event summaries
3669
+ *
3670
+ * Get event summaries for any span of days up to one year and excluding future dates.
3671
+ **Note:** This API is available for enterprise users only. Data is updated hourly; to ensure accuracy, query dates should be at least one hour in the past. Transactional rate limits are 100 per hour.
3672
+ *
3673
+ * @param params.accountId - The ID of the account to query. If no value is specified, the first account matching the provided domain is chosen. (optional)
3674
+ *
3675
+ * @param body - Request body (optional)
3676
+ * @param body.start - The start date and time of the requested summaries in ISO 8601 time format.
3677
+ * @param body.end - The end date and time of the requested summaries in ISO 8601 time format.
3678
+ * @param body.groupBy - How the events should be grouped.
3679
+ * @param body.nextToken - A pagination token from a previous response. Used to fetch the next page. (optional)
3680
+ * @param body.where - A list of items to filter events by. Only events which match ALL criteria will be included in the results. (optional)
3681
+ *
3682
+ * @returns Event summaries returned succesfully
3683
+ *
3684
+ * @see https://developer.quickbase.com/operation/platformAnalyticEventSummaries
3685
+ */
3686
+ platformAnalyticEventSummaries(params: PlatformAnalyticEventSummariesParams, body?: PlatformAnalyticEventSummariesRequest): PaginatedRequest<PlatformAnalyticEventSummariesResponse>;
3687
+ /**
3688
+ * Export a solution
3689
+ *
3690
+ * Returns the QBL for the specified solution. Learn more about [QBL syntax](https://help.quickbase.com/hc/en-us/articles/24845511223828-What-is-QBL).
3691
+ We are releasing schema coverage for QBL in stages. See [what's supported today](https://helpv2.quickbase.com/hc/en-us/articles/30119680754068-QBL-version-0-4-overview) in our QBL documentation.
3692
+ *
3693
+ * @param params.solutionId - The unique identifier of a solution
3694
+ *
3695
+ * @returns Success
3696
+ *
3697
+ * @see https://developer.quickbase.com/operation/exportSolution
3698
+ */
3699
+ exportSolution(params: ExportSolutionParams): Promise<ExportSolutionResponse>;
3700
+ /**
3701
+ * Update a solution
3702
+ *
3703
+ * Updates the solution using the provided QBL. Learn more about [QBL syntax](https://help.quickbase.com/hc/en-us/articles/24845511223828-What-is-QBL).
3704
+ We are releasing schema coverage for QBL in stages. See [what's supported today](https://helpv2.quickbase.com/hc/en-us/articles/30119680754068-QBL-version-0-4-overview) in our QBL documentation.
3705
+ *
3706
+ * @param params.solutionId - The unique identifier of a solution
3707
+ *
3708
+ * @param body - The QBL to be used for the update. (optional)
3709
+ *
3710
+ * @returns Success
3711
+ *
3712
+ * @see https://developer.quickbase.com/operation/updateSolution
3713
+ */
3714
+ updateSolution(params: UpdateSolutionParams, body?: UpdateSolutionRequest): Promise<UpdateSolutionResponse>;
3715
+ /**
3716
+ * Create a solution
3717
+ *
3718
+ * Creates a solution using the provided QBL. Learn more about [QBL syntax](https://help.quickbase.com/hc/en-us/articles/24845511223828-What-is-QBL).
3719
+ We are releasing schema coverage for QBL in stages. See [what's supported today](https://helpv2.quickbase.com/hc/en-us/articles/30119680754068-QBL-version-0-4-overview) in our QBL documentation.
3720
+ *
3721
+ * @param body - The QBL to be used for the create.
3722
+ *
3723
+ * @returns Success
3724
+ *
3725
+ * @see https://developer.quickbase.com/operation/createSolution
3726
+ */
3727
+ createSolution(body: CreateSolutionRequest): Promise<CreateSolutionResponse>;
3728
+ /**
3729
+ * Export solution to record
3730
+ *
3731
+ * Exports the solution and outputs the resulting QBL in a new record in the specified table. The QBL will be saved to a file in the file attachment field that is specified. The table cannot have any required fields besides the file attachment field.
3732
+ We are releasing schema coverage for QBL in stages. See [what's supported today](https://helpv2.quickbase.com/hc/en-us/articles/30119680754068-QBL-version-0-4-overview) in our QBL documentation.
3733
+ *
3734
+ * @param params.solutionId - The unique identifier of the solution.
3735
+ * @param params.tableId - The unique identifier (dbid) of the table.
3736
+ * @param params.fieldId - The unique identifier (fid) of the field. It needs to be a file attachment field.
3737
+ *
3738
+ * @returns Success
3739
+ *
3740
+ * @see https://developer.quickbase.com/operation/exportSolutionToRecord
3741
+ */
3742
+ exportSolutionToRecord(params: ExportSolutionToRecordParams): Promise<ExportSolutionToRecordResponse>;
3743
+ /**
3744
+ * Create solution from record
3745
+ *
3746
+ * Creates a solution using the QBL from the specified record.
3747
+ We are releasing schema coverage for QBL in stages. See [what's supported today](https://helpv2.quickbase.com/hc/en-us/articles/30119680754068-QBL-version-0-4-overview) in our QBL documentation.
3748
+ *
3749
+ * @param params.tableId - The unique identifier (dbid) of the table.
3750
+ * @param params.fieldId - The unique identifier (fid) of the field. It needs to be a file attachment field.
3751
+ * @param params.recordId - The unique identifier of the record.
3752
+ *
3753
+ * @returns Success
3754
+ *
3755
+ * @see https://developer.quickbase.com/operation/createSolutionFromRecord
3756
+ */
3757
+ createSolutionFromRecord(params: CreateSolutionFromRecordParams): Promise<CreateSolutionFromRecordResponse>;
3758
+ /**
3759
+ * Update solution from record
3760
+ *
3761
+ * Updates a solution using the QBL from the specified record.
3762
+ We are releasing schema coverage for QBL in stages. See [what's supported today](https://helpv2.quickbase.com/hc/en-us/articles/30119680754068-QBL-version-0-4-overview) in our QBL documentation.
3763
+ *
3764
+ * @param params.solutionId - The unique identifier of the solution.
3765
+ * @param params.tableId - The unique identifier (dbid) of the table.
3766
+ * @param params.fieldId - The unique identifier (fid) of the field. It needs to be a file attachment field.
3767
+ * @param params.recordId - The unique identifier of the record.
3768
+ *
3769
+ * @returns Success
3770
+ *
3771
+ * @see https://developer.quickbase.com/operation/updateSolutionToRecord
3772
+ */
3773
+ updateSolutionToRecord(params: UpdateSolutionToRecordParams): Promise<UpdateSolutionToRecordResponse>;
3774
+ /**
3775
+ * List solution changes
3776
+ *
3777
+ * Returns a list of changes that would occur if the provided QBL were to be applied. Learn more about [QBL syntax](https://help.quickbase.com/hc/en-us/articles/24845511223828-What-is-QBL).
3778
+ We are releasing schema coverage for QBL in stages. See [what's supported today](https://helpv2.quickbase.com/hc/en-us/articles/30119680754068-QBL-version-0-4-overview) in our QBL documentation.
3779
+ *
3780
+ * @param params.solutionId - The unique identifier of the solution.
3781
+ *
3782
+ * @param body - The QBL to be used for the changeset.
3783
+ *
3784
+ * @returns Success
3785
+ *
3786
+ * @see https://developer.quickbase.com/operation/changesetSolution
3787
+ */
3788
+ changesetSolution(params: ChangesetSolutionParams, body: ChangesetSolutionRequest): Promise<ChangesetSolutionResponse>;
3789
+ /**
3790
+ * List solution changes from record
3791
+ *
3792
+ * Returns a list of changes that would occur if the QBL from the provided record were to be applied.
3793
+ We are releasing schema coverage for QBL in stages. See [what's supported today](https://helpv2.quickbase.com/hc/en-us/articles/30119680754068-QBL-version-0-4-overview) in our QBL documentation.
3794
+ *
3795
+ * @param params.solutionId - The unique identifier of the solution.
3796
+ * @param params.tableId - The unique identifier (dbid) of the table.
3797
+ * @param params.fieldId - The unique identifier (fid) of the field. It needs to be a file attachment field.
3798
+ * @param params.recordId - The unique identifier of the record.
3799
+ *
3800
+ * @returns Success
3801
+ *
3802
+ * @see https://developer.quickbase.com/operation/changesetSolutionFromRecord
3803
+ */
3804
+ changesetSolutionFromRecord(params: ChangesetSolutionFromRecordParams): Promise<ChangesetSolutionFromRecordResponse>;
3805
+ /**
3806
+ * Generate a document
3807
+ *
3808
+ * Generates a document from a template. This feature is only available on business or enterprise plans.
3809
+ *
3810
+ * @param params.templateId - This is the ID of document template.
3811
+ * @param params.tableId - The unique identifier of the table.
3812
+ * @param params.recordId - The ID of the record (optional)
3813
+ * @param params.filename - File name for the downloaded file
3814
+ * @param params.format - The format of the file that is returned. Default is "pdf". (optional)
3815
+ * @param params.margin - Margin formatted as top right bottom left, separated by spaces. Add to override the value set in the template builder. (optional)
3816
+ * @param params.unit - Unit of measurement for the margin. Default is "in". Add to override the value set in the template builder. (optional)
3817
+ * @param params.pageSize - Page size. Default is "A4". Add to override the value set in the template builder. (optional)
3818
+ * @param params.orientation - Page orientation. Default is "portrait". Add to override the value set in the template builder. (optional)
3819
+ * @param params.realm - Your Quickbase domain, for example demo.quickbase.com (optional)
3820
+ *
3821
+ * @returns Success
3822
+ *
3823
+ * @see https://developer.quickbase.com/operation/generateDocument
3824
+ */
3825
+ generateDocument(params: GenerateDocumentParams): Promise<GenerateDocumentResponse>;
3826
+ }
3827
+ //# sourceMappingURL=types.d.ts.map