@ikonintegration/module-contractor-api 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Api.d.ts DELETED
@@ -1,1463 +0,0 @@
1
- /** Default API Error response */
2
- export interface ErrorResponse {
3
- /** Error message */
4
- err: string;
5
- /** Error code */
6
- errCode: string;
7
- }
8
- export interface Input5Sa03P3Swr {
9
- /**
10
- * Unique code identifier (1-50 alphanumeric characters)
11
- * @minLength 1
12
- * @maxLength 50
13
- * @pattern ^[a-zA-Z0-9]+$
14
- * @example "ACC001"
15
- */
16
- codeID: string;
17
- /**
18
- * ID of the department this code belongs to
19
- * @minLength 1
20
- * @example "DEPT-2a1b3c4d5e6f"
21
- */
22
- departmentID: string;
23
- /**
24
- * Description of the code (1-255 characters)
25
- * @minLength 1
26
- * @maxLength 255
27
- * @example "Consulting services for safety audits"
28
- */
29
- description: string;
30
- }
31
- export interface Input6Szg153Vfz {
32
- /**
33
- * Updated description of the code (1-255 characters)
34
- * @minLength 1
35
- * @maxLength 255
36
- * @example "Updated consulting services description"
37
- */
38
- description: string;
39
- }
40
- export interface InputWt47Z10Aoc {
41
- /**
42
- * Full name of the contractor
43
- * @minLength 1
44
- * @example "Jane Smith"
45
- */
46
- name: string;
47
- /**
48
- * Email address of the contractor (must be unique)
49
- * @format email
50
- * @example "jane.smith@example.com"
51
- */
52
- email: string;
53
- /**
54
- * Phone number of the contractor
55
- * @example "+1-604-555-1234"
56
- */
57
- phone?: string;
58
- /**
59
- * List of hourly job rates (at least one required)
60
- * @minItems 1
61
- */
62
- jobRates: {
63
- /**
64
- * Description of the job rate
65
- * @minLength 1
66
- * @example "Senior Instructor"
67
- */
68
- description: string;
69
- /**
70
- * Hourly rate value in dollars (must be greater than zero)
71
- * @min 0
72
- * @exclusiveMin true
73
- * @example 75
74
- */
75
- hourlyValue: number;
76
- }[];
77
- }
78
- export interface InputZ2Opzvmwkr {
79
- /**
80
- * Maximum nightly accommodation amount (positive, up to two decimal places)
81
- * @min 0
82
- * @exclusiveMin true
83
- * @example 150
84
- */
85
- accommodationNightly?: number;
86
- /**
87
- * Maximum breakfast meal amount (positive, up to two decimal places)
88
- * @min 0
89
- * @exclusiveMin true
90
- * @example 20
91
- */
92
- mealBreakfast?: number;
93
- /**
94
- * Maximum lunch meal amount (positive, up to two decimal places)
95
- * @min 0
96
- * @exclusiveMin true
97
- * @example 25
98
- */
99
- mealLunch?: number;
100
- /**
101
- * Maximum dinner meal amount (positive, up to two decimal places)
102
- * @min 0
103
- * @exclusiveMin true
104
- * @example 40
105
- */
106
- mealDinner?: number;
107
- /**
108
- * Maximum transportation amount (positive, up to two decimal places)
109
- * @min 0
110
- * @exclusiveMin true
111
- * @example 100
112
- */
113
- transportationMax?: number;
114
- }
115
- export interface InputKfp90Ivmgu {
116
- /**
117
- * The contractor's local status. Set to 'active' to enable or 'disabled' to disable the account.
118
- * @example "active"
119
- */
120
- status: InputKfp90IvmguStatusEnum;
121
- }
122
- export interface InputNzq8Jtcdc2 {
123
- /**
124
- * Name of the department (1-150 characters)
125
- * @minLength 1
126
- * @maxLength 150
127
- * @example "Engineering"
128
- */
129
- name: string;
130
- /**
131
- * Contact email addresses for the department (1-10 valid emails)
132
- * @maxItems 10
133
- * @minItems 1
134
- * @example ["eng-lead@bccsa.ca","eng-admin@bccsa.ca"]
135
- */
136
- contactEmails: string[];
137
- }
138
- export interface InputLxhfu0Cggl {
139
- /**
140
- * Updated name of the department (1-150 characters)
141
- * @minLength 1
142
- * @maxLength 150
143
- * @example "Engineering Services"
144
- */
145
- name?: string;
146
- /**
147
- * Updated contact email addresses for the department (1-10 valid emails)
148
- * @maxItems 10
149
- * @minItems 1
150
- * @example ["eng-lead@bccsa.ca"]
151
- */
152
- contactEmails?: string[];
153
- }
154
- export interface InputSfun2X2Orx {
155
- /**
156
- * The user ID of the administrator to associate with the department
157
- * @minLength 1
158
- * @example "USR-2RvYIFNJR3CrJHKO0NqgGa1EwcS"
159
- */
160
- userID: string;
161
- }
162
- export interface InputJ71Z8Sh3A4 {
163
- /**
164
- * Mileage rate in dollars per kilometre (positive, up to two decimal places)
165
- * @min 0
166
- * @exclusiveMin true
167
- * @example 0.65
168
- */
169
- mileageRate: number;
170
- }
171
- export interface InputR2Nacgh1Y4 {
172
- /**
173
- * Maximum nightly accommodation amount (positive, up to two decimal places)
174
- * @min 0
175
- * @exclusiveMin true
176
- * @example 150
177
- */
178
- accommodationNightly: number;
179
- /**
180
- * Maximum breakfast meal amount (positive, up to two decimal places)
181
- * @min 0
182
- * @exclusiveMin true
183
- * @example 20
184
- */
185
- mealBreakfast: number;
186
- /**
187
- * Maximum lunch meal amount (positive, up to two decimal places)
188
- * @min 0
189
- * @exclusiveMin true
190
- * @example 25
191
- */
192
- mealLunch: number;
193
- /**
194
- * Maximum dinner meal amount (positive, up to two decimal places)
195
- * @min 0
196
- * @exclusiveMin true
197
- * @example 40
198
- */
199
- mealDinner: number;
200
- /**
201
- * Maximum transportation amount (positive, up to two decimal places)
202
- * @min 0
203
- * @exclusiveMin true
204
- * @example 100
205
- */
206
- transportationMax: number;
207
- }
208
- export interface Input3Q3Xamu93G {
209
- /**
210
- * Number of days between reminder emails (positive integer)
211
- * @min 0
212
- * @exclusiveMin true
213
- * @example 7
214
- */
215
- reminderIntervalDays: number;
216
- }
217
- /** Create a new draft submission */
218
- export interface InputVdrvfe8Erz {
219
- /**
220
- * Department ID
221
- * @minLength 1
222
- * @example "DEPT-abc123"
223
- */
224
- departmentID: string;
225
- /**
226
- * Submission description
227
- * @minLength 1
228
- * @example "Monthly consulting invoice"
229
- */
230
- description: string;
231
- /**
232
- * Submission date (epoch ms)
233
- * @example 1700000000000
234
- */
235
- date: number;
236
- /**
237
- * Submission type
238
- * @example "Submission"
239
- */
240
- type: InputVdrvfe8ErzTypeEnum;
241
- /**
242
- * Invoice number or "N/A"
243
- * @minLength 1
244
- * @example "INV-2024-001"
245
- */
246
- invoiceNumber: string;
247
- /**
248
- * Contract number or "N/A"
249
- * @minLength 1
250
- * @example "CNTR-001"
251
- */
252
- contractNumber: string;
253
- /**
254
- * PO number (optional)
255
- * @example "PO-5678"
256
- */
257
- poNumber?: string;
258
- /**
259
- * Service invoice line items
260
- * @default []
261
- */
262
- invoices?: {
263
- /**
264
- * Invoice description
265
- * @minLength 1
266
- * @example "Consulting services"
267
- */
268
- description: string;
269
- /**
270
- * Time worked in hours
271
- * @min 0
272
- * @exclusiveMin true
273
- * @example 8
274
- */
275
- timeInHours: number;
276
- /**
277
- * Hourly rate from contractor profile
278
- * @min 0
279
- * @exclusiveMin true
280
- * @example 75
281
- */
282
- hourlyRate: number;
283
- /**
284
- * Tax amount
285
- * @min 0
286
- * @default 0
287
- * @example 30
288
- */
289
- taxAmount?: number;
290
- /**
291
- * PO number for this invoice
292
- * @example "PO-1234"
293
- */
294
- poNumber?: string;
295
- /**
296
- * File attachments for this invoice
297
- * @default []
298
- */
299
- attachments?: {
300
- /**
301
- * Unique file identifier
302
- * @example "file-abc123"
303
- */
304
- fileID: string;
305
- /**
306
- * Original file name
307
- * @example "invoice.pdf"
308
- */
309
- fileName: string;
310
- /**
311
- * MIME content type
312
- * @example "application/pdf"
313
- */
314
- contentType: string;
315
- /**
316
- * File size in bytes
317
- * @example 102400
318
- */
319
- size: number;
320
- /**
321
- * Upload timestamp (epoch ms)
322
- * @example 1700000000000
323
- */
324
- uploadedOn: number;
325
- }[];
326
- }[];
327
- /**
328
- * Expense reimbursement line items
329
- * @default []
330
- */
331
- expenses?: {
332
- /**
333
- * Expense description
334
- * @minLength 1
335
- * @example "Hotel stay"
336
- */
337
- description: string;
338
- /**
339
- * Expense date (epoch ms)
340
- * @example 1700000000000
341
- */
342
- date: number;
343
- /**
344
- * Expense type
345
- * @example "Accommodation"
346
- */
347
- type: InputVdrvfe8ErzTypeEnum1;
348
- /**
349
- * Pre-tax amount
350
- * @min 0
351
- * @example 150
352
- */
353
- preTaxAmount: number;
354
- /**
355
- * Tax amount
356
- * @min 0
357
- * @default 0
358
- * @example 7.5
359
- */
360
- taxAmount?: number;
361
- /**
362
- * Number of nights (Accommodation)
363
- * @min 0
364
- * @exclusiveMin true
365
- * @example 2
366
- */
367
- nights?: number;
368
- /**
369
- * Meal type (Meal expenses)
370
- * @example "Lunch"
371
- */
372
- mealType?: InputVdrvfe8ErzMealTypeEnum;
373
- /**
374
- * Number of kilometres (Mileage)
375
- * @min 0
376
- * @exclusiveMin true
377
- * @example 100
378
- */
379
- numKilometres?: number;
380
- /**
381
- * Transportation type (Transportation expenses)
382
- * @example "Taxi"
383
- */
384
- transportationType?: InputVdrvfe8ErzTransportationTypeEnum;
385
- /**
386
- * File attachments for this expense
387
- * @default []
388
- */
389
- attachments?: {
390
- /**
391
- * Unique file identifier
392
- * @example "file-abc123"
393
- */
394
- fileID: string;
395
- /**
396
- * Original file name
397
- * @example "invoice.pdf"
398
- */
399
- fileName: string;
400
- /**
401
- * MIME content type
402
- * @example "application/pdf"
403
- */
404
- contentType: string;
405
- /**
406
- * File size in bytes
407
- * @example 102400
408
- */
409
- size: number;
410
- /**
411
- * Upload timestamp (epoch ms)
412
- * @example 1700000000000
413
- */
414
- uploadedOn: number;
415
- }[];
416
- }[];
417
- }
418
- /** Update an existing submission */
419
- export interface InputY4A9Ylrb3A {
420
- /**
421
- * Submission description
422
- * @minLength 1
423
- */
424
- description?: string;
425
- /** Submission date (epoch ms) */
426
- date?: number;
427
- /** Submission type */
428
- type?: InputY4A9Ylrb3ATypeEnum;
429
- /**
430
- * Invoice number or "N/A"
431
- * @minLength 1
432
- */
433
- invoiceNumber?: string;
434
- /**
435
- * Contract number or "N/A"
436
- * @minLength 1
437
- */
438
- contractNumber?: string;
439
- /** PO number (optional) */
440
- poNumber?: string;
441
- /**
442
- * Department ID
443
- * @minLength 1
444
- */
445
- departmentID?: string;
446
- /** Updated service invoice line items */
447
- invoices?: {
448
- /**
449
- * Invoice description
450
- * @minLength 1
451
- * @example "Consulting services"
452
- */
453
- description: string;
454
- /**
455
- * Time worked in hours
456
- * @min 0
457
- * @exclusiveMin true
458
- * @example 8
459
- */
460
- timeInHours: number;
461
- /**
462
- * Hourly rate from contractor profile
463
- * @min 0
464
- * @exclusiveMin true
465
- * @example 75
466
- */
467
- hourlyRate: number;
468
- /**
469
- * Tax amount
470
- * @min 0
471
- * @default 0
472
- * @example 30
473
- */
474
- taxAmount?: number;
475
- /**
476
- * PO number for this invoice
477
- * @example "PO-1234"
478
- */
479
- poNumber?: string;
480
- /**
481
- * File attachments for this invoice
482
- * @default []
483
- */
484
- attachments?: {
485
- /**
486
- * Unique file identifier
487
- * @example "file-abc123"
488
- */
489
- fileID: string;
490
- /**
491
- * Original file name
492
- * @example "invoice.pdf"
493
- */
494
- fileName: string;
495
- /**
496
- * MIME content type
497
- * @example "application/pdf"
498
- */
499
- contentType: string;
500
- /**
501
- * File size in bytes
502
- * @example 102400
503
- */
504
- size: number;
505
- /**
506
- * Upload timestamp (epoch ms)
507
- * @example 1700000000000
508
- */
509
- uploadedOn: number;
510
- }[];
511
- }[];
512
- /** Updated expense reimbursement line items */
513
- expenses?: {
514
- /**
515
- * Expense description
516
- * @minLength 1
517
- * @example "Hotel stay"
518
- */
519
- description: string;
520
- /**
521
- * Expense date (epoch ms)
522
- * @example 1700000000000
523
- */
524
- date: number;
525
- /**
526
- * Expense type
527
- * @example "Accommodation"
528
- */
529
- type: InputY4A9Ylrb3ATypeEnum1;
530
- /**
531
- * Pre-tax amount
532
- * @min 0
533
- * @example 150
534
- */
535
- preTaxAmount: number;
536
- /**
537
- * Tax amount
538
- * @min 0
539
- * @default 0
540
- * @example 7.5
541
- */
542
- taxAmount?: number;
543
- /**
544
- * Number of nights (Accommodation)
545
- * @min 0
546
- * @exclusiveMin true
547
- * @example 2
548
- */
549
- nights?: number;
550
- /**
551
- * Meal type (Meal expenses)
552
- * @example "Lunch"
553
- */
554
- mealType?: InputY4A9Ylrb3AMealTypeEnum;
555
- /**
556
- * Number of kilometres (Mileage)
557
- * @min 0
558
- * @exclusiveMin true
559
- * @example 100
560
- */
561
- numKilometres?: number;
562
- /**
563
- * Transportation type (Transportation expenses)
564
- * @example "Taxi"
565
- */
566
- transportationType?: InputY4A9Ylrb3ATransportationTypeEnum;
567
- /**
568
- * File attachments for this expense
569
- * @default []
570
- */
571
- attachments?: {
572
- /**
573
- * Unique file identifier
574
- * @example "file-abc123"
575
- */
576
- fileID: string;
577
- /**
578
- * Original file name
579
- * @example "invoice.pdf"
580
- */
581
- fileName: string;
582
- /**
583
- * MIME content type
584
- * @example "application/pdf"
585
- */
586
- contentType: string;
587
- /**
588
- * File size in bytes
589
- * @example 102400
590
- */
591
- size: number;
592
- /**
593
- * Upload timestamp (epoch ms)
594
- * @example 1700000000000
595
- */
596
- uploadedOn: number;
597
- }[];
598
- }[];
599
- }
600
- export interface Input723Ap5Bsp6G {
601
- /** Array of codes to assign to the submission sections */
602
- codes: {
603
- /** The section to assign the code to */
604
- section: Input723Ap5Bsp6GSectionEnum;
605
- /**
606
- * The code ID to assign
607
- * @minLength 1
608
- * @example "CODE-abc123"
609
- */
610
- codeID: string;
611
- /**
612
- * Optional note for this code assignment (max 500 chars)
613
- * @maxLength 500
614
- * @example "Consulting fees"
615
- */
616
- note?: string;
617
- }[];
618
- }
619
- /** Request a presigned upload URL for a file attachment */
620
- export interface InputSfhiwjjmi4 {
621
- /**
622
- * ID of the invoice or expense line item
623
- * @minLength 1
624
- * @example "INV-abc123"
625
- */
626
- lineItemID: string;
627
- /**
628
- * MIME content type of the file
629
- * @minLength 1
630
- * @example "application/pdf"
631
- */
632
- contentType: string;
633
- /**
634
- * File size in bytes
635
- * @min 0
636
- * @exclusiveMin true
637
- * @example 102400
638
- */
639
- contentLength: number;
640
- /**
641
- * Original file name
642
- * @minLength 1
643
- * @example "invoice.pdf"
644
- */
645
- fileName: string;
646
- }
647
- export interface InputH1Tu4Knr5H {
648
- /**
649
- * PO number to set on the submission
650
- * @example "PO-5678"
651
- */
652
- poNumber: string;
653
- }
654
- export interface InputPqfe8Di61L {
655
- /**
656
- * The ID of the new department to reassign to
657
- * @minLength 1
658
- * @example "DEPT-abc123"
659
- */
660
- departmentID: string;
661
- }
662
- export interface InputX2Sjifbplw {
663
- /**
664
- * Google reCAPTCHA verification token
665
- * @example "03AGdBq26..."
666
- */
667
- recaptchaToken: string;
668
- /**
669
- * Guest contractor name
670
- * @minLength 1
671
- * @example "Jane Smith"
672
- */
673
- name: string;
674
- /**
675
- * Guest contractor email address
676
- * @format email
677
- * @example "jane@example.com"
678
- */
679
- email: string;
680
- /**
681
- * Guest contractor phone number
682
- * @minLength 1
683
- * @example "604-555-0100"
684
- */
685
- phone: string;
686
- /**
687
- * Invoice date (timestamp)
688
- * @example 1700000000000
689
- */
690
- date: number;
691
- /**
692
- * Invoice description
693
- * @minLength 1
694
- * @example "Safety consulting services"
695
- */
696
- description: string;
697
- /**
698
- * Department to assign the submission to
699
- * @minLength 1
700
- * @example "DEPT-abc123"
701
- */
702
- departmentID: string;
703
- /**
704
- * Invoice amount in dollars (pre-tax)
705
- * @min 0
706
- * @exclusiveMin true
707
- * @example 500
708
- */
709
- amount: number;
710
- /**
711
- * Tax amount in dollars
712
- * @min 0
713
- * @default 0
714
- * @example 25
715
- */
716
- taxAmount?: number;
717
- /** Single PDF attachment (max 1 MB) */
718
- attachment: {
719
- /**
720
- * Unique file identifier
721
- * @example "file-abc123"
722
- */
723
- fileID: string;
724
- /**
725
- * Original file name
726
- * @example "invoice.pdf"
727
- */
728
- fileName: string;
729
- /**
730
- * Content type (must be application/pdf for guest)
731
- * @example "application/pdf"
732
- */
733
- contentType: InputX2SjifbplwContentTypeEnum;
734
- /**
735
- * File size in bytes (max 1 MB)
736
- * @max 1048576
737
- * @example 51200
738
- */
739
- size: number;
740
- /**
741
- * Upload timestamp
742
- * @example 1700000000000
743
- */
744
- uploadedOn: number;
745
- };
746
- }
747
- /**
748
- * The contractor's local status. Set to 'active' to enable or 'disabled' to disable the account.
749
- * @example "active"
750
- */
751
- export declare enum InputKfp90IvmguStatusEnum {
752
- Active = "active",
753
- Disabled = "disabled"
754
- }
755
- /**
756
- * Submission type
757
- * @example "Submission"
758
- */
759
- export declare enum InputVdrvfe8ErzTypeEnum {
760
- Submission = "Submission",
761
- Reimbursement = "Reimbursement"
762
- }
763
- /**
764
- * Expense type
765
- * @example "Accommodation"
766
- */
767
- export declare enum InputVdrvfe8ErzTypeEnum1 {
768
- Accommodation = "Accommodation",
769
- Meal = "Meal",
770
- Mileage = "Mileage",
771
- Transportation = "Transportation",
772
- Other = "Other"
773
- }
774
- /**
775
- * Meal type (Meal expenses)
776
- * @example "Lunch"
777
- */
778
- export declare enum InputVdrvfe8ErzMealTypeEnum {
779
- Breakfast = "Breakfast",
780
- Lunch = "Lunch",
781
- Dinner = "Dinner"
782
- }
783
- /**
784
- * Transportation type (Transportation expenses)
785
- * @example "Taxi"
786
- */
787
- export declare enum InputVdrvfe8ErzTransportationTypeEnum {
788
- AirTravel = "Air travel",
789
- Taxi = "Taxi",
790
- Ferry = "Ferry",
791
- Rental = "Rental",
792
- Other = "Other"
793
- }
794
- /** Submission type */
795
- export declare enum InputY4A9Ylrb3ATypeEnum {
796
- Submission = "Submission",
797
- Reimbursement = "Reimbursement"
798
- }
799
- /**
800
- * Expense type
801
- * @example "Accommodation"
802
- */
803
- export declare enum InputY4A9Ylrb3ATypeEnum1 {
804
- Accommodation = "Accommodation",
805
- Meal = "Meal",
806
- Mileage = "Mileage",
807
- Transportation = "Transportation",
808
- Other = "Other"
809
- }
810
- /**
811
- * Meal type (Meal expenses)
812
- * @example "Lunch"
813
- */
814
- export declare enum InputY4A9Ylrb3AMealTypeEnum {
815
- Breakfast = "Breakfast",
816
- Lunch = "Lunch",
817
- Dinner = "Dinner"
818
- }
819
- /**
820
- * Transportation type (Transportation expenses)
821
- * @example "Taxi"
822
- */
823
- export declare enum InputY4A9Ylrb3ATransportationTypeEnum {
824
- AirTravel = "Air travel",
825
- Taxi = "Taxi",
826
- Ferry = "Ferry",
827
- Rental = "Rental",
828
- Other = "Other"
829
- }
830
- /** The section to assign the code to */
831
- export declare enum Input723Ap5Bsp6GSectionEnum {
832
- Service = "Service",
833
- Reimbursement = "Reimbursement"
834
- }
835
- /**
836
- * Content type (must be application/pdf for guest)
837
- * @example "application/pdf"
838
- */
839
- export declare enum InputX2SjifbplwContentTypeEnum {
840
- ApplicationPdf = "application/pdf"
841
- }
842
- export type CreateCodeData = any;
843
- export type CreateCodeError = ErrorResponse;
844
- export type UpdateCodeData = any;
845
- export type UpdateCodeError = ErrorResponse;
846
- export type DeleteCodeData = any;
847
- export type DeleteCodeError = ErrorResponse;
848
- export type ListCodesData = any;
849
- export type ListCodesError = ErrorResponse;
850
- export type CreateContractorData = any;
851
- export type CreateContractorError = ErrorResponse;
852
- export type GetContractorData = any;
853
- export type GetContractorError = ErrorResponse;
854
- export type UpdateRatesData = any;
855
- export type UpdateRatesError = ErrorResponse;
856
- export type CreateResetPasswordData = any;
857
- export type CreateResetPasswordError = ErrorResponse;
858
- export type UpdateStatusData = any;
859
- export type UpdateStatusError = ErrorResponse;
860
- export interface ListContractorsParams {
861
- /**
862
- * Search term (minimum 2 characters)
863
- * @minLength 2
864
- * @example "john"
865
- */
866
- q: string;
867
- /**
868
- * Search field type: name for begins_with match, email for exact match
869
- * @example "name"
870
- */
871
- type: TypeEnum;
872
- }
873
- /**
874
- * Search field type: name for begins_with match, email for exact match
875
- * @example "name"
876
- */
877
- export declare enum TypeEnum {
878
- Name = "name",
879
- Email = "email"
880
- }
881
- export type ListContractorsData = any;
882
- export type ListContractorsError = ErrorResponse;
883
- /**
884
- * Search field type: name for begins_with match, email for exact match
885
- * @example "name"
886
- */
887
- export declare enum ListContractorsParams1TypeEnum {
888
- Name = "name",
889
- Email = "email"
890
- }
891
- export type CreateDepartmentData = any;
892
- export type CreateDepartmentError = ErrorResponse;
893
- export type UpdateDepartmentData = any;
894
- export type UpdateDepartmentError = ErrorResponse;
895
- export type DeleteDepartmentData = any;
896
- export type DeleteDepartmentError = ErrorResponse;
897
- export type CreateAdminData = any;
898
- export type CreateAdminError = ErrorResponse;
899
- export type DeleteAdminData = any;
900
- export type DeleteAdminError = ErrorResponse;
901
- export type ListDepartmentsData = any;
902
- export type ListDepartmentsError = ErrorResponse;
903
- export type ListSettingsData = any;
904
- export type ListSettingsError = ErrorResponse;
905
- export type UpdateRatesResult = any;
906
- export type UpdateRatesFail = ErrorResponse;
907
- export type UpdateMaximumsData = any;
908
- export type UpdateMaximumsError = ErrorResponse;
909
- export type UpdateRemindersData = any;
910
- export type UpdateRemindersError = ErrorResponse;
911
- export type CreateSubmissionData = any;
912
- export type CreateSubmissionError = ErrorResponse;
913
- export type GetSubmissionData = any;
914
- export type GetSubmissionError = ErrorResponse;
915
- export type UpdateSubmissionData = any;
916
- export type UpdateSubmissionError = ErrorResponse;
917
- export type DeleteSubmissionData = any;
918
- export type DeleteSubmissionError = ErrorResponse;
919
- export type CreateApproveData = any;
920
- export type CreateApproveError = ErrorResponse;
921
- export type UpdateCodesData = any;
922
- export type UpdateCodesError = ErrorResponse;
923
- export type CreateFileData = any;
924
- export type CreateFileError = ErrorResponse;
925
- export type GetFileData = any;
926
- export type GetFileError = ErrorResponse;
927
- export type CreatePaidData = any;
928
- export type CreatePaidError = ErrorResponse;
929
- export type GetPdfData = any;
930
- export type GetPdfError = ErrorResponse;
931
- export type PutSubmissionData = any;
932
- export type PutSubmissionError = ErrorResponse;
933
- export type CreateReassignData = any;
934
- export type CreateReassignError = ErrorResponse;
935
- export type CreateRejectData = any;
936
- export type CreateRejectError = ErrorResponse;
937
- export type CreateSubmitData = any;
938
- export type CreateSubmitError = ErrorResponse;
939
- export type CreateGuestData = any;
940
- export type CreateGuestError = ErrorResponse;
941
- export interface ListSubmissionsParams {
942
- /**
943
- * Filter by submission status
944
- * @example "Submitted"
945
- */
946
- status?: StatusEnum;
947
- /**
948
- * Filter by department ID
949
- * @example "DEPT-abc123"
950
- */
951
- departmentID?: string;
952
- /**
953
- * Filter by contractor user ID
954
- * @example "USR-xyz789"
955
- */
956
- contractorID?: string;
957
- /**
958
- * Filter by submission type
959
- * @example "Submission"
960
- */
961
- type?: TypeEnum1;
962
- /**
963
- * Filter from date (epoch ms)
964
- * @example 1700000000000
965
- */
966
- fromDate?: number | null;
967
- /**
968
- * Filter to date (epoch ms)
969
- * @example 1710000000000
970
- */
971
- toDate?: number | null;
972
- /** Pagination cursor from previous response */
973
- cursor?: string;
974
- /**
975
- * Number of results per page (max 50)
976
- * @min 1
977
- * @max 50
978
- * @default 50
979
- * @example 50
980
- */
981
- limit?: number;
982
- }
983
- /**
984
- * Filter by submission status
985
- * @example "Submitted"
986
- */
987
- export declare enum StatusEnum {
988
- Draft = "Draft",
989
- Submitted = "Submitted",
990
- AdministratorApproved = "Administrator_Approved",
991
- Rejected = "Rejected",
992
- PaymentPending = "Payment_Pending",
993
- Paid = "Paid"
994
- }
995
- /**
996
- * Filter by submission type
997
- * @example "Submission"
998
- */
999
- export declare enum TypeEnum1 {
1000
- Submission = "Submission",
1001
- Reimbursement = "Reimbursement"
1002
- }
1003
- export type ListSubmissionsData = any;
1004
- export type ListSubmissionsError = ErrorResponse;
1005
- /**
1006
- * Filter by submission status
1007
- * @example "Submitted"
1008
- */
1009
- export declare enum ListSubmissionsParams1StatusEnum {
1010
- Draft = "Draft",
1011
- Submitted = "Submitted",
1012
- AdministratorApproved = "Administrator_Approved",
1013
- Rejected = "Rejected",
1014
- PaymentPending = "Payment_Pending",
1015
- Paid = "Paid"
1016
- }
1017
- /**
1018
- * Filter by submission type
1019
- * @example "Submission"
1020
- */
1021
- export declare enum ListSubmissionsParams1TypeEnum {
1022
- Submission = "Submission",
1023
- Reimbursement = "Reimbursement"
1024
- }
1025
- export type ListExportData = any;
1026
- export type ListExportError = ErrorResponse;
1027
- import type { AxiosInstance, AxiosRequestConfig, ResponseType } from 'axios';
1028
- export type QueryParamsType = Record<string | number, any>;
1029
- export interface FullRequestParams extends Omit<AxiosRequestConfig, 'data' | 'params' | 'url' | 'responseType'> {
1030
- /** set parameter to `true` for call `securityWorker` for this request */
1031
- secure?: boolean;
1032
- /** request path */
1033
- path: string;
1034
- /** content type of request body */
1035
- type?: ContentType;
1036
- /** query params */
1037
- query?: QueryParamsType;
1038
- /** format of response (i.e. response.json() -> format: "json") */
1039
- format?: ResponseType;
1040
- /** request body */
1041
- body?: unknown;
1042
- }
1043
- export type RequestParams = Omit<FullRequestParams, 'body' | 'method' | 'query' | 'path'>;
1044
- export interface ApiConfig<SecurityDataType = unknown> extends Omit<AxiosRequestConfig, 'data' | 'cancelToken'> {
1045
- securityWorker?: (securityData: SecurityDataType | null) => Promise<AxiosRequestConfig | void> | AxiosRequestConfig | void;
1046
- secure?: boolean;
1047
- format?: ResponseType;
1048
- }
1049
- export declare enum ContentType {
1050
- Json = "application/json",
1051
- FormData = "multipart/form-data",
1052
- UrlEncoded = "application/x-www-form-urlencoded",
1053
- Text = "text/plain"
1054
- }
1055
- export declare class HttpClient<SecurityDataType = unknown> {
1056
- instance: AxiosInstance;
1057
- private securityData;
1058
- private securityWorker?;
1059
- private secure?;
1060
- private format?;
1061
- constructor({ securityWorker, secure, format, ...axiosConfig }?: ApiConfig<SecurityDataType>);
1062
- setSecurityData: (data: SecurityDataType | null) => void;
1063
- protected mergeRequestParams(params1: AxiosRequestConfig, params2?: AxiosRequestConfig): AxiosRequestConfig;
1064
- protected stringifyFormItem(formItem: unknown): string;
1065
- protected createFormData(input: Record<string, unknown>): FormData;
1066
- request: <T = any, _E = any>({ secure, path, type, query, format, body, ...params }: FullRequestParams) => Promise<T>;
1067
- }
1068
- /**
1069
- * @title Contractor Module API
1070
- * @version 1.0.1
1071
- * @baseUrl http://localhost:8080
1072
- * @contact Ikon Integration <ikon@ikonintegration.com> (http://example.com)
1073
- */
1074
- export declare class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> {
1075
- code: {
1076
- /**
1077
- * @description Creates a new charging code associated with a department. Only Super Administrators can create codes.
1078
- *
1079
- * @tags Codes
1080
- * @name CreateCode
1081
- * @summary Create Code
1082
- * @request POST:/code
1083
- * @secure
1084
- */
1085
- createCode: (data: Input5Sa03P3Swr, params?: RequestParams) => Promise<any>;
1086
- /**
1087
- * @description Updates an existing charging code description. Only Super Administrators can update codes.
1088
- *
1089
- * @tags Codes
1090
- * @name UpdateCode
1091
- * @summary Update Code
1092
- * @request PUT:/code/{codeID}
1093
- * @secure
1094
- */
1095
- updateCode: (codeId: string, data: Input6Szg153Vfz, params?: RequestParams) => Promise<any>;
1096
- /**
1097
- * @description Deletes a charging code. Prevents deletion if the code is referenced by existing submissions. Only Super Administrators can delete codes.
1098
- *
1099
- * @tags Codes
1100
- * @name DeleteCode
1101
- * @summary Delete Code
1102
- * @request DELETE:/code/{codeID}
1103
- * @secure
1104
- */
1105
- deleteCode: (codeId: string, params?: RequestParams) => Promise<any>;
1106
- };
1107
- codes: {
1108
- /**
1109
- * @description Returns all codes or codes filtered by department. Administrators and above can list codes.
1110
- *
1111
- * @tags Codes
1112
- * @name ListCodes
1113
- * @summary List Codes
1114
- * @request GET:/codes
1115
- * @secure
1116
- */
1117
- listCodes: (params?: RequestParams) => Promise<any>;
1118
- };
1119
- contractor: {
1120
- /**
1121
- * @description Creates a new contractor account. Requires a unique email address and at least one job rate. Only Administrators and Super Administrators can create contractor accounts.
1122
- *
1123
- * @tags Contractors
1124
- * @name CreateContractor
1125
- * @summary Create Contractor
1126
- * @request POST:/contractor
1127
- * @secure
1128
- */
1129
- createContractor: (data: InputWt47Z10Aoc, params?: RequestParams) => Promise<any>;
1130
- /**
1131
- * @description View a contractor profile. Contractors can view their own profile (includes effective rates). Administrators can view any contractor profile.
1132
- *
1133
- * @tags Contractors
1134
- * @name GetContractor
1135
- * @summary View Contractor Profile
1136
- * @request GET:/contractor/{userID}
1137
- * @secure
1138
- */
1139
- getContractor: (userId: string, params?: RequestParams) => Promise<any>;
1140
- /**
1141
- * @description Sets user-specific rate maximums for a contractor. Only Administrators and Super Administrators can set rates. Values must be positive numbers with up to two decimal places.
1142
- *
1143
- * @tags Contractors
1144
- * @name UpdateRates
1145
- * @summary Set Contractor Rates
1146
- * @request PUT:/contractor/{userID}/rates
1147
- * @secure
1148
- */
1149
- updateRates: (userId: string, data: InputZ2Opzvmwkr, params?: RequestParams) => Promise<any>;
1150
- /**
1151
- * @description Triggers a password reset for the specified contractor. Only Administrators and Super Administrators can trigger password resets.
1152
- *
1153
- * @tags Contractors
1154
- * @name CreateResetPassword
1155
- * @summary Reset Contractor Password
1156
- * @request POST:/contractor/{userID}/reset-password
1157
- * @secure
1158
- */
1159
- createResetPassword: (userId: string, params?: RequestParams) => Promise<any>;
1160
- /**
1161
- * @description Sets a contractor's local status to active or disabled. Disabling prevents all API access while preserving the IDM account. Only Administrators and Super Administrators can toggle status.
1162
- *
1163
- * @tags Contractors
1164
- * @name UpdateStatus
1165
- * @summary Enable/Disable Contractor
1166
- * @request PUT:/contractor/{userID}/status
1167
- * @secure
1168
- */
1169
- updateStatus: (userId: string, data: InputKfp90Ivmgu, params?: RequestParams) => Promise<any>;
1170
- };
1171
- contractors: {
1172
- /**
1173
- * @description Search contractors by name (partial match) or email (exact match). Minimum 2 characters required.
1174
- *
1175
- * @tags Contractors
1176
- * @name ListContractors
1177
- * @summary Search Contractors
1178
- * @request GET:/contractors
1179
- * @secure
1180
- */
1181
- listContractors: (query: ListContractorsParams, params?: RequestParams) => Promise<any>;
1182
- };
1183
- department: {
1184
- /**
1185
- * @description Creates a new department. Requires a name (1-150 chars) and contact emails (max 10). SYSADMIN only.
1186
- *
1187
- * @tags Departments
1188
- * @name CreateDepartment
1189
- * @summary Create Department
1190
- * @request POST:/department
1191
- * @secure
1192
- */
1193
- createDepartment: (data: InputNzq8Jtcdc2, params?: RequestParams) => Promise<any>;
1194
- /**
1195
- * @description Updates an existing department name and/or contact emails. SYSADMIN only.
1196
- *
1197
- * @tags Departments
1198
- * @name UpdateDepartment
1199
- * @summary Update Department
1200
- * @request PUT:/department/{departmentID}
1201
- * @secure
1202
- */
1203
- updateDepartment: (departmentId: string, data: InputLxhfu0Cggl, params?: RequestParams) => Promise<any>;
1204
- /**
1205
- * @description Deletes a department. Prevents deletion if department has active codes or associated administrators. SYSADMIN only.
1206
- *
1207
- * @tags Departments
1208
- * @name DeleteDepartment
1209
- * @summary Delete Department
1210
- * @request DELETE:/department/{departmentID}
1211
- * @secure
1212
- */
1213
- deleteDepartment: (departmentId: string, params?: RequestParams) => Promise<any>;
1214
- /**
1215
- * @description Associates an administrator with a department. Each administrator can only belong to one department. SYSADMIN only.
1216
- *
1217
- * @tags Departments
1218
- * @name CreateAdmin
1219
- * @summary Associate Admin with Department
1220
- * @request POST:/department/{departmentID}/admin
1221
- * @secure
1222
- */
1223
- createAdmin: (departmentId: string, data: InputSfun2X2Orx, params?: RequestParams) => Promise<any>;
1224
- /**
1225
- * @description Removes an administrator association from a department. SYSADMIN only.
1226
- *
1227
- * @tags Departments
1228
- * @name DeleteAdmin
1229
- * @summary Remove Admin from Department
1230
- * @request DELETE:/department/{departmentID}/admin/{userID}
1231
- * @secure
1232
- */
1233
- deleteAdmin: (departmentId: string, userId: string, params?: RequestParams) => Promise<any>;
1234
- };
1235
- departments: {
1236
- /**
1237
- * @description Returns all departments. Available to ADMIN and SYSADMIN users.
1238
- *
1239
- * @tags Departments
1240
- * @name ListDepartments
1241
- * @summary List All Departments
1242
- * @request GET:/departments
1243
- * @secure
1244
- */
1245
- listDepartments: (params?: RequestParams) => Promise<any>;
1246
- };
1247
- settings: {
1248
- /**
1249
- * @description Retrieves system settings. Administrators have read-only access. Super Administrators have full access.
1250
- *
1251
- * @tags Settings
1252
- * @name ListSettings
1253
- * @summary Get System Settings
1254
- * @request GET:/settings
1255
- * @secure
1256
- */
1257
- listSettings: (params?: RequestParams) => Promise<any>;
1258
- /**
1259
- * @description Updates the system-wide mileage rate. Only Super Administrators can modify system settings.
1260
- *
1261
- * @tags Settings
1262
- * @name UpdateRates
1263
- * @summary Update Mileage Rate
1264
- * @request PUT:/settings/rates
1265
- * @secure
1266
- */
1267
- updateRates: (data: InputJ71Z8Sh3A4, params?: RequestParams) => Promise<any>;
1268
- /**
1269
- * @description Updates all system-wide expense maximums (accommodation, meals, transportation). Only Super Administrators can modify system settings.
1270
- *
1271
- * @tags Settings
1272
- * @name UpdateMaximums
1273
- * @summary Update Expense Maximums
1274
- * @request PUT:/settings/maximums
1275
- * @secure
1276
- */
1277
- updateMaximums: (data: InputR2Nacgh1Y4, params?: RequestParams) => Promise<any>;
1278
- /**
1279
- * @description Updates the reminder interval (in days) for pending submission notifications. Only Super Administrators can modify system settings.
1280
- *
1281
- * @tags Settings
1282
- * @name UpdateReminders
1283
- * @summary Update Reminder Interval
1284
- * @request PUT:/settings/reminders
1285
- * @secure
1286
- */
1287
- updateReminders: (data: Input3Q3Xamu93G, params?: RequestParams) => Promise<any>;
1288
- };
1289
- submission: {
1290
- /**
1291
- * @description Creates a new draft submission for the authenticated contractor. Validates invoice number uniqueness, calculates totals, and validates expenses against configured maximums.
1292
- *
1293
- * @tags Submissions
1294
- * @name CreateSubmission
1295
- * @summary Create draft submission
1296
- * @request POST:/submission
1297
- * @secure
1298
- */
1299
- createSubmission: (data: InputVdrvfe8Erz, params?: RequestParams) => Promise<any>;
1300
- /**
1301
- * @description Returns a single submission with all invoices, expenses, and assigned codes. Access is scoped by role: contractors see only their own, admins see their department, accountants/superadmins see any.
1302
- *
1303
- * @tags Submissions
1304
- * @name GetSubmission
1305
- * @summary View submission detail
1306
- * @request GET:/submission/{submissionID}
1307
- * @secure
1308
- */
1309
- getSubmission: (submissionId: string, params?: RequestParams) => Promise<any>;
1310
- /**
1311
- * @description Updates an existing submission. Edit permissions are determined by the caller role and the submission status. Contractors can fully edit Draft/Rejected submissions and update only PO on Submitted/Administrator_Approved. Admins can edit non-calculated fields on non-Paid submissions. Recalculates totals when line items change.
1312
- *
1313
- * @tags Submissions
1314
- * @name UpdateSubmission
1315
- * @summary Update submission
1316
- * @request PUT:/submission/{submissionID}
1317
- * @secure
1318
- */
1319
- updateSubmission: (submissionId: string, data: InputY4A9Ylrb3A, params?: RequestParams) => Promise<any>;
1320
- /**
1321
- * @description Deletes a submission and all related invoices, expenses, and codes. Admin/SuperAdmin only. Cannot delete paid submissions. Notifies the contractor and any reviewing accountant.
1322
- *
1323
- * @tags Submissions
1324
- * @name DeleteSubmission
1325
- * @summary Delete submission
1326
- * @request DELETE:/submission/{submissionID}
1327
- * @secure
1328
- */
1329
- deleteSubmission: (submissionId: string, params?: RequestParams) => Promise<any>;
1330
- /**
1331
- * @description Admin: transitions Submitted → Administrator_Approved (notifies accountants + contractor). Accountant: transitions Administrator_Approved → Payment_Pending (notifies contractor).
1332
- *
1333
- * @tags Submissions
1334
- * @name CreateApprove
1335
- * @summary Approve a submission
1336
- * @request POST:/submission/{submissionID}/approve
1337
- * @secure
1338
- */
1339
- createApprove: (submissionId: string, params?: RequestParams) => Promise<any>;
1340
- /**
1341
- * @description Assigns codes to Service and/or Reimbursement sections of a submission with optional notes. Only codes belonging to the submission's assigned department are allowed. Admin only.
1342
- *
1343
- * @tags Submissions
1344
- * @name UpdateCodes
1345
- * @summary Assign codes to submission sections
1346
- * @request PUT:/submission/{submissionID}/codes
1347
- * @secure
1348
- */
1349
- updateCodes: (submissionId: string, data: Input723Ap5Bsp6G, params?: RequestParams) => Promise<any>;
1350
- /**
1351
- * @description Validates file constraints (size, type, count) and returns a presigned S3 URL for uploading a file attachment to a submission line item.
1352
- *
1353
- * @tags Submissions
1354
- * @name CreateFile
1355
- * @summary Get presigned upload URL for a file attachment
1356
- * @request POST:/submission/{submissionID}/file
1357
- * @secure
1358
- */
1359
- createFile: (submissionId: string, data: InputSfhiwjjmi4, params?: RequestParams) => Promise<any>;
1360
- /**
1361
- * @description Returns a presigned S3 URL for downloading a file attachment associated with a submission line item.
1362
- *
1363
- * @tags Submissions
1364
- * @name GetFile
1365
- * @summary Get presigned download URL for a file attachment
1366
- * @request GET:/submission/{submissionID}/file/{fileID}
1367
- * @secure
1368
- */
1369
- getFile: (submissionId: string, fileId: string, params?: RequestParams) => Promise<any>;
1370
- /**
1371
- * @description Transitions a Payment_Pending submission to Paid. Only Accountants may perform this action. Notifies the approving administrator.
1372
- *
1373
- * @tags Submissions
1374
- * @name CreatePaid
1375
- * @summary Mark a submission as paid
1376
- * @request POST:/submission/{submissionID}/paid
1377
- * @secure
1378
- */
1379
- createPaid: (submissionId: string, params?: RequestParams) => Promise<any>;
1380
- /**
1381
- * @description Generates and returns a PDF summary of the submission including invoices, expenses, and assigned codes. Returns the PDF as a base64-encoded string.
1382
- *
1383
- * @tags Submissions
1384
- * @name GetPdf
1385
- * @summary Generate submission summary PDF
1386
- * @request GET:/submission/{submissionID}/pdf
1387
- * @secure
1388
- */
1389
- getPdf: (submissionId: string, params?: RequestParams) => Promise<any>;
1390
- /**
1391
- * @description Updates the PO number on a submission. Contractors can update PO on Submitted or Administrator_Approved submissions. Admins can update PO on any non-Paid submission.
1392
- *
1393
- * @tags Submissions
1394
- * @name PutSubmission
1395
- * @summary Update submission PO number
1396
- * @request PUT:/submission/{submissionID}/po
1397
- * @secure
1398
- */
1399
- putSubmission: (submissionId: string, data: InputH1Tu4Knr5H, params?: RequestParams) => Promise<any>;
1400
- /**
1401
- * @description Reassigns a submission to a new department. Removes all codes from the original department. Notifies new department admins and the contractor. Admin/SuperAdmin only.
1402
- *
1403
- * @tags Submissions
1404
- * @name CreateReassign
1405
- * @summary Reassign submission to a different department
1406
- * @request POST:/submission/{submissionID}/reassign
1407
- * @secure
1408
- */
1409
- createReassign: (submissionId: string, data: InputPqfe8Di61L, params?: RequestParams) => Promise<any>;
1410
- /**
1411
- * @description Admin rejects a Submitted submission; Accountant rejects an Administrator_Approved submission. RSA-sourced submissions cannot be rejected. Notifies the contractor.
1412
- *
1413
- * @tags Submissions
1414
- * @name CreateReject
1415
- * @summary Reject a submission
1416
- * @request POST:/submission/{submissionID}/reject
1417
- * @secure
1418
- */
1419
- createReject: (submissionId: string, params?: RequestParams) => Promise<any>;
1420
- /**
1421
- * @description Transitions a Draft or Rejected submission to Submitted. Only the owning contractor may submit. Routes the submission to department administrators and sends notifications.
1422
- *
1423
- * @tags Submissions
1424
- * @name CreateSubmit
1425
- * @summary Submit a draft or rejected submission
1426
- * @request POST:/submission/{submissionID}/submit
1427
- * @secure
1428
- */
1429
- createSubmit: (submissionId: string, params?: RequestParams) => Promise<any>;
1430
- /**
1431
- * @description Public endpoint for guest contractors to submit a single invoice without authentication. Requires reCAPTCHA verification. The submission goes directly to Submitted status (no Draft).
1432
- *
1433
- * @tags Submissions
1434
- * @name CreateGuest
1435
- * @summary Submit guest invoice
1436
- * @request POST:/submission/guest
1437
- * @secure
1438
- */
1439
- createGuest: (data: InputX2Sjifbplw, params?: RequestParams) => Promise<any>;
1440
- };
1441
- submissions: {
1442
- /**
1443
- * @description Search submissions with role-based scoping. Contractors see only their own submissions. Administrators see submissions for their department. Accountants and Super Administrators see all submissions.
1444
- *
1445
- * @tags Submissions
1446
- * @name ListSubmissions
1447
- * @summary Search Submissions
1448
- * @request GET:/submissions
1449
- * @secure
1450
- */
1451
- listSubmissions: (query: ListSubmissionsParams, params?: RequestParams) => Promise<any>;
1452
- /**
1453
- * @description Generate an Excel export of submissions scoped by role. Contractors see only their own submissions. Administrators see their department. Accountants and Super Administrators see all. Maximum 10,000 rows.
1454
- *
1455
- * @tags Submissions
1456
- * @name ListExport
1457
- * @summary Export Submissions to Excel
1458
- * @request GET:/submissions/export
1459
- * @secure
1460
- */
1461
- listExport: (params?: RequestParams) => Promise<any>;
1462
- };
1463
- }