@wakata-dev/api-client 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +190 -0
- package/README.md +187 -0
- package/dist/index.cjs +550 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +4333 -0
- package/dist/index.d.ts +4333 -0
- package/dist/index.js +535 -0
- package/dist/index.js.map +1 -0
- package/package.json +48 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,4333 @@
|
|
|
1
|
+
import * as _hey_api_client_fetch from '@hey-api/client-fetch';
|
|
2
|
+
import { TDataShape, Options as Options$1, Client } from '@hey-api/client-fetch';
|
|
3
|
+
|
|
4
|
+
type SendCredentialsDto = {
|
|
5
|
+
/**
|
|
6
|
+
* User public ID (UUID)
|
|
7
|
+
*/
|
|
8
|
+
user_id: string;
|
|
9
|
+
/**
|
|
10
|
+
* Device public ID (UUID) for validation
|
|
11
|
+
*/
|
|
12
|
+
device_id: string;
|
|
13
|
+
/**
|
|
14
|
+
* Send credentials via email
|
|
15
|
+
*/
|
|
16
|
+
email: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Send credentials via SMS
|
|
19
|
+
*/
|
|
20
|
+
sms: boolean;
|
|
21
|
+
};
|
|
22
|
+
type RegisterDeviceDto = {
|
|
23
|
+
/**
|
|
24
|
+
* The 6-digit pairing code for device registration (text format)
|
|
25
|
+
*/
|
|
26
|
+
code: string;
|
|
27
|
+
/**
|
|
28
|
+
* Operating system of the device
|
|
29
|
+
*/
|
|
30
|
+
os?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Operating system version
|
|
33
|
+
*/
|
|
34
|
+
os_version?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Device model
|
|
37
|
+
*/
|
|
38
|
+
device_model?: string;
|
|
39
|
+
/**
|
|
40
|
+
* App version
|
|
41
|
+
*/
|
|
42
|
+
app_version?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Device battery level (0-100)
|
|
45
|
+
*/
|
|
46
|
+
battery_level?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Device latitude coordinate
|
|
49
|
+
*/
|
|
50
|
+
lat?: number;
|
|
51
|
+
/**
|
|
52
|
+
* Device longitude coordinate
|
|
53
|
+
*/
|
|
54
|
+
lng?: number;
|
|
55
|
+
};
|
|
56
|
+
type RegisterDeviceResponseDto = {
|
|
57
|
+
/**
|
|
58
|
+
* BigInt as string. Device ID
|
|
59
|
+
*/
|
|
60
|
+
id: string;
|
|
61
|
+
/**
|
|
62
|
+
* Public device identifier (UUID)
|
|
63
|
+
*/
|
|
64
|
+
publicId: string;
|
|
65
|
+
/**
|
|
66
|
+
* BigInt as string. Company identifier
|
|
67
|
+
*/
|
|
68
|
+
companyId: string;
|
|
69
|
+
/**
|
|
70
|
+
* BigInt as string. Site identifier
|
|
71
|
+
*/
|
|
72
|
+
siteId: string;
|
|
73
|
+
/**
|
|
74
|
+
* Device name
|
|
75
|
+
*/
|
|
76
|
+
name: string;
|
|
77
|
+
/**
|
|
78
|
+
* Device status
|
|
79
|
+
*/
|
|
80
|
+
status: string;
|
|
81
|
+
/**
|
|
82
|
+
* Whether redownload is required
|
|
83
|
+
*/
|
|
84
|
+
redownloadRequired?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Whether to send logs
|
|
87
|
+
*/
|
|
88
|
+
sendLogs?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Whether this is a test device
|
|
91
|
+
*/
|
|
92
|
+
testDevice?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* BigInt as string. Test device asset class ID
|
|
95
|
+
*/
|
|
96
|
+
testDeviceAssetClassId?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Nominated test user ID. When the device is a test device the mobile app should impersonate this user, allowing it to drive User Based checklists (including unpublished/draft ones) without affecting billable assignments.
|
|
99
|
+
*/
|
|
100
|
+
testUserId?: {
|
|
101
|
+
[key: string]: unknown;
|
|
102
|
+
} | null;
|
|
103
|
+
/**
|
|
104
|
+
* Last sync timestamp
|
|
105
|
+
*/
|
|
106
|
+
lastSyncAt?: string;
|
|
107
|
+
/**
|
|
108
|
+
* Creation timestamp
|
|
109
|
+
*/
|
|
110
|
+
createdAt: string;
|
|
111
|
+
/**
|
|
112
|
+
* BigInt as string. ID of user who created the device
|
|
113
|
+
*/
|
|
114
|
+
createdById: string;
|
|
115
|
+
/**
|
|
116
|
+
* Last update timestamp
|
|
117
|
+
*/
|
|
118
|
+
updatedAt: string;
|
|
119
|
+
/**
|
|
120
|
+
* BigInt as string. ID of user who last updated the device
|
|
121
|
+
*/
|
|
122
|
+
updatedById: string;
|
|
123
|
+
/**
|
|
124
|
+
* Deletion timestamp (if deleted)
|
|
125
|
+
*/
|
|
126
|
+
deletedAt?: string;
|
|
127
|
+
/**
|
|
128
|
+
* BigInt as string. ID of user who deleted the device
|
|
129
|
+
*/
|
|
130
|
+
deletedById?: string;
|
|
131
|
+
};
|
|
132
|
+
type CreateTokenDto = {
|
|
133
|
+
/**
|
|
134
|
+
* User UUID for authentication (preferred). If provided, employee_id is ignored.
|
|
135
|
+
*/
|
|
136
|
+
user_id?: string;
|
|
137
|
+
/**
|
|
138
|
+
* Employee ID for authentication (legacy). Required if user_id is not provided.
|
|
139
|
+
*/
|
|
140
|
+
employee_id?: string;
|
|
141
|
+
/**
|
|
142
|
+
* PIN code (4 digits)
|
|
143
|
+
*/
|
|
144
|
+
pin: string;
|
|
145
|
+
/**
|
|
146
|
+
* Company UUID to authenticate against
|
|
147
|
+
*/
|
|
148
|
+
company_id: string;
|
|
149
|
+
};
|
|
150
|
+
type TokenUserDto = {
|
|
151
|
+
/**
|
|
152
|
+
* User public UUID
|
|
153
|
+
*/
|
|
154
|
+
public_id: string;
|
|
155
|
+
/**
|
|
156
|
+
* User first name
|
|
157
|
+
*/
|
|
158
|
+
first_name: string;
|
|
159
|
+
/**
|
|
160
|
+
* User last name
|
|
161
|
+
*/
|
|
162
|
+
last_name: string;
|
|
163
|
+
};
|
|
164
|
+
type TokenCompanyDto = {
|
|
165
|
+
/**
|
|
166
|
+
* Company public UUID
|
|
167
|
+
*/
|
|
168
|
+
public_id: string;
|
|
169
|
+
/**
|
|
170
|
+
* Company name
|
|
171
|
+
*/
|
|
172
|
+
name: string;
|
|
173
|
+
};
|
|
174
|
+
type TokenResponseDto = {
|
|
175
|
+
/**
|
|
176
|
+
* API token (Bearer token)
|
|
177
|
+
*/
|
|
178
|
+
token: string;
|
|
179
|
+
/**
|
|
180
|
+
* Token expiration date (optional)
|
|
181
|
+
*/
|
|
182
|
+
expires_at?: {
|
|
183
|
+
[key: string]: unknown;
|
|
184
|
+
} | null;
|
|
185
|
+
/**
|
|
186
|
+
* Authenticated user information
|
|
187
|
+
*/
|
|
188
|
+
user: TokenUserDto;
|
|
189
|
+
/**
|
|
190
|
+
* Company context for the token
|
|
191
|
+
*/
|
|
192
|
+
company: TokenCompanyDto;
|
|
193
|
+
};
|
|
194
|
+
type CreateAssetDto = {
|
|
195
|
+
/**
|
|
196
|
+
* Device ID for authentication (optional for API key auth)
|
|
197
|
+
*/
|
|
198
|
+
device_id?: string;
|
|
199
|
+
/**
|
|
200
|
+
* Asset number
|
|
201
|
+
*/
|
|
202
|
+
asset_number: string;
|
|
203
|
+
/**
|
|
204
|
+
* Asset class public ID
|
|
205
|
+
*/
|
|
206
|
+
asset_class: string;
|
|
207
|
+
/**
|
|
208
|
+
* Site public ID
|
|
209
|
+
*/
|
|
210
|
+
site_id: string;
|
|
211
|
+
};
|
|
212
|
+
type PublicCreateAssetDto = {
|
|
213
|
+
/**
|
|
214
|
+
* Asset number
|
|
215
|
+
*/
|
|
216
|
+
asset_number: string;
|
|
217
|
+
/**
|
|
218
|
+
* Asset class public ID
|
|
219
|
+
*/
|
|
220
|
+
asset_class: string;
|
|
221
|
+
/**
|
|
222
|
+
* Site public ID
|
|
223
|
+
*/
|
|
224
|
+
site_id: string;
|
|
225
|
+
};
|
|
226
|
+
type ApiErrorDetail = {
|
|
227
|
+
/**
|
|
228
|
+
* Dotted path to the offending property, when available.
|
|
229
|
+
*/
|
|
230
|
+
field?: string;
|
|
231
|
+
/**
|
|
232
|
+
* Machine-readable code for the validation failure (e.g. the class-validator constraint name like `isUuid`, `isNotEmpty`).
|
|
233
|
+
*/
|
|
234
|
+
code?: string;
|
|
235
|
+
/**
|
|
236
|
+
* Human-readable explanation of the problem.
|
|
237
|
+
*/
|
|
238
|
+
message: string;
|
|
239
|
+
};
|
|
240
|
+
type ApiErrorBody = {
|
|
241
|
+
/**
|
|
242
|
+
* Stable, machine-readable code identifying the failure class. Integrators should switch on this rather than parsing the message. Codes are append-only — they are never removed or renamed.
|
|
243
|
+
*/
|
|
244
|
+
code: 'validation_error' | 'bad_request' | 'unauthorized' | 'forbidden' | 'ip_not_allowed' | 'not_found' | 'conflict' | 'idempotency_key_conflict' | 'rate_limited' | 'internal_error';
|
|
245
|
+
/**
|
|
246
|
+
* Human-readable description of the failure. Subject to wording tweaks — do not parse.
|
|
247
|
+
*/
|
|
248
|
+
message: string;
|
|
249
|
+
/**
|
|
250
|
+
* Correlator that matches the `X-Request-Id` response header. Quote this when filing a support ticket.
|
|
251
|
+
*/
|
|
252
|
+
request_id: string;
|
|
253
|
+
/**
|
|
254
|
+
* Deep-link into the public error documentation.
|
|
255
|
+
*/
|
|
256
|
+
docs_url?: string;
|
|
257
|
+
/**
|
|
258
|
+
* Name of the request parameter that triggered the failure, when the failure can be pinpointed to a single field. For nested-body failures see `details[].field` instead.
|
|
259
|
+
*/
|
|
260
|
+
param?: string;
|
|
261
|
+
/**
|
|
262
|
+
* Itemized list of per-field validation problems. Populated for `validation_error` responses; usually absent for other codes.
|
|
263
|
+
*/
|
|
264
|
+
details?: Array<ApiErrorDetail>;
|
|
265
|
+
};
|
|
266
|
+
type ApiErrorResponse = {
|
|
267
|
+
error: ApiErrorBody;
|
|
268
|
+
};
|
|
269
|
+
type UpdateAssetDto = {
|
|
270
|
+
/**
|
|
271
|
+
* Asset number
|
|
272
|
+
*/
|
|
273
|
+
asset_number?: string;
|
|
274
|
+
/**
|
|
275
|
+
* Asset class public ID
|
|
276
|
+
*/
|
|
277
|
+
asset_class?: string;
|
|
278
|
+
/**
|
|
279
|
+
* Site public ID
|
|
280
|
+
*/
|
|
281
|
+
site_id?: string;
|
|
282
|
+
/**
|
|
283
|
+
* Asset photo file path or URL
|
|
284
|
+
*/
|
|
285
|
+
asset_photo_file?: string;
|
|
286
|
+
/**
|
|
287
|
+
* Asset photo metadata as JSON string
|
|
288
|
+
*/
|
|
289
|
+
asset_photo_info?: string;
|
|
290
|
+
/**
|
|
291
|
+
* Latitude coordinate
|
|
292
|
+
*/
|
|
293
|
+
lat?: number;
|
|
294
|
+
/**
|
|
295
|
+
* Longitude coordinate
|
|
296
|
+
*/
|
|
297
|
+
lng?: number;
|
|
298
|
+
};
|
|
299
|
+
type EmbeddedUserPropertyDto = {
|
|
300
|
+
/**
|
|
301
|
+
* Property ID. Serialized as a string in public API responses (BigInt-safe).
|
|
302
|
+
*/
|
|
303
|
+
property_id: string;
|
|
304
|
+
/**
|
|
305
|
+
* Property name from config_items
|
|
306
|
+
*/
|
|
307
|
+
property_name: string;
|
|
308
|
+
/**
|
|
309
|
+
* Text value (if property type is text)
|
|
310
|
+
*/
|
|
311
|
+
text_value: {
|
|
312
|
+
[key: string]: unknown;
|
|
313
|
+
} | null;
|
|
314
|
+
/**
|
|
315
|
+
* Numeric value (if property type is numeric)
|
|
316
|
+
*/
|
|
317
|
+
numeric_value: {
|
|
318
|
+
[key: string]: unknown;
|
|
319
|
+
} | null;
|
|
320
|
+
/**
|
|
321
|
+
* Date value (if property type is date)
|
|
322
|
+
*/
|
|
323
|
+
date_value: {
|
|
324
|
+
[key: string]: unknown;
|
|
325
|
+
} | null;
|
|
326
|
+
};
|
|
327
|
+
type UserResponseDto = {
|
|
328
|
+
/**
|
|
329
|
+
* User public ID (UUID)
|
|
330
|
+
*/
|
|
331
|
+
user_public_id: string;
|
|
332
|
+
/**
|
|
333
|
+
* User first name
|
|
334
|
+
*/
|
|
335
|
+
user_first_name: string;
|
|
336
|
+
/**
|
|
337
|
+
* User last name
|
|
338
|
+
*/
|
|
339
|
+
user_last_name: string;
|
|
340
|
+
/**
|
|
341
|
+
* User email address
|
|
342
|
+
*/
|
|
343
|
+
user_email: {
|
|
344
|
+
[key: string]: unknown;
|
|
345
|
+
} | null;
|
|
346
|
+
/**
|
|
347
|
+
* Profile photo URL
|
|
348
|
+
*/
|
|
349
|
+
user_profile_photo: {
|
|
350
|
+
[key: string]: unknown;
|
|
351
|
+
} | null;
|
|
352
|
+
/**
|
|
353
|
+
* Username (typically email)
|
|
354
|
+
*/
|
|
355
|
+
user_user_name: {
|
|
356
|
+
[key: string]: unknown;
|
|
357
|
+
} | null;
|
|
358
|
+
/**
|
|
359
|
+
* Employee number
|
|
360
|
+
*/
|
|
361
|
+
user_employee_number: {
|
|
362
|
+
[key: string]: unknown;
|
|
363
|
+
} | null;
|
|
364
|
+
/**
|
|
365
|
+
* User PIN code
|
|
366
|
+
*/
|
|
367
|
+
user_pin: {
|
|
368
|
+
[key: string]: unknown;
|
|
369
|
+
} | null;
|
|
370
|
+
/**
|
|
371
|
+
* Contact phone number
|
|
372
|
+
*/
|
|
373
|
+
user_contact_number: {
|
|
374
|
+
[key: string]: unknown;
|
|
375
|
+
} | null;
|
|
376
|
+
/**
|
|
377
|
+
* Last login timestamp
|
|
378
|
+
*/
|
|
379
|
+
user_last_login_timestamp: {
|
|
380
|
+
[key: string]: unknown;
|
|
381
|
+
} | null;
|
|
382
|
+
/**
|
|
383
|
+
* User creation timestamp
|
|
384
|
+
*/
|
|
385
|
+
user_created: string;
|
|
386
|
+
/**
|
|
387
|
+
* Public ID of user who created this user
|
|
388
|
+
*/
|
|
389
|
+
user_created_by: {
|
|
390
|
+
[key: string]: unknown;
|
|
391
|
+
} | null;
|
|
392
|
+
/**
|
|
393
|
+
* Name of user who created this user
|
|
394
|
+
*/
|
|
395
|
+
user_created_by_name: {
|
|
396
|
+
[key: string]: unknown;
|
|
397
|
+
} | null;
|
|
398
|
+
/**
|
|
399
|
+
* Last modification timestamp
|
|
400
|
+
*/
|
|
401
|
+
user_modified: string;
|
|
402
|
+
/**
|
|
403
|
+
* Public ID of user who last modified this user
|
|
404
|
+
*/
|
|
405
|
+
user_modified_by: {
|
|
406
|
+
[key: string]: unknown;
|
|
407
|
+
} | null;
|
|
408
|
+
/**
|
|
409
|
+
* Name of user who last modified this user
|
|
410
|
+
*/
|
|
411
|
+
user_modified_by_name: {
|
|
412
|
+
[key: string]: unknown;
|
|
413
|
+
} | null;
|
|
414
|
+
/**
|
|
415
|
+
* Whether user is deleted
|
|
416
|
+
*/
|
|
417
|
+
user_deleted: boolean;
|
|
418
|
+
/**
|
|
419
|
+
* User properties
|
|
420
|
+
*/
|
|
421
|
+
user_properties: Array<EmbeddedUserPropertyDto>;
|
|
422
|
+
};
|
|
423
|
+
type ChangePinDto = {
|
|
424
|
+
/**
|
|
425
|
+
* New 4-digit PIN code
|
|
426
|
+
*/
|
|
427
|
+
pin: string;
|
|
428
|
+
};
|
|
429
|
+
type UploadCredentialsResponseDto = {
|
|
430
|
+
/**
|
|
431
|
+
* Temporary AWS Access Key ID
|
|
432
|
+
*/
|
|
433
|
+
accessKeyId: string;
|
|
434
|
+
/**
|
|
435
|
+
* Temporary AWS Secret Access Key
|
|
436
|
+
*/
|
|
437
|
+
secretAccessKey: string;
|
|
438
|
+
/**
|
|
439
|
+
* Temporary AWS Session Token
|
|
440
|
+
*/
|
|
441
|
+
sessionToken: string;
|
|
442
|
+
/**
|
|
443
|
+
* Credentials expiration time in ISO 8601 format
|
|
444
|
+
*/
|
|
445
|
+
expiration: string;
|
|
446
|
+
/**
|
|
447
|
+
* S3 bucket name
|
|
448
|
+
*/
|
|
449
|
+
bucket: string;
|
|
450
|
+
/**
|
|
451
|
+
* AWS region
|
|
452
|
+
*/
|
|
453
|
+
region: string;
|
|
454
|
+
/**
|
|
455
|
+
* S3 prefix path for uploads (company folder - credentials grant access to entire company folder)
|
|
456
|
+
*/
|
|
457
|
+
uploadPrefix: string;
|
|
458
|
+
};
|
|
459
|
+
type RequestUploadDto = {
|
|
460
|
+
/**
|
|
461
|
+
* Feature/folder name
|
|
462
|
+
*/
|
|
463
|
+
feature: string;
|
|
464
|
+
/**
|
|
465
|
+
* Filename
|
|
466
|
+
*/
|
|
467
|
+
filename: string;
|
|
468
|
+
};
|
|
469
|
+
type RequestLogUploadDto = {
|
|
470
|
+
/**
|
|
471
|
+
* Company name (used as the top-level folder)
|
|
472
|
+
*/
|
|
473
|
+
companyName: string;
|
|
474
|
+
/**
|
|
475
|
+
* Device name (used as the second folder segment)
|
|
476
|
+
*/
|
|
477
|
+
deviceName: string;
|
|
478
|
+
/**
|
|
479
|
+
* Final log archive filename
|
|
480
|
+
*/
|
|
481
|
+
fileName: string;
|
|
482
|
+
};
|
|
483
|
+
type RequestDownloadDto = {
|
|
484
|
+
/**
|
|
485
|
+
* Feature/folder name
|
|
486
|
+
*/
|
|
487
|
+
feature: string;
|
|
488
|
+
/**
|
|
489
|
+
* Filename (optional - if not provided, /download-url grants access to entire folder)
|
|
490
|
+
*/
|
|
491
|
+
filename?: string;
|
|
492
|
+
};
|
|
493
|
+
type DownloadResponseDto = {
|
|
494
|
+
/**
|
|
495
|
+
* CloudFront base URL (for folder access) or full file URL (for single file)
|
|
496
|
+
*/
|
|
497
|
+
baseUrl: string;
|
|
498
|
+
/**
|
|
499
|
+
* CloudFront path pattern that the cookies grant access to
|
|
500
|
+
*/
|
|
501
|
+
pathPattern: string;
|
|
502
|
+
/**
|
|
503
|
+
* CloudFront-Policy cookie value (custom policy) or CloudFront-Expires (canned policy)
|
|
504
|
+
*/
|
|
505
|
+
cloudFrontPolicy?: string;
|
|
506
|
+
/**
|
|
507
|
+
* CloudFront-Expires cookie value (canned policy, Unix timestamp)
|
|
508
|
+
*/
|
|
509
|
+
cloudFrontExpires?: number;
|
|
510
|
+
/**
|
|
511
|
+
* CloudFront-Signature cookie value
|
|
512
|
+
*/
|
|
513
|
+
cloudFrontSignature: string;
|
|
514
|
+
/**
|
|
515
|
+
* CloudFront-Key-Pair-Id cookie value
|
|
516
|
+
*/
|
|
517
|
+
cloudFrontKeyPairId: string;
|
|
518
|
+
/**
|
|
519
|
+
* Expiration time in seconds
|
|
520
|
+
*/
|
|
521
|
+
expiresIn: number;
|
|
522
|
+
};
|
|
523
|
+
type CreateInspectionDto = {
|
|
524
|
+
/**
|
|
525
|
+
* Inspection public ID (UUID)
|
|
526
|
+
*/
|
|
527
|
+
public_id: string;
|
|
528
|
+
/**
|
|
529
|
+
* Site public ID
|
|
530
|
+
*/
|
|
531
|
+
site_id: string;
|
|
532
|
+
/**
|
|
533
|
+
* Inspection type
|
|
534
|
+
*/
|
|
535
|
+
type: string;
|
|
536
|
+
/**
|
|
537
|
+
* Inspection status
|
|
538
|
+
*/
|
|
539
|
+
status: string;
|
|
540
|
+
/**
|
|
541
|
+
* BigInt as string. Checklist ID
|
|
542
|
+
*/
|
|
543
|
+
checklist_id: string;
|
|
544
|
+
/**
|
|
545
|
+
* User public ID (creator)
|
|
546
|
+
*/
|
|
547
|
+
user_id: string;
|
|
548
|
+
/**
|
|
549
|
+
* BigInt as string. Asset internal ID (for type=asset inspections)
|
|
550
|
+
*/
|
|
551
|
+
asset_id?: string;
|
|
552
|
+
/**
|
|
553
|
+
* BigInt as string. Subject user internal ID (for type=user inspections)
|
|
554
|
+
*/
|
|
555
|
+
subject_user_id?: string;
|
|
556
|
+
/**
|
|
557
|
+
* BigInt as string. Device internal ID (for type=device inspections)
|
|
558
|
+
*/
|
|
559
|
+
device_id?: string;
|
|
560
|
+
/**
|
|
561
|
+
* Asset selection method (e.g. "search", "scan")
|
|
562
|
+
*/
|
|
563
|
+
asset_selection_method?: string;
|
|
564
|
+
/**
|
|
565
|
+
* Latitude (optional)
|
|
566
|
+
*/
|
|
567
|
+
lat?: number;
|
|
568
|
+
/**
|
|
569
|
+
* Longitude (optional)
|
|
570
|
+
*/
|
|
571
|
+
lng?: number;
|
|
572
|
+
/**
|
|
573
|
+
* App version (optional)
|
|
574
|
+
*/
|
|
575
|
+
app_version?: string;
|
|
576
|
+
/**
|
|
577
|
+
* Connection type (optional)
|
|
578
|
+
*/
|
|
579
|
+
connection?: string;
|
|
580
|
+
/**
|
|
581
|
+
* Started at timestamp (ISO 8601 format, optional)
|
|
582
|
+
*/
|
|
583
|
+
started_at?: string;
|
|
584
|
+
/**
|
|
585
|
+
* BigInt as string. Task ID (optional) - if provided, the task status will be set to "started"
|
|
586
|
+
*/
|
|
587
|
+
task_id?: string;
|
|
588
|
+
};
|
|
589
|
+
type RepeatInspectionDto = {
|
|
590
|
+
/**
|
|
591
|
+
* User public ID (who is repeating the inspection)
|
|
592
|
+
*/
|
|
593
|
+
user_id: string;
|
|
594
|
+
/**
|
|
595
|
+
* New inspection public ID for the cloned inspection
|
|
596
|
+
*/
|
|
597
|
+
new_inspection_id: string;
|
|
598
|
+
};
|
|
599
|
+
type ResumeInspectionDto = {
|
|
600
|
+
/**
|
|
601
|
+
* User public ID (who is resuming the inspection)
|
|
602
|
+
*/
|
|
603
|
+
user_id: string;
|
|
604
|
+
};
|
|
605
|
+
type UpdateInspectionDto = {
|
|
606
|
+
/**
|
|
607
|
+
* User public ID (who is updating the inspection)
|
|
608
|
+
*/
|
|
609
|
+
user_id: string;
|
|
610
|
+
/**
|
|
611
|
+
* Inspection type
|
|
612
|
+
*/
|
|
613
|
+
type?: string;
|
|
614
|
+
/**
|
|
615
|
+
* Inspection status
|
|
616
|
+
*/
|
|
617
|
+
status?: string;
|
|
618
|
+
/**
|
|
619
|
+
* Latitude
|
|
620
|
+
*/
|
|
621
|
+
lat?: number;
|
|
622
|
+
/**
|
|
623
|
+
* Longitude
|
|
624
|
+
*/
|
|
625
|
+
lng?: number;
|
|
626
|
+
/**
|
|
627
|
+
* App version
|
|
628
|
+
*/
|
|
629
|
+
app_version?: string;
|
|
630
|
+
/**
|
|
631
|
+
* Connection type
|
|
632
|
+
*/
|
|
633
|
+
connection?: string;
|
|
634
|
+
/**
|
|
635
|
+
* Started at timestamp (ISO 8601 format)
|
|
636
|
+
*/
|
|
637
|
+
started_at?: string;
|
|
638
|
+
/**
|
|
639
|
+
* Ended at timestamp (ISO 8601 format)
|
|
640
|
+
*/
|
|
641
|
+
ended_at?: string;
|
|
642
|
+
/**
|
|
643
|
+
* Submitted at timestamp (ISO 8601 format)
|
|
644
|
+
*/
|
|
645
|
+
submitted_at?: string;
|
|
646
|
+
/**
|
|
647
|
+
* Duration in seconds
|
|
648
|
+
*/
|
|
649
|
+
duration?: number;
|
|
650
|
+
/**
|
|
651
|
+
* Inspection score
|
|
652
|
+
*/
|
|
653
|
+
score?: number;
|
|
654
|
+
/**
|
|
655
|
+
* Completion percentage
|
|
656
|
+
*/
|
|
657
|
+
completion_percentage?: number;
|
|
658
|
+
/**
|
|
659
|
+
* Asset selection method
|
|
660
|
+
*/
|
|
661
|
+
asset_selection_method?: string;
|
|
662
|
+
};
|
|
663
|
+
type DeleteInspectionDto = {
|
|
664
|
+
/**
|
|
665
|
+
* User public ID (who is deleting the inspection)
|
|
666
|
+
*/
|
|
667
|
+
user_id: string;
|
|
668
|
+
};
|
|
669
|
+
type ResponseOptionDto = {
|
|
670
|
+
/**
|
|
671
|
+
* Response option public ID (UUID)
|
|
672
|
+
*/
|
|
673
|
+
public_id?: string;
|
|
674
|
+
/**
|
|
675
|
+
* Response public ID this option belongs to
|
|
676
|
+
*/
|
|
677
|
+
response_public_id?: string;
|
|
678
|
+
/**
|
|
679
|
+
* BigInt as string. Question option ID
|
|
680
|
+
*/
|
|
681
|
+
question_option_id: string;
|
|
682
|
+
/**
|
|
683
|
+
* Option label
|
|
684
|
+
*/
|
|
685
|
+
label: string;
|
|
686
|
+
/**
|
|
687
|
+
* Long description
|
|
688
|
+
*/
|
|
689
|
+
long_description?: string;
|
|
690
|
+
/**
|
|
691
|
+
* Is leaf node in option tree (accepts boolean or 0/1)
|
|
692
|
+
*/
|
|
693
|
+
leaf_node?: {
|
|
694
|
+
[key: string]: unknown;
|
|
695
|
+
};
|
|
696
|
+
/**
|
|
697
|
+
* Score value
|
|
698
|
+
*/
|
|
699
|
+
score?: number;
|
|
700
|
+
/**
|
|
701
|
+
* Updated timestamp (Unix epoch in seconds)
|
|
702
|
+
*/
|
|
703
|
+
updated_at?: number;
|
|
704
|
+
/**
|
|
705
|
+
* Deleted timestamp (Unix epoch in seconds)
|
|
706
|
+
*/
|
|
707
|
+
deleted_at?: number;
|
|
708
|
+
};
|
|
709
|
+
type MediaDto = {
|
|
710
|
+
/**
|
|
711
|
+
* Media public ID (UUID)
|
|
712
|
+
*/
|
|
713
|
+
public_id?: string;
|
|
714
|
+
/**
|
|
715
|
+
* Response public ID
|
|
716
|
+
*/
|
|
717
|
+
response_public_id?: string;
|
|
718
|
+
/**
|
|
719
|
+
* Response extra info public ID
|
|
720
|
+
*/
|
|
721
|
+
response_extra_info_public_id?: string;
|
|
722
|
+
/**
|
|
723
|
+
* Media type (photo, audio, video, etc.)
|
|
724
|
+
*/
|
|
725
|
+
type: string;
|
|
726
|
+
/**
|
|
727
|
+
* Media file path
|
|
728
|
+
*/
|
|
729
|
+
media_file?: string;
|
|
730
|
+
/**
|
|
731
|
+
* Media info (JSON or text)
|
|
732
|
+
*/
|
|
733
|
+
media_info?: string;
|
|
734
|
+
/**
|
|
735
|
+
* Captured timestamp (Unix epoch in seconds)
|
|
736
|
+
*/
|
|
737
|
+
captured_at?: number;
|
|
738
|
+
/**
|
|
739
|
+
* Audio duration in seconds
|
|
740
|
+
*/
|
|
741
|
+
audio_duration?: number;
|
|
742
|
+
/**
|
|
743
|
+
* Audio transcription text
|
|
744
|
+
*/
|
|
745
|
+
audio_transcription?: string;
|
|
746
|
+
/**
|
|
747
|
+
* Upload status (accepts boolean or 0/1)
|
|
748
|
+
*/
|
|
749
|
+
uploaded?: {
|
|
750
|
+
[key: string]: unknown;
|
|
751
|
+
};
|
|
752
|
+
/**
|
|
753
|
+
* Updated timestamp (Unix epoch in seconds)
|
|
754
|
+
*/
|
|
755
|
+
updated_at?: number;
|
|
756
|
+
/**
|
|
757
|
+
* Deleted timestamp (Unix epoch in seconds)
|
|
758
|
+
*/
|
|
759
|
+
deleted_at?: number;
|
|
760
|
+
};
|
|
761
|
+
type ExtraInfoDto = {
|
|
762
|
+
/**
|
|
763
|
+
* Extra info public ID (UUID)
|
|
764
|
+
*/
|
|
765
|
+
public_id?: string;
|
|
766
|
+
/**
|
|
767
|
+
* Response public ID this extra info belongs to
|
|
768
|
+
*/
|
|
769
|
+
response_public_id?: string;
|
|
770
|
+
/**
|
|
771
|
+
* BigInt as string. Extra info definition ID
|
|
772
|
+
*/
|
|
773
|
+
extra_info_id: string;
|
|
774
|
+
/**
|
|
775
|
+
* Text value
|
|
776
|
+
*/
|
|
777
|
+
text_value?: string;
|
|
778
|
+
/**
|
|
779
|
+
* Numeric value
|
|
780
|
+
*/
|
|
781
|
+
numeric_value?: number;
|
|
782
|
+
/**
|
|
783
|
+
* Date value (Unix epoch in seconds)
|
|
784
|
+
*/
|
|
785
|
+
date_value?: number;
|
|
786
|
+
/**
|
|
787
|
+
* ID value (for dropdown selections)
|
|
788
|
+
*/
|
|
789
|
+
id_value?: string;
|
|
790
|
+
/**
|
|
791
|
+
* Latitude value
|
|
792
|
+
*/
|
|
793
|
+
lat_value?: number;
|
|
794
|
+
/**
|
|
795
|
+
* Longitude value
|
|
796
|
+
*/
|
|
797
|
+
lng_value?: number;
|
|
798
|
+
/**
|
|
799
|
+
* Updated timestamp (Unix epoch in seconds)
|
|
800
|
+
*/
|
|
801
|
+
updated_at?: number;
|
|
802
|
+
/**
|
|
803
|
+
* Deleted timestamp (Unix epoch in seconds)
|
|
804
|
+
*/
|
|
805
|
+
deleted_at?: number;
|
|
806
|
+
/**
|
|
807
|
+
* Media attachments (not validated for performance)
|
|
808
|
+
*/
|
|
809
|
+
media?: Array<MediaDto>;
|
|
810
|
+
};
|
|
811
|
+
type ResponseDto = {
|
|
812
|
+
/**
|
|
813
|
+
* Response public ID (UUID)
|
|
814
|
+
*/
|
|
815
|
+
public_id?: string;
|
|
816
|
+
/**
|
|
817
|
+
* Inspection public ID this response belongs to
|
|
818
|
+
*/
|
|
819
|
+
inspection_public_id?: string;
|
|
820
|
+
/**
|
|
821
|
+
* BigInt as string. Checklist item ID
|
|
822
|
+
*/
|
|
823
|
+
checklist_item_id?: string;
|
|
824
|
+
/**
|
|
825
|
+
* Response type (question, condition, etc.)
|
|
826
|
+
*/
|
|
827
|
+
type?: string;
|
|
828
|
+
/**
|
|
829
|
+
* Response status
|
|
830
|
+
*/
|
|
831
|
+
status?: number;
|
|
832
|
+
/**
|
|
833
|
+
* Condition result (accepts boolean or 0/1)
|
|
834
|
+
*/
|
|
835
|
+
condition_result?: {
|
|
836
|
+
[key: string]: unknown;
|
|
837
|
+
};
|
|
838
|
+
/**
|
|
839
|
+
* BigInt as string. Control button ID
|
|
840
|
+
*/
|
|
841
|
+
control_button_id?: string;
|
|
842
|
+
/**
|
|
843
|
+
* BigInt as string. Control gauge band ID
|
|
844
|
+
*/
|
|
845
|
+
control_gauge_band_id?: string;
|
|
846
|
+
/**
|
|
847
|
+
* Gauge value
|
|
848
|
+
*/
|
|
849
|
+
gauge_value?: number;
|
|
850
|
+
/**
|
|
851
|
+
* Control property value
|
|
852
|
+
*/
|
|
853
|
+
control_property_value?: number;
|
|
854
|
+
/**
|
|
855
|
+
* BigInt as string. Embedded inspection ID
|
|
856
|
+
*/
|
|
857
|
+
embedded_inspection_id?: string;
|
|
858
|
+
/**
|
|
859
|
+
* Embedded inspection public ID (UUID)
|
|
860
|
+
*/
|
|
861
|
+
embedded_inspection_public_id?: string;
|
|
862
|
+
/**
|
|
863
|
+
* Loop repetitions count
|
|
864
|
+
*/
|
|
865
|
+
loop_repetitions?: number;
|
|
866
|
+
/**
|
|
867
|
+
* BigInt as string. Prerequisite inspection ID
|
|
868
|
+
*/
|
|
869
|
+
prerequisite_inspection_id?: string;
|
|
870
|
+
/**
|
|
871
|
+
* Latitude
|
|
872
|
+
*/
|
|
873
|
+
lat?: number;
|
|
874
|
+
/**
|
|
875
|
+
* Longitude
|
|
876
|
+
*/
|
|
877
|
+
lng?: number;
|
|
878
|
+
/**
|
|
879
|
+
* Duration in seconds
|
|
880
|
+
*/
|
|
881
|
+
duration?: number;
|
|
882
|
+
/**
|
|
883
|
+
* Score
|
|
884
|
+
*/
|
|
885
|
+
score?: number;
|
|
886
|
+
/**
|
|
887
|
+
* Left value for nested set model
|
|
888
|
+
*/
|
|
889
|
+
left?: number;
|
|
890
|
+
/**
|
|
891
|
+
* Right value for nested set model
|
|
892
|
+
*/
|
|
893
|
+
right?: number;
|
|
894
|
+
/**
|
|
895
|
+
* Quiz answer attempts count
|
|
896
|
+
*/
|
|
897
|
+
quiz_answer_attempts?: number;
|
|
898
|
+
/**
|
|
899
|
+
* Responded timestamp (Unix epoch in seconds)
|
|
900
|
+
*/
|
|
901
|
+
responded_at?: number;
|
|
902
|
+
/**
|
|
903
|
+
* Updated timestamp (Unix epoch in seconds)
|
|
904
|
+
*/
|
|
905
|
+
updated_at?: number;
|
|
906
|
+
/**
|
|
907
|
+
* Deleted timestamp (Unix epoch in seconds)
|
|
908
|
+
*/
|
|
909
|
+
deleted_at?: number;
|
|
910
|
+
/**
|
|
911
|
+
* Nested child responses (not validated for performance)
|
|
912
|
+
*/
|
|
913
|
+
responses?: Array<ResponseDto>;
|
|
914
|
+
/**
|
|
915
|
+
* Response options (for multi-select questions, not validated for performance)
|
|
916
|
+
*/
|
|
917
|
+
response_options?: Array<ResponseOptionDto>;
|
|
918
|
+
/**
|
|
919
|
+
* Extra information fields (not validated for performance)
|
|
920
|
+
*/
|
|
921
|
+
extra_infos?: Array<ExtraInfoDto>;
|
|
922
|
+
/**
|
|
923
|
+
* Media attachments directly on response (not validated for performance)
|
|
924
|
+
*/
|
|
925
|
+
media?: Array<MediaDto>;
|
|
926
|
+
};
|
|
927
|
+
type SubmitInspectionDto = {
|
|
928
|
+
/**
|
|
929
|
+
* Inspection public ID (UUID)
|
|
930
|
+
*/
|
|
931
|
+
public_id: string;
|
|
932
|
+
/**
|
|
933
|
+
* BigInt as string. Company ID
|
|
934
|
+
*/
|
|
935
|
+
company_id: string;
|
|
936
|
+
/**
|
|
937
|
+
* BigInt as string. Site ID
|
|
938
|
+
*/
|
|
939
|
+
site_id: string;
|
|
940
|
+
/**
|
|
941
|
+
* Inspection type
|
|
942
|
+
*/
|
|
943
|
+
type: string;
|
|
944
|
+
/**
|
|
945
|
+
* Embedded flag (accepts boolean or 0/1)
|
|
946
|
+
*/
|
|
947
|
+
embedded?: {
|
|
948
|
+
[key: string]: unknown;
|
|
949
|
+
};
|
|
950
|
+
/**
|
|
951
|
+
* Inspection status
|
|
952
|
+
*/
|
|
953
|
+
status: string;
|
|
954
|
+
/**
|
|
955
|
+
* BigInt as string. Checklist ID
|
|
956
|
+
*/
|
|
957
|
+
checklist_id: string;
|
|
958
|
+
/**
|
|
959
|
+
* BigInt as string. User ID
|
|
960
|
+
*/
|
|
961
|
+
user_id: string;
|
|
962
|
+
/**
|
|
963
|
+
* BigInt as string. Asset ID
|
|
964
|
+
*/
|
|
965
|
+
asset_id?: string;
|
|
966
|
+
/**
|
|
967
|
+
* BigInt as string. Subject user ID
|
|
968
|
+
*/
|
|
969
|
+
subject_user_id?: string;
|
|
970
|
+
/**
|
|
971
|
+
* BigInt as string. Device ID
|
|
972
|
+
*/
|
|
973
|
+
device_id?: string;
|
|
974
|
+
/**
|
|
975
|
+
* Started timestamp (Unix epoch in milliseconds)
|
|
976
|
+
*/
|
|
977
|
+
started_at?: number;
|
|
978
|
+
/**
|
|
979
|
+
* Ended timestamp (Unix epoch in milliseconds)
|
|
980
|
+
*/
|
|
981
|
+
ended_at?: number;
|
|
982
|
+
/**
|
|
983
|
+
* Submitted timestamp (Unix epoch in milliseconds)
|
|
984
|
+
*/
|
|
985
|
+
submitted_at?: number;
|
|
986
|
+
/**
|
|
987
|
+
* Duration in seconds
|
|
988
|
+
*/
|
|
989
|
+
duration?: number;
|
|
990
|
+
/**
|
|
991
|
+
* Score
|
|
992
|
+
*/
|
|
993
|
+
score?: number;
|
|
994
|
+
/**
|
|
995
|
+
* Latitude
|
|
996
|
+
*/
|
|
997
|
+
lat?: number;
|
|
998
|
+
/**
|
|
999
|
+
* Longitude
|
|
1000
|
+
*/
|
|
1001
|
+
lng?: number;
|
|
1002
|
+
/**
|
|
1003
|
+
* Completion percentage
|
|
1004
|
+
*/
|
|
1005
|
+
completion_percentage?: number;
|
|
1006
|
+
/**
|
|
1007
|
+
* Asset selection method
|
|
1008
|
+
*/
|
|
1009
|
+
asset_selection_method?: string;
|
|
1010
|
+
/**
|
|
1011
|
+
* App version
|
|
1012
|
+
*/
|
|
1013
|
+
app_version?: string;
|
|
1014
|
+
/**
|
|
1015
|
+
* Connection type
|
|
1016
|
+
*/
|
|
1017
|
+
connection?: string;
|
|
1018
|
+
/**
|
|
1019
|
+
* Non-billing flag
|
|
1020
|
+
*/
|
|
1021
|
+
non_billing?: string;
|
|
1022
|
+
/**
|
|
1023
|
+
* Billing date (Unix epoch in milliseconds)
|
|
1024
|
+
*/
|
|
1025
|
+
billing_date?: number;
|
|
1026
|
+
/**
|
|
1027
|
+
* BigInt as string. Submitted project ID
|
|
1028
|
+
*/
|
|
1029
|
+
submitted_project_id?: string;
|
|
1030
|
+
/**
|
|
1031
|
+
* BigInt as string. Target project ID
|
|
1032
|
+
*/
|
|
1033
|
+
target_project_id?: string;
|
|
1034
|
+
/**
|
|
1035
|
+
* BigInt as string. Project location ID
|
|
1036
|
+
*/
|
|
1037
|
+
project_location_id?: string;
|
|
1038
|
+
/**
|
|
1039
|
+
* Updated timestamp (Unix epoch in seconds)
|
|
1040
|
+
*/
|
|
1041
|
+
updated_at?: number;
|
|
1042
|
+
/**
|
|
1043
|
+
* Deleted timestamp (Unix epoch in seconds)
|
|
1044
|
+
*/
|
|
1045
|
+
deleted_at?: number;
|
|
1046
|
+
/**
|
|
1047
|
+
* Array of responses (nested tree structure)
|
|
1048
|
+
*/
|
|
1049
|
+
responses?: Array<ResponseDto>;
|
|
1050
|
+
/**
|
|
1051
|
+
* BigInt as string. Task ID (optional) - if provided, the task status will be updated to match inspection status
|
|
1052
|
+
*/
|
|
1053
|
+
task_id?: string;
|
|
1054
|
+
};
|
|
1055
|
+
type InspectionResponseDto = {
|
|
1056
|
+
/**
|
|
1057
|
+
* Inspection public ID (UUID)
|
|
1058
|
+
*/
|
|
1059
|
+
inspection_public_id: string;
|
|
1060
|
+
/**
|
|
1061
|
+
* Inspection type
|
|
1062
|
+
*/
|
|
1063
|
+
inspection_type: string;
|
|
1064
|
+
/**
|
|
1065
|
+
* Inspection status
|
|
1066
|
+
*/
|
|
1067
|
+
inspection_status: string;
|
|
1068
|
+
/**
|
|
1069
|
+
* Site public ID (UUID)
|
|
1070
|
+
*/
|
|
1071
|
+
inspection_site_id?: {
|
|
1072
|
+
[key: string]: unknown;
|
|
1073
|
+
};
|
|
1074
|
+
/**
|
|
1075
|
+
* Site name
|
|
1076
|
+
*/
|
|
1077
|
+
inspection_site_name?: {
|
|
1078
|
+
[key: string]: unknown;
|
|
1079
|
+
};
|
|
1080
|
+
/**
|
|
1081
|
+
* Asset public ID (UUID)
|
|
1082
|
+
*/
|
|
1083
|
+
inspection_asset_id?: {
|
|
1084
|
+
[key: string]: unknown;
|
|
1085
|
+
};
|
|
1086
|
+
/**
|
|
1087
|
+
* Asset number
|
|
1088
|
+
*/
|
|
1089
|
+
inspection_asset_number?: {
|
|
1090
|
+
[key: string]: unknown;
|
|
1091
|
+
};
|
|
1092
|
+
/**
|
|
1093
|
+
* Checklist public ID (UUID)
|
|
1094
|
+
*/
|
|
1095
|
+
inspection_checklist_id?: {
|
|
1096
|
+
[key: string]: unknown;
|
|
1097
|
+
};
|
|
1098
|
+
/**
|
|
1099
|
+
* Checklist name
|
|
1100
|
+
*/
|
|
1101
|
+
inspection_checklist_name?: {
|
|
1102
|
+
[key: string]: unknown;
|
|
1103
|
+
};
|
|
1104
|
+
/**
|
|
1105
|
+
* Checklist category public ID (UUID)
|
|
1106
|
+
*/
|
|
1107
|
+
inspection_checklist_category_id?: {
|
|
1108
|
+
[key: string]: unknown;
|
|
1109
|
+
};
|
|
1110
|
+
/**
|
|
1111
|
+
* Checklist category name
|
|
1112
|
+
*/
|
|
1113
|
+
inspection_checklist_category?: {
|
|
1114
|
+
[key: string]: unknown;
|
|
1115
|
+
};
|
|
1116
|
+
/**
|
|
1117
|
+
* Submitted user public ID (UUID)
|
|
1118
|
+
*/
|
|
1119
|
+
inspection_submitted_user_id?: {
|
|
1120
|
+
[key: string]: unknown;
|
|
1121
|
+
};
|
|
1122
|
+
/**
|
|
1123
|
+
* Submitted user full name
|
|
1124
|
+
*/
|
|
1125
|
+
inspection_submitted_user_name?: {
|
|
1126
|
+
[key: string]: unknown;
|
|
1127
|
+
};
|
|
1128
|
+
/**
|
|
1129
|
+
* Subject user public ID (UUID)
|
|
1130
|
+
*/
|
|
1131
|
+
inspection_subject_user_id?: {
|
|
1132
|
+
[key: string]: unknown;
|
|
1133
|
+
};
|
|
1134
|
+
/**
|
|
1135
|
+
* Subject user full name
|
|
1136
|
+
*/
|
|
1137
|
+
inspection_subject_user_name?: {
|
|
1138
|
+
[key: string]: unknown;
|
|
1139
|
+
};
|
|
1140
|
+
/**
|
|
1141
|
+
* Target project ID. Serialized as a string in public API responses (BigInt-safe).
|
|
1142
|
+
*/
|
|
1143
|
+
inspection_target_project_id?: string | null;
|
|
1144
|
+
/**
|
|
1145
|
+
* Device public ID (UUID)
|
|
1146
|
+
*/
|
|
1147
|
+
inspection_device_id?: {
|
|
1148
|
+
[key: string]: unknown;
|
|
1149
|
+
};
|
|
1150
|
+
/**
|
|
1151
|
+
* Device name
|
|
1152
|
+
*/
|
|
1153
|
+
inspection_device_name?: {
|
|
1154
|
+
[key: string]: unknown;
|
|
1155
|
+
};
|
|
1156
|
+
/**
|
|
1157
|
+
* Inspection score
|
|
1158
|
+
*/
|
|
1159
|
+
inspection_score?: {
|
|
1160
|
+
[key: string]: unknown;
|
|
1161
|
+
};
|
|
1162
|
+
/**
|
|
1163
|
+
* Inspection duration in seconds
|
|
1164
|
+
*/
|
|
1165
|
+
inspection_duration?: {
|
|
1166
|
+
[key: string]: unknown;
|
|
1167
|
+
};
|
|
1168
|
+
/**
|
|
1169
|
+
* Completion percentage
|
|
1170
|
+
*/
|
|
1171
|
+
inspection_completion_percentage?: {
|
|
1172
|
+
[key: string]: unknown;
|
|
1173
|
+
};
|
|
1174
|
+
/**
|
|
1175
|
+
* Started at timestamp
|
|
1176
|
+
*/
|
|
1177
|
+
inspection_started_at?: {
|
|
1178
|
+
[key: string]: unknown;
|
|
1179
|
+
};
|
|
1180
|
+
/**
|
|
1181
|
+
* Ended at timestamp
|
|
1182
|
+
*/
|
|
1183
|
+
inspection_ended_at?: {
|
|
1184
|
+
[key: string]: unknown;
|
|
1185
|
+
};
|
|
1186
|
+
/**
|
|
1187
|
+
* Submitted at timestamp
|
|
1188
|
+
*/
|
|
1189
|
+
inspection_submitted_at?: {
|
|
1190
|
+
[key: string]: unknown;
|
|
1191
|
+
};
|
|
1192
|
+
/**
|
|
1193
|
+
* Created at timestamp (date received)
|
|
1194
|
+
*/
|
|
1195
|
+
inspection_created_at: string;
|
|
1196
|
+
/**
|
|
1197
|
+
* Created by user public ID (UUID)
|
|
1198
|
+
*/
|
|
1199
|
+
inspection_created_by_id?: {
|
|
1200
|
+
[key: string]: unknown;
|
|
1201
|
+
};
|
|
1202
|
+
/**
|
|
1203
|
+
* Created by user full name
|
|
1204
|
+
*/
|
|
1205
|
+
inspection_created_by_name?: {
|
|
1206
|
+
[key: string]: unknown;
|
|
1207
|
+
};
|
|
1208
|
+
/**
|
|
1209
|
+
* Updated at timestamp
|
|
1210
|
+
*/
|
|
1211
|
+
inspection_updated_at: string;
|
|
1212
|
+
/**
|
|
1213
|
+
* Updated by user public ID (UUID)
|
|
1214
|
+
*/
|
|
1215
|
+
inspection_updated_by_id?: {
|
|
1216
|
+
[key: string]: unknown;
|
|
1217
|
+
};
|
|
1218
|
+
/**
|
|
1219
|
+
* Updated by user full name
|
|
1220
|
+
*/
|
|
1221
|
+
inspection_updated_by_name?: {
|
|
1222
|
+
[key: string]: unknown;
|
|
1223
|
+
};
|
|
1224
|
+
};
|
|
1225
|
+
type ListInspectionsResponseDto = {
|
|
1226
|
+
/**
|
|
1227
|
+
* List of inspections
|
|
1228
|
+
*/
|
|
1229
|
+
data: Array<InspectionResponseDto>;
|
|
1230
|
+
/**
|
|
1231
|
+
* Current page number
|
|
1232
|
+
*/
|
|
1233
|
+
page: number;
|
|
1234
|
+
/**
|
|
1235
|
+
* Number of results per page
|
|
1236
|
+
*/
|
|
1237
|
+
per_page: number;
|
|
1238
|
+
/**
|
|
1239
|
+
* Total number of results
|
|
1240
|
+
*/
|
|
1241
|
+
total: number;
|
|
1242
|
+
/**
|
|
1243
|
+
* Total number of pages
|
|
1244
|
+
*/
|
|
1245
|
+
total_pages: number;
|
|
1246
|
+
};
|
|
1247
|
+
type IssueHistoryDto = {
|
|
1248
|
+
/**
|
|
1249
|
+
* BigInt as string. Issue history entry ID
|
|
1250
|
+
*/
|
|
1251
|
+
id: string;
|
|
1252
|
+
/**
|
|
1253
|
+
* BigInt as string. Issue ID this history entry belongs to
|
|
1254
|
+
*/
|
|
1255
|
+
issue_id: string;
|
|
1256
|
+
/**
|
|
1257
|
+
* Issue title at the time of change
|
|
1258
|
+
*/
|
|
1259
|
+
title?: {
|
|
1260
|
+
[key: string]: unknown;
|
|
1261
|
+
};
|
|
1262
|
+
/**
|
|
1263
|
+
* Assigned user ID at the time of change
|
|
1264
|
+
*/
|
|
1265
|
+
assigned_user_id?: {
|
|
1266
|
+
[key: string]: unknown;
|
|
1267
|
+
};
|
|
1268
|
+
/**
|
|
1269
|
+
* Assigned group ID at the time of change
|
|
1270
|
+
*/
|
|
1271
|
+
assigned_group_id?: {
|
|
1272
|
+
[key: string]: unknown;
|
|
1273
|
+
};
|
|
1274
|
+
/**
|
|
1275
|
+
* Status at the time of change
|
|
1276
|
+
*/
|
|
1277
|
+
status?: {
|
|
1278
|
+
[key: string]: unknown;
|
|
1279
|
+
};
|
|
1280
|
+
/**
|
|
1281
|
+
* Primary action ID at the time of change
|
|
1282
|
+
*/
|
|
1283
|
+
primary_action_id?: {
|
|
1284
|
+
[key: string]: unknown;
|
|
1285
|
+
};
|
|
1286
|
+
/**
|
|
1287
|
+
* Resolution ID at the time of change
|
|
1288
|
+
*/
|
|
1289
|
+
resolution_id?: {
|
|
1290
|
+
[key: string]: unknown;
|
|
1291
|
+
};
|
|
1292
|
+
/**
|
|
1293
|
+
* Reference text at the time of change
|
|
1294
|
+
*/
|
|
1295
|
+
reference?: {
|
|
1296
|
+
[key: string]: unknown;
|
|
1297
|
+
};
|
|
1298
|
+
/**
|
|
1299
|
+
* Target completion date at the time of change
|
|
1300
|
+
*/
|
|
1301
|
+
target_completion_on?: {
|
|
1302
|
+
[key: string]: unknown;
|
|
1303
|
+
};
|
|
1304
|
+
/**
|
|
1305
|
+
* Note about the change
|
|
1306
|
+
*/
|
|
1307
|
+
note?: {
|
|
1308
|
+
[key: string]: unknown;
|
|
1309
|
+
};
|
|
1310
|
+
/**
|
|
1311
|
+
* Effort spent in minutes
|
|
1312
|
+
*/
|
|
1313
|
+
effort_spent?: {
|
|
1314
|
+
[key: string]: unknown;
|
|
1315
|
+
};
|
|
1316
|
+
/**
|
|
1317
|
+
* Cost incurred
|
|
1318
|
+
*/
|
|
1319
|
+
cost_incurred?: {
|
|
1320
|
+
[key: string]: unknown;
|
|
1321
|
+
};
|
|
1322
|
+
/**
|
|
1323
|
+
* Chargeable cost
|
|
1324
|
+
*/
|
|
1325
|
+
chargeable_cost?: {
|
|
1326
|
+
[key: string]: unknown;
|
|
1327
|
+
};
|
|
1328
|
+
/**
|
|
1329
|
+
* Type of change that occurred
|
|
1330
|
+
*/
|
|
1331
|
+
change_type: string;
|
|
1332
|
+
/**
|
|
1333
|
+
* Timestamp when the change occurred
|
|
1334
|
+
*/
|
|
1335
|
+
changed_at: string;
|
|
1336
|
+
/**
|
|
1337
|
+
* BigInt as string. User ID who made the change
|
|
1338
|
+
*/
|
|
1339
|
+
changed_by_id: string;
|
|
1340
|
+
};
|
|
1341
|
+
type IssueHistoryResponseDto = {
|
|
1342
|
+
/**
|
|
1343
|
+
* Issue public ID
|
|
1344
|
+
*/
|
|
1345
|
+
issue_public_id: string;
|
|
1346
|
+
/**
|
|
1347
|
+
* BigInt as string. Issue internal ID
|
|
1348
|
+
*/
|
|
1349
|
+
issue_id: string;
|
|
1350
|
+
/**
|
|
1351
|
+
* Array of issue history entries
|
|
1352
|
+
*/
|
|
1353
|
+
history: Array<IssueHistoryDto>;
|
|
1354
|
+
};
|
|
1355
|
+
type UpdateIssueDto = {
|
|
1356
|
+
/**
|
|
1357
|
+
* Issue title
|
|
1358
|
+
*/
|
|
1359
|
+
title?: string;
|
|
1360
|
+
/**
|
|
1361
|
+
* BigInt as string. Asset ID
|
|
1362
|
+
*/
|
|
1363
|
+
asset_id?: string;
|
|
1364
|
+
/**
|
|
1365
|
+
* BigInt as string. Assigned user ID
|
|
1366
|
+
*/
|
|
1367
|
+
assigned_user_id?: string;
|
|
1368
|
+
/**
|
|
1369
|
+
* BigInt as string. Assigned group ID
|
|
1370
|
+
*/
|
|
1371
|
+
assigned_group_id?: string;
|
|
1372
|
+
/**
|
|
1373
|
+
* Issue status
|
|
1374
|
+
*/
|
|
1375
|
+
status?: string;
|
|
1376
|
+
/**
|
|
1377
|
+
* BigInt as string. Primary action ID
|
|
1378
|
+
*/
|
|
1379
|
+
primary_action_id?: string;
|
|
1380
|
+
/**
|
|
1381
|
+
* Resolution ID (accepts string or number, will be converted to string)
|
|
1382
|
+
*/
|
|
1383
|
+
resolution_id?: string;
|
|
1384
|
+
/**
|
|
1385
|
+
* Response score
|
|
1386
|
+
*/
|
|
1387
|
+
response_score?: number;
|
|
1388
|
+
/**
|
|
1389
|
+
* Reference text
|
|
1390
|
+
*/
|
|
1391
|
+
reference?: string;
|
|
1392
|
+
/**
|
|
1393
|
+
* Reported at timestamp (Unix epoch in seconds)
|
|
1394
|
+
*/
|
|
1395
|
+
reported_at?: number;
|
|
1396
|
+
/**
|
|
1397
|
+
* First actioned at timestamp (Unix epoch in seconds)
|
|
1398
|
+
*/
|
|
1399
|
+
first_actioned_at?: number;
|
|
1400
|
+
/**
|
|
1401
|
+
* Target completion on timestamp (Unix epoch in seconds)
|
|
1402
|
+
*/
|
|
1403
|
+
target_completion_on?: number;
|
|
1404
|
+
/**
|
|
1405
|
+
* Closed on timestamp (Unix epoch in seconds)
|
|
1406
|
+
*/
|
|
1407
|
+
closed_on?: number;
|
|
1408
|
+
/**
|
|
1409
|
+
* Project ID
|
|
1410
|
+
*/
|
|
1411
|
+
project_id?: string;
|
|
1412
|
+
/**
|
|
1413
|
+
* User public ID (UUID) performing the update
|
|
1414
|
+
*/
|
|
1415
|
+
user_id: string;
|
|
1416
|
+
};
|
|
1417
|
+
type CreateIssueMediaDto = {
|
|
1418
|
+
/**
|
|
1419
|
+
* Media UUID. Auto-generated if not provided.
|
|
1420
|
+
*/
|
|
1421
|
+
public_id?: string;
|
|
1422
|
+
/**
|
|
1423
|
+
* Media type
|
|
1424
|
+
*/
|
|
1425
|
+
type: 'photo' | 'audio' | 'video';
|
|
1426
|
+
/**
|
|
1427
|
+
* S3 path where the file was uploaded
|
|
1428
|
+
*/
|
|
1429
|
+
media_file?: string;
|
|
1430
|
+
/**
|
|
1431
|
+
* JSON metadata (dimensions, duration, etc.)
|
|
1432
|
+
*/
|
|
1433
|
+
media_info?: string;
|
|
1434
|
+
/**
|
|
1435
|
+
* Unix timestamp in seconds when media was captured
|
|
1436
|
+
*/
|
|
1437
|
+
captured_at?: number;
|
|
1438
|
+
/**
|
|
1439
|
+
* Whether the file upload to S3 is complete
|
|
1440
|
+
*/
|
|
1441
|
+
uploaded?: boolean;
|
|
1442
|
+
/**
|
|
1443
|
+
* BigInt as string. Link to specific issue_history record
|
|
1444
|
+
*/
|
|
1445
|
+
issue_history_id?: string;
|
|
1446
|
+
};
|
|
1447
|
+
type IssueMediaResponseDto = {
|
|
1448
|
+
/**
|
|
1449
|
+
* Whether the operation was successful
|
|
1450
|
+
*/
|
|
1451
|
+
success: boolean;
|
|
1452
|
+
/**
|
|
1453
|
+
* BigInt as string. Database ID of the created issue media record
|
|
1454
|
+
*/
|
|
1455
|
+
issue_media_id: string;
|
|
1456
|
+
/**
|
|
1457
|
+
* Public UUID of the issue media
|
|
1458
|
+
*/
|
|
1459
|
+
public_id: string;
|
|
1460
|
+
};
|
|
1461
|
+
type IssueResponseDto = {
|
|
1462
|
+
/**
|
|
1463
|
+
* Issue public ID (UUID)
|
|
1464
|
+
*/
|
|
1465
|
+
issue_public_id: string;
|
|
1466
|
+
/**
|
|
1467
|
+
* Issue number
|
|
1468
|
+
*/
|
|
1469
|
+
issue_number: string;
|
|
1470
|
+
/**
|
|
1471
|
+
* Asset internal ID
|
|
1472
|
+
*/
|
|
1473
|
+
issue_asset_id?: {
|
|
1474
|
+
[key: string]: unknown;
|
|
1475
|
+
};
|
|
1476
|
+
/**
|
|
1477
|
+
* Asset number
|
|
1478
|
+
*/
|
|
1479
|
+
issue_asset_number?: {
|
|
1480
|
+
[key: string]: unknown;
|
|
1481
|
+
};
|
|
1482
|
+
/**
|
|
1483
|
+
* Asset class name
|
|
1484
|
+
*/
|
|
1485
|
+
issue_asset_class?: {
|
|
1486
|
+
[key: string]: unknown;
|
|
1487
|
+
};
|
|
1488
|
+
/**
|
|
1489
|
+
* Asset sub-class name
|
|
1490
|
+
*/
|
|
1491
|
+
issue_asset_sub_class?: {
|
|
1492
|
+
[key: string]: unknown;
|
|
1493
|
+
};
|
|
1494
|
+
/**
|
|
1495
|
+
* Asset category name
|
|
1496
|
+
*/
|
|
1497
|
+
issue_asset_category?: {
|
|
1498
|
+
[key: string]: unknown;
|
|
1499
|
+
};
|
|
1500
|
+
/**
|
|
1501
|
+
* Inspection name
|
|
1502
|
+
*/
|
|
1503
|
+
issue_inspection_name?: {
|
|
1504
|
+
[key: string]: unknown;
|
|
1505
|
+
};
|
|
1506
|
+
/**
|
|
1507
|
+
* Checklist category
|
|
1508
|
+
*/
|
|
1509
|
+
issue_inspection_category?: {
|
|
1510
|
+
[key: string]: unknown;
|
|
1511
|
+
};
|
|
1512
|
+
/**
|
|
1513
|
+
* Question title
|
|
1514
|
+
*/
|
|
1515
|
+
issues_question_title?: {
|
|
1516
|
+
[key: string]: unknown;
|
|
1517
|
+
};
|
|
1518
|
+
/**
|
|
1519
|
+
* Issue title
|
|
1520
|
+
*/
|
|
1521
|
+
issue_title: string;
|
|
1522
|
+
/**
|
|
1523
|
+
* Assignee user ID
|
|
1524
|
+
*/
|
|
1525
|
+
issue_assignee_id?: {
|
|
1526
|
+
[key: string]: unknown;
|
|
1527
|
+
};
|
|
1528
|
+
/**
|
|
1529
|
+
* Assignee full name
|
|
1530
|
+
*/
|
|
1531
|
+
issue_assignee?: {
|
|
1532
|
+
[key: string]: unknown;
|
|
1533
|
+
};
|
|
1534
|
+
/**
|
|
1535
|
+
* Assigned group ID
|
|
1536
|
+
*/
|
|
1537
|
+
issue_assigned_group_id?: {
|
|
1538
|
+
[key: string]: unknown;
|
|
1539
|
+
};
|
|
1540
|
+
/**
|
|
1541
|
+
* Assigned group name
|
|
1542
|
+
*/
|
|
1543
|
+
issue_assigned_group?: {
|
|
1544
|
+
[key: string]: unknown;
|
|
1545
|
+
};
|
|
1546
|
+
/**
|
|
1547
|
+
* Reported at timestamp
|
|
1548
|
+
*/
|
|
1549
|
+
issue_reported_at?: {
|
|
1550
|
+
[key: string]: unknown;
|
|
1551
|
+
};
|
|
1552
|
+
/**
|
|
1553
|
+
* Reference
|
|
1554
|
+
*/
|
|
1555
|
+
issue_reference?: {
|
|
1556
|
+
[key: string]: unknown;
|
|
1557
|
+
};
|
|
1558
|
+
/**
|
|
1559
|
+
* Issue status
|
|
1560
|
+
*/
|
|
1561
|
+
issue_status: string;
|
|
1562
|
+
/**
|
|
1563
|
+
* Primary action ID
|
|
1564
|
+
*/
|
|
1565
|
+
issue_primary_action_id?: {
|
|
1566
|
+
[key: string]: unknown;
|
|
1567
|
+
};
|
|
1568
|
+
/**
|
|
1569
|
+
* Primary action name
|
|
1570
|
+
*/
|
|
1571
|
+
issue_primary_action?: {
|
|
1572
|
+
[key: string]: unknown;
|
|
1573
|
+
};
|
|
1574
|
+
/**
|
|
1575
|
+
* Response score
|
|
1576
|
+
*/
|
|
1577
|
+
issue_score?: {
|
|
1578
|
+
[key: string]: unknown;
|
|
1579
|
+
};
|
|
1580
|
+
/**
|
|
1581
|
+
* Resolution ID
|
|
1582
|
+
*/
|
|
1583
|
+
issue_resolution_id?: {
|
|
1584
|
+
[key: string]: unknown;
|
|
1585
|
+
};
|
|
1586
|
+
/**
|
|
1587
|
+
* Resolution reason
|
|
1588
|
+
*/
|
|
1589
|
+
issue_resolution_reason?: {
|
|
1590
|
+
[key: string]: unknown;
|
|
1591
|
+
};
|
|
1592
|
+
/**
|
|
1593
|
+
* First actioned at timestamp
|
|
1594
|
+
*/
|
|
1595
|
+
issue_first_actioned_at?: {
|
|
1596
|
+
[key: string]: unknown;
|
|
1597
|
+
};
|
|
1598
|
+
/**
|
|
1599
|
+
* Target completion date
|
|
1600
|
+
*/
|
|
1601
|
+
issue_target_completion_date?: {
|
|
1602
|
+
[key: string]: unknown;
|
|
1603
|
+
};
|
|
1604
|
+
/**
|
|
1605
|
+
* Closed at timestamp
|
|
1606
|
+
*/
|
|
1607
|
+
issue_closed_at?: {
|
|
1608
|
+
[key: string]: unknown;
|
|
1609
|
+
};
|
|
1610
|
+
/**
|
|
1611
|
+
* Response status
|
|
1612
|
+
*/
|
|
1613
|
+
response_status?: {
|
|
1614
|
+
[key: string]: unknown;
|
|
1615
|
+
};
|
|
1616
|
+
/**
|
|
1617
|
+
* Created at timestamp
|
|
1618
|
+
*/
|
|
1619
|
+
issue_created_at: string;
|
|
1620
|
+
/**
|
|
1621
|
+
* Created by user public ID (UUID)
|
|
1622
|
+
*/
|
|
1623
|
+
issue_created_by_id: string;
|
|
1624
|
+
/**
|
|
1625
|
+
* Created by user full name
|
|
1626
|
+
*/
|
|
1627
|
+
issue_created_by?: {
|
|
1628
|
+
[key: string]: unknown;
|
|
1629
|
+
};
|
|
1630
|
+
/**
|
|
1631
|
+
* Modified at timestamp
|
|
1632
|
+
*/
|
|
1633
|
+
issue_modified_at: string;
|
|
1634
|
+
/**
|
|
1635
|
+
* Modified by user public ID (UUID)
|
|
1636
|
+
*/
|
|
1637
|
+
issue_modified_by_id: string;
|
|
1638
|
+
/**
|
|
1639
|
+
* Modified by user full name
|
|
1640
|
+
*/
|
|
1641
|
+
issue_modified_by?: {
|
|
1642
|
+
[key: string]: unknown;
|
|
1643
|
+
};
|
|
1644
|
+
};
|
|
1645
|
+
type ListIssuesResponseDto = {
|
|
1646
|
+
/**
|
|
1647
|
+
* List of issues
|
|
1648
|
+
*/
|
|
1649
|
+
data: Array<IssueResponseDto>;
|
|
1650
|
+
/**
|
|
1651
|
+
* Current page number
|
|
1652
|
+
*/
|
|
1653
|
+
page: number;
|
|
1654
|
+
/**
|
|
1655
|
+
* Number of results per page
|
|
1656
|
+
*/
|
|
1657
|
+
per_page: number;
|
|
1658
|
+
/**
|
|
1659
|
+
* Total number of results
|
|
1660
|
+
*/
|
|
1661
|
+
total: number;
|
|
1662
|
+
/**
|
|
1663
|
+
* Total number of pages
|
|
1664
|
+
*/
|
|
1665
|
+
total_pages: number;
|
|
1666
|
+
};
|
|
1667
|
+
type UpdateUserPropertyDto = {
|
|
1668
|
+
/**
|
|
1669
|
+
* Property value (can be string, number, or date depending on property type)
|
|
1670
|
+
*/
|
|
1671
|
+
value: {
|
|
1672
|
+
[key: string]: unknown;
|
|
1673
|
+
};
|
|
1674
|
+
};
|
|
1675
|
+
type UserPropertyResponseDto = {
|
|
1676
|
+
/**
|
|
1677
|
+
* User property ID. Serialized as a string in public API responses (BigInt-safe).
|
|
1678
|
+
*/
|
|
1679
|
+
id: string;
|
|
1680
|
+
/**
|
|
1681
|
+
* User ID. Serialized as a string in public API responses (BigInt-safe).
|
|
1682
|
+
*/
|
|
1683
|
+
user_id: string;
|
|
1684
|
+
/**
|
|
1685
|
+
* Property ID (config item ID). Serialized as a string in public API responses (BigInt-safe).
|
|
1686
|
+
*/
|
|
1687
|
+
property_id: string;
|
|
1688
|
+
/**
|
|
1689
|
+
* Text value (if property type is Text, Email, or Phone)
|
|
1690
|
+
*/
|
|
1691
|
+
text_value: {
|
|
1692
|
+
[key: string]: unknown;
|
|
1693
|
+
} | null;
|
|
1694
|
+
/**
|
|
1695
|
+
* Numeric value (if property type is Decimal)
|
|
1696
|
+
*/
|
|
1697
|
+
numeric_value: {
|
|
1698
|
+
[key: string]: unknown;
|
|
1699
|
+
} | null;
|
|
1700
|
+
/**
|
|
1701
|
+
* Date value (if property type is Date)
|
|
1702
|
+
*/
|
|
1703
|
+
date_value: {
|
|
1704
|
+
[key: string]: unknown;
|
|
1705
|
+
} | null;
|
|
1706
|
+
/**
|
|
1707
|
+
* Update method
|
|
1708
|
+
*/
|
|
1709
|
+
update_method: {
|
|
1710
|
+
[key: string]: unknown;
|
|
1711
|
+
} | null;
|
|
1712
|
+
/**
|
|
1713
|
+
* Created timestamp
|
|
1714
|
+
*/
|
|
1715
|
+
created_at: string;
|
|
1716
|
+
/**
|
|
1717
|
+
* Updated timestamp
|
|
1718
|
+
*/
|
|
1719
|
+
updated_at: string;
|
|
1720
|
+
};
|
|
1721
|
+
type DeleteUserPropertyResponseDto = {
|
|
1722
|
+
/**
|
|
1723
|
+
* Success message
|
|
1724
|
+
*/
|
|
1725
|
+
message: string;
|
|
1726
|
+
/**
|
|
1727
|
+
* Deleted user property ID. Serialized as a string in public API responses (BigInt-safe).
|
|
1728
|
+
*/
|
|
1729
|
+
id: string;
|
|
1730
|
+
};
|
|
1731
|
+
type UpdateAssetPropertyDto = {
|
|
1732
|
+
/**
|
|
1733
|
+
* Property value (can be string, number, or date depending on property type)
|
|
1734
|
+
*/
|
|
1735
|
+
value: {
|
|
1736
|
+
[key: string]: unknown;
|
|
1737
|
+
};
|
|
1738
|
+
};
|
|
1739
|
+
type AssetPropertyResponseDto = {
|
|
1740
|
+
/**
|
|
1741
|
+
* Asset property ID. Serialized as a string in public API responses (BigInt-safe).
|
|
1742
|
+
*/
|
|
1743
|
+
id: string;
|
|
1744
|
+
/**
|
|
1745
|
+
* Asset ID. Serialized as a string in public API responses (BigInt-safe).
|
|
1746
|
+
*/
|
|
1747
|
+
asset_id: string;
|
|
1748
|
+
/**
|
|
1749
|
+
* Property ID (config item ID). Serialized as a string in public API responses (BigInt-safe).
|
|
1750
|
+
*/
|
|
1751
|
+
property_id: string;
|
|
1752
|
+
/**
|
|
1753
|
+
* Text value (if property type is Text, Email, or Phone)
|
|
1754
|
+
*/
|
|
1755
|
+
text_value: {
|
|
1756
|
+
[key: string]: unknown;
|
|
1757
|
+
} | null;
|
|
1758
|
+
/**
|
|
1759
|
+
* Numeric value (if property type is Decimal)
|
|
1760
|
+
*/
|
|
1761
|
+
numeric_value: {
|
|
1762
|
+
[key: string]: unknown;
|
|
1763
|
+
} | null;
|
|
1764
|
+
/**
|
|
1765
|
+
* Date value (if property type is Date)
|
|
1766
|
+
*/
|
|
1767
|
+
date_value: {
|
|
1768
|
+
[key: string]: unknown;
|
|
1769
|
+
} | null;
|
|
1770
|
+
/**
|
|
1771
|
+
* Update method
|
|
1772
|
+
*/
|
|
1773
|
+
update_method: {
|
|
1774
|
+
[key: string]: unknown;
|
|
1775
|
+
} | null;
|
|
1776
|
+
/**
|
|
1777
|
+
* Created timestamp
|
|
1778
|
+
*/
|
|
1779
|
+
created_at: string;
|
|
1780
|
+
/**
|
|
1781
|
+
* Updated timestamp
|
|
1782
|
+
*/
|
|
1783
|
+
updated_at: string;
|
|
1784
|
+
};
|
|
1785
|
+
type DeleteAssetPropertyResponseDto = {
|
|
1786
|
+
/**
|
|
1787
|
+
* Success message
|
|
1788
|
+
*/
|
|
1789
|
+
message: string;
|
|
1790
|
+
/**
|
|
1791
|
+
* Deleted asset property ID. Serialized as a string in public API responses (BigInt-safe).
|
|
1792
|
+
*/
|
|
1793
|
+
id: string;
|
|
1794
|
+
};
|
|
1795
|
+
type AssetClassResponseDto = {
|
|
1796
|
+
/**
|
|
1797
|
+
* Asset class public ID (UUID)
|
|
1798
|
+
*/
|
|
1799
|
+
public_id: string;
|
|
1800
|
+
/**
|
|
1801
|
+
* Asset class name (make)
|
|
1802
|
+
*/
|
|
1803
|
+
asset_class: string;
|
|
1804
|
+
/**
|
|
1805
|
+
* Asset sub-class name (model)
|
|
1806
|
+
*/
|
|
1807
|
+
asset_sub_class?: {
|
|
1808
|
+
[key: string]: unknown;
|
|
1809
|
+
};
|
|
1810
|
+
/**
|
|
1811
|
+
* Asset category ID. Serialized as a string in public API responses (BigInt-safe).
|
|
1812
|
+
*/
|
|
1813
|
+
asset_category_id?: string | null;
|
|
1814
|
+
/**
|
|
1815
|
+
* Asset category name
|
|
1816
|
+
*/
|
|
1817
|
+
asset_category_name?: {
|
|
1818
|
+
[key: string]: unknown;
|
|
1819
|
+
};
|
|
1820
|
+
/**
|
|
1821
|
+
* Asset class photo file path
|
|
1822
|
+
*/
|
|
1823
|
+
asset_class_photo_file?: {
|
|
1824
|
+
[key: string]: unknown;
|
|
1825
|
+
};
|
|
1826
|
+
/**
|
|
1827
|
+
* Asset class photo info
|
|
1828
|
+
*/
|
|
1829
|
+
asset_class_photo_info?: {
|
|
1830
|
+
[key: string]: unknown;
|
|
1831
|
+
};
|
|
1832
|
+
/**
|
|
1833
|
+
* Whether on-the-fly creation is enabled
|
|
1834
|
+
*/
|
|
1835
|
+
on_the_fly_enabled: boolean;
|
|
1836
|
+
/**
|
|
1837
|
+
* Creation timestamp
|
|
1838
|
+
*/
|
|
1839
|
+
created_at: string;
|
|
1840
|
+
/**
|
|
1841
|
+
* Created by user public ID
|
|
1842
|
+
*/
|
|
1843
|
+
created_by_id: string;
|
|
1844
|
+
/**
|
|
1845
|
+
* Created by user name
|
|
1846
|
+
*/
|
|
1847
|
+
created_by_name?: {
|
|
1848
|
+
[key: string]: unknown;
|
|
1849
|
+
};
|
|
1850
|
+
/**
|
|
1851
|
+
* Last update timestamp
|
|
1852
|
+
*/
|
|
1853
|
+
updated_at: string;
|
|
1854
|
+
/**
|
|
1855
|
+
* Updated by user public ID
|
|
1856
|
+
*/
|
|
1857
|
+
updated_by_id: string;
|
|
1858
|
+
/**
|
|
1859
|
+
* Updated by user name
|
|
1860
|
+
*/
|
|
1861
|
+
updated_by_name?: {
|
|
1862
|
+
[key: string]: unknown;
|
|
1863
|
+
};
|
|
1864
|
+
};
|
|
1865
|
+
type AssetClassListResponseDto = {
|
|
1866
|
+
/**
|
|
1867
|
+
* List of asset classes
|
|
1868
|
+
*/
|
|
1869
|
+
data: Array<AssetClassResponseDto>;
|
|
1870
|
+
/**
|
|
1871
|
+
* Total number of records
|
|
1872
|
+
*/
|
|
1873
|
+
total: number;
|
|
1874
|
+
/**
|
|
1875
|
+
* Current page number
|
|
1876
|
+
*/
|
|
1877
|
+
page: number;
|
|
1878
|
+
/**
|
|
1879
|
+
* Items per page
|
|
1880
|
+
*/
|
|
1881
|
+
per_page: number;
|
|
1882
|
+
/**
|
|
1883
|
+
* Total number of pages
|
|
1884
|
+
*/
|
|
1885
|
+
total_pages: number;
|
|
1886
|
+
};
|
|
1887
|
+
type CreateAssetClassDto = {
|
|
1888
|
+
/**
|
|
1889
|
+
* Asset class name (make)
|
|
1890
|
+
*/
|
|
1891
|
+
asset_class: string;
|
|
1892
|
+
/**
|
|
1893
|
+
* Asset sub-class name (model)
|
|
1894
|
+
*/
|
|
1895
|
+
asset_sub_class?: string;
|
|
1896
|
+
/**
|
|
1897
|
+
* BigInt as string. Asset category ID (from config_items table)
|
|
1898
|
+
*/
|
|
1899
|
+
asset_category_id?: string;
|
|
1900
|
+
/**
|
|
1901
|
+
* Asset class photo file path
|
|
1902
|
+
*/
|
|
1903
|
+
asset_class_photo_file?: string;
|
|
1904
|
+
/**
|
|
1905
|
+
* Asset class photo info (JSON string)
|
|
1906
|
+
*/
|
|
1907
|
+
asset_class_photo_info?: string;
|
|
1908
|
+
/**
|
|
1909
|
+
* Whether on-the-fly creation is enabled
|
|
1910
|
+
*/
|
|
1911
|
+
on_the_fly_enabled?: boolean;
|
|
1912
|
+
};
|
|
1913
|
+
type UpdateAssetClassDto = {
|
|
1914
|
+
/**
|
|
1915
|
+
* Asset class name (make)
|
|
1916
|
+
*/
|
|
1917
|
+
asset_class?: string;
|
|
1918
|
+
/**
|
|
1919
|
+
* Asset sub-class name (model)
|
|
1920
|
+
*/
|
|
1921
|
+
asset_sub_class?: string;
|
|
1922
|
+
/**
|
|
1923
|
+
* BigInt as string. Asset category ID (from config_items table)
|
|
1924
|
+
*/
|
|
1925
|
+
asset_category_id?: string;
|
|
1926
|
+
/**
|
|
1927
|
+
* Asset class photo file path
|
|
1928
|
+
*/
|
|
1929
|
+
asset_class_photo_file?: string;
|
|
1930
|
+
/**
|
|
1931
|
+
* Asset class photo info (JSON string)
|
|
1932
|
+
*/
|
|
1933
|
+
asset_class_photo_info?: string;
|
|
1934
|
+
/**
|
|
1935
|
+
* Whether on-the-fly creation is enabled
|
|
1936
|
+
*/
|
|
1937
|
+
on_the_fly_enabled?: boolean;
|
|
1938
|
+
};
|
|
1939
|
+
type SiteResponseDto = {
|
|
1940
|
+
/**
|
|
1941
|
+
* Site public ID (UUID)
|
|
1942
|
+
*/
|
|
1943
|
+
site_public_id: string;
|
|
1944
|
+
/**
|
|
1945
|
+
* Site name
|
|
1946
|
+
*/
|
|
1947
|
+
site_name: string;
|
|
1948
|
+
/**
|
|
1949
|
+
* Base language
|
|
1950
|
+
*/
|
|
1951
|
+
site_base_language: string;
|
|
1952
|
+
/**
|
|
1953
|
+
* Logo file path
|
|
1954
|
+
*/
|
|
1955
|
+
site_logo_file?: {
|
|
1956
|
+
[key: string]: unknown;
|
|
1957
|
+
};
|
|
1958
|
+
/**
|
|
1959
|
+
* Site category name
|
|
1960
|
+
*/
|
|
1961
|
+
site_category?: {
|
|
1962
|
+
[key: string]: unknown;
|
|
1963
|
+
};
|
|
1964
|
+
/**
|
|
1965
|
+
* Site category ID. Serialized as a string in public API responses (BigInt-safe).
|
|
1966
|
+
*/
|
|
1967
|
+
site_category_id?: string | null;
|
|
1968
|
+
/**
|
|
1969
|
+
* Asset selection method
|
|
1970
|
+
*/
|
|
1971
|
+
site_asset_selection_method: string;
|
|
1972
|
+
/**
|
|
1973
|
+
* Asset affix
|
|
1974
|
+
*/
|
|
1975
|
+
site_asset_affix?: {
|
|
1976
|
+
[key: string]: unknown;
|
|
1977
|
+
};
|
|
1978
|
+
/**
|
|
1979
|
+
* Asset affix position
|
|
1980
|
+
*/
|
|
1981
|
+
site_asset_affix_position?: {
|
|
1982
|
+
[key: string]: unknown;
|
|
1983
|
+
};
|
|
1984
|
+
/**
|
|
1985
|
+
* Created at timestamp
|
|
1986
|
+
*/
|
|
1987
|
+
site_created_at: string;
|
|
1988
|
+
/**
|
|
1989
|
+
* Created by user public ID
|
|
1990
|
+
*/
|
|
1991
|
+
site_created_by: string;
|
|
1992
|
+
/**
|
|
1993
|
+
* Created by user name
|
|
1994
|
+
*/
|
|
1995
|
+
site_created_by_name?: {
|
|
1996
|
+
[key: string]: unknown;
|
|
1997
|
+
};
|
|
1998
|
+
/**
|
|
1999
|
+
* Updated at timestamp
|
|
2000
|
+
*/
|
|
2001
|
+
site_updated_at: string;
|
|
2002
|
+
/**
|
|
2003
|
+
* Updated by user public ID
|
|
2004
|
+
*/
|
|
2005
|
+
site_updated_by: string;
|
|
2006
|
+
/**
|
|
2007
|
+
* Updated by user name
|
|
2008
|
+
*/
|
|
2009
|
+
site_updated_by_name?: {
|
|
2010
|
+
[key: string]: unknown;
|
|
2011
|
+
};
|
|
2012
|
+
};
|
|
2013
|
+
type ListSitesResponseDto = {
|
|
2014
|
+
/**
|
|
2015
|
+
* List of sites
|
|
2016
|
+
*/
|
|
2017
|
+
data: Array<SiteResponseDto>;
|
|
2018
|
+
/**
|
|
2019
|
+
* Total number of sites
|
|
2020
|
+
*/
|
|
2021
|
+
total: number;
|
|
2022
|
+
/**
|
|
2023
|
+
* Current page
|
|
2024
|
+
*/
|
|
2025
|
+
page: number;
|
|
2026
|
+
/**
|
|
2027
|
+
* Items per page
|
|
2028
|
+
*/
|
|
2029
|
+
per_page: number;
|
|
2030
|
+
/**
|
|
2031
|
+
* Total number of pages
|
|
2032
|
+
*/
|
|
2033
|
+
total_pages: number;
|
|
2034
|
+
};
|
|
2035
|
+
type CreateSiteDto = {
|
|
2036
|
+
/**
|
|
2037
|
+
* Site name
|
|
2038
|
+
*/
|
|
2039
|
+
name: string;
|
|
2040
|
+
/**
|
|
2041
|
+
* Base language for the site
|
|
2042
|
+
*/
|
|
2043
|
+
base_language?: string;
|
|
2044
|
+
/**
|
|
2045
|
+
* BigInt as string. Site category ID (config_items.id)
|
|
2046
|
+
*/
|
|
2047
|
+
category_id?: string;
|
|
2048
|
+
/**
|
|
2049
|
+
* Asset selection method
|
|
2050
|
+
*/
|
|
2051
|
+
asset_selection_method?: string;
|
|
2052
|
+
/**
|
|
2053
|
+
* Asset affix
|
|
2054
|
+
*/
|
|
2055
|
+
asset_affix?: string;
|
|
2056
|
+
/**
|
|
2057
|
+
* Asset affix position (prefix or suffix)
|
|
2058
|
+
*/
|
|
2059
|
+
asset_affix_position?: string;
|
|
2060
|
+
/**
|
|
2061
|
+
* Public ID (UUID) - if not provided, will be generated
|
|
2062
|
+
*/
|
|
2063
|
+
public_id?: string;
|
|
2064
|
+
};
|
|
2065
|
+
type UpdateSiteDto = {
|
|
2066
|
+
/**
|
|
2067
|
+
* Site name
|
|
2068
|
+
*/
|
|
2069
|
+
name?: string;
|
|
2070
|
+
/**
|
|
2071
|
+
* Base language for the site
|
|
2072
|
+
*/
|
|
2073
|
+
base_language?: string;
|
|
2074
|
+
/**
|
|
2075
|
+
* BigInt as string. Site category ID (config_items.id)
|
|
2076
|
+
*/
|
|
2077
|
+
category_id?: string;
|
|
2078
|
+
/**
|
|
2079
|
+
* Asset selection method
|
|
2080
|
+
*/
|
|
2081
|
+
asset_selection_method?: string;
|
|
2082
|
+
/**
|
|
2083
|
+
* Asset affix
|
|
2084
|
+
*/
|
|
2085
|
+
asset_affix?: string;
|
|
2086
|
+
/**
|
|
2087
|
+
* Asset affix position (prefix or suffix)
|
|
2088
|
+
*/
|
|
2089
|
+
asset_affix_position?: string;
|
|
2090
|
+
};
|
|
2091
|
+
type DeleteSiteResponseDto = {
|
|
2092
|
+
/**
|
|
2093
|
+
* Success message
|
|
2094
|
+
*/
|
|
2095
|
+
message: string;
|
|
2096
|
+
/**
|
|
2097
|
+
* Deleted site public ID
|
|
2098
|
+
*/
|
|
2099
|
+
site_public_id: string;
|
|
2100
|
+
};
|
|
2101
|
+
type AssetControllerCreateAssetPublicData = {
|
|
2102
|
+
/**
|
|
2103
|
+
* Asset creation data with entity public IDs
|
|
2104
|
+
*/
|
|
2105
|
+
body: PublicCreateAssetDto;
|
|
2106
|
+
headers?: {
|
|
2107
|
+
/**
|
|
2108
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
2109
|
+
*/
|
|
2110
|
+
'Idempotency-Key'?: string;
|
|
2111
|
+
};
|
|
2112
|
+
path?: never;
|
|
2113
|
+
query?: never;
|
|
2114
|
+
url: '/api/v1/public/asset';
|
|
2115
|
+
};
|
|
2116
|
+
type AssetControllerCreateAssetPublicErrors = {
|
|
2117
|
+
/**
|
|
2118
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
2119
|
+
*/
|
|
2120
|
+
400: ApiErrorResponse;
|
|
2121
|
+
/**
|
|
2122
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
2123
|
+
*/
|
|
2124
|
+
401: ApiErrorResponse;
|
|
2125
|
+
/**
|
|
2126
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
2127
|
+
*/
|
|
2128
|
+
403: ApiErrorResponse;
|
|
2129
|
+
/**
|
|
2130
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
2131
|
+
*/
|
|
2132
|
+
404: ApiErrorResponse;
|
|
2133
|
+
/**
|
|
2134
|
+
* The request conflicts with current state. Common cases: a unique business identifier already exists (`conflict`), or an `Idempotency-Key` was reused with a different request body (`idempotency_key_conflict`).
|
|
2135
|
+
*/
|
|
2136
|
+
409: ApiErrorResponse;
|
|
2137
|
+
/**
|
|
2138
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
2139
|
+
*/
|
|
2140
|
+
429: ApiErrorResponse;
|
|
2141
|
+
/**
|
|
2142
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
2143
|
+
*/
|
|
2144
|
+
500: ApiErrorResponse;
|
|
2145
|
+
};
|
|
2146
|
+
type AssetControllerCreateAssetPublicError = AssetControllerCreateAssetPublicErrors[keyof AssetControllerCreateAssetPublicErrors];
|
|
2147
|
+
type AssetControllerCreateAssetPublicResponses = {
|
|
2148
|
+
/**
|
|
2149
|
+
* Asset successfully created
|
|
2150
|
+
*/
|
|
2151
|
+
201: {
|
|
2152
|
+
id?: string;
|
|
2153
|
+
publicId?: string;
|
|
2154
|
+
assetNumber?: string;
|
|
2155
|
+
assetClassId?: string;
|
|
2156
|
+
siteId?: string;
|
|
2157
|
+
companyId?: string;
|
|
2158
|
+
assetPhotoFile?: string | null;
|
|
2159
|
+
assetPhotoInfo?: string | null;
|
|
2160
|
+
lat?: number | null;
|
|
2161
|
+
lng?: number | null;
|
|
2162
|
+
createdById?: string;
|
|
2163
|
+
updatedById?: string;
|
|
2164
|
+
createdAt?: string;
|
|
2165
|
+
updatedAt?: string;
|
|
2166
|
+
deletedAt?: string | null;
|
|
2167
|
+
deletedById?: string | null;
|
|
2168
|
+
};
|
|
2169
|
+
};
|
|
2170
|
+
type AssetControllerCreateAssetPublicResponse = AssetControllerCreateAssetPublicResponses[keyof AssetControllerCreateAssetPublicResponses];
|
|
2171
|
+
type AssetControllerListAssetsData = {
|
|
2172
|
+
body?: never;
|
|
2173
|
+
path?: never;
|
|
2174
|
+
query?: {
|
|
2175
|
+
/**
|
|
2176
|
+
* Page number (1-indexed)
|
|
2177
|
+
*/
|
|
2178
|
+
page?: number;
|
|
2179
|
+
/**
|
|
2180
|
+
* Number of items per page
|
|
2181
|
+
*/
|
|
2182
|
+
per_page?: number;
|
|
2183
|
+
/**
|
|
2184
|
+
* Field to sort by
|
|
2185
|
+
*/
|
|
2186
|
+
sort_by?: 'id' | 'asset_number' | 'created_at' | 'updated_at' | 'lat' | 'lng' | 'company_id' | 'site_id' | 'asset_class_id';
|
|
2187
|
+
/**
|
|
2188
|
+
* Sort direction
|
|
2189
|
+
*/
|
|
2190
|
+
direction?: 'asc' | 'desc';
|
|
2191
|
+
/**
|
|
2192
|
+
* Filter by user public_id who created the asset
|
|
2193
|
+
*/
|
|
2194
|
+
created_by?: string;
|
|
2195
|
+
/**
|
|
2196
|
+
* Filter by creation date (ISO 8601 format)
|
|
2197
|
+
*/
|
|
2198
|
+
created_at?: string;
|
|
2199
|
+
/**
|
|
2200
|
+
* Filter by asset number (exact match)
|
|
2201
|
+
*/
|
|
2202
|
+
asset_number?: string;
|
|
2203
|
+
/**
|
|
2204
|
+
* Filter by asset class name
|
|
2205
|
+
*/
|
|
2206
|
+
asset_class_name?: string;
|
|
2207
|
+
/**
|
|
2208
|
+
* Filter by site name
|
|
2209
|
+
*/
|
|
2210
|
+
site_name?: string;
|
|
2211
|
+
};
|
|
2212
|
+
url: '/api/v1/asset/list';
|
|
2213
|
+
};
|
|
2214
|
+
type AssetControllerListAssetsErrors = {
|
|
2215
|
+
/**
|
|
2216
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
2217
|
+
*/
|
|
2218
|
+
400: ApiErrorResponse;
|
|
2219
|
+
/**
|
|
2220
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
2221
|
+
*/
|
|
2222
|
+
401: ApiErrorResponse;
|
|
2223
|
+
/**
|
|
2224
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
2225
|
+
*/
|
|
2226
|
+
403: ApiErrorResponse;
|
|
2227
|
+
/**
|
|
2228
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
2229
|
+
*/
|
|
2230
|
+
429: ApiErrorResponse;
|
|
2231
|
+
/**
|
|
2232
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
2233
|
+
*/
|
|
2234
|
+
500: ApiErrorResponse;
|
|
2235
|
+
};
|
|
2236
|
+
type AssetControllerListAssetsError = AssetControllerListAssetsErrors[keyof AssetControllerListAssetsErrors];
|
|
2237
|
+
type AssetControllerListAssetsResponses = {
|
|
2238
|
+
/**
|
|
2239
|
+
* List of assets
|
|
2240
|
+
*/
|
|
2241
|
+
200: {
|
|
2242
|
+
data?: Array<{
|
|
2243
|
+
id?: string;
|
|
2244
|
+
publicId?: string;
|
|
2245
|
+
assetNumber?: string;
|
|
2246
|
+
assetClassId?: string;
|
|
2247
|
+
siteId?: string;
|
|
2248
|
+
companyId?: string;
|
|
2249
|
+
assetPhotoFile?: string | null;
|
|
2250
|
+
assetPhotoInfo?: string | null;
|
|
2251
|
+
lat?: number | null;
|
|
2252
|
+
lng?: number | null;
|
|
2253
|
+
createdById?: string;
|
|
2254
|
+
updatedById?: string;
|
|
2255
|
+
createdAt?: string;
|
|
2256
|
+
updatedAt?: string;
|
|
2257
|
+
deletedAt?: string | null;
|
|
2258
|
+
deletedById?: string | null;
|
|
2259
|
+
}>;
|
|
2260
|
+
pagination?: {
|
|
2261
|
+
page?: number;
|
|
2262
|
+
per_page?: number;
|
|
2263
|
+
total?: number;
|
|
2264
|
+
total_pages?: number;
|
|
2265
|
+
};
|
|
2266
|
+
};
|
|
2267
|
+
};
|
|
2268
|
+
type AssetControllerListAssetsResponse = AssetControllerListAssetsResponses[keyof AssetControllerListAssetsResponses];
|
|
2269
|
+
type AssetControllerGetAssetData = {
|
|
2270
|
+
body?: never;
|
|
2271
|
+
path: {
|
|
2272
|
+
id: string;
|
|
2273
|
+
};
|
|
2274
|
+
query?: never;
|
|
2275
|
+
url: '/api/v1/asset/{id}';
|
|
2276
|
+
};
|
|
2277
|
+
type AssetControllerGetAssetErrors = {
|
|
2278
|
+
/**
|
|
2279
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
2280
|
+
*/
|
|
2281
|
+
401: ApiErrorResponse;
|
|
2282
|
+
/**
|
|
2283
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
2284
|
+
*/
|
|
2285
|
+
403: ApiErrorResponse;
|
|
2286
|
+
/**
|
|
2287
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
2288
|
+
*/
|
|
2289
|
+
404: ApiErrorResponse;
|
|
2290
|
+
/**
|
|
2291
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
2292
|
+
*/
|
|
2293
|
+
429: ApiErrorResponse;
|
|
2294
|
+
/**
|
|
2295
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
2296
|
+
*/
|
|
2297
|
+
500: ApiErrorResponse;
|
|
2298
|
+
};
|
|
2299
|
+
type AssetControllerGetAssetError = AssetControllerGetAssetErrors[keyof AssetControllerGetAssetErrors];
|
|
2300
|
+
type AssetControllerGetAssetResponses = {
|
|
2301
|
+
/**
|
|
2302
|
+
* Asset found
|
|
2303
|
+
*/
|
|
2304
|
+
200: {
|
|
2305
|
+
id?: string;
|
|
2306
|
+
publicId?: string;
|
|
2307
|
+
assetNumber?: string;
|
|
2308
|
+
assetClassId?: string;
|
|
2309
|
+
siteId?: string;
|
|
2310
|
+
companyId?: string;
|
|
2311
|
+
assetPhotoFile?: string | null;
|
|
2312
|
+
assetPhotoInfo?: string | null;
|
|
2313
|
+
lat?: number | null;
|
|
2314
|
+
lng?: number | null;
|
|
2315
|
+
createdById?: string;
|
|
2316
|
+
updatedById?: string;
|
|
2317
|
+
createdAt?: string;
|
|
2318
|
+
updatedAt?: string;
|
|
2319
|
+
deletedAt?: string | null;
|
|
2320
|
+
deletedById?: string | null;
|
|
2321
|
+
};
|
|
2322
|
+
};
|
|
2323
|
+
type AssetControllerGetAssetResponse = AssetControllerGetAssetResponses[keyof AssetControllerGetAssetResponses];
|
|
2324
|
+
type AssetControllerUpdateAssetData = {
|
|
2325
|
+
/**
|
|
2326
|
+
* Asset update data
|
|
2327
|
+
*/
|
|
2328
|
+
body: UpdateAssetDto;
|
|
2329
|
+
headers?: {
|
|
2330
|
+
/**
|
|
2331
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
2332
|
+
*/
|
|
2333
|
+
'Idempotency-Key'?: string;
|
|
2334
|
+
};
|
|
2335
|
+
path: {
|
|
2336
|
+
id: string;
|
|
2337
|
+
};
|
|
2338
|
+
query?: never;
|
|
2339
|
+
url: '/api/v1/asset/{id}';
|
|
2340
|
+
};
|
|
2341
|
+
type AssetControllerUpdateAssetErrors = {
|
|
2342
|
+
/**
|
|
2343
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
2344
|
+
*/
|
|
2345
|
+
400: ApiErrorResponse;
|
|
2346
|
+
/**
|
|
2347
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
2348
|
+
*/
|
|
2349
|
+
401: ApiErrorResponse;
|
|
2350
|
+
/**
|
|
2351
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
2352
|
+
*/
|
|
2353
|
+
403: ApiErrorResponse;
|
|
2354
|
+
/**
|
|
2355
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
2356
|
+
*/
|
|
2357
|
+
404: ApiErrorResponse;
|
|
2358
|
+
/**
|
|
2359
|
+
* The request conflicts with current state. Common cases: a unique business identifier already exists (`conflict`), or an `Idempotency-Key` was reused with a different request body (`idempotency_key_conflict`).
|
|
2360
|
+
*/
|
|
2361
|
+
409: ApiErrorResponse;
|
|
2362
|
+
/**
|
|
2363
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
2364
|
+
*/
|
|
2365
|
+
429: ApiErrorResponse;
|
|
2366
|
+
/**
|
|
2367
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
2368
|
+
*/
|
|
2369
|
+
500: ApiErrorResponse;
|
|
2370
|
+
};
|
|
2371
|
+
type AssetControllerUpdateAssetError = AssetControllerUpdateAssetErrors[keyof AssetControllerUpdateAssetErrors];
|
|
2372
|
+
type AssetControllerUpdateAssetResponses = {
|
|
2373
|
+
/**
|
|
2374
|
+
* Asset successfully updated
|
|
2375
|
+
*/
|
|
2376
|
+
200: {
|
|
2377
|
+
id?: string;
|
|
2378
|
+
publicId?: string;
|
|
2379
|
+
assetNumber?: string;
|
|
2380
|
+
assetClassId?: string;
|
|
2381
|
+
siteId?: string;
|
|
2382
|
+
companyId?: string;
|
|
2383
|
+
assetPhotoFile?: string | null;
|
|
2384
|
+
assetPhotoInfo?: string | null;
|
|
2385
|
+
lat?: number | null;
|
|
2386
|
+
lng?: number | null;
|
|
2387
|
+
createdById?: string;
|
|
2388
|
+
updatedById?: string;
|
|
2389
|
+
createdAt?: string;
|
|
2390
|
+
updatedAt?: string;
|
|
2391
|
+
deletedAt?: string | null;
|
|
2392
|
+
deletedById?: string | null;
|
|
2393
|
+
};
|
|
2394
|
+
};
|
|
2395
|
+
type AssetControllerUpdateAssetResponse = AssetControllerUpdateAssetResponses[keyof AssetControllerUpdateAssetResponses];
|
|
2396
|
+
type UserControllerListUsersData = {
|
|
2397
|
+
body?: never;
|
|
2398
|
+
path?: never;
|
|
2399
|
+
query?: {
|
|
2400
|
+
/**
|
|
2401
|
+
* Number of results per page (default: 15)
|
|
2402
|
+
*/
|
|
2403
|
+
per_page?: number;
|
|
2404
|
+
/**
|
|
2405
|
+
* Page number (default: 1)
|
|
2406
|
+
*/
|
|
2407
|
+
page?: number;
|
|
2408
|
+
/**
|
|
2409
|
+
* Sort direction (default: asc)
|
|
2410
|
+
*/
|
|
2411
|
+
direction?: 'asc' | 'desc';
|
|
2412
|
+
/**
|
|
2413
|
+
* Field to sort by
|
|
2414
|
+
*/
|
|
2415
|
+
sort?: string;
|
|
2416
|
+
/**
|
|
2417
|
+
* Filter by user public ID
|
|
2418
|
+
*/
|
|
2419
|
+
public_id?: string;
|
|
2420
|
+
/**
|
|
2421
|
+
* Filter by first name (partial match)
|
|
2422
|
+
*/
|
|
2423
|
+
first_name?: string;
|
|
2424
|
+
/**
|
|
2425
|
+
* Filter by last name (partial match)
|
|
2426
|
+
*/
|
|
2427
|
+
last_name?: string;
|
|
2428
|
+
/**
|
|
2429
|
+
* Filter by email (partial match)
|
|
2430
|
+
*/
|
|
2431
|
+
email?: string;
|
|
2432
|
+
/**
|
|
2433
|
+
* Filter by employee ID (partial match)
|
|
2434
|
+
*/
|
|
2435
|
+
employee_id?: string;
|
|
2436
|
+
/**
|
|
2437
|
+
* Filter by PIN (exact match)
|
|
2438
|
+
*/
|
|
2439
|
+
pin?: string;
|
|
2440
|
+
/**
|
|
2441
|
+
* Filter by contact number (partial match)
|
|
2442
|
+
*/
|
|
2443
|
+
contact_number?: string;
|
|
2444
|
+
/**
|
|
2445
|
+
* Filter by last login date
|
|
2446
|
+
*/
|
|
2447
|
+
last_login_at?: string;
|
|
2448
|
+
/**
|
|
2449
|
+
* Filter by creation date
|
|
2450
|
+
*/
|
|
2451
|
+
created_at?: string;
|
|
2452
|
+
/**
|
|
2453
|
+
* Filter by creator public ID (UUID)
|
|
2454
|
+
*/
|
|
2455
|
+
created_by?: string;
|
|
2456
|
+
};
|
|
2457
|
+
url: '/api/v1/user/list';
|
|
2458
|
+
};
|
|
2459
|
+
type UserControllerListUsersErrors = {
|
|
2460
|
+
/**
|
|
2461
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
2462
|
+
*/
|
|
2463
|
+
400: ApiErrorResponse;
|
|
2464
|
+
/**
|
|
2465
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
2466
|
+
*/
|
|
2467
|
+
401: ApiErrorResponse;
|
|
2468
|
+
/**
|
|
2469
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
2470
|
+
*/
|
|
2471
|
+
403: ApiErrorResponse;
|
|
2472
|
+
/**
|
|
2473
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
2474
|
+
*/
|
|
2475
|
+
429: ApiErrorResponse;
|
|
2476
|
+
/**
|
|
2477
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
2478
|
+
*/
|
|
2479
|
+
500: ApiErrorResponse;
|
|
2480
|
+
};
|
|
2481
|
+
type UserControllerListUsersError = UserControllerListUsersErrors[keyof UserControllerListUsersErrors];
|
|
2482
|
+
type UserControllerListUsersResponses = {
|
|
2483
|
+
/**
|
|
2484
|
+
* List of users with pagination info
|
|
2485
|
+
*/
|
|
2486
|
+
200: {
|
|
2487
|
+
data?: Array<UserResponseDto>;
|
|
2488
|
+
page?: number;
|
|
2489
|
+
per_page?: number;
|
|
2490
|
+
total?: number;
|
|
2491
|
+
total_pages?: number;
|
|
2492
|
+
};
|
|
2493
|
+
};
|
|
2494
|
+
type UserControllerListUsersResponse = UserControllerListUsersResponses[keyof UserControllerListUsersResponses];
|
|
2495
|
+
type UserControllerGetUserData = {
|
|
2496
|
+
body?: never;
|
|
2497
|
+
path: {
|
|
2498
|
+
/**
|
|
2499
|
+
* User public ID (UUID)
|
|
2500
|
+
*/
|
|
2501
|
+
id: string;
|
|
2502
|
+
};
|
|
2503
|
+
query?: never;
|
|
2504
|
+
url: '/api/v1/user/{id}';
|
|
2505
|
+
};
|
|
2506
|
+
type UserControllerGetUserErrors = {
|
|
2507
|
+
/**
|
|
2508
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
2509
|
+
*/
|
|
2510
|
+
401: ApiErrorResponse;
|
|
2511
|
+
/**
|
|
2512
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
2513
|
+
*/
|
|
2514
|
+
403: ApiErrorResponse;
|
|
2515
|
+
/**
|
|
2516
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
2517
|
+
*/
|
|
2518
|
+
404: ApiErrorResponse;
|
|
2519
|
+
/**
|
|
2520
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
2521
|
+
*/
|
|
2522
|
+
429: ApiErrorResponse;
|
|
2523
|
+
/**
|
|
2524
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
2525
|
+
*/
|
|
2526
|
+
500: ApiErrorResponse;
|
|
2527
|
+
};
|
|
2528
|
+
type UserControllerGetUserError = UserControllerGetUserErrors[keyof UserControllerGetUserErrors];
|
|
2529
|
+
type UserControllerGetUserResponses = {
|
|
2530
|
+
/**
|
|
2531
|
+
* User details with properties
|
|
2532
|
+
*/
|
|
2533
|
+
200: UserResponseDto;
|
|
2534
|
+
};
|
|
2535
|
+
type UserControllerGetUserResponse = UserControllerGetUserResponses[keyof UserControllerGetUserResponses];
|
|
2536
|
+
type UserControllerUpdateUserData = {
|
|
2537
|
+
body: {
|
|
2538
|
+
/**
|
|
2539
|
+
* User first name
|
|
2540
|
+
*/
|
|
2541
|
+
first_name?: string;
|
|
2542
|
+
/**
|
|
2543
|
+
* User last name
|
|
2544
|
+
*/
|
|
2545
|
+
last_name?: string;
|
|
2546
|
+
/**
|
|
2547
|
+
* User email address
|
|
2548
|
+
*/
|
|
2549
|
+
email?: string;
|
|
2550
|
+
/**
|
|
2551
|
+
* User contact number
|
|
2552
|
+
*/
|
|
2553
|
+
contact_number?: string;
|
|
2554
|
+
/**
|
|
2555
|
+
* Profile photo file
|
|
2556
|
+
*/
|
|
2557
|
+
photo?: Blob | File;
|
|
2558
|
+
/**
|
|
2559
|
+
* Photo width in pixels (required if photo is uploaded)
|
|
2560
|
+
*/
|
|
2561
|
+
photo_width?: number;
|
|
2562
|
+
/**
|
|
2563
|
+
* Photo height in pixels (required if photo is uploaded)
|
|
2564
|
+
*/
|
|
2565
|
+
photo_height?: number;
|
|
2566
|
+
};
|
|
2567
|
+
headers?: {
|
|
2568
|
+
/**
|
|
2569
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
2570
|
+
*/
|
|
2571
|
+
'Idempotency-Key'?: string;
|
|
2572
|
+
};
|
|
2573
|
+
path: {
|
|
2574
|
+
/**
|
|
2575
|
+
* User public UUID
|
|
2576
|
+
*/
|
|
2577
|
+
id: string;
|
|
2578
|
+
};
|
|
2579
|
+
query?: never;
|
|
2580
|
+
url: '/api/v1/user/{id}';
|
|
2581
|
+
};
|
|
2582
|
+
type UserControllerUpdateUserErrors = {
|
|
2583
|
+
/**
|
|
2584
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
2585
|
+
*/
|
|
2586
|
+
400: ApiErrorResponse;
|
|
2587
|
+
/**
|
|
2588
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
2589
|
+
*/
|
|
2590
|
+
401: ApiErrorResponse;
|
|
2591
|
+
/**
|
|
2592
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
2593
|
+
*/
|
|
2594
|
+
403: ApiErrorResponse;
|
|
2595
|
+
/**
|
|
2596
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
2597
|
+
*/
|
|
2598
|
+
404: ApiErrorResponse;
|
|
2599
|
+
/**
|
|
2600
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
2601
|
+
*/
|
|
2602
|
+
429: ApiErrorResponse;
|
|
2603
|
+
/**
|
|
2604
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
2605
|
+
*/
|
|
2606
|
+
500: ApiErrorResponse;
|
|
2607
|
+
};
|
|
2608
|
+
type UserControllerUpdateUserError = UserControllerUpdateUserErrors[keyof UserControllerUpdateUserErrors];
|
|
2609
|
+
type UserControllerUpdateUserResponses = {
|
|
2610
|
+
/**
|
|
2611
|
+
* User successfully updated
|
|
2612
|
+
*/
|
|
2613
|
+
200: {
|
|
2614
|
+
id?: string;
|
|
2615
|
+
publicId?: string;
|
|
2616
|
+
firstName?: string;
|
|
2617
|
+
lastName?: string;
|
|
2618
|
+
email?: string;
|
|
2619
|
+
preferredLanguage?: string | null;
|
|
2620
|
+
contactNumber?: string | null;
|
|
2621
|
+
profilePhotoFile?: string | null;
|
|
2622
|
+
profilePhotoInfo?: string | null;
|
|
2623
|
+
employeeId?: string | null;
|
|
2624
|
+
pin?: string | null;
|
|
2625
|
+
changePinRequired?: boolean;
|
|
2626
|
+
lastLoginAt?: string | null;
|
|
2627
|
+
loginAttemptCount?: number;
|
|
2628
|
+
loginDisabledAt?: string | null;
|
|
2629
|
+
createdById?: string;
|
|
2630
|
+
updatedById?: string;
|
|
2631
|
+
createdAt?: string;
|
|
2632
|
+
updatedAt?: string;
|
|
2633
|
+
deletedAt?: string | null;
|
|
2634
|
+
deletedById?: string | null;
|
|
2635
|
+
};
|
|
2636
|
+
};
|
|
2637
|
+
type UserControllerUpdateUserResponse = UserControllerUpdateUserResponses[keyof UserControllerUpdateUserResponses];
|
|
2638
|
+
type UserControllerCreateUserData = {
|
|
2639
|
+
body: {
|
|
2640
|
+
first_name: string;
|
|
2641
|
+
last_name: string;
|
|
2642
|
+
/**
|
|
2643
|
+
* Site public UUID
|
|
2644
|
+
*/
|
|
2645
|
+
site_id: string;
|
|
2646
|
+
contact_number?: string;
|
|
2647
|
+
email?: string;
|
|
2648
|
+
/**
|
|
2649
|
+
* Up to 12 characters
|
|
2650
|
+
*/
|
|
2651
|
+
employee_id?: string;
|
|
2652
|
+
/**
|
|
2653
|
+
* Exactly 4 digits
|
|
2654
|
+
*/
|
|
2655
|
+
pin?: string;
|
|
2656
|
+
/**
|
|
2657
|
+
* Profile photo file
|
|
2658
|
+
*/
|
|
2659
|
+
photo?: Blob | File;
|
|
2660
|
+
/**
|
|
2661
|
+
* Photo width in pixels (required if photo is uploaded)
|
|
2662
|
+
*/
|
|
2663
|
+
photo_width?: number;
|
|
2664
|
+
/**
|
|
2665
|
+
* Photo height in pixels (required if photo is uploaded)
|
|
2666
|
+
*/
|
|
2667
|
+
photo_height?: number;
|
|
2668
|
+
/**
|
|
2669
|
+
* Set to true to override name duplicate warning at the same site
|
|
2670
|
+
*/
|
|
2671
|
+
force?: boolean;
|
|
2672
|
+
};
|
|
2673
|
+
headers?: {
|
|
2674
|
+
/**
|
|
2675
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
2676
|
+
*/
|
|
2677
|
+
'Idempotency-Key'?: string;
|
|
2678
|
+
};
|
|
2679
|
+
path?: never;
|
|
2680
|
+
query?: never;
|
|
2681
|
+
url: '/api/v1/user';
|
|
2682
|
+
};
|
|
2683
|
+
type UserControllerCreateUserErrors = {
|
|
2684
|
+
/**
|
|
2685
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
2686
|
+
*/
|
|
2687
|
+
400: ApiErrorResponse;
|
|
2688
|
+
/**
|
|
2689
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
2690
|
+
*/
|
|
2691
|
+
401: ApiErrorResponse;
|
|
2692
|
+
/**
|
|
2693
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
2694
|
+
*/
|
|
2695
|
+
403: ApiErrorResponse;
|
|
2696
|
+
/**
|
|
2697
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
2698
|
+
*/
|
|
2699
|
+
404: ApiErrorResponse;
|
|
2700
|
+
/**
|
|
2701
|
+
* The request conflicts with current state. Common cases: a unique business identifier already exists (`conflict`), or an `Idempotency-Key` was reused with a different request body (`idempotency_key_conflict`).
|
|
2702
|
+
*/
|
|
2703
|
+
409: ApiErrorResponse;
|
|
2704
|
+
/**
|
|
2705
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
2706
|
+
*/
|
|
2707
|
+
429: ApiErrorResponse;
|
|
2708
|
+
/**
|
|
2709
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
2710
|
+
*/
|
|
2711
|
+
500: ApiErrorResponse;
|
|
2712
|
+
};
|
|
2713
|
+
type UserControllerCreateUserError = UserControllerCreateUserErrors[keyof UserControllerCreateUserErrors];
|
|
2714
|
+
type UserControllerCreateUserResponses = {
|
|
2715
|
+
/**
|
|
2716
|
+
* User successfully created with associated relationships (user, user_site, user_role)
|
|
2717
|
+
*/
|
|
2718
|
+
201: {
|
|
2719
|
+
/**
|
|
2720
|
+
* Created user entity
|
|
2721
|
+
*/
|
|
2722
|
+
user?: {
|
|
2723
|
+
id?: string;
|
|
2724
|
+
publicId?: string;
|
|
2725
|
+
firstName?: string;
|
|
2726
|
+
lastName?: string;
|
|
2727
|
+
email?: string;
|
|
2728
|
+
preferredLanguage?: string | null;
|
|
2729
|
+
contactNumber?: string | null;
|
|
2730
|
+
profilePhotoFile?: string | null;
|
|
2731
|
+
profilePhotoInfo?: string | null;
|
|
2732
|
+
employeeId?: string | null;
|
|
2733
|
+
pin?: string | null;
|
|
2734
|
+
changePinRequired?: boolean;
|
|
2735
|
+
lastLoginAt?: string | null;
|
|
2736
|
+
loginAttemptCount?: number;
|
|
2737
|
+
loginDisabledAt?: string | null;
|
|
2738
|
+
createdById?: string;
|
|
2739
|
+
updatedById?: string;
|
|
2740
|
+
createdAt?: string;
|
|
2741
|
+
updatedAt?: string;
|
|
2742
|
+
deletedAt?: string | null;
|
|
2743
|
+
deletedById?: string | null;
|
|
2744
|
+
};
|
|
2745
|
+
/**
|
|
2746
|
+
* User-site relationship entity
|
|
2747
|
+
*/
|
|
2748
|
+
userSite?: {
|
|
2749
|
+
id?: string;
|
|
2750
|
+
userId?: string;
|
|
2751
|
+
siteId?: string;
|
|
2752
|
+
companyId?: string;
|
|
2753
|
+
createdById?: string;
|
|
2754
|
+
updatedById?: string;
|
|
2755
|
+
createdAt?: string;
|
|
2756
|
+
updatedAt?: string;
|
|
2757
|
+
deletedAt?: string | null;
|
|
2758
|
+
deletedById?: string | null;
|
|
2759
|
+
};
|
|
2760
|
+
/**
|
|
2761
|
+
* User role assignment entity (defaults to viewer role, id=5)
|
|
2762
|
+
*/
|
|
2763
|
+
userRole?: {
|
|
2764
|
+
id?: string;
|
|
2765
|
+
userId?: string;
|
|
2766
|
+
companyId?: string;
|
|
2767
|
+
roleId?: string;
|
|
2768
|
+
assignedById?: string;
|
|
2769
|
+
assignedAt?: string;
|
|
2770
|
+
expiresAt?: string | null;
|
|
2771
|
+
createdById?: string;
|
|
2772
|
+
updatedById?: string;
|
|
2773
|
+
createdAt?: string;
|
|
2774
|
+
updatedAt?: string;
|
|
2775
|
+
deletedAt?: string | null;
|
|
2776
|
+
deletedById?: string | null;
|
|
2777
|
+
};
|
|
2778
|
+
};
|
|
2779
|
+
};
|
|
2780
|
+
type UserControllerCreateUserResponse = UserControllerCreateUserResponses[keyof UserControllerCreateUserResponses];
|
|
2781
|
+
type InspectionControllerListInspectionsData = {
|
|
2782
|
+
body?: never;
|
|
2783
|
+
path?: never;
|
|
2784
|
+
query?: {
|
|
2785
|
+
/**
|
|
2786
|
+
* Number of results per page (default: 15)
|
|
2787
|
+
*/
|
|
2788
|
+
per_page?: number;
|
|
2789
|
+
/**
|
|
2790
|
+
* Page number (default: 1)
|
|
2791
|
+
*/
|
|
2792
|
+
page?: number;
|
|
2793
|
+
/**
|
|
2794
|
+
* Sort direction (default: asc)
|
|
2795
|
+
*/
|
|
2796
|
+
direction?: 'asc' | 'desc';
|
|
2797
|
+
/**
|
|
2798
|
+
* Field to sort by
|
|
2799
|
+
*/
|
|
2800
|
+
sort?: string;
|
|
2801
|
+
/**
|
|
2802
|
+
* Filter by inspection public_id (UUID)
|
|
2803
|
+
*/
|
|
2804
|
+
inspection_id?: string;
|
|
2805
|
+
/**
|
|
2806
|
+
* Filter by site name
|
|
2807
|
+
*/
|
|
2808
|
+
inspection_site_name?: string;
|
|
2809
|
+
/**
|
|
2810
|
+
* Filter by site public_id (UUID)
|
|
2811
|
+
*/
|
|
2812
|
+
inspection_site_id?: string;
|
|
2813
|
+
/**
|
|
2814
|
+
* Filter by asset number
|
|
2815
|
+
*/
|
|
2816
|
+
inspection_asset_number?: string;
|
|
2817
|
+
/**
|
|
2818
|
+
* Filter by asset public_id (UUID)
|
|
2819
|
+
*/
|
|
2820
|
+
inspection_asset_id?: string;
|
|
2821
|
+
/**
|
|
2822
|
+
* Filter by checklist name
|
|
2823
|
+
*/
|
|
2824
|
+
inspection_checklist_name?: string;
|
|
2825
|
+
/**
|
|
2826
|
+
* Filter by checklist public_id (UUID)
|
|
2827
|
+
*/
|
|
2828
|
+
inspection_checklist_id?: string;
|
|
2829
|
+
/**
|
|
2830
|
+
* Filter by checklist category name
|
|
2831
|
+
*/
|
|
2832
|
+
inspection_checklist_category?: string;
|
|
2833
|
+
/**
|
|
2834
|
+
* Filter by checklist category public_id (UUID)
|
|
2835
|
+
*/
|
|
2836
|
+
inspection_checklist_category_id?: string;
|
|
2837
|
+
/**
|
|
2838
|
+
* Filter by submitted user public_id (UUID)
|
|
2839
|
+
*/
|
|
2840
|
+
inspection_submitted_user_id?: string;
|
|
2841
|
+
/**
|
|
2842
|
+
* Filter by subject user public_id (UUID)
|
|
2843
|
+
*/
|
|
2844
|
+
inspection_subject_user_id?: string;
|
|
2845
|
+
/**
|
|
2846
|
+
* BigInt as string. IDs are stringified at the serialization boundary.
|
|
2847
|
+
*/
|
|
2848
|
+
inspection_target_project_id?: string;
|
|
2849
|
+
/**
|
|
2850
|
+
* Filter by device name
|
|
2851
|
+
*/
|
|
2852
|
+
inspection_device_name?: string;
|
|
2853
|
+
/**
|
|
2854
|
+
* Filter by device public_id (UUID)
|
|
2855
|
+
*/
|
|
2856
|
+
inspection_device_id?: string;
|
|
2857
|
+
/**
|
|
2858
|
+
* Filter by date submitted from (inclusive)
|
|
2859
|
+
*/
|
|
2860
|
+
inspection_date_submitted_from?: string;
|
|
2861
|
+
/**
|
|
2862
|
+
* Filter by date submitted to (inclusive)
|
|
2863
|
+
*/
|
|
2864
|
+
inspection_date_submitted_to?: string;
|
|
2865
|
+
/**
|
|
2866
|
+
* Filter by date received from (inclusive)
|
|
2867
|
+
*/
|
|
2868
|
+
inspection_date_received_from?: string;
|
|
2869
|
+
/**
|
|
2870
|
+
* Filter by date received to (inclusive)
|
|
2871
|
+
*/
|
|
2872
|
+
inspection_date_received_to?: string;
|
|
2873
|
+
};
|
|
2874
|
+
url: '/api/v1/public/inspection/list';
|
|
2875
|
+
};
|
|
2876
|
+
type InspectionControllerListInspectionsErrors = {
|
|
2877
|
+
/**
|
|
2878
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
2879
|
+
*/
|
|
2880
|
+
400: ApiErrorResponse;
|
|
2881
|
+
/**
|
|
2882
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
2883
|
+
*/
|
|
2884
|
+
401: ApiErrorResponse;
|
|
2885
|
+
/**
|
|
2886
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
2887
|
+
*/
|
|
2888
|
+
403: ApiErrorResponse;
|
|
2889
|
+
/**
|
|
2890
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
2891
|
+
*/
|
|
2892
|
+
429: ApiErrorResponse;
|
|
2893
|
+
/**
|
|
2894
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
2895
|
+
*/
|
|
2896
|
+
500: ApiErrorResponse;
|
|
2897
|
+
};
|
|
2898
|
+
type InspectionControllerListInspectionsError = InspectionControllerListInspectionsErrors[keyof InspectionControllerListInspectionsErrors];
|
|
2899
|
+
type InspectionControllerListInspectionsResponses = {
|
|
2900
|
+
/**
|
|
2901
|
+
* List of inspections with pagination info
|
|
2902
|
+
*/
|
|
2903
|
+
200: ListInspectionsResponseDto;
|
|
2904
|
+
};
|
|
2905
|
+
type InspectionControllerListInspectionsResponse = InspectionControllerListInspectionsResponses[keyof InspectionControllerListInspectionsResponses];
|
|
2906
|
+
type InspectionControllerSubmitInspectionPublicData = {
|
|
2907
|
+
/**
|
|
2908
|
+
* Complete inspection data with nested structure
|
|
2909
|
+
*/
|
|
2910
|
+
body: SubmitInspectionDto;
|
|
2911
|
+
headers?: {
|
|
2912
|
+
/**
|
|
2913
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
2914
|
+
*/
|
|
2915
|
+
'Idempotency-Key'?: string;
|
|
2916
|
+
};
|
|
2917
|
+
path?: never;
|
|
2918
|
+
query?: never;
|
|
2919
|
+
url: '/api/v1/public/inspection/submit';
|
|
2920
|
+
};
|
|
2921
|
+
type InspectionControllerSubmitInspectionPublicErrors = {
|
|
2922
|
+
/**
|
|
2923
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
2924
|
+
*/
|
|
2925
|
+
400: ApiErrorResponse;
|
|
2926
|
+
/**
|
|
2927
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
2928
|
+
*/
|
|
2929
|
+
401: ApiErrorResponse;
|
|
2930
|
+
/**
|
|
2931
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
2932
|
+
*/
|
|
2933
|
+
403: ApiErrorResponse;
|
|
2934
|
+
/**
|
|
2935
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
2936
|
+
*/
|
|
2937
|
+
404: ApiErrorResponse;
|
|
2938
|
+
/**
|
|
2939
|
+
* The request conflicts with current state. Common cases: a unique business identifier already exists (`conflict`), or an `Idempotency-Key` was reused with a different request body (`idempotency_key_conflict`).
|
|
2940
|
+
*/
|
|
2941
|
+
409: ApiErrorResponse;
|
|
2942
|
+
/**
|
|
2943
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
2944
|
+
*/
|
|
2945
|
+
429: ApiErrorResponse;
|
|
2946
|
+
/**
|
|
2947
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
2948
|
+
*/
|
|
2949
|
+
500: ApiErrorResponse;
|
|
2950
|
+
};
|
|
2951
|
+
type InspectionControllerSubmitInspectionPublicError = InspectionControllerSubmitInspectionPublicErrors[keyof InspectionControllerSubmitInspectionPublicErrors];
|
|
2952
|
+
type InspectionControllerSubmitInspectionPublicResponses = {
|
|
2953
|
+
/**
|
|
2954
|
+
* Inspection successfully submitted
|
|
2955
|
+
*/
|
|
2956
|
+
201: {
|
|
2957
|
+
success?: boolean;
|
|
2958
|
+
inspection_public_id?: string;
|
|
2959
|
+
/**
|
|
2960
|
+
* BigInt-safe stringified ID of the created inspection.
|
|
2961
|
+
*/
|
|
2962
|
+
inspection_id?: string;
|
|
2963
|
+
};
|
|
2964
|
+
};
|
|
2965
|
+
type InspectionControllerSubmitInspectionPublicResponse = InspectionControllerSubmitInspectionPublicResponses[keyof InspectionControllerSubmitInspectionPublicResponses];
|
|
2966
|
+
type IssueControllerListIssuesData = {
|
|
2967
|
+
body?: never;
|
|
2968
|
+
path?: never;
|
|
2969
|
+
query?: {
|
|
2970
|
+
/**
|
|
2971
|
+
* Number of results per page (default: 15)
|
|
2972
|
+
*/
|
|
2973
|
+
per_page?: number;
|
|
2974
|
+
/**
|
|
2975
|
+
* Page number (default: 1)
|
|
2976
|
+
*/
|
|
2977
|
+
page?: number;
|
|
2978
|
+
/**
|
|
2979
|
+
* Sort direction (default: asc)
|
|
2980
|
+
*/
|
|
2981
|
+
direction?: 'asc' | 'desc';
|
|
2982
|
+
/**
|
|
2983
|
+
* Field to sort by
|
|
2984
|
+
*/
|
|
2985
|
+
sort?: string;
|
|
2986
|
+
/**
|
|
2987
|
+
* Filter by asset number (equipment unit_number)
|
|
2988
|
+
*/
|
|
2989
|
+
asset_number?: string;
|
|
2990
|
+
/**
|
|
2991
|
+
* Filter by asset public ID (UUID)
|
|
2992
|
+
*/
|
|
2993
|
+
asset_id?: string;
|
|
2994
|
+
/**
|
|
2995
|
+
* Filter by raised user public ID (UUID)
|
|
2996
|
+
*/
|
|
2997
|
+
raised_user_id?: string;
|
|
2998
|
+
/**
|
|
2999
|
+
* Filter by modified user public ID (UUID)
|
|
3000
|
+
*/
|
|
3001
|
+
modified_user_id?: string;
|
|
3002
|
+
/**
|
|
3003
|
+
* Filter by assigned user public ID (UUID)
|
|
3004
|
+
*/
|
|
3005
|
+
assigned_user?: string;
|
|
3006
|
+
/**
|
|
3007
|
+
* Filter by date reported
|
|
3008
|
+
*/
|
|
3009
|
+
date_reported?: string;
|
|
3010
|
+
/**
|
|
3011
|
+
* Filter by issue status
|
|
3012
|
+
*/
|
|
3013
|
+
issue_status?: string;
|
|
3014
|
+
/**
|
|
3015
|
+
* Filter by date closed
|
|
3016
|
+
*/
|
|
3017
|
+
date_closed?: string;
|
|
3018
|
+
/**
|
|
3019
|
+
* Filter by issue number (company_issue_number)
|
|
3020
|
+
*/
|
|
3021
|
+
issue_number?: string;
|
|
3022
|
+
/**
|
|
3023
|
+
* Filter by issue public ID (UUID)
|
|
3024
|
+
*/
|
|
3025
|
+
issue_id?: string;
|
|
3026
|
+
};
|
|
3027
|
+
url: '/api/v1/public/issue/list';
|
|
3028
|
+
};
|
|
3029
|
+
type IssueControllerListIssuesErrors = {
|
|
3030
|
+
/**
|
|
3031
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
3032
|
+
*/
|
|
3033
|
+
400: ApiErrorResponse;
|
|
3034
|
+
/**
|
|
3035
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3036
|
+
*/
|
|
3037
|
+
401: ApiErrorResponse;
|
|
3038
|
+
/**
|
|
3039
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3040
|
+
*/
|
|
3041
|
+
403: ApiErrorResponse;
|
|
3042
|
+
/**
|
|
3043
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3044
|
+
*/
|
|
3045
|
+
429: ApiErrorResponse;
|
|
3046
|
+
/**
|
|
3047
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3048
|
+
*/
|
|
3049
|
+
500: ApiErrorResponse;
|
|
3050
|
+
};
|
|
3051
|
+
type IssueControllerListIssuesError = IssueControllerListIssuesErrors[keyof IssueControllerListIssuesErrors];
|
|
3052
|
+
type IssueControllerListIssuesResponses = {
|
|
3053
|
+
/**
|
|
3054
|
+
* List of issues with pagination info
|
|
3055
|
+
*/
|
|
3056
|
+
200: ListIssuesResponseDto;
|
|
3057
|
+
};
|
|
3058
|
+
type IssueControllerListIssuesResponse = IssueControllerListIssuesResponses[keyof IssueControllerListIssuesResponses];
|
|
3059
|
+
type IssueControllerGetIssuePublicData = {
|
|
3060
|
+
body?: never;
|
|
3061
|
+
path: {
|
|
3062
|
+
/**
|
|
3063
|
+
* Issue public ID (UUID)
|
|
3064
|
+
*/
|
|
3065
|
+
public_id: string;
|
|
3066
|
+
};
|
|
3067
|
+
query?: never;
|
|
3068
|
+
url: '/api/v1/public/issue/{public_id}';
|
|
3069
|
+
};
|
|
3070
|
+
type IssueControllerGetIssuePublicErrors = {
|
|
3071
|
+
/**
|
|
3072
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3073
|
+
*/
|
|
3074
|
+
401: ApiErrorResponse;
|
|
3075
|
+
/**
|
|
3076
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3077
|
+
*/
|
|
3078
|
+
403: ApiErrorResponse;
|
|
3079
|
+
/**
|
|
3080
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
3081
|
+
*/
|
|
3082
|
+
404: ApiErrorResponse;
|
|
3083
|
+
/**
|
|
3084
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3085
|
+
*/
|
|
3086
|
+
429: ApiErrorResponse;
|
|
3087
|
+
/**
|
|
3088
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3089
|
+
*/
|
|
3090
|
+
500: ApiErrorResponse;
|
|
3091
|
+
};
|
|
3092
|
+
type IssueControllerGetIssuePublicError = IssueControllerGetIssuePublicErrors[keyof IssueControllerGetIssuePublicErrors];
|
|
3093
|
+
type IssueControllerGetIssuePublicResponses = {
|
|
3094
|
+
/**
|
|
3095
|
+
* Issue details
|
|
3096
|
+
*/
|
|
3097
|
+
200: IssueResponseDto;
|
|
3098
|
+
};
|
|
3099
|
+
type IssueControllerGetIssuePublicResponse = IssueControllerGetIssuePublicResponses[keyof IssueControllerGetIssuePublicResponses];
|
|
3100
|
+
type IssueControllerUpdateIssuePublicData = {
|
|
3101
|
+
/**
|
|
3102
|
+
* Issue update data
|
|
3103
|
+
*/
|
|
3104
|
+
body: UpdateIssueDto;
|
|
3105
|
+
headers?: {
|
|
3106
|
+
/**
|
|
3107
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
3108
|
+
*/
|
|
3109
|
+
'Idempotency-Key'?: string;
|
|
3110
|
+
};
|
|
3111
|
+
path: {
|
|
3112
|
+
/**
|
|
3113
|
+
* Issue public ID (UUID)
|
|
3114
|
+
*/
|
|
3115
|
+
public_id: string;
|
|
3116
|
+
};
|
|
3117
|
+
query?: never;
|
|
3118
|
+
url: '/api/v1/public/issue/{public_id}';
|
|
3119
|
+
};
|
|
3120
|
+
type IssueControllerUpdateIssuePublicErrors = {
|
|
3121
|
+
/**
|
|
3122
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
3123
|
+
*/
|
|
3124
|
+
400: ApiErrorResponse;
|
|
3125
|
+
/**
|
|
3126
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3127
|
+
*/
|
|
3128
|
+
401: ApiErrorResponse;
|
|
3129
|
+
/**
|
|
3130
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3131
|
+
*/
|
|
3132
|
+
403: ApiErrorResponse;
|
|
3133
|
+
/**
|
|
3134
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
3135
|
+
*/
|
|
3136
|
+
404: ApiErrorResponse;
|
|
3137
|
+
/**
|
|
3138
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3139
|
+
*/
|
|
3140
|
+
429: ApiErrorResponse;
|
|
3141
|
+
/**
|
|
3142
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3143
|
+
*/
|
|
3144
|
+
500: ApiErrorResponse;
|
|
3145
|
+
};
|
|
3146
|
+
type IssueControllerUpdateIssuePublicError = IssueControllerUpdateIssuePublicErrors[keyof IssueControllerUpdateIssuePublicErrors];
|
|
3147
|
+
type IssueControllerUpdateIssuePublicResponses = {
|
|
3148
|
+
/**
|
|
3149
|
+
* Issue updated successfully
|
|
3150
|
+
*/
|
|
3151
|
+
200: {
|
|
3152
|
+
success?: boolean;
|
|
3153
|
+
/**
|
|
3154
|
+
* BigInt-safe stringified ID of the updated issue.
|
|
3155
|
+
*/
|
|
3156
|
+
issue_id?: string;
|
|
3157
|
+
};
|
|
3158
|
+
};
|
|
3159
|
+
type IssueControllerUpdateIssuePublicResponse = IssueControllerUpdateIssuePublicResponses[keyof IssueControllerUpdateIssuePublicResponses];
|
|
3160
|
+
type IssueControllerGetIssueHistoryPublicData = {
|
|
3161
|
+
body?: never;
|
|
3162
|
+
path: {
|
|
3163
|
+
/**
|
|
3164
|
+
* Issue public ID (UUID)
|
|
3165
|
+
*/
|
|
3166
|
+
public_id: string;
|
|
3167
|
+
};
|
|
3168
|
+
query?: never;
|
|
3169
|
+
url: '/api/v1/public/issue/{public_id}/history';
|
|
3170
|
+
};
|
|
3171
|
+
type IssueControllerGetIssueHistoryPublicErrors = {
|
|
3172
|
+
/**
|
|
3173
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3174
|
+
*/
|
|
3175
|
+
401: ApiErrorResponse;
|
|
3176
|
+
/**
|
|
3177
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3178
|
+
*/
|
|
3179
|
+
403: ApiErrorResponse;
|
|
3180
|
+
/**
|
|
3181
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
3182
|
+
*/
|
|
3183
|
+
404: ApiErrorResponse;
|
|
3184
|
+
/**
|
|
3185
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3186
|
+
*/
|
|
3187
|
+
429: ApiErrorResponse;
|
|
3188
|
+
/**
|
|
3189
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3190
|
+
*/
|
|
3191
|
+
500: ApiErrorResponse;
|
|
3192
|
+
};
|
|
3193
|
+
type IssueControllerGetIssueHistoryPublicError = IssueControllerGetIssueHistoryPublicErrors[keyof IssueControllerGetIssueHistoryPublicErrors];
|
|
3194
|
+
type IssueControllerGetIssueHistoryPublicResponses = {
|
|
3195
|
+
/**
|
|
3196
|
+
* Issue history entries
|
|
3197
|
+
*/
|
|
3198
|
+
200: IssueHistoryResponseDto;
|
|
3199
|
+
};
|
|
3200
|
+
type IssueControllerGetIssueHistoryPublicResponse = IssueControllerGetIssueHistoryPublicResponses[keyof IssueControllerGetIssueHistoryPublicResponses];
|
|
3201
|
+
type UserPropertyControllerDeleteUserPropertyData = {
|
|
3202
|
+
body?: never;
|
|
3203
|
+
path: {
|
|
3204
|
+
/**
|
|
3205
|
+
* User property ID. On public responses this is returned as a string.
|
|
3206
|
+
*/
|
|
3207
|
+
id: string;
|
|
3208
|
+
};
|
|
3209
|
+
query?: never;
|
|
3210
|
+
url: '/api/v1/user-property/{id}';
|
|
3211
|
+
};
|
|
3212
|
+
type UserPropertyControllerDeleteUserPropertyErrors = {
|
|
3213
|
+
/**
|
|
3214
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3215
|
+
*/
|
|
3216
|
+
401: ApiErrorResponse;
|
|
3217
|
+
/**
|
|
3218
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3219
|
+
*/
|
|
3220
|
+
403: ApiErrorResponse;
|
|
3221
|
+
/**
|
|
3222
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
3223
|
+
*/
|
|
3224
|
+
404: ApiErrorResponse;
|
|
3225
|
+
/**
|
|
3226
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3227
|
+
*/
|
|
3228
|
+
429: ApiErrorResponse;
|
|
3229
|
+
/**
|
|
3230
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3231
|
+
*/
|
|
3232
|
+
500: ApiErrorResponse;
|
|
3233
|
+
};
|
|
3234
|
+
type UserPropertyControllerDeleteUserPropertyError = UserPropertyControllerDeleteUserPropertyErrors[keyof UserPropertyControllerDeleteUserPropertyErrors];
|
|
3235
|
+
type UserPropertyControllerDeleteUserPropertyResponses = {
|
|
3236
|
+
/**
|
|
3237
|
+
* User property successfully deleted
|
|
3238
|
+
*/
|
|
3239
|
+
200: DeleteUserPropertyResponseDto;
|
|
3240
|
+
};
|
|
3241
|
+
type UserPropertyControllerDeleteUserPropertyResponse = UserPropertyControllerDeleteUserPropertyResponses[keyof UserPropertyControllerDeleteUserPropertyResponses];
|
|
3242
|
+
type UserPropertyControllerUpdateUserPropertyData = {
|
|
3243
|
+
/**
|
|
3244
|
+
* User property update data
|
|
3245
|
+
*/
|
|
3246
|
+
body: UpdateUserPropertyDto;
|
|
3247
|
+
headers?: {
|
|
3248
|
+
/**
|
|
3249
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
3250
|
+
*/
|
|
3251
|
+
'Idempotency-Key'?: string;
|
|
3252
|
+
};
|
|
3253
|
+
path: {
|
|
3254
|
+
/**
|
|
3255
|
+
* User property ID. On public responses this is returned as a string.
|
|
3256
|
+
*/
|
|
3257
|
+
id: string;
|
|
3258
|
+
};
|
|
3259
|
+
query?: never;
|
|
3260
|
+
url: '/api/v1/user-property/{id}';
|
|
3261
|
+
};
|
|
3262
|
+
type UserPropertyControllerUpdateUserPropertyErrors = {
|
|
3263
|
+
/**
|
|
3264
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
3265
|
+
*/
|
|
3266
|
+
400: ApiErrorResponse;
|
|
3267
|
+
/**
|
|
3268
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3269
|
+
*/
|
|
3270
|
+
401: ApiErrorResponse;
|
|
3271
|
+
/**
|
|
3272
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3273
|
+
*/
|
|
3274
|
+
403: ApiErrorResponse;
|
|
3275
|
+
/**
|
|
3276
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
3277
|
+
*/
|
|
3278
|
+
404: ApiErrorResponse;
|
|
3279
|
+
/**
|
|
3280
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3281
|
+
*/
|
|
3282
|
+
429: ApiErrorResponse;
|
|
3283
|
+
/**
|
|
3284
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3285
|
+
*/
|
|
3286
|
+
500: ApiErrorResponse;
|
|
3287
|
+
};
|
|
3288
|
+
type UserPropertyControllerUpdateUserPropertyError = UserPropertyControllerUpdateUserPropertyErrors[keyof UserPropertyControllerUpdateUserPropertyErrors];
|
|
3289
|
+
type UserPropertyControllerUpdateUserPropertyResponses = {
|
|
3290
|
+
/**
|
|
3291
|
+
* User property successfully updated
|
|
3292
|
+
*/
|
|
3293
|
+
200: UserPropertyResponseDto;
|
|
3294
|
+
};
|
|
3295
|
+
type UserPropertyControllerUpdateUserPropertyResponse = UserPropertyControllerUpdateUserPropertyResponses[keyof UserPropertyControllerUpdateUserPropertyResponses];
|
|
3296
|
+
type AssetPropertyControllerDeleteAssetPropertyData = {
|
|
3297
|
+
body?: never;
|
|
3298
|
+
path: {
|
|
3299
|
+
/**
|
|
3300
|
+
* Asset property ID. On public responses this is returned as a string.
|
|
3301
|
+
*/
|
|
3302
|
+
id: string;
|
|
3303
|
+
};
|
|
3304
|
+
query?: never;
|
|
3305
|
+
url: '/api/v1/asset-property/{id}';
|
|
3306
|
+
};
|
|
3307
|
+
type AssetPropertyControllerDeleteAssetPropertyErrors = {
|
|
3308
|
+
/**
|
|
3309
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3310
|
+
*/
|
|
3311
|
+
401: ApiErrorResponse;
|
|
3312
|
+
/**
|
|
3313
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3314
|
+
*/
|
|
3315
|
+
403: ApiErrorResponse;
|
|
3316
|
+
/**
|
|
3317
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
3318
|
+
*/
|
|
3319
|
+
404: ApiErrorResponse;
|
|
3320
|
+
/**
|
|
3321
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3322
|
+
*/
|
|
3323
|
+
429: ApiErrorResponse;
|
|
3324
|
+
/**
|
|
3325
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3326
|
+
*/
|
|
3327
|
+
500: ApiErrorResponse;
|
|
3328
|
+
};
|
|
3329
|
+
type AssetPropertyControllerDeleteAssetPropertyError = AssetPropertyControllerDeleteAssetPropertyErrors[keyof AssetPropertyControllerDeleteAssetPropertyErrors];
|
|
3330
|
+
type AssetPropertyControllerDeleteAssetPropertyResponses = {
|
|
3331
|
+
/**
|
|
3332
|
+
* Asset property successfully deleted
|
|
3333
|
+
*/
|
|
3334
|
+
200: DeleteAssetPropertyResponseDto;
|
|
3335
|
+
};
|
|
3336
|
+
type AssetPropertyControllerDeleteAssetPropertyResponse = AssetPropertyControllerDeleteAssetPropertyResponses[keyof AssetPropertyControllerDeleteAssetPropertyResponses];
|
|
3337
|
+
type AssetPropertyControllerUpdateAssetPropertyData = {
|
|
3338
|
+
/**
|
|
3339
|
+
* Asset property update data
|
|
3340
|
+
*/
|
|
3341
|
+
body: UpdateAssetPropertyDto;
|
|
3342
|
+
headers?: {
|
|
3343
|
+
/**
|
|
3344
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
3345
|
+
*/
|
|
3346
|
+
'Idempotency-Key'?: string;
|
|
3347
|
+
};
|
|
3348
|
+
path: {
|
|
3349
|
+
/**
|
|
3350
|
+
* Asset property ID. On public responses this is returned as a string.
|
|
3351
|
+
*/
|
|
3352
|
+
id: string;
|
|
3353
|
+
};
|
|
3354
|
+
query?: never;
|
|
3355
|
+
url: '/api/v1/asset-property/{id}';
|
|
3356
|
+
};
|
|
3357
|
+
type AssetPropertyControllerUpdateAssetPropertyErrors = {
|
|
3358
|
+
/**
|
|
3359
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
3360
|
+
*/
|
|
3361
|
+
400: ApiErrorResponse;
|
|
3362
|
+
/**
|
|
3363
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3364
|
+
*/
|
|
3365
|
+
401: ApiErrorResponse;
|
|
3366
|
+
/**
|
|
3367
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3368
|
+
*/
|
|
3369
|
+
403: ApiErrorResponse;
|
|
3370
|
+
/**
|
|
3371
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
3372
|
+
*/
|
|
3373
|
+
404: ApiErrorResponse;
|
|
3374
|
+
/**
|
|
3375
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3376
|
+
*/
|
|
3377
|
+
429: ApiErrorResponse;
|
|
3378
|
+
/**
|
|
3379
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3380
|
+
*/
|
|
3381
|
+
500: ApiErrorResponse;
|
|
3382
|
+
};
|
|
3383
|
+
type AssetPropertyControllerUpdateAssetPropertyError = AssetPropertyControllerUpdateAssetPropertyErrors[keyof AssetPropertyControllerUpdateAssetPropertyErrors];
|
|
3384
|
+
type AssetPropertyControllerUpdateAssetPropertyResponses = {
|
|
3385
|
+
/**
|
|
3386
|
+
* Asset property successfully updated
|
|
3387
|
+
*/
|
|
3388
|
+
200: AssetPropertyResponseDto;
|
|
3389
|
+
};
|
|
3390
|
+
type AssetPropertyControllerUpdateAssetPropertyResponse = AssetPropertyControllerUpdateAssetPropertyResponses[keyof AssetPropertyControllerUpdateAssetPropertyResponses];
|
|
3391
|
+
type AssetClassControllerGetAssetClassListData = {
|
|
3392
|
+
body?: never;
|
|
3393
|
+
path?: never;
|
|
3394
|
+
query?: {
|
|
3395
|
+
/**
|
|
3396
|
+
* Number of items per page
|
|
3397
|
+
*/
|
|
3398
|
+
per_page?: number;
|
|
3399
|
+
/**
|
|
3400
|
+
* Page number
|
|
3401
|
+
*/
|
|
3402
|
+
page?: number;
|
|
3403
|
+
/**
|
|
3404
|
+
* Sort direction
|
|
3405
|
+
*/
|
|
3406
|
+
direction?: 'asc' | 'desc';
|
|
3407
|
+
/**
|
|
3408
|
+
* Sort field
|
|
3409
|
+
*/
|
|
3410
|
+
sort?: string;
|
|
3411
|
+
/**
|
|
3412
|
+
* Filter on the make field of asset classes
|
|
3413
|
+
*/
|
|
3414
|
+
asset_class_name?: string;
|
|
3415
|
+
/**
|
|
3416
|
+
* Filter on the model field of asset classes
|
|
3417
|
+
*/
|
|
3418
|
+
asset_sub_class_name?: string;
|
|
3419
|
+
/**
|
|
3420
|
+
* Filter on the category name field of asset classes
|
|
3421
|
+
*/
|
|
3422
|
+
asset_category?: string;
|
|
3423
|
+
/**
|
|
3424
|
+
* Range filter on the modified field (from date)
|
|
3425
|
+
*/
|
|
3426
|
+
date_modified_from?: string;
|
|
3427
|
+
/**
|
|
3428
|
+
* Range filter on the modified field (to date)
|
|
3429
|
+
*/
|
|
3430
|
+
date_modified_to?: string;
|
|
3431
|
+
};
|
|
3432
|
+
url: '/api/v1/asset-class/list';
|
|
3433
|
+
};
|
|
3434
|
+
type AssetClassControllerGetAssetClassListErrors = {
|
|
3435
|
+
/**
|
|
3436
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
3437
|
+
*/
|
|
3438
|
+
400: ApiErrorResponse;
|
|
3439
|
+
/**
|
|
3440
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3441
|
+
*/
|
|
3442
|
+
401: ApiErrorResponse;
|
|
3443
|
+
/**
|
|
3444
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3445
|
+
*/
|
|
3446
|
+
403: ApiErrorResponse;
|
|
3447
|
+
/**
|
|
3448
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3449
|
+
*/
|
|
3450
|
+
429: ApiErrorResponse;
|
|
3451
|
+
/**
|
|
3452
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3453
|
+
*/
|
|
3454
|
+
500: ApiErrorResponse;
|
|
3455
|
+
};
|
|
3456
|
+
type AssetClassControllerGetAssetClassListError = AssetClassControllerGetAssetClassListErrors[keyof AssetClassControllerGetAssetClassListErrors];
|
|
3457
|
+
type AssetClassControllerGetAssetClassListResponses = {
|
|
3458
|
+
/**
|
|
3459
|
+
* Paginated list of asset classes
|
|
3460
|
+
*/
|
|
3461
|
+
200: AssetClassListResponseDto;
|
|
3462
|
+
};
|
|
3463
|
+
type AssetClassControllerGetAssetClassListResponse = AssetClassControllerGetAssetClassListResponses[keyof AssetClassControllerGetAssetClassListResponses];
|
|
3464
|
+
type AssetClassControllerCreateAssetClassData = {
|
|
3465
|
+
/**
|
|
3466
|
+
* Asset class creation data
|
|
3467
|
+
*/
|
|
3468
|
+
body: CreateAssetClassDto;
|
|
3469
|
+
headers?: {
|
|
3470
|
+
/**
|
|
3471
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
3472
|
+
*/
|
|
3473
|
+
'Idempotency-Key'?: string;
|
|
3474
|
+
};
|
|
3475
|
+
path?: never;
|
|
3476
|
+
query?: never;
|
|
3477
|
+
url: '/api/v1/asset-class';
|
|
3478
|
+
};
|
|
3479
|
+
type AssetClassControllerCreateAssetClassErrors = {
|
|
3480
|
+
/**
|
|
3481
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
3482
|
+
*/
|
|
3483
|
+
400: ApiErrorResponse;
|
|
3484
|
+
/**
|
|
3485
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3486
|
+
*/
|
|
3487
|
+
401: ApiErrorResponse;
|
|
3488
|
+
/**
|
|
3489
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3490
|
+
*/
|
|
3491
|
+
403: ApiErrorResponse;
|
|
3492
|
+
/**
|
|
3493
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
3494
|
+
*/
|
|
3495
|
+
404: ApiErrorResponse;
|
|
3496
|
+
/**
|
|
3497
|
+
* The request conflicts with current state. Common cases: a unique business identifier already exists (`conflict`), or an `Idempotency-Key` was reused with a different request body (`idempotency_key_conflict`).
|
|
3498
|
+
*/
|
|
3499
|
+
409: ApiErrorResponse;
|
|
3500
|
+
/**
|
|
3501
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3502
|
+
*/
|
|
3503
|
+
429: ApiErrorResponse;
|
|
3504
|
+
/**
|
|
3505
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3506
|
+
*/
|
|
3507
|
+
500: ApiErrorResponse;
|
|
3508
|
+
};
|
|
3509
|
+
type AssetClassControllerCreateAssetClassError = AssetClassControllerCreateAssetClassErrors[keyof AssetClassControllerCreateAssetClassErrors];
|
|
3510
|
+
type AssetClassControllerCreateAssetClassResponses = {
|
|
3511
|
+
/**
|
|
3512
|
+
* Asset class successfully created
|
|
3513
|
+
*/
|
|
3514
|
+
201: AssetClassResponseDto;
|
|
3515
|
+
};
|
|
3516
|
+
type AssetClassControllerCreateAssetClassResponse = AssetClassControllerCreateAssetClassResponses[keyof AssetClassControllerCreateAssetClassResponses];
|
|
3517
|
+
type AssetClassControllerUpdateAssetClassData = {
|
|
3518
|
+
/**
|
|
3519
|
+
* Asset class update data
|
|
3520
|
+
*/
|
|
3521
|
+
body: UpdateAssetClassDto;
|
|
3522
|
+
headers?: {
|
|
3523
|
+
/**
|
|
3524
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
3525
|
+
*/
|
|
3526
|
+
'Idempotency-Key'?: string;
|
|
3527
|
+
};
|
|
3528
|
+
path: {
|
|
3529
|
+
/**
|
|
3530
|
+
* Asset class public ID (UUID)
|
|
3531
|
+
*/
|
|
3532
|
+
id: string;
|
|
3533
|
+
};
|
|
3534
|
+
query?: never;
|
|
3535
|
+
url: '/api/v1/asset-class/{id}';
|
|
3536
|
+
};
|
|
3537
|
+
type AssetClassControllerUpdateAssetClassErrors = {
|
|
3538
|
+
/**
|
|
3539
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
3540
|
+
*/
|
|
3541
|
+
400: ApiErrorResponse;
|
|
3542
|
+
/**
|
|
3543
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3544
|
+
*/
|
|
3545
|
+
401: ApiErrorResponse;
|
|
3546
|
+
/**
|
|
3547
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3548
|
+
*/
|
|
3549
|
+
403: ApiErrorResponse;
|
|
3550
|
+
/**
|
|
3551
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
3552
|
+
*/
|
|
3553
|
+
404: ApiErrorResponse;
|
|
3554
|
+
/**
|
|
3555
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3556
|
+
*/
|
|
3557
|
+
429: ApiErrorResponse;
|
|
3558
|
+
/**
|
|
3559
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3560
|
+
*/
|
|
3561
|
+
500: ApiErrorResponse;
|
|
3562
|
+
};
|
|
3563
|
+
type AssetClassControllerUpdateAssetClassError = AssetClassControllerUpdateAssetClassErrors[keyof AssetClassControllerUpdateAssetClassErrors];
|
|
3564
|
+
type AssetClassControllerUpdateAssetClassResponses = {
|
|
3565
|
+
/**
|
|
3566
|
+
* Asset class successfully updated
|
|
3567
|
+
*/
|
|
3568
|
+
200: AssetClassResponseDto;
|
|
3569
|
+
};
|
|
3570
|
+
type AssetClassControllerUpdateAssetClassResponse = AssetClassControllerUpdateAssetClassResponses[keyof AssetClassControllerUpdateAssetClassResponses];
|
|
3571
|
+
type SiteControllerListSitesData = {
|
|
3572
|
+
body?: never;
|
|
3573
|
+
path?: never;
|
|
3574
|
+
query?: {
|
|
3575
|
+
/**
|
|
3576
|
+
* Number of results per page (default: 15)
|
|
3577
|
+
*/
|
|
3578
|
+
per_page?: number;
|
|
3579
|
+
/**
|
|
3580
|
+
* Page number (default: 1)
|
|
3581
|
+
*/
|
|
3582
|
+
page?: number;
|
|
3583
|
+
/**
|
|
3584
|
+
* Sort direction (default: asc)
|
|
3585
|
+
*/
|
|
3586
|
+
direction?: 'asc' | 'desc';
|
|
3587
|
+
/**
|
|
3588
|
+
* Field to sort by (name, created_at, updated_at, category)
|
|
3589
|
+
*/
|
|
3590
|
+
sort?: string;
|
|
3591
|
+
/**
|
|
3592
|
+
* Filter by site name (partial match)
|
|
3593
|
+
*/
|
|
3594
|
+
site_name?: string;
|
|
3595
|
+
/**
|
|
3596
|
+
* Filter by site category name
|
|
3597
|
+
*/
|
|
3598
|
+
site_category?: string;
|
|
3599
|
+
/**
|
|
3600
|
+
* BigInt as string. IDs are stringified at the serialization boundary.
|
|
3601
|
+
*/
|
|
3602
|
+
site_category_id?: string;
|
|
3603
|
+
/**
|
|
3604
|
+
* Return sites modified since the date provided
|
|
3605
|
+
*/
|
|
3606
|
+
date_modified_from?: string;
|
|
3607
|
+
/**
|
|
3608
|
+
* Return sites modified to the date provided
|
|
3609
|
+
*/
|
|
3610
|
+
date_modified_to?: string;
|
|
3611
|
+
};
|
|
3612
|
+
url: '/api/v1/site/list';
|
|
3613
|
+
};
|
|
3614
|
+
type SiteControllerListSitesErrors = {
|
|
3615
|
+
/**
|
|
3616
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
3617
|
+
*/
|
|
3618
|
+
400: ApiErrorResponse;
|
|
3619
|
+
/**
|
|
3620
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3621
|
+
*/
|
|
3622
|
+
401: ApiErrorResponse;
|
|
3623
|
+
/**
|
|
3624
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3625
|
+
*/
|
|
3626
|
+
403: ApiErrorResponse;
|
|
3627
|
+
/**
|
|
3628
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3629
|
+
*/
|
|
3630
|
+
429: ApiErrorResponse;
|
|
3631
|
+
/**
|
|
3632
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3633
|
+
*/
|
|
3634
|
+
500: ApiErrorResponse;
|
|
3635
|
+
};
|
|
3636
|
+
type SiteControllerListSitesError = SiteControllerListSitesErrors[keyof SiteControllerListSitesErrors];
|
|
3637
|
+
type SiteControllerListSitesResponses = {
|
|
3638
|
+
/**
|
|
3639
|
+
* List of sites with pagination info
|
|
3640
|
+
*/
|
|
3641
|
+
200: ListSitesResponseDto;
|
|
3642
|
+
};
|
|
3643
|
+
type SiteControllerListSitesResponse = SiteControllerListSitesResponses[keyof SiteControllerListSitesResponses];
|
|
3644
|
+
type SiteControllerCreateSiteData = {
|
|
3645
|
+
/**
|
|
3646
|
+
* Site creation data
|
|
3647
|
+
*/
|
|
3648
|
+
body: CreateSiteDto;
|
|
3649
|
+
headers?: {
|
|
3650
|
+
/**
|
|
3651
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
3652
|
+
*/
|
|
3653
|
+
'Idempotency-Key'?: string;
|
|
3654
|
+
};
|
|
3655
|
+
path?: never;
|
|
3656
|
+
query?: never;
|
|
3657
|
+
url: '/api/v1/site';
|
|
3658
|
+
};
|
|
3659
|
+
type SiteControllerCreateSiteErrors = {
|
|
3660
|
+
/**
|
|
3661
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
3662
|
+
*/
|
|
3663
|
+
400: ApiErrorResponse;
|
|
3664
|
+
/**
|
|
3665
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3666
|
+
*/
|
|
3667
|
+
401: ApiErrorResponse;
|
|
3668
|
+
/**
|
|
3669
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3670
|
+
*/
|
|
3671
|
+
403: ApiErrorResponse;
|
|
3672
|
+
/**
|
|
3673
|
+
* The request conflicts with current state. Common cases: a unique business identifier already exists (`conflict`), or an `Idempotency-Key` was reused with a different request body (`idempotency_key_conflict`).
|
|
3674
|
+
*/
|
|
3675
|
+
409: ApiErrorResponse;
|
|
3676
|
+
/**
|
|
3677
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3678
|
+
*/
|
|
3679
|
+
429: ApiErrorResponse;
|
|
3680
|
+
/**
|
|
3681
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3682
|
+
*/
|
|
3683
|
+
500: ApiErrorResponse;
|
|
3684
|
+
};
|
|
3685
|
+
type SiteControllerCreateSiteError = SiteControllerCreateSiteErrors[keyof SiteControllerCreateSiteErrors];
|
|
3686
|
+
type SiteControllerCreateSiteResponses = {
|
|
3687
|
+
/**
|
|
3688
|
+
* Site successfully created
|
|
3689
|
+
*/
|
|
3690
|
+
201: SiteResponseDto;
|
|
3691
|
+
};
|
|
3692
|
+
type SiteControllerCreateSiteResponse = SiteControllerCreateSiteResponses[keyof SiteControllerCreateSiteResponses];
|
|
3693
|
+
type SiteControllerDeleteSiteData = {
|
|
3694
|
+
body?: never;
|
|
3695
|
+
path: {
|
|
3696
|
+
/**
|
|
3697
|
+
* Site public ID (UUID)
|
|
3698
|
+
*/
|
|
3699
|
+
id: string;
|
|
3700
|
+
};
|
|
3701
|
+
query?: never;
|
|
3702
|
+
url: '/api/v1/site/{id}';
|
|
3703
|
+
};
|
|
3704
|
+
type SiteControllerDeleteSiteErrors = {
|
|
3705
|
+
/**
|
|
3706
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3707
|
+
*/
|
|
3708
|
+
401: ApiErrorResponse;
|
|
3709
|
+
/**
|
|
3710
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3711
|
+
*/
|
|
3712
|
+
403: ApiErrorResponse;
|
|
3713
|
+
/**
|
|
3714
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
3715
|
+
*/
|
|
3716
|
+
404: ApiErrorResponse;
|
|
3717
|
+
/**
|
|
3718
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3719
|
+
*/
|
|
3720
|
+
429: ApiErrorResponse;
|
|
3721
|
+
/**
|
|
3722
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3723
|
+
*/
|
|
3724
|
+
500: ApiErrorResponse;
|
|
3725
|
+
};
|
|
3726
|
+
type SiteControllerDeleteSiteError = SiteControllerDeleteSiteErrors[keyof SiteControllerDeleteSiteErrors];
|
|
3727
|
+
type SiteControllerDeleteSiteResponses = {
|
|
3728
|
+
/**
|
|
3729
|
+
* Site successfully deleted
|
|
3730
|
+
*/
|
|
3731
|
+
200: DeleteSiteResponseDto;
|
|
3732
|
+
};
|
|
3733
|
+
type SiteControllerDeleteSiteResponse = SiteControllerDeleteSiteResponses[keyof SiteControllerDeleteSiteResponses];
|
|
3734
|
+
type SiteControllerUpdateSiteData = {
|
|
3735
|
+
/**
|
|
3736
|
+
* Site update data
|
|
3737
|
+
*/
|
|
3738
|
+
body: UpdateSiteDto;
|
|
3739
|
+
headers?: {
|
|
3740
|
+
/**
|
|
3741
|
+
* Opaque client-generated key (any string up to 255 chars, ULID or UUID recommended) that makes this POST/PATCH safe to retry. The server stores the first successful response under this key for 24 hours; retries with the same key replay the stored response and set `Idempotent-Replayed: true`. Reusing the key with a different body returns `409 idempotency_key_conflict`. Omit on read-only GETs — they are already idempotent.
|
|
3742
|
+
*/
|
|
3743
|
+
'Idempotency-Key'?: string;
|
|
3744
|
+
};
|
|
3745
|
+
path: {
|
|
3746
|
+
/**
|
|
3747
|
+
* Site public ID (UUID)
|
|
3748
|
+
*/
|
|
3749
|
+
id: string;
|
|
3750
|
+
};
|
|
3751
|
+
query?: never;
|
|
3752
|
+
url: '/api/v1/site/{id}';
|
|
3753
|
+
};
|
|
3754
|
+
type SiteControllerUpdateSiteErrors = {
|
|
3755
|
+
/**
|
|
3756
|
+
* Validation failed or the request was malformed. The response body will use `code: validation_error` (with `details[]` populated when the failure can be pinpointed to specific fields) or the more generic `code: bad_request`.
|
|
3757
|
+
*/
|
|
3758
|
+
400: ApiErrorResponse;
|
|
3759
|
+
/**
|
|
3760
|
+
* The Bearer token is missing, malformed, or no longer valid. Verify the `Authorization` header is set to `Bearer wk_…` and that the key has not been revoked or rotated out.
|
|
3761
|
+
*/
|
|
3762
|
+
401: ApiErrorResponse;
|
|
3763
|
+
/**
|
|
3764
|
+
* The Bearer token authenticated successfully but cannot perform this action. Two distinct codes share this status: `forbidden` (missing permission scope) and `ip_not_allowed` (source IP not in the API key's allowlist).
|
|
3765
|
+
*/
|
|
3766
|
+
403: ApiErrorResponse;
|
|
3767
|
+
/**
|
|
3768
|
+
* No resource was found at the requested location, or a referenced resource (`publicId` in the body) doesn't exist or is not visible to the calling company.
|
|
3769
|
+
*/
|
|
3770
|
+
404: ApiErrorResponse;
|
|
3771
|
+
/**
|
|
3772
|
+
* Rate limit exceeded for this API key. Inspect `X-RateLimit-Reset` and `Retry-After` to find out when the window resets.
|
|
3773
|
+
*/
|
|
3774
|
+
429: ApiErrorResponse;
|
|
3775
|
+
/**
|
|
3776
|
+
* Something went wrong on our side. The `request_id` field in the response body matches the entry in our logs — include it when reporting the issue.
|
|
3777
|
+
*/
|
|
3778
|
+
500: ApiErrorResponse;
|
|
3779
|
+
};
|
|
3780
|
+
type SiteControllerUpdateSiteError = SiteControllerUpdateSiteErrors[keyof SiteControllerUpdateSiteErrors];
|
|
3781
|
+
type SiteControllerUpdateSiteResponses = {
|
|
3782
|
+
/**
|
|
3783
|
+
* Site successfully updated
|
|
3784
|
+
*/
|
|
3785
|
+
200: SiteResponseDto;
|
|
3786
|
+
};
|
|
3787
|
+
type SiteControllerUpdateSiteResponse = SiteControllerUpdateSiteResponses[keyof SiteControllerUpdateSiteResponses];
|
|
3788
|
+
type ClientOptions = {
|
|
3789
|
+
baseUrl: 'https://lrfq4vihdi.execute-api.ap-southeast-2.amazonaws.com' | (string & {});
|
|
3790
|
+
};
|
|
3791
|
+
|
|
3792
|
+
type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options$1<TData, ThrowOnError> & {
|
|
3793
|
+
/**
|
|
3794
|
+
* You can provide a client instance returned by `createClient()` instead of
|
|
3795
|
+
* individual options. This might be also useful if you want to implement a
|
|
3796
|
+
* custom client.
|
|
3797
|
+
*/
|
|
3798
|
+
client?: Client;
|
|
3799
|
+
/**
|
|
3800
|
+
* You can pass arbitrary values through the `meta` object. This can be
|
|
3801
|
+
* used to access values that aren't defined as part of the SDK function.
|
|
3802
|
+
*/
|
|
3803
|
+
meta?: Record<string, unknown>;
|
|
3804
|
+
};
|
|
3805
|
+
/**
|
|
3806
|
+
* Create a new asset (Public API)
|
|
3807
|
+
* Creates a new asset entry in the database via public API. Requires Bearer token authentication. Validates all entity references by their public_id and ensures they belong to the authenticated company. Supports `Idempotency-Key` for safe retries.
|
|
3808
|
+
*/
|
|
3809
|
+
declare const assetControllerCreateAssetPublic: <ThrowOnError extends boolean = false>(options: Options<AssetControllerCreateAssetPublicData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<{
|
|
3810
|
+
id?: string;
|
|
3811
|
+
publicId?: string;
|
|
3812
|
+
assetNumber?: string;
|
|
3813
|
+
assetClassId?: string;
|
|
3814
|
+
siteId?: string;
|
|
3815
|
+
companyId?: string;
|
|
3816
|
+
assetPhotoFile?: string | null;
|
|
3817
|
+
assetPhotoInfo?: string | null;
|
|
3818
|
+
lat?: number | null;
|
|
3819
|
+
lng?: number | null;
|
|
3820
|
+
createdById?: string;
|
|
3821
|
+
updatedById?: string;
|
|
3822
|
+
createdAt?: string;
|
|
3823
|
+
updatedAt?: string;
|
|
3824
|
+
deletedAt?: string | null;
|
|
3825
|
+
deletedById?: string | null;
|
|
3826
|
+
}, ApiErrorResponse, ThrowOnError>;
|
|
3827
|
+
/**
|
|
3828
|
+
* List assets with filters
|
|
3829
|
+
* Returns a paginated list of assets. Supports filtering by asset_class_name, created_by (user public_id), asset_number, and site_name. Also supports sorting and pagination. Requires Bearer token authentication.
|
|
3830
|
+
*/
|
|
3831
|
+
declare const assetControllerListAssets: <ThrowOnError extends boolean = false>(options?: Options<AssetControllerListAssetsData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<{
|
|
3832
|
+
data?: Array<{
|
|
3833
|
+
id?: string;
|
|
3834
|
+
publicId?: string;
|
|
3835
|
+
assetNumber?: string;
|
|
3836
|
+
assetClassId?: string;
|
|
3837
|
+
siteId?: string;
|
|
3838
|
+
companyId?: string;
|
|
3839
|
+
assetPhotoFile?: string | null;
|
|
3840
|
+
assetPhotoInfo?: string | null;
|
|
3841
|
+
lat?: number | null;
|
|
3842
|
+
lng?: number | null;
|
|
3843
|
+
createdById?: string;
|
|
3844
|
+
updatedById?: string;
|
|
3845
|
+
createdAt?: string;
|
|
3846
|
+
updatedAt?: string;
|
|
3847
|
+
deletedAt?: string | null;
|
|
3848
|
+
deletedById?: string | null;
|
|
3849
|
+
}>;
|
|
3850
|
+
pagination?: {
|
|
3851
|
+
page?: number;
|
|
3852
|
+
per_page?: number;
|
|
3853
|
+
total?: number;
|
|
3854
|
+
total_pages?: number;
|
|
3855
|
+
};
|
|
3856
|
+
}, ApiErrorResponse, ThrowOnError>;
|
|
3857
|
+
/**
|
|
3858
|
+
* Get asset by public ID
|
|
3859
|
+
* Retrieves an asset by its public_id. Returns complete asset information. Requires Bearer token authentication.
|
|
3860
|
+
*/
|
|
3861
|
+
declare const assetControllerGetAsset: <ThrowOnError extends boolean = false>(options: Options<AssetControllerGetAssetData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<{
|
|
3862
|
+
id?: string;
|
|
3863
|
+
publicId?: string;
|
|
3864
|
+
assetNumber?: string;
|
|
3865
|
+
assetClassId?: string;
|
|
3866
|
+
siteId?: string;
|
|
3867
|
+
companyId?: string;
|
|
3868
|
+
assetPhotoFile?: string | null;
|
|
3869
|
+
assetPhotoInfo?: string | null;
|
|
3870
|
+
lat?: number | null;
|
|
3871
|
+
lng?: number | null;
|
|
3872
|
+
createdById?: string;
|
|
3873
|
+
updatedById?: string;
|
|
3874
|
+
createdAt?: string;
|
|
3875
|
+
updatedAt?: string;
|
|
3876
|
+
deletedAt?: string | null;
|
|
3877
|
+
deletedById?: string | null;
|
|
3878
|
+
}, ApiErrorResponse, ThrowOnError>;
|
|
3879
|
+
/**
|
|
3880
|
+
* Update asset by public ID
|
|
3881
|
+
* Partially updates an asset by its public_id. All fields are optional. Requires Bearer token authentication with asset:update permission. Validates asset_class and site_id references by public_id and ensures they belong to the same company as the asset. Supports `Idempotency-Key` for safe retries.
|
|
3882
|
+
*/
|
|
3883
|
+
declare const assetControllerUpdateAsset: <ThrowOnError extends boolean = false>(options: Options<AssetControllerUpdateAssetData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<{
|
|
3884
|
+
id?: string;
|
|
3885
|
+
publicId?: string;
|
|
3886
|
+
assetNumber?: string;
|
|
3887
|
+
assetClassId?: string;
|
|
3888
|
+
siteId?: string;
|
|
3889
|
+
companyId?: string;
|
|
3890
|
+
assetPhotoFile?: string | null;
|
|
3891
|
+
assetPhotoInfo?: string | null;
|
|
3892
|
+
lat?: number | null;
|
|
3893
|
+
lng?: number | null;
|
|
3894
|
+
createdById?: string;
|
|
3895
|
+
updatedById?: string;
|
|
3896
|
+
createdAt?: string;
|
|
3897
|
+
updatedAt?: string;
|
|
3898
|
+
deletedAt?: string | null;
|
|
3899
|
+
deletedById?: string | null;
|
|
3900
|
+
}, ApiErrorResponse, ThrowOnError>;
|
|
3901
|
+
/**
|
|
3902
|
+
* List users
|
|
3903
|
+
* Returns a paginated list of users for the authenticated company. Supports filtering by various fields and sorting. Requires Bearer token authentication with user:list permission.
|
|
3904
|
+
*/
|
|
3905
|
+
declare const userControllerListUsers: <ThrowOnError extends boolean = false>(options?: Options<UserControllerListUsersData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<{
|
|
3906
|
+
data?: Array<UserResponseDto>;
|
|
3907
|
+
page?: number;
|
|
3908
|
+
per_page?: number;
|
|
3909
|
+
total?: number;
|
|
3910
|
+
total_pages?: number;
|
|
3911
|
+
}, ApiErrorResponse, ThrowOnError>;
|
|
3912
|
+
/**
|
|
3913
|
+
* Get user by public ID
|
|
3914
|
+
* Returns detailed information about a specific user including their properties. Requires Bearer token authentication with user:read permission.
|
|
3915
|
+
*/
|
|
3916
|
+
declare const userControllerGetUser: <ThrowOnError extends boolean = false>(options: Options<UserControllerGetUserData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<UserResponseDto, ApiErrorResponse, ThrowOnError>;
|
|
3917
|
+
/**
|
|
3918
|
+
* Update user information
|
|
3919
|
+
* Updates user fields including first name, last name, email, contact number, and profile photo. Photo is uploaded to S3 at :company_id/user-profile-photos/:filename. Requires Bearer token authentication with user:update permission for public API. Supports `Idempotency-Key` for safe retries.
|
|
3920
|
+
*/
|
|
3921
|
+
declare const userControllerUpdateUser: <ThrowOnError extends boolean = false>(options: Options<UserControllerUpdateUserData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<{
|
|
3922
|
+
id?: string;
|
|
3923
|
+
publicId?: string;
|
|
3924
|
+
firstName?: string;
|
|
3925
|
+
lastName?: string;
|
|
3926
|
+
email?: string;
|
|
3927
|
+
preferredLanguage?: string | null;
|
|
3928
|
+
contactNumber?: string | null;
|
|
3929
|
+
profilePhotoFile?: string | null;
|
|
3930
|
+
profilePhotoInfo?: string | null;
|
|
3931
|
+
employeeId?: string | null;
|
|
3932
|
+
pin?: string | null;
|
|
3933
|
+
changePinRequired?: boolean;
|
|
3934
|
+
lastLoginAt?: string | null;
|
|
3935
|
+
loginAttemptCount?: number;
|
|
3936
|
+
loginDisabledAt?: string | null;
|
|
3937
|
+
createdById?: string;
|
|
3938
|
+
updatedById?: string;
|
|
3939
|
+
createdAt?: string;
|
|
3940
|
+
updatedAt?: string;
|
|
3941
|
+
deletedAt?: string | null;
|
|
3942
|
+
deletedById?: string | null;
|
|
3943
|
+
}, ApiErrorResponse, ThrowOnError>;
|
|
3944
|
+
/**
|
|
3945
|
+
* Create a new user
|
|
3946
|
+
* Creates a new user entry in the database along with associated relationships (user_site, user_company, user_role). Validates all entity references by their public_id. Supports optional profile photo upload. Duplicate detection: returns 409 if phone number already exists in the company (hard block) or if same name exists at the site (soft block, override with force=true). Requires Bearer token authentication with user:create permission. Supports `Idempotency-Key` for safe retries.
|
|
3947
|
+
*/
|
|
3948
|
+
declare const userControllerCreateUser: <ThrowOnError extends boolean = false>(options: Options<UserControllerCreateUserData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<{
|
|
3949
|
+
user?: {
|
|
3950
|
+
id?: string;
|
|
3951
|
+
publicId?: string;
|
|
3952
|
+
firstName?: string;
|
|
3953
|
+
lastName?: string;
|
|
3954
|
+
email?: string;
|
|
3955
|
+
preferredLanguage?: string | null;
|
|
3956
|
+
contactNumber?: string | null;
|
|
3957
|
+
profilePhotoFile?: string | null;
|
|
3958
|
+
profilePhotoInfo?: string | null;
|
|
3959
|
+
employeeId?: string | null;
|
|
3960
|
+
pin?: string | null;
|
|
3961
|
+
changePinRequired?: boolean;
|
|
3962
|
+
lastLoginAt?: string | null;
|
|
3963
|
+
loginAttemptCount?: number;
|
|
3964
|
+
loginDisabledAt?: string | null;
|
|
3965
|
+
createdById?: string;
|
|
3966
|
+
updatedById?: string;
|
|
3967
|
+
createdAt?: string;
|
|
3968
|
+
updatedAt?: string;
|
|
3969
|
+
deletedAt?: string | null;
|
|
3970
|
+
deletedById?: string | null;
|
|
3971
|
+
};
|
|
3972
|
+
userSite?: {
|
|
3973
|
+
id?: string;
|
|
3974
|
+
userId?: string;
|
|
3975
|
+
siteId?: string;
|
|
3976
|
+
companyId?: string;
|
|
3977
|
+
createdById?: string;
|
|
3978
|
+
updatedById?: string;
|
|
3979
|
+
createdAt?: string;
|
|
3980
|
+
updatedAt?: string;
|
|
3981
|
+
deletedAt?: string | null;
|
|
3982
|
+
deletedById?: string | null;
|
|
3983
|
+
};
|
|
3984
|
+
userRole?: {
|
|
3985
|
+
id?: string;
|
|
3986
|
+
userId?: string;
|
|
3987
|
+
companyId?: string;
|
|
3988
|
+
roleId?: string;
|
|
3989
|
+
assignedById?: string;
|
|
3990
|
+
assignedAt?: string;
|
|
3991
|
+
expiresAt?: string | null;
|
|
3992
|
+
createdById?: string;
|
|
3993
|
+
updatedById?: string;
|
|
3994
|
+
createdAt?: string;
|
|
3995
|
+
updatedAt?: string;
|
|
3996
|
+
deletedAt?: string | null;
|
|
3997
|
+
deletedById?: string | null;
|
|
3998
|
+
};
|
|
3999
|
+
}, ApiErrorResponse, ThrowOnError>;
|
|
4000
|
+
/**
|
|
4001
|
+
* List inspections
|
|
4002
|
+
* Returns a paginated list of inspections for the authenticated company. Supports filtering by various fields and sorting. Requires Bearer token authentication with inspection:read permission.
|
|
4003
|
+
*/
|
|
4004
|
+
declare const inspectionControllerListInspections: <ThrowOnError extends boolean = false>(options?: Options<InspectionControllerListInspectionsData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<ListInspectionsResponseDto, ApiErrorResponse, ThrowOnError>;
|
|
4005
|
+
/**
|
|
4006
|
+
* Submit inspection with nested data
|
|
4007
|
+
* Submits a complete inspection with nested responses, response options, extra infos, and media. Uses PostgreSQL transactions to ensure atomicity. Checks if inspection already exists by public_id to avoid duplicates. Handles nested response tree structure with left/right values. Timestamps in input are Unix epoch (milliseconds for inspection times, seconds for others). Requires Bearer token authentication. Internal tokens bypass permission check, public tokens require inspection:create permission. Supports `Idempotency-Key` for safe retries.
|
|
4008
|
+
*/
|
|
4009
|
+
declare const inspectionControllerSubmitInspectionPublic: <ThrowOnError extends boolean = false>(options: Options<InspectionControllerSubmitInspectionPublicData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<{
|
|
4010
|
+
success?: boolean;
|
|
4011
|
+
inspection_public_id?: string;
|
|
4012
|
+
inspection_id?: string;
|
|
4013
|
+
}, ApiErrorResponse, ThrowOnError>;
|
|
4014
|
+
/**
|
|
4015
|
+
* List issues
|
|
4016
|
+
* Returns a paginated list of issues for the authenticated company. Supports filtering by various fields and sorting. Requires Bearer token authentication with issue:read permission.
|
|
4017
|
+
*/
|
|
4018
|
+
declare const issueControllerListIssues: <ThrowOnError extends boolean = false>(options?: Options<IssueControllerListIssuesData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<ListIssuesResponseDto, ApiErrorResponse, ThrowOnError>;
|
|
4019
|
+
/**
|
|
4020
|
+
* Get issue by public ID
|
|
4021
|
+
* Returns detailed information about a specific issue. Requires Bearer token authentication with issue:read permission.
|
|
4022
|
+
*/
|
|
4023
|
+
declare const issueControllerGetIssuePublic: <ThrowOnError extends boolean = false>(options: Options<IssueControllerGetIssuePublicData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<IssueResponseDto, ApiErrorResponse, ThrowOnError>;
|
|
4024
|
+
/**
|
|
4025
|
+
* Update an issue
|
|
4026
|
+
* Updates an issue by its public_id. Requires Bearer token authentication with issue:update permission. Supports `Idempotency-Key` for safe retries.
|
|
4027
|
+
*/
|
|
4028
|
+
declare const issueControllerUpdateIssuePublic: <ThrowOnError extends boolean = false>(options: Options<IssueControllerUpdateIssuePublicData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<{
|
|
4029
|
+
success?: boolean;
|
|
4030
|
+
issue_id?: string;
|
|
4031
|
+
}, ApiErrorResponse, ThrowOnError>;
|
|
4032
|
+
/**
|
|
4033
|
+
* Get issue history by public ID
|
|
4034
|
+
* Returns all history entries for an issue identified by its public_id. History entries are ordered by changed_at timestamp in descending order (most recent first). Requires Bearer token authentication with issue:read permission.
|
|
4035
|
+
*/
|
|
4036
|
+
declare const issueControllerGetIssueHistoryPublic: <ThrowOnError extends boolean = false>(options: Options<IssueControllerGetIssueHistoryPublicData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<IssueHistoryResponseDto, ApiErrorResponse, ThrowOnError>;
|
|
4037
|
+
/**
|
|
4038
|
+
* Delete user property by ID
|
|
4039
|
+
* Performs a soft delete on a user property by its ID. Sets deletedAt and deletedById fields instead of permanently removing the record. Also creates a history record of the deletion. Requires Bearer token authentication with user:update permission.
|
|
4040
|
+
*/
|
|
4041
|
+
declare const userPropertyControllerDeleteUserProperty: <ThrowOnError extends boolean = false>(options: Options<UserPropertyControllerDeleteUserPropertyData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<DeleteUserPropertyResponseDto, ApiErrorResponse, ThrowOnError>;
|
|
4042
|
+
/**
|
|
4043
|
+
* Update user property value by ID
|
|
4044
|
+
* Partially updates the value of a user property by its ID. The value is stored in the appropriate column (text_value, numeric_value, or date_value) based on the property type defined in config_items. Also creates a history record of the change. Requires Bearer token authentication with user:update permission. Supports `Idempotency-Key` for safe retries.
|
|
4045
|
+
*/
|
|
4046
|
+
declare const userPropertyControllerUpdateUserProperty: <ThrowOnError extends boolean = false>(options: Options<UserPropertyControllerUpdateUserPropertyData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<UserPropertyResponseDto, ApiErrorResponse, ThrowOnError>;
|
|
4047
|
+
/**
|
|
4048
|
+
* List sites
|
|
4049
|
+
* Returns a paginated list of sites for the authenticated company. Supports filtering by name, category, and date modified. Requires Bearer token authentication with site:read permission.
|
|
4050
|
+
*/
|
|
4051
|
+
declare const siteControllerListSites: <ThrowOnError extends boolean = false>(options?: Options<SiteControllerListSitesData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<ListSitesResponseDto, ApiErrorResponse, ThrowOnError>;
|
|
4052
|
+
/**
|
|
4053
|
+
* Create a new site
|
|
4054
|
+
* Creates a new site for the authenticated company. Requires Bearer token authentication with site:update permission. Supports `Idempotency-Key` for safe retries.
|
|
4055
|
+
*/
|
|
4056
|
+
declare const siteControllerCreateSite: <ThrowOnError extends boolean = false>(options: Options<SiteControllerCreateSiteData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<SiteResponseDto, ApiErrorResponse, ThrowOnError>;
|
|
4057
|
+
/**
|
|
4058
|
+
* Delete site by public ID
|
|
4059
|
+
* Performs a soft delete on a site by its public_id (UUID). Sets deletedAt and deletedById fields instead of permanently removing the record. Requires Bearer token authentication with site:update permission.
|
|
4060
|
+
*/
|
|
4061
|
+
declare const siteControllerDeleteSite: <ThrowOnError extends boolean = false>(options: Options<SiteControllerDeleteSiteData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<DeleteSiteResponseDto, ApiErrorResponse, ThrowOnError>;
|
|
4062
|
+
/**
|
|
4063
|
+
* Update site by public ID
|
|
4064
|
+
* Updates a site by its public_id (UUID). Only provided fields will be updated. Requires Bearer token authentication with site:update permission. Supports `Idempotency-Key` for safe retries.
|
|
4065
|
+
*/
|
|
4066
|
+
declare const siteControllerUpdateSite: <ThrowOnError extends boolean = false>(options: Options<SiteControllerUpdateSiteData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<SiteResponseDto, ApiErrorResponse, ThrowOnError>;
|
|
4067
|
+
|
|
4068
|
+
/**
|
|
4069
|
+
* WakataClient — the hand-written ergonomic wrapper on top of the generated
|
|
4070
|
+
* `@hey-api/openapi-ts` output.
|
|
4071
|
+
*
|
|
4072
|
+
* Responsibilities:
|
|
4073
|
+
* - Hold the API key and base URL.
|
|
4074
|
+
* - Attach `Authorization`, `User-Agent`, and (on POST/PATCH) `Idempotency-Key`
|
|
4075
|
+
* headers via fetch interceptors.
|
|
4076
|
+
* - Map non-2xx responses to the typed error hierarchy in `./errors.ts`.
|
|
4077
|
+
* - Expose every generated operation under a per-tag namespace
|
|
4078
|
+
* (`client.assets.list(...)`, `client.users.list(...)`, etc.).
|
|
4079
|
+
*
|
|
4080
|
+
* Consumers who need the unwrapped generated operations can import them
|
|
4081
|
+
* directly from `@wakata-dev/api-client/generated`.
|
|
4082
|
+
*/
|
|
4083
|
+
|
|
4084
|
+
interface WakataClientOptions {
|
|
4085
|
+
/** Wakata API key (`wk_...`). Required. */
|
|
4086
|
+
apiKey: string;
|
|
4087
|
+
/** Override base URL. Defaults to `https://api.wakata.ai/api/v1`. */
|
|
4088
|
+
baseUrl?: string;
|
|
4089
|
+
/**
|
|
4090
|
+
* Custom `fetch` implementation. Defaults to `globalThis.fetch`. Useful
|
|
4091
|
+
* for tests or Node <18 polyfills.
|
|
4092
|
+
*/
|
|
4093
|
+
fetch?: typeof fetch;
|
|
4094
|
+
}
|
|
4095
|
+
/**
|
|
4096
|
+
* The wrapper takes Options from the generated `sdk.gen` but reshapes them so
|
|
4097
|
+
* the consumer doesn't have to think about the underlying client.
|
|
4098
|
+
*
|
|
4099
|
+
* We strip the generated `client` and `throwOnError` fields and tell the
|
|
4100
|
+
* generated function to throw via our interceptor instead.
|
|
4101
|
+
*/
|
|
4102
|
+
type WakataMethodOptions<T> = Omit<T, 'client' | 'throwOnError'>;
|
|
4103
|
+
/** Resource namespaces — one per OpenAPI tag, mirroring the spec. */
|
|
4104
|
+
interface AssetsResource {
|
|
4105
|
+
list: (options?: WakataMethodOptions<Parameters<typeof assetControllerListAssets>[0] extends infer O ? O : never>) => Promise<Awaited<ReturnType<typeof assetControllerListAssets>>['data']>;
|
|
4106
|
+
create: (options: WakataMethodOptions<Parameters<typeof assetControllerCreateAssetPublic>[0]>) => Promise<Awaited<ReturnType<typeof assetControllerCreateAssetPublic>>['data']>;
|
|
4107
|
+
get: (options: WakataMethodOptions<Parameters<typeof assetControllerGetAsset>[0]>) => Promise<Awaited<ReturnType<typeof assetControllerGetAsset>>['data']>;
|
|
4108
|
+
update: (options: WakataMethodOptions<Parameters<typeof assetControllerUpdateAsset>[0]>) => Promise<Awaited<ReturnType<typeof assetControllerUpdateAsset>>['data']>;
|
|
4109
|
+
}
|
|
4110
|
+
interface UsersResource {
|
|
4111
|
+
list: (options?: WakataMethodOptions<Parameters<typeof userControllerListUsers>[0] extends infer O ? O : never>) => Promise<Awaited<ReturnType<typeof userControllerListUsers>>['data']>;
|
|
4112
|
+
get: (options: WakataMethodOptions<Parameters<typeof userControllerGetUser>[0]>) => Promise<Awaited<ReturnType<typeof userControllerGetUser>>['data']>;
|
|
4113
|
+
create: (options: WakataMethodOptions<Parameters<typeof userControllerCreateUser>[0]>) => Promise<Awaited<ReturnType<typeof userControllerCreateUser>>['data']>;
|
|
4114
|
+
update: (options: WakataMethodOptions<Parameters<typeof userControllerUpdateUser>[0]>) => Promise<Awaited<ReturnType<typeof userControllerUpdateUser>>['data']>;
|
|
4115
|
+
}
|
|
4116
|
+
interface SitesResource {
|
|
4117
|
+
list: (options?: WakataMethodOptions<Parameters<typeof siteControllerListSites>[0] extends infer O ? O : never>) => Promise<Awaited<ReturnType<typeof siteControllerListSites>>['data']>;
|
|
4118
|
+
create: (options: WakataMethodOptions<Parameters<typeof siteControllerCreateSite>[0]>) => Promise<Awaited<ReturnType<typeof siteControllerCreateSite>>['data']>;
|
|
4119
|
+
update: (options: WakataMethodOptions<Parameters<typeof siteControllerUpdateSite>[0]>) => Promise<Awaited<ReturnType<typeof siteControllerUpdateSite>>['data']>;
|
|
4120
|
+
delete: (options: WakataMethodOptions<Parameters<typeof siteControllerDeleteSite>[0]>) => Promise<Awaited<ReturnType<typeof siteControllerDeleteSite>>['data']>;
|
|
4121
|
+
}
|
|
4122
|
+
interface InspectionsResource {
|
|
4123
|
+
list: (options?: WakataMethodOptions<Parameters<typeof inspectionControllerListInspections>[0] extends infer O ? O : never>) => Promise<Awaited<ReturnType<typeof inspectionControllerListInspections>>['data']>;
|
|
4124
|
+
submit: (options: WakataMethodOptions<Parameters<typeof inspectionControllerSubmitInspectionPublic>[0]>) => Promise<Awaited<ReturnType<typeof inspectionControllerSubmitInspectionPublic>>['data']>;
|
|
4125
|
+
}
|
|
4126
|
+
interface IssuesResource {
|
|
4127
|
+
list: (options?: WakataMethodOptions<Parameters<typeof issueControllerListIssues>[0] extends infer O ? O : never>) => Promise<Awaited<ReturnType<typeof issueControllerListIssues>>['data']>;
|
|
4128
|
+
get: (options: WakataMethodOptions<Parameters<typeof issueControllerGetIssuePublic>[0]>) => Promise<Awaited<ReturnType<typeof issueControllerGetIssuePublic>>['data']>;
|
|
4129
|
+
update: (options: WakataMethodOptions<Parameters<typeof issueControllerUpdateIssuePublic>[0]>) => Promise<Awaited<ReturnType<typeof issueControllerUpdateIssuePublic>>['data']>;
|
|
4130
|
+
getHistory: (options: WakataMethodOptions<Parameters<typeof issueControllerGetIssueHistoryPublic>[0]>) => Promise<Awaited<ReturnType<typeof issueControllerGetIssueHistoryPublic>>['data']>;
|
|
4131
|
+
}
|
|
4132
|
+
interface UserPropertiesResource {
|
|
4133
|
+
update: (options: WakataMethodOptions<Parameters<typeof userPropertyControllerUpdateUserProperty>[0]>) => Promise<Awaited<ReturnType<typeof userPropertyControllerUpdateUserProperty>>['data']>;
|
|
4134
|
+
delete: (options: WakataMethodOptions<Parameters<typeof userPropertyControllerDeleteUserProperty>[0]>) => Promise<Awaited<ReturnType<typeof userPropertyControllerDeleteUserProperty>>['data']>;
|
|
4135
|
+
}
|
|
4136
|
+
/**
|
|
4137
|
+
* The main entry point for the Wakata API client.
|
|
4138
|
+
*
|
|
4139
|
+
* ```ts
|
|
4140
|
+
* import { WakataClient, WakataNotFoundError } from '@wakata-dev/api-client';
|
|
4141
|
+
*
|
|
4142
|
+
* const wakata = new WakataClient({ apiKey: process.env.WAKATA_API_KEY! });
|
|
4143
|
+
*
|
|
4144
|
+
* try {
|
|
4145
|
+
* const { items } = await wakata.assets.list({ query: { page: 1, page_size: 50 } });
|
|
4146
|
+
* console.log(items);
|
|
4147
|
+
* } catch (err) {
|
|
4148
|
+
* if (err instanceof WakataNotFoundError) console.error('not found:', err.message);
|
|
4149
|
+
* throw err;
|
|
4150
|
+
* }
|
|
4151
|
+
* ```
|
|
4152
|
+
*/
|
|
4153
|
+
declare class WakataClient {
|
|
4154
|
+
/** Underlying generated fetch client. Exposed for advanced customisation. */
|
|
4155
|
+
readonly raw: Client;
|
|
4156
|
+
readonly assets: AssetsResource;
|
|
4157
|
+
readonly users: UsersResource;
|
|
4158
|
+
readonly sites: SitesResource;
|
|
4159
|
+
readonly inspections: InspectionsResource;
|
|
4160
|
+
readonly issues: IssuesResource;
|
|
4161
|
+
readonly userProperties: UserPropertiesResource;
|
|
4162
|
+
constructor(options: WakataClientOptions);
|
|
4163
|
+
}
|
|
4164
|
+
|
|
4165
|
+
/**
|
|
4166
|
+
* Typed error hierarchy for the Wakata API client.
|
|
4167
|
+
*
|
|
4168
|
+
* The Wakata Public API always returns a standardized error envelope on
|
|
4169
|
+
* non-2xx responses (see `apps/api/docs/QUICKSTART.md`):
|
|
4170
|
+
*
|
|
4171
|
+
* ```json
|
|
4172
|
+
* {
|
|
4173
|
+
* "error": {
|
|
4174
|
+
* "code": "validation_error",
|
|
4175
|
+
* "message": "Request validation failed.",
|
|
4176
|
+
* "request_id": "req_01HX...",
|
|
4177
|
+
* "docs_url": "https://docs.wakata.ai/errors/validation_error",
|
|
4178
|
+
* "param": "site_id",
|
|
4179
|
+
* "details": [ { "field": "site_id", "code": "isUuid", "message": "..." } ]
|
|
4180
|
+
* }
|
|
4181
|
+
* }
|
|
4182
|
+
* ```
|
|
4183
|
+
*
|
|
4184
|
+
* The client maps each non-2xx response to the most specific subclass below.
|
|
4185
|
+
* Use `instanceof` checks to branch on the error type ergonomically:
|
|
4186
|
+
*
|
|
4187
|
+
* ```ts
|
|
4188
|
+
* try {
|
|
4189
|
+
* const asset = await wakata.assets.get('abc-123');
|
|
4190
|
+
* } catch (err) {
|
|
4191
|
+
* if (err instanceof WakataNotFoundError) { ... }
|
|
4192
|
+
* if (err instanceof WakataRateLimitError) {
|
|
4193
|
+
* await sleep((err.retryAfterSeconds ?? 60) * 1000);
|
|
4194
|
+
* }
|
|
4195
|
+
* throw err;
|
|
4196
|
+
* }
|
|
4197
|
+
* ```
|
|
4198
|
+
*/
|
|
4199
|
+
/**
|
|
4200
|
+
* A single validation detail emitted by class-validator on `400` responses.
|
|
4201
|
+
*/
|
|
4202
|
+
interface ErrorDetail {
|
|
4203
|
+
field: string;
|
|
4204
|
+
code: string;
|
|
4205
|
+
message: string;
|
|
4206
|
+
}
|
|
4207
|
+
/**
|
|
4208
|
+
* Raw shape of the error envelope returned by the API.
|
|
4209
|
+
*
|
|
4210
|
+
* Mirrors {@link https://docs.wakata.ai/errors} — kept loose because new
|
|
4211
|
+
* canonical codes may be added without breaking the SDK.
|
|
4212
|
+
*/
|
|
4213
|
+
interface WakataErrorEnvelope {
|
|
4214
|
+
code: string;
|
|
4215
|
+
message: string;
|
|
4216
|
+
request_id: string;
|
|
4217
|
+
docs_url?: string;
|
|
4218
|
+
param?: string;
|
|
4219
|
+
details?: ErrorDetail[];
|
|
4220
|
+
}
|
|
4221
|
+
/**
|
|
4222
|
+
* Base error class for everything thrown by the Wakata API client when the
|
|
4223
|
+
* server responds with a non-2xx status. Network failures and unparseable
|
|
4224
|
+
* responses also surface as this base class with `code === 'unknown_error'`.
|
|
4225
|
+
*/
|
|
4226
|
+
declare class WakataApiError extends Error {
|
|
4227
|
+
/** Canonical error code from `error.code` in the response envelope. */
|
|
4228
|
+
readonly code: string;
|
|
4229
|
+
/** HTTP status code from the response. */
|
|
4230
|
+
readonly statusCode: number;
|
|
4231
|
+
/** Server-assigned request ID (`X-Request-Id` / `error.request_id`). */
|
|
4232
|
+
readonly requestId: string;
|
|
4233
|
+
/** Optional URL pointing at the docs page for this error code. */
|
|
4234
|
+
readonly docsUrl: string | undefined;
|
|
4235
|
+
/** For validation-style errors, the offending parameter name. */
|
|
4236
|
+
readonly param: string | undefined;
|
|
4237
|
+
/** For validation-style errors, the full field-level breakdown. */
|
|
4238
|
+
readonly details: ErrorDetail[] | undefined;
|
|
4239
|
+
constructor(args: {
|
|
4240
|
+
code: string;
|
|
4241
|
+
statusCode: number;
|
|
4242
|
+
requestId: string;
|
|
4243
|
+
docsUrl?: string | undefined;
|
|
4244
|
+
param?: string | undefined;
|
|
4245
|
+
details?: ErrorDetail[] | undefined;
|
|
4246
|
+
message: string;
|
|
4247
|
+
});
|
|
4248
|
+
}
|
|
4249
|
+
/**
|
|
4250
|
+
* 4xx with `details` (typically 400 `validation_error` from class-validator).
|
|
4251
|
+
* `details` is guaranteed populated.
|
|
4252
|
+
*/
|
|
4253
|
+
declare class WakataValidationError extends WakataApiError {
|
|
4254
|
+
readonly name = "WakataValidationError";
|
|
4255
|
+
}
|
|
4256
|
+
/** 401 — missing, malformed, revoked or expired API key. */
|
|
4257
|
+
declare class WakataAuthError extends WakataApiError {
|
|
4258
|
+
readonly name = "WakataAuthError";
|
|
4259
|
+
}
|
|
4260
|
+
/** 403 — authenticated key lacks the required permission / role. */
|
|
4261
|
+
declare class WakataPermissionError extends WakataApiError {
|
|
4262
|
+
readonly name = "WakataPermissionError";
|
|
4263
|
+
}
|
|
4264
|
+
/** 404 — resource not found, or not visible to this API key. */
|
|
4265
|
+
declare class WakataNotFoundError extends WakataApiError {
|
|
4266
|
+
readonly name = "WakataNotFoundError";
|
|
4267
|
+
}
|
|
4268
|
+
/** 409 — conflict, e.g. unique constraint violation or idempotency-key reuse with a different body. */
|
|
4269
|
+
declare class WakataConflictError extends WakataApiError {
|
|
4270
|
+
readonly name = "WakataConflictError";
|
|
4271
|
+
}
|
|
4272
|
+
/**
|
|
4273
|
+
* 429 — rate limited. `retryAfterSeconds` is derived from the
|
|
4274
|
+
* `X-RateLimit-Reset` header (seconds until the window resets) where present.
|
|
4275
|
+
*/
|
|
4276
|
+
declare class WakataRateLimitError extends WakataApiError {
|
|
4277
|
+
readonly name = "WakataRateLimitError";
|
|
4278
|
+
readonly retryAfterSeconds: number | undefined;
|
|
4279
|
+
constructor(args: {
|
|
4280
|
+
code: string;
|
|
4281
|
+
statusCode: number;
|
|
4282
|
+
requestId: string;
|
|
4283
|
+
docsUrl?: string | undefined;
|
|
4284
|
+
param?: string | undefined;
|
|
4285
|
+
details?: ErrorDetail[] | undefined;
|
|
4286
|
+
message: string;
|
|
4287
|
+
retryAfterSeconds?: number | undefined;
|
|
4288
|
+
});
|
|
4289
|
+
}
|
|
4290
|
+
/** 5xx — server error. Safe to retry with exponential backoff. */
|
|
4291
|
+
declare class WakataServerError extends WakataApiError {
|
|
4292
|
+
readonly name = "WakataServerError";
|
|
4293
|
+
}
|
|
4294
|
+
/**
|
|
4295
|
+
* Map an HTTP status + response envelope to the most specific error subclass.
|
|
4296
|
+
*
|
|
4297
|
+
* Exported so callers can build their own retry/error layers on top.
|
|
4298
|
+
*/
|
|
4299
|
+
declare function mapApiError(statusCode: number, envelope: WakataErrorEnvelope | undefined, fallbackRequestId: string, retryAfterSeconds?: number): WakataApiError;
|
|
4300
|
+
|
|
4301
|
+
/**
|
|
4302
|
+
* Idempotency helpers.
|
|
4303
|
+
*
|
|
4304
|
+
* The Wakata Public API accepts an optional `Idempotency-Key` header on every
|
|
4305
|
+
* `POST` and `PATCH` write endpoint. Sending the same key with the same body
|
|
4306
|
+
* within 24h returns the cached original response instead of re-executing the
|
|
4307
|
+
* write — making it safe to retry network failures.
|
|
4308
|
+
*
|
|
4309
|
+
* This SDK auto-attaches a freshly-generated key on every POST/PATCH if the
|
|
4310
|
+
* caller hasn't provided one. Callers who want true cross-attempt idempotency
|
|
4311
|
+
* (i.e. the same logical operation across multiple retry attempts) should
|
|
4312
|
+
* generate their own key once and pass it via `headers: { 'Idempotency-Key': ... }`.
|
|
4313
|
+
*
|
|
4314
|
+
* See `apps/api/docs/QUICKSTART.md` § 9.
|
|
4315
|
+
*/
|
|
4316
|
+
/**
|
|
4317
|
+
* Generate an idempotency key prefixed with `wak_idem_`. Uses Web Crypto's
|
|
4318
|
+
* `randomUUID` where available, falling back to a v4-style UUID built from
|
|
4319
|
+
* `getRandomValues` for older Node runtimes.
|
|
4320
|
+
*/
|
|
4321
|
+
declare function generateIdempotencyKey(): string;
|
|
4322
|
+
|
|
4323
|
+
/**
|
|
4324
|
+
* `@wakata-dev/api-client` — the official TypeScript SDK for the Wakata Public API.
|
|
4325
|
+
*
|
|
4326
|
+
* See README.md for usage.
|
|
4327
|
+
*/
|
|
4328
|
+
declare const PACKAGE_NAME = "@wakata-dev/api-client";
|
|
4329
|
+
declare const PACKAGE_VERSION = "0.1.0";
|
|
4330
|
+
/** Default base URL for the Wakata Public API (production). */
|
|
4331
|
+
declare const DEFAULT_BASE_URL = "https://api.wakata.ai/api/v1";
|
|
4332
|
+
|
|
4333
|
+
export { type ApiErrorBody, type ApiErrorDetail, type ApiErrorResponse, type AssetClassControllerCreateAssetClassData, type AssetClassControllerCreateAssetClassError, type AssetClassControllerCreateAssetClassErrors, type AssetClassControllerCreateAssetClassResponse, type AssetClassControllerCreateAssetClassResponses, type AssetClassControllerGetAssetClassListData, type AssetClassControllerGetAssetClassListError, type AssetClassControllerGetAssetClassListErrors, type AssetClassControllerGetAssetClassListResponse, type AssetClassControllerGetAssetClassListResponses, type AssetClassControllerUpdateAssetClassData, type AssetClassControllerUpdateAssetClassError, type AssetClassControllerUpdateAssetClassErrors, type AssetClassControllerUpdateAssetClassResponse, type AssetClassControllerUpdateAssetClassResponses, type AssetClassListResponseDto, type AssetClassResponseDto, type AssetControllerCreateAssetPublicData, type AssetControllerCreateAssetPublicError, type AssetControllerCreateAssetPublicErrors, type AssetControllerCreateAssetPublicResponse, type AssetControllerCreateAssetPublicResponses, type AssetControllerGetAssetData, type AssetControllerGetAssetError, type AssetControllerGetAssetErrors, type AssetControllerGetAssetResponse, type AssetControllerGetAssetResponses, type AssetControllerListAssetsData, type AssetControllerListAssetsError, type AssetControllerListAssetsErrors, type AssetControllerListAssetsResponse, type AssetControllerListAssetsResponses, type AssetControllerUpdateAssetData, type AssetControllerUpdateAssetError, type AssetControllerUpdateAssetErrors, type AssetControllerUpdateAssetResponse, type AssetControllerUpdateAssetResponses, type AssetPropertyControllerDeleteAssetPropertyData, type AssetPropertyControllerDeleteAssetPropertyError, type AssetPropertyControllerDeleteAssetPropertyErrors, type AssetPropertyControllerDeleteAssetPropertyResponse, type AssetPropertyControllerDeleteAssetPropertyResponses, type AssetPropertyControllerUpdateAssetPropertyData, type AssetPropertyControllerUpdateAssetPropertyError, type AssetPropertyControllerUpdateAssetPropertyErrors, type AssetPropertyControllerUpdateAssetPropertyResponse, type AssetPropertyControllerUpdateAssetPropertyResponses, type AssetPropertyResponseDto, type AssetsResource, type ChangePinDto, type ClientOptions, type CreateAssetClassDto, type CreateAssetDto, type CreateInspectionDto, type CreateIssueMediaDto, type CreateSiteDto, type CreateTokenDto, DEFAULT_BASE_URL, type DeleteAssetPropertyResponseDto, type DeleteInspectionDto, type DeleteSiteResponseDto, type DeleteUserPropertyResponseDto, type DownloadResponseDto, type EmbeddedUserPropertyDto, type ErrorDetail, type ExtraInfoDto, type InspectionControllerListInspectionsData, type InspectionControllerListInspectionsError, type InspectionControllerListInspectionsErrors, type InspectionControllerListInspectionsResponse, type InspectionControllerListInspectionsResponses, type InspectionControllerSubmitInspectionPublicData, type InspectionControllerSubmitInspectionPublicError, type InspectionControllerSubmitInspectionPublicErrors, type InspectionControllerSubmitInspectionPublicResponse, type InspectionControllerSubmitInspectionPublicResponses, type InspectionResponseDto, type InspectionsResource, type IssueControllerGetIssueHistoryPublicData, type IssueControllerGetIssueHistoryPublicError, type IssueControllerGetIssueHistoryPublicErrors, type IssueControllerGetIssueHistoryPublicResponse, type IssueControllerGetIssueHistoryPublicResponses, type IssueControllerGetIssuePublicData, type IssueControllerGetIssuePublicError, type IssueControllerGetIssuePublicErrors, type IssueControllerGetIssuePublicResponse, type IssueControllerGetIssuePublicResponses, type IssueControllerListIssuesData, type IssueControllerListIssuesError, type IssueControllerListIssuesErrors, type IssueControllerListIssuesResponse, type IssueControllerListIssuesResponses, type IssueControllerUpdateIssuePublicData, type IssueControllerUpdateIssuePublicError, type IssueControllerUpdateIssuePublicErrors, type IssueControllerUpdateIssuePublicResponse, type IssueControllerUpdateIssuePublicResponses, type IssueHistoryDto, type IssueHistoryResponseDto, type IssueMediaResponseDto, type IssueResponseDto, type IssuesResource, type ListInspectionsResponseDto, type ListIssuesResponseDto, type ListSitesResponseDto, type MediaDto, PACKAGE_NAME, PACKAGE_VERSION, type PublicCreateAssetDto, type RegisterDeviceDto, type RegisterDeviceResponseDto, type RepeatInspectionDto, type RequestDownloadDto, type RequestLogUploadDto, type RequestUploadDto, type ResponseDto, type ResponseOptionDto, type ResumeInspectionDto, type SendCredentialsDto, type SiteControllerCreateSiteData, type SiteControllerCreateSiteError, type SiteControllerCreateSiteErrors, type SiteControllerCreateSiteResponse, type SiteControllerCreateSiteResponses, type SiteControllerDeleteSiteData, type SiteControllerDeleteSiteError, type SiteControllerDeleteSiteErrors, type SiteControllerDeleteSiteResponse, type SiteControllerDeleteSiteResponses, type SiteControllerListSitesData, type SiteControllerListSitesError, type SiteControllerListSitesErrors, type SiteControllerListSitesResponse, type SiteControllerListSitesResponses, type SiteControllerUpdateSiteData, type SiteControllerUpdateSiteError, type SiteControllerUpdateSiteErrors, type SiteControllerUpdateSiteResponse, type SiteControllerUpdateSiteResponses, type SiteResponseDto, type SitesResource, type SubmitInspectionDto, type TokenCompanyDto, type TokenResponseDto, type TokenUserDto, type UpdateAssetClassDto, type UpdateAssetDto, type UpdateAssetPropertyDto, type UpdateInspectionDto, type UpdateIssueDto, type UpdateSiteDto, type UpdateUserPropertyDto, type UploadCredentialsResponseDto, type UserControllerCreateUserData, type UserControllerCreateUserError, type UserControllerCreateUserErrors, type UserControllerCreateUserResponse, type UserControllerCreateUserResponses, type UserControllerGetUserData, type UserControllerGetUserError, type UserControllerGetUserErrors, type UserControllerGetUserResponse, type UserControllerGetUserResponses, type UserControllerListUsersData, type UserControllerListUsersError, type UserControllerListUsersErrors, type UserControllerListUsersResponse, type UserControllerListUsersResponses, type UserControllerUpdateUserData, type UserControllerUpdateUserError, type UserControllerUpdateUserErrors, type UserControllerUpdateUserResponse, type UserControllerUpdateUserResponses, type UserPropertiesResource, type UserPropertyControllerDeleteUserPropertyData, type UserPropertyControllerDeleteUserPropertyError, type UserPropertyControllerDeleteUserPropertyErrors, type UserPropertyControllerDeleteUserPropertyResponse, type UserPropertyControllerDeleteUserPropertyResponses, type UserPropertyControllerUpdateUserPropertyData, type UserPropertyControllerUpdateUserPropertyError, type UserPropertyControllerUpdateUserPropertyErrors, type UserPropertyControllerUpdateUserPropertyResponse, type UserPropertyControllerUpdateUserPropertyResponses, type UserPropertyResponseDto, type UserResponseDto, type UsersResource, WakataApiError, WakataAuthError, WakataClient, type WakataClientOptions, WakataConflictError, type WakataErrorEnvelope, WakataNotFoundError, WakataPermissionError, WakataRateLimitError, WakataServerError, WakataValidationError, generateIdempotencyKey, mapApiError };
|