@thinkai/tai-api-contract 2.149.0 → 2.151.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 +1191 -323
- package/dist/generated/openapi.d.ts.map +1 -1
- package/openapi/openapi.yaml +583 -1
- package/package.json +1 -1
- package/src/generated/openapi.ts +1191 -323
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.151.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}/...`.
|
|
@@ -9200,6 +9200,295 @@ paths:
|
|
|
9200
9200
|
"409":
|
|
9201
9201
|
description: Corpus not ready
|
|
9202
9202
|
|
|
9203
|
+
/notifications/email/unsubscribe:
|
|
9204
|
+
get:
|
|
9205
|
+
tags: [Notifications]
|
|
9206
|
+
summary: Confirm a Message Center email unsubscribe (public)
|
|
9207
|
+
description: >
|
|
9208
|
+
**Unauthenticated.** Mail scanners prefetch GET, so this page does not change
|
|
9209
|
+
preferences. Status email cannot be turned off; the page says so. Other categories
|
|
9210
|
+
show a button that POSTs the same token. An unknown or expired token is `400` HTML.
|
|
9211
|
+
operationId: getNotificationEmailUnsubscribe
|
|
9212
|
+
security: []
|
|
9213
|
+
parameters:
|
|
9214
|
+
- name: token
|
|
9215
|
+
in: query
|
|
9216
|
+
required: true
|
|
9217
|
+
description: Opaque unsubscribe token from the email. Only its SHA-256 hash is stored.
|
|
9218
|
+
schema:
|
|
9219
|
+
type: string
|
|
9220
|
+
responses:
|
|
9221
|
+
"200":
|
|
9222
|
+
description: Confirm page. Preferences are unchanged.
|
|
9223
|
+
content:
|
|
9224
|
+
text/html:
|
|
9225
|
+
schema:
|
|
9226
|
+
type: string
|
|
9227
|
+
"400":
|
|
9228
|
+
description: Unknown or expired token
|
|
9229
|
+
content:
|
|
9230
|
+
text/html:
|
|
9231
|
+
schema:
|
|
9232
|
+
type: string
|
|
9233
|
+
post:
|
|
9234
|
+
tags: [Notifications]
|
|
9235
|
+
summary: Apply a Message Center email unsubscribe (public)
|
|
9236
|
+
description: >
|
|
9237
|
+
**Unauthenticated.** Sets that category's email cell to `off` when the category
|
|
9238
|
+
allows off. A status token leaves status email unchanged. Redirects `303` to
|
|
9239
|
+
`{spa}/settings?tab=preferences`. An unknown or expired token is `400` HTML and
|
|
9240
|
+
does not change preferences.
|
|
9241
|
+
operationId: postNotificationEmailUnsubscribe
|
|
9242
|
+
security: []
|
|
9243
|
+
parameters:
|
|
9244
|
+
- name: token
|
|
9245
|
+
in: query
|
|
9246
|
+
required: true
|
|
9247
|
+
description: Opaque unsubscribe token from the email. Only its SHA-256 hash is stored.
|
|
9248
|
+
schema:
|
|
9249
|
+
type: string
|
|
9250
|
+
responses:
|
|
9251
|
+
"303":
|
|
9252
|
+
description: Preference updated, or left unchanged for status email.
|
|
9253
|
+
headers:
|
|
9254
|
+
Location:
|
|
9255
|
+
description: "`{spa}/settings?tab=preferences`"
|
|
9256
|
+
schema:
|
|
9257
|
+
type: string
|
|
9258
|
+
"400":
|
|
9259
|
+
description: Unknown or expired token
|
|
9260
|
+
content:
|
|
9261
|
+
text/html:
|
|
9262
|
+
schema:
|
|
9263
|
+
type: string
|
|
9264
|
+
"200":
|
|
9265
|
+
description: Preference updated when no SPA origin is configured.
|
|
9266
|
+
content:
|
|
9267
|
+
text/html:
|
|
9268
|
+
schema:
|
|
9269
|
+
type: string
|
|
9270
|
+
|
|
9271
|
+
/workspaces/{workspaceId}/integrations/slack/install-url:
|
|
9272
|
+
get:
|
|
9273
|
+
tags: [Integrations]
|
|
9274
|
+
summary: Slack install URL for Message Center
|
|
9275
|
+
operationId: getSlackInstallUrl
|
|
9276
|
+
description: >
|
|
9277
|
+
Workspace admin only. Returns the Slack OAuth authorize URL. State is stored
|
|
9278
|
+
server-side and names this workspace and the signed-in admin. Editor or viewer
|
|
9279
|
+
is `403` with `code` `workspace_admin_required`. Missing Slack app settings are
|
|
9280
|
+
`503` with `code` `slack_not_configured`.
|
|
9281
|
+
security:
|
|
9282
|
+
- bearerAuth: []
|
|
9283
|
+
parameters:
|
|
9284
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
9285
|
+
responses:
|
|
9286
|
+
"200":
|
|
9287
|
+
description: Slack authorize URL
|
|
9288
|
+
content:
|
|
9289
|
+
application/json:
|
|
9290
|
+
schema:
|
|
9291
|
+
$ref: "#/components/schemas/SlackInstallUrlDto"
|
|
9292
|
+
"401":
|
|
9293
|
+
$ref: "#/components/responses/Unauthorized"
|
|
9294
|
+
"403":
|
|
9295
|
+
description: Caller is not a workspace admin
|
|
9296
|
+
content:
|
|
9297
|
+
application/json:
|
|
9298
|
+
schema:
|
|
9299
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9300
|
+
example:
|
|
9301
|
+
error: Forbidden
|
|
9302
|
+
code: workspace_admin_required
|
|
9303
|
+
"404":
|
|
9304
|
+
description: Workspace does not exist or malformed workspaceId
|
|
9305
|
+
content:
|
|
9306
|
+
application/json:
|
|
9307
|
+
schema:
|
|
9308
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9309
|
+
"503":
|
|
9310
|
+
description: Slack app client id, secret, API origin, or SPA origin is unset
|
|
9311
|
+
content:
|
|
9312
|
+
application/json:
|
|
9313
|
+
schema:
|
|
9314
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9315
|
+
example:
|
|
9316
|
+
error: Slack is not configured
|
|
9317
|
+
code: slack_not_configured
|
|
9318
|
+
|
|
9319
|
+
/integrations/slack/callback:
|
|
9320
|
+
get:
|
|
9321
|
+
tags: [Integrations]
|
|
9322
|
+
summary: Slack OAuth callback
|
|
9323
|
+
operationId: getSlackOauthCallback
|
|
9324
|
+
description: >
|
|
9325
|
+
Browser return from Slack. The provider redirect does not include the API
|
|
9326
|
+
bearer token. `state` was issued by `getSlackInstallUrl` to a signed-in admin
|
|
9327
|
+
and is single-use. The bot token is stored encrypted only when that user is
|
|
9328
|
+
still a workspace admin. Success redirects to
|
|
9329
|
+
`{spa}/settings?tab=preferences&chat=slack`. Failures redirect to the same
|
|
9330
|
+
page with `slack=error`. The token is never in the redirect.
|
|
9331
|
+
parameters:
|
|
9332
|
+
- name: code
|
|
9333
|
+
in: query
|
|
9334
|
+
schema:
|
|
9335
|
+
type: string
|
|
9336
|
+
- name: state
|
|
9337
|
+
in: query
|
|
9338
|
+
required: true
|
|
9339
|
+
schema:
|
|
9340
|
+
type: string
|
|
9341
|
+
- name: error
|
|
9342
|
+
in: query
|
|
9343
|
+
schema:
|
|
9344
|
+
type: string
|
|
9345
|
+
responses:
|
|
9346
|
+
"302":
|
|
9347
|
+
description: Redirect to Settings → Preferences
|
|
9348
|
+
headers:
|
|
9349
|
+
Location:
|
|
9350
|
+
schema:
|
|
9351
|
+
type: string
|
|
9352
|
+
"503":
|
|
9353
|
+
description: Slack app settings are unset and no SPA origin is available
|
|
9354
|
+
content:
|
|
9355
|
+
application/json:
|
|
9356
|
+
schema:
|
|
9357
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9358
|
+
|
|
9359
|
+
/workspaces/{workspaceId}/integrations/slack:
|
|
9360
|
+
get:
|
|
9361
|
+
tags: [Integrations]
|
|
9362
|
+
summary: Slack connection status
|
|
9363
|
+
operationId: getSlackIntegration
|
|
9364
|
+
description: >
|
|
9365
|
+
Any workspace member. `{ connected, channelName }`. `channelName` is null
|
|
9366
|
+
until an admin saves a channel. The bot token is never returned.
|
|
9367
|
+
security:
|
|
9368
|
+
- bearerAuth: []
|
|
9369
|
+
parameters:
|
|
9370
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
9371
|
+
responses:
|
|
9372
|
+
"200":
|
|
9373
|
+
description: Slack connection status
|
|
9374
|
+
content:
|
|
9375
|
+
application/json:
|
|
9376
|
+
schema:
|
|
9377
|
+
$ref: "#/components/schemas/SlackIntegrationStatusDto"
|
|
9378
|
+
"401":
|
|
9379
|
+
$ref: "#/components/responses/Unauthorized"
|
|
9380
|
+
"403":
|
|
9381
|
+
$ref: "#/components/responses/Forbidden"
|
|
9382
|
+
"404":
|
|
9383
|
+
description: Workspace does not exist or malformed workspaceId
|
|
9384
|
+
content:
|
|
9385
|
+
application/json:
|
|
9386
|
+
schema:
|
|
9387
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9388
|
+
delete:
|
|
9389
|
+
tags: [Integrations]
|
|
9390
|
+
summary: Disconnect Slack
|
|
9391
|
+
operationId: deleteSlackIntegration
|
|
9392
|
+
description: >
|
|
9393
|
+
Workspace admin only. Removes the bot token and saved channel. Later
|
|
9394
|
+
Message Center delivery does not post to Slack.
|
|
9395
|
+
security:
|
|
9396
|
+
- bearerAuth: []
|
|
9397
|
+
parameters:
|
|
9398
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
9399
|
+
responses:
|
|
9400
|
+
"204":
|
|
9401
|
+
description: Slack disconnected
|
|
9402
|
+
"401":
|
|
9403
|
+
$ref: "#/components/responses/Unauthorized"
|
|
9404
|
+
"403":
|
|
9405
|
+
description: Caller is not a workspace admin
|
|
9406
|
+
content:
|
|
9407
|
+
application/json:
|
|
9408
|
+
schema:
|
|
9409
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9410
|
+
example:
|
|
9411
|
+
error: Forbidden
|
|
9412
|
+
code: workspace_admin_required
|
|
9413
|
+
"404":
|
|
9414
|
+
description: Workspace does not exist or malformed workspaceId
|
|
9415
|
+
content:
|
|
9416
|
+
application/json:
|
|
9417
|
+
schema:
|
|
9418
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9419
|
+
|
|
9420
|
+
/workspaces/{workspaceId}/integrations/slack/channel:
|
|
9421
|
+
put:
|
|
9422
|
+
tags: [Integrations]
|
|
9423
|
+
summary: Save the Slack channel for Message Center
|
|
9424
|
+
operationId: putSlackChannel
|
|
9425
|
+
description: >
|
|
9426
|
+
Workspace admin only. Body `{ channelId }`. Slack must already be connected.
|
|
9427
|
+
The response is the same status object as `getSlackIntegration`, with the
|
|
9428
|
+
channel name Slack returned. Unknown or malformed `channelId` is `400`
|
|
9429
|
+
`invalid_slack_channel`. Not connected is `409` `slack_not_connected`.
|
|
9430
|
+
security:
|
|
9431
|
+
- bearerAuth: []
|
|
9432
|
+
parameters:
|
|
9433
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
9434
|
+
requestBody:
|
|
9435
|
+
required: true
|
|
9436
|
+
content:
|
|
9437
|
+
application/json:
|
|
9438
|
+
schema:
|
|
9439
|
+
$ref: "#/components/schemas/SlackChannelBodyDto"
|
|
9440
|
+
responses:
|
|
9441
|
+
"200":
|
|
9442
|
+
description: Channel saved
|
|
9443
|
+
content:
|
|
9444
|
+
application/json:
|
|
9445
|
+
schema:
|
|
9446
|
+
$ref: "#/components/schemas/SlackIntegrationStatusDto"
|
|
9447
|
+
"400":
|
|
9448
|
+
description: channelId is missing, malformed, or unknown to Slack
|
|
9449
|
+
content:
|
|
9450
|
+
application/json:
|
|
9451
|
+
schema:
|
|
9452
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9453
|
+
example:
|
|
9454
|
+
error: Slack channel was not found
|
|
9455
|
+
code: invalid_slack_channel
|
|
9456
|
+
"401":
|
|
9457
|
+
$ref: "#/components/responses/Unauthorized"
|
|
9458
|
+
"403":
|
|
9459
|
+
description: Caller is not a workspace admin
|
|
9460
|
+
content:
|
|
9461
|
+
application/json:
|
|
9462
|
+
schema:
|
|
9463
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9464
|
+
example:
|
|
9465
|
+
error: Forbidden
|
|
9466
|
+
code: workspace_admin_required
|
|
9467
|
+
"404":
|
|
9468
|
+
description: Workspace does not exist or malformed workspaceId
|
|
9469
|
+
content:
|
|
9470
|
+
application/json:
|
|
9471
|
+
schema:
|
|
9472
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9473
|
+
"409":
|
|
9474
|
+
description: Slack is not connected
|
|
9475
|
+
content:
|
|
9476
|
+
application/json:
|
|
9477
|
+
schema:
|
|
9478
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9479
|
+
example:
|
|
9480
|
+
error: Slack is not connected
|
|
9481
|
+
code: slack_not_connected
|
|
9482
|
+
"502":
|
|
9483
|
+
description: Slack rejected the lookup
|
|
9484
|
+
content:
|
|
9485
|
+
application/json:
|
|
9486
|
+
schema:
|
|
9487
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
9488
|
+
example:
|
|
9489
|
+
error: Slack did not accept the channel
|
|
9490
|
+
code: slack_request_failed
|
|
9491
|
+
|
|
9203
9492
|
/workspaces/{workspaceId}/notifications:
|
|
9204
9493
|
get:
|
|
9205
9494
|
tags: [Notifications]
|
|
@@ -9960,6 +10249,239 @@ paths:
|
|
|
9960
10249
|
"403":
|
|
9961
10250
|
$ref: "#/components/responses/Forbidden"
|
|
9962
10251
|
|
|
10252
|
+
/workspaces/{workspaceId}/integrations/teams/install-url:
|
|
10253
|
+
get:
|
|
10254
|
+
tags: [Integrations, Notifications]
|
|
10255
|
+
summary: Microsoft sign-in URL for Teams notification delivery
|
|
10256
|
+
operationId: getWorkspaceTeamsInstallUrl
|
|
10257
|
+
description: >
|
|
10258
|
+
Workspace **admin** only. Returns the Microsoft authorize URL. State carries the
|
|
10259
|
+
workspace and the signed-in admin. Editor or viewer is `403` `workspace_admin_required`.
|
|
10260
|
+
parameters:
|
|
10261
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
10262
|
+
responses:
|
|
10263
|
+
"200":
|
|
10264
|
+
description: Authorize URL
|
|
10265
|
+
content:
|
|
10266
|
+
application/json:
|
|
10267
|
+
schema:
|
|
10268
|
+
$ref: "#/components/schemas/TeamsInstallUrlDto"
|
|
10269
|
+
example:
|
|
10270
|
+
url: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=example&state=example-state"
|
|
10271
|
+
"401":
|
|
10272
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10273
|
+
"403":
|
|
10274
|
+
description: Editor or viewer
|
|
10275
|
+
content:
|
|
10276
|
+
application/json:
|
|
10277
|
+
schema:
|
|
10278
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10279
|
+
example:
|
|
10280
|
+
error: Forbidden
|
|
10281
|
+
code: workspace_admin_required
|
|
10282
|
+
"404":
|
|
10283
|
+
description: Workspace not found
|
|
10284
|
+
content:
|
|
10285
|
+
application/json:
|
|
10286
|
+
schema:
|
|
10287
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10288
|
+
example:
|
|
10289
|
+
error: Not found
|
|
10290
|
+
"503":
|
|
10291
|
+
description: Teams app credentials are not configured
|
|
10292
|
+
content:
|
|
10293
|
+
application/json:
|
|
10294
|
+
schema:
|
|
10295
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10296
|
+
example:
|
|
10297
|
+
error: Teams sign-in is not configured
|
|
10298
|
+
code: teams_not_configured
|
|
10299
|
+
|
|
10300
|
+
/integrations/teams/callback:
|
|
10301
|
+
get:
|
|
10302
|
+
tags: [Integrations, Notifications]
|
|
10303
|
+
summary: Finish Teams Microsoft sign-in
|
|
10304
|
+
operationId: getTeamsIntegrationCallback
|
|
10305
|
+
description: >
|
|
10306
|
+
Public redirect target. The one-time state was minted by a signed-in admin and
|
|
10307
|
+
still requires that user to be a workspace admin. Stores the bot token encrypted
|
|
10308
|
+
and redirects to `{spa}/settings?tab=preferences&chat=teams`.
|
|
10309
|
+
security: []
|
|
10310
|
+
parameters:
|
|
10311
|
+
- name: code
|
|
10312
|
+
in: query
|
|
10313
|
+
schema:
|
|
10314
|
+
type: string
|
|
10315
|
+
- name: state
|
|
10316
|
+
in: query
|
|
10317
|
+
required: true
|
|
10318
|
+
schema:
|
|
10319
|
+
type: string
|
|
10320
|
+
- name: error
|
|
10321
|
+
in: query
|
|
10322
|
+
schema:
|
|
10323
|
+
type: string
|
|
10324
|
+
responses:
|
|
10325
|
+
"302":
|
|
10326
|
+
description: Redirect to Settings → Preferences
|
|
10327
|
+
headers:
|
|
10328
|
+
Location:
|
|
10329
|
+
schema:
|
|
10330
|
+
type: string
|
|
10331
|
+
example: "https://app.example.com/settings?tab=preferences&chat=teams"
|
|
10332
|
+
"503":
|
|
10333
|
+
description: SPA origin is not configured
|
|
10334
|
+
content:
|
|
10335
|
+
application/json:
|
|
10336
|
+
schema:
|
|
10337
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10338
|
+
|
|
10339
|
+
/workspaces/{workspaceId}/integrations/teams:
|
|
10340
|
+
get:
|
|
10341
|
+
tags: [Integrations, Notifications]
|
|
10342
|
+
summary: Teams connection status
|
|
10343
|
+
operationId: getWorkspaceTeamsConnection
|
|
10344
|
+
description: >
|
|
10345
|
+
Any workspace member. `{ connected, channelName }`. Never returns the bot token.
|
|
10346
|
+
`channelName` is null until an admin saves a channel.
|
|
10347
|
+
parameters:
|
|
10348
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
10349
|
+
responses:
|
|
10350
|
+
"200":
|
|
10351
|
+
description: Connection status
|
|
10352
|
+
content:
|
|
10353
|
+
application/json:
|
|
10354
|
+
schema:
|
|
10355
|
+
$ref: "#/components/schemas/TeamsConnectionDto"
|
|
10356
|
+
example:
|
|
10357
|
+
connected: true
|
|
10358
|
+
channelName: General
|
|
10359
|
+
"401":
|
|
10360
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10361
|
+
"403":
|
|
10362
|
+
$ref: "#/components/responses/Forbidden"
|
|
10363
|
+
"404":
|
|
10364
|
+
description: Workspace not found
|
|
10365
|
+
content:
|
|
10366
|
+
application/json:
|
|
10367
|
+
schema:
|
|
10368
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10369
|
+
example:
|
|
10370
|
+
error: Not found
|
|
10371
|
+
delete:
|
|
10372
|
+
tags: [Integrations, Notifications]
|
|
10373
|
+
summary: Disconnect Teams
|
|
10374
|
+
operationId: deleteWorkspaceTeamsConnection
|
|
10375
|
+
description: >
|
|
10376
|
+
Workspace **admin** only. Later Message Center posts do not go to Teams.
|
|
10377
|
+
Member chat cells stay unchanged.
|
|
10378
|
+
parameters:
|
|
10379
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
10380
|
+
responses:
|
|
10381
|
+
"204":
|
|
10382
|
+
description: Disconnected
|
|
10383
|
+
"401":
|
|
10384
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10385
|
+
"403":
|
|
10386
|
+
description: Editor or viewer
|
|
10387
|
+
content:
|
|
10388
|
+
application/json:
|
|
10389
|
+
schema:
|
|
10390
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10391
|
+
example:
|
|
10392
|
+
error: Forbidden
|
|
10393
|
+
code: workspace_admin_required
|
|
10394
|
+
"404":
|
|
10395
|
+
description: Workspace not found
|
|
10396
|
+
content:
|
|
10397
|
+
application/json:
|
|
10398
|
+
schema:
|
|
10399
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10400
|
+
example:
|
|
10401
|
+
error: Not found
|
|
10402
|
+
|
|
10403
|
+
/workspaces/{workspaceId}/integrations/teams/channel:
|
|
10404
|
+
put:
|
|
10405
|
+
tags: [Integrations, Notifications]
|
|
10406
|
+
summary: Save the Teams channel for notification posts
|
|
10407
|
+
operationId: putWorkspaceTeamsChannel
|
|
10408
|
+
description: >
|
|
10409
|
+
Workspace **admin** only. Body `{ channelId }`. The channel must be visible to the
|
|
10410
|
+
connected Microsoft account. Until a channel is saved, channel-mode delivery is
|
|
10411
|
+
skipped with `chat_channel_unset`.
|
|
10412
|
+
parameters:
|
|
10413
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
10414
|
+
requestBody:
|
|
10415
|
+
required: true
|
|
10416
|
+
content:
|
|
10417
|
+
application/json:
|
|
10418
|
+
schema:
|
|
10419
|
+
$ref: "#/components/schemas/TeamsChannelBodyDto"
|
|
10420
|
+
example:
|
|
10421
|
+
channelId: "19:example@thread.tacv2"
|
|
10422
|
+
responses:
|
|
10423
|
+
"200":
|
|
10424
|
+
description: Channel saved
|
|
10425
|
+
content:
|
|
10426
|
+
application/json:
|
|
10427
|
+
schema:
|
|
10428
|
+
$ref: "#/components/schemas/TeamsConnectionDto"
|
|
10429
|
+
example:
|
|
10430
|
+
connected: true
|
|
10431
|
+
channelName: General
|
|
10432
|
+
"400":
|
|
10433
|
+
description: Missing channelId, or the channel was not found
|
|
10434
|
+
content:
|
|
10435
|
+
application/json:
|
|
10436
|
+
schema:
|
|
10437
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10438
|
+
examples:
|
|
10439
|
+
invalid:
|
|
10440
|
+
value:
|
|
10441
|
+
error: channelId is required
|
|
10442
|
+
code: invalid_input
|
|
10443
|
+
missing:
|
|
10444
|
+
value:
|
|
10445
|
+
error: Teams channel was not found
|
|
10446
|
+
code: teams_channel_not_found
|
|
10447
|
+
"401":
|
|
10448
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10449
|
+
"403":
|
|
10450
|
+
description: Editor or viewer
|
|
10451
|
+
content:
|
|
10452
|
+
application/json:
|
|
10453
|
+
schema:
|
|
10454
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10455
|
+
example:
|
|
10456
|
+
error: Forbidden
|
|
10457
|
+
code: workspace_admin_required
|
|
10458
|
+
"404":
|
|
10459
|
+
description: Workspace not found
|
|
10460
|
+
content:
|
|
10461
|
+
application/json:
|
|
10462
|
+
schema:
|
|
10463
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10464
|
+
example:
|
|
10465
|
+
error: Not found
|
|
10466
|
+
"409":
|
|
10467
|
+
description: Teams is not connected
|
|
10468
|
+
content:
|
|
10469
|
+
application/json:
|
|
10470
|
+
schema:
|
|
10471
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10472
|
+
example:
|
|
10473
|
+
error: Teams is not connected
|
|
10474
|
+
code: teams_not_connected
|
|
10475
|
+
"502":
|
|
10476
|
+
description: Microsoft Graph rejected the channel lookup
|
|
10477
|
+
content:
|
|
10478
|
+
application/json:
|
|
10479
|
+
schema:
|
|
10480
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
10481
|
+
example:
|
|
10482
|
+
error: Teams channel lookup failed
|
|
10483
|
+
code: teams_graph_failed
|
|
10484
|
+
|
|
9963
10485
|
/workspaces/{workspaceId}/integrations/zelt/authorize-url:
|
|
9964
10486
|
post:
|
|
9965
10487
|
tags: [HRIS, Integrations]
|
|
@@ -10972,6 +11494,35 @@ components:
|
|
|
10972
11494
|
error: zenhr_sync_in_progress
|
|
10973
11495
|
|
|
10974
11496
|
schemas:
|
|
11497
|
+
TeamsInstallUrlDto:
|
|
11498
|
+
type: object
|
|
11499
|
+
required: [url]
|
|
11500
|
+
properties:
|
|
11501
|
+
url:
|
|
11502
|
+
type: string
|
|
11503
|
+
format: uri
|
|
11504
|
+
|
|
11505
|
+
TeamsConnectionDto:
|
|
11506
|
+
type: object
|
|
11507
|
+
required: [connected, channelName]
|
|
11508
|
+
properties:
|
|
11509
|
+
connected:
|
|
11510
|
+
type: boolean
|
|
11511
|
+
description: True after an admin completes Microsoft sign-in.
|
|
11512
|
+
channelName:
|
|
11513
|
+
type: string
|
|
11514
|
+
nullable: true
|
|
11515
|
+
description: Selected channel display name. Null until an admin saves a channel.
|
|
11516
|
+
|
|
11517
|
+
TeamsChannelBodyDto:
|
|
11518
|
+
type: object
|
|
11519
|
+
required: [channelId]
|
|
11520
|
+
properties:
|
|
11521
|
+
channelId:
|
|
11522
|
+
type: string
|
|
11523
|
+
minLength: 1
|
|
11524
|
+
maxLength: 256
|
|
11525
|
+
|
|
10975
11526
|
ErrorMessageDto:
|
|
10976
11527
|
type: object
|
|
10977
11528
|
required: [error]
|
|
@@ -18834,6 +19385,37 @@ components:
|
|
|
18834
19385
|
teams:
|
|
18835
19386
|
$ref: "#/components/schemas/NotificationChatChannelsDto"
|
|
18836
19387
|
|
|
19388
|
+
SlackInstallUrlDto:
|
|
19389
|
+
type: object
|
|
19390
|
+
additionalProperties: false
|
|
19391
|
+
required: [url]
|
|
19392
|
+
properties:
|
|
19393
|
+
url:
|
|
19394
|
+
type: string
|
|
19395
|
+
description: Slack OAuth authorize URL. The bot token is not included.
|
|
19396
|
+
|
|
19397
|
+
SlackIntegrationStatusDto:
|
|
19398
|
+
type: object
|
|
19399
|
+
additionalProperties: false
|
|
19400
|
+
required: [connected, channelName]
|
|
19401
|
+
properties:
|
|
19402
|
+
connected:
|
|
19403
|
+
type: boolean
|
|
19404
|
+
channelName:
|
|
19405
|
+
type: string
|
|
19406
|
+
nullable: true
|
|
19407
|
+
description: Saved channel name. Null until an admin saves a channel, and when disconnected.
|
|
19408
|
+
|
|
19409
|
+
SlackChannelBodyDto:
|
|
19410
|
+
type: object
|
|
19411
|
+
additionalProperties: false
|
|
19412
|
+
required: [channelId]
|
|
19413
|
+
properties:
|
|
19414
|
+
channelId:
|
|
19415
|
+
type: string
|
|
19416
|
+
minLength: 1
|
|
19417
|
+
maxLength: 32
|
|
19418
|
+
|
|
18837
19419
|
PutNotificationEmailChannelsDto:
|
|
18838
19420
|
type: object
|
|
18839
19421
|
additionalProperties: false
|