@thinkai/tai-api-contract 2.12.0 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -586,6 +586,66 @@ export interface paths {
586
586
  patch?: never;
587
587
  trace?: never;
588
588
  };
589
+ "/workspaces/{workspaceId}/integrations/github/user-authorize-url": {
590
+ parameters: {
591
+ query?: never;
592
+ header?: never;
593
+ path?: never;
594
+ cookie?: never;
595
+ };
596
+ get?: never;
597
+ put?: never;
598
+ /**
599
+ * Create GitHub user OAuth authorize URL
600
+ * @description Starts GitHub user OAuth for org/account picker. Workspace admin only. After callback, SPA opens account picker with `?gh=account_picker&session=…`.
601
+ */
602
+ post: operations["postGithubUserAuthorizeUrl"];
603
+ delete?: never;
604
+ options?: never;
605
+ head?: never;
606
+ patch?: never;
607
+ trace?: never;
608
+ };
609
+ "/workspaces/{workspaceId}/integrations/github/connectable-accounts": {
610
+ parameters: {
611
+ query?: never;
612
+ header?: never;
613
+ path?: never;
614
+ cookie?: never;
615
+ };
616
+ /**
617
+ * List connectable GitHub accounts from user OAuth session
618
+ * @description Returns org/user accounts from a completed user OAuth picker session. Session must belong to the caller and workspace.
619
+ */
620
+ get: operations["getGithubConnectableAccounts"];
621
+ put?: never;
622
+ post?: never;
623
+ delete?: never;
624
+ options?: never;
625
+ head?: never;
626
+ patch?: never;
627
+ trace?: never;
628
+ };
629
+ "/workspaces/{workspaceId}/integrations/github/connect-by-org": {
630
+ parameters: {
631
+ query?: never;
632
+ header?: never;
633
+ path?: never;
634
+ cookie?: never;
635
+ };
636
+ get?: never;
637
+ put?: never;
638
+ /**
639
+ * Link GitHub App installation by org or user account
640
+ * @description Server-side link when the ThinkAI GitHub App is already installed on the selected account. Returns `needs_oauth` when install redirect is required. Workspace admin only.
641
+ */
642
+ post: operations["postGithubConnectByOrg"];
643
+ delete?: never;
644
+ options?: never;
645
+ head?: never;
646
+ patch?: never;
647
+ trace?: never;
648
+ };
589
649
  "/workspaces/{workspaceId}/integrations/ai-tool/{provider}/refresh": {
590
650
  parameters: {
591
651
  query?: never;
@@ -711,6 +771,26 @@ export interface paths {
711
771
  patch?: never;
712
772
  trace?: never;
713
773
  };
774
+ "/integrations/github/user-oauth/callback": {
775
+ parameters: {
776
+ query?: never;
777
+ header?: never;
778
+ path?: never;
779
+ cookie?: never;
780
+ };
781
+ /**
782
+ * GitHub user OAuth callback
783
+ * @description Public callback for GitHub user OAuth (org/account picker flow). Exchanges code, builds connectable-accounts snapshot, redirects SPA with `?gh=account_picker&session=…`.
784
+ */
785
+ get: operations["getGithubUserOauthCallback"];
786
+ put?: never;
787
+ post?: never;
788
+ delete?: never;
789
+ options?: never;
790
+ head?: never;
791
+ patch?: never;
792
+ trace?: never;
793
+ };
714
794
  "/integrations/github/webhook": {
715
795
  parameters: {
716
796
  query?: never;
@@ -1665,6 +1745,66 @@ export interface paths {
1665
1745
  patch?: never;
1666
1746
  trace?: never;
1667
1747
  };
1748
+ "/workspaces/{workspaceId}/absences": {
1749
+ parameters: {
1750
+ query?: never;
1751
+ header?: never;
1752
+ path?: never;
1753
+ cookie?: never;
1754
+ };
1755
+ /**
1756
+ * List absence records
1757
+ * @description Returns time-off/absence records sourced from connected HRIS providers (e.g. Personio) for the given date window. Requires workspace membership.
1758
+ */
1759
+ get: operations["listWorkspaceAbsences"];
1760
+ put?: never;
1761
+ post?: never;
1762
+ delete?: never;
1763
+ options?: never;
1764
+ head?: never;
1765
+ patch?: never;
1766
+ trace?: never;
1767
+ };
1768
+ "/workspaces/{workspaceId}/hris/status": {
1769
+ parameters: {
1770
+ query?: never;
1771
+ header?: never;
1772
+ path?: never;
1773
+ cookie?: never;
1774
+ };
1775
+ /**
1776
+ * HRIS sync status
1777
+ * @description Returns the last sync status for every HRIS provider connected to the workspace. Returns an empty `statuses` array when no HRIS source has been synced yet. Requires workspace membership.
1778
+ */
1779
+ get: operations["getHrisSyncStatus"];
1780
+ put?: never;
1781
+ post?: never;
1782
+ delete?: never;
1783
+ options?: never;
1784
+ head?: never;
1785
+ patch?: never;
1786
+ trace?: never;
1787
+ };
1788
+ "/workspaces/{workspaceId}/hris/sync": {
1789
+ parameters: {
1790
+ query?: never;
1791
+ header?: never;
1792
+ path?: never;
1793
+ cookie?: never;
1794
+ };
1795
+ get?: never;
1796
+ put?: never;
1797
+ /**
1798
+ * Trigger manual HRIS sync
1799
+ * @description Manually triggers an HRIS sync for the workspace. Runs synchronously and returns the result. Requires editor role (same permission level as org-chart writes). Returns 422 when no HRIS source is configured.
1800
+ */
1801
+ post: operations["triggerHrisSync"];
1802
+ delete?: never;
1803
+ options?: never;
1804
+ head?: never;
1805
+ patch?: never;
1806
+ trace?: never;
1807
+ };
1668
1808
  }
1669
1809
  export type webhooks = Record<string, never>;
1670
1810
  export interface components {
@@ -2462,6 +2602,48 @@ export interface components {
2462
2602
  url: string;
2463
2603
  state: string;
2464
2604
  };
2605
+ GithubUserAuthorizeUrlRequestDto: {
2606
+ returnPath?: string;
2607
+ };
2608
+ GithubUserAuthorizeUrlResponseDto: {
2609
+ /** Format: uri */
2610
+ url: string;
2611
+ state: string;
2612
+ };
2613
+ GithubConnectableAccountDto: {
2614
+ login: string;
2615
+ /** @enum {string} */
2616
+ type: "Organization" | "User";
2617
+ /** Format: uri */
2618
+ avatarUrl?: string | null;
2619
+ /** @description Whether the ThinkAI GitHub App is already installed on this account. */
2620
+ appInstalled: boolean;
2621
+ };
2622
+ GithubConnectableAccountsResponseDto: {
2623
+ accounts: components["schemas"]["GithubConnectableAccountDto"][];
2624
+ };
2625
+ GithubConnectByOrgRequestDto: {
2626
+ accountLogin: string;
2627
+ /** @enum {string} */
2628
+ accountType: "Organization" | "User";
2629
+ session: string;
2630
+ };
2631
+ GithubConnectByOrgConnectedDto: {
2632
+ /**
2633
+ * @description discriminator enum property added by openapi-typescript
2634
+ * @enum {string}
2635
+ */
2636
+ outcome: "connected";
2637
+ status: components["schemas"]["GithubInstallationStatusDto"];
2638
+ };
2639
+ GithubConnectByOrgNeedsOAuthDto: {
2640
+ /**
2641
+ * @description discriminator enum property added by openapi-typescript
2642
+ * @enum {string}
2643
+ */
2644
+ outcome: "needs_oauth";
2645
+ };
2646
+ GithubConnectByOrgResponseDto: components["schemas"]["GithubConnectByOrgConnectedDto"] | components["schemas"]["GithubConnectByOrgNeedsOAuthDto"];
2465
2647
  AIReadinessDto: {
2466
2648
  currentUsage: string;
2467
2649
  tools: string[];
@@ -3215,6 +3397,57 @@ export interface components {
3215
3397
  [key: string]: unknown;
3216
3398
  } | null;
3217
3399
  };
3400
+ WorkspaceAbsenceDto: {
3401
+ /** @description HRIS provider that sourced this record (e.g. 'personio', 'zenhr'). */
3402
+ source: string;
3403
+ /** Format: email */
3404
+ employeeEmail: string;
3405
+ absenceType: string;
3406
+ /** Format: date */
3407
+ startDate: string;
3408
+ /** Format: date */
3409
+ endDate: string;
3410
+ halfDayStart: boolean;
3411
+ halfDayEnd: boolean;
3412
+ /** @enum {string} */
3413
+ status: "approved" | "pending" | "rejected";
3414
+ };
3415
+ WorkspaceAbsenceListDto: {
3416
+ absences: components["schemas"]["WorkspaceAbsenceDto"][];
3417
+ /**
3418
+ * Format: date-time
3419
+ * @description ISO timestamp of the most recent successful HRIS sync, or null if never synced.
3420
+ */
3421
+ syncedAt: string | null;
3422
+ };
3423
+ HrisSyncStatusDto: {
3424
+ /** @description Provider identifier (e.g. 'personio', 'zenhr'). */
3425
+ provider: string;
3426
+ /** Format: date-time */
3427
+ lastSyncAt: string | null;
3428
+ /** @enum {string} */
3429
+ status: "ok" | "error" | "never";
3430
+ lastError?: string | null;
3431
+ };
3432
+ HrisSyncStatusListDto: {
3433
+ statuses: components["schemas"]["HrisSyncStatusDto"][];
3434
+ };
3435
+ HrisTriggerSyncResultDto: {
3436
+ /** @enum {string} */
3437
+ status: "ok" | "skipped" | "error";
3438
+ /** @description Stable machine-readable code (e.g. 'no_personio_source', 'hris_sync_failed'). */
3439
+ code?: string;
3440
+ /** @description Number of employees synced (present when status = 'ok'). */
3441
+ employeeCount?: number;
3442
+ /** @description Number of absence records synced (present when status = 'ok'). */
3443
+ absenceCount?: number;
3444
+ /** @description Wall-clock duration of the sync in milliseconds (present when status = 'ok'). */
3445
+ durationMs?: number;
3446
+ /** @description Machine-readable reason for a skipped sync (e.g. 'no_personio_source'). */
3447
+ reason?: string;
3448
+ /** @description Error message when status = 'error'. */
3449
+ error?: string;
3450
+ };
3218
3451
  ActivityLogPageDto: components["schemas"]["PageMetaDto"] & {
3219
3452
  items: components["schemas"]["ActivityLogEntryDto"][];
3220
3453
  };
@@ -3362,6 +3595,14 @@ export type GithubPendingApprovalDto = components['schemas']['GithubPendingAppro
3362
3595
  export type GithubInstallationStatusDto = components['schemas']['GithubInstallationStatusDto'];
3363
3596
  export type GithubInstallUrlRequestDto = components['schemas']['GithubInstallUrlRequestDto'];
3364
3597
  export type GithubInstallUrlResponseDto = components['schemas']['GithubInstallUrlResponseDto'];
3598
+ export type GithubUserAuthorizeUrlRequestDto = components['schemas']['GithubUserAuthorizeUrlRequestDto'];
3599
+ export type GithubUserAuthorizeUrlResponseDto = components['schemas']['GithubUserAuthorizeUrlResponseDto'];
3600
+ export type GithubConnectableAccountDto = components['schemas']['GithubConnectableAccountDto'];
3601
+ export type GithubConnectableAccountsResponseDto = components['schemas']['GithubConnectableAccountsResponseDto'];
3602
+ export type GithubConnectByOrgRequestDto = components['schemas']['GithubConnectByOrgRequestDto'];
3603
+ export type GithubConnectByOrgConnectedDto = components['schemas']['GithubConnectByOrgConnectedDto'];
3604
+ export type GithubConnectByOrgNeedsOAuthDto = components['schemas']['GithubConnectByOrgNeedsOAuthDto'];
3605
+ export type GithubConnectByOrgResponseDto = components['schemas']['GithubConnectByOrgResponseDto'];
3365
3606
  export type AiReadinessDto = components['schemas']['AIReadinessDto'];
3366
3607
  export type AiMaturityResultDto = components['schemas']['AiMaturityResultDto'];
3367
3608
  export type TechCategoryDto = components['schemas']['TechCategoryDto'];
@@ -3444,6 +3685,11 @@ export type PatchRepoArchiveResponseDto = components['schemas']['PatchRepoArchiv
3444
3685
  export type ActivityLogEventTypeDto = components['schemas']['ActivityLogEventTypeDto'];
3445
3686
  export type ActivityLogActorDto = components['schemas']['ActivityLogActorDto'];
3446
3687
  export type ActivityLogEntryDto = components['schemas']['ActivityLogEntryDto'];
3688
+ export type WorkspaceAbsenceDto = components['schemas']['WorkspaceAbsenceDto'];
3689
+ export type WorkspaceAbsenceListDto = components['schemas']['WorkspaceAbsenceListDto'];
3690
+ export type HrisSyncStatusDto = components['schemas']['HrisSyncStatusDto'];
3691
+ export type HrisSyncStatusListDto = components['schemas']['HrisSyncStatusListDto'];
3692
+ export type HrisTriggerSyncResultDto = components['schemas']['HrisTriggerSyncResultDto'];
3447
3693
  export type ActivityLogPageDto = components['schemas']['ActivityLogPageDto'];
3448
3694
  export type ResponseUnauthorized = components['responses']['Unauthorized'];
3449
3695
  export type ResponseForbidden = components['responses']['Forbidden'];
@@ -5045,6 +5291,174 @@ export interface operations {
5045
5291
  };
5046
5292
  };
5047
5293
  };
5294
+ postGithubUserAuthorizeUrl: {
5295
+ parameters: {
5296
+ query?: never;
5297
+ header?: never;
5298
+ path: {
5299
+ workspaceId: components["parameters"]["WorkspaceId"];
5300
+ };
5301
+ cookie?: never;
5302
+ };
5303
+ requestBody?: {
5304
+ content: {
5305
+ "application/json": components["schemas"]["GithubUserAuthorizeUrlRequestDto"];
5306
+ };
5307
+ };
5308
+ responses: {
5309
+ /** @description User OAuth authorize URL + signed state */
5310
+ 200: {
5311
+ headers: {
5312
+ [name: string]: unknown;
5313
+ };
5314
+ content: {
5315
+ "application/json": components["schemas"]["GithubUserAuthorizeUrlResponseDto"];
5316
+ };
5317
+ };
5318
+ /** @description Request validation failed */
5319
+ 400: {
5320
+ headers: {
5321
+ [name: string]: unknown;
5322
+ };
5323
+ content: {
5324
+ "application/json": components["schemas"]["ErrorMessageDto"];
5325
+ };
5326
+ };
5327
+ 401: components["responses"]["Unauthorized"];
5328
+ 403: components["responses"]["Forbidden"];
5329
+ /** @description Workspace does not exist or malformed workspaceId */
5330
+ 404: {
5331
+ headers: {
5332
+ [name: string]: unknown;
5333
+ };
5334
+ content: {
5335
+ "application/json": components["schemas"]["ErrorMessageDto"];
5336
+ };
5337
+ };
5338
+ /** @description GitHub user OAuth not configured */
5339
+ 500: {
5340
+ headers: {
5341
+ [name: string]: unknown;
5342
+ };
5343
+ content: {
5344
+ "application/json": components["schemas"]["ErrorMessageDto"];
5345
+ };
5346
+ };
5347
+ };
5348
+ };
5349
+ getGithubConnectableAccounts: {
5350
+ parameters: {
5351
+ query: {
5352
+ session: string;
5353
+ };
5354
+ header?: never;
5355
+ path: {
5356
+ workspaceId: components["parameters"]["WorkspaceId"];
5357
+ };
5358
+ cookie?: never;
5359
+ };
5360
+ requestBody?: never;
5361
+ responses: {
5362
+ /** @description Connectable accounts snapshot */
5363
+ 200: {
5364
+ headers: {
5365
+ [name: string]: unknown;
5366
+ };
5367
+ content: {
5368
+ "application/json": components["schemas"]["GithubConnectableAccountsResponseDto"];
5369
+ };
5370
+ };
5371
+ /** @description Missing or invalid session */
5372
+ 400: {
5373
+ headers: {
5374
+ [name: string]: unknown;
5375
+ };
5376
+ content: {
5377
+ "application/json": components["schemas"]["ErrorMessageDto"];
5378
+ };
5379
+ };
5380
+ 401: components["responses"]["Unauthorized"];
5381
+ 403: components["responses"]["Forbidden"];
5382
+ /** @description Workspace or session not found */
5383
+ 404: {
5384
+ headers: {
5385
+ [name: string]: unknown;
5386
+ };
5387
+ content: {
5388
+ "application/json": components["schemas"]["ErrorMessageDto"];
5389
+ };
5390
+ };
5391
+ };
5392
+ };
5393
+ postGithubConnectByOrg: {
5394
+ parameters: {
5395
+ query?: never;
5396
+ header?: never;
5397
+ path: {
5398
+ workspaceId: components["parameters"]["WorkspaceId"];
5399
+ };
5400
+ cookie?: never;
5401
+ };
5402
+ requestBody: {
5403
+ content: {
5404
+ "application/json": components["schemas"]["GithubConnectByOrgRequestDto"];
5405
+ };
5406
+ };
5407
+ responses: {
5408
+ /** @description Connect result */
5409
+ 200: {
5410
+ headers: {
5411
+ [name: string]: unknown;
5412
+ };
5413
+ content: {
5414
+ "application/json": components["schemas"]["GithubConnectByOrgResponseDto"];
5415
+ };
5416
+ };
5417
+ /** @description Invalid session or account */
5418
+ 400: {
5419
+ headers: {
5420
+ [name: string]: unknown;
5421
+ };
5422
+ content: {
5423
+ "application/json": components["schemas"]["ErrorMessageDto"];
5424
+ };
5425
+ };
5426
+ 401: components["responses"]["Unauthorized"];
5427
+ 403: components["responses"]["Forbidden"];
5428
+ /** @description Workspace or session not found */
5429
+ 404: {
5430
+ headers: {
5431
+ [name: string]: unknown;
5432
+ };
5433
+ content: {
5434
+ "application/json": components["schemas"]["ErrorMessageDto"];
5435
+ };
5436
+ };
5437
+ /** @description GitHub installation already linked to another workspace */
5438
+ 409: {
5439
+ headers: {
5440
+ [name: string]: unknown;
5441
+ };
5442
+ content: {
5443
+ /**
5444
+ * @example {
5445
+ * "error": "installation_already_linked"
5446
+ * }
5447
+ */
5448
+ "application/json": components["schemas"]["ErrorMessageDto"];
5449
+ };
5450
+ };
5451
+ /** @description GitHub API error */
5452
+ 503: {
5453
+ headers: {
5454
+ [name: string]: unknown;
5455
+ };
5456
+ content: {
5457
+ "application/json": components["schemas"]["ErrorMessageDto"];
5458
+ };
5459
+ };
5460
+ };
5461
+ };
5048
5462
  refreshWorkspaceAiTool: {
5049
5463
  parameters: {
5050
5464
  query?: never;
@@ -5302,6 +5716,47 @@ export interface operations {
5302
5716
  };
5303
5717
  };
5304
5718
  };
5719
+ getGithubUserOauthCallback: {
5720
+ parameters: {
5721
+ query: {
5722
+ state: string;
5723
+ code?: string;
5724
+ error?: string;
5725
+ error_description?: string;
5726
+ };
5727
+ header?: never;
5728
+ path?: never;
5729
+ cookie?: never;
5730
+ };
5731
+ requestBody?: never;
5732
+ responses: {
5733
+ /** @description Redirect to ThinkAI SPA with account picker session or error */
5734
+ 302: {
5735
+ headers: {
5736
+ [name: string]: unknown;
5737
+ };
5738
+ content?: never;
5739
+ };
5740
+ /** @description Workspace store not configured */
5741
+ 501: {
5742
+ headers: {
5743
+ [name: string]: unknown;
5744
+ };
5745
+ content: {
5746
+ "application/json": components["schemas"]["ErrorMessageDto"];
5747
+ };
5748
+ };
5749
+ /** @description SPA origin or GitHub OAuth configuration missing */
5750
+ 503: {
5751
+ headers: {
5752
+ [name: string]: unknown;
5753
+ };
5754
+ content: {
5755
+ "application/json": components["schemas"]["ErrorMessageDto"];
5756
+ };
5757
+ };
5758
+ };
5759
+ };
5305
5760
  postGithubWebhook: {
5306
5761
  parameters: {
5307
5762
  query?: never;
@@ -7620,4 +8075,149 @@ export interface operations {
7620
8075
  };
7621
8076
  };
7622
8077
  };
8078
+ listWorkspaceAbsences: {
8079
+ parameters: {
8080
+ query?: {
8081
+ /** @description Start of date window (ISO YYYY-MM-DD). Defaults to today. */
8082
+ from?: string;
8083
+ /** @description End of date window (ISO YYYY-MM-DD). Defaults to 90 days from today. */
8084
+ to?: string;
8085
+ };
8086
+ header?: never;
8087
+ path: {
8088
+ workspaceId: components["parameters"]["WorkspaceId"];
8089
+ };
8090
+ cookie?: never;
8091
+ };
8092
+ requestBody?: never;
8093
+ responses: {
8094
+ /** @description Absence list with last sync timestamp */
8095
+ 200: {
8096
+ headers: {
8097
+ [name: string]: unknown;
8098
+ };
8099
+ content: {
8100
+ /**
8101
+ * @example {
8102
+ * "absences": [
8103
+ * {
8104
+ * "source": "personio",
8105
+ * "employeeEmail": "alice@example.com",
8106
+ * "absenceType": "Vacation",
8107
+ * "startDate": "2025-07-01",
8108
+ * "endDate": "2025-07-05",
8109
+ * "halfDayStart": false,
8110
+ * "halfDayEnd": false,
8111
+ * "status": "approved"
8112
+ * }
8113
+ * ],
8114
+ * "syncedAt": "2025-06-30T08:00:00.000Z"
8115
+ * }
8116
+ */
8117
+ "application/json": components["schemas"]["WorkspaceAbsenceListDto"];
8118
+ };
8119
+ };
8120
+ 401: components["responses"]["Unauthorized"];
8121
+ 403: components["responses"]["Forbidden"];
8122
+ };
8123
+ };
8124
+ getHrisSyncStatus: {
8125
+ parameters: {
8126
+ query?: never;
8127
+ header?: never;
8128
+ path: {
8129
+ workspaceId: components["parameters"]["WorkspaceId"];
8130
+ };
8131
+ cookie?: never;
8132
+ };
8133
+ requestBody?: never;
8134
+ responses: {
8135
+ /** @description Sync status list */
8136
+ 200: {
8137
+ headers: {
8138
+ [name: string]: unknown;
8139
+ };
8140
+ content: {
8141
+ /**
8142
+ * @example {
8143
+ * "statuses": [
8144
+ * {
8145
+ * "provider": "personio",
8146
+ * "lastSyncAt": "2025-06-30T08:00:00.000Z",
8147
+ * "status": "ok"
8148
+ * }
8149
+ * ]
8150
+ * }
8151
+ */
8152
+ "application/json": components["schemas"]["HrisSyncStatusListDto"];
8153
+ };
8154
+ };
8155
+ 401: components["responses"]["Unauthorized"];
8156
+ 403: components["responses"]["Forbidden"];
8157
+ };
8158
+ };
8159
+ triggerHrisSync: {
8160
+ parameters: {
8161
+ query?: never;
8162
+ header?: never;
8163
+ path: {
8164
+ workspaceId: components["parameters"]["WorkspaceId"];
8165
+ };
8166
+ cookie?: never;
8167
+ };
8168
+ requestBody?: never;
8169
+ responses: {
8170
+ /** @description Sync completed successfully */
8171
+ 200: {
8172
+ headers: {
8173
+ [name: string]: unknown;
8174
+ };
8175
+ content: {
8176
+ /**
8177
+ * @example {
8178
+ * "status": "ok",
8179
+ * "employeeCount": 42,
8180
+ * "absenceCount": 7,
8181
+ * "durationMs": 1234
8182
+ * }
8183
+ */
8184
+ "application/json": components["schemas"]["HrisTriggerSyncResultDto"];
8185
+ };
8186
+ };
8187
+ 401: components["responses"]["Unauthorized"];
8188
+ 403: components["responses"]["Forbidden"];
8189
+ /** @description No HRIS source configured for this workspace */
8190
+ 422: {
8191
+ headers: {
8192
+ [name: string]: unknown;
8193
+ };
8194
+ content: {
8195
+ /**
8196
+ * @example {
8197
+ * "status": "skipped",
8198
+ * "code": "no_personio_source",
8199
+ * "reason": "no_personio_source"
8200
+ * }
8201
+ */
8202
+ "application/json": components["schemas"]["HrisTriggerSyncResultDto"];
8203
+ };
8204
+ };
8205
+ /** @description Sync failed (Personio API error, decryption failure, etc.) */
8206
+ 500: {
8207
+ headers: {
8208
+ [name: string]: unknown;
8209
+ };
8210
+ content: {
8211
+ /**
8212
+ * @example {
8213
+ * "status": "error",
8214
+ * "code": "hris_sync_failed",
8215
+ * "error": "Personio employees API 401"
8216
+ * }
8217
+ */
8218
+ "application/json": components["schemas"]["HrisTriggerSyncResultDto"];
8219
+ };
8220
+ };
8221
+ };
8222
+ };
7623
8223
  }