@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.
- package/dist/generated/openapi.d.ts +600 -0
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -1
- package/openapi/openapi.yaml +502 -1
- package/package.json +1 -1
- package/src/generated/openapi.ts +600 -0
- package/src/index.ts +55 -0
package/src/generated/openapi.ts
CHANGED
|
@@ -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
|
}
|