@ikonintegration/module-config-api 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/Api.ts +4963 -0
  2. package/package.json +16 -0
  3. package/tsconfig.json +13 -0
package/Api.ts ADDED
@@ -0,0 +1,4963 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /*
4
+ * ---------------------------------------------------------------
5
+ * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##
6
+ * ## ##
7
+ * ## AUTHOR: acacode ##
8
+ * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
9
+ * ---------------------------------------------------------------
10
+ */
11
+
12
+ /** Default API Error response */
13
+ export interface ErrorResponse {
14
+ /** Error message */
15
+ err: string
16
+ /** Error code */
17
+ errCode: string
18
+ }
19
+
20
+ /** Customer response object */
21
+ export interface CustomerResponse {
22
+ /**
23
+ * User who created the customer record
24
+ * @example "admin@example.com"
25
+ */
26
+ createdBy?: string
27
+ /**
28
+ * Timestamp when the customer was created
29
+ * @example 1717000000000
30
+ */
31
+ createdOn: number
32
+ /**
33
+ * User who last updated the customer record
34
+ * @example "admin@example.com"
35
+ */
36
+ updatedBy?: string
37
+ /**
38
+ * Timestamp of last update
39
+ * @example 1717000000000
40
+ */
41
+ updatedOn?: number
42
+ /**
43
+ * Unique identifier of the customer
44
+ * @example "customer123"
45
+ */
46
+ id: string
47
+ /**
48
+ * Display name of the customer
49
+ * @example "ACME Corporation"
50
+ */
51
+ displayName?: string
52
+ /**
53
+ * Admin role identifier
54
+ * @example "admin"
55
+ */
56
+ adminRole?: string
57
+ /**
58
+ * User role identifier
59
+ * @example "user"
60
+ */
61
+ userRole?: string
62
+ /**
63
+ * Timezone code
64
+ * @example "America/Vancouver"
65
+ */
66
+ timezoneCode: string
67
+ /**
68
+ * Instructor role identifier
69
+ * @example "instructor"
70
+ */
71
+ instructorRole?: string
72
+ /**
73
+ * IDM API key
74
+ * @example "idm_key_123"
75
+ */
76
+ idmKey?: string
77
+ /**
78
+ * IDM token
79
+ * @example "idm_token_456"
80
+ */
81
+ idmToken?: string
82
+ /**
83
+ * Email sender address
84
+ * @example "noreply@example.com"
85
+ */
86
+ mailerSender?: string
87
+ /**
88
+ * Whether users can update their names
89
+ * @example false
90
+ */
91
+ preventUserFromUpdatingNames?: boolean
92
+ /**
93
+ * Organization module endpoint
94
+ * @example "https://api.example.com/org"
95
+ */
96
+ orgModEndpoint?: string
97
+ /**
98
+ * Organization admin role
99
+ * @example "org_admin"
100
+ */
101
+ orgAdminRole?: string
102
+ /**
103
+ * Organization sub-admin role
104
+ * @example "org_sub_admin"
105
+ */
106
+ orgSubAdminRole?: string
107
+ /**
108
+ * Organization user role
109
+ * @example "org_user"
110
+ */
111
+ orgUserRole?: string
112
+ /**
113
+ * namespace for the instance of org module to be used. Used to build the LMS FE.
114
+ * @example "bccsa"
115
+ */
116
+ orgModNamespace?: string
117
+ /**
118
+ * List of allowed online course provider IDs
119
+ * @example ["provider1","provider2"]
120
+ */
121
+ allowedOnlineCourseProviders?: string[]
122
+ /**
123
+ * List of allowed foreign requirement IDs
124
+ * @example ["req1","req2"]
125
+ */
126
+ allowedForeignReqs?: string[]
127
+ /**
128
+ * Shared module license API key
129
+ * @example "license_api_key"
130
+ */
131
+ sharedModuleLicenseAPIKey?: string
132
+ /**
133
+ * Shared module auditing API key
134
+ * @example "auditing_api_key"
135
+ */
136
+ sharedModuleAuditingAPIKey?: string
137
+ /**
138
+ * Shared module agreement API key
139
+ * @example "agreement_api_key"
140
+ */
141
+ sharedModuleAgreementAPIKey?: string
142
+ /**
143
+ * Shared module organization API key
144
+ * @example "organization_api_key"
145
+ */
146
+ sharedModuleOrganizationAPIKey?: string
147
+ /**
148
+ * Shared module classroom API key
149
+ * @example "classroom_api_key"
150
+ */
151
+ sharedModuleClassroomAPIKey?: string
152
+ /**
153
+ * Shared module mailer API key
154
+ * @example "mailer_api_key"
155
+ */
156
+ sharedModuleMailerAPIKey?: string
157
+ /**
158
+ * Authentication configuration object
159
+ * @example {"provider":"cognito","region":"us-west-2"}
160
+ */
161
+ authConfig?: any
162
+ /**
163
+ * UI theme identifier
164
+ * @example "default"
165
+ */
166
+ theme?: string
167
+ /**
168
+ * Customer domain
169
+ * @example "customer.example.com"
170
+ */
171
+ domain?: string
172
+ /**
173
+ * Cookies hub domain
174
+ * @example ".example.com"
175
+ */
176
+ cookiesHubDomain?: string
177
+ /**
178
+ * Platform for accepting connections
179
+ * @example "web"
180
+ */
181
+ acceptConnectionsPlatform?: string
182
+ /**
183
+ * Worksafe terminology
184
+ * @example "WorkSafeBC"
185
+ */
186
+ worksafeTerm?: string
187
+ /**
188
+ * List of cancelation policies
189
+ * @example [{"type":"standard","rules":[]}]
190
+ */
191
+ cancelationPolicies?: any[]
192
+ /**
193
+ * Whether to use business days
194
+ * @example 1
195
+ */
196
+ isBusinessDays?: number
197
+ /**
198
+ * Whether bookings can be canceled
199
+ * @example true
200
+ */
201
+ canBeCanceled?: boolean
202
+ /**
203
+ * Whether bookings can be rescheduled
204
+ * @example true
205
+ */
206
+ canBeRescheduled?: boolean
207
+ /**
208
+ * List of rules
209
+ * @example []
210
+ */
211
+ rules?: any[]
212
+ /**
213
+ * Days before for policy application
214
+ * @example 7
215
+ */
216
+ useDaysBefore?: number
217
+ /**
218
+ * Percentage refunded on cancelation
219
+ * @example 100
220
+ */
221
+ percentageRefunded?: number
222
+ /**
223
+ * Amount charged on cancelation
224
+ * @example 0
225
+ */
226
+ amountCharged?: number
227
+ /**
228
+ * Whether to deduct enrollment payment
229
+ * @example false
230
+ */
231
+ deductEnrollmentPayment?: boolean
232
+ /**
233
+ * Whether customer has refund policy
234
+ * @example true
235
+ */
236
+ hasRefundPolicy?: boolean
237
+ /**
238
+ * Sales tax label
239
+ * @example "GST"
240
+ */
241
+ salesTaxLabel?: string
242
+ /**
243
+ * Whether to ignore custom attributes during signup
244
+ * @example false
245
+ */
246
+ ignoreCustomAttributesForSignUp?: boolean
247
+ /**
248
+ * List of cooldown policies
249
+ * @example [{"courseID":"course1","cooldownPolicy":{"rules":[]}}]
250
+ */
251
+ cooldownPolicies?: any[]
252
+ /**
253
+ * Number of failed attempts before refill
254
+ * @example 3
255
+ */
256
+ refillFailedAttempts?: number
257
+ /**
258
+ * Cooldown period in days
259
+ * @example 30
260
+ */
261
+ cooldownPeriod?: number
262
+ /**
263
+ * Whether to invalidate course requirements
264
+ * @example false
265
+ */
266
+ invalidateCourseRequirements?: boolean
267
+ /**
268
+ * Whether to lock application
269
+ * @example false
270
+ */
271
+ lockApplication?: boolean
272
+ /**
273
+ * Days before auto-unlock
274
+ * @example 90
275
+ */
276
+ autoUnlockDays?: number
277
+ /**
278
+ * UI configuration object
279
+ * @example {"primaryColor":"#007bff"}
280
+ */
281
+ ui?: any
282
+ /**
283
+ * Banner configuration object
284
+ * @example {"enabled":true,"message":"Welcome!"}
285
+ */
286
+ banner?: any
287
+ /**
288
+ * Customer timezone
289
+ * @example "America/Vancouver"
290
+ */
291
+ timezone?: string
292
+ /**
293
+ * List of feature flags
294
+ * @example [{"name":"dark_mode","enabled":true}]
295
+ */
296
+ featureFlags?: {
297
+ /**
298
+ * Feature flag name
299
+ * @example "dark_mode"
300
+ */
301
+ name: string
302
+ /**
303
+ * Whether the feature flag is enabled
304
+ * @example true
305
+ */
306
+ enabled: boolean
307
+ /** Optional JSON metadata for the feature flag */
308
+ metadata?: string
309
+ }[]
310
+ }
311
+
312
+ /** Customer request body for create/update operations */
313
+ export interface CustomerRequestBody {
314
+ /**
315
+ * Unique identifier of the customer
316
+ * @example "customer123"
317
+ */
318
+ id: string
319
+ /**
320
+ * Display name of the customer
321
+ * @example "ACME Corporation"
322
+ */
323
+ displayName?: string
324
+ /**
325
+ * Admin role identifier
326
+ * @example "admin"
327
+ */
328
+ adminRole?: string
329
+ /**
330
+ * User role identifier
331
+ * @example "user"
332
+ */
333
+ userRole?: string
334
+ /**
335
+ * Timezone code
336
+ * @example "America/Vancouver"
337
+ */
338
+ timezoneCode: string
339
+ /**
340
+ * Instructor role identifier
341
+ * @example "instructor"
342
+ */
343
+ instructorRole?: string
344
+ /**
345
+ * IDM API key
346
+ * @example "idm_key_123"
347
+ */
348
+ idmKey?: string
349
+ /**
350
+ * IDM token
351
+ * @example "idm_token_456"
352
+ */
353
+ idmToken?: string
354
+ /**
355
+ * Email sender address
356
+ * @example "noreply@example.com"
357
+ */
358
+ mailerSender?: string
359
+ /**
360
+ * Whether users can update their names
361
+ * @example false
362
+ */
363
+ preventUserFromUpdatingNames?: boolean
364
+ /**
365
+ * Organization module endpoint
366
+ * @example "https://api.example.com/org"
367
+ */
368
+ orgModEndpoint?: string
369
+ /**
370
+ * Organization admin role
371
+ * @example "org_admin"
372
+ */
373
+ orgAdminRole?: string
374
+ /**
375
+ * Organization sub-admin role
376
+ * @example "org_sub_admin"
377
+ */
378
+ orgSubAdminRole?: string
379
+ /**
380
+ * Organization user role
381
+ * @example "org_user"
382
+ */
383
+ orgUserRole?: string
384
+ /**
385
+ * namespace for the instance of org module to be used. Used to build the LMS FE.
386
+ * @example "bccsa"
387
+ */
388
+ orgModNamespace?: string
389
+ /**
390
+ * List of allowed online course provider IDs
391
+ * @example ["provider1","provider2"]
392
+ */
393
+ allowedOnlineCourseProviders?: string[]
394
+ /**
395
+ * List of allowed foreign requirement IDs
396
+ * @example ["req1","req2"]
397
+ */
398
+ allowedForeignReqs?: string[]
399
+ /**
400
+ * Shared module license API key
401
+ * @example "license_api_key"
402
+ */
403
+ sharedModuleLicenseAPIKey?: string
404
+ /**
405
+ * Shared module auditing API key
406
+ * @example "auditing_api_key"
407
+ */
408
+ sharedModuleAuditingAPIKey?: string
409
+ /**
410
+ * Shared module agreement API key
411
+ * @example "agreement_api_key"
412
+ */
413
+ sharedModuleAgreementAPIKey?: string
414
+ /**
415
+ * Shared module organization API key
416
+ * @example "organization_api_key"
417
+ */
418
+ sharedModuleOrganizationAPIKey?: string
419
+ /**
420
+ * Shared module classroom API key
421
+ * @example "classroom_api_key"
422
+ */
423
+ sharedModuleClassroomAPIKey?: string
424
+ /**
425
+ * Shared module mailer API key
426
+ * @example "mailer_api_key"
427
+ */
428
+ sharedModuleMailerAPIKey?: string
429
+ /**
430
+ * Authentication configuration object
431
+ * @example {"provider":"cognito","region":"us-west-2"}
432
+ */
433
+ authConfig?: any
434
+ /**
435
+ * UI theme identifier
436
+ * @example "default"
437
+ */
438
+ theme?: string
439
+ /**
440
+ * Customer domain
441
+ * @example "customer.example.com"
442
+ */
443
+ domain?: string
444
+ /**
445
+ * Cookies hub domain
446
+ * @example ".example.com"
447
+ */
448
+ cookiesHubDomain?: string
449
+ /**
450
+ * Platform for accepting connections
451
+ * @example "web"
452
+ */
453
+ acceptConnectionsPlatform?: string
454
+ /**
455
+ * Worksafe terminology
456
+ * @example "WorkSafeBC"
457
+ */
458
+ worksafeTerm?: string
459
+ /**
460
+ * List of cancelation policies
461
+ * @example [{"type":"standard","rules":[]}]
462
+ */
463
+ cancelationPolicies?: any[]
464
+ /**
465
+ * Whether to use business days
466
+ * @example 1
467
+ */
468
+ isBusinessDays?: number
469
+ /**
470
+ * Whether bookings can be canceled
471
+ * @example true
472
+ */
473
+ canBeCanceled?: boolean
474
+ /**
475
+ * Whether bookings can be rescheduled
476
+ * @example true
477
+ */
478
+ canBeRescheduled?: boolean
479
+ /**
480
+ * List of rules
481
+ * @example []
482
+ */
483
+ rules?: any[]
484
+ /**
485
+ * Days before for policy application
486
+ * @example 7
487
+ */
488
+ useDaysBefore?: number
489
+ /**
490
+ * Percentage refunded on cancelation
491
+ * @example 100
492
+ */
493
+ percentageRefunded?: number
494
+ /**
495
+ * Amount charged on cancelation
496
+ * @example 0
497
+ */
498
+ amountCharged?: number
499
+ /**
500
+ * Whether to deduct enrollment payment
501
+ * @example false
502
+ */
503
+ deductEnrollmentPayment?: boolean
504
+ /**
505
+ * Whether customer has refund policy
506
+ * @example true
507
+ */
508
+ hasRefundPolicy?: boolean
509
+ /**
510
+ * Sales tax label
511
+ * @example "GST"
512
+ */
513
+ salesTaxLabel?: string
514
+ /**
515
+ * Whether to ignore custom attributes during signup
516
+ * @example false
517
+ */
518
+ ignoreCustomAttributesForSignUp?: boolean
519
+ /**
520
+ * List of cooldown policies
521
+ * @example [{"courseID":"course1","cooldownPolicy":{"rules":[]}}]
522
+ */
523
+ cooldownPolicies?: any[]
524
+ /**
525
+ * Number of failed attempts before refill
526
+ * @example 3
527
+ */
528
+ refillFailedAttempts?: number
529
+ /**
530
+ * Cooldown period in days
531
+ * @example 30
532
+ */
533
+ cooldownPeriod?: number
534
+ /**
535
+ * Whether to invalidate course requirements
536
+ * @example false
537
+ */
538
+ invalidateCourseRequirements?: boolean
539
+ /**
540
+ * Whether to lock application
541
+ * @example false
542
+ */
543
+ lockApplication?: boolean
544
+ /**
545
+ * Days before auto-unlock
546
+ * @example 90
547
+ */
548
+ autoUnlockDays?: number
549
+ /**
550
+ * UI configuration object
551
+ * @example {"primaryColor":"#007bff"}
552
+ */
553
+ ui?: any
554
+ /**
555
+ * Banner configuration object
556
+ * @example {"enabled":true,"message":"Welcome!"}
557
+ */
558
+ banner?: any
559
+ /**
560
+ * Customer timezone
561
+ * @example "America/Vancouver"
562
+ */
563
+ timezone?: string
564
+ /**
565
+ * List of feature flags
566
+ * @example [{"name":"dark_mode","enabled":true}]
567
+ */
568
+ featureFlags?: {
569
+ /**
570
+ * Feature flag name
571
+ * @example "dark_mode"
572
+ */
573
+ name: string
574
+ /**
575
+ * Whether the feature flag is enabled
576
+ * @example true
577
+ */
578
+ enabled: boolean
579
+ /** Optional JSON metadata for the feature flag */
580
+ metadata?: string
581
+ }[]
582
+ }
583
+
584
+ /** Tenant response object */
585
+ export interface TenantResponse {
586
+ /**
587
+ * User who created the tenant record
588
+ * @example "admin@example.com"
589
+ */
590
+ createdBy?: string
591
+ /**
592
+ * Timestamp when the tenant was created
593
+ * @example 1717000000000
594
+ */
595
+ createdOn: number
596
+ /**
597
+ * User who last updated the tenant record
598
+ * @example "admin@example.com"
599
+ */
600
+ updatedBy?: string
601
+ /**
602
+ * Timestamp of last update
603
+ * @example 1717000000000
604
+ */
605
+ updatedOn?: number
606
+ /**
607
+ * Unique identifier of the tenant
608
+ * @example "tenant456"
609
+ */
610
+ id: string
611
+ /**
612
+ * Customer ID this tenant belongs to
613
+ * @example "customer123"
614
+ */
615
+ customerID: string
616
+ /**
617
+ * Tenant name
618
+ * @example "ACME Tenant"
619
+ */
620
+ name?: string
621
+ /**
622
+ * Whether to include in dashboards
623
+ * @example true
624
+ */
625
+ includeInDashboards?: boolean
626
+ /**
627
+ * Commission payment type
628
+ * @example "percentage"
629
+ */
630
+ commissionPayType?: string
631
+ /**
632
+ * Whether org manager can enroll by session
633
+ * @example false
634
+ */
635
+ orgMgrCanEnrolBySession?: boolean
636
+ /**
637
+ * Warning configuration before invitation expiration
638
+ * @example [{"warningID":"warn1","template":"template1","period":7}]
639
+ */
640
+ warningInvitationExpiration?: {
641
+ warningID?: string
642
+ template?: string
643
+ period?: number
644
+ }[]
645
+ /**
646
+ * IDM admin role ID
647
+ * @example "role_admin"
648
+ */
649
+ idmAdminRoleID?: string
650
+ /**
651
+ * IDM user role ID
652
+ * @example "role_user"
653
+ */
654
+ idmUserRoleID?: string
655
+ /**
656
+ * IDM super admin role ID
657
+ * @example "role_super_admin"
658
+ */
659
+ idmSuperAdminRoleID?: string
660
+ /**
661
+ * IDM reviewer role ID
662
+ * @example "role_reviewer"
663
+ */
664
+ idmReviewerRoleID?: string
665
+ /**
666
+ * IDM training admin role ID
667
+ * @example "role_training_admin"
668
+ */
669
+ idmTrainingAdminRoleID?: string
670
+ /**
671
+ * IDM auditor role ID
672
+ * @example "role_auditor"
673
+ */
674
+ idmAuditorRoleID?: string
675
+ /**
676
+ * IDM API key
677
+ * @example "idm_key_123"
678
+ */
679
+ idmKey?: string
680
+ /**
681
+ * IDM secret
682
+ * @example "idm_secret_456"
683
+ */
684
+ idmSecret?: string
685
+ /**
686
+ * Shared module organization API key
687
+ * @example "org_api_key"
688
+ */
689
+ sharedModuleOrganizationAPIKey?: string
690
+ /**
691
+ * Shared module auditing API key
692
+ * @example "audit_api_key"
693
+ */
694
+ sharedModuleAuditingAPIKey?: string
695
+ /**
696
+ * Shared module license API key
697
+ * @example "license_api_key"
698
+ */
699
+ sharedModuleLicenseAPIKey?: string
700
+ /**
701
+ * Shared module classroom API key
702
+ * @example "classroom_api_key"
703
+ */
704
+ sharedModuleClassroomAPIKey?: string
705
+ /**
706
+ * Shared module config API key
707
+ * @example "config_api_key"
708
+ */
709
+ sharedModuleConfigAPIKey?: string
710
+ /**
711
+ * Whether to show application filter
712
+ * @example true
713
+ */
714
+ showApplicationFilter?: boolean
715
+ /**
716
+ * Admin email recipient(s)
717
+ * @example "admin@example.com"
718
+ */
719
+ mailerAdminRecipient?: string | string[]
720
+ /**
721
+ * BCC email address
722
+ * @example "bcc@example.com"
723
+ */
724
+ mailerBCC?: string
725
+ /**
726
+ * Email sender address
727
+ * @example "noreply@example.com"
728
+ */
729
+ mailerSender?: string
730
+ /**
731
+ * System admin email recipient(s)
732
+ * @example "sysadmin@example.com"
733
+ */
734
+ mailerSysAdminRecipient?: string | string[]
735
+ /**
736
+ * Email templates configuration
737
+ * @example {}
738
+ */
739
+ mailerTemplates?: any
740
+ /**
741
+ * Billing email recipient
742
+ * @example "billing@example.com"
743
+ */
744
+ mailerBillingRecipient?: string
745
+ /**
746
+ * List of disabled email types
747
+ * @example ["reminder","notification"]
748
+ */
749
+ disabledEmails?: string[]
750
+ /**
751
+ * Whether to notify admins
752
+ * @example true
753
+ */
754
+ notifyAdmins?: boolean
755
+ /**
756
+ * Organization contact information
757
+ * @example {"email":"contact@example.com","phoneNumber":"+1234567890"}
758
+ */
759
+ organizationContactDisplay?: {
760
+ email?: string
761
+ phoneNumber?: string
762
+ }
763
+ /**
764
+ * Organization name
765
+ * @example "ACME Organization"
766
+ */
767
+ organizationName?: string
768
+ /**
769
+ * Organization application URL
770
+ * @example "https://app.example.com"
771
+ */
772
+ organizationApplicationURL?: string
773
+ /**
774
+ * Organization registration text
775
+ * @example "Register now"
776
+ */
777
+ organizationRegText?: string
778
+ /**
779
+ * Organization registration checkbox text
780
+ * @example "I agree to terms"
781
+ */
782
+ organizationRegCheckboxText?: string
783
+ /**
784
+ * Refund policy URL
785
+ * @example "https://example.com/refund"
786
+ */
787
+ refundPolicyURL?: string
788
+ /**
789
+ * Organization application logo URL
790
+ * @example "https://example.com/logo.png"
791
+ */
792
+ organizationApplicationLogo?: string
793
+ /**
794
+ * Days before invitation expires
795
+ * @example 30
796
+ */
797
+ organizationExpireInvitationAfter?: number
798
+ /**
799
+ * Whether to CC org admin in invitations
800
+ * @example false
801
+ */
802
+ orgModCCOrgAdminInInvitations?: boolean
803
+ /**
804
+ * Whether to replicate membership
805
+ * @example false
806
+ */
807
+ orgModReplicateMembership?: boolean
808
+ /**
809
+ * Tax rate percentage
810
+ * @example 5
811
+ */
812
+ taxRate?: number
813
+ /**
814
+ * Tenant timezone
815
+ * @example "America/Vancouver"
816
+ */
817
+ timezone?: string
818
+ /**
819
+ * Certificate number mask format
820
+ * @example "CERT-####"
821
+ */
822
+ certNumberMaskFormat?: string
823
+ /**
824
+ * Certificate number mode
825
+ * @example "auto"
826
+ */
827
+ certNumberMode?: string
828
+ /**
829
+ * Course certificate number mask format
830
+ * @example "COURSE-####"
831
+ */
832
+ courseCertNumberMaskFormat?: string
833
+ /**
834
+ * Course certificate number mode
835
+ * @example "auto"
836
+ */
837
+ courseCertNumberMode?: string
838
+ /**
839
+ * List of enabled user filters
840
+ * @example ["active","pending"]
841
+ */
842
+ enabledUsersFilter?: string[]
843
+ /**
844
+ * Optional user search filters
845
+ * @example []
846
+ */
847
+ optionalUserSearchFilters?: any[]
848
+ /**
849
+ * Menu display options configuration
850
+ * @example {}
851
+ */
852
+ menuDisplayOptions?: any
853
+ /**
854
+ * Settings display options configuration
855
+ * @example {}
856
+ */
857
+ settingsDisplayOptions?: any
858
+ /**
859
+ * Custom registration configuration
860
+ * @example {}
861
+ */
862
+ customRegistration?: any
863
+ /**
864
+ * List of enabled report types
865
+ * @example ["user","certification"]
866
+ */
867
+ reportTypes?: string[]
868
+ /**
869
+ * UI theme key
870
+ * @example "default"
871
+ */
872
+ uiThemeKey?: string
873
+ /**
874
+ * Discount help text
875
+ * @example "Enter discount code"
876
+ */
877
+ discountHelpText?: string
878
+ /**
879
+ * Whether organization module is disabled
880
+ * @example false
881
+ */
882
+ orgModDisabled?: boolean
883
+ /**
884
+ * Discount policy configuration
885
+ * @example {"employerCUs":["CU1","CU2"],"discountPercent":10}
886
+ */
887
+ discountPolicy?: {
888
+ employerCUs?: string[]
889
+ discountPercent?: number
890
+ }
891
+ /**
892
+ * IDM instructor role ID
893
+ * @example "role_instructor"
894
+ */
895
+ idmInstructorRoleID?: string
896
+ /**
897
+ * Whether organizations are disabled
898
+ * @example false
899
+ */
900
+ organizationsDisabled?: boolean
901
+ /**
902
+ * Organization member profile configuration
903
+ * @example {}
904
+ */
905
+ organizationMemberProfile?: {
906
+ sections?: {
907
+ name?: string
908
+ beforeRow?: number
909
+ fields?: any
910
+ }[]
911
+ } | null
912
+ /**
913
+ * Whether organization module employee mode is enabled
914
+ * @example false
915
+ */
916
+ orgModEmployeeMode?: boolean
917
+ /**
918
+ * Whether organization self-registration is allowed
919
+ * @example false
920
+ */
921
+ orgModAllowOrgSelfRegistration?: boolean
922
+ /**
923
+ * Whether to use product suffix on transactions
924
+ * @example false
925
+ */
926
+ licModUseProdSuffixOnTx?: boolean
927
+ /**
928
+ * Whether license module vaulting is enabled
929
+ * @example false
930
+ */
931
+ licModVaultingEnabled?: boolean
932
+ /**
933
+ * Whether license module purchase is enabled
934
+ * @example false
935
+ */
936
+ licModPurchaseEnabled?: boolean
937
+ /**
938
+ * License module purchase message
939
+ * @example "Purchase available"
940
+ */
941
+ licModPurchaseMessage?: string
942
+ /**
943
+ * Webhook URL for successful purchase
944
+ * @example "https://example.com/webhook/success"
945
+ */
946
+ purchaseWebhookSuccess?: string
947
+ /**
948
+ * Webhook URL for failed purchase
949
+ * @example "https://example.com/webhook/fail"
950
+ */
951
+ purchaseWebhookFail?: string
952
+ /**
953
+ * Webhook URL for refund
954
+ * @example "https://example.com/webhook/refund"
955
+ */
956
+ purchaseWebhookRefund?: string
957
+ /**
958
+ * UI configuration
959
+ * @example {"banner":{"type":"info","content":"Welcome"}}
960
+ */
961
+ ui?: {
962
+ banner?: {
963
+ type?: string
964
+ content?: string
965
+ }
966
+ profileAlertMessage?: string
967
+ }
968
+ }
969
+
970
+ /** Tenant request body for create/update operations */
971
+ export interface TenantRequestBody {
972
+ /**
973
+ * Unique identifier of the tenant
974
+ * @example "tenant456"
975
+ */
976
+ id: string
977
+ /**
978
+ * Customer ID this tenant belongs to
979
+ * @example "customer123"
980
+ */
981
+ customerID: string
982
+ /**
983
+ * Tenant name
984
+ * @example "ACME Tenant"
985
+ */
986
+ name?: string
987
+ /**
988
+ * Whether to include in dashboards
989
+ * @example true
990
+ */
991
+ includeInDashboards?: boolean
992
+ /**
993
+ * Commission payment type
994
+ * @example "percentage"
995
+ */
996
+ commissionPayType?: string
997
+ /**
998
+ * Whether org manager can enroll by session
999
+ * @example false
1000
+ */
1001
+ orgMgrCanEnrolBySession?: boolean
1002
+ /**
1003
+ * Warning configuration before invitation expiration
1004
+ * @example [{"warningID":"warn1","template":"template1","period":7}]
1005
+ */
1006
+ warningInvitationExpiration?: {
1007
+ warningID?: string
1008
+ template?: string
1009
+ period?: number
1010
+ }[]
1011
+ /**
1012
+ * IDM admin role ID
1013
+ * @example "role_admin"
1014
+ */
1015
+ idmAdminRoleID?: string
1016
+ /**
1017
+ * IDM user role ID
1018
+ * @example "role_user"
1019
+ */
1020
+ idmUserRoleID?: string
1021
+ /**
1022
+ * IDM super admin role ID
1023
+ * @example "role_super_admin"
1024
+ */
1025
+ idmSuperAdminRoleID?: string
1026
+ /**
1027
+ * IDM reviewer role ID
1028
+ * @example "role_reviewer"
1029
+ */
1030
+ idmReviewerRoleID?: string
1031
+ /**
1032
+ * IDM training admin role ID
1033
+ * @example "role_training_admin"
1034
+ */
1035
+ idmTrainingAdminRoleID?: string
1036
+ /**
1037
+ * IDM auditor role ID
1038
+ * @example "role_auditor"
1039
+ */
1040
+ idmAuditorRoleID?: string
1041
+ /**
1042
+ * IDM API key
1043
+ * @example "idm_key_123"
1044
+ */
1045
+ idmKey?: string
1046
+ /**
1047
+ * IDM secret
1048
+ * @example "idm_secret_456"
1049
+ */
1050
+ idmSecret?: string
1051
+ /**
1052
+ * Shared module organization API key
1053
+ * @example "org_api_key"
1054
+ */
1055
+ sharedModuleOrganizationAPIKey?: string
1056
+ /**
1057
+ * Shared module auditing API key
1058
+ * @example "audit_api_key"
1059
+ */
1060
+ sharedModuleAuditingAPIKey?: string
1061
+ /**
1062
+ * Shared module license API key
1063
+ * @example "license_api_key"
1064
+ */
1065
+ sharedModuleLicenseAPIKey?: string
1066
+ /**
1067
+ * Shared module classroom API key
1068
+ * @example "classroom_api_key"
1069
+ */
1070
+ sharedModuleClassroomAPIKey?: string
1071
+ /**
1072
+ * Shared module config API key
1073
+ * @example "config_api_key"
1074
+ */
1075
+ sharedModuleConfigAPIKey?: string
1076
+ /**
1077
+ * Whether to show application filter
1078
+ * @example true
1079
+ */
1080
+ showApplicationFilter?: boolean
1081
+ /**
1082
+ * Admin email recipient(s)
1083
+ * @example "admin@example.com"
1084
+ */
1085
+ mailerAdminRecipient?: string | string[]
1086
+ /**
1087
+ * BCC email address
1088
+ * @example "bcc@example.com"
1089
+ */
1090
+ mailerBCC?: string
1091
+ /**
1092
+ * Email sender address
1093
+ * @example "noreply@example.com"
1094
+ */
1095
+ mailerSender?: string
1096
+ /**
1097
+ * System admin email recipient(s)
1098
+ * @example "sysadmin@example.com"
1099
+ */
1100
+ mailerSysAdminRecipient?: string | string[]
1101
+ /**
1102
+ * Email templates configuration
1103
+ * @example {}
1104
+ */
1105
+ mailerTemplates?: any
1106
+ /**
1107
+ * Billing email recipient
1108
+ * @example "billing@example.com"
1109
+ */
1110
+ mailerBillingRecipient?: string
1111
+ /**
1112
+ * List of disabled email types
1113
+ * @example ["reminder","notification"]
1114
+ */
1115
+ disabledEmails?: string[]
1116
+ /**
1117
+ * Whether to notify admins
1118
+ * @example true
1119
+ */
1120
+ notifyAdmins?: boolean
1121
+ /**
1122
+ * Organization contact information
1123
+ * @example {"email":"contact@example.com","phoneNumber":"+1234567890"}
1124
+ */
1125
+ organizationContactDisplay?: {
1126
+ email?: string
1127
+ phoneNumber?: string
1128
+ }
1129
+ /**
1130
+ * Organization name
1131
+ * @example "ACME Organization"
1132
+ */
1133
+ organizationName?: string
1134
+ /**
1135
+ * Organization application URL
1136
+ * @example "https://app.example.com"
1137
+ */
1138
+ organizationApplicationURL?: string
1139
+ /**
1140
+ * Organization registration text
1141
+ * @example "Register now"
1142
+ */
1143
+ organizationRegText?: string
1144
+ /**
1145
+ * Organization registration checkbox text
1146
+ * @example "I agree to terms"
1147
+ */
1148
+ organizationRegCheckboxText?: string
1149
+ /**
1150
+ * Refund policy URL
1151
+ * @example "https://example.com/refund"
1152
+ */
1153
+ refundPolicyURL?: string
1154
+ /**
1155
+ * Organization application logo URL
1156
+ * @example "https://example.com/logo.png"
1157
+ */
1158
+ organizationApplicationLogo?: string
1159
+ /**
1160
+ * Days before invitation expires
1161
+ * @example 30
1162
+ */
1163
+ organizationExpireInvitationAfter?: number
1164
+ /**
1165
+ * Whether to CC org admin in invitations
1166
+ * @example false
1167
+ */
1168
+ orgModCCOrgAdminInInvitations?: boolean
1169
+ /**
1170
+ * Whether to replicate membership
1171
+ * @example false
1172
+ */
1173
+ orgModReplicateMembership?: boolean
1174
+ /**
1175
+ * Tax rate percentage
1176
+ * @example 5
1177
+ */
1178
+ taxRate?: number
1179
+ /**
1180
+ * Tenant timezone
1181
+ * @example "America/Vancouver"
1182
+ */
1183
+ timezone?: string
1184
+ /**
1185
+ * Certificate number mask format
1186
+ * @example "CERT-####"
1187
+ */
1188
+ certNumberMaskFormat?: string
1189
+ /**
1190
+ * Certificate number mode
1191
+ * @example "auto"
1192
+ */
1193
+ certNumberMode?: string
1194
+ /**
1195
+ * Course certificate number mask format
1196
+ * @example "COURSE-####"
1197
+ */
1198
+ courseCertNumberMaskFormat?: string
1199
+ /**
1200
+ * Course certificate number mode
1201
+ * @example "auto"
1202
+ */
1203
+ courseCertNumberMode?: string
1204
+ /**
1205
+ * List of enabled user filters
1206
+ * @example ["active","pending"]
1207
+ */
1208
+ enabledUsersFilter?: string[]
1209
+ /**
1210
+ * Optional user search filters
1211
+ * @example []
1212
+ */
1213
+ optionalUserSearchFilters?: any[]
1214
+ /**
1215
+ * Menu display options configuration
1216
+ * @example {}
1217
+ */
1218
+ menuDisplayOptions?: any
1219
+ /**
1220
+ * Settings display options configuration
1221
+ * @example {}
1222
+ */
1223
+ settingsDisplayOptions?: any
1224
+ /**
1225
+ * Custom registration configuration
1226
+ * @example {}
1227
+ */
1228
+ customRegistration?: any
1229
+ /**
1230
+ * List of enabled report types
1231
+ * @example ["user","certification"]
1232
+ */
1233
+ reportTypes?: string[]
1234
+ /**
1235
+ * UI theme key
1236
+ * @example "default"
1237
+ */
1238
+ uiThemeKey?: string
1239
+ /**
1240
+ * Discount help text
1241
+ * @example "Enter discount code"
1242
+ */
1243
+ discountHelpText?: string
1244
+ /**
1245
+ * Whether organization module is disabled
1246
+ * @example false
1247
+ */
1248
+ orgModDisabled?: boolean
1249
+ /**
1250
+ * Discount policy configuration
1251
+ * @example {"employerCUs":["CU1","CU2"],"discountPercent":10}
1252
+ */
1253
+ discountPolicy?: {
1254
+ employerCUs?: string[]
1255
+ discountPercent?: number
1256
+ }
1257
+ /**
1258
+ * IDM instructor role ID
1259
+ * @example "role_instructor"
1260
+ */
1261
+ idmInstructorRoleID?: string
1262
+ /**
1263
+ * Whether organizations are disabled
1264
+ * @example false
1265
+ */
1266
+ organizationsDisabled?: boolean
1267
+ /**
1268
+ * Organization member profile configuration
1269
+ * @example {}
1270
+ */
1271
+ organizationMemberProfile?: {
1272
+ sections?: {
1273
+ name?: string
1274
+ beforeRow?: number
1275
+ fields?: any
1276
+ }[]
1277
+ } | null
1278
+ /**
1279
+ * Whether organization module employee mode is enabled
1280
+ * @example false
1281
+ */
1282
+ orgModEmployeeMode?: boolean
1283
+ /**
1284
+ * Whether organization self-registration is allowed
1285
+ * @example false
1286
+ */
1287
+ orgModAllowOrgSelfRegistration?: boolean
1288
+ /**
1289
+ * Whether to use product suffix on transactions
1290
+ * @example false
1291
+ */
1292
+ licModUseProdSuffixOnTx?: boolean
1293
+ /**
1294
+ * Whether license module vaulting is enabled
1295
+ * @example false
1296
+ */
1297
+ licModVaultingEnabled?: boolean
1298
+ /**
1299
+ * Whether license module purchase is enabled
1300
+ * @example false
1301
+ */
1302
+ licModPurchaseEnabled?: boolean
1303
+ /**
1304
+ * License module purchase message
1305
+ * @example "Purchase available"
1306
+ */
1307
+ licModPurchaseMessage?: string
1308
+ /**
1309
+ * Webhook URL for successful purchase
1310
+ * @example "https://example.com/webhook/success"
1311
+ */
1312
+ purchaseWebhookSuccess?: string
1313
+ /**
1314
+ * Webhook URL for failed purchase
1315
+ * @example "https://example.com/webhook/fail"
1316
+ */
1317
+ purchaseWebhookFail?: string
1318
+ /**
1319
+ * Webhook URL for refund
1320
+ * @example "https://example.com/webhook/refund"
1321
+ */
1322
+ purchaseWebhookRefund?: string
1323
+ /**
1324
+ * UI configuration
1325
+ * @example {"banner":{"type":"info","content":"Welcome"}}
1326
+ */
1327
+ ui?: {
1328
+ banner?: {
1329
+ type?: string
1330
+ content?: string
1331
+ }
1332
+ profileAlertMessage?: string
1333
+ }
1334
+ }
1335
+
1336
+ /** List of tenants response */
1337
+ export interface TenantListResponse {
1338
+ tenants: TenantResponse[]
1339
+ }
1340
+
1341
+ /** Training provider response object */
1342
+ export interface TrainingProviderResponse {
1343
+ /**
1344
+ * User who created the training provider record
1345
+ * @example "admin@example.com"
1346
+ */
1347
+ createdBy?: string
1348
+ /**
1349
+ * Timestamp when the training provider was created
1350
+ * @example 1717000000000
1351
+ */
1352
+ createdOn: number
1353
+ /**
1354
+ * User who last updated the training provider record
1355
+ * @example "admin@example.com"
1356
+ */
1357
+ updatedBy?: string
1358
+ /**
1359
+ * Timestamp of last update
1360
+ * @example 1717000000000
1361
+ */
1362
+ updatedOn?: number
1363
+ /**
1364
+ * Unique identifier of the training provider
1365
+ * @example "tp456"
1366
+ */
1367
+ id: string
1368
+ /**
1369
+ * Customer ID this training provider belongs to
1370
+ * @example "customer123"
1371
+ */
1372
+ customerID: string
1373
+ /**
1374
+ * Training provider name
1375
+ * @example "ACME Training"
1376
+ */
1377
+ name?: string
1378
+ /**
1379
+ * Training provider URL
1380
+ * @example "https://training.example.com"
1381
+ */
1382
+ url?: string
1383
+ /**
1384
+ * Whether the training provider is disabled
1385
+ * @example false
1386
+ */
1387
+ isDisabled?: boolean
1388
+ }
1389
+
1390
+ /** Training provider request body for create/update operations */
1391
+ export interface TrainingProviderRequestBody {
1392
+ /**
1393
+ * Unique identifier of the training provider
1394
+ * @example "tp456"
1395
+ */
1396
+ id: string
1397
+ /**
1398
+ * Customer ID this training provider belongs to
1399
+ * @example "customer123"
1400
+ */
1401
+ customerID: string
1402
+ /**
1403
+ * Training provider name
1404
+ * @example "ACME Training"
1405
+ */
1406
+ name?: string
1407
+ /**
1408
+ * Training provider URL
1409
+ * @example "https://training.example.com"
1410
+ */
1411
+ url?: string
1412
+ /**
1413
+ * Whether the training provider is disabled
1414
+ * @example false
1415
+ */
1416
+ isDisabled?: boolean
1417
+ }
1418
+
1419
+ /** List of training providers response */
1420
+ export interface TrainingProviderListResponse {
1421
+ trainingProviders: TrainingProviderResponse[]
1422
+ }
1423
+
1424
+ /** Tile permissions response object */
1425
+ export interface TilePermissionsResponse {
1426
+ permissions: {
1427
+ /**
1428
+ * User who created the tile permissions record
1429
+ * @example "admin@example.com"
1430
+ */
1431
+ createdBy?: string
1432
+ /**
1433
+ * Timestamp when the tile permissions were created
1434
+ * @example 1717000000000
1435
+ */
1436
+ createdOn: number
1437
+ /**
1438
+ * User who last updated the tile permissions record
1439
+ * @example "admin@example.com"
1440
+ */
1441
+ updatedBy?: string
1442
+ /**
1443
+ * Timestamp of last update
1444
+ * @example 1717000000000
1445
+ */
1446
+ updatedOn?: number
1447
+ /**
1448
+ * Customer ID these tile permissions belong to
1449
+ * @example "customer123"
1450
+ */
1451
+ customerID: string
1452
+ /**
1453
+ * Map of tile IDs to permission entries
1454
+ * @example {"tile1":[{"role":"admin","access":"READ"},{"role":"user","access":"READ"}],"tile2":[{"role":"admin","access":"READ"}]}
1455
+ */
1456
+ tilePermissions?: Record<
1457
+ string,
1458
+ {
1459
+ /**
1460
+ * Role identifier
1461
+ * @example "admin"
1462
+ */
1463
+ role: string
1464
+ /**
1465
+ * Access level
1466
+ * @example "READ"
1467
+ */
1468
+ access: string
1469
+ }[]
1470
+ >
1471
+ }[]
1472
+ }
1473
+
1474
+ /** Tile permissions request body for create/update operations */
1475
+ export interface TilePermissionsRequestBody {
1476
+ tilePermissions?: Record<
1477
+ string,
1478
+ {
1479
+ role: string
1480
+ access?: string
1481
+ }[]
1482
+ >
1483
+ }
1484
+
1485
+ /** Requirement response object */
1486
+ export interface RequirementResponse {
1487
+ /**
1488
+ * User who created the requirement record
1489
+ * @example "admin@example.com"
1490
+ */
1491
+ createdBy?: string
1492
+ /**
1493
+ * Timestamp when the requirement was created
1494
+ * @example 1717000000000
1495
+ */
1496
+ createdOn: number
1497
+ /**
1498
+ * User who last updated the requirement record
1499
+ * @example "admin@example.com"
1500
+ */
1501
+ updatedBy?: string
1502
+ /**
1503
+ * Timestamp of last update
1504
+ * @example 1717000000000
1505
+ */
1506
+ updatedOn?: number
1507
+ /**
1508
+ * Unique identifier of the requirement
1509
+ * @example "req456"
1510
+ */
1511
+ id: string
1512
+ /**
1513
+ * Customer ID this requirement belongs to
1514
+ * @example "customer123"
1515
+ */
1516
+ customerID: string
1517
+ /**
1518
+ * Display order of the requirement
1519
+ * @example 1
1520
+ */
1521
+ order?: number
1522
+ /**
1523
+ * Requirement name
1524
+ * @example "First Aid Training"
1525
+ */
1526
+ name?: string
1527
+ /**
1528
+ * Internal name for the requirement
1529
+ * @example "first_aid_training"
1530
+ */
1531
+ internalName?: string
1532
+ /**
1533
+ * Short description for card display
1534
+ * @example "Basic first aid certification"
1535
+ */
1536
+ cardDescription?: string
1537
+ /**
1538
+ * Detailed name of the requirement
1539
+ * @example "Standard First Aid & CPR Level C"
1540
+ */
1541
+ detailedName?: string
1542
+ /**
1543
+ * List of matching criteria
1544
+ * @example [{"type":"course","id":"course123"}]
1545
+ */
1546
+ matches?: any[]
1547
+ /**
1548
+ * Number of elective matches required
1549
+ * @example 2
1550
+ */
1551
+ matchesElectiveCount?: number
1552
+ /**
1553
+ * Detailed description of the requirement
1554
+ * @example "This requirement covers basic first aid and CPR training."
1555
+ */
1556
+ detailedDescription?: string
1557
+ /** List of accepted training providers for this equivalence */
1558
+ acceptedProviders?: {
1559
+ /**
1560
+ * Training provider ID
1561
+ * @example "tp123"
1562
+ */
1563
+ trainingProviderID: string
1564
+ /**
1565
+ * Type of training provider
1566
+ * @example "online"
1567
+ */
1568
+ type: string
1569
+ /**
1570
+ * Link to launch training
1571
+ * @example "https://trainingprovider.com/launch"
1572
+ */
1573
+ launchLink?: string
1574
+ /**
1575
+ * Unique identifier for the accepted provider
1576
+ * @example "ap123"
1577
+ */
1578
+ id?: string
1579
+ /**
1580
+ * Optional name for the accepted provider
1581
+ * @example "Provider Name"
1582
+ */
1583
+ optionalName?: string
1584
+ /**
1585
+ * Whether to display the launch link
1586
+ * @example true
1587
+ */
1588
+ displayLink?: boolean
1589
+ /**
1590
+ * Optional link for more information
1591
+ * @example "https://trainingprovider.com/info"
1592
+ */
1593
+ optionalLink?: string
1594
+ /**
1595
+ * Whether the training has an expiration date
1596
+ * @example false
1597
+ */
1598
+ hasExpirationDate?: boolean
1599
+ /**
1600
+ * Whether the training has an issued date
1601
+ * @example true
1602
+ */
1603
+ hasIssuedDate?: boolean
1604
+ /**
1605
+ * Maximum number of files that can be uploaded for this provider
1606
+ * @example 5
1607
+ */
1608
+ maxFiles?: number
1609
+ }[]
1610
+ }
1611
+
1612
+ /** Requirement request body for create/update operations */
1613
+ export interface RequirementRequestBody {
1614
+ /**
1615
+ * Unique identifier of the requirement
1616
+ * @example "req456"
1617
+ */
1618
+ id: string
1619
+ /**
1620
+ * Customer ID this requirement belongs to
1621
+ * @example "customer123"
1622
+ */
1623
+ customerID: string
1624
+ /**
1625
+ * Display order of the requirement
1626
+ * @example 1
1627
+ */
1628
+ order?: number
1629
+ /**
1630
+ * Requirement name
1631
+ * @example "First Aid Training"
1632
+ */
1633
+ name?: string
1634
+ /**
1635
+ * Internal name for the requirement
1636
+ * @example "first_aid_training"
1637
+ */
1638
+ internalName?: string
1639
+ /**
1640
+ * Short description for card display
1641
+ * @example "Basic first aid certification"
1642
+ */
1643
+ cardDescription?: string
1644
+ /**
1645
+ * Detailed name of the requirement
1646
+ * @example "Standard First Aid & CPR Level C"
1647
+ */
1648
+ detailedName?: string
1649
+ /**
1650
+ * List of matching criteria
1651
+ * @example [{"type":"course","id":"course123"}]
1652
+ */
1653
+ matches?: any[]
1654
+ /**
1655
+ * Number of elective matches required
1656
+ * @example 2
1657
+ */
1658
+ matchesElectiveCount?: number
1659
+ /**
1660
+ * Detailed description of the requirement
1661
+ * @example "This requirement covers basic first aid and CPR training."
1662
+ */
1663
+ detailedDescription?: string
1664
+ /** List of accepted training providers for this equivalence */
1665
+ acceptedProviders?: {
1666
+ /**
1667
+ * Training provider ID
1668
+ * @example "tp123"
1669
+ */
1670
+ trainingProviderID: string
1671
+ /**
1672
+ * Type of training provider
1673
+ * @example "online"
1674
+ */
1675
+ type: string
1676
+ /**
1677
+ * Link to launch training
1678
+ * @example "https://trainingprovider.com/launch"
1679
+ */
1680
+ launchLink?: string
1681
+ /**
1682
+ * Unique identifier for the accepted provider
1683
+ * @example "ap123"
1684
+ */
1685
+ id?: string
1686
+ /**
1687
+ * Optional name for the accepted provider
1688
+ * @example "Provider Name"
1689
+ */
1690
+ optionalName?: string
1691
+ /**
1692
+ * Whether to display the launch link
1693
+ * @example true
1694
+ */
1695
+ displayLink?: boolean
1696
+ /**
1697
+ * Optional link for more information
1698
+ * @example "https://trainingprovider.com/info"
1699
+ */
1700
+ optionalLink?: string
1701
+ /**
1702
+ * Whether the training has an expiration date
1703
+ * @example false
1704
+ */
1705
+ hasExpirationDate?: boolean
1706
+ /**
1707
+ * Whether the training has an issued date
1708
+ * @example true
1709
+ */
1710
+ hasIssuedDate?: boolean
1711
+ /**
1712
+ * Maximum number of files that can be uploaded for this provider
1713
+ * @example 5
1714
+ */
1715
+ maxFiles?: number
1716
+ }[]
1717
+ }
1718
+
1719
+ /** List of requirements response */
1720
+ export interface RequirementListResponse {
1721
+ requirements: RequirementResponse[]
1722
+ }
1723
+
1724
+ /** Equivalence response object */
1725
+ export interface EquivalenceResponse {
1726
+ /**
1727
+ * User who created the equivalence record
1728
+ * @example "admin@example.com"
1729
+ */
1730
+ createdBy?: string
1731
+ /**
1732
+ * Timestamp when the equivalence was created
1733
+ * @example 1717000000000
1734
+ */
1735
+ createdOn: number
1736
+ /**
1737
+ * User who last updated the equivalence record
1738
+ * @example "admin@example.com"
1739
+ */
1740
+ updatedBy?: string
1741
+ /**
1742
+ * Timestamp of last update
1743
+ * @example 1717000000000
1744
+ */
1745
+ updatedOn?: number
1746
+ /**
1747
+ * Unique identifier of the equivalence
1748
+ * @example "eq456"
1749
+ */
1750
+ id: string
1751
+ /**
1752
+ * Customer ID this equivalence belongs to
1753
+ * @example "customer123"
1754
+ */
1755
+ customerID: string
1756
+ /**
1757
+ * Display order of the equivalence
1758
+ * @example 1
1759
+ */
1760
+ order?: number
1761
+ /**
1762
+ * Equivalence name
1763
+ * @example "First Aid Equivalence"
1764
+ */
1765
+ name?: string
1766
+ /**
1767
+ * Internal name for the equivalence
1768
+ * @example "first_aid_equiv"
1769
+ */
1770
+ internalName?: string
1771
+ /**
1772
+ * Short description for card display
1773
+ * @example "Equivalent first aid certification"
1774
+ */
1775
+ cardDescription?: string
1776
+ /**
1777
+ * Detailed name of the equivalence
1778
+ * @example "Standard First Aid Equivalence"
1779
+ */
1780
+ detailedName?: string
1781
+ /**
1782
+ * Detailed description of the equivalence
1783
+ * @example "This equivalence covers alternative first aid certifications."
1784
+ */
1785
+ detailedDescription?: string
1786
+ /**
1787
+ * List of matching criteria
1788
+ * @example [{"type":"course","id":"course123"}]
1789
+ */
1790
+ matches?: any[]
1791
+ /**
1792
+ * Number of elective matches required
1793
+ * @example 2
1794
+ */
1795
+ matchesElectiveCount?: number
1796
+ /** List of accepted training providers for this equivalence */
1797
+ acceptedProviders?: {
1798
+ /**
1799
+ * Training provider ID
1800
+ * @example "tp123"
1801
+ */
1802
+ trainingProviderID: string
1803
+ /**
1804
+ * Type of training provider
1805
+ * @example "online"
1806
+ */
1807
+ type: string
1808
+ /**
1809
+ * Link to launch training
1810
+ * @example "https://trainingprovider.com/launch"
1811
+ */
1812
+ launchLink?: string
1813
+ /**
1814
+ * Unique identifier for the accepted provider
1815
+ * @example "ap123"
1816
+ */
1817
+ id?: string
1818
+ /**
1819
+ * Optional name for the accepted provider
1820
+ * @example "Provider Name"
1821
+ */
1822
+ optionalName?: string
1823
+ /**
1824
+ * Whether to display the launch link
1825
+ * @example true
1826
+ */
1827
+ displayLink?: boolean
1828
+ /**
1829
+ * Optional link for more information
1830
+ * @example "https://trainingprovider.com/info"
1831
+ */
1832
+ optionalLink?: string
1833
+ /**
1834
+ * Whether the training has an expiration date
1835
+ * @example false
1836
+ */
1837
+ hasExpirationDate?: boolean
1838
+ /**
1839
+ * Whether the training has an issued date
1840
+ * @example true
1841
+ */
1842
+ hasIssuedDate?: boolean
1843
+ /**
1844
+ * Maximum number of files that can be uploaded for this provider
1845
+ * @example 5
1846
+ */
1847
+ maxFiles?: number
1848
+ }[]
1849
+ }
1850
+
1851
+ /** Equivalence request body for create/update operations */
1852
+ export interface EquivalenceRequestBody {
1853
+ /**
1854
+ * Unique identifier of the equivalence
1855
+ * @example "eq456"
1856
+ */
1857
+ id: string
1858
+ /**
1859
+ * Customer ID this equivalence belongs to
1860
+ * @example "customer123"
1861
+ */
1862
+ customerID: string
1863
+ /**
1864
+ * Display order of the equivalence
1865
+ * @example 1
1866
+ */
1867
+ order?: number
1868
+ /**
1869
+ * Equivalence name
1870
+ * @example "First Aid Equivalence"
1871
+ */
1872
+ name?: string
1873
+ /**
1874
+ * Internal name for the equivalence
1875
+ * @example "first_aid_equiv"
1876
+ */
1877
+ internalName?: string
1878
+ /**
1879
+ * Short description for card display
1880
+ * @example "Equivalent first aid certification"
1881
+ */
1882
+ cardDescription?: string
1883
+ /**
1884
+ * Detailed name of the equivalence
1885
+ * @example "Standard First Aid Equivalence"
1886
+ */
1887
+ detailedName?: string
1888
+ /**
1889
+ * Detailed description of the equivalence
1890
+ * @example "This equivalence covers alternative first aid certifications."
1891
+ */
1892
+ detailedDescription?: string
1893
+ /**
1894
+ * List of matching criteria
1895
+ * @example [{"type":"course","id":"course123"}]
1896
+ */
1897
+ matches?: any[]
1898
+ /**
1899
+ * Number of elective matches required
1900
+ * @example 2
1901
+ */
1902
+ matchesElectiveCount?: number
1903
+ /** List of accepted training providers for this equivalence */
1904
+ acceptedProviders?: {
1905
+ /**
1906
+ * Training provider ID
1907
+ * @example "tp123"
1908
+ */
1909
+ trainingProviderID: string
1910
+ /**
1911
+ * Type of training provider
1912
+ * @example "online"
1913
+ */
1914
+ type: string
1915
+ /**
1916
+ * Link to launch training
1917
+ * @example "https://trainingprovider.com/launch"
1918
+ */
1919
+ launchLink?: string
1920
+ /**
1921
+ * Unique identifier for the accepted provider
1922
+ * @example "ap123"
1923
+ */
1924
+ id?: string
1925
+ /**
1926
+ * Optional name for the accepted provider
1927
+ * @example "Provider Name"
1928
+ */
1929
+ optionalName?: string
1930
+ /**
1931
+ * Whether to display the launch link
1932
+ * @example true
1933
+ */
1934
+ displayLink?: boolean
1935
+ /**
1936
+ * Optional link for more information
1937
+ * @example "https://trainingprovider.com/info"
1938
+ */
1939
+ optionalLink?: string
1940
+ /**
1941
+ * Whether the training has an expiration date
1942
+ * @example false
1943
+ */
1944
+ hasExpirationDate?: boolean
1945
+ /**
1946
+ * Whether the training has an issued date
1947
+ * @example true
1948
+ */
1949
+ hasIssuedDate?: boolean
1950
+ /**
1951
+ * Maximum number of files that can be uploaded for this provider
1952
+ * @example 5
1953
+ */
1954
+ maxFiles?: number
1955
+ }[]
1956
+ }
1957
+
1958
+ /** List of equivalences response */
1959
+ export interface EquivalenceListResponse {
1960
+ equivalences: EquivalenceResponse[]
1961
+ }
1962
+
1963
+ /** Course provider response object */
1964
+ export interface CourseProviderResponse {
1965
+ /**
1966
+ * User who created the course provider record
1967
+ * @example "admin@example.com"
1968
+ */
1969
+ createdBy?: string
1970
+ /**
1971
+ * Timestamp when the course provider was created
1972
+ * @example 1717000000000
1973
+ */
1974
+ createdOn: number
1975
+ /**
1976
+ * User who last updated the course provider record
1977
+ * @example "admin@example.com"
1978
+ */
1979
+ updatedBy?: string
1980
+ /**
1981
+ * Timestamp of last update
1982
+ * @example 1717000000000
1983
+ */
1984
+ updatedOn?: number
1985
+ /**
1986
+ * Unique identifier of the course provider
1987
+ * @example "cp123"
1988
+ */
1989
+ id: string
1990
+ /**
1991
+ * Type of course provider
1992
+ * @example "online"
1993
+ */
1994
+ type?: string
1995
+ /**
1996
+ * List of online template IDs
1997
+ * @example ["template1","template2"]
1998
+ */
1999
+ onlineTemplateIDs?: string[]
2000
+ /**
2001
+ * Provider configuration object
2002
+ * @example {"name":"Provider Name","url":"https://provider.com"}
2003
+ */
2004
+ provider?: any
2005
+ }
2006
+
2007
+ /** Course provider request body for create/update operations */
2008
+ export interface CourseProviderRequestBody {
2009
+ /**
2010
+ * Unique identifier of the course provider
2011
+ * @example "cp123"
2012
+ */
2013
+ id: string
2014
+ /**
2015
+ * Type of course provider
2016
+ * @example "online"
2017
+ */
2018
+ type?: string
2019
+ /**
2020
+ * List of online template IDs
2021
+ * @example ["template1","template2"]
2022
+ */
2023
+ onlineTemplateIDs?: string[]
2024
+ /**
2025
+ * Provider configuration object
2026
+ * @example {"name":"Provider Name","url":"https://provider.com"}
2027
+ */
2028
+ provider?: any
2029
+ }
2030
+
2031
+ /** List of course providers response */
2032
+ export interface CourseProviderListResponse {
2033
+ courseProviders: CourseProviderResponse[]
2034
+ }
2035
+
2036
+ /** FAQ response object */
2037
+ export interface FaqResponse {
2038
+ /**
2039
+ * User who created the FAQ record
2040
+ * @example "admin@example.com"
2041
+ */
2042
+ createdBy?: string
2043
+ /**
2044
+ * Timestamp when the FAQ was created
2045
+ * @example 1717000000000
2046
+ */
2047
+ createdOn: number
2048
+ /**
2049
+ * User who last updated the FAQ record
2050
+ * @example "admin@example.com"
2051
+ */
2052
+ updatedBy?: string
2053
+ /**
2054
+ * Timestamp of last update
2055
+ * @example 1717000000000
2056
+ */
2057
+ updatedOn?: number
2058
+ /**
2059
+ * Unique identifier of the FAQ
2060
+ * @example "faq789"
2061
+ */
2062
+ id: string
2063
+ /**
2064
+ * Tenant ID this FAQ belongs to
2065
+ * @example "tenant456"
2066
+ */
2067
+ tenantID: string
2068
+ /**
2069
+ * FAQ section/category
2070
+ * @example "General"
2071
+ */
2072
+ section?: string
2073
+ /**
2074
+ * FAQ question
2075
+ * @example "How do I register?"
2076
+ */
2077
+ question?: string
2078
+ /**
2079
+ * FAQ answer
2080
+ * @example "You can register by clicking the sign up button."
2081
+ */
2082
+ answer?: string
2083
+ }
2084
+
2085
+ export interface InputKcyv6Zl1B3H {
2086
+ /**
2087
+ * Tenant ID this FAQ belongs to
2088
+ * @example "tenant456"
2089
+ */
2090
+ tenantID?: string
2091
+ /**
2092
+ * FAQ section/category
2093
+ * @example "General"
2094
+ */
2095
+ section?: string
2096
+ /**
2097
+ * FAQ question
2098
+ * @example "How do I register?"
2099
+ */
2100
+ question?: string
2101
+ /**
2102
+ * FAQ answer
2103
+ * @example "You can register by clicking the sign up button."
2104
+ */
2105
+ answer?: string
2106
+ }
2107
+
2108
+ export interface InputGoxi3Hq6E8F {
2109
+ /**
2110
+ * Tenant ID this FAQ belongs to
2111
+ * @example "tenant456"
2112
+ */
2113
+ tenantID?: string
2114
+ /**
2115
+ * FAQ section/category
2116
+ * @example "General"
2117
+ */
2118
+ section?: string
2119
+ /**
2120
+ * FAQ question
2121
+ * @example "How do I register?"
2122
+ */
2123
+ question?: string
2124
+ /**
2125
+ * FAQ answer
2126
+ * @example "You can register by clicking the sign up button."
2127
+ */
2128
+ answer?: string
2129
+ }
2130
+
2131
+ /** List of FAQs response */
2132
+ export interface FaqListResponse {
2133
+ faqs: FaqResponse[]
2134
+ }
2135
+
2136
+ /** Certification response object */
2137
+ export interface CertificationResponse {
2138
+ /**
2139
+ * User who created the certification record
2140
+ * @example "admin@example.com"
2141
+ */
2142
+ createdBy?: string
2143
+ /**
2144
+ * Timestamp when the certification was created
2145
+ * @example 1717000000000
2146
+ */
2147
+ createdOn: number
2148
+ /**
2149
+ * User who last updated the certification record
2150
+ * @example "admin@example.com"
2151
+ */
2152
+ updatedBy?: string
2153
+ /**
2154
+ * Timestamp of last update
2155
+ * @example 1717000000000
2156
+ */
2157
+ updatedOn?: number
2158
+ /**
2159
+ * Unique identifier of the certification
2160
+ * @example "cert789"
2161
+ */
2162
+ id?: string
2163
+ /**
2164
+ * Customer ID this certification belongs to
2165
+ * @example "customer123"
2166
+ */
2167
+ customerID?: string
2168
+ /**
2169
+ * Tenant ID this certification belongs to
2170
+ * @example "tenant456"
2171
+ */
2172
+ tenantID?: string
2173
+ /**
2174
+ * Type of certification engine
2175
+ * @example "standard"
2176
+ */
2177
+ certificationEngineType?: string
2178
+ /**
2179
+ * Array of requirement ID arrays (nested structure for requirement groups)
2180
+ * @example [["req1","req2"],["req3"]]
2181
+ */
2182
+ requirementsIDs?: string[][]
2183
+ /**
2184
+ * Certification locked by another certification
2185
+ * @example ["cert123"]
2186
+ */
2187
+ lockedBy?: string[]
2188
+ /**
2189
+ * Certification superseded by another certification
2190
+ * @example ["cert456"]
2191
+ */
2192
+ superseededBy?: string[]
2193
+ /**
2194
+ * Allow renewal before expiry (in days)
2195
+ * @example 30
2196
+ */
2197
+ allowRenewalBefore?: number
2198
+ /**
2199
+ * Allow renewal before expiry (in months)
2200
+ * @example 1
2201
+ */
2202
+ allowRenewalBeforeInMonths?: number
2203
+ /** Warning remaining days configuration */
2204
+ warningRemainingDays?: {
2205
+ /**
2206
+ * Email template ID
2207
+ * @example "warning-template"
2208
+ */
2209
+ template?: string
2210
+ /**
2211
+ * Period in days
2212
+ * @example 15
2213
+ */
2214
+ period?: number
2215
+ }[]
2216
+ /**
2217
+ * Validity period in days
2218
+ * @example 365
2219
+ */
2220
+ validityPeriod?: number
2221
+ /**
2222
+ * Validity period in months
2223
+ * @example 12
2224
+ */
2225
+ validityPeriodInMonths?: number
2226
+ /**
2227
+ * Requirement ID for validity
2228
+ * @example "req123"
2229
+ */
2230
+ validityRequirementID?: string
2231
+ /** Warning threshold for incomplete certification */
2232
+ warningIncompleteCertificationDays?: {
2233
+ /**
2234
+ * Email template ID
2235
+ * @example "incomplete-template"
2236
+ */
2237
+ template?: string
2238
+ /**
2239
+ * Period in days
2240
+ * @example 7
2241
+ */
2242
+ period?: number
2243
+ }[]
2244
+ /**
2245
+ * Whether publishing is enabled
2246
+ * @example true
2247
+ */
2248
+ isPublishEnabled?: boolean
2249
+ /** Array of trigger configurations */
2250
+ triggers?: any[]
2251
+ /**
2252
+ * Points required for certification
2253
+ * @example 100
2254
+ */
2255
+ pointsRequired?: number
2256
+ /**
2257
+ * Type of certificate
2258
+ * @example "digital"
2259
+ */
2260
+ certificateType?: string
2261
+ /**
2262
+ * Certificate template identifier
2263
+ * @example "template1"
2264
+ */
2265
+ certificateTemplate?: string
2266
+ /**
2267
+ * Certificate number mask format
2268
+ * @example "CERT-####"
2269
+ */
2270
+ certNumberMaskFormat?: string
2271
+ /**
2272
+ * Certificate number generation mode
2273
+ * @example "sequential"
2274
+ */
2275
+ certNumberMode?: string
2276
+ /**
2277
+ * Initial certificate number
2278
+ * @example "1000"
2279
+ */
2280
+ certNumberInitialNumber?: string
2281
+ /**
2282
+ * Set completion using requirement ID
2283
+ * @example "req123"
2284
+ */
2285
+ setCompletionUsingRequirement?: string
2286
+ /** Application configuration */
2287
+ application?: any
2288
+ /** Renewal configuration */
2289
+ renewal?: any
2290
+ /**
2291
+ * Commission value
2292
+ * @example 50
2293
+ */
2294
+ commissionValue?: number
2295
+ /**
2296
+ * Commission percentage
2297
+ * @example 10
2298
+ */
2299
+ commissionPercent?: number
2300
+ /**
2301
+ * Commission payment mode
2302
+ * @example 10
2303
+ */
2304
+ commissionPaymentMode?: number
2305
+ /**
2306
+ * Commission assignment mode
2307
+ * @example 10
2308
+ */
2309
+ commissionAssignMode?: number
2310
+ /**
2311
+ * Array of disabled email types
2312
+ * @example ["reminder","expiry"]
2313
+ */
2314
+ disabledEmails?: string[]
2315
+ /**
2316
+ * Whether to notify admins
2317
+ * @example true
2318
+ */
2319
+ notifyAdmins?: boolean
2320
+ /**
2321
+ * Days before entering maintenance
2322
+ * @example 30
2323
+ */
2324
+ enterMaintenanceDays?: number
2325
+ /**
2326
+ * Certification title
2327
+ * @example "Safety Certification"
2328
+ */
2329
+ title?: string
2330
+ /**
2331
+ * Certification description
2332
+ * @example "Basic safety certification for operators"
2333
+ */
2334
+ description?: string
2335
+ /**
2336
+ * Short description
2337
+ * @example "Safety cert"
2338
+ */
2339
+ shortDescription?: string
2340
+ /**
2341
+ * UI terminology
2342
+ * @example "Certification"
2343
+ */
2344
+ uiTerm?: string
2345
+ /** UI configuration */
2346
+ ui?: any
2347
+ }
2348
+
2349
+ /** Certification request body for create/update operations */
2350
+ export interface CertificationRequestBody {
2351
+ /**
2352
+ * Unique identifier of the certification
2353
+ * @example "cert789"
2354
+ */
2355
+ id?: string
2356
+ /**
2357
+ * Customer ID this certification belongs to
2358
+ * @example "customer123"
2359
+ */
2360
+ customerID?: string
2361
+ /**
2362
+ * Tenant ID this certification belongs to
2363
+ * @example "tenant456"
2364
+ */
2365
+ tenantID?: string
2366
+ /**
2367
+ * Type of certification engine
2368
+ * @example "standard"
2369
+ */
2370
+ certificationEngineType?: string
2371
+ /**
2372
+ * Array of requirement ID arrays (nested structure for requirement groups)
2373
+ * @example [["req1","req2"],["req3"]]
2374
+ */
2375
+ requirementsIDs?: string[][]
2376
+ /**
2377
+ * Certification locked by another certification
2378
+ * @example ["cert123"]
2379
+ */
2380
+ lockedBy?: string[]
2381
+ /**
2382
+ * Certification superseded by another certification
2383
+ * @example ["cert456"]
2384
+ */
2385
+ superseededBy?: string[]
2386
+ /**
2387
+ * Allow renewal before expiry (in days)
2388
+ * @example 30
2389
+ */
2390
+ allowRenewalBefore?: number
2391
+ /**
2392
+ * Allow renewal before expiry (in months)
2393
+ * @example 1
2394
+ */
2395
+ allowRenewalBeforeInMonths?: number
2396
+ /** Warning remaining days configuration */
2397
+ warningRemainingDays?: {
2398
+ /**
2399
+ * Email template ID
2400
+ * @example "warning-template"
2401
+ */
2402
+ template?: string
2403
+ /**
2404
+ * Period in days
2405
+ * @example 15
2406
+ */
2407
+ period?: number
2408
+ }[]
2409
+ /**
2410
+ * Validity period in days
2411
+ * @example 365
2412
+ */
2413
+ validityPeriod?: number
2414
+ /**
2415
+ * Validity period in months
2416
+ * @example 12
2417
+ */
2418
+ validityPeriodInMonths?: number
2419
+ /**
2420
+ * Requirement ID for validity
2421
+ * @example "req123"
2422
+ */
2423
+ validityRequirementID?: string
2424
+ /** Warning threshold for incomplete certification */
2425
+ warningIncompleteCertificationDays?: {
2426
+ /**
2427
+ * Email template ID
2428
+ * @example "incomplete-template"
2429
+ */
2430
+ template?: string
2431
+ /**
2432
+ * Period in days
2433
+ * @example 7
2434
+ */
2435
+ period?: number
2436
+ }[]
2437
+ /**
2438
+ * Whether publishing is enabled
2439
+ * @example true
2440
+ */
2441
+ isPublishEnabled?: boolean
2442
+ /** Array of trigger configurations */
2443
+ triggers?: any[]
2444
+ /**
2445
+ * Points required for certification
2446
+ * @example 100
2447
+ */
2448
+ pointsRequired?: number
2449
+ /**
2450
+ * Type of certificate
2451
+ * @example "digital"
2452
+ */
2453
+ certificateType?: string
2454
+ /**
2455
+ * Certificate template identifier
2456
+ * @example "template1"
2457
+ */
2458
+ certificateTemplate?: string
2459
+ /**
2460
+ * Certificate number mask format
2461
+ * @example "CERT-####"
2462
+ */
2463
+ certNumberMaskFormat?: string
2464
+ /**
2465
+ * Certificate number generation mode
2466
+ * @example "sequential"
2467
+ */
2468
+ certNumberMode?: string
2469
+ /**
2470
+ * Initial certificate number
2471
+ * @example "1000"
2472
+ */
2473
+ certNumberInitialNumber?: string
2474
+ /**
2475
+ * Set completion using requirement ID
2476
+ * @example "req123"
2477
+ */
2478
+ setCompletionUsingRequirement?: string
2479
+ /** Application configuration */
2480
+ application?: any
2481
+ /** Renewal configuration */
2482
+ renewal?: any
2483
+ /**
2484
+ * Commission value
2485
+ * @example 50
2486
+ */
2487
+ commissionValue?: number
2488
+ /**
2489
+ * Commission percentage
2490
+ * @example 10
2491
+ */
2492
+ commissionPercent?: number
2493
+ /**
2494
+ * Commission payment mode
2495
+ * @example 10
2496
+ */
2497
+ commissionPaymentMode?: number
2498
+ /**
2499
+ * Commission assignment mode
2500
+ * @example 10
2501
+ */
2502
+ commissionAssignMode?: number
2503
+ /**
2504
+ * Array of disabled email types
2505
+ * @example ["reminder","expiry"]
2506
+ */
2507
+ disabledEmails?: string[]
2508
+ /**
2509
+ * Whether to notify admins
2510
+ * @example true
2511
+ */
2512
+ notifyAdmins?: boolean
2513
+ /**
2514
+ * Days before entering maintenance
2515
+ * @example 30
2516
+ */
2517
+ enterMaintenanceDays?: number
2518
+ /**
2519
+ * Certification title
2520
+ * @example "Safety Certification"
2521
+ */
2522
+ title?: string
2523
+ /**
2524
+ * Certification description
2525
+ * @example "Basic safety certification for operators"
2526
+ */
2527
+ description?: string
2528
+ /**
2529
+ * Short description
2530
+ * @example "Safety cert"
2531
+ */
2532
+ shortDescription?: string
2533
+ /**
2534
+ * UI terminology
2535
+ * @example "Certification"
2536
+ */
2537
+ uiTerm?: string
2538
+ /** UI configuration */
2539
+ ui?: any
2540
+ }
2541
+
2542
+ /** List of certifications response */
2543
+ export interface CertificationListResponse {
2544
+ certifications: CertificationResponse[]
2545
+ }
2546
+
2547
+ /** Course response object */
2548
+ export interface CourseResponse {
2549
+ /**
2550
+ * User who created the course record
2551
+ * @example "admin@example.com"
2552
+ */
2553
+ createdBy?: string
2554
+ /**
2555
+ * Timestamp when the course was created
2556
+ * @example 1717000000000
2557
+ */
2558
+ createdOn: number
2559
+ /**
2560
+ * User who last updated the course record
2561
+ * @example "admin@example.com"
2562
+ */
2563
+ updatedBy?: string
2564
+ /**
2565
+ * Timestamp of last update
2566
+ * @example 1717000000000
2567
+ */
2568
+ updatedOn?: number
2569
+ /**
2570
+ * Unique identifier of the course
2571
+ * @example "course123"
2572
+ */
2573
+ id: string
2574
+ /**
2575
+ * Certification ID this course belongs to
2576
+ * @example "cert789"
2577
+ */
2578
+ certificationID: string
2579
+ /**
2580
+ * Tenant ID
2581
+ * @example "tenant456"
2582
+ */
2583
+ tenantID?: string
2584
+ /**
2585
+ * Customer ID
2586
+ * @example "customer123"
2587
+ */
2588
+ customerID?: string
2589
+ /**
2590
+ * Product ID
2591
+ * @example "prod123"
2592
+ */
2593
+ productID?: string
2594
+ /**
2595
+ * Cool down period in days (can be array or single number)
2596
+ * @example 30
2597
+ */
2598
+ coolDownPeriod?: number[] | number
2599
+ /** Cool down policy configuration */
2600
+ coolDownPolicy?: any
2601
+ /**
2602
+ * Materials product ID
2603
+ * @example "mat123"
2604
+ */
2605
+ materialsProductID?: string
2606
+ /**
2607
+ * Maximum retry attempts
2608
+ * @example 3
2609
+ */
2610
+ maxRetry?: number
2611
+ /**
2612
+ * Array of requirement IDs
2613
+ * @example ["req1","req2"]
2614
+ */
2615
+ requirementsIDs?: string[]
2616
+ /**
2617
+ * Whether required on renewal
2618
+ * @example false
2619
+ */
2620
+ requiredOnRenew?: boolean
2621
+ /**
2622
+ * Validity period in days
2623
+ * @example 365
2624
+ */
2625
+ validityPeriod?: number
2626
+ /**
2627
+ * Validity period in months
2628
+ * @example 12
2629
+ */
2630
+ validityPeriodInMonths?: number
2631
+ /**
2632
+ * Validity period in years
2633
+ * @example 1
2634
+ */
2635
+ validityPeriodInYears?: number
2636
+ /** Array of webhook URLs */
2637
+ webhooks?: string[]
2638
+ /**
2639
+ * Whether retake is allowed
2640
+ * @example true
2641
+ */
2642
+ isRetakeAllowed?: boolean
2643
+ /**
2644
+ * Whether student uploads are allowed
2645
+ * @example false
2646
+ */
2647
+ allowStudentUploads?: boolean
2648
+ /**
2649
+ * Allow if any requirement is met
2650
+ * @example false
2651
+ */
2652
+ allowIfAnyRequirementMet?: boolean
2653
+ /** Array of course fail webhook URLs */
2654
+ courseFailWebhooks?: string[]
2655
+ /**
2656
+ * Whether to lock after failure
2657
+ * @example false
2658
+ */
2659
+ lockAfterFailure?: boolean
2660
+ /**
2661
+ * Agreement ID
2662
+ * @example "agr123"
2663
+ */
2664
+ agreementID?: string
2665
+ /**
2666
+ * Whether course is mandatory
2667
+ * @example false
2668
+ */
2669
+ isMandatory?: boolean
2670
+ /**
2671
+ * Points awarded for course
2672
+ * @example 0
2673
+ */
2674
+ points?: number
2675
+ /** Array of course books */
2676
+ courseBooks?: {
2677
+ /**
2678
+ * File ID
2679
+ * @example "file123"
2680
+ */
2681
+ fileID: string
2682
+ /**
2683
+ * File name
2684
+ * @example "course-book.pdf"
2685
+ */
2686
+ fileName: string
2687
+ /**
2688
+ * Whether to attach to email
2689
+ * @example true
2690
+ */
2691
+ attachToEmail?: boolean
2692
+ }[]
2693
+ /**
2694
+ * Course certificate type
2695
+ * @example "digital"
2696
+ */
2697
+ courseCertificateType?: string
2698
+ /**
2699
+ * Course certificate template
2700
+ * @example "template1"
2701
+ */
2702
+ courseCertificateTemplate?: string
2703
+ /**
2704
+ * Course certificate number mask format
2705
+ * @example "CERT-####"
2706
+ */
2707
+ courseCertNumberMaskFormat?: string
2708
+ /**
2709
+ * Course certificate number mode
2710
+ * @example "sequential"
2711
+ */
2712
+ courseCertNumberMode?: string
2713
+ /**
2714
+ * Initial course certificate number
2715
+ * @example "1000"
2716
+ */
2717
+ courseCertNumberInitialNumber?: string
2718
+ /**
2719
+ * Whether to reuse certificate number
2720
+ * @example false
2721
+ */
2722
+ reuseCertNumber?: boolean
2723
+ /**
2724
+ * Warning for due payment remaining days
2725
+ * @example 7
2726
+ */
2727
+ warningDuePaymentRemainingDays?: number
2728
+ /** Warning remaining days configuration */
2729
+ warningRemainingDays?: {
2730
+ /**
2731
+ * Email template ID
2732
+ * @example "warning-template"
2733
+ */
2734
+ template: string
2735
+ /**
2736
+ * Period in days
2737
+ * @example 15
2738
+ */
2739
+ period: number
2740
+ }[]
2741
+ /** Online warning remaining days configuration */
2742
+ onlineWarningRemainingDays?: {
2743
+ /**
2744
+ * Email template ID
2745
+ * @example "online-warning-template"
2746
+ */
2747
+ template: string
2748
+ /**
2749
+ * Period in days
2750
+ * @example 10
2751
+ */
2752
+ period: number
2753
+ }[]
2754
+ /**
2755
+ * Email complement text
2756
+ * @example "Additional information"
2757
+ */
2758
+ emailComplement?: string
2759
+ /** Email templates configuration */
2760
+ emailTemplates?: {
2761
+ /**
2762
+ * Course passed email template
2763
+ * @example "passed-template"
2764
+ */
2765
+ coursePassed?: string | null
2766
+ /**
2767
+ * Course failed email template
2768
+ * @example "failed-template"
2769
+ */
2770
+ courseFailed?: string | null
2771
+ }
2772
+ /**
2773
+ * Display name
2774
+ * @example "Safety Training Course"
2775
+ */
2776
+ displayName?: string
2777
+ /**
2778
+ * Card description
2779
+ * @example "Basic safety training"
2780
+ */
2781
+ cardDescription?: string
2782
+ /**
2783
+ * Course description
2784
+ * @example "Comprehensive safety training course"
2785
+ */
2786
+ description?: string
2787
+ /**
2788
+ * UI terminology
2789
+ * @example "Course"
2790
+ */
2791
+ uiTerm?: string
2792
+ /**
2793
+ * UI logo URL
2794
+ * @example "https://example.com/logo.png"
2795
+ */
2796
+ uiLogo?: string
2797
+ /**
2798
+ * Calendar color
2799
+ * @example "#FF5733"
2800
+ */
2801
+ calendarColor?: string
2802
+ /**
2803
+ * Whether to show collapsed
2804
+ * @example false
2805
+ */
2806
+ showCollapsed?: boolean
2807
+ /**
2808
+ * Pass UI term
2809
+ * @example "Passed"
2810
+ */
2811
+ passUiTerm?: string
2812
+ /**
2813
+ * Fail UI term
2814
+ * @example "Failed"
2815
+ */
2816
+ failUiTerm?: string
2817
+ /**
2818
+ * Course type
2819
+ * @example "COURSE"
2820
+ */
2821
+ courseType?: string
2822
+ /**
2823
+ * Prevent launch if completed
2824
+ * @example false
2825
+ */
2826
+ preventLaunchIfCompleted?: boolean
2827
+ }
2828
+
2829
+ /** Course request body for create/update operations */
2830
+ export interface CourseRequestBody {
2831
+ /**
2832
+ * Unique identifier of the course
2833
+ * @example "course123"
2834
+ */
2835
+ id: string
2836
+ /**
2837
+ * Certification ID this course belongs to
2838
+ * @example "cert789"
2839
+ */
2840
+ certificationID: string
2841
+ /**
2842
+ * Tenant ID
2843
+ * @example "tenant456"
2844
+ */
2845
+ tenantID?: string
2846
+ /**
2847
+ * Customer ID
2848
+ * @example "customer123"
2849
+ */
2850
+ customerID?: string
2851
+ /**
2852
+ * Product ID
2853
+ * @example "prod123"
2854
+ */
2855
+ productID?: string
2856
+ /**
2857
+ * Cool down period in days (can be array or single number)
2858
+ * @example 30
2859
+ */
2860
+ coolDownPeriod?: number[] | number
2861
+ /** Cool down policy configuration */
2862
+ coolDownPolicy?: any
2863
+ /**
2864
+ * Materials product ID
2865
+ * @example "mat123"
2866
+ */
2867
+ materialsProductID?: string
2868
+ /**
2869
+ * Maximum retry attempts
2870
+ * @example 3
2871
+ */
2872
+ maxRetry?: number
2873
+ /**
2874
+ * Array of requirement IDs
2875
+ * @example ["req1","req2"]
2876
+ */
2877
+ requirementsIDs?: string[]
2878
+ /**
2879
+ * Whether required on renewal
2880
+ * @example false
2881
+ */
2882
+ requiredOnRenew?: boolean
2883
+ /**
2884
+ * Validity period in days
2885
+ * @example 365
2886
+ */
2887
+ validityPeriod?: number
2888
+ /**
2889
+ * Validity period in months
2890
+ * @example 12
2891
+ */
2892
+ validityPeriodInMonths?: number
2893
+ /**
2894
+ * Validity period in years
2895
+ * @example 1
2896
+ */
2897
+ validityPeriodInYears?: number
2898
+ /** Array of webhook URLs */
2899
+ webhooks?: string[]
2900
+ /**
2901
+ * Whether retake is allowed
2902
+ * @example true
2903
+ */
2904
+ isRetakeAllowed?: boolean
2905
+ /**
2906
+ * Whether student uploads are allowed
2907
+ * @example false
2908
+ */
2909
+ allowStudentUploads?: boolean
2910
+ /**
2911
+ * Allow if any requirement is met
2912
+ * @example false
2913
+ */
2914
+ allowIfAnyRequirementMet?: boolean
2915
+ /** Array of course fail webhook URLs */
2916
+ courseFailWebhooks?: string[]
2917
+ /**
2918
+ * Whether to lock after failure
2919
+ * @example false
2920
+ */
2921
+ lockAfterFailure?: boolean
2922
+ /**
2923
+ * Agreement ID
2924
+ * @example "agr123"
2925
+ */
2926
+ agreementID?: string
2927
+ /**
2928
+ * Whether course is mandatory
2929
+ * @example false
2930
+ */
2931
+ isMandatory?: boolean
2932
+ /**
2933
+ * Points awarded for course
2934
+ * @example 0
2935
+ */
2936
+ points?: number
2937
+ /** Array of course books */
2938
+ courseBooks?: {
2939
+ /**
2940
+ * File ID
2941
+ * @example "file123"
2942
+ */
2943
+ fileID: string
2944
+ /**
2945
+ * File name
2946
+ * @example "course-book.pdf"
2947
+ */
2948
+ fileName: string
2949
+ /**
2950
+ * Whether to attach to email
2951
+ * @example true
2952
+ */
2953
+ attachToEmail?: boolean
2954
+ }[]
2955
+ /**
2956
+ * Course certificate type
2957
+ * @example "digital"
2958
+ */
2959
+ courseCertificateType?: string
2960
+ /**
2961
+ * Course certificate template
2962
+ * @example "template1"
2963
+ */
2964
+ courseCertificateTemplate?: string
2965
+ /**
2966
+ * Course certificate number mask format
2967
+ * @example "CERT-####"
2968
+ */
2969
+ courseCertNumberMaskFormat?: string
2970
+ /**
2971
+ * Course certificate number mode
2972
+ * @example "sequential"
2973
+ */
2974
+ courseCertNumberMode?: string
2975
+ /**
2976
+ * Initial course certificate number
2977
+ * @example "1000"
2978
+ */
2979
+ courseCertNumberInitialNumber?: string
2980
+ /**
2981
+ * Whether to reuse certificate number
2982
+ * @example false
2983
+ */
2984
+ reuseCertNumber?: boolean
2985
+ /**
2986
+ * Warning for due payment remaining days
2987
+ * @example 7
2988
+ */
2989
+ warningDuePaymentRemainingDays?: number
2990
+ /** Warning remaining days configuration */
2991
+ warningRemainingDays?: {
2992
+ /**
2993
+ * Email template ID
2994
+ * @example "warning-template"
2995
+ */
2996
+ template: string
2997
+ /**
2998
+ * Period in days
2999
+ * @example 15
3000
+ */
3001
+ period: number
3002
+ }[]
3003
+ /** Online warning remaining days configuration */
3004
+ onlineWarningRemainingDays?: {
3005
+ /**
3006
+ * Email template ID
3007
+ * @example "online-warning-template"
3008
+ */
3009
+ template: string
3010
+ /**
3011
+ * Period in days
3012
+ * @example 10
3013
+ */
3014
+ period: number
3015
+ }[]
3016
+ /**
3017
+ * Email complement text
3018
+ * @example "Additional information"
3019
+ */
3020
+ emailComplement?: string
3021
+ /** Email templates configuration */
3022
+ emailTemplates?: {
3023
+ /**
3024
+ * Course passed email template
3025
+ * @example "passed-template"
3026
+ */
3027
+ coursePassed?: string | null
3028
+ /**
3029
+ * Course failed email template
3030
+ * @example "failed-template"
3031
+ */
3032
+ courseFailed?: string | null
3033
+ }
3034
+ /**
3035
+ * Display name
3036
+ * @example "Safety Training Course"
3037
+ */
3038
+ displayName?: string
3039
+ /**
3040
+ * Card description
3041
+ * @example "Basic safety training"
3042
+ */
3043
+ cardDescription?: string
3044
+ /**
3045
+ * Course description
3046
+ * @example "Comprehensive safety training course"
3047
+ */
3048
+ description?: string
3049
+ /**
3050
+ * UI terminology
3051
+ * @example "Course"
3052
+ */
3053
+ uiTerm?: string
3054
+ /**
3055
+ * UI logo URL
3056
+ * @example "https://example.com/logo.png"
3057
+ */
3058
+ uiLogo?: string
3059
+ /**
3060
+ * Calendar color
3061
+ * @example "#FF5733"
3062
+ */
3063
+ calendarColor?: string
3064
+ /**
3065
+ * Whether to show collapsed
3066
+ * @example false
3067
+ */
3068
+ showCollapsed?: boolean
3069
+ /**
3070
+ * Pass UI term
3071
+ * @example "Passed"
3072
+ */
3073
+ passUiTerm?: string
3074
+ /**
3075
+ * Fail UI term
3076
+ * @example "Failed"
3077
+ */
3078
+ failUiTerm?: string
3079
+ /**
3080
+ * Course type
3081
+ * @example "COURSE"
3082
+ */
3083
+ courseType?: string
3084
+ /**
3085
+ * Prevent launch if completed
3086
+ * @example false
3087
+ */
3088
+ preventLaunchIfCompleted?: boolean
3089
+ }
3090
+
3091
+ /** Request body for adding a coursebook */
3092
+ export interface AddCourseBookRequest {
3093
+ /**
3094
+ * Unique identifier of the file
3095
+ * @example "file456"
3096
+ */
3097
+ fileID: string
3098
+ /**
3099
+ * Name of the file
3100
+ * @example "coursebook.pdf"
3101
+ */
3102
+ fileName: string
3103
+ }
3104
+
3105
+ /** Course with updated courseBooks */
3106
+ export interface AddCourseBookResponse {
3107
+ courseBooks?: {
3108
+ fileID: string
3109
+ fileName: string
3110
+ }[]
3111
+ }
3112
+
3113
+ /** File sign response with signed URL */
3114
+ export interface FileSignResponse {
3115
+ /**
3116
+ * Signed URL for file operation
3117
+ * @example "https://s3.amazonaws.com/bucket/path?signature=..."
3118
+ */
3119
+ fileURL: string
3120
+ }
3121
+
3122
+ /** Course with updated courseBooks */
3123
+ export interface CourseBookResponse {
3124
+ courseBooks?: {
3125
+ fileID: string
3126
+ fileName: string
3127
+ }[]
3128
+ }
3129
+
3130
+ /** List of courses response */
3131
+ export interface CourseListResponse {
3132
+ courses: CourseResponse[]
3133
+ }
3134
+
3135
+ /** Cert equivalence response object */
3136
+ export interface CertEquivalenceResponse {
3137
+ /**
3138
+ * User who created the cert equivalence record
3139
+ * @example "admin@example.com"
3140
+ */
3141
+ createdBy?: string
3142
+ /**
3143
+ * Timestamp when the cert equivalence was created
3144
+ * @example 1717000000000
3145
+ */
3146
+ createdOn: number
3147
+ /**
3148
+ * User who last updated the cert equivalence record
3149
+ * @example "admin@example.com"
3150
+ */
3151
+ updatedBy?: string
3152
+ /**
3153
+ * Timestamp of last update
3154
+ * @example 1717000000000
3155
+ */
3156
+ updatedOn?: number
3157
+ /**
3158
+ * Unique identifier of the equivalence
3159
+ * @example "equiv123"
3160
+ */
3161
+ id: string
3162
+ /**
3163
+ * Certification ID this equivalence belongs to
3164
+ * @example "cert789"
3165
+ */
3166
+ certificationID: string
3167
+ /**
3168
+ * Tenant ID
3169
+ * @example "tenant456"
3170
+ */
3171
+ tenantID?: string
3172
+ /**
3173
+ * Type of the equivalence
3174
+ * @example "INITIAL"
3175
+ */
3176
+ type: string
3177
+ /**
3178
+ * Whether the equivalence is disabled
3179
+ * @example false
3180
+ */
3181
+ isDisabled?: boolean
3182
+ }
3183
+
3184
+ /** Cert equivalence request body for create/update operations */
3185
+ export interface CertEquivalenceRequestBody {
3186
+ /**
3187
+ * Unique identifier of the equivalence
3188
+ * @example "equiv123"
3189
+ */
3190
+ id: string
3191
+ /**
3192
+ * Certification ID this equivalence belongs to
3193
+ * @example "cert789"
3194
+ */
3195
+ certificationID: string
3196
+ /**
3197
+ * Tenant ID
3198
+ * @example "tenant456"
3199
+ */
3200
+ tenantID?: string
3201
+ /**
3202
+ * Type of the equivalence
3203
+ * @example "INITIAL"
3204
+ */
3205
+ type: string
3206
+ /**
3207
+ * Whether the equivalence is disabled
3208
+ * @example false
3209
+ */
3210
+ isDisabled?: boolean
3211
+ }
3212
+
3213
+ /** List of cert equivalences response */
3214
+ export interface CertEquivalenceListResponse {
3215
+ certEquivalences: CertEquivalenceResponse[]
3216
+ }
3217
+
3218
+ /** Cert requirement response object */
3219
+ export interface CertRequirementResponse {
3220
+ /**
3221
+ * User who created the cert requirement record
3222
+ * @example "admin@example.com"
3223
+ */
3224
+ createdBy?: string
3225
+ /**
3226
+ * Timestamp when the cert requirement was created
3227
+ * @example 1717000000000
3228
+ */
3229
+ createdOn: number
3230
+ /**
3231
+ * User who last updated the cert requirement record
3232
+ * @example "admin@example.com"
3233
+ */
3234
+ updatedBy?: string
3235
+ /**
3236
+ * Timestamp of last update
3237
+ * @example 1717000000000
3238
+ */
3239
+ updatedOn?: number
3240
+ /**
3241
+ * Unique identifier of the requirement
3242
+ * @example "req123"
3243
+ */
3244
+ id: string
3245
+ /**
3246
+ * Certification ID this requirement belongs to
3247
+ * @example "cert789"
3248
+ */
3249
+ certificationID: string
3250
+ /**
3251
+ * Tenant ID
3252
+ * @example "tenant456"
3253
+ */
3254
+ tenantID?: string
3255
+ /**
3256
+ * Section of the requirement
3257
+ * @example "Safety"
3258
+ */
3259
+ section?: string
3260
+ /**
3261
+ * Type of the requirement
3262
+ * @example "INITIAL"
3263
+ */
3264
+ type: string
3265
+ /**
3266
+ * Whether the requirement is disabled
3267
+ * @example false
3268
+ */
3269
+ isDisabled?: boolean
3270
+ }
3271
+
3272
+ /** Cert requirement request body for create/update operations */
3273
+ export interface CertRequirementRequestBody {
3274
+ /**
3275
+ * Unique identifier of the requirement
3276
+ * @example "req123"
3277
+ */
3278
+ id: string
3279
+ /**
3280
+ * Certification ID this requirement belongs to
3281
+ * @example "cert789"
3282
+ */
3283
+ certificationID: string
3284
+ /**
3285
+ * Tenant ID
3286
+ * @example "tenant456"
3287
+ */
3288
+ tenantID?: string
3289
+ /**
3290
+ * Section of the requirement
3291
+ * @example "Safety"
3292
+ */
3293
+ section?: string
3294
+ /**
3295
+ * Type of the requirement
3296
+ * @example "INITIAL"
3297
+ */
3298
+ type: string
3299
+ /**
3300
+ * Whether the requirement is disabled
3301
+ * @example false
3302
+ */
3303
+ isDisabled?: boolean
3304
+ }
3305
+
3306
+ /** List of cert requirements response */
3307
+ export interface CertRequirementListResponse {
3308
+ certRequirements: CertRequirementResponse[]
3309
+ }
3310
+
3311
+ export type GetCustomerData = CustomerResponse
3312
+
3313
+ export type GetCustomerError = ErrorResponse
3314
+
3315
+ export type CreateCustomerData = any
3316
+
3317
+ export type CreateCustomerError = ErrorResponse
3318
+
3319
+ export type UpdateCustomerData = any
3320
+
3321
+ export type UpdateCustomerError = ErrorResponse
3322
+
3323
+ export type DeleteCustomerData = any
3324
+
3325
+ export type DeleteCustomerError = ErrorResponse
3326
+
3327
+ export type GetTenantData = TenantResponse
3328
+
3329
+ export type GetTenantError = ErrorResponse
3330
+
3331
+ export type CreateTenantData = any
3332
+
3333
+ export type CreateTenantError = ErrorResponse
3334
+
3335
+ export type UpdateTenantData = any
3336
+
3337
+ export type UpdateTenantError = ErrorResponse
3338
+
3339
+ export type DeleteTenantData = any
3340
+
3341
+ export type DeleteTenantError = ErrorResponse
3342
+
3343
+ export type GetTenantsData = TenantListResponse
3344
+
3345
+ export type GetTenantsError = ErrorResponse
3346
+
3347
+ export type GetTrainingProviderData = TrainingProviderResponse
3348
+
3349
+ export type GetTrainingProviderError = ErrorResponse
3350
+
3351
+ export type CreateTrainingProviderData = any
3352
+
3353
+ export type CreateTrainingProviderError = ErrorResponse
3354
+
3355
+ export type UpdateTrainingProviderData = any
3356
+
3357
+ export type UpdateTrainingProviderError = ErrorResponse
3358
+
3359
+ export type DeleteTrainingProviderData = any
3360
+
3361
+ export type DeleteTrainingProviderError = ErrorResponse
3362
+
3363
+ export type GetTrainingProvidersData = TrainingProviderListResponse
3364
+
3365
+ export type GetTrainingProvidersError = ErrorResponse
3366
+
3367
+ export type GetTilePermissionsData = TilePermissionsResponse
3368
+
3369
+ export type GetTilePermissionsError = ErrorResponse
3370
+
3371
+ export type ListTilePermissionsData = any
3372
+
3373
+ export type ListTilePermissionsError = ErrorResponse
3374
+
3375
+ export type GetRequirementData = RequirementResponse
3376
+
3377
+ export type GetRequirementError = ErrorResponse
3378
+
3379
+ export type CreateRequirementData = any
3380
+
3381
+ export type CreateRequirementError = ErrorResponse
3382
+
3383
+ export type UpdateRequirementData = any
3384
+
3385
+ export type UpdateRequirementError = ErrorResponse
3386
+
3387
+ export type DeleteRequirementData = any
3388
+
3389
+ export type DeleteRequirementError = ErrorResponse
3390
+
3391
+ export type GetRequirementsData = RequirementListResponse
3392
+
3393
+ export type GetRequirementsError = ErrorResponse
3394
+
3395
+ export type GetEquivalenceData = EquivalenceResponse
3396
+
3397
+ export type GetEquivalenceError = ErrorResponse
3398
+
3399
+ export type CreateEquivalenceData = any
3400
+
3401
+ export type CreateEquivalenceError = ErrorResponse
3402
+
3403
+ export type UpdateEquivalenceData = any
3404
+
3405
+ export type UpdateEquivalenceError = ErrorResponse
3406
+
3407
+ export type DeleteEquivalenceData = any
3408
+
3409
+ export type DeleteEquivalenceError = ErrorResponse
3410
+
3411
+ export type GetEquivalencesData = EquivalenceListResponse
3412
+
3413
+ export type GetEquivalencesError = ErrorResponse
3414
+
3415
+ export type ListCustomersData = any
3416
+
3417
+ export type ListCustomersError = ErrorResponse
3418
+
3419
+ export type GetHealthCheckData = any
3420
+
3421
+ export type GetHealthCheckError = ErrorResponse
3422
+
3423
+ export type GetCourseProviderData = CourseProviderResponse
3424
+
3425
+ export type GetCourseProviderError = ErrorResponse
3426
+
3427
+ export type CreateCourseProviderData = any
3428
+
3429
+ export type CreateCourseProviderError = ErrorResponse
3430
+
3431
+ export type UpdateCourseProviderData = any
3432
+
3433
+ export type UpdateCourseProviderError = ErrorResponse
3434
+
3435
+ export type DeleteCourseProviderData = any
3436
+
3437
+ export type DeleteCourseProviderError = ErrorResponse
3438
+
3439
+ export type ListCourseProvidersData = CourseProviderListResponse
3440
+
3441
+ export type ListCourseProvidersError = ErrorResponse
3442
+
3443
+ export type GetFaqData = FaqResponse
3444
+
3445
+ export type GetFaqError = ErrorResponse
3446
+
3447
+ export type CreateFaqData = any
3448
+
3449
+ export type CreateFaqError = ErrorResponse
3450
+
3451
+ export type UpdateFaqData = any
3452
+
3453
+ export type UpdateFaqError = ErrorResponse
3454
+
3455
+ export type DeleteFaqData = any
3456
+
3457
+ export type DeleteFaqError = ErrorResponse
3458
+
3459
+ export type GetFaqsData = FaqListResponse
3460
+
3461
+ export type GetFaqsError = ErrorResponse
3462
+
3463
+ export type GetCertificationData = CertificationResponse
3464
+
3465
+ export type GetCertificationError = ErrorResponse
3466
+
3467
+ export type CreateCertificationData = any
3468
+
3469
+ export type CreateCertificationError = ErrorResponse
3470
+
3471
+ export type UpdateCertificationData = any
3472
+
3473
+ export type UpdateCertificationError = ErrorResponse
3474
+
3475
+ export type DeleteCertificationData = any
3476
+
3477
+ export type DeleteCertificationError = ErrorResponse
3478
+
3479
+ export type GetCertificationsData = CertificationListResponse
3480
+
3481
+ export type GetCertificationsError = ErrorResponse
3482
+
3483
+ export type GetCourseData = CourseResponse
3484
+
3485
+ export type GetCourseError = ErrorResponse
3486
+
3487
+ export type CreateCourseData = any
3488
+
3489
+ export type CreateCourseError = ErrorResponse
3490
+
3491
+ export type UpdateCourseData = any
3492
+
3493
+ export type UpdateCourseError = ErrorResponse
3494
+
3495
+ export type DeleteCourseData = any
3496
+
3497
+ export type DeleteCourseError = ErrorResponse
3498
+
3499
+ export type CreateCourseCourseBookData = AddCourseBookResponse
3500
+
3501
+ export type CreateCourseCourseBookError = ErrorResponse
3502
+
3503
+ export type GetCourseCourseBookFileSignData = FileSignResponse
3504
+
3505
+ export type GetCourseCourseBookFileSignError = ErrorResponse
3506
+
3507
+ export interface CreateCourseCourseBookFileSignParams {
3508
+ /**
3509
+ * MIME type of the file
3510
+ * @example "application/pdf"
3511
+ */
3512
+ fileType: string
3513
+ /**
3514
+ * Unique identifier of the certification
3515
+ * @example "cert789"
3516
+ */
3517
+ certificationId: string
3518
+ /**
3519
+ * Unique identifier of the course
3520
+ * @example "course123"
3521
+ */
3522
+ courseId: string
3523
+ /**
3524
+ * Unique identifier of the file
3525
+ * @example "file456"
3526
+ */
3527
+ fileId: string
3528
+ }
3529
+
3530
+ export type CreateCourseCourseBookFileSignData = FileSignResponse
3531
+
3532
+ export type CreateCourseCourseBookFileSignError = ErrorResponse
3533
+
3534
+ export type DeleteCourseCourseBookFileSignData = FileSignResponse
3535
+
3536
+ export type DeleteCourseCourseBookFileSignError = ErrorResponse
3537
+
3538
+ export type DeleteCourseCourseBookData = CourseBookResponse
3539
+
3540
+ export type DeleteCourseCourseBookError = ErrorResponse
3541
+
3542
+ export type GetCoursesData = CourseListResponse
3543
+
3544
+ export type GetCoursesError = ErrorResponse
3545
+
3546
+ export type GetEquivalenceTypeData = CertEquivalenceResponse
3547
+
3548
+ export type GetEquivalenceTypeError = ErrorResponse
3549
+
3550
+ export type CreateEquivalenceTypeData = any
3551
+
3552
+ export type CreateEquivalenceTypeError = ErrorResponse
3553
+
3554
+ export type UpdateEquivalenceTypeData = any
3555
+
3556
+ export type UpdateEquivalenceTypeError = ErrorResponse
3557
+
3558
+ export type DeleteEquivalenceTypeData = any
3559
+
3560
+ export type DeleteEquivalenceTypeError = ErrorResponse
3561
+
3562
+ export type GetEquivalencesResult = CertEquivalenceListResponse
3563
+
3564
+ export type GetEquivalencesFail = ErrorResponse
3565
+
3566
+ export type GetRequirementTypeData = CertRequirementResponse
3567
+
3568
+ export type GetRequirementTypeError = ErrorResponse
3569
+
3570
+ export type CreateRequirementTypeData = any
3571
+
3572
+ export type CreateRequirementTypeError = ErrorResponse
3573
+
3574
+ export type UpdateRequirementTypeData = any
3575
+
3576
+ export type UpdateRequirementTypeError = ErrorResponse
3577
+
3578
+ export type DeleteRequirementTypeData = any
3579
+
3580
+ export type DeleteRequirementTypeError = ErrorResponse
3581
+
3582
+ export type GetRequirementsResult = CertRequirementListResponse
3583
+
3584
+ export type GetRequirementsFail = ErrorResponse
3585
+
3586
+ import type { AxiosInstance, AxiosRequestConfig, HeadersDefaults, ResponseType } from 'axios'
3587
+ import axios from 'axios'
3588
+
3589
+ export type QueryParamsType = Record<string | number, any>
3590
+
3591
+ export interface FullRequestParams extends Omit<AxiosRequestConfig, 'data' | 'params' | 'url' | 'responseType'> {
3592
+ /** set parameter to `true` for call `securityWorker` for this request */
3593
+ secure?: boolean
3594
+ /** request path */
3595
+ path: string
3596
+ /** content type of request body */
3597
+ type?: ContentType
3598
+ /** query params */
3599
+ query?: QueryParamsType
3600
+ /** format of response (i.e. response.json() -> format: "json") */
3601
+ format?: ResponseType
3602
+ /** request body */
3603
+ body?: unknown
3604
+ }
3605
+
3606
+ export type RequestParams = Omit<FullRequestParams, 'body' | 'method' | 'query' | 'path'>
3607
+
3608
+ export interface ApiConfig<SecurityDataType = unknown> extends Omit<AxiosRequestConfig, 'data' | 'cancelToken'> {
3609
+ securityWorker?: (
3610
+ securityData: SecurityDataType | null
3611
+ ) => Promise<AxiosRequestConfig | void> | AxiosRequestConfig | void
3612
+ secure?: boolean
3613
+ format?: ResponseType
3614
+ }
3615
+
3616
+ export enum ContentType {
3617
+ Json = 'application/json',
3618
+ FormData = 'multipart/form-data',
3619
+ UrlEncoded = 'application/x-www-form-urlencoded',
3620
+ Text = 'text/plain',
3621
+ }
3622
+
3623
+ export class HttpClient<SecurityDataType = unknown> {
3624
+ public instance: AxiosInstance
3625
+ private securityData: SecurityDataType | null = null
3626
+ private securityWorker?: ApiConfig<SecurityDataType>['securityWorker']
3627
+ private secure?: boolean
3628
+ private format?: ResponseType
3629
+
3630
+ constructor({ securityWorker, secure, format, ...axiosConfig }: ApiConfig<SecurityDataType> = {}) {
3631
+ this.instance = axios.create({ ...axiosConfig, baseURL: axiosConfig.baseURL || 'http://localhost:8080' })
3632
+ this.secure = secure
3633
+ this.format = format
3634
+ this.securityWorker = securityWorker
3635
+ }
3636
+
3637
+ public setSecurityData = (data: SecurityDataType | null) => {
3638
+ this.securityData = data
3639
+ }
3640
+
3641
+ protected mergeRequestParams(params1: AxiosRequestConfig, params2?: AxiosRequestConfig): AxiosRequestConfig {
3642
+ const method = params1.method || (params2 && params2.method)
3643
+
3644
+ return {
3645
+ ...this.instance.defaults,
3646
+ ...params1,
3647
+ ...(params2 || {}),
3648
+ headers: {
3649
+ ...((method && this.instance.defaults.headers[method.toLowerCase() as keyof HeadersDefaults]) || {}),
3650
+ ...(params1.headers || {}),
3651
+ ...((params2 && params2.headers) || {}),
3652
+ },
3653
+ }
3654
+ }
3655
+
3656
+ protected stringifyFormItem(formItem: unknown) {
3657
+ if (typeof formItem === 'object' && formItem !== null) {
3658
+ return JSON.stringify(formItem)
3659
+ } else {
3660
+ return `${formItem}`
3661
+ }
3662
+ }
3663
+
3664
+ protected createFormData(input: Record<string, unknown>): FormData {
3665
+ if (input instanceof FormData) {
3666
+ return input
3667
+ }
3668
+ return Object.keys(input || {}).reduce((formData, key) => {
3669
+ const property = input[key]
3670
+ const propertyContent: any[] = property instanceof Array ? property : [property]
3671
+
3672
+ for (const formItem of propertyContent) {
3673
+ const isFileType = formItem instanceof Blob || formItem instanceof File
3674
+ formData.append(key, isFileType ? formItem : this.stringifyFormItem(formItem))
3675
+ }
3676
+
3677
+ return formData
3678
+ }, new FormData())
3679
+ }
3680
+
3681
+ public request = async <T = any, _E = any>({
3682
+ secure,
3683
+ path,
3684
+ type,
3685
+ query,
3686
+ format,
3687
+ body,
3688
+ ...params
3689
+ }: FullRequestParams): Promise<T> => {
3690
+ const secureParams =
3691
+ ((typeof secure === 'boolean' ? secure : this.secure) &&
3692
+ this.securityWorker &&
3693
+ (await this.securityWorker(this.securityData))) ||
3694
+ {}
3695
+ const requestParams = this.mergeRequestParams(params, secureParams)
3696
+ const responseFormat = format || this.format || undefined
3697
+
3698
+ if (type === ContentType.FormData && body && body !== null && typeof body === 'object') {
3699
+ body = this.createFormData(body as Record<string, unknown>)
3700
+ }
3701
+
3702
+ if (type === ContentType.Text && body && body !== null && typeof body !== 'string') {
3703
+ body = JSON.stringify(body)
3704
+ }
3705
+
3706
+ return this.instance
3707
+ .request({
3708
+ ...requestParams,
3709
+ headers: {
3710
+ ...(requestParams.headers || {}),
3711
+ ...(type ? { 'Content-Type': type } : {}),
3712
+ },
3713
+ params: query,
3714
+ responseType: responseFormat,
3715
+ data: body,
3716
+ url: path,
3717
+ })
3718
+ .then(response => response.data)
3719
+ }
3720
+ }
3721
+
3722
+ /**
3723
+ * @title No title
3724
+ * @version 2.0.5
3725
+ * @baseUrl http://localhost:8080
3726
+ * @contact Ikon Integration <ikon@ikonintegration.com> (http://example.com)
3727
+ */
3728
+ export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> {
3729
+ customer = {
3730
+ /**
3731
+ * @description Retrieve customer configuration by ID.
3732
+ *
3733
+ * @tags Customer
3734
+ * @name GetCustomer
3735
+ * @summary Get Customer
3736
+ * @request GET:/customer/{customerID}
3737
+ * @secure
3738
+ */
3739
+ getCustomer: (customerId: string, params: RequestParams = {}) =>
3740
+ this.request<GetCustomerData, GetCustomerError>({
3741
+ path: `/customer/${customerId}`,
3742
+ method: 'GET',
3743
+ secure: true,
3744
+ format: 'json',
3745
+ ...params,
3746
+ }),
3747
+
3748
+ /**
3749
+ * @description Create a new customer configuration.
3750
+ *
3751
+ * @tags Customer
3752
+ * @name CreateCustomer
3753
+ * @summary Create Customer
3754
+ * @request POST:/customer/{customerID}
3755
+ * @secure
3756
+ */
3757
+ createCustomer: (customerId: string, data: CustomerRequestBody, params: RequestParams = {}) =>
3758
+ this.request<CreateCustomerData, CreateCustomerError>({
3759
+ path: `/customer/${customerId}`,
3760
+ method: 'POST',
3761
+ body: data,
3762
+ secure: true,
3763
+ type: ContentType.Json,
3764
+ ...params,
3765
+ }),
3766
+
3767
+ /**
3768
+ * @description Update an existing customer configuration.
3769
+ *
3770
+ * @tags Customer
3771
+ * @name UpdateCustomer
3772
+ * @summary Update Customer
3773
+ * @request PUT:/customer/{customerID}
3774
+ * @secure
3775
+ */
3776
+ updateCustomer: (customerId: string, data: CustomerRequestBody, params: RequestParams = {}) =>
3777
+ this.request<UpdateCustomerData, UpdateCustomerError>({
3778
+ path: `/customer/${customerId}`,
3779
+ method: 'PUT',
3780
+ body: data,
3781
+ secure: true,
3782
+ type: ContentType.Json,
3783
+ ...params,
3784
+ }),
3785
+
3786
+ /**
3787
+ * @description Delete a customer configuration.
3788
+ *
3789
+ * @tags Customer
3790
+ * @name DeleteCustomer
3791
+ * @summary Delete Customer
3792
+ * @request DELETE:/customer/{customerID}
3793
+ * @secure
3794
+ */
3795
+ deleteCustomer: (customerId: string, params: RequestParams = {}) =>
3796
+ this.request<DeleteCustomerData, DeleteCustomerError>({
3797
+ path: `/customer/${customerId}`,
3798
+ method: 'DELETE',
3799
+ secure: true,
3800
+ ...params,
3801
+ }),
3802
+
3803
+ /**
3804
+ * @description Retrieve tenant configuration by ID.
3805
+ *
3806
+ * @tags Tenant
3807
+ * @name GetTenant
3808
+ * @summary Get Tenant
3809
+ * @request GET:/customer/{customerID}/tenant/{tenantID}
3810
+ * @secure
3811
+ */
3812
+ getTenant: (customerId: string, tenantId: string, params: RequestParams = {}) =>
3813
+ this.request<GetTenantData, GetTenantError>({
3814
+ path: `/customer/${customerId}/tenant/${tenantId}`,
3815
+ method: 'GET',
3816
+ secure: true,
3817
+ format: 'json',
3818
+ ...params,
3819
+ }),
3820
+
3821
+ /**
3822
+ * @description Create a new tenant configuration.
3823
+ *
3824
+ * @tags Tenant
3825
+ * @name CreateTenant
3826
+ * @summary Create Tenant
3827
+ * @request POST:/customer/{customerID}/tenant/{tenantID}
3828
+ * @secure
3829
+ */
3830
+ createTenant: (customerId: string, tenantId: string, data: TenantRequestBody, params: RequestParams = {}) =>
3831
+ this.request<CreateTenantData, CreateTenantError>({
3832
+ path: `/customer/${customerId}/tenant/${tenantId}`,
3833
+ method: 'POST',
3834
+ body: data,
3835
+ secure: true,
3836
+ type: ContentType.Json,
3837
+ ...params,
3838
+ }),
3839
+
3840
+ /**
3841
+ * @description Update an existing tenant configuration.
3842
+ *
3843
+ * @tags Tenant
3844
+ * @name UpdateTenant
3845
+ * @summary Update Tenant
3846
+ * @request PUT:/customer/{customerID}/tenant/{tenantID}
3847
+ * @secure
3848
+ */
3849
+ updateTenant: (customerId: string, tenantId: string, data: TenantRequestBody, params: RequestParams = {}) =>
3850
+ this.request<UpdateTenantData, UpdateTenantError>({
3851
+ path: `/customer/${customerId}/tenant/${tenantId}`,
3852
+ method: 'PUT',
3853
+ body: data,
3854
+ secure: true,
3855
+ type: ContentType.Json,
3856
+ ...params,
3857
+ }),
3858
+
3859
+ /**
3860
+ * @description Delete a tenant configuration.
3861
+ *
3862
+ * @tags Tenant
3863
+ * @name DeleteTenant
3864
+ * @summary Delete Tenant
3865
+ * @request DELETE:/customer/{customerID}/tenant/{tenantID}
3866
+ * @secure
3867
+ */
3868
+ deleteTenant: (customerId: string, tenantId: string, params: RequestParams = {}) =>
3869
+ this.request<DeleteTenantData, DeleteTenantError>({
3870
+ path: `/customer/${customerId}/tenant/${tenantId}`,
3871
+ method: 'DELETE',
3872
+ secure: true,
3873
+ ...params,
3874
+ }),
3875
+
3876
+ /**
3877
+ * @description Retrieve all tenant configurations for a customer.
3878
+ *
3879
+ * @tags Tenant
3880
+ * @name GetTenants
3881
+ * @summary Get All Tenants
3882
+ * @request GET:/customer/{customerID}/tenants
3883
+ * @secure
3884
+ */
3885
+ getTenants: (customerId: string, params: RequestParams = {}) =>
3886
+ this.request<GetTenantsData, GetTenantsError>({
3887
+ path: `/customer/${customerId}/tenants`,
3888
+ method: 'GET',
3889
+ secure: true,
3890
+ format: 'json',
3891
+ ...params,
3892
+ }),
3893
+
3894
+ /**
3895
+ * @description Retrieve training provider configuration by ID.
3896
+ *
3897
+ * @tags Training Provider
3898
+ * @name GetTrainingProvider
3899
+ * @summary Get Training Provider
3900
+ * @request GET:/customer/{customerID}/trainingProvider/{trainingProviderID}
3901
+ * @secure
3902
+ */
3903
+ getTrainingProvider: (customerId: string, trainingProviderId: string, params: RequestParams = {}) =>
3904
+ this.request<GetTrainingProviderData, GetTrainingProviderError>({
3905
+ path: `/customer/${customerId}/trainingProvider/${trainingProviderId}`,
3906
+ method: 'GET',
3907
+ secure: true,
3908
+ format: 'json',
3909
+ ...params,
3910
+ }),
3911
+
3912
+ /**
3913
+ * @description Create a new training provider configuration.
3914
+ *
3915
+ * @tags Training Provider
3916
+ * @name CreateTrainingProvider
3917
+ * @summary Create Training Provider
3918
+ * @request POST:/customer/{customerID}/trainingProvider/{trainingProviderID}
3919
+ * @secure
3920
+ */
3921
+ createTrainingProvider: (
3922
+ customerId: string,
3923
+ trainingProviderId: string,
3924
+ data: TrainingProviderRequestBody,
3925
+ params: RequestParams = {}
3926
+ ) =>
3927
+ this.request<CreateTrainingProviderData, CreateTrainingProviderError>({
3928
+ path: `/customer/${customerId}/trainingProvider/${trainingProviderId}`,
3929
+ method: 'POST',
3930
+ body: data,
3931
+ secure: true,
3932
+ type: ContentType.Json,
3933
+ ...params,
3934
+ }),
3935
+
3936
+ /**
3937
+ * @description Update an existing training provider configuration.
3938
+ *
3939
+ * @tags Training Provider
3940
+ * @name UpdateTrainingProvider
3941
+ * @summary Update Training Provider
3942
+ * @request PUT:/customer/{customerID}/trainingProvider/{trainingProviderID}
3943
+ * @secure
3944
+ */
3945
+ updateTrainingProvider: (
3946
+ customerId: string,
3947
+ trainingProviderId: string,
3948
+ data: TrainingProviderRequestBody,
3949
+ params: RequestParams = {}
3950
+ ) =>
3951
+ this.request<UpdateTrainingProviderData, UpdateTrainingProviderError>({
3952
+ path: `/customer/${customerId}/trainingProvider/${trainingProviderId}`,
3953
+ method: 'PUT',
3954
+ body: data,
3955
+ secure: true,
3956
+ type: ContentType.Json,
3957
+ ...params,
3958
+ }),
3959
+
3960
+ /**
3961
+ * @description Delete a training provider configuration.
3962
+ *
3963
+ * @tags Training Provider
3964
+ * @name DeleteTrainingProvider
3965
+ * @summary Delete Training Provider
3966
+ * @request DELETE:/customer/{customerID}/trainingProvider/{trainingProviderID}
3967
+ * @secure
3968
+ */
3969
+ deleteTrainingProvider: (customerId: string, trainingProviderId: string, params: RequestParams = {}) =>
3970
+ this.request<DeleteTrainingProviderData, DeleteTrainingProviderError>({
3971
+ path: `/customer/${customerId}/trainingProvider/${trainingProviderId}`,
3972
+ method: 'DELETE',
3973
+ secure: true,
3974
+ ...params,
3975
+ }),
3976
+
3977
+ /**
3978
+ * @description Retrieve all training provider configurations for a customer.
3979
+ *
3980
+ * @tags Training Provider
3981
+ * @name GetTrainingProviders
3982
+ * @summary Get All Training Providers
3983
+ * @request GET:/customer/{customerID}/trainingProviders
3984
+ * @secure
3985
+ */
3986
+ getTrainingProviders: (customerId: string, params: RequestParams = {}) =>
3987
+ this.request<GetTrainingProvidersData, GetTrainingProvidersError>({
3988
+ path: `/customer/${customerId}/trainingProviders`,
3989
+ method: 'GET',
3990
+ secure: true,
3991
+ format: 'json',
3992
+ ...params,
3993
+ }),
3994
+
3995
+ /**
3996
+ * @description Retrieve portal tile permissions configuration for a customer.
3997
+ *
3998
+ * @tags Tile Permissions
3999
+ * @name GetTilePermissions
4000
+ * @summary Get Tile Permissions
4001
+ * @request GET:/customer/{customerID}/tilePermissions
4002
+ * @secure
4003
+ */
4004
+ getTilePermissions: (customerId: string, params: RequestParams = {}) =>
4005
+ this.request<GetTilePermissionsData, GetTilePermissionsError>({
4006
+ path: `/customer/${customerId}/tilePermissions`,
4007
+ method: 'GET',
4008
+ secure: true,
4009
+ format: 'json',
4010
+ ...params,
4011
+ }),
4012
+
4013
+ /**
4014
+ * @description Create or update portal tile permissions configuration for a customer.
4015
+ *
4016
+ * @tags Tile Permissions
4017
+ * @name ListTilePermissions
4018
+ * @summary Create/Update Tile Permissions
4019
+ * @request POST:/customer/{customerID}/tilePermissions
4020
+ * @secure
4021
+ */
4022
+ listTilePermissions: (customerId: string, data: TilePermissionsRequestBody, params: RequestParams = {}) =>
4023
+ this.request<ListTilePermissionsData, ListTilePermissionsError>({
4024
+ path: `/customer/${customerId}/tilePermissions`,
4025
+ method: 'POST',
4026
+ body: data,
4027
+ secure: true,
4028
+ type: ContentType.Json,
4029
+ ...params,
4030
+ }),
4031
+
4032
+ /**
4033
+ * @description Retrieve requirement configuration by ID.
4034
+ *
4035
+ * @tags Requirement
4036
+ * @name GetRequirement
4037
+ * @summary Get Requirement
4038
+ * @request GET:/customer/{customerID}/requirement/{requirementID}
4039
+ * @secure
4040
+ */
4041
+ getRequirement: (customerId: string, requirementId: string, params: RequestParams = {}) =>
4042
+ this.request<GetRequirementData, GetRequirementError>({
4043
+ path: `/customer/${customerId}/requirement/${requirementId}`,
4044
+ method: 'GET',
4045
+ secure: true,
4046
+ format: 'json',
4047
+ ...params,
4048
+ }),
4049
+
4050
+ /**
4051
+ * @description Create a new requirement configuration.
4052
+ *
4053
+ * @tags Requirement
4054
+ * @name CreateRequirement
4055
+ * @summary Create Requirement
4056
+ * @request POST:/customer/{customerID}/requirement/{requirementID}
4057
+ * @secure
4058
+ */
4059
+ createRequirement: (
4060
+ customerId: string,
4061
+ requirementId: string,
4062
+ data: RequirementRequestBody,
4063
+ params: RequestParams = {}
4064
+ ) =>
4065
+ this.request<CreateRequirementData, CreateRequirementError>({
4066
+ path: `/customer/${customerId}/requirement/${requirementId}`,
4067
+ method: 'POST',
4068
+ body: data,
4069
+ secure: true,
4070
+ type: ContentType.Json,
4071
+ ...params,
4072
+ }),
4073
+
4074
+ /**
4075
+ * @description Update an existing requirement configuration.
4076
+ *
4077
+ * @tags Requirement
4078
+ * @name UpdateRequirement
4079
+ * @summary Update Requirement
4080
+ * @request PUT:/customer/{customerID}/requirement/{requirementID}
4081
+ * @secure
4082
+ */
4083
+ updateRequirement: (
4084
+ customerId: string,
4085
+ requirementId: string,
4086
+ data: RequirementRequestBody,
4087
+ params: RequestParams = {}
4088
+ ) =>
4089
+ this.request<UpdateRequirementData, UpdateRequirementError>({
4090
+ path: `/customer/${customerId}/requirement/${requirementId}`,
4091
+ method: 'PUT',
4092
+ body: data,
4093
+ secure: true,
4094
+ type: ContentType.Json,
4095
+ ...params,
4096
+ }),
4097
+
4098
+ /**
4099
+ * @description Delete a requirement configuration.
4100
+ *
4101
+ * @tags Requirement
4102
+ * @name DeleteRequirement
4103
+ * @summary Delete Requirement
4104
+ * @request DELETE:/customer/{customerID}/requirement/{requirementID}
4105
+ * @secure
4106
+ */
4107
+ deleteRequirement: (customerId: string, requirementId: string, params: RequestParams = {}) =>
4108
+ this.request<DeleteRequirementData, DeleteRequirementError>({
4109
+ path: `/customer/${customerId}/requirement/${requirementId}`,
4110
+ method: 'DELETE',
4111
+ secure: true,
4112
+ ...params,
4113
+ }),
4114
+
4115
+ /**
4116
+ * @description Retrieve all requirement configurations for a customer.
4117
+ *
4118
+ * @tags Requirement
4119
+ * @name GetRequirements
4120
+ * @summary Get All Requirements
4121
+ * @request GET:/customer/{customerID}/requirements
4122
+ * @secure
4123
+ */
4124
+ getRequirements: (customerId: string, params: RequestParams = {}) =>
4125
+ this.request<GetRequirementsData, GetRequirementsError>({
4126
+ path: `/customer/${customerId}/requirements`,
4127
+ method: 'GET',
4128
+ secure: true,
4129
+ format: 'json',
4130
+ ...params,
4131
+ }),
4132
+
4133
+ /**
4134
+ * @description Retrieve equivalence configuration by ID.
4135
+ *
4136
+ * @tags Equivalence
4137
+ * @name GetEquivalence
4138
+ * @summary Get Equivalence
4139
+ * @request GET:/customer/{customerID}/equivalence/{equivalenceID}
4140
+ * @secure
4141
+ */
4142
+ getEquivalence: (customerId: string, equivalenceId: string, params: RequestParams = {}) =>
4143
+ this.request<GetEquivalenceData, GetEquivalenceError>({
4144
+ path: `/customer/${customerId}/equivalence/${equivalenceId}`,
4145
+ method: 'GET',
4146
+ secure: true,
4147
+ format: 'json',
4148
+ ...params,
4149
+ }),
4150
+
4151
+ /**
4152
+ * @description Create a new equivalence configuration.
4153
+ *
4154
+ * @tags Equivalence
4155
+ * @name CreateEquivalence
4156
+ * @summary Create Equivalence
4157
+ * @request POST:/customer/{customerID}/equivalence/{equivalenceID}
4158
+ * @secure
4159
+ */
4160
+ createEquivalence: (
4161
+ customerId: string,
4162
+ equivalenceId: string,
4163
+ data: EquivalenceRequestBody,
4164
+ params: RequestParams = {}
4165
+ ) =>
4166
+ this.request<CreateEquivalenceData, CreateEquivalenceError>({
4167
+ path: `/customer/${customerId}/equivalence/${equivalenceId}`,
4168
+ method: 'POST',
4169
+ body: data,
4170
+ secure: true,
4171
+ type: ContentType.Json,
4172
+ ...params,
4173
+ }),
4174
+
4175
+ /**
4176
+ * @description Update an existing equivalence configuration.
4177
+ *
4178
+ * @tags Equivalence
4179
+ * @name UpdateEquivalence
4180
+ * @summary Update Equivalence
4181
+ * @request PUT:/customer/{customerID}/equivalence/{equivalenceID}
4182
+ * @secure
4183
+ */
4184
+ updateEquivalence: (
4185
+ customerId: string,
4186
+ equivalenceId: string,
4187
+ data: EquivalenceRequestBody,
4188
+ params: RequestParams = {}
4189
+ ) =>
4190
+ this.request<UpdateEquivalenceData, UpdateEquivalenceError>({
4191
+ path: `/customer/${customerId}/equivalence/${equivalenceId}`,
4192
+ method: 'PUT',
4193
+ body: data,
4194
+ secure: true,
4195
+ type: ContentType.Json,
4196
+ ...params,
4197
+ }),
4198
+
4199
+ /**
4200
+ * @description Delete an equivalence configuration.
4201
+ *
4202
+ * @tags Equivalence
4203
+ * @name DeleteEquivalence
4204
+ * @summary Delete Equivalence
4205
+ * @request DELETE:/customer/{customerID}/equivalence/{equivalenceID}
4206
+ * @secure
4207
+ */
4208
+ deleteEquivalence: (customerId: string, equivalenceId: string, params: RequestParams = {}) =>
4209
+ this.request<DeleteEquivalenceData, DeleteEquivalenceError>({
4210
+ path: `/customer/${customerId}/equivalence/${equivalenceId}`,
4211
+ method: 'DELETE',
4212
+ secure: true,
4213
+ ...params,
4214
+ }),
4215
+
4216
+ /**
4217
+ * @description Retrieve all equivalence configurations for a customer.
4218
+ *
4219
+ * @tags Equivalence
4220
+ * @name GetEquivalences
4221
+ * @summary Get All Equivalences
4222
+ * @request GET:/customer/{customerID}/equivalences
4223
+ * @secure
4224
+ */
4225
+ getEquivalences: (customerId: string, params: RequestParams = {}) =>
4226
+ this.request<GetEquivalencesData, GetEquivalencesError>({
4227
+ path: `/customer/${customerId}/equivalences`,
4228
+ method: 'GET',
4229
+ secure: true,
4230
+ format: 'json',
4231
+ ...params,
4232
+ }),
4233
+ }
4234
+ customers = {
4235
+ /**
4236
+ * @description Retrieve all customer configurations.
4237
+ *
4238
+ * @tags Customer
4239
+ * @name ListCustomers
4240
+ * @summary Get All Customers
4241
+ * @request GET:/customers
4242
+ * @secure
4243
+ */
4244
+ listCustomers: (params: RequestParams = {}) =>
4245
+ this.request<ListCustomersData, ListCustomersError>({
4246
+ path: `/customers`,
4247
+ method: 'GET',
4248
+ secure: true,
4249
+ ...params,
4250
+ }),
4251
+ }
4252
+ healthCheck = {
4253
+ /**
4254
+ * @description Check API health status.
4255
+ *
4256
+ * @tags Health
4257
+ * @name GetHealthCheck
4258
+ * @summary Health Check
4259
+ * @request GET:/healthCheck/{requestID}
4260
+ */
4261
+ getHealthCheck: (requestId: string, params: RequestParams = {}) =>
4262
+ this.request<GetHealthCheckData, GetHealthCheckError>({
4263
+ path: `/healthCheck/${requestId}`,
4264
+ method: 'GET',
4265
+ ...params,
4266
+ }),
4267
+ }
4268
+ courseProvider = {
4269
+ /**
4270
+ * @description Retrieve course provider configuration by ID.
4271
+ *
4272
+ * @tags Course Provider
4273
+ * @name GetCourseProvider
4274
+ * @summary Get Course Provider
4275
+ * @request GET:/courseProvider/{courseProviderID}
4276
+ * @secure
4277
+ */
4278
+ getCourseProvider: (courseProviderId: string, params: RequestParams = {}) =>
4279
+ this.request<GetCourseProviderData, GetCourseProviderError>({
4280
+ path: `/courseProvider/${courseProviderId}`,
4281
+ method: 'GET',
4282
+ secure: true,
4283
+ format: 'json',
4284
+ ...params,
4285
+ }),
4286
+
4287
+ /**
4288
+ * @description Create a new course provider configuration.
4289
+ *
4290
+ * @tags Course Provider
4291
+ * @name CreateCourseProvider
4292
+ * @summary Create Course Provider
4293
+ * @request POST:/courseProvider/{courseProviderID}
4294
+ * @secure
4295
+ */
4296
+ createCourseProvider: (courseProviderId: string, data: CourseProviderRequestBody, params: RequestParams = {}) =>
4297
+ this.request<CreateCourseProviderData, CreateCourseProviderError>({
4298
+ path: `/courseProvider/${courseProviderId}`,
4299
+ method: 'POST',
4300
+ body: data,
4301
+ secure: true,
4302
+ type: ContentType.Json,
4303
+ ...params,
4304
+ }),
4305
+
4306
+ /**
4307
+ * @description Update an existing course provider configuration.
4308
+ *
4309
+ * @tags Course Provider
4310
+ * @name UpdateCourseProvider
4311
+ * @summary Update Course Provider
4312
+ * @request PUT:/courseProvider/{courseProviderID}
4313
+ * @secure
4314
+ */
4315
+ updateCourseProvider: (courseProviderId: string, data: CourseProviderRequestBody, params: RequestParams = {}) =>
4316
+ this.request<UpdateCourseProviderData, UpdateCourseProviderError>({
4317
+ path: `/courseProvider/${courseProviderId}`,
4318
+ method: 'PUT',
4319
+ body: data,
4320
+ secure: true,
4321
+ type: ContentType.Json,
4322
+ ...params,
4323
+ }),
4324
+
4325
+ /**
4326
+ * @description Delete a course provider configuration.
4327
+ *
4328
+ * @tags Course Provider
4329
+ * @name DeleteCourseProvider
4330
+ * @summary Delete Course Provider
4331
+ * @request DELETE:/courseProvider/{courseProviderID}
4332
+ * @secure
4333
+ */
4334
+ deleteCourseProvider: (courseProviderId: string, params: RequestParams = {}) =>
4335
+ this.request<DeleteCourseProviderData, DeleteCourseProviderError>({
4336
+ path: `/courseProvider/${courseProviderId}`,
4337
+ method: 'DELETE',
4338
+ secure: true,
4339
+ ...params,
4340
+ }),
4341
+ }
4342
+ courseProviders = {
4343
+ /**
4344
+ * @description Retrieve all course provider configurations.
4345
+ *
4346
+ * @tags Course Provider
4347
+ * @name ListCourseProviders
4348
+ * @summary Get All Course Providers
4349
+ * @request GET:/courseProviders
4350
+ * @secure
4351
+ */
4352
+ listCourseProviders: (params: RequestParams = {}) =>
4353
+ this.request<ListCourseProvidersData, ListCourseProvidersError>({
4354
+ path: `/courseProviders`,
4355
+ method: 'GET',
4356
+ secure: true,
4357
+ format: 'json',
4358
+ ...params,
4359
+ }),
4360
+ }
4361
+ tenant = {
4362
+ /**
4363
+ * @description Retrieve FAQ by ID.
4364
+ *
4365
+ * @tags FAQ
4366
+ * @name GetFaq
4367
+ * @summary Get FAQ
4368
+ * @request GET:/tenant/{tenantID}/faq/{faqID}
4369
+ * @secure
4370
+ */
4371
+ getFaq: (tenantId: string, faqId: string, params: RequestParams = {}) =>
4372
+ this.request<GetFaqData, GetFaqError>({
4373
+ path: `/tenant/${tenantId}/faq/${faqId}`,
4374
+ method: 'GET',
4375
+ secure: true,
4376
+ format: 'json',
4377
+ ...params,
4378
+ }),
4379
+
4380
+ /**
4381
+ * @description Create a new FAQ.
4382
+ *
4383
+ * @tags FAQ
4384
+ * @name CreateFaq
4385
+ * @summary Create FAQ
4386
+ * @request POST:/tenant/{tenantID}/faq/{faqID}
4387
+ * @secure
4388
+ */
4389
+ createFaq: (tenantId: string, faqId: string, data: InputKcyv6Zl1B3H, params: RequestParams = {}) =>
4390
+ this.request<CreateFaqData, CreateFaqError>({
4391
+ path: `/tenant/${tenantId}/faq/${faqId}`,
4392
+ method: 'POST',
4393
+ body: data,
4394
+ secure: true,
4395
+ type: ContentType.Json,
4396
+ ...params,
4397
+ }),
4398
+
4399
+ /**
4400
+ * @description Update an existing FAQ.
4401
+ *
4402
+ * @tags FAQ
4403
+ * @name UpdateFaq
4404
+ * @summary Update FAQ
4405
+ * @request PUT:/tenant/{tenantID}/faq/{faqID}
4406
+ * @secure
4407
+ */
4408
+ updateFaq: (tenantId: string, faqId: string, data: InputGoxi3Hq6E8F, params: RequestParams = {}) =>
4409
+ this.request<UpdateFaqData, UpdateFaqError>({
4410
+ path: `/tenant/${tenantId}/faq/${faqId}`,
4411
+ method: 'PUT',
4412
+ body: data,
4413
+ secure: true,
4414
+ type: ContentType.Json,
4415
+ ...params,
4416
+ }),
4417
+
4418
+ /**
4419
+ * @description Delete a FAQ.
4420
+ *
4421
+ * @tags FAQ
4422
+ * @name DeleteFaq
4423
+ * @summary Delete FAQ
4424
+ * @request DELETE:/tenant/{tenantID}/faq/{faqID}
4425
+ * @secure
4426
+ */
4427
+ deleteFaq: (tenantId: string, faqId: string, params: RequestParams = {}) =>
4428
+ this.request<DeleteFaqData, DeleteFaqError>({
4429
+ path: `/tenant/${tenantId}/faq/${faqId}`,
4430
+ method: 'DELETE',
4431
+ secure: true,
4432
+ ...params,
4433
+ }),
4434
+
4435
+ /**
4436
+ * @description Retrieve all FAQs for a tenant.
4437
+ *
4438
+ * @tags FAQ
4439
+ * @name GetFaqs
4440
+ * @summary Get FAQs
4441
+ * @request GET:/tenant/{tenantID}/faqs
4442
+ * @secure
4443
+ */
4444
+ getFaqs: (tenantId: string, params: RequestParams = {}) =>
4445
+ this.request<GetFaqsData, GetFaqsError>({
4446
+ path: `/tenant/${tenantId}/faqs`,
4447
+ method: 'GET',
4448
+ secure: true,
4449
+ format: 'json',
4450
+ ...params,
4451
+ }),
4452
+
4453
+ /**
4454
+ * @description Retrieve certification by ID.
4455
+ *
4456
+ * @tags Certification
4457
+ * @name GetCertification
4458
+ * @summary Get Certification
4459
+ * @request GET:/tenant/{tenantID}/certification/{certificationID}
4460
+ * @secure
4461
+ */
4462
+ getCertification: (tenantId: string, certificationId: string, params: RequestParams = {}) =>
4463
+ this.request<GetCertificationData, GetCertificationError>({
4464
+ path: `/tenant/${tenantId}/certification/${certificationId}`,
4465
+ method: 'GET',
4466
+ secure: true,
4467
+ format: 'json',
4468
+ ...params,
4469
+ }),
4470
+
4471
+ /**
4472
+ * @description Create a new certification.
4473
+ *
4474
+ * @tags Certification
4475
+ * @name CreateCertification
4476
+ * @summary Create Certification
4477
+ * @request POST:/tenant/{tenantID}/certification/{certificationID}
4478
+ * @secure
4479
+ */
4480
+ createCertification: (
4481
+ tenantId: string,
4482
+ certificationId: string,
4483
+ data: CertificationRequestBody,
4484
+ params: RequestParams = {}
4485
+ ) =>
4486
+ this.request<CreateCertificationData, CreateCertificationError>({
4487
+ path: `/tenant/${tenantId}/certification/${certificationId}`,
4488
+ method: 'POST',
4489
+ body: data,
4490
+ secure: true,
4491
+ type: ContentType.Json,
4492
+ ...params,
4493
+ }),
4494
+
4495
+ /**
4496
+ * @description Update an existing certification.
4497
+ *
4498
+ * @tags Certification
4499
+ * @name UpdateCertification
4500
+ * @summary Update Certification
4501
+ * @request PUT:/tenant/{tenantID}/certification/{certificationID}
4502
+ * @secure
4503
+ */
4504
+ updateCertification: (
4505
+ tenantId: string,
4506
+ certificationId: string,
4507
+ data: CertificationRequestBody,
4508
+ params: RequestParams = {}
4509
+ ) =>
4510
+ this.request<UpdateCertificationData, UpdateCertificationError>({
4511
+ path: `/tenant/${tenantId}/certification/${certificationId}`,
4512
+ method: 'PUT',
4513
+ body: data,
4514
+ secure: true,
4515
+ type: ContentType.Json,
4516
+ ...params,
4517
+ }),
4518
+
4519
+ /**
4520
+ * @description Delete a certification.
4521
+ *
4522
+ * @tags Certification
4523
+ * @name DeleteCertification
4524
+ * @summary Delete Certification
4525
+ * @request DELETE:/tenant/{tenantID}/certification/{certificationID}
4526
+ * @secure
4527
+ */
4528
+ deleteCertification: (tenantId: string, certificationId: string, params: RequestParams = {}) =>
4529
+ this.request<DeleteCertificationData, DeleteCertificationError>({
4530
+ path: `/tenant/${tenantId}/certification/${certificationId}`,
4531
+ method: 'DELETE',
4532
+ secure: true,
4533
+ ...params,
4534
+ }),
4535
+
4536
+ /**
4537
+ * @description Retrieve all certifications for a tenant.
4538
+ *
4539
+ * @tags Certification
4540
+ * @name GetCertifications
4541
+ * @summary Get Certifications
4542
+ * @request GET:/tenant/{tenantID}/certifications
4543
+ * @secure
4544
+ */
4545
+ getCertifications: (tenantId: string, params: RequestParams = {}) =>
4546
+ this.request<GetCertificationsData, GetCertificationsError>({
4547
+ path: `/tenant/${tenantId}/certifications`,
4548
+ method: 'GET',
4549
+ secure: true,
4550
+ format: 'json',
4551
+ ...params,
4552
+ }),
4553
+ }
4554
+ certification = {
4555
+ /**
4556
+ * @description Retrieve course by ID.
4557
+ *
4558
+ * @tags Course
4559
+ * @name GetCourse
4560
+ * @summary Get Course
4561
+ * @request GET:/certification/{certificationID}/course/{courseID}
4562
+ * @secure
4563
+ */
4564
+ getCourse: (certificationId: string, courseId: string, params: RequestParams = {}) =>
4565
+ this.request<GetCourseData, GetCourseError>({
4566
+ path: `/certification/${certificationId}/course/${courseId}`,
4567
+ method: 'GET',
4568
+ secure: true,
4569
+ format: 'json',
4570
+ ...params,
4571
+ }),
4572
+
4573
+ /**
4574
+ * @description Create a new course.
4575
+ *
4576
+ * @tags Course
4577
+ * @name CreateCourse
4578
+ * @summary Create Course
4579
+ * @request POST:/certification/{certificationID}/course/{courseID}
4580
+ * @secure
4581
+ */
4582
+ createCourse: (certificationId: string, courseId: string, data: CourseRequestBody, params: RequestParams = {}) =>
4583
+ this.request<CreateCourseData, CreateCourseError>({
4584
+ path: `/certification/${certificationId}/course/${courseId}`,
4585
+ method: 'POST',
4586
+ body: data,
4587
+ secure: true,
4588
+ type: ContentType.Json,
4589
+ ...params,
4590
+ }),
4591
+
4592
+ /**
4593
+ * @description Update an existing course.
4594
+ *
4595
+ * @tags Course
4596
+ * @name UpdateCourse
4597
+ * @summary Update Course
4598
+ * @request PUT:/certification/{certificationID}/course/{courseID}
4599
+ * @secure
4600
+ */
4601
+ updateCourse: (certificationId: string, courseId: string, data: CourseRequestBody, params: RequestParams = {}) =>
4602
+ this.request<UpdateCourseData, UpdateCourseError>({
4603
+ path: `/certification/${certificationId}/course/${courseId}`,
4604
+ method: 'PUT',
4605
+ body: data,
4606
+ secure: true,
4607
+ type: ContentType.Json,
4608
+ ...params,
4609
+ }),
4610
+
4611
+ /**
4612
+ * @description Delete a course.
4613
+ *
4614
+ * @tags Course
4615
+ * @name DeleteCourse
4616
+ * @summary Delete Course
4617
+ * @request DELETE:/certification/{certificationID}/course/{courseID}
4618
+ * @secure
4619
+ */
4620
+ deleteCourse: (certificationId: string, courseId: string, params: RequestParams = {}) =>
4621
+ this.request<DeleteCourseData, DeleteCourseError>({
4622
+ path: `/certification/${certificationId}/course/${courseId}`,
4623
+ method: 'DELETE',
4624
+ secure: true,
4625
+ ...params,
4626
+ }),
4627
+
4628
+ /**
4629
+ * @description Add a coursebook file to a course.
4630
+ *
4631
+ * @tags CourseBook
4632
+ * @name CreateCourseCourseBook
4633
+ * @summary Add CourseBook
4634
+ * @request POST:/certification/{certificationID}/course/{courseID}/courseBook
4635
+ * @secure
4636
+ */
4637
+ createCourseCourseBook: (
4638
+ certificationId: string,
4639
+ courseId: string,
4640
+ data: AddCourseBookRequest,
4641
+ params: RequestParams = {}
4642
+ ) =>
4643
+ this.request<CreateCourseCourseBookData, CreateCourseCourseBookError>({
4644
+ path: `/certification/${certificationId}/course/${courseId}/courseBook`,
4645
+ method: 'POST',
4646
+ body: data,
4647
+ secure: true,
4648
+ type: ContentType.Json,
4649
+ format: 'json',
4650
+ ...params,
4651
+ }),
4652
+
4653
+ /**
4654
+ * @description Get a signed URL for downloading a coursebook file.
4655
+ *
4656
+ * @tags CourseBook
4657
+ * @name GetCourseCourseBookFileSign
4658
+ * @summary Get CourseBook File Signed URL
4659
+ * @request GET:/certification/{certificationID}/course/{courseID}/courseBook/fileSign/{fileID}
4660
+ * @secure
4661
+ */
4662
+ getCourseCourseBookFileSign: (
4663
+ certificationId: string,
4664
+ courseId: string,
4665
+ fileId: string,
4666
+ params: RequestParams = {}
4667
+ ) =>
4668
+ this.request<GetCourseCourseBookFileSignData, GetCourseCourseBookFileSignError>({
4669
+ path: `/certification/${certificationId}/course/${courseId}/courseBook/fileSign/${fileId}`,
4670
+ method: 'GET',
4671
+ secure: true,
4672
+ format: 'json',
4673
+ ...params,
4674
+ }),
4675
+
4676
+ /**
4677
+ * @description Create a signed URL for uploading a coursebook file.
4678
+ *
4679
+ * @tags CourseBook
4680
+ * @name CreateCourseCourseBookFileSign
4681
+ * @summary Create CourseBook File Upload Signed URL
4682
+ * @request POST:/certification/{certificationID}/course/{courseID}/courseBook/fileSign/{fileID}
4683
+ * @secure
4684
+ */
4685
+ createCourseCourseBookFileSign: (
4686
+ { certificationId, courseId, fileId, ...query }: CreateCourseCourseBookFileSignParams,
4687
+ params: RequestParams = {}
4688
+ ) =>
4689
+ this.request<CreateCourseCourseBookFileSignData, CreateCourseCourseBookFileSignError>({
4690
+ path: `/certification/${certificationId}/course/${courseId}/courseBook/fileSign/${fileId}`,
4691
+ method: 'POST',
4692
+ query: query,
4693
+ secure: true,
4694
+ format: 'json',
4695
+ ...params,
4696
+ }),
4697
+
4698
+ /**
4699
+ * @description Create a signed URL for deleting a coursebook file.
4700
+ *
4701
+ * @tags CourseBook
4702
+ * @name DeleteCourseCourseBookFileSign
4703
+ * @summary Create CourseBook File Delete Signed URL
4704
+ * @request DELETE:/certification/{certificationID}/course/{courseID}/courseBook/fileSign/{fileID}
4705
+ * @secure
4706
+ */
4707
+ deleteCourseCourseBookFileSign: (
4708
+ certificationId: string,
4709
+ courseId: string,
4710
+ fileId: string,
4711
+ params: RequestParams = {}
4712
+ ) =>
4713
+ this.request<DeleteCourseCourseBookFileSignData, DeleteCourseCourseBookFileSignError>({
4714
+ path: `/certification/${certificationId}/course/${courseId}/courseBook/fileSign/${fileId}`,
4715
+ method: 'DELETE',
4716
+ secure: true,
4717
+ format: 'json',
4718
+ ...params,
4719
+ }),
4720
+
4721
+ /**
4722
+ * @description Delete a coursebook file from a course.
4723
+ *
4724
+ * @tags CourseBook
4725
+ * @name DeleteCourseCourseBook
4726
+ * @summary Delete CourseBook
4727
+ * @request DELETE:/certification/{certificationID}/course/{courseID}/courseBook/{fileID}
4728
+ * @secure
4729
+ */
4730
+ deleteCourseCourseBook: (certificationId: string, courseId: string, fileId: string, params: RequestParams = {}) =>
4731
+ this.request<DeleteCourseCourseBookData, DeleteCourseCourseBookError>({
4732
+ path: `/certification/${certificationId}/course/${courseId}/courseBook/${fileId}`,
4733
+ method: 'DELETE',
4734
+ secure: true,
4735
+ format: 'json',
4736
+ ...params,
4737
+ }),
4738
+
4739
+ /**
4740
+ * @description Retrieve all courses for a certification.
4741
+ *
4742
+ * @tags Course
4743
+ * @name GetCourses
4744
+ * @summary Get Courses
4745
+ * @request GET:/certification/{certificationID}/courses
4746
+ * @secure
4747
+ */
4748
+ getCourses: (certificationId: string, params: RequestParams = {}) =>
4749
+ this.request<GetCoursesData, GetCoursesError>({
4750
+ path: `/certification/${certificationId}/courses`,
4751
+ method: 'GET',
4752
+ secure: true,
4753
+ format: 'json',
4754
+ ...params,
4755
+ }),
4756
+
4757
+ /**
4758
+ * @description Retrieve cert equivalence by ID and type.
4759
+ *
4760
+ * @tags CertEquivalence
4761
+ * @name GetEquivalenceType
4762
+ * @summary Get Cert Equivalence
4763
+ * @request GET:/certification/{certificationID}/equivalence/{equivalenceID}/type/{type}
4764
+ * @secure
4765
+ */
4766
+ getEquivalenceType: (certificationId: string, equivalenceId: string, type: string, params: RequestParams = {}) =>
4767
+ this.request<GetEquivalenceTypeData, GetEquivalenceTypeError>({
4768
+ path: `/certification/${certificationId}/equivalence/${equivalenceId}/type/${type}`,
4769
+ method: 'GET',
4770
+ secure: true,
4771
+ format: 'json',
4772
+ ...params,
4773
+ }),
4774
+
4775
+ /**
4776
+ * @description Create a new cert equivalence.
4777
+ *
4778
+ * @tags CertEquivalence
4779
+ * @name CreateEquivalenceType
4780
+ * @summary Create Cert Equivalence
4781
+ * @request POST:/certification/{certificationID}/equivalence/{equivalenceID}/type/{type}
4782
+ * @secure
4783
+ */
4784
+ createEquivalenceType: (
4785
+ certificationId: string,
4786
+ equivalenceId: string,
4787
+ type: string,
4788
+ data: CertEquivalenceRequestBody,
4789
+ params: RequestParams = {}
4790
+ ) =>
4791
+ this.request<CreateEquivalenceTypeData, CreateEquivalenceTypeError>({
4792
+ path: `/certification/${certificationId}/equivalence/${equivalenceId}/type/${type}`,
4793
+ method: 'POST',
4794
+ body: data,
4795
+ secure: true,
4796
+ type: ContentType.Json,
4797
+ ...params,
4798
+ }),
4799
+
4800
+ /**
4801
+ * @description Update an existing cert equivalence.
4802
+ *
4803
+ * @tags CertEquivalence
4804
+ * @name UpdateEquivalenceType
4805
+ * @summary Update Cert Equivalence
4806
+ * @request PUT:/certification/{certificationID}/equivalence/{equivalenceID}/type/{type}
4807
+ * @secure
4808
+ */
4809
+ updateEquivalenceType: (
4810
+ certificationId: string,
4811
+ equivalenceId: string,
4812
+ type: string,
4813
+ data: CertEquivalenceRequestBody,
4814
+ params: RequestParams = {}
4815
+ ) =>
4816
+ this.request<UpdateEquivalenceTypeData, UpdateEquivalenceTypeError>({
4817
+ path: `/certification/${certificationId}/equivalence/${equivalenceId}/type/${type}`,
4818
+ method: 'PUT',
4819
+ body: data,
4820
+ secure: true,
4821
+ type: ContentType.Json,
4822
+ ...params,
4823
+ }),
4824
+
4825
+ /**
4826
+ * @description Delete a cert equivalence.
4827
+ *
4828
+ * @tags CertEquivalence
4829
+ * @name DeleteEquivalenceType
4830
+ * @summary Delete Cert Equivalence
4831
+ * @request DELETE:/certification/{certificationID}/equivalence/{equivalenceID}/type/{type}
4832
+ * @secure
4833
+ */
4834
+ deleteEquivalenceType: (certificationId: string, equivalenceId: string, type: string, params: RequestParams = {}) =>
4835
+ this.request<DeleteEquivalenceTypeData, DeleteEquivalenceTypeError>({
4836
+ path: `/certification/${certificationId}/equivalence/${equivalenceId}/type/${type}`,
4837
+ method: 'DELETE',
4838
+ secure: true,
4839
+ ...params,
4840
+ }),
4841
+
4842
+ /**
4843
+ * @description Retrieve all cert equivalences for a certification.
4844
+ *
4845
+ * @tags CertEquivalence
4846
+ * @name GetEquivalences
4847
+ * @summary Get Cert Equivalences
4848
+ * @request GET:/certification/{certificationID}/equivalences
4849
+ * @secure
4850
+ */
4851
+ getEquivalences: (certificationId: string, params: RequestParams = {}) =>
4852
+ this.request<GetEquivalencesResult, GetEquivalencesFail>({
4853
+ path: `/certification/${certificationId}/equivalences`,
4854
+ method: 'GET',
4855
+ secure: true,
4856
+ format: 'json',
4857
+ ...params,
4858
+ }),
4859
+
4860
+ /**
4861
+ * @description Retrieve cert requirement by ID and type.
4862
+ *
4863
+ * @tags CertRequirement
4864
+ * @name GetRequirementType
4865
+ * @summary Get Cert Requirement
4866
+ * @request GET:/certification/{certificationID}/requirement/{requirementID}/type/{type}
4867
+ * @secure
4868
+ */
4869
+ getRequirementType: (certificationId: string, requirementId: string, type: string, params: RequestParams = {}) =>
4870
+ this.request<GetRequirementTypeData, GetRequirementTypeError>({
4871
+ path: `/certification/${certificationId}/requirement/${requirementId}/type/${type}`,
4872
+ method: 'GET',
4873
+ secure: true,
4874
+ format: 'json',
4875
+ ...params,
4876
+ }),
4877
+
4878
+ /**
4879
+ * @description Create a new cert requirement.
4880
+ *
4881
+ * @tags CertRequirement
4882
+ * @name CreateRequirementType
4883
+ * @summary Create Cert Requirement
4884
+ * @request POST:/certification/{certificationID}/requirement/{requirementID}/type/{type}
4885
+ * @secure
4886
+ */
4887
+ createRequirementType: (
4888
+ certificationId: string,
4889
+ requirementId: string,
4890
+ type: string,
4891
+ data: CertRequirementRequestBody,
4892
+ params: RequestParams = {}
4893
+ ) =>
4894
+ this.request<CreateRequirementTypeData, CreateRequirementTypeError>({
4895
+ path: `/certification/${certificationId}/requirement/${requirementId}/type/${type}`,
4896
+ method: 'POST',
4897
+ body: data,
4898
+ secure: true,
4899
+ type: ContentType.Json,
4900
+ ...params,
4901
+ }),
4902
+
4903
+ /**
4904
+ * @description Update an existing cert requirement.
4905
+ *
4906
+ * @tags CertRequirement
4907
+ * @name UpdateRequirementType
4908
+ * @summary Update Cert Requirement
4909
+ * @request PUT:/certification/{certificationID}/requirement/{requirementID}/type/{type}
4910
+ * @secure
4911
+ */
4912
+ updateRequirementType: (
4913
+ certificationId: string,
4914
+ requirementId: string,
4915
+ type: string,
4916
+ data: CertRequirementRequestBody,
4917
+ params: RequestParams = {}
4918
+ ) =>
4919
+ this.request<UpdateRequirementTypeData, UpdateRequirementTypeError>({
4920
+ path: `/certification/${certificationId}/requirement/${requirementId}/type/${type}`,
4921
+ method: 'PUT',
4922
+ body: data,
4923
+ secure: true,
4924
+ type: ContentType.Json,
4925
+ ...params,
4926
+ }),
4927
+
4928
+ /**
4929
+ * @description Delete a cert requirement.
4930
+ *
4931
+ * @tags CertRequirement
4932
+ * @name DeleteRequirementType
4933
+ * @summary Delete Cert Requirement
4934
+ * @request DELETE:/certification/{certificationID}/requirement/{requirementID}/type/{type}
4935
+ * @secure
4936
+ */
4937
+ deleteRequirementType: (certificationId: string, requirementId: string, type: string, params: RequestParams = {}) =>
4938
+ this.request<DeleteRequirementTypeData, DeleteRequirementTypeError>({
4939
+ path: `/certification/${certificationId}/requirement/${requirementId}/type/${type}`,
4940
+ method: 'DELETE',
4941
+ secure: true,
4942
+ ...params,
4943
+ }),
4944
+
4945
+ /**
4946
+ * @description Retrieve all cert requirements for a certification.
4947
+ *
4948
+ * @tags CertRequirement
4949
+ * @name GetRequirements
4950
+ * @summary Get Cert Requirements
4951
+ * @request GET:/certification/{certificationID}/requirements
4952
+ * @secure
4953
+ */
4954
+ getRequirements: (certificationId: string, params: RequestParams = {}) =>
4955
+ this.request<GetRequirementsResult, GetRequirementsFail>({
4956
+ path: `/certification/${certificationId}/requirements`,
4957
+ method: 'GET',
4958
+ secure: true,
4959
+ format: 'json',
4960
+ ...params,
4961
+ }),
4962
+ }
4963
+ }