@thinkai/tai-api-contract 2.67.0 → 2.68.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 +323 -1
- package/dist/generated/openapi.d.ts.map +1 -1
- package/openapi/openapi.yaml +233 -1
- package/package.json +1 -1
- package/src/generated/openapi.ts +323 -1
package/openapi/openapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.0.3
|
|
2
2
|
info:
|
|
3
3
|
title: ThinkAI API
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.68.0
|
|
5
5
|
description: >
|
|
6
6
|
Contract surface for the AI Driven SDLC backend used by ThinkAI.
|
|
7
7
|
Workspace-scoped routes use `/workspaces/{workspaceId}/...`.
|
|
@@ -7223,6 +7223,183 @@ paths:
|
|
|
7223
7223
|
"403":
|
|
7224
7224
|
$ref: "#/components/responses/Forbidden"
|
|
7225
7225
|
|
|
7226
|
+
/workspaces/{workspaceId}/integrations/zelt/authorize-url:
|
|
7227
|
+
post:
|
|
7228
|
+
tags: [HRIS, Integrations]
|
|
7229
|
+
summary: Start Zelt OAuth authorize
|
|
7230
|
+
operationId: postWorkspaceZeltAuthorizeUrl
|
|
7231
|
+
description: >
|
|
7232
|
+
Mints OAuth state with pending Client ID/Secret and returns the Zelt authorize URL.
|
|
7233
|
+
Workspace **admin** only. No branch selection (company-scoped partner API).
|
|
7234
|
+
parameters:
|
|
7235
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7236
|
+
requestBody:
|
|
7237
|
+
required: true
|
|
7238
|
+
content:
|
|
7239
|
+
application/json:
|
|
7240
|
+
schema:
|
|
7241
|
+
$ref: "#/components/schemas/ZeltAuthorizeUrlRequestDto"
|
|
7242
|
+
responses:
|
|
7243
|
+
"200":
|
|
7244
|
+
description: Authorize URL and opaque state
|
|
7245
|
+
content:
|
|
7246
|
+
application/json:
|
|
7247
|
+
schema:
|
|
7248
|
+
$ref: "#/components/schemas/ZeltAuthorizeUrlResponseDto"
|
|
7249
|
+
example:
|
|
7250
|
+
url: "https://go.zelt.app/oauth/authorize?client_id=example&redirect_uri=https%3A%2F%2Fapi.example.com%2Fintegrations%2Fzelt%2Foauth%2Fcallback&response_type=code&state=example-state&scope=user.basicInfo%3Aread"
|
|
7251
|
+
state: "example-state"
|
|
7252
|
+
"400":
|
|
7253
|
+
description: Invalid request body or return path
|
|
7254
|
+
content:
|
|
7255
|
+
application/json:
|
|
7256
|
+
schema:
|
|
7257
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
7258
|
+
"401":
|
|
7259
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7260
|
+
"403":
|
|
7261
|
+
$ref: "#/components/responses/Forbidden"
|
|
7262
|
+
"503":
|
|
7263
|
+
description: API public origin is not configured
|
|
7264
|
+
content:
|
|
7265
|
+
application/json:
|
|
7266
|
+
schema:
|
|
7267
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
7268
|
+
example:
|
|
7269
|
+
error: api_public_origin_not_configured
|
|
7270
|
+
|
|
7271
|
+
/workspaces/{workspaceId}/integrations/zelt/reauthorize-url:
|
|
7272
|
+
post:
|
|
7273
|
+
tags: [HRIS, Integrations]
|
|
7274
|
+
summary: Start Zelt OAuth reauthorize from stored credentials
|
|
7275
|
+
operationId: postWorkspaceZeltReauthorizeUrl
|
|
7276
|
+
description: >
|
|
7277
|
+
Starts Zelt OAuth using credentials already stored on the workspace source
|
|
7278
|
+
(no Client Secret in the request body). Workspace **admin** only.
|
|
7279
|
+
parameters:
|
|
7280
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7281
|
+
requestBody:
|
|
7282
|
+
required: false
|
|
7283
|
+
content:
|
|
7284
|
+
application/json:
|
|
7285
|
+
schema:
|
|
7286
|
+
$ref: "#/components/schemas/ZeltReauthorizeUrlRequestDto"
|
|
7287
|
+
responses:
|
|
7288
|
+
"200":
|
|
7289
|
+
description: Authorize URL and opaque state
|
|
7290
|
+
content:
|
|
7291
|
+
application/json:
|
|
7292
|
+
schema:
|
|
7293
|
+
$ref: "#/components/schemas/ZeltAuthorizeUrlResponseDto"
|
|
7294
|
+
"400":
|
|
7295
|
+
description: Invalid return path
|
|
7296
|
+
content:
|
|
7297
|
+
application/json:
|
|
7298
|
+
schema:
|
|
7299
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
7300
|
+
"401":
|
|
7301
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7302
|
+
"403":
|
|
7303
|
+
$ref: "#/components/responses/Forbidden"
|
|
7304
|
+
"404":
|
|
7305
|
+
description: Zelt is not connected for this workspace
|
|
7306
|
+
content:
|
|
7307
|
+
application/json:
|
|
7308
|
+
schema:
|
|
7309
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
7310
|
+
example:
|
|
7311
|
+
error: zelt_not_connected
|
|
7312
|
+
"503":
|
|
7313
|
+
description: API public origin is not configured
|
|
7314
|
+
content:
|
|
7315
|
+
application/json:
|
|
7316
|
+
schema:
|
|
7317
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
7318
|
+
example:
|
|
7319
|
+
error: api_public_origin_not_configured
|
|
7320
|
+
|
|
7321
|
+
/workspaces/{workspaceId}/integrations/zelt/reconnect:
|
|
7322
|
+
post:
|
|
7323
|
+
tags: [HRIS, Integrations]
|
|
7324
|
+
summary: Attempt silent Zelt reconnect
|
|
7325
|
+
operationId: reconnectWorkspaceZelt
|
|
7326
|
+
description: >
|
|
7327
|
+
Attempts a silent token refresh and users ping using stored Zelt OAuth credentials.
|
|
7328
|
+
Returns `{ ok: true }` when the connection is restored without user interaction.
|
|
7329
|
+
Returns `{ ok: false, oauthRequired: true }` when stored credentials exist but refresh
|
|
7330
|
+
failed with an OAuth re-authorization error; the SPA should start Zelt OAuth next.
|
|
7331
|
+
Returns `503` with `zelt_sync_in_progress` when an HRIS sync or OAuth refresh is already
|
|
7332
|
+
in progress for this workspace (retry shortly).
|
|
7333
|
+
parameters:
|
|
7334
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
7335
|
+
responses:
|
|
7336
|
+
"200":
|
|
7337
|
+
description: Silent reconnect succeeded or OAuth is required
|
|
7338
|
+
content:
|
|
7339
|
+
application/json:
|
|
7340
|
+
schema:
|
|
7341
|
+
$ref: "#/components/schemas/ZeltReconnectResultDto"
|
|
7342
|
+
examples:
|
|
7343
|
+
ok:
|
|
7344
|
+
value: { ok: true }
|
|
7345
|
+
oauth_required:
|
|
7346
|
+
value:
|
|
7347
|
+
ok: false
|
|
7348
|
+
oauthRequired: true
|
|
7349
|
+
error: zelt_oauth_required
|
|
7350
|
+
"401":
|
|
7351
|
+
$ref: "#/components/responses/Unauthorized"
|
|
7352
|
+
"403":
|
|
7353
|
+
$ref: "#/components/responses/Forbidden"
|
|
7354
|
+
"404":
|
|
7355
|
+
description: Zelt is not connected for this workspace
|
|
7356
|
+
content:
|
|
7357
|
+
application/json:
|
|
7358
|
+
schema:
|
|
7359
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
7360
|
+
example:
|
|
7361
|
+
error: zelt_not_connected
|
|
7362
|
+
"502":
|
|
7363
|
+
description: Zelt refresh or users ping failed for a non-OAuth reason
|
|
7364
|
+
content:
|
|
7365
|
+
application/json:
|
|
7366
|
+
schema:
|
|
7367
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
7368
|
+
example:
|
|
7369
|
+
error: zelt_reconnect_failed
|
|
7370
|
+
"503":
|
|
7371
|
+
description: HRIS sync/OAuth refresh already in progress
|
|
7372
|
+
content:
|
|
7373
|
+
application/json:
|
|
7374
|
+
schema:
|
|
7375
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
7376
|
+
example:
|
|
7377
|
+
error: zelt_sync_in_progress
|
|
7378
|
+
|
|
7379
|
+
/integrations/zelt/oauth/callback:
|
|
7380
|
+
get:
|
|
7381
|
+
tags: [HRIS, Integrations]
|
|
7382
|
+
summary: Zelt OAuth callback
|
|
7383
|
+
operationId: getZeltOauthCallback
|
|
7384
|
+
description: >
|
|
7385
|
+
Public browser redirect target after Zelt authorization. Exchanges the code,
|
|
7386
|
+
stores the encrypted `zelt` workspace source, emits `integrations.zelt.added` on
|
|
7387
|
+
first connect, and redirects the SPA with `?zelt=connected|error`.
|
|
7388
|
+
parameters:
|
|
7389
|
+
- name: code
|
|
7390
|
+
in: query
|
|
7391
|
+
schema: { type: string }
|
|
7392
|
+
- name: state
|
|
7393
|
+
in: query
|
|
7394
|
+
required: true
|
|
7395
|
+
schema: { type: string }
|
|
7396
|
+
- name: error
|
|
7397
|
+
in: query
|
|
7398
|
+
schema: { type: string }
|
|
7399
|
+
responses:
|
|
7400
|
+
"302":
|
|
7401
|
+
description: Redirect to SPA return path with zelt status query params
|
|
7402
|
+
|
|
7226
7403
|
/workspaces/{workspaceId}/integrations/zenhr/reconnect:
|
|
7227
7404
|
post:
|
|
7228
7405
|
tags: [HRIS, Integrations]
|
|
@@ -14403,6 +14580,9 @@ components:
|
|
|
14403
14580
|
- hris.zenhr.sync_started
|
|
14404
14581
|
- hris.zenhr.sync_completed
|
|
14405
14582
|
- hris.zenhr.sync_failed
|
|
14583
|
+
- hris.zelt.sync_started
|
|
14584
|
+
- hris.zelt.sync_completed
|
|
14585
|
+
- hris.zelt.sync_failed
|
|
14406
14586
|
- hris.sync_started
|
|
14407
14587
|
- hris.sync_completed
|
|
14408
14588
|
- hris.sync_failed
|
|
@@ -14442,6 +14622,8 @@ components:
|
|
|
14442
14622
|
- integrations.grafana.removed
|
|
14443
14623
|
- integrations.grafana.sync_completed
|
|
14444
14624
|
- integrations.grafana.sync_failed
|
|
14625
|
+
- integrations.zelt.added
|
|
14626
|
+
- integrations.zelt.removed
|
|
14445
14627
|
|
|
14446
14628
|
ActivityLogActorDto:
|
|
14447
14629
|
type: object
|
|
@@ -14599,6 +14781,56 @@ components:
|
|
|
14599
14781
|
enum: [zenhr_oauth_required]
|
|
14600
14782
|
description: Machine-readable code when ok=false and oauthRequired=true.
|
|
14601
14783
|
|
|
14784
|
+
ZeltAuthorizeUrlRequestDto:
|
|
14785
|
+
type: object
|
|
14786
|
+
required: [clientId, clientSecret]
|
|
14787
|
+
properties:
|
|
14788
|
+
clientId:
|
|
14789
|
+
type: string
|
|
14790
|
+
clientSecret:
|
|
14791
|
+
type: string
|
|
14792
|
+
baseUrl:
|
|
14793
|
+
type: string
|
|
14794
|
+
description: Defaults to `https://go.zelt.app` when omitted.
|
|
14795
|
+
appName:
|
|
14796
|
+
type: string
|
|
14797
|
+
description: Optional OAuth `app` query param when required by the tenant.
|
|
14798
|
+
returnPath:
|
|
14799
|
+
type: string
|
|
14800
|
+
description: SPA path to return to after OAuth (must start with `/`).
|
|
14801
|
+
|
|
14802
|
+
ZeltReauthorizeUrlRequestDto:
|
|
14803
|
+
type: object
|
|
14804
|
+
properties:
|
|
14805
|
+
returnPath:
|
|
14806
|
+
type: string
|
|
14807
|
+
|
|
14808
|
+
ZeltAuthorizeUrlResponseDto:
|
|
14809
|
+
type: object
|
|
14810
|
+
required: [url, state]
|
|
14811
|
+
properties:
|
|
14812
|
+
url:
|
|
14813
|
+
type: string
|
|
14814
|
+
format: uri
|
|
14815
|
+
state:
|
|
14816
|
+
type: string
|
|
14817
|
+
|
|
14818
|
+
ZeltReconnectResultDto:
|
|
14819
|
+
type: object
|
|
14820
|
+
required: [ok]
|
|
14821
|
+
properties:
|
|
14822
|
+
ok:
|
|
14823
|
+
type: boolean
|
|
14824
|
+
oauthRequired:
|
|
14825
|
+
type: boolean
|
|
14826
|
+
description: >
|
|
14827
|
+
When true with ok=false, stored credentials exist but refresh failed with an OAuth
|
|
14828
|
+
re-authorization error; the SPA should start Zelt OAuth next.
|
|
14829
|
+
error:
|
|
14830
|
+
type: string
|
|
14831
|
+
enum: [zelt_oauth_required]
|
|
14832
|
+
description: Machine-readable code when ok=false and oauthRequired=true.
|
|
14833
|
+
|
|
14602
14834
|
ZenHrBranchDto:
|
|
14603
14835
|
type: object
|
|
14604
14836
|
required: [id, name]
|
package/package.json
CHANGED
package/src/generated/openapi.ts
CHANGED
|
@@ -2890,6 +2890,86 @@ export interface paths {
|
|
|
2890
2890
|
patch?: never;
|
|
2891
2891
|
trace?: never;
|
|
2892
2892
|
};
|
|
2893
|
+
"/workspaces/{workspaceId}/integrations/zelt/authorize-url": {
|
|
2894
|
+
parameters: {
|
|
2895
|
+
query?: never;
|
|
2896
|
+
header?: never;
|
|
2897
|
+
path?: never;
|
|
2898
|
+
cookie?: never;
|
|
2899
|
+
};
|
|
2900
|
+
get?: never;
|
|
2901
|
+
put?: never;
|
|
2902
|
+
/**
|
|
2903
|
+
* Start Zelt OAuth authorize
|
|
2904
|
+
* @description Mints OAuth state with pending Client ID/Secret and returns the Zelt authorize URL. Workspace **admin** only. No branch selection (company-scoped partner API).
|
|
2905
|
+
*/
|
|
2906
|
+
post: operations["postWorkspaceZeltAuthorizeUrl"];
|
|
2907
|
+
delete?: never;
|
|
2908
|
+
options?: never;
|
|
2909
|
+
head?: never;
|
|
2910
|
+
patch?: never;
|
|
2911
|
+
trace?: never;
|
|
2912
|
+
};
|
|
2913
|
+
"/workspaces/{workspaceId}/integrations/zelt/reauthorize-url": {
|
|
2914
|
+
parameters: {
|
|
2915
|
+
query?: never;
|
|
2916
|
+
header?: never;
|
|
2917
|
+
path?: never;
|
|
2918
|
+
cookie?: never;
|
|
2919
|
+
};
|
|
2920
|
+
get?: never;
|
|
2921
|
+
put?: never;
|
|
2922
|
+
/**
|
|
2923
|
+
* Start Zelt OAuth reauthorize from stored credentials
|
|
2924
|
+
* @description Starts Zelt OAuth using credentials already stored on the workspace source (no Client Secret in the request body). Workspace **admin** only.
|
|
2925
|
+
*/
|
|
2926
|
+
post: operations["postWorkspaceZeltReauthorizeUrl"];
|
|
2927
|
+
delete?: never;
|
|
2928
|
+
options?: never;
|
|
2929
|
+
head?: never;
|
|
2930
|
+
patch?: never;
|
|
2931
|
+
trace?: never;
|
|
2932
|
+
};
|
|
2933
|
+
"/workspaces/{workspaceId}/integrations/zelt/reconnect": {
|
|
2934
|
+
parameters: {
|
|
2935
|
+
query?: never;
|
|
2936
|
+
header?: never;
|
|
2937
|
+
path?: never;
|
|
2938
|
+
cookie?: never;
|
|
2939
|
+
};
|
|
2940
|
+
get?: never;
|
|
2941
|
+
put?: never;
|
|
2942
|
+
/**
|
|
2943
|
+
* Attempt silent Zelt reconnect
|
|
2944
|
+
* @description Attempts a silent token refresh and users ping using stored Zelt OAuth credentials. Returns `{ ok: true }` when the connection is restored without user interaction. Returns `{ ok: false, oauthRequired: true }` when stored credentials exist but refresh failed with an OAuth re-authorization error; the SPA should start Zelt OAuth next. Returns `503` with `zelt_sync_in_progress` when an HRIS sync or OAuth refresh is already in progress for this workspace (retry shortly).
|
|
2945
|
+
*/
|
|
2946
|
+
post: operations["reconnectWorkspaceZelt"];
|
|
2947
|
+
delete?: never;
|
|
2948
|
+
options?: never;
|
|
2949
|
+
head?: never;
|
|
2950
|
+
patch?: never;
|
|
2951
|
+
trace?: never;
|
|
2952
|
+
};
|
|
2953
|
+
"/integrations/zelt/oauth/callback": {
|
|
2954
|
+
parameters: {
|
|
2955
|
+
query?: never;
|
|
2956
|
+
header?: never;
|
|
2957
|
+
path?: never;
|
|
2958
|
+
cookie?: never;
|
|
2959
|
+
};
|
|
2960
|
+
/**
|
|
2961
|
+
* Zelt OAuth callback
|
|
2962
|
+
* @description Public browser redirect target after Zelt authorization. Exchanges the code, stores the encrypted `zelt` workspace source, emits `integrations.zelt.added` on first connect, and redirects the SPA with `?zelt=connected|error`.
|
|
2963
|
+
*/
|
|
2964
|
+
get: operations["getZeltOauthCallback"];
|
|
2965
|
+
put?: never;
|
|
2966
|
+
post?: never;
|
|
2967
|
+
delete?: never;
|
|
2968
|
+
options?: never;
|
|
2969
|
+
head?: never;
|
|
2970
|
+
patch?: never;
|
|
2971
|
+
trace?: never;
|
|
2972
|
+
};
|
|
2893
2973
|
"/workspaces/{workspaceId}/integrations/zenhr/reconnect": {
|
|
2894
2974
|
parameters: {
|
|
2895
2975
|
query?: never;
|
|
@@ -6112,7 +6192,7 @@ export interface components {
|
|
|
6112
6192
|
* @description Type of workspace lifecycle event.
|
|
6113
6193
|
* @enum {string}
|
|
6114
6194
|
*/
|
|
6115
|
-
ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "productivity.ingest.repo_skipped" | "productivity.ingest.coverage_gap_detected" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed";
|
|
6195
|
+
ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.zelt.sync_started" | "hris.zelt.sync_completed" | "hris.zelt.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "productivity.ingest.repo_skipped" | "productivity.ingest.coverage_gap_detected" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed" | "integrations.zelt.added" | "integrations.zelt.removed";
|
|
6116
6196
|
ActivityLogActorDto: {
|
|
6117
6197
|
/** Format: uuid */
|
|
6118
6198
|
userId: string;
|
|
@@ -6205,6 +6285,34 @@ export interface components {
|
|
|
6205
6285
|
*/
|
|
6206
6286
|
error?: "zenhr_oauth_required";
|
|
6207
6287
|
};
|
|
6288
|
+
ZeltAuthorizeUrlRequestDto: {
|
|
6289
|
+
clientId: string;
|
|
6290
|
+
clientSecret: string;
|
|
6291
|
+
/** @description Defaults to `https://go.zelt.app` when omitted. */
|
|
6292
|
+
baseUrl?: string;
|
|
6293
|
+
/** @description Optional OAuth `app` query param when required by the tenant. */
|
|
6294
|
+
appName?: string;
|
|
6295
|
+
/** @description SPA path to return to after OAuth (must start with `/`). */
|
|
6296
|
+
returnPath?: string;
|
|
6297
|
+
};
|
|
6298
|
+
ZeltReauthorizeUrlRequestDto: {
|
|
6299
|
+
returnPath?: string;
|
|
6300
|
+
};
|
|
6301
|
+
ZeltAuthorizeUrlResponseDto: {
|
|
6302
|
+
/** Format: uri */
|
|
6303
|
+
url: string;
|
|
6304
|
+
state: string;
|
|
6305
|
+
};
|
|
6306
|
+
ZeltReconnectResultDto: {
|
|
6307
|
+
ok: boolean;
|
|
6308
|
+
/** @description When true with ok=false, stored credentials exist but refresh failed with an OAuth re-authorization error; the SPA should start Zelt OAuth next. */
|
|
6309
|
+
oauthRequired?: boolean;
|
|
6310
|
+
/**
|
|
6311
|
+
* @description Machine-readable code when ok=false and oauthRequired=true.
|
|
6312
|
+
* @enum {string}
|
|
6313
|
+
*/
|
|
6314
|
+
error?: "zelt_oauth_required";
|
|
6315
|
+
};
|
|
6208
6316
|
ZenHrBranchDto: {
|
|
6209
6317
|
id: string;
|
|
6210
6318
|
name: string;
|
|
@@ -6983,6 +7091,10 @@ export type WorkspaceAbsenceListDto = components['schemas']['WorkspaceAbsenceLis
|
|
|
6983
7091
|
export type HrisSyncStatusDto = components['schemas']['HrisSyncStatusDto'];
|
|
6984
7092
|
export type HrisSyncStatusListDto = components['schemas']['HrisSyncStatusListDto'];
|
|
6985
7093
|
export type ZenHrReconnectResultDto = components['schemas']['ZenHrReconnectResultDto'];
|
|
7094
|
+
export type ZeltAuthorizeUrlRequestDto = components['schemas']['ZeltAuthorizeUrlRequestDto'];
|
|
7095
|
+
export type ZeltReauthorizeUrlRequestDto = components['schemas']['ZeltReauthorizeUrlRequestDto'];
|
|
7096
|
+
export type ZeltAuthorizeUrlResponseDto = components['schemas']['ZeltAuthorizeUrlResponseDto'];
|
|
7097
|
+
export type ZeltReconnectResultDto = components['schemas']['ZeltReconnectResultDto'];
|
|
6986
7098
|
export type ZenHrBranchDto = components['schemas']['ZenHrBranchDto'];
|
|
6987
7099
|
export type ZenHrBranchesListDto = components['schemas']['ZenHrBranchesListDto'];
|
|
6988
7100
|
export type ZenHrBranchSelectionDto = components['schemas']['ZenHrBranchSelectionDto'];
|
|
@@ -14529,6 +14641,216 @@ export interface operations {
|
|
|
14529
14641
|
403: components["responses"]["Forbidden"];
|
|
14530
14642
|
};
|
|
14531
14643
|
};
|
|
14644
|
+
postWorkspaceZeltAuthorizeUrl: {
|
|
14645
|
+
parameters: {
|
|
14646
|
+
query?: never;
|
|
14647
|
+
header?: never;
|
|
14648
|
+
path: {
|
|
14649
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
14650
|
+
};
|
|
14651
|
+
cookie?: never;
|
|
14652
|
+
};
|
|
14653
|
+
requestBody: {
|
|
14654
|
+
content: {
|
|
14655
|
+
"application/json": components["schemas"]["ZeltAuthorizeUrlRequestDto"];
|
|
14656
|
+
};
|
|
14657
|
+
};
|
|
14658
|
+
responses: {
|
|
14659
|
+
/** @description Authorize URL and opaque state */
|
|
14660
|
+
200: {
|
|
14661
|
+
headers: {
|
|
14662
|
+
[name: string]: unknown;
|
|
14663
|
+
};
|
|
14664
|
+
content: {
|
|
14665
|
+
/**
|
|
14666
|
+
* @example {
|
|
14667
|
+
* "url": "https://go.zelt.app/oauth/authorize?client_id=example&redirect_uri=https%3A%2F%2Fapi.example.com%2Fintegrations%2Fzelt%2Foauth%2Fcallback&response_type=code&state=example-state&scope=user.basicInfo%3Aread",
|
|
14668
|
+
* "state": "example-state"
|
|
14669
|
+
* }
|
|
14670
|
+
*/
|
|
14671
|
+
"application/json": components["schemas"]["ZeltAuthorizeUrlResponseDto"];
|
|
14672
|
+
};
|
|
14673
|
+
};
|
|
14674
|
+
/** @description Invalid request body or return path */
|
|
14675
|
+
400: {
|
|
14676
|
+
headers: {
|
|
14677
|
+
[name: string]: unknown;
|
|
14678
|
+
};
|
|
14679
|
+
content: {
|
|
14680
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14681
|
+
};
|
|
14682
|
+
};
|
|
14683
|
+
401: components["responses"]["Unauthorized"];
|
|
14684
|
+
403: components["responses"]["Forbidden"];
|
|
14685
|
+
/** @description API public origin is not configured */
|
|
14686
|
+
503: {
|
|
14687
|
+
headers: {
|
|
14688
|
+
[name: string]: unknown;
|
|
14689
|
+
};
|
|
14690
|
+
content: {
|
|
14691
|
+
/**
|
|
14692
|
+
* @example {
|
|
14693
|
+
* "error": "api_public_origin_not_configured"
|
|
14694
|
+
* }
|
|
14695
|
+
*/
|
|
14696
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14697
|
+
};
|
|
14698
|
+
};
|
|
14699
|
+
};
|
|
14700
|
+
};
|
|
14701
|
+
postWorkspaceZeltReauthorizeUrl: {
|
|
14702
|
+
parameters: {
|
|
14703
|
+
query?: never;
|
|
14704
|
+
header?: never;
|
|
14705
|
+
path: {
|
|
14706
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
14707
|
+
};
|
|
14708
|
+
cookie?: never;
|
|
14709
|
+
};
|
|
14710
|
+
requestBody?: {
|
|
14711
|
+
content: {
|
|
14712
|
+
"application/json": components["schemas"]["ZeltReauthorizeUrlRequestDto"];
|
|
14713
|
+
};
|
|
14714
|
+
};
|
|
14715
|
+
responses: {
|
|
14716
|
+
/** @description Authorize URL and opaque state */
|
|
14717
|
+
200: {
|
|
14718
|
+
headers: {
|
|
14719
|
+
[name: string]: unknown;
|
|
14720
|
+
};
|
|
14721
|
+
content: {
|
|
14722
|
+
"application/json": components["schemas"]["ZeltAuthorizeUrlResponseDto"];
|
|
14723
|
+
};
|
|
14724
|
+
};
|
|
14725
|
+
/** @description Invalid return path */
|
|
14726
|
+
400: {
|
|
14727
|
+
headers: {
|
|
14728
|
+
[name: string]: unknown;
|
|
14729
|
+
};
|
|
14730
|
+
content: {
|
|
14731
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14732
|
+
};
|
|
14733
|
+
};
|
|
14734
|
+
401: components["responses"]["Unauthorized"];
|
|
14735
|
+
403: components["responses"]["Forbidden"];
|
|
14736
|
+
/** @description Zelt is not connected for this workspace */
|
|
14737
|
+
404: {
|
|
14738
|
+
headers: {
|
|
14739
|
+
[name: string]: unknown;
|
|
14740
|
+
};
|
|
14741
|
+
content: {
|
|
14742
|
+
/**
|
|
14743
|
+
* @example {
|
|
14744
|
+
* "error": "zelt_not_connected"
|
|
14745
|
+
* }
|
|
14746
|
+
*/
|
|
14747
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14748
|
+
};
|
|
14749
|
+
};
|
|
14750
|
+
/** @description API public origin is not configured */
|
|
14751
|
+
503: {
|
|
14752
|
+
headers: {
|
|
14753
|
+
[name: string]: unknown;
|
|
14754
|
+
};
|
|
14755
|
+
content: {
|
|
14756
|
+
/**
|
|
14757
|
+
* @example {
|
|
14758
|
+
* "error": "api_public_origin_not_configured"
|
|
14759
|
+
* }
|
|
14760
|
+
*/
|
|
14761
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14762
|
+
};
|
|
14763
|
+
};
|
|
14764
|
+
};
|
|
14765
|
+
};
|
|
14766
|
+
reconnectWorkspaceZelt: {
|
|
14767
|
+
parameters: {
|
|
14768
|
+
query?: never;
|
|
14769
|
+
header?: never;
|
|
14770
|
+
path: {
|
|
14771
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
14772
|
+
};
|
|
14773
|
+
cookie?: never;
|
|
14774
|
+
};
|
|
14775
|
+
requestBody?: never;
|
|
14776
|
+
responses: {
|
|
14777
|
+
/** @description Silent reconnect succeeded or OAuth is required */
|
|
14778
|
+
200: {
|
|
14779
|
+
headers: {
|
|
14780
|
+
[name: string]: unknown;
|
|
14781
|
+
};
|
|
14782
|
+
content: {
|
|
14783
|
+
"application/json": components["schemas"]["ZeltReconnectResultDto"];
|
|
14784
|
+
};
|
|
14785
|
+
};
|
|
14786
|
+
401: components["responses"]["Unauthorized"];
|
|
14787
|
+
403: components["responses"]["Forbidden"];
|
|
14788
|
+
/** @description Zelt is not connected for this workspace */
|
|
14789
|
+
404: {
|
|
14790
|
+
headers: {
|
|
14791
|
+
[name: string]: unknown;
|
|
14792
|
+
};
|
|
14793
|
+
content: {
|
|
14794
|
+
/**
|
|
14795
|
+
* @example {
|
|
14796
|
+
* "error": "zelt_not_connected"
|
|
14797
|
+
* }
|
|
14798
|
+
*/
|
|
14799
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14800
|
+
};
|
|
14801
|
+
};
|
|
14802
|
+
/** @description Zelt refresh or users ping failed for a non-OAuth reason */
|
|
14803
|
+
502: {
|
|
14804
|
+
headers: {
|
|
14805
|
+
[name: string]: unknown;
|
|
14806
|
+
};
|
|
14807
|
+
content: {
|
|
14808
|
+
/**
|
|
14809
|
+
* @example {
|
|
14810
|
+
* "error": "zelt_reconnect_failed"
|
|
14811
|
+
* }
|
|
14812
|
+
*/
|
|
14813
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14814
|
+
};
|
|
14815
|
+
};
|
|
14816
|
+
/** @description HRIS sync/OAuth refresh already in progress */
|
|
14817
|
+
503: {
|
|
14818
|
+
headers: {
|
|
14819
|
+
[name: string]: unknown;
|
|
14820
|
+
};
|
|
14821
|
+
content: {
|
|
14822
|
+
/**
|
|
14823
|
+
* @example {
|
|
14824
|
+
* "error": "zelt_sync_in_progress"
|
|
14825
|
+
* }
|
|
14826
|
+
*/
|
|
14827
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14828
|
+
};
|
|
14829
|
+
};
|
|
14830
|
+
};
|
|
14831
|
+
};
|
|
14832
|
+
getZeltOauthCallback: {
|
|
14833
|
+
parameters: {
|
|
14834
|
+
query: {
|
|
14835
|
+
code?: string;
|
|
14836
|
+
state: string;
|
|
14837
|
+
error?: string;
|
|
14838
|
+
};
|
|
14839
|
+
header?: never;
|
|
14840
|
+
path?: never;
|
|
14841
|
+
cookie?: never;
|
|
14842
|
+
};
|
|
14843
|
+
requestBody?: never;
|
|
14844
|
+
responses: {
|
|
14845
|
+
/** @description Redirect to SPA return path with zelt status query params */
|
|
14846
|
+
302: {
|
|
14847
|
+
headers: {
|
|
14848
|
+
[name: string]: unknown;
|
|
14849
|
+
};
|
|
14850
|
+
content?: never;
|
|
14851
|
+
};
|
|
14852
|
+
};
|
|
14853
|
+
};
|
|
14532
14854
|
reconnectWorkspaceZenHr: {
|
|
14533
14855
|
parameters: {
|
|
14534
14856
|
query?: never;
|