@factorialco/api-client 3.0.0-beta.2026100122 → 3.0.0-beta.2026100124

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.
@@ -124,7 +124,16 @@ export type ApprovalsMaterializedApprovalsFlow = {
124
124
  expires_at: string;
125
125
  final_decision_at?: string;
126
126
  approval_flow_id: string;
127
- approvers: Array<unknown>;
127
+ approvers: Array<{
128
+ id: string;
129
+ access_id?: string;
130
+ employee_id?: string;
131
+ materialized_approval_step_id: string;
132
+ approval_step_approver_id: string;
133
+ status: 'pending' | 'approved' | 'rejected' | 'requestedinformation' | 'changes_requested' | 'waiting_changes' | 'stopped' | 'ignored';
134
+ selection_criteria?: string;
135
+ updated_at: string;
136
+ }>;
128
137
  email_detail_blocks: Array<string>;
129
138
  override_approver_id?: string;
130
139
  override_approver_employee_id?: string;
@@ -212,7 +221,11 @@ export type AtsApplication = {
212
221
  * CV file attachment of the application (includes filename, url, byte_size, content_type, created_at)
213
222
  */
214
223
  cv?: {
215
- [key: string]: unknown;
224
+ filename: string;
225
+ url: string;
226
+ byte_size: number;
227
+ content_type: string;
228
+ created_at?: string;
216
229
  };
217
230
  /**
218
231
  * Application conversation id
@@ -398,7 +411,11 @@ export type AtsEvaluationForm = {
398
411
  /**
399
412
  * List of questions in the evaluation form.
400
413
  */
401
- questions: Array<unknown>;
414
+ questions: Array<{
415
+ id: string;
416
+ text: string;
417
+ description?: string;
418
+ }>;
402
419
  /**
403
420
  * date and time when the evaluation form was created.
404
421
  */
@@ -444,7 +461,11 @@ export type AtsFeedback = {
444
461
  /**
445
462
  * the answers from the evaluation form, if this feedback is related to an evaluation form.
446
463
  */
447
- evaluation_form_answers?: Array<unknown>;
464
+ evaluation_form_answers?: Array<{
465
+ question_id: string;
466
+ score: number;
467
+ note?: string;
468
+ }>;
448
469
  };
449
470
  export type AtsHiringStage = {
450
471
  /**
@@ -576,7 +597,13 @@ export type AtsMessage = {
576
597
  sent_by_id: string;
577
598
  sent_by_type: string;
578
599
  created_at: string;
579
- attachments: Array<unknown>;
600
+ attachments: Array<{
601
+ filename: string;
602
+ url: string;
603
+ byte_size: number;
604
+ content_type: string;
605
+ created_at?: string;
606
+ }>;
580
607
  topic: string;
581
608
  delayed_until?: string;
582
609
  sent_at?: string;
@@ -624,7 +651,10 @@ export type AtsQuestion = {
624
651
  /**
625
652
  * options for the question.
626
653
  */
627
- options?: Array<unknown>;
654
+ options?: Array<{
655
+ text: string;
656
+ disqualifies?: boolean;
657
+ }>;
628
658
  };
629
659
  export type AtsRejectionReason = {
630
660
  /**
@@ -761,10 +791,27 @@ export type AttendanceEstimatedTime = {
761
791
  * Amount of overtime minutes the employee has to work (only available with Shift Management).
762
792
  */
763
793
  overtime_minutes: number;
764
- breaks: Array<unknown>;
794
+ breaks: Array<{
795
+ start_at: string;
796
+ end_at: string;
797
+ duration: number;
798
+ break_configuration_id: string;
799
+ break_configuration_name: string;
800
+ break_configuration_paid: boolean;
801
+ shift_id?: string;
802
+ break_type: 'flexible' | 'fixed' | 'semi_flexible';
803
+ timezone: string;
804
+ }>;
765
805
  time_unit: 'minute' | 'half_day' | 'none';
766
806
  estimated_half_days: number;
767
- shifts: Array<unknown>;
807
+ shifts: Array<{
808
+ id: string;
809
+ start_at: string;
810
+ end_at: string;
811
+ location_id?: string;
812
+ timezone?: string;
813
+ extra_hours?: boolean;
814
+ }>;
768
815
  /**
769
816
  * Source of the estimated time. Could be employee's contract, work schedule or shift management.
770
817
  */
@@ -1006,7 +1053,23 @@ export type AttendanceWorkedTime = {
1006
1053
  pending_minutes: number;
1007
1054
  minutes: number;
1008
1055
  time_unit: 'minute' | 'half_day' | 'none';
1009
- worked_time_blocks: Array<unknown>;
1056
+ worked_time_blocks: Array<{
1057
+ minutes: number;
1058
+ time_type: 'regular' | 'overtime' | 'any_time';
1059
+ extra_hour: boolean;
1060
+ complementary_hour: boolean;
1061
+ raw_minutes_in_cents: number;
1062
+ equivalent_minutes_in_cents: number;
1063
+ pool_type: 'balance' | 'timeoff' | 'virtual_timeoff' | 'payroll' | 'virtual_payroll' | 'discarded' | 'buffer' | 'complementary_buffer';
1064
+ date: string;
1065
+ approved: boolean;
1066
+ workable: boolean;
1067
+ in_schedule: boolean;
1068
+ time_range_category_id?: string;
1069
+ employee_id: string;
1070
+ time_settings_break_configuration_id?: string;
1071
+ time_range_category_name?: string;
1072
+ }>;
1010
1073
  day_type: 'saturday' | 'sunday' | 'bank_holiday' | 'workday';
1011
1074
  /**
1012
1075
  * ID to specify the worked time it includes the employee_id and date
@@ -1739,7 +1802,27 @@ export type ContractsContractVersion = {
1739
1802
  * Country-specific contract data (template fragments and fields).
1740
1803
  */
1741
1804
  version_data?: {
1742
- [key: string]: unknown;
1805
+ country_data?: {
1806
+ /**
1807
+ * Country code (e.g. es, fr, de, pt).
1808
+ */
1809
+ country: string;
1810
+ fields: Array<{
1811
+ name: string;
1812
+ field_name: string;
1813
+ value_label?: string;
1814
+ value_id: string;
1815
+ }>;
1816
+ /**
1817
+ * Identifiers of the materialized_template_fragment records that produced this country data. Compare against the current template's source_fragment_ids to detect when this data originated from a different template (e.g. after a legal entity or country change).
1818
+ *
1819
+ */
1820
+ template_fragments: {
1821
+ company_fragment_id?: string;
1822
+ country_fragment_id?: string;
1823
+ legal_entity_fragment_id?: string;
1824
+ };
1825
+ };
1743
1826
  };
1744
1827
  /**
1745
1828
  * the minimum amount of minutes the employee must rest between working periods.
@@ -2136,7 +2219,29 @@ export type ContractsMaterializedTemplate = {
2136
2219
  * The ordered list of contract fields defined in this template after merging all inheritance levels and removing hidden fields. Each entry is a FragmentField describing a single configurable attribute of a contract (e.g. contract type, job title, salary). The list reflects the final effective set of fields an employee contract under this template will contain.
2137
2220
  *
2138
2221
  */
2139
- template: Array<unknown>;
2222
+ template: Array<{
2223
+ id: string;
2224
+ field_id: string;
2225
+ label: string;
2226
+ field_type: 'boolean' | 'cents' | 'integer' | 'option' | 'string';
2227
+ edit_mode: 'not_editable' | 'add_only' | 'full_editable';
2228
+ options?: Array<{
2229
+ id: string;
2230
+ option_id: string;
2231
+ fragment_id: string;
2232
+ label: string;
2233
+ raw_label?: string;
2234
+ translation_string?: string;
2235
+ archived_at?: string;
2236
+ default: boolean;
2237
+ integration_source?: string;
2238
+ }>;
2239
+ dependencies: Array<{
2240
+ field: string;
2241
+ type: 'visibility_toggle' | 'dynamic_options';
2242
+ value?: string;
2243
+ }>;
2244
+ }>;
2140
2245
  };
2141
2246
  export type ContractsPortugueseContractType = {
2142
2247
  /**
@@ -3250,7 +3355,10 @@ export type EmployeeUpdatesTermination = {
3250
3355
  /**
3251
3356
  * Remaining holidays
3252
3357
  */
3253
- remaining_holidays: Array<unknown>;
3358
+ remaining_holidays: Array<{
3359
+ name: string;
3360
+ available_days: string;
3361
+ }>;
3254
3362
  /**
3255
3363
  * Termination reason type
3256
3364
  */
@@ -3411,7 +3519,8 @@ export type ExpensesExpense = {
3411
3519
  * The category of the expense
3412
3520
  */
3413
3521
  category?: {
3414
- [key: string]: unknown;
3522
+ id: string;
3523
+ name: string;
3415
3524
  };
3416
3525
  /**
3417
3526
  * The subcategory of the expense
@@ -3456,7 +3565,14 @@ export type ExpensesExpense = {
3456
3565
  /**
3457
3566
  * The files of the expense
3458
3567
  */
3459
- files: Array<unknown>;
3568
+ files: Array<{
3569
+ id: string;
3570
+ filename: string;
3571
+ url?: string;
3572
+ download_url?: string;
3573
+ byte_size: number;
3574
+ content_type?: string;
3575
+ }>;
3460
3576
  /**
3461
3577
  * The id of the external authorization
3462
3578
  */
@@ -3469,7 +3585,8 @@ export type ExpensesExpense = {
3469
3585
  * The card of the expense
3470
3586
  */
3471
3587
  card?: {
3472
- [key: string]: unknown;
3588
+ last4?: string;
3589
+ card_type: string;
3473
3590
  };
3474
3591
  /**
3475
3592
  * The id of the document
@@ -3479,7 +3596,26 @@ export type ExpensesExpense = {
3479
3596
  * The signed document of the expense
3480
3597
  */
3481
3598
  signed_document?: {
3482
- [key: string]: unknown;
3599
+ id: string;
3600
+ file?: {
3601
+ id: string;
3602
+ filename: string;
3603
+ url?: string;
3604
+ download_url?: string;
3605
+ byte_size: number;
3606
+ content_type?: string;
3607
+ };
3608
+ original_files: Array<{
3609
+ id: string;
3610
+ filename: string;
3611
+ url?: string;
3612
+ download_url?: string;
3613
+ byte_size: number;
3614
+ content_type?: string;
3615
+ }>;
3616
+ signed_for_organization: string;
3617
+ created_at: string;
3618
+ signing: boolean;
3483
3619
  };
3484
3620
  /**
3485
3621
  * The access token of the expense
@@ -3520,7 +3656,12 @@ export type ExpensesExpense = {
3520
3656
  /**
3521
3657
  * The taxes of the expense
3522
3658
  */
3523
- taxes: Array<unknown>;
3659
+ taxes: Array<{
3660
+ type: 'vat';
3661
+ amount?: number;
3662
+ percentage?: number;
3663
+ base_amount?: number;
3664
+ }>;
3524
3665
  /**
3525
3666
  * The id of the expense category the expense is classified under (company-configurable catalogue)
3526
3667
  */
@@ -3563,7 +3704,8 @@ export type ExpensesMileage = {
3563
3704
  * The category of the mileage
3564
3705
  */
3565
3706
  category?: {
3566
- [key: string]: unknown;
3707
+ id: string;
3708
+ name: string;
3567
3709
  };
3568
3710
  /**
3569
3711
  * The subcategory of the mileage
@@ -3632,7 +3774,14 @@ export type ExpensesMileage = {
3632
3774
  /**
3633
3775
  * The files associated with the mileage
3634
3776
  */
3635
- files: Array<unknown>;
3777
+ files: Array<{
3778
+ id: string;
3779
+ filename: string;
3780
+ url?: string;
3781
+ download_url?: string;
3782
+ byte_size: number;
3783
+ content_type?: string;
3784
+ }>;
3636
3785
  /**
3637
3786
  * The date when the mileage was paid
3638
3787
  */
@@ -3750,7 +3899,14 @@ export type ExpensesPerDiem = {
3750
3899
  /**
3751
3900
  * The files attached to the per diem.
3752
3901
  */
3753
- files: Array<unknown>;
3902
+ files: Array<{
3903
+ id: string;
3904
+ filename: string;
3905
+ url?: string;
3906
+ download_url?: string;
3907
+ byte_size: number;
3908
+ content_type?: string;
3909
+ }>;
3754
3910
  /**
3755
3911
  * The date the per diem was requested for review.
3756
3912
  */
@@ -3767,7 +3923,8 @@ export type ExpensesPerDiem = {
3767
3923
  * The category of the per diem.
3768
3924
  */
3769
3925
  category?: {
3770
- [key: string]: unknown;
3926
+ id: string;
3927
+ name: string;
3771
3928
  };
3772
3929
  /**
3773
3930
  * The subcategory of the per diem.
@@ -3792,7 +3949,13 @@ export type ExpensesPerDiem = {
3792
3949
  /**
3793
3950
  * The rates for the per diem.
3794
3951
  */
3795
- rates: Array<unknown>;
3952
+ rates: Array<{
3953
+ id?: string;
3954
+ expenses_per_diem_id: string;
3955
+ rate_configuration_id: string;
3956
+ total_days?: number;
3957
+ total_amount_cents?: number;
3958
+ }>;
3796
3959
  };
3797
3960
  export type FinanceAccount = {
3798
3961
  /**
@@ -3963,7 +4126,30 @@ export type FinanceContact = {
3963
4126
  * The address object containing street, city, etc.
3964
4127
  */
3965
4128
  address: {
3966
- [key: string]: unknown;
4129
+ /**
4130
+ * Street address line 1.
4131
+ */
4132
+ line1: string;
4133
+ /**
4134
+ * Street address line 2 or additional info.
4135
+ */
4136
+ line2?: string;
4137
+ /**
4138
+ * City where the Contact is located.
4139
+ */
4140
+ city: string;
4141
+ /**
4142
+ * Postal or ZIP code.
4143
+ */
4144
+ postal_code: string;
4145
+ /**
4146
+ * State or region for the Contact.
4147
+ */
4148
+ state: string;
4149
+ /**
4150
+ * Two-letter ISO country code.
4151
+ */
4152
+ country_code: string;
3967
4153
  };
3968
4154
  /**
3969
4155
  * The external id of the contact.
@@ -4081,7 +4267,12 @@ export type FinanceFinancialDocument = {
4081
4267
  * File attached.
4082
4268
  */
4083
4269
  file?: {
4084
- [key: string]: unknown;
4270
+ id: string;
4271
+ filename: string;
4272
+ url: string;
4273
+ size: number;
4274
+ content_type: string;
4275
+ created_at: string;
4085
4276
  };
4086
4277
  /**
4087
4278
  * Updation date.
@@ -4090,7 +4281,17 @@ export type FinanceFinancialDocument = {
4090
4281
  /**
4091
4282
  * Taxes.
4092
4283
  */
4093
- taxes: Array<unknown>;
4284
+ taxes: Array<{
4285
+ amount_cents?: number;
4286
+ percentage?: number;
4287
+ base_amount_cents?: number;
4288
+ type?: 'vat' | 'personal_income';
4289
+ tax_type_id?: string;
4290
+ tax_type_name?: string;
4291
+ tax_rates?: Array<{
4292
+ percentage: number;
4293
+ }>;
4294
+ }>;
4094
4295
  /**
4095
4296
  * Date when was fully reconciled.
4096
4297
  */
@@ -4409,7 +4610,8 @@ export type IntegrationsSyncRun = {
4409
4610
  * Scope of this sync run. Holds `from` and `to`, the inclusive ISO-8601 dates of the period it covers; either key is absent when unknown, and the object is empty when the run is not date-scoped.
4410
4611
  */
4411
4612
  context: {
4412
- [key: string]: unknown;
4613
+ from?: string;
4614
+ to?: string;
4413
4615
  };
4414
4616
  /**
4415
4617
  * Identifier of the company
@@ -4447,7 +4649,40 @@ export type IntegrationsSyncableItem = {
4447
4649
  * data of the item to be synced
4448
4650
  */
4449
4651
  sync_payload: {
4450
- [key: string]: unknown;
4652
+ id?: string;
4653
+ employee_id?: string;
4654
+ payroll_concept_id?: string;
4655
+ legal_entity_id?: string;
4656
+ company_id?: string;
4657
+ category_id?: string;
4658
+ subcategory_id?: string;
4659
+ ledger_account_id?: string;
4660
+ leave_type_id?: string;
4661
+ leave_type_name?: string;
4662
+ translated_leave_type_name?: string;
4663
+ employee_full_name?: string;
4664
+ legal_entity_name?: string;
4665
+ start_time?: string;
4666
+ days_taken?: number;
4667
+ created_at?: string;
4668
+ contract_working_hours?: number;
4669
+ contract_working_hours_frequency?: string;
4670
+ contract_working_week_days?: string;
4671
+ contract_fr_forfait_jours?: boolean;
4672
+ project_id?: string;
4673
+ subproject_ids?: Array<string>;
4674
+ cost_center_ids?: Array<{
4675
+ id?: string;
4676
+ }>;
4677
+ files?: Array<{
4678
+ id?: string;
4679
+ }>;
4680
+ taxes?: Array<{
4681
+ type?: string;
4682
+ amount?: number;
4683
+ base_amount?: number;
4684
+ percentage?: number;
4685
+ }>;
4451
4686
  };
4452
4687
  /**
4453
4688
  * Type of the syncable item
@@ -4478,7 +4713,10 @@ export type IntegrationsSyncableState = {
4478
4713
  /**
4479
4714
  * Error or validation messages of the syncable state
4480
4715
  */
4481
- error_messages: Array<unknown>;
4716
+ error_messages: Array<{
4717
+ key: string;
4718
+ value: string;
4719
+ }>;
4482
4720
  /**
4483
4721
  * Timestamp of the last status change
4484
4722
  */
@@ -4504,11 +4742,18 @@ export type IntegrationsSyncableSyncRun = {
4504
4742
  /**
4505
4743
  * Error or validation messages of the syncable sync run
4506
4744
  */
4507
- error_messages: Array<unknown>;
4745
+ error_messages: Array<{
4746
+ key: string;
4747
+ value: string;
4748
+ }>;
4508
4749
  /**
4509
4750
  * Identifier of the sync run
4510
4751
  */
4511
4752
  sync_run_id: string;
4753
+ /**
4754
+ * Identifier of the syncable state this run item is linked to. Refers to the integrations/syncable_state resource
4755
+ */
4756
+ syncable_state_id: string;
4512
4757
  /**
4513
4758
  * Identifier of the company
4514
4759
  */
@@ -4700,25 +4945,49 @@ export type JobCatalogNodeAttribute = {
4700
4945
  * Competency payload including name, short description and optional level metadata
4701
4946
  */
4702
4947
  value_competency?: {
4703
- [key: string]: unknown;
4948
+ name?: string;
4949
+ description?: string;
4950
+ level?: {
4951
+ id: string;
4952
+ name: string;
4953
+ description: string;
4954
+ };
4704
4955
  };
4705
4956
  /**
4706
4957
  * IT asset payload describing the device assigned to the node
4707
4958
  */
4708
4959
  value_it_management_asset?: {
4709
- [key: string]: unknown;
4960
+ type_name: string;
4961
+ brand: string;
4962
+ name: string;
4710
4963
  };
4711
4964
  /**
4712
4965
  * Salary payload (cents) with currency, periodicity, range (min and max) or gross values in cents (35.000 EUR is stored as 3500000) and optional workplaces
4713
4966
  */
4714
4967
  value_salary_range?: {
4715
- [key: string]: unknown;
4968
+ currency: string;
4969
+ periodicity?: string;
4970
+ min?: number;
4971
+ max?: number;
4972
+ gross?: number;
4973
+ /**
4974
+ * Workplaces where the salary range applies
4975
+ */
4976
+ workplaces?: Array<{
4977
+ id: string;
4978
+ name: string;
4979
+ }>;
4716
4980
  };
4717
4981
  /**
4718
4982
  * Working-conditions payload with agreement info and simple key/value constraints. Numeric values are stored in cents (40 hours is stored as 4000).
4719
4983
  */
4720
4984
  value_working_conditions?: {
4721
- [key: string]: unknown;
4985
+ name: string;
4986
+ description?: string;
4987
+ conditions: Array<{
4988
+ key: string;
4989
+ value: string;
4990
+ }>;
4722
4991
  };
4723
4992
  };
4724
4993
  export type JobCatalogRole = {
@@ -4787,7 +5056,11 @@ export type JobCatalogNode = {
4787
5056
  /**
4788
5057
  * Array with the list of nodes tha compose full path from the current node to the root node.
4789
5058
  */
4790
- full_path_to_root?: Array<unknown>;
5059
+ full_path_to_root?: Array<{
5060
+ uuid: string;
5061
+ name?: string;
5062
+ description?: string;
5063
+ }>;
4791
5064
  /**
4792
5065
  * Full title that represents the job position.
4793
5066
  */
@@ -4881,19 +5154,31 @@ export type MarketplaceInstallationSettings = {
4881
5154
  /**
4882
5155
  * Leave types codes
4883
5156
  */
4884
- leave_types: Array<unknown>;
5157
+ leave_types: Array<{
5158
+ id: string;
5159
+ value: string;
5160
+ }>;
4885
5161
  /**
4886
5162
  * Legal Entity file numbers
4887
5163
  */
4888
- file_numbers: Array<unknown>;
5164
+ file_numbers: Array<{
5165
+ legal_entity_id: string;
5166
+ value: string;
5167
+ }>;
4889
5168
  /**
4890
5169
  * Workplace establishment codes
4891
5170
  */
4892
- establishment_codes: Array<unknown>;
5171
+ establishment_codes: Array<{
5172
+ location_id: string;
5173
+ value: string;
5174
+ }>;
4893
5175
  /**
4894
5176
  * Timeoff allowance codes
4895
5177
  */
4896
- timeoff_allowance_code: Array<unknown>;
5178
+ timeoff_allowance_code: Array<{
5179
+ id: string;
5180
+ value: string;
5181
+ }>;
4897
5182
  };
4898
5183
  export type PayrollFamilySituation = {
4899
5184
  /**
@@ -5216,7 +5501,8 @@ export type PerformanceAgreement = {
5216
5501
  * Conclusions of the action plan
5217
5502
  */
5218
5503
  conclusions?: {
5219
- [key: string]: unknown;
5504
+ text: string;
5505
+ last_updated_at: string;
5220
5506
  };
5221
5507
  /**
5222
5508
  * Self review evaluation ID
@@ -5229,11 +5515,21 @@ export type PerformanceAgreement = {
5229
5515
  /**
5230
5516
  * Self comments by question
5231
5517
  */
5232
- self_comments: Array<unknown>;
5518
+ self_comments: Array<{
5519
+ question_uuid: string;
5520
+ author_access_id: string;
5521
+ text: string;
5522
+ updated_at: string;
5523
+ }>;
5233
5524
  /**
5234
5525
  * Manager comments by question
5235
5526
  */
5236
- manager_comments: Array<unknown>;
5527
+ manager_comments: Array<{
5528
+ question_uuid: string;
5529
+ author_access_id: string;
5530
+ text: string;
5531
+ updated_at: string;
5532
+ }>;
5237
5533
  };
5238
5534
  export type PerformanceCompanyEmployeeScoreScale = {
5239
5535
  /**
@@ -5257,7 +5553,10 @@ export type PerformanceEmployeeScoreScale = {
5257
5553
  /**
5258
5554
  * Scale to be used when scoring the employee performance
5259
5555
  */
5260
- scale: Array<unknown>;
5556
+ scale: Array<{
5557
+ value: number;
5558
+ text: string;
5559
+ }>;
5261
5560
  is_default: boolean;
5262
5561
  };
5263
5562
  export type PerformanceReviewEmployeeScore = {
@@ -5367,19 +5666,130 @@ export type PerformanceReviewEvaluationAnswer = {
5367
5666
  * List of questions and their respective answers grouped by section.
5368
5667
  */
5369
5668
  answered_questionnaire_with_sections: {
5370
- [key: string]: unknown;
5669
+ content: Array<{
5670
+ uuid: string;
5671
+ type: 'answered_question' | 'answered_section';
5672
+ section_title?: string;
5673
+ questions: Array<{
5674
+ question: {
5675
+ uuid: string;
5676
+ mandatory: boolean;
5677
+ with_comment?: boolean;
5678
+ title: string;
5679
+ answer_type: 'text' | 'rating' | 'number' | 'multiple_choice';
5680
+ scale?: Array<{
5681
+ value: number;
5682
+ text: string;
5683
+ }>;
5684
+ max_choices?: number;
5685
+ choice_options?: Array<string>;
5686
+ metadata?: {
5687
+ competency_id?: string;
5688
+ competency_level_id?: string;
5689
+ competency_level_name?: string;
5690
+ competency_level_description?: string;
5691
+ };
5692
+ description?: string;
5693
+ };
5694
+ answer?: {
5695
+ uuid: string;
5696
+ answer_text?: string;
5697
+ answer_int?: number;
5698
+ answer_float?: number;
5699
+ answer_choice?: Array<string>;
5700
+ answer_rating?: {
5701
+ value?: number;
5702
+ comment?: string;
5703
+ };
5704
+ };
5705
+ }>;
5706
+ }>;
5371
5707
  };
5372
5708
  /**
5373
5709
  * Questionnaire for getting employee score.
5374
5710
  */
5375
5711
  answered_employee_score_questionnaire?: {
5376
- [key: string]: unknown;
5712
+ content: Array<{
5713
+ uuid: string;
5714
+ type: 'answered_question' | 'answered_section';
5715
+ section_title?: string;
5716
+ questions: Array<{
5717
+ question: {
5718
+ uuid: string;
5719
+ mandatory: boolean;
5720
+ with_comment?: boolean;
5721
+ title: string;
5722
+ answer_type: 'text' | 'rating' | 'number' | 'multiple_choice';
5723
+ scale?: Array<{
5724
+ value: number;
5725
+ text: string;
5726
+ }>;
5727
+ max_choices?: number;
5728
+ choice_options?: Array<string>;
5729
+ metadata?: {
5730
+ competency_id?: string;
5731
+ competency_level_id?: string;
5732
+ competency_level_name?: string;
5733
+ competency_level_description?: string;
5734
+ };
5735
+ description?: string;
5736
+ };
5737
+ answer?: {
5738
+ uuid: string;
5739
+ answer_text?: string;
5740
+ answer_int?: number;
5741
+ answer_float?: number;
5742
+ answer_choice?: Array<string>;
5743
+ answer_rating?: {
5744
+ value?: number;
5745
+ comment?: string;
5746
+ };
5747
+ };
5748
+ }>;
5749
+ }>;
5377
5750
  };
5378
5751
  /**
5379
5752
  * Questionnaire for getting the employee potential score.
5380
5753
  */
5381
5754
  answered_employee_potential_score_questionnaire?: {
5382
- [key: string]: unknown;
5755
+ content: Array<{
5756
+ uuid: string;
5757
+ type: 'answered_question' | 'answered_section';
5758
+ section_title?: string;
5759
+ questions: Array<{
5760
+ question: {
5761
+ uuid: string;
5762
+ mandatory: boolean;
5763
+ with_comment?: boolean;
5764
+ title: string;
5765
+ answer_type: 'text' | 'rating' | 'number' | 'multiple_choice';
5766
+ scale?: Array<{
5767
+ value: number;
5768
+ text: string;
5769
+ }>;
5770
+ max_choices?: number;
5771
+ choice_options?: Array<string>;
5772
+ metadata?: {
5773
+ competency_id?: string;
5774
+ competency_level_id?: string;
5775
+ competency_level_name?: string;
5776
+ competency_level_description?: string;
5777
+ };
5778
+ description?: string;
5779
+ };
5780
+ answer?: {
5781
+ uuid: string;
5782
+ answer_text?: string;
5783
+ answer_int?: number;
5784
+ answer_float?: number;
5785
+ answer_choice?: Array<string>;
5786
+ answer_rating?: {
5787
+ value?: number;
5788
+ comment?: string;
5789
+ };
5790
+ };
5791
+ }>;
5792
+ }>;
5383
5793
  };
5384
5794
  };
5385
5795
  export type PerformanceReviewEvaluationScore = {
@@ -5479,7 +5889,8 @@ export type PerformanceReviewProcess = {
5479
5889
  * Condition that defines the employees that will be evaluated (participants). Calculated when the review process starts
5480
5890
  */
5481
5891
  target_strategy?: {
5482
- [key: string]: unknown;
5892
+ strategy: 'all_employees' | 'by_locations' | 'by_teams' | 'by_employees' | 'manual_selection';
5893
+ arguments?: Array<string>;
5483
5894
  };
5484
5895
  /**
5485
5896
  * Review types that will be assigned to the review process. It'll be used to create the evaluations when the process starts
@@ -5505,13 +5916,14 @@ export type PerformanceReviewProcess = {
5505
5916
  * Action plans help track goal progress, and facilitate performance review discussions.
5506
5917
  */
5507
5918
  agreements_configuration: {
5508
- [key: string]: unknown;
5919
+ enabled: boolean;
5920
+ esignature_enabled: boolean;
5509
5921
  };
5510
5922
  /**
5511
5923
  * Assess employees based on their assigned competencies through both manager and self-reviews. Ensure roles with designated competencies are properly set up.
5512
5924
  */
5513
5925
  competencies_assessments_configuration: {
5514
- [key: string]: unknown;
5926
+ enabled: boolean;
5515
5927
  };
5516
5928
  /**
5517
5929
  * Date when the last bulk reminder was sent
@@ -5547,7 +5959,8 @@ export type PerformanceReviewProcessCustomTemplate = {
5547
5959
  * Condition that defines the employees that will be evaluated (participants). Calculated when the review process starts
5548
5960
  */
5549
5961
  target_strategy?: {
5550
- [key: string]: unknown;
5962
+ strategy: 'all_employees' | 'by_locations' | 'by_teams' | 'by_employees' | 'manual_selection';
5963
+ arguments?: Array<string>;
5551
5964
  };
5552
5965
  /**
5553
5966
  * Review types that will be assigned to the review process. It'll be used to create the evaluations when the process starts
@@ -5569,7 +5982,9 @@ export type PerformanceReviewProcessCustomTemplate = {
5569
5982
  * Visibility settings for the custom template
5570
5983
  */
5571
5984
  visibility_settings?: {
5572
- [key: string]: unknown;
5985
+ restrict_answers_visibility_to_reportees: boolean;
5986
+ early_access_to_answers_for_managers: boolean;
5987
+ anonymous_peer_evaluation_for_target: boolean;
5573
5988
  };
5574
5989
  /**
5575
5990
  * Creation date of the template
@@ -5624,48 +6039,226 @@ export type PerformanceReviewQuestionnairesByStrategy = {
5624
6039
  /**
5625
6040
  * Scoring range used in rating questions
5626
6041
  */
5627
- default_rating_scale: Array<unknown>;
6042
+ default_rating_scale: Array<{
6043
+ value: number;
6044
+ text: string;
6045
+ }>;
5628
6046
  /**
5629
6047
  * Questionnaire for self evaluation
5630
6048
  */
5631
6049
  self_questionnaire?: {
5632
- [key: string]: unknown;
6050
+ reviewer_strategy: 'self' | 'manager' | 'direct_reports' | 'peers';
6051
+ content: Array<{
6052
+ uuid: string;
6053
+ type: 'question' | 'section';
6054
+ section_title?: string;
6055
+ questions: Array<{
6056
+ uuid: string;
6057
+ mandatory: boolean;
6058
+ with_comment?: boolean;
6059
+ title: string;
6060
+ answer_type: 'text' | 'rating' | 'number' | 'multiple_choice';
6061
+ scale?: Array<{
6062
+ value: number;
6063
+ text: string;
6064
+ }>;
6065
+ max_choices?: number;
6066
+ choice_options?: Array<string>;
6067
+ metadata?: {
6068
+ competency_id?: string;
6069
+ competency_level_id?: string;
6070
+ competency_level_name?: string;
6071
+ competency_level_description?: string;
6072
+ };
6073
+ description?: string;
6074
+ }>;
6075
+ }>;
5633
6076
  };
5634
6077
  /**
5635
6078
  * Questionnaire for manager evaluation
5636
6079
  */
5637
6080
  manager_questionnaire?: {
5638
- [key: string]: unknown;
6081
+ reviewer_strategy: 'self' | 'manager' | 'direct_reports' | 'peers';
6082
+ content: Array<{
6083
+ uuid: string;
6084
+ type: 'question' | 'section';
6085
+ section_title?: string;
6086
+ questions: Array<{
6087
+ uuid: string;
6088
+ mandatory: boolean;
6089
+ with_comment?: boolean;
6090
+ title: string;
6091
+ answer_type: 'text' | 'rating' | 'number' | 'multiple_choice';
6092
+ scale?: Array<{
6093
+ value: number;
6094
+ text: string;
6095
+ }>;
6096
+ max_choices?: number;
6097
+ choice_options?: Array<string>;
6098
+ metadata?: {
6099
+ competency_id?: string;
6100
+ competency_level_id?: string;
6101
+ competency_level_name?: string;
6102
+ competency_level_description?: string;
6103
+ };
6104
+ description?: string;
6105
+ }>;
6106
+ }>;
5639
6107
  };
5640
6108
  /**
5641
6109
  * Questionnaire for direct report evaluation
5642
6110
  */
5643
6111
  direct_report_questionnaire?: {
5644
- [key: string]: unknown;
6112
+ reviewer_strategy: 'self' | 'manager' | 'direct_reports' | 'peers';
6113
+ content: Array<{
6114
+ uuid: string;
6115
+ type: 'question' | 'section';
6116
+ section_title?: string;
6117
+ questions: Array<{
6118
+ uuid: string;
6119
+ mandatory: boolean;
6120
+ with_comment?: boolean;
6121
+ title: string;
6122
+ answer_type: 'text' | 'rating' | 'number' | 'multiple_choice';
6123
+ scale?: Array<{
6124
+ value: number;
6125
+ text: string;
6126
+ }>;
6127
+ max_choices?: number;
6128
+ choice_options?: Array<string>;
6129
+ metadata?: {
6130
+ competency_id?: string;
6131
+ competency_level_id?: string;
6132
+ competency_level_name?: string;
6133
+ competency_level_description?: string;
6134
+ };
6135
+ description?: string;
6136
+ }>;
6137
+ }>;
5645
6138
  };
5646
6139
  /**
5647
6140
  * Questionnaire for peers evaluation
5648
6141
  */
5649
6142
  peers_questionnaire?: {
5650
- [key: string]: unknown;
6143
+ reviewer_strategy: 'self' | 'manager' | 'direct_reports' | 'peers';
6144
+ content: Array<{
6145
+ uuid: string;
6146
+ type: 'question' | 'section';
6147
+ section_title?: string;
6148
+ questions: Array<{
6149
+ uuid: string;
6150
+ mandatory: boolean;
6151
+ with_comment?: boolean;
6152
+ title: string;
6153
+ answer_type: 'text' | 'rating' | 'number' | 'multiple_choice';
6154
+ scale?: Array<{
6155
+ value: number;
6156
+ text: string;
6157
+ }>;
6158
+ max_choices?: number;
6159
+ choice_options?: Array<string>;
6160
+ metadata?: {
6161
+ competency_id?: string;
6162
+ competency_level_id?: string;
6163
+ competency_level_name?: string;
6164
+ competency_level_description?: string;
6165
+ };
6166
+ description?: string;
6167
+ }>;
6168
+ }>;
5651
6169
  };
5652
6170
  /**
5653
6171
  * Questionnaire included in the end of self evaluation to evaluate the employee performance
5654
6172
  */
5655
6173
  employee_score_self_questionnaire?: {
5656
- [key: string]: unknown;
6174
+ reviewer_strategy: 'self' | 'manager' | 'direct_reports' | 'peers';
6175
+ content: Array<{
6176
+ uuid: string;
6177
+ type: 'question' | 'section';
6178
+ section_title?: string;
6179
+ questions: Array<{
6180
+ uuid: string;
6181
+ mandatory: boolean;
6182
+ with_comment?: boolean;
6183
+ title: string;
6184
+ answer_type: 'text' | 'rating' | 'number' | 'multiple_choice';
6185
+ scale?: Array<{
6186
+ value: number;
6187
+ text: string;
6188
+ }>;
6189
+ max_choices?: number;
6190
+ choice_options?: Array<string>;
6191
+ metadata?: {
6192
+ competency_id?: string;
6193
+ competency_level_id?: string;
6194
+ competency_level_name?: string;
6195
+ competency_level_description?: string;
6196
+ };
6197
+ description?: string;
6198
+ }>;
6199
+ }>;
5657
6200
  };
5658
6201
  /**
5659
6202
  * Questionnaire included in the end of manager evaluation to evaluate the employee performance
5660
6203
  */
5661
6204
  employee_score_manager_questionnaire?: {
5662
- [key: string]: unknown;
6205
+ reviewer_strategy: 'self' | 'manager' | 'direct_reports' | 'peers';
6206
+ content: Array<{
6207
+ uuid: string;
6208
+ type: 'question' | 'section';
6209
+ section_title?: string;
6210
+ questions: Array<{
6211
+ uuid: string;
6212
+ mandatory: boolean;
6213
+ with_comment?: boolean;
6214
+ title: string;
6215
+ answer_type: 'text' | 'rating' | 'number' | 'multiple_choice';
6216
+ scale?: Array<{
6217
+ value: number;
6218
+ text: string;
6219
+ }>;
6220
+ max_choices?: number;
6221
+ choice_options?: Array<string>;
6222
+ metadata?: {
6223
+ competency_id?: string;
6224
+ competency_level_id?: string;
6225
+ competency_level_name?: string;
6226
+ competency_level_description?: string;
6227
+ };
6228
+ description?: string;
6229
+ }>;
6230
+ }>;
5663
6231
  };
5664
6232
  /**
5665
6233
  * Questionnaire included in the end of manager evaluation to evaluate the employee potential
5666
6234
  */
5667
6235
  employee_potential_score_manager_questionnaire?: {
5668
- [key: string]: unknown;
6236
+ reviewer_strategy: 'self' | 'manager' | 'direct_reports' | 'peers';
6237
+ content: Array<{
6238
+ uuid: string;
6239
+ type: 'question' | 'section';
6240
+ section_title?: string;
6241
+ questions: Array<{
6242
+ uuid: string;
6243
+ mandatory: boolean;
6244
+ with_comment?: boolean;
6245
+ title: string;
6246
+ answer_type: 'text' | 'rating' | 'number' | 'multiple_choice';
6247
+ scale?: Array<{
6248
+ value: number;
6249
+ text: string;
6250
+ }>;
6251
+ max_choices?: number;
6252
+ choice_options?: Array<string>;
6253
+ metadata?: {
6254
+ competency_id?: string;
6255
+ competency_level_id?: string;
6256
+ competency_level_name?: string;
6257
+ competency_level_description?: string;
6258
+ };
6259
+ description?: string;
6260
+ }>;
6261
+ }>;
5669
6262
  };
5670
6263
  };
5671
6264
  export type PerformanceReviewVisibilitySetting = {
@@ -6021,7 +6614,14 @@ export type ProcurementPurchaseOrder = {
6021
6614
  * Total cost of the purchase order
6022
6615
  */
6023
6616
  cost: {
6024
- [key: string]: unknown;
6617
+ /**
6618
+ * Total cost in cents (smallest currency unit)
6619
+ */
6620
+ cents: number;
6621
+ /**
6622
+ * Currency code in ISO 4217 format
6623
+ */
6624
+ currency: string;
6025
6625
  };
6026
6626
  /**
6027
6627
  * Date when the purchase order was created
@@ -6062,11 +6662,30 @@ export type ProcurementPurchaseOrder = {
6062
6662
  /**
6063
6663
  * Custom header field values, addressed by the field_key of the purchase order's PINNED template version, as an array of `{field_key, value}` pairs — exactly the shape the update endpoint accepts, so a GET -> modify -> PUT roundtrip works verbatim. Predefined fields (vendor, order_date, currency, due_date, payment_method, legal_entity) surface as top-level parameters instead, and computed or hidden values never appear (they are preserved server-side on update). Null for purchase orders without a template version.
6064
6664
  */
6065
- header_field_values_by_key?: Array<unknown>;
6665
+ header_field_values_by_key?: Array<{
6666
+ field_key: string;
6667
+ value?: string;
6668
+ }>;
6066
6669
  /**
6067
6670
  * Line items with their field values addressed by the field_key of the purchase order's PINNED template version — the same shape the update endpoint accepts: modify and send the whole set back. Rows are addressed by id (rows without an id are created, persisted rows missing from the set are deleted). Null for purchase orders without a template version.
6068
6671
  */
6069
- line_items_by_key?: Array<unknown>;
6672
+ line_items_by_key?: Array<{
6673
+ /**
6674
+ * Identifier of the line item row.
6675
+ */
6676
+ id: string;
6677
+ /**
6678
+ * Zero-based position of the line item.
6679
+ */
6680
+ position: number;
6681
+ /**
6682
+ * Line-item values as `{field_key, value}` pairs.
6683
+ */
6684
+ fields: Array<{
6685
+ field_key: string;
6686
+ value?: string;
6687
+ }>;
6688
+ }>;
6070
6689
  };
6071
6690
  export type ProcurementPurchaseRequest = {
6072
6691
  /**
@@ -6089,7 +6708,14 @@ export type ProcurementPurchaseRequest = {
6089
6708
  * Total cost of the purchase request
6090
6709
  */
6091
6710
  cost: {
6092
- [key: string]: unknown;
6711
+ /**
6712
+ * Total cost in cents (smallest currency unit)
6713
+ */
6714
+ cents: number;
6715
+ /**
6716
+ * Currency code in ISO 4217 format
6717
+ */
6718
+ currency: string;
6093
6719
  };
6094
6720
  /**
6095
6721
  * Date when the purchase request was created
@@ -6933,7 +7559,16 @@ export type TimeoffAllowance = {
6933
7559
  /**
6934
7560
  * The tenure periods associated with the allowance.
6935
7561
  */
6936
- tenure_periods: Array<unknown>;
7562
+ tenure_periods: Array<{
7563
+ id: string;
7564
+ period_type: 'months' | 'years';
7565
+ period_length?: number;
7566
+ adjustment_in_cents?: number;
7567
+ balance_type: 'fixed_balance' | 'time_worked_based';
7568
+ time_worked_based_hours_accrued_in_cents?: number;
7569
+ time_worked_based_per_hours_worked_in_cents?: number;
7570
+ max_cap_in_cents?: number;
7571
+ }>;
6937
7572
  /**
6938
7573
  * Whether the allowance has tenure periods enabled or not.
6939
7574
  */
@@ -7021,11 +7656,60 @@ export type TimeoffAllowanceStatsNew = {
7021
7656
  /**
7022
7657
  * Array of cycle objects describing each accrual period for the allowance.
7023
7658
  */
7024
- cycles: Array<unknown>;
7659
+ cycles: Array<{
7660
+ id: string;
7661
+ start_at: string;
7662
+ end_at: string;
7663
+ regular_start_at: string;
7664
+ regular_end_at: string;
7665
+ allowance_id: string;
7666
+ }>;
7025
7667
  /**
7026
7668
  * Carry over entries between cycles, typed as an array of CycleCarryOver value objects.
7027
7669
  */
7028
- cycle_carry_overs: Array<unknown>;
7670
+ cycle_carry_overs: Array<{
7671
+ /**
7672
+ * The date on which the source cycle ended, from which these carry-over units originate.
7673
+ */
7674
+ from_cycle_ending_on: string;
7675
+ /**
7676
+ * Number of months after the cycle end date before carry-over units expire. Null means no expiry.
7677
+ */
7678
+ expire_in_months?: number;
7679
+ /**
7680
+ * When true, carry-over units never expire regardless of expire_in_months.
7681
+ */
7682
+ non_expire: boolean;
7683
+ /**
7684
+ * Total carry-over units available from the source cycle (days or hours depending on allowance type).
7685
+ */
7686
+ total: string;
7687
+ /**
7688
+ * Individual leave entries that consumed carry-over units.
7689
+ */
7690
+ used: Array<{
7691
+ /**
7692
+ * Calendar day on which the leave was taken.
7693
+ */
7694
+ date: string;
7695
+ /**
7696
+ * Units consumed on that day (days or hours).
7697
+ */
7698
+ amount: string;
7699
+ }>;
7700
+ /**
7701
+ * Total carry-over units accumulated (may differ from total when caps apply).
7702
+ */
7703
+ accumulated: string;
7704
+ /**
7705
+ * Carry-over units that have expired.
7706
+ */
7707
+ expired: string;
7708
+ /**
7709
+ * Carry-over units already consumed by leave.
7710
+ */
7711
+ taken: string;
7712
+ }>;
7029
7713
  /**
7030
7714
  * Total carried over units accumulated from previous cycles.
7031
7715
  */
@@ -7107,7 +7791,16 @@ export type TimeoffBlockedPeriodsPolicy = {
7107
7791
  /**
7108
7792
  * The tenure periods associated with the allowance.
7109
7793
  */
7110
- time_periods: Array<unknown>;
7794
+ time_periods: Array<{
7795
+ id: string;
7796
+ policy_id: string;
7797
+ name: string;
7798
+ period_type: string;
7799
+ start_on?: string;
7800
+ finish_on?: string;
7801
+ duration?: number;
7802
+ duration_unit?: string;
7803
+ }>;
7111
7804
  /**
7112
7805
  * Type of access group
7113
7806
  */
@@ -7206,7 +7899,14 @@ export type TimeoffLeave = {
7206
7899
  * Per-day breakdown of the leave's workable and used units, keyed by calendar date. Populated only when the read requests `include_duration_by_day=true`; null otherwise.
7207
7900
  */
7208
7901
  duration_by_day_attributes?: {
7209
- [key: string]: unknown;
7902
+ workable_units_by_day: {
7903
+ days: unknown;
7904
+ hours: unknown;
7905
+ };
7906
+ used_units_by_day: {
7907
+ days: unknown;
7908
+ hours: unknown;
7909
+ };
7210
7910
  };
7211
7911
  /**
7212
7912
  * Number of days taken for paid leave. Reflects the summed per-day used total when the per-day breakdown is computed; otherwise the leave's calendar-day duration.
@@ -7351,7 +8051,21 @@ export type TimeoffPolicyTimeline = {
7351
8051
  employee_id: string;
7352
8052
  start_limit_date: string;
7353
8053
  end_limit_date: string;
7354
- items: Array<unknown>;
8054
+ items: Array<{
8055
+ policy_assignment: {
8056
+ id?: string;
8057
+ timeoff_policy_id: string;
8058
+ timeoff_policy_name?: string;
8059
+ is_initial?: boolean;
8060
+ employee_id: string;
8061
+ effective_at: string;
8062
+ end_effective_at?: string;
8063
+ };
8064
+ start_at: string;
8065
+ end_at: string;
8066
+ is_first_item: boolean;
8067
+ is_last_item: boolean;
8068
+ }>;
7355
8069
  /**
7356
8070
  * This is the employee id since it's a virtual entity
7357
8071
  */
@@ -7861,7 +8575,18 @@ export type WorkScheduleSchedule = {
7861
8575
  /**
7862
8576
  * Overlap periods that make up the schedule
7863
8577
  */
7864
- periods: Array<unknown>;
8578
+ periods: Array<{
8579
+ id: string;
8580
+ default: boolean;
8581
+ schedule_id: string;
8582
+ start_month: number;
8583
+ start_day: number;
8584
+ end_month: number;
8585
+ end_day: number;
8586
+ start_date: string;
8587
+ end_date: string;
8588
+ schedule_type: string;
8589
+ }>;
7865
8590
  };
7866
8591
  export type BankingBankAccountNumber = {
7867
8592
  /**
@@ -8378,7 +9103,10 @@ export type PostApi20261001ResourcesAtsApplicationsData = {
8378
9103
  /**
8379
9104
  * answers
8380
9105
  */
8381
- answers?: Array<unknown>;
9106
+ answers?: Array<{
9107
+ ats_question_id: string;
9108
+ value?: unknown;
9109
+ }>;
8382
9110
  };
8383
9111
  path?: never;
8384
9112
  query?: never;
@@ -8532,7 +9260,10 @@ export type PostApi20261001ResourcesAtsApplicationsApplyData = {
8532
9260
  /**
8533
9261
  * answers
8534
9262
  */
8535
- answers?: Array<unknown>;
9263
+ answers?: Array<{
9264
+ ats_question_id: string;
9265
+ value?: unknown;
9266
+ }>;
8536
9267
  };
8537
9268
  path?: never;
8538
9269
  query?: never;
@@ -9356,7 +10087,10 @@ export type PostApi20261001ResourcesAtsQuestionsData = {
9356
10087
  /**
9357
10088
  * options for the question.
9358
10089
  */
9359
- options?: Array<unknown>;
10090
+ options?: Array<{
10091
+ text: string;
10092
+ disqualifies?: boolean;
10093
+ }>;
9360
10094
  };
9361
10095
  path?: never;
9362
10096
  query?: never;
@@ -9430,7 +10164,10 @@ export type PutApi20261001ResourcesAtsQuestionsByIdData = {
9430
10164
  /**
9431
10165
  * options for the question.
9432
10166
  */
9433
- options?: Array<unknown>;
10167
+ options?: Array<{
10168
+ text: string;
10169
+ disqualifies?: boolean;
10170
+ }>;
9434
10171
  };
9435
10172
  path: {
9436
10173
  /**
@@ -14244,7 +14981,9 @@ export type GetApi20261001ResourcesExpensesExpensablesData = {
14244
14981
  'ids[]'?: Array<string>;
14245
14982
  company_id?: string;
14246
14983
  'group_ids[]'?: Array<string>;
14247
- 'by_resources[]'?: Array<unknown>;
14984
+ 'by_resources[]'?: Array<{
14985
+ [key: string]: unknown;
14986
+ }>;
14248
14987
  'employee_ids[]'?: Array<string>;
14249
14988
  'reporter_ids[]'?: Array<string>;
14250
14989
  'status[]'?: 'pending' | 'changes_requested' | 'approved' | 'paid' | 'rejected' | 'reversed' | 'draft' | 'in_payroll' | 'sent_to_pay';
@@ -14926,7 +15665,30 @@ export type PostApi20261001ResourcesFinanceContactsData = {
14926
15665
  * The address object containing street, city, etc.
14927
15666
  */
14928
15667
  address: {
14929
- [key: string]: unknown;
15668
+ /**
15669
+ * Street address line 1.
15670
+ */
15671
+ line1: string;
15672
+ /**
15673
+ * Street address line 2 or additional info.
15674
+ */
15675
+ line2?: string;
15676
+ /**
15677
+ * City where the Contact is located.
15678
+ */
15679
+ city: string;
15680
+ /**
15681
+ * Postal or ZIP code.
15682
+ */
15683
+ postal_code: string;
15684
+ /**
15685
+ * State or region for the Contact.
15686
+ */
15687
+ state: string;
15688
+ /**
15689
+ * Two-letter ISO country code.
15690
+ */
15691
+ country_code: string;
14930
15692
  };
14931
15693
  /**
14932
15694
  * International Bank Account Number if provided.
@@ -15008,7 +15770,30 @@ export type PutApi20261001ResourcesFinanceContactsByIdData = {
15008
15770
  * The address object containing street, city, etc. Example: { "city": "East Ariana", "country_code": "SC", "line1": "93402 Spencer Points", "line2": "Apt. 555", "postal_code": "61471", "state": "Oklahoma" }
15009
15771
  */
15010
15772
  address: {
15011
- [key: string]: unknown;
15773
+ /**
15774
+ * Street address line 1.
15775
+ */
15776
+ line1: string;
15777
+ /**
15778
+ * Street address line 2 or additional info.
15779
+ */
15780
+ line2?: string;
15781
+ /**
15782
+ * City where the Contact is located.
15783
+ */
15784
+ city: string;
15785
+ /**
15786
+ * Postal or ZIP code.
15787
+ */
15788
+ postal_code: string;
15789
+ /**
15790
+ * State or region for the Contact.
15791
+ */
15792
+ state: string;
15793
+ /**
15794
+ * Two-letter ISO country code.
15795
+ */
15796
+ country_code: string;
15012
15797
  };
15013
15798
  /**
15014
15799
  * The website of the Contact.
@@ -15177,7 +15962,13 @@ export type GetApi20261001ResourcesFinanceCostCenterMembershipsResponse = GetApi
15177
15962
  export type PostApi20261001ResourcesFinanceCostCenterMembershipsBulkCreateUpdateData = {
15178
15963
  body?: {
15179
15964
  employee_id: string;
15180
- memberships: Array<unknown>;
15965
+ memberships: Array<{
15966
+ id?: string;
15967
+ cost_center_id: string;
15968
+ start_date: string;
15969
+ end_date?: string;
15970
+ percentage: number;
15971
+ }>;
15181
15972
  company_id: string;
15182
15973
  };
15183
15974
  path?: never;
@@ -15293,7 +16084,14 @@ export type PostApi20261001ResourcesFinanceFinancialDocumentsData = {
15293
16084
  /**
15294
16085
  * Purchase-invoice line items. When present they own the document totals.
15295
16086
  */
15296
- 'line_items[]'?: Array<unknown>;
16087
+ 'line_items[]'?: Array<{
16088
+ id?: string;
16089
+ description: string;
16090
+ quantity: number;
16091
+ unit_price_cents: number;
16092
+ tax_rate_id?: string;
16093
+ discount_percentage?: number;
16094
+ }>;
15297
16095
  /**
15298
16096
  * The document file to upload, the binary file. Required for purchase documents.
15299
16097
  */
@@ -15369,11 +16167,28 @@ export type PutApi20261001ResourcesFinanceFinancialDocumentsByIdData = {
15369
16167
  /**
15370
16168
  * Tax breakdown, as returned by the read endpoint — send back what you read (adjusted to your changes). Replaced as sent; ignored when line_items are provided, since the line items own the totals.
15371
16169
  */
15372
- taxes: Array<unknown>;
16170
+ taxes: Array<{
16171
+ amount_cents?: number;
16172
+ percentage?: number;
16173
+ base_amount_cents?: number;
16174
+ type?: 'vat' | 'personal_income';
16175
+ tax_type_id?: string;
16176
+ tax_type_name?: string;
16177
+ tax_rates?: Array<{
16178
+ percentage: number;
16179
+ }>;
16180
+ }>;
15373
16181
  /**
15374
16182
  * Purchase-invoice line items. Rows are addressed by id, never by position: rows carrying an id update the matching line item, rows without an id create new ones, and persisted rows missing from the set are deleted. Send an empty array to remove all line items, or omit the field entirely to leave them untouched. When present they own the document totals.
15375
16183
  */
15376
- line_items?: Array<unknown>;
16184
+ line_items?: Array<{
16185
+ id?: string;
16186
+ description: string;
16187
+ quantity: number;
16188
+ unit_price_cents: number;
16189
+ tax_rate_id?: string;
16190
+ discount_percentage?: number;
16191
+ }>;
15377
16192
  /**
15378
16193
  * Legal entity identifier of the financial document.
15379
16194
  */
@@ -15473,7 +16288,24 @@ export type PostApi20261001ResourcesFinanceJournalEntriesData = {
15473
16288
  /**
15474
16289
  * Array of journal lines for this entry, example: [{"account_id": 9876, "debit_amount_cents": 0, "credit_amount_cents": 100, "external_id": "LINE-001"}, {"account_id": 9876, "debit_amount_cents": 100, "credit_amount_cents": 0, "external_id": "LINE-002"}]
15475
16290
  */
15476
- lines: Array<unknown>;
16291
+ lines: Array<{
16292
+ /**
16293
+ * The debit amount in cents
16294
+ */
16295
+ debit_amount_cents: number;
16296
+ /**
16297
+ * The credit amount in cents
16298
+ */
16299
+ credit_amount_cents: number;
16300
+ /**
16301
+ * External identifier for the journal line
16302
+ */
16303
+ external_id?: string;
16304
+ /**
16305
+ * ID of the associated account
16306
+ */
16307
+ account_id: string;
16308
+ }>;
15477
16309
  /**
15478
16310
  * Date of the associate source
15479
16311
  */
@@ -16172,7 +17004,30 @@ export type PostApi20261001ResourcesIntegrationsSyncableSyncRunsBulkUpsertData =
16172
17004
  /**
16173
17005
  * Outcome of each item the external system discovered/processed for this run. Rows are matched by (sync_run_id, external_identifier, syncable_type).
16174
17006
  */
16175
- items: Array<unknown>;
17007
+ items: Array<{
17008
+ /**
17009
+ * Identifier of the item in the external system
17010
+ */
17011
+ external_identifier: string;
17012
+ /**
17013
+ * The Factorial resource type this item maps to
17014
+ */
17015
+ syncable_type: 'compensationscompensation' | 'expensesexpensable' | 'employeeupdatesleave' | 'employeeupdatesworkedtime' | 'financecontact';
17016
+ /**
17017
+ * Outcome of processing the item
17018
+ */
17019
+ status: 'success' | 'failed' | 'invalid';
17020
+ /**
17021
+ * The Factorial record this item resolved to (link). Only fills a missing link; re-linking to a different record is rejected.
17022
+ */
17023
+ syncable_id?: string;
17024
+ /**
17025
+ * Error or validation messages for failed rows
17026
+ */
17027
+ error_messages?: {
17028
+ [key: string]: unknown;
17029
+ };
17030
+ }>;
16176
17031
  };
16177
17032
  path?: never;
16178
17033
  query?: never;
@@ -17056,9 +17911,9 @@ export type GetApi20261001ResourcesMarketplaceInstallationSettingsData = {
17056
17911
  */
17057
17912
  company_id: string;
17058
17913
  /**
17059
- * ID of the integration
17914
+ * UUID of the integration
17060
17915
  */
17061
- integration_id: string;
17916
+ integration_uuid: string;
17062
17917
  };
17063
17918
  url: '/api/2026-10-01/resources/marketplace/installation_settings';
17064
17919
  };
@@ -19006,7 +19861,10 @@ export type PostApi20261001ResourcesPerformanceReviewQuestionnaireByStrategiesUp
19006
19861
  * - `value`: Range value (0 to 10)
19007
19862
  * - `text`: Range description
19008
19863
  */
19009
- default_rating_scale: Array<unknown>;
19864
+ default_rating_scale: Array<{
19865
+ value: number;
19866
+ text: string;
19867
+ }>;
19010
19868
  };
19011
19869
  path?: never;
19012
19870
  query?: never;
@@ -19048,7 +19906,31 @@ export type PostApi20261001ResourcesPerformanceReviewQuestionnaireByStrategiesUp
19048
19906
  * - `max_choices`: Maximum number of choices. If `1`, it'll be a single choice question
19049
19907
  * - `choice_options`: List of options for single and multiple choice questions
19050
19908
  */
19051
- questionnaire_content: Array<unknown>;
19909
+ questionnaire_content: Array<{
19910
+ uuid: string;
19911
+ type: 'question' | 'section';
19912
+ section_title?: string;
19913
+ questions: Array<{
19914
+ uuid: string;
19915
+ mandatory: boolean;
19916
+ with_comment?: boolean;
19917
+ title: string;
19918
+ answer_type: 'text' | 'rating' | 'number' | 'multiple_choice';
19919
+ scale?: Array<{
19920
+ value: number;
19921
+ text: string;
19922
+ }>;
19923
+ max_choices?: number;
19924
+ choice_options?: Array<string>;
19925
+ metadata?: {
19926
+ competency_id?: string;
19927
+ competency_level_id?: string;
19928
+ competency_level_name?: string;
19929
+ competency_level_description?: string;
19930
+ };
19931
+ description?: string;
19932
+ }>;
19933
+ }>;
19052
19934
  };
19053
19935
  path?: never;
19054
19936
  query?: never;
@@ -19852,11 +20734,32 @@ export type PostApi20261001ResourcesProcurementPurchaseOrdersData = {
19852
20734
  /**
19853
20735
  * Header field values of the ACTIVE purchase order template version, as an array of `{field_key, value}` pairs. Only custom (non-predefined, non-computed) field keys are accepted; predefined fields (vendor, order_date, currency, due_date, payment_method, legal_entity) are populated from the corresponding top-level parameters. Reference fields (employee, cost_center, project, tax_rate, team) take the referenced internal id as the value. If a field_key appears more than once, the last occurrence wins.
19854
20736
  */
19855
- header_field_values?: Array<unknown>;
20737
+ header_field_values?: Array<{
20738
+ /**
20739
+ * Stable field key of the template field.
20740
+ */
20741
+ field_key: string;
20742
+ /**
20743
+ * Value for the field.
20744
+ */
20745
+ value?: string;
20746
+ }>;
19856
20747
  /**
19857
20748
  * Line items of the purchase order, each carrying its values as an array of `{field_key, value}` pairs addressed by the line-item field keys of the ACTIVE template version (e.g. concept, quantity, unit_price, tax_rate). Computed keys (subtotal, tax_amount, total, discount_amount) are derived server-side and rejected as input.
19858
20749
  */
19859
- line_items?: Array<unknown>;
20750
+ line_items?: Array<{
20751
+ /**
20752
+ * Zero-based position of the line item.
20753
+ */
20754
+ position: number;
20755
+ /**
20756
+ * Line-item values as `{field_key, value}` pairs.
20757
+ */
20758
+ fields: Array<{
20759
+ field_key: string;
20760
+ value?: string;
20761
+ }>;
20762
+ }>;
19860
20763
  };
19861
20764
  path?: never;
19862
20765
  query?: never;
@@ -19921,7 +20824,14 @@ export type PutApi20261001ResourcesProcurementPurchaseOrdersByIdData = {
19921
20824
  * Total cost of the purchase order, as returned by the read endpoint — send back what you read. The currency is applied as sent; on template-versioned purchase orders the amounts are owned by the line items and recomputed server-side.
19922
20825
  */
19923
20826
  cost: {
19924
- [key: string]: unknown;
20827
+ /**
20828
+ * Total cost in cents (smallest currency unit).
20829
+ */
20830
+ cents: number;
20831
+ /**
20832
+ * Currency code in ISO 4217 format.
20833
+ */
20834
+ currency: string;
19925
20835
  };
19926
20836
  /**
19927
20837
  * Identifier of the vendor (Finance contact) by internal Factorial id. Null clears the vendor on template-versioned purchase orders.
@@ -19938,11 +20848,21 @@ export type PutApi20261001ResourcesProcurementPurchaseOrdersByIdData = {
19938
20848
  /**
19939
20849
  * Header field values of the purchase order's template version, as an array of `{field_key, value}` pairs — the same shape the read returns. Replaced as sent: send the complete set; an empty array deletes all custom header values, and omitting the field leaves them untouched. Only custom field keys are accepted; predefined fields (vendor, order_date, currency, due_date, payment_method, legal_entity) come from the corresponding top-level parameters. Reference fields take the referenced id as the value. If a field_key appears more than once, the last occurrence wins.
19940
20850
  */
19941
- header_field_values_by_key?: Array<unknown>;
20851
+ header_field_values_by_key?: Array<{
20852
+ field_key: string;
20853
+ value?: string;
20854
+ }>;
19942
20855
  /**
19943
20856
  * Line items of the purchase order, replaced as sent — the same shape the read returns. Rows with an id update the matching line item, rows without an id create new ones, and persisted rows missing from the set are deleted. Send an empty array to remove all line items, or omit the field to leave them untouched. Values travel as `{field_key, value}` pairs; computed keys (subtotal, tax_amount, total, discount_amount) are derived server-side and rejected as input.
19944
20857
  */
19945
- line_items_by_key?: Array<unknown>;
20858
+ line_items_by_key?: Array<{
20859
+ id?: string;
20860
+ position: number;
20861
+ fields: Array<{
20862
+ field_key: string;
20863
+ value?: string;
20864
+ }>;
20865
+ }>;
19946
20866
  };
19947
20867
  path: {
19948
20868
  /**
@@ -21585,7 +22505,21 @@ export type PostApi20261001ResourcesProjectManagementTimeRecordsBulkDeleteRespon
21585
22505
  export type PostApi20261001ResourcesProjectManagementTimeRecordsBulkDeleteResponse = PostApi20261001ResourcesProjectManagementTimeRecordsBulkDeleteResponses[keyof PostApi20261001ResourcesProjectManagementTimeRecordsBulkDeleteResponses];
21586
22506
  export type PostApi20261001ResourcesProjectManagementTimeRecordsBulkProcessData = {
21587
22507
  body?: {
21588
- items: Array<unknown>;
22508
+ items: Array<{
22509
+ time_record_id?: string;
22510
+ attendance_shift_id?: string;
22511
+ project_worker_id?: string;
22512
+ subproject_id?: string;
22513
+ project_task_id?: string;
22514
+ /**
22515
+ * Imputed minutes for the time record (used when no attendance shift is provided)
22516
+ */
22517
+ imputed_minutes?: number;
22518
+ /**
22519
+ * Reference date for the time record (used when no attendance shift is provided)
22520
+ */
22521
+ date?: string;
22522
+ }>;
21589
22523
  };
21590
22524
  path?: never;
21591
22525
  query?: never;
@@ -21790,11 +22724,87 @@ export type PostApi20261001ResourcesShiftManagementShiftsBulkCreateData = {
21790
22724
  /**
21791
22725
  * Array of shift objects to create. Each shift object represents a scheduled work period for an employee
21792
22726
  */
21793
- shifts: Array<unknown>;
22727
+ shifts: Array<{
22728
+ /**
22729
+ * Display name of the shift. If not explicitly set, falls back to the default shift title or template week name
22730
+ */
22731
+ name?: string;
22732
+ /**
22733
+ * Timestamp indicating when the shift starts. Required parameter
22734
+ */
22735
+ start_at: string;
22736
+ /**
22737
+ * Timestamp indicating when the shift ends. Required parameter
22738
+ */
22739
+ end_at: string;
22740
+ /**
22741
+ * Optional notes or comments about the shift, visible to managers and schedulers
22742
+ */
22743
+ notes?: string;
22744
+ /**
22745
+ * Indicates whether this shift counts as extra hours beyond the employee's regular schedule. Used for overtime calculations
22746
+ */
22747
+ extra_hours?: boolean;
22748
+ /**
22749
+ * Initial state of the shift. 'draft' means the shift is not yet visible to employees, 'published' means it's visible and confirmed, 'backup' indicates a backup shift that can be replaced. Default is 'draft'
22750
+ */
22751
+ state: 'draft' | 'published' | 'backup';
22752
+ /**
22753
+ * Indicates how the shift is created. 'manual' means it's created by a user, 'automatic' means it's generated by the system (e.g., from templates or scheduling algorithms). Default is 'manual'
22754
+ */
22755
+ creation_mode: 'manual' | 'automatic';
22756
+ /**
22757
+ * Identifier of the employee assigned to this shift. Required parameter
22758
+ */
22759
+ employee_id: string;
22760
+ /**
22761
+ * Identifier of the location where the shift takes place. Can be null if the shift uses the employee's default location
22762
+ */
22763
+ location_id?: string;
22764
+ /**
22765
+ * Identifier of the specific work area within the location where the shift occurs. Work areas allow further subdivision of locations
22766
+ */
22767
+ work_area_id?: string;
22768
+ /**
22769
+ * Identifier of the company that owns this shift. Required parameter
22770
+ */
22771
+ company_id: string;
22772
+ /**
22773
+ * Identifier of the default shift template used to create this shift. Default shifts provide reusable shift patterns (start/end times, titles)
22774
+ */
22775
+ default_shift_id?: string;
22776
+ /**
22777
+ * Identifier of the template week used to generate this shift. Template weeks allow bulk creation of shifts following a pattern
22778
+ */
22779
+ template_week_id?: string;
22780
+ /**
22781
+ * Identifier of the unassigned shift placeholder that is being converted to create this shift. Unassigned shifts are temporary placeholders
22782
+ */
22783
+ unassigned_shift_id?: string;
22784
+ /**
22785
+ * Identifier of the leave (time off) associated with this shift, if applicable. Used when shifts are created or modified due to leave requests
22786
+ */
22787
+ leave_id?: string;
22788
+ /**
22789
+ * Identifier of the user/access who is creating this shift. Used for audit purposes. If null, uses the current authenticated user
22790
+ */
22791
+ author_id?: string;
22792
+ }>;
21794
22793
  /**
21795
22794
  * An array of planned breaks to be added to the shifts created.
21796
22795
  */
21797
- planned_breaks?: Array<unknown>;
22796
+ planned_breaks?: Array<{
22797
+ id?: string;
22798
+ start_at?: string;
22799
+ end_at?: string;
22800
+ duration?: number;
22801
+ break_type?: string;
22802
+ break_configuration_id: string;
22803
+ default_shift_id?: string;
22804
+ shift_id?: string;
22805
+ day_configuration_id?: string;
22806
+ shift_configuration_id?: string;
22807
+ }>;
21798
22808
  };
21799
22809
  path?: never;
21800
22810
  query?: never;
@@ -22072,7 +23082,16 @@ export type PostApi20261001ResourcesTasksTasksBulkUpdateData = {
22072
23082
  /**
22073
23083
  * a list of tasks to update.
22074
23084
  */
22075
- tasks: Array<unknown>;
23085
+ tasks: Array<{
23086
+ id: string;
23087
+ name?: string;
23088
+ content?: string;
23089
+ starts_on?: string;
23090
+ due_on?: string;
23091
+ assignee_ids?: Array<string>;
23092
+ identifier?: 'single' | 'workflow' | 'project' | 'shared_and_single' | 'inbox';
23093
+ status?: 'todo' | 'in_progress' | 'done' | 'discarded';
23094
+ }>;
22076
23095
  };
22077
23096
  path?: never;
22078
23097
  query?: never;
@@ -22573,7 +23592,16 @@ export type PostApi20261001ResourcesTimeoffAllowancesData = {
22573
23592
  /**
22574
23593
  * The tenure periods associated with the allowance.
22575
23594
  */
22576
- tenure_periods: Array<unknown>;
23595
+ tenure_periods: Array<{
23596
+ adjustment_in_cents?: number;
23597
+ balance_type: 'fixed_balance' | 'time_worked_based';
23598
+ max_cap_in_cents?: number;
23599
+ period_length: number;
23600
+ period_type: 'months' | 'years';
23601
+ temp_id?: string;
23602
+ time_worked_based_hours_accrued_in_cents?: number;
23603
+ time_worked_based_per_hours_worked_in_cents?: number;
23604
+ }>;
22577
23605
  /**
22578
23606
  * The Id of the policy to which the allowance belongs to
22579
23607
  */
@@ -22728,7 +23756,18 @@ export type PutApi20261001ResourcesTimeoffAllowancesByIdData = {
22728
23756
  /**
22729
23757
  * The tenure periods associated with the allowance.
22730
23758
  */
22731
- tenure_periods?: Array<unknown>;
23759
+ tenure_periods?: Array<{
23760
+ id?: string;
23761
+ adjustment_in_cents?: number;
23762
+ balance_type?: 'fixed_balance' | 'time_worked_based';
23763
+ max_cap_in_cents?: number;
23764
+ period_length?: number;
23765
+ period_type?: 'months' | 'years';
23766
+ temp_id?: string;
23767
+ time_worked_based_hours_accrued_in_cents?: number;
23768
+ time_worked_based_per_hours_worked_in_cents?: number;
23769
+ _destroy?: boolean;
23770
+ }>;
22732
23771
  /**
22733
23772
  * Flag to indicate if there is unlimited accrual.
22734
23773
  */
@@ -23054,7 +24093,16 @@ export type PutApi20261001ResourcesTimeoffBlockedPeriodsByIdData = {
23054
24093
  /**
23055
24094
  * The tenure periods associated with the allowance edited.
23056
24095
  */
23057
- time_periods_attributes: Array<unknown>;
24096
+ time_periods_attributes: Array<{
24097
+ id?: string;
24098
+ name?: string;
24099
+ _destroy?: boolean;
24100
+ period_type?: string;
24101
+ duration?: number;
24102
+ duration_unit?: string;
24103
+ start_on?: string;
24104
+ finish_on?: string;
24105
+ }>;
23058
24106
  /**
23059
24107
  * Type of access group
23060
24108
  */
@@ -24002,7 +25050,45 @@ export type PostApi20261001ResourcesTimePlanningPlannedBreaksBulkCreateData = {
24002
25050
  /**
24003
25051
  * List of planned breaks to create
24004
25052
  */
24005
- planned_breaks: Array<unknown>;
25053
+ planned_breaks: Array<{
25054
+ /**
25055
+ * Planned break identifier
25056
+ */
25057
+ id?: string;
25058
+ /**
25059
+ * Break start time
25060
+ */
25061
+ start_at?: string;
25062
+ /**
25063
+ * Break end time
25064
+ */
25065
+ end_at?: string;
25066
+ duration?: number;
25067
+ /**
25068
+ * Type of the break
25069
+ */
25070
+ break_type?: string;
25071
+ /**
25072
+ * Break configuration identifier
25073
+ */
25074
+ break_configuration_id: string;
25075
+ /**
25076
+ * Default shift identifier
25077
+ */
25078
+ default_shift_id?: string;
25079
+ /**
25080
+ * Shift identifier
25081
+ */
25082
+ shift_id?: string;
25083
+ /**
25084
+ * Day configuration identifier
25085
+ */
25086
+ day_configuration_id?: string;
25087
+ /**
25088
+ * Shift configuration identifier
25089
+ */
25090
+ shift_configuration_id?: string;
25091
+ }>;
24006
25092
  };
24007
25093
  path?: never;
24008
25094
  query?: never;
@@ -24434,7 +25520,13 @@ export type PostApi20261001ResourcesTrainingsSessionsData = {
24434
25520
  /**
24435
25521
  * Session reminder notifications for those assigned to the session
24436
25522
  */
24437
- reminders?: Array<unknown>;
25523
+ reminders?: Array<{
25524
+ session_id?: string;
25525
+ name: string;
25526
+ content?: string;
25527
+ scheduled_at?: string;
25528
+ timeframe?: 'onehour' | 'oneday' | 'twodays' | 'threedays' | 'oneweek' | 'custom';
25529
+ }>;
24438
25530
  /**
24439
25531
  * Send calendar invites to attendees assigned to the session
24440
25532
  */
@@ -24821,7 +25913,12 @@ export type PostApi20261001ResourcesTrainingsTrainingsData = {
24821
25913
  /**
24822
25914
  * Attachments of the training
24823
25915
  */
24824
- attachments: Array<unknown>;
25916
+ attachments: Array<{
25917
+ author_id: string;
25918
+ file: Blob | File;
25919
+ visibility: boolean;
25920
+ title?: string;
25921
+ }>;
24825
25922
  /**
24826
25923
  * The training validity period in years
24827
25924
  */
@@ -25339,7 +26436,12 @@ export type GetApi20261001ResourcesWorkScheduleDayConfigurationsByIdResponse = G
25339
26436
  export type PostApi20261001ResourcesWorkScheduleDayConfigurationsBulkCudData = {
25340
26437
  body?: {
25341
26438
  overlap_period_id: string;
25342
- day_configurations: Array<unknown>;
26439
+ day_configurations: Array<{
26440
+ id?: string;
26441
+ weekday: string;
26442
+ start_at?: string;
26443
+ duration_in_seconds: number;
26444
+ }>;
25343
26445
  };
25344
26446
  path?: never;
25345
26447
  query?: never;
@@ -25383,7 +26485,12 @@ export type PostApi20261001ResourcesWorkScheduleOverlapPeriodsData = {
25383
26485
  * Attributes for the new overlap period (default flag, start/end day and month, and schedule type)
25384
26486
  */
25385
26487
  create_params?: {
25386
- [key: string]: unknown;
26488
+ default: boolean;
26489
+ start_day: number;
26490
+ start_month: number;
26491
+ end_day: number;
26492
+ end_month: number;
26493
+ schedule_type: string;
25387
26494
  };
25388
26495
  };
25389
26496
  path?: never;
@@ -25440,7 +26547,10 @@ export type PutApi20261001ResourcesWorkScheduleOverlapPeriodsByIdData = {
25440
26547
  * Attributes to update on the overlap period (start/end day and month)
25441
26548
  */
25442
26549
  update_params?: {
25443
- [key: string]: unknown;
26550
+ start_day?: number;
26551
+ start_month?: number;
26552
+ end_day?: number;
26553
+ end_month?: number;
25444
26554
  };
25445
26555
  };
25446
26556
  path: {