@thinkai/tai-api-contract 2.183.0 → 2.185.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 +211 -7
- package/dist/generated/openapi.d.ts.map +1 -1
- package/openapi/openapi.yaml +232 -6
- package/package.json +1 -1
- package/src/generated/openapi.ts +211 -7
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.185.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}/...`.
|
|
@@ -2487,6 +2487,7 @@ paths:
|
|
|
2487
2487
|
- $ref: "#/components/schemas/ClaudeSourceDto"
|
|
2488
2488
|
- $ref: "#/components/schemas/CodeIntelligenceSourcePatchDto"
|
|
2489
2489
|
- $ref: "#/components/schemas/NewRelicSourceDto"
|
|
2490
|
+
- $ref: "#/components/schemas/DatadogSourceDto"
|
|
2490
2491
|
- $ref: "#/components/schemas/PrometheusSourceDto"
|
|
2491
2492
|
- $ref: "#/components/schemas/GrafanaSourceDto"
|
|
2492
2493
|
- $ref: "#/components/schemas/SonarQubeSourceDto"
|
|
@@ -2608,6 +2609,7 @@ paths:
|
|
|
2608
2609
|
- $ref: "#/components/schemas/ClaudeSourceDto"
|
|
2609
2610
|
- $ref: "#/components/schemas/CodeIntelligenceSourcePatchDto"
|
|
2610
2611
|
- $ref: "#/components/schemas/NewRelicSourceDto"
|
|
2612
|
+
- $ref: "#/components/schemas/DatadogSourceDto"
|
|
2611
2613
|
- $ref: "#/components/schemas/PrometheusSourceDto"
|
|
2612
2614
|
- $ref: "#/components/schemas/GrafanaSourceDto"
|
|
2613
2615
|
- $ref: "#/components/schemas/SonarQubeSourceDto"
|
|
@@ -2637,6 +2639,13 @@ paths:
|
|
|
2637
2639
|
baseUrl: https://sonarqube.example.com
|
|
2638
2640
|
token: sonarqube_api_token_example
|
|
2639
2641
|
projectKey: my-project
|
|
2642
|
+
datadogValid:
|
|
2643
|
+
summary: Datadog source for connection test (US1)
|
|
2644
|
+
value:
|
|
2645
|
+
type: datadog
|
|
2646
|
+
apiKey: datadog_api_key_example
|
|
2647
|
+
appKey: datadog_app_key_example
|
|
2648
|
+
site: datadoghq.com
|
|
2640
2649
|
githubShape:
|
|
2641
2650
|
summary: GitHub-shaped body (non-AI-tool types return unsupported_type unless extended)
|
|
2642
2651
|
value:
|
|
@@ -6362,6 +6371,76 @@ paths:
|
|
|
6362
6371
|
schema:
|
|
6363
6372
|
$ref: "#/components/schemas/GrafanaTriggerSyncResultDto"
|
|
6364
6373
|
|
|
6374
|
+
/workspaces/{workspaceId}/integrations/datadog:
|
|
6375
|
+
get:
|
|
6376
|
+
tags: [Integrations]
|
|
6377
|
+
summary: Datadog monitoring integration status
|
|
6378
|
+
operationId: getWorkspaceDatadogIntegrationStatus
|
|
6379
|
+
description: >
|
|
6380
|
+
Returns whether Datadog is connected for the workspace (site + dual keys) and the last
|
|
6381
|
+
monitoring ingest sync outcome (incidents/deployments pulled into Quality and DORA metrics).
|
|
6382
|
+
parameters:
|
|
6383
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
6384
|
+
responses:
|
|
6385
|
+
"200":
|
|
6386
|
+
description: Datadog integration status
|
|
6387
|
+
content:
|
|
6388
|
+
application/json:
|
|
6389
|
+
schema:
|
|
6390
|
+
$ref: "#/components/schemas/DatadogIntegrationStatusDto"
|
|
6391
|
+
"401":
|
|
6392
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6393
|
+
"403":
|
|
6394
|
+
$ref: "#/components/responses/Forbidden"
|
|
6395
|
+
"404":
|
|
6396
|
+
description: Workspace does not exist or malformed workspaceId
|
|
6397
|
+
content:
|
|
6398
|
+
application/json:
|
|
6399
|
+
schema:
|
|
6400
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
6401
|
+
|
|
6402
|
+
/workspaces/{workspaceId}/integrations/datadog/sync:
|
|
6403
|
+
post:
|
|
6404
|
+
tags: [Integrations]
|
|
6405
|
+
summary: Trigger Datadog monitoring ingest now
|
|
6406
|
+
operationId: postWorkspaceDatadogIntegrationSync
|
|
6407
|
+
description: >
|
|
6408
|
+
Manually polls Datadog for incidents and deployment-tagged events, persists canonical
|
|
6409
|
+
monitoring events, and refreshes org-level Quality/DORA dashboard buckets. Requires editor role.
|
|
6410
|
+
security:
|
|
6411
|
+
- bearerAuth: []
|
|
6412
|
+
parameters:
|
|
6413
|
+
- $ref: "#/components/parameters/WorkspaceId"
|
|
6414
|
+
responses:
|
|
6415
|
+
"200":
|
|
6416
|
+
description: Sync completed
|
|
6417
|
+
content:
|
|
6418
|
+
application/json:
|
|
6419
|
+
schema:
|
|
6420
|
+
$ref: "#/components/schemas/DatadogTriggerSyncResultDto"
|
|
6421
|
+
"401":
|
|
6422
|
+
$ref: "#/components/responses/Unauthorized"
|
|
6423
|
+
"403":
|
|
6424
|
+
$ref: "#/components/responses/Forbidden"
|
|
6425
|
+
"404":
|
|
6426
|
+
description: Workspace does not exist or malformed workspaceId
|
|
6427
|
+
content:
|
|
6428
|
+
application/json:
|
|
6429
|
+
schema:
|
|
6430
|
+
$ref: "#/components/schemas/ErrorMessageDto"
|
|
6431
|
+
"422":
|
|
6432
|
+
description: Datadog is not connected on this workspace
|
|
6433
|
+
content:
|
|
6434
|
+
application/json:
|
|
6435
|
+
schema:
|
|
6436
|
+
$ref: "#/components/schemas/DatadogTriggerSyncResultDto"
|
|
6437
|
+
"503":
|
|
6438
|
+
description: Sync failed (Datadog API or persistence error)
|
|
6439
|
+
content:
|
|
6440
|
+
application/json:
|
|
6441
|
+
schema:
|
|
6442
|
+
$ref: "#/components/schemas/DatadogTriggerSyncResultDto"
|
|
6443
|
+
|
|
6365
6444
|
/integrations/github/webhook:
|
|
6366
6445
|
post:
|
|
6367
6446
|
tags: [Integrations]
|
|
@@ -15003,6 +15082,74 @@ components:
|
|
|
15003
15082
|
type: string
|
|
15004
15083
|
description: New Relic user name when known from the last successful verify.
|
|
15005
15084
|
|
|
15085
|
+
DatadogSourceDto:
|
|
15086
|
+
type: object
|
|
15087
|
+
description: >
|
|
15088
|
+
Datadog monitoring source for `PUT /workspaces/{workspaceId}/sources` and
|
|
15089
|
+
`POST /workspaces/{workspaceId}/sources/test`. Requires an API key, an Application
|
|
15090
|
+
key, and a site host suffix (US1/US3/US5/EU/AP1). Raw keys are write-only.
|
|
15091
|
+
required: [type, apiKey, appKey, site]
|
|
15092
|
+
additionalProperties: false
|
|
15093
|
+
properties:
|
|
15094
|
+
type:
|
|
15095
|
+
type: string
|
|
15096
|
+
enum: [datadog]
|
|
15097
|
+
apiKey:
|
|
15098
|
+
type: string
|
|
15099
|
+
minLength: 1
|
|
15100
|
+
maxLength: 512
|
|
15101
|
+
description: Datadog API key (write-only on PUT; encrypted at rest).
|
|
15102
|
+
appKey:
|
|
15103
|
+
type: string
|
|
15104
|
+
minLength: 1
|
|
15105
|
+
maxLength: 512
|
|
15106
|
+
description: Datadog Application key (write-only on PUT; encrypted at rest).
|
|
15107
|
+
site:
|
|
15108
|
+
type: string
|
|
15109
|
+
enum:
|
|
15110
|
+
- datadoghq.com
|
|
15111
|
+
- us3.datadoghq.com
|
|
15112
|
+
- us5.datadoghq.com
|
|
15113
|
+
- datadoghq.eu
|
|
15114
|
+
- ap1.datadoghq.com
|
|
15115
|
+
description: >
|
|
15116
|
+
Datadog site host suffix. Maps to API host `api.{site}`
|
|
15117
|
+
(US1 `datadoghq.com`, US3 `us3.datadoghq.com`, US5 `us5.datadoghq.com`,
|
|
15118
|
+
EU `datadoghq.eu`, AP1 `ap1.datadoghq.com`). Gov/custom sites are out of scope.
|
|
15119
|
+
orgName:
|
|
15120
|
+
type: string
|
|
15121
|
+
description: Optional org display name returned from a successful connection test.
|
|
15122
|
+
|
|
15123
|
+
DatadogSourceConfigDto:
|
|
15124
|
+
type: object
|
|
15125
|
+
description: >
|
|
15126
|
+
Redacted Datadog source returned by `GET /workspaces/{workspaceId}/config`.
|
|
15127
|
+
Raw `apiKey` and `appKey` are never returned.
|
|
15128
|
+
required: [type, hasApiKey, hasAppKey, site]
|
|
15129
|
+
additionalProperties: false
|
|
15130
|
+
properties:
|
|
15131
|
+
type:
|
|
15132
|
+
type: string
|
|
15133
|
+
enum: [datadog]
|
|
15134
|
+
hasApiKey:
|
|
15135
|
+
type: boolean
|
|
15136
|
+
description: Whether a Datadog API key is stored for this workspace.
|
|
15137
|
+
hasAppKey:
|
|
15138
|
+
type: boolean
|
|
15139
|
+
description: Whether a Datadog Application key is stored for this workspace.
|
|
15140
|
+
site:
|
|
15141
|
+
type: string
|
|
15142
|
+
enum:
|
|
15143
|
+
- datadoghq.com
|
|
15144
|
+
- us3.datadoghq.com
|
|
15145
|
+
- us5.datadoghq.com
|
|
15146
|
+
- datadoghq.eu
|
|
15147
|
+
- ap1.datadoghq.com
|
|
15148
|
+
description: Configured Datadog site host suffix.
|
|
15149
|
+
orgName:
|
|
15150
|
+
type: string
|
|
15151
|
+
description: Org display name when known from the last successful verify.
|
|
15152
|
+
|
|
15006
15153
|
PrometheusSourceDto:
|
|
15007
15154
|
type: object
|
|
15008
15155
|
description: >
|
|
@@ -15558,6 +15705,7 @@ components:
|
|
|
15558
15705
|
- $ref: "#/components/schemas/ClaudeSourceConfigDto"
|
|
15559
15706
|
- $ref: "#/components/schemas/CodeIntelligenceSourceConfigDto"
|
|
15560
15707
|
- $ref: "#/components/schemas/NewRelicSourceConfigDto"
|
|
15708
|
+
- $ref: "#/components/schemas/DatadogSourceConfigDto"
|
|
15561
15709
|
- $ref: "#/components/schemas/PrometheusSourceConfigDto"
|
|
15562
15710
|
- $ref: "#/components/schemas/GrafanaSourceConfigDto"
|
|
15563
15711
|
- $ref: "#/components/schemas/SonarQubeSourceConfigDto"
|
|
@@ -15818,7 +15966,7 @@ components:
|
|
|
15818
15966
|
description: Present for New Relic or Jira verify success — resolved account ID.
|
|
15819
15967
|
orgName:
|
|
15820
15968
|
type: string
|
|
15821
|
-
description: Present for Grafana verify success — resolved organization name.
|
|
15969
|
+
description: Present for Grafana or Datadog verify success — resolved organization name.
|
|
15822
15970
|
clusterName:
|
|
15823
15971
|
type: string
|
|
15824
15972
|
description: Present for Prometheus verify success — Alertmanager cluster name.
|
|
@@ -19296,6 +19444,80 @@ components:
|
|
|
19296
19444
|
error:
|
|
19297
19445
|
type: string
|
|
19298
19446
|
|
|
19447
|
+
DatadogIntegrationStatusDto:
|
|
19448
|
+
type: object
|
|
19449
|
+
additionalProperties: false
|
|
19450
|
+
required: [connected, status]
|
|
19451
|
+
properties:
|
|
19452
|
+
connected:
|
|
19453
|
+
type: boolean
|
|
19454
|
+
description: "True when a type:datadog workspace source is configured."
|
|
19455
|
+
site:
|
|
19456
|
+
type: string
|
|
19457
|
+
enum:
|
|
19458
|
+
- datadoghq.com
|
|
19459
|
+
- us3.datadoghq.com
|
|
19460
|
+
- us5.datadoghq.com
|
|
19461
|
+
- datadoghq.eu
|
|
19462
|
+
- ap1.datadoghq.com
|
|
19463
|
+
description: Configured Datadog site when connected.
|
|
19464
|
+
orgName:
|
|
19465
|
+
type: string
|
|
19466
|
+
description: Org display name when known from the last successful verify.
|
|
19467
|
+
lastSyncAt:
|
|
19468
|
+
type: string
|
|
19469
|
+
format: date-time
|
|
19470
|
+
nullable: true
|
|
19471
|
+
description: Timestamp of the last monitoring ingest attempt (success or failure).
|
|
19472
|
+
status:
|
|
19473
|
+
type: string
|
|
19474
|
+
enum: [ok, error, never]
|
|
19475
|
+
description: Outcome of the most recent sync (`never` when not yet synced).
|
|
19476
|
+
lastError:
|
|
19477
|
+
type: string
|
|
19478
|
+
nullable: true
|
|
19479
|
+
issueCount:
|
|
19480
|
+
type: integer
|
|
19481
|
+
nullable: true
|
|
19482
|
+
description: Incidents fetched on the last successful sync (30d lookback).
|
|
19483
|
+
deploymentCount:
|
|
19484
|
+
type: integer
|
|
19485
|
+
nullable: true
|
|
19486
|
+
description: Deployment-tagged events fetched on the last successful sync (30d lookback).
|
|
19487
|
+
eventCount:
|
|
19488
|
+
type: integer
|
|
19489
|
+
nullable: true
|
|
19490
|
+
description: Canonical monitoring events upserted on the last successful sync.
|
|
19491
|
+
|
|
19492
|
+
DatadogTriggerSyncResultDto:
|
|
19493
|
+
type: object
|
|
19494
|
+
additionalProperties: false
|
|
19495
|
+
required: [status]
|
|
19496
|
+
properties:
|
|
19497
|
+
status:
|
|
19498
|
+
type: string
|
|
19499
|
+
enum: [ok, skipped, error]
|
|
19500
|
+
code:
|
|
19501
|
+
type: string
|
|
19502
|
+
description: Stable machine-readable code (e.g. `datadog_not_connected`).
|
|
19503
|
+
reason:
|
|
19504
|
+
type: string
|
|
19505
|
+
description: Human-readable skip reason when status is skipped.
|
|
19506
|
+
issueCount:
|
|
19507
|
+
type: integer
|
|
19508
|
+
deploymentCount:
|
|
19509
|
+
type: integer
|
|
19510
|
+
eventCount:
|
|
19511
|
+
type: integer
|
|
19512
|
+
bucketsWritten:
|
|
19513
|
+
type: integer
|
|
19514
|
+
description: Weekly dashboard metric buckets updated from monitoring events.
|
|
19515
|
+
durationMs:
|
|
19516
|
+
type: integer
|
|
19517
|
+
error:
|
|
19518
|
+
type: string
|
|
19519
|
+
description: Error message when status is error.
|
|
19520
|
+
|
|
19299
19521
|
GithubActionsEnableResponseDto:
|
|
19300
19522
|
type: object
|
|
19301
19523
|
additionalProperties: false
|
|
@@ -23251,6 +23473,10 @@ components:
|
|
|
23251
23473
|
- integrations.grafana.removed
|
|
23252
23474
|
- integrations.grafana.sync_completed
|
|
23253
23475
|
- integrations.grafana.sync_failed
|
|
23476
|
+
- integrations.datadog.added
|
|
23477
|
+
- integrations.datadog.removed
|
|
23478
|
+
- integrations.datadog.sync_completed
|
|
23479
|
+
- integrations.datadog.sync_failed
|
|
23254
23480
|
- integrations.zelt.added
|
|
23255
23481
|
- integrations.zelt.removed
|
|
23256
23482
|
- report.exported
|
|
@@ -23661,7 +23887,7 @@ components:
|
|
|
23661
23887
|
properties:
|
|
23662
23888
|
version:
|
|
23663
23889
|
type: string
|
|
23664
|
-
enum: ["2026-10-
|
|
23890
|
+
enum: ["2026-10-25.1"]
|
|
23665
23891
|
periodDays:
|
|
23666
23892
|
type: integer
|
|
23667
23893
|
enum: [90]
|
|
@@ -23747,12 +23973,12 @@ components:
|
|
|
23747
23973
|
enum: [jira]
|
|
23748
23974
|
incident:
|
|
23749
23975
|
type: array
|
|
23750
|
-
minItems:
|
|
23751
|
-
maxItems:
|
|
23976
|
+
minItems: 7
|
|
23977
|
+
maxItems: 7
|
|
23752
23978
|
uniqueItems: true
|
|
23753
23979
|
items:
|
|
23754
23980
|
type: string
|
|
23755
|
-
enum: [pagerduty, opsgenie, goalert, newrelic, prometheus, grafana]
|
|
23981
|
+
enum: [pagerduty, opsgenie, goalert, newrelic, prometheus, grafana, datadog]
|
|
23756
23982
|
selfManagedGit:
|
|
23757
23983
|
type: object
|
|
23758
23984
|
additionalProperties: false
|
package/package.json
CHANGED
package/src/generated/openapi.ts
CHANGED
|
@@ -2227,6 +2227,46 @@ export interface paths {
|
|
|
2227
2227
|
patch?: never;
|
|
2228
2228
|
trace?: never;
|
|
2229
2229
|
};
|
|
2230
|
+
"/workspaces/{workspaceId}/integrations/datadog": {
|
|
2231
|
+
parameters: {
|
|
2232
|
+
query?: never;
|
|
2233
|
+
header?: never;
|
|
2234
|
+
path?: never;
|
|
2235
|
+
cookie?: never;
|
|
2236
|
+
};
|
|
2237
|
+
/**
|
|
2238
|
+
* Datadog monitoring integration status
|
|
2239
|
+
* @description Returns whether Datadog is connected for the workspace (site + dual keys) and the last monitoring ingest sync outcome (incidents/deployments pulled into Quality and DORA metrics).
|
|
2240
|
+
*/
|
|
2241
|
+
get: operations["getWorkspaceDatadogIntegrationStatus"];
|
|
2242
|
+
put?: never;
|
|
2243
|
+
post?: never;
|
|
2244
|
+
delete?: never;
|
|
2245
|
+
options?: never;
|
|
2246
|
+
head?: never;
|
|
2247
|
+
patch?: never;
|
|
2248
|
+
trace?: never;
|
|
2249
|
+
};
|
|
2250
|
+
"/workspaces/{workspaceId}/integrations/datadog/sync": {
|
|
2251
|
+
parameters: {
|
|
2252
|
+
query?: never;
|
|
2253
|
+
header?: never;
|
|
2254
|
+
path?: never;
|
|
2255
|
+
cookie?: never;
|
|
2256
|
+
};
|
|
2257
|
+
get?: never;
|
|
2258
|
+
put?: never;
|
|
2259
|
+
/**
|
|
2260
|
+
* Trigger Datadog monitoring ingest now
|
|
2261
|
+
* @description Manually polls Datadog for incidents and deployment-tagged events, persists canonical monitoring events, and refreshes org-level Quality/DORA dashboard buckets. Requires editor role.
|
|
2262
|
+
*/
|
|
2263
|
+
post: operations["postWorkspaceDatadogIntegrationSync"];
|
|
2264
|
+
delete?: never;
|
|
2265
|
+
options?: never;
|
|
2266
|
+
head?: never;
|
|
2267
|
+
patch?: never;
|
|
2268
|
+
trace?: never;
|
|
2269
|
+
};
|
|
2230
2270
|
"/integrations/github/webhook": {
|
|
2231
2271
|
parameters: {
|
|
2232
2272
|
query?: never;
|
|
@@ -5808,6 +5848,38 @@ export interface components {
|
|
|
5808
5848
|
/** @description New Relic user name when known from the last successful verify. */
|
|
5809
5849
|
userName?: string;
|
|
5810
5850
|
};
|
|
5851
|
+
/** @description Datadog monitoring source for `PUT /workspaces/{workspaceId}/sources` and `POST /workspaces/{workspaceId}/sources/test`. Requires an API key, an Application key, and a site host suffix (US1/US3/US5/EU/AP1). Raw keys are write-only. */
|
|
5852
|
+
DatadogSourceDto: {
|
|
5853
|
+
/** @enum {string} */
|
|
5854
|
+
type: "datadog";
|
|
5855
|
+
/** @description Datadog API key (write-only on PUT; encrypted at rest). */
|
|
5856
|
+
apiKey: string;
|
|
5857
|
+
/** @description Datadog Application key (write-only on PUT; encrypted at rest). */
|
|
5858
|
+
appKey: string;
|
|
5859
|
+
/**
|
|
5860
|
+
* @description Datadog site host suffix. Maps to API host `api.{site}` (US1 `datadoghq.com`, US3 `us3.datadoghq.com`, US5 `us5.datadoghq.com`, EU `datadoghq.eu`, AP1 `ap1.datadoghq.com`). Gov/custom sites are out of scope.
|
|
5861
|
+
* @enum {string}
|
|
5862
|
+
*/
|
|
5863
|
+
site: "datadoghq.com" | "us3.datadoghq.com" | "us5.datadoghq.com" | "datadoghq.eu" | "ap1.datadoghq.com";
|
|
5864
|
+
/** @description Optional org display name returned from a successful connection test. */
|
|
5865
|
+
orgName?: string;
|
|
5866
|
+
};
|
|
5867
|
+
/** @description Redacted Datadog source returned by `GET /workspaces/{workspaceId}/config`. Raw `apiKey` and `appKey` are never returned. */
|
|
5868
|
+
DatadogSourceConfigDto: {
|
|
5869
|
+
/** @enum {string} */
|
|
5870
|
+
type: "datadog";
|
|
5871
|
+
/** @description Whether a Datadog API key is stored for this workspace. */
|
|
5872
|
+
hasApiKey: boolean;
|
|
5873
|
+
/** @description Whether a Datadog Application key is stored for this workspace. */
|
|
5874
|
+
hasAppKey: boolean;
|
|
5875
|
+
/**
|
|
5876
|
+
* @description Configured Datadog site host suffix.
|
|
5877
|
+
* @enum {string}
|
|
5878
|
+
*/
|
|
5879
|
+
site: "datadoghq.com" | "us3.datadoghq.com" | "us5.datadoghq.com" | "datadoghq.eu" | "ap1.datadoghq.com";
|
|
5880
|
+
/** @description Org display name when known from the last successful verify. */
|
|
5881
|
+
orgName?: string;
|
|
5882
|
+
};
|
|
5811
5883
|
/** @description Prometheus / Alertmanager monitoring source for workspace sources PUT and connection test. Provide at least one URL; authentication is optional. */
|
|
5812
5884
|
PrometheusSourceDto: {
|
|
5813
5885
|
/** @enum {string} */
|
|
@@ -6057,7 +6129,7 @@ export interface components {
|
|
|
6057
6129
|
topics?: components["schemas"]["CodeWikiGuidanceTopicDto"][];
|
|
6058
6130
|
};
|
|
6059
6131
|
WorkspaceConfigDto: {
|
|
6060
|
-
sources: (components["schemas"]["CursorSourceConfigDto"] | components["schemas"]["ClaudeSourceConfigDto"] | components["schemas"]["CodeIntelligenceSourceConfigDto"] | components["schemas"]["NewRelicSourceConfigDto"] | components["schemas"]["PrometheusSourceConfigDto"] | components["schemas"]["GrafanaSourceConfigDto"] | components["schemas"]["SonarQubeSourceConfigDto"] | components["schemas"]["PagerDutySourceConfigDto"] | components["schemas"]["JiraSourceConfigDto"] | components["schemas"]["TenantSourceEntryDto"])[];
|
|
6132
|
+
sources: (components["schemas"]["CursorSourceConfigDto"] | components["schemas"]["ClaudeSourceConfigDto"] | components["schemas"]["CodeIntelligenceSourceConfigDto"] | components["schemas"]["NewRelicSourceConfigDto"] | components["schemas"]["DatadogSourceConfigDto"] | components["schemas"]["PrometheusSourceConfigDto"] | components["schemas"]["GrafanaSourceConfigDto"] | components["schemas"]["SonarQubeSourceConfigDto"] | components["schemas"]["PagerDutySourceConfigDto"] | components["schemas"]["JiraSourceConfigDto"] | components["schemas"]["TenantSourceEntryDto"])[];
|
|
6061
6133
|
orgChart?: components["schemas"]["ScoringOrgChartDto"] | null;
|
|
6062
6134
|
/** @enum {string|null} */
|
|
6063
6135
|
region?: "us" | "eu" | "me" | null;
|
|
@@ -6180,7 +6252,7 @@ export interface components {
|
|
|
6180
6252
|
accountName?: string;
|
|
6181
6253
|
/** @description Present for New Relic or Jira verify success — resolved account ID. */
|
|
6182
6254
|
accountId?: string;
|
|
6183
|
-
/** @description Present for Grafana verify success — resolved organization name. */
|
|
6255
|
+
/** @description Present for Grafana or Datadog verify success — resolved organization name. */
|
|
6184
6256
|
orgName?: string;
|
|
6185
6257
|
/** @description Present for Prometheus verify success — Alertmanager cluster name. */
|
|
6186
6258
|
clusterName?: string;
|
|
@@ -7875,6 +7947,50 @@ export interface components {
|
|
|
7875
7947
|
durationMs?: number;
|
|
7876
7948
|
error?: string;
|
|
7877
7949
|
};
|
|
7950
|
+
DatadogIntegrationStatusDto: {
|
|
7951
|
+
/** @description True when a type:datadog workspace source is configured. */
|
|
7952
|
+
connected: boolean;
|
|
7953
|
+
/**
|
|
7954
|
+
* @description Configured Datadog site when connected.
|
|
7955
|
+
* @enum {string}
|
|
7956
|
+
*/
|
|
7957
|
+
site?: "datadoghq.com" | "us3.datadoghq.com" | "us5.datadoghq.com" | "datadoghq.eu" | "ap1.datadoghq.com";
|
|
7958
|
+
/** @description Org display name when known from the last successful verify. */
|
|
7959
|
+
orgName?: string;
|
|
7960
|
+
/**
|
|
7961
|
+
* Format: date-time
|
|
7962
|
+
* @description Timestamp of the last monitoring ingest attempt (success or failure).
|
|
7963
|
+
*/
|
|
7964
|
+
lastSyncAt?: string | null;
|
|
7965
|
+
/**
|
|
7966
|
+
* @description Outcome of the most recent sync (`never` when not yet synced).
|
|
7967
|
+
* @enum {string}
|
|
7968
|
+
*/
|
|
7969
|
+
status: "ok" | "error" | "never";
|
|
7970
|
+
lastError?: string | null;
|
|
7971
|
+
/** @description Incidents fetched on the last successful sync (30d lookback). */
|
|
7972
|
+
issueCount?: number | null;
|
|
7973
|
+
/** @description Deployment-tagged events fetched on the last successful sync (30d lookback). */
|
|
7974
|
+
deploymentCount?: number | null;
|
|
7975
|
+
/** @description Canonical monitoring events upserted on the last successful sync. */
|
|
7976
|
+
eventCount?: number | null;
|
|
7977
|
+
};
|
|
7978
|
+
DatadogTriggerSyncResultDto: {
|
|
7979
|
+
/** @enum {string} */
|
|
7980
|
+
status: "ok" | "skipped" | "error";
|
|
7981
|
+
/** @description Stable machine-readable code (e.g. `datadog_not_connected`). */
|
|
7982
|
+
code?: string;
|
|
7983
|
+
/** @description Human-readable skip reason when status is skipped. */
|
|
7984
|
+
reason?: string;
|
|
7985
|
+
issueCount?: number;
|
|
7986
|
+
deploymentCount?: number;
|
|
7987
|
+
eventCount?: number;
|
|
7988
|
+
/** @description Weekly dashboard metric buckets updated from monitoring events. */
|
|
7989
|
+
bucketsWritten?: number;
|
|
7990
|
+
durationMs?: number;
|
|
7991
|
+
/** @description Error message when status is error. */
|
|
7992
|
+
error?: string;
|
|
7993
|
+
};
|
|
7878
7994
|
GithubActionsEnableResponseDto: {
|
|
7879
7995
|
/** @enum {string} */
|
|
7880
7996
|
outcome: "enabled" | "needs_github" | "permissions_missing" | "error";
|
|
@@ -9570,7 +9686,7 @@ export interface components {
|
|
|
9570
9686
|
* @description Type of workspace lifecycle event.
|
|
9571
9687
|
* @enum {string}
|
|
9572
9688
|
*/
|
|
9573
|
-
ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.suspended" | "integration.github.unsuspended" | "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" | "code_insights.design_run_started" | "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.invite_accepted" | "member.invite_rejected" | "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.hibob.sync_started" | "hris.hibob.sync_completed" | "hris.hibob.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" | "integrations.code_intelligence.settings_changed" | "integrations.code_intelligence.execution_key.added" | "integrations.code_intelligence.execution_key.updated" | "integrations.code_intelligence.execution_key.removed" | "integrations.code_intelligence.execution_key.check_failed" | "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" | "report.exported" | "report.assessment_stored" | "report.assessment_link_sent" | "report.assessment_link_revoked" | "report.assessment_downloaded" | "report.assessment_hidden" | "report.assessment_restored" | "workspace.aggregate_use.changed" | "workspace.assessment_rollout.changed";
|
|
9689
|
+
ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.suspended" | "integration.github.unsuspended" | "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" | "code_insights.design_run_started" | "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.invite_accepted" | "member.invite_rejected" | "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.hibob.sync_started" | "hris.hibob.sync_completed" | "hris.hibob.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" | "integrations.code_intelligence.settings_changed" | "integrations.code_intelligence.execution_key.added" | "integrations.code_intelligence.execution_key.updated" | "integrations.code_intelligence.execution_key.removed" | "integrations.code_intelligence.execution_key.check_failed" | "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.datadog.added" | "integrations.datadog.removed" | "integrations.datadog.sync_completed" | "integrations.datadog.sync_failed" | "integrations.zelt.added" | "integrations.zelt.removed" | "report.exported" | "report.assessment_stored" | "report.assessment_link_sent" | "report.assessment_link_revoked" | "report.assessment_downloaded" | "report.assessment_hidden" | "report.assessment_restored" | "workspace.aggregate_use.changed" | "workspace.assessment_rollout.changed";
|
|
9574
9690
|
/** @description Current legal-approved opt-in notice, or `unset` while opt-in is unavailable. */
|
|
9575
9691
|
AggregateUseNoticeStatusDto: {
|
|
9576
9692
|
/** @enum {string} */
|
|
@@ -9733,7 +9849,7 @@ export interface components {
|
|
|
9733
9849
|
};
|
|
9734
9850
|
AssessmentDictionaryDto: {
|
|
9735
9851
|
/** @enum {string} */
|
|
9736
|
-
version: "2026-10-
|
|
9852
|
+
version: "2026-10-25.1";
|
|
9737
9853
|
/** @enum {integer} */
|
|
9738
9854
|
periodDays: 90;
|
|
9739
9855
|
/** @enum {integer} */
|
|
@@ -9769,7 +9885,7 @@ export interface components {
|
|
|
9769
9885
|
aiProviders: ("cursor" | "claude" | "copilot")[];
|
|
9770
9886
|
optionalProviders: {
|
|
9771
9887
|
roadmap: "jira"[];
|
|
9772
|
-
incident: ("pagerduty" | "opsgenie" | "goalert" | "newrelic" | "prometheus" | "grafana")[];
|
|
9888
|
+
incident: ("pagerduty" | "opsgenie" | "goalert" | "newrelic" | "prometheus" | "grafana" | "datadog")[];
|
|
9773
9889
|
};
|
|
9774
9890
|
selfManagedGit: {
|
|
9775
9891
|
/** @enum {string} */
|
|
@@ -12557,6 +12673,8 @@ export type CodeIntelligenceSourcePatchDto = components['schemas']['CodeIntellig
|
|
|
12557
12673
|
export type CodeIntelligenceSourceConfigDto = components['schemas']['CodeIntelligenceSourceConfigDto'];
|
|
12558
12674
|
export type NewRelicSourceDto = components['schemas']['NewRelicSourceDto'];
|
|
12559
12675
|
export type NewRelicSourceConfigDto = components['schemas']['NewRelicSourceConfigDto'];
|
|
12676
|
+
export type DatadogSourceDto = components['schemas']['DatadogSourceDto'];
|
|
12677
|
+
export type DatadogSourceConfigDto = components['schemas']['DatadogSourceConfigDto'];
|
|
12560
12678
|
export type PrometheusSourceDto = components['schemas']['PrometheusSourceDto'];
|
|
12561
12679
|
export type PrometheusSourceConfigDto = components['schemas']['PrometheusSourceConfigDto'];
|
|
12562
12680
|
export type GrafanaSourceDto = components['schemas']['GrafanaSourceDto'];
|
|
@@ -12719,6 +12837,8 @@ export type PrometheusIntegrationStatusDto = components['schemas']['PrometheusIn
|
|
|
12719
12837
|
export type PrometheusTriggerSyncResultDto = components['schemas']['PrometheusTriggerSyncResultDto'];
|
|
12720
12838
|
export type GrafanaIntegrationStatusDto = components['schemas']['GrafanaIntegrationStatusDto'];
|
|
12721
12839
|
export type GrafanaTriggerSyncResultDto = components['schemas']['GrafanaTriggerSyncResultDto'];
|
|
12840
|
+
export type DatadogIntegrationStatusDto = components['schemas']['DatadogIntegrationStatusDto'];
|
|
12841
|
+
export type DatadogTriggerSyncResultDto = components['schemas']['DatadogTriggerSyncResultDto'];
|
|
12722
12842
|
export type GithubActionsEnableResponseDto = components['schemas']['GithubActionsEnableResponseDto'];
|
|
12723
12843
|
export type GithubInstallationStatusDto = components['schemas']['GithubInstallationStatusDto'];
|
|
12724
12844
|
export type GithubInstallUrlRequestDto = components['schemas']['GithubInstallUrlRequestDto'];
|
|
@@ -15563,7 +15683,7 @@ export interface operations {
|
|
|
15563
15683
|
requestBody: {
|
|
15564
15684
|
content: {
|
|
15565
15685
|
"application/json": {
|
|
15566
|
-
sources: (components["schemas"]["CursorSourcePatchDto"] | components["schemas"]["CursorSourceDto"] | components["schemas"]["ClaudeSourcePatchDto"] | components["schemas"]["ClaudeSourceDto"] | components["schemas"]["CodeIntelligenceSourcePatchDto"] | components["schemas"]["NewRelicSourceDto"] | components["schemas"]["PrometheusSourceDto"] | components["schemas"]["GrafanaSourceDto"] | components["schemas"]["SonarQubeSourceDto"] | components["schemas"]["PagerDutySourceDto"] | components["schemas"]["JiraSourceDto"] | components["schemas"]["TenantSourceEntryDto"])[];
|
|
15686
|
+
sources: (components["schemas"]["CursorSourcePatchDto"] | components["schemas"]["CursorSourceDto"] | components["schemas"]["ClaudeSourcePatchDto"] | components["schemas"]["ClaudeSourceDto"] | components["schemas"]["CodeIntelligenceSourcePatchDto"] | components["schemas"]["NewRelicSourceDto"] | components["schemas"]["DatadogSourceDto"] | components["schemas"]["PrometheusSourceDto"] | components["schemas"]["GrafanaSourceDto"] | components["schemas"]["SonarQubeSourceDto"] | components["schemas"]["PagerDutySourceDto"] | components["schemas"]["JiraSourceDto"] | components["schemas"]["TenantSourceEntryDto"])[];
|
|
15567
15687
|
};
|
|
15568
15688
|
};
|
|
15569
15689
|
};
|
|
@@ -15617,7 +15737,7 @@ export interface operations {
|
|
|
15617
15737
|
};
|
|
15618
15738
|
requestBody: {
|
|
15619
15739
|
content: {
|
|
15620
|
-
"application/json": components["schemas"]["CursorSourcePatchDto"] | components["schemas"]["CursorSourceDto"] | components["schemas"]["ClaudeSourcePatchDto"] | components["schemas"]["ClaudeSourceDto"] | components["schemas"]["CodeIntelligenceSourcePatchDto"] | components["schemas"]["NewRelicSourceDto"] | components["schemas"]["PrometheusSourceDto"] | components["schemas"]["GrafanaSourceDto"] | components["schemas"]["SonarQubeSourceDto"] | components["schemas"]["PagerDutySourceDto"] | components["schemas"]["JiraSourceDto"] | components["schemas"]["TenantSourceEntryDto"];
|
|
15740
|
+
"application/json": components["schemas"]["CursorSourcePatchDto"] | components["schemas"]["CursorSourceDto"] | components["schemas"]["ClaudeSourcePatchDto"] | components["schemas"]["ClaudeSourceDto"] | components["schemas"]["CodeIntelligenceSourcePatchDto"] | components["schemas"]["NewRelicSourceDto"] | components["schemas"]["DatadogSourceDto"] | components["schemas"]["PrometheusSourceDto"] | components["schemas"]["GrafanaSourceDto"] | components["schemas"]["SonarQubeSourceDto"] | components["schemas"]["PagerDutySourceDto"] | components["schemas"]["JiraSourceDto"] | components["schemas"]["TenantSourceEntryDto"];
|
|
15621
15741
|
};
|
|
15622
15742
|
};
|
|
15623
15743
|
responses: {
|
|
@@ -19373,6 +19493,90 @@ export interface operations {
|
|
|
19373
19493
|
};
|
|
19374
19494
|
};
|
|
19375
19495
|
};
|
|
19496
|
+
getWorkspaceDatadogIntegrationStatus: {
|
|
19497
|
+
parameters: {
|
|
19498
|
+
query?: never;
|
|
19499
|
+
header?: never;
|
|
19500
|
+
path: {
|
|
19501
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
19502
|
+
};
|
|
19503
|
+
cookie?: never;
|
|
19504
|
+
};
|
|
19505
|
+
requestBody?: never;
|
|
19506
|
+
responses: {
|
|
19507
|
+
/** @description Datadog integration status */
|
|
19508
|
+
200: {
|
|
19509
|
+
headers: {
|
|
19510
|
+
[name: string]: unknown;
|
|
19511
|
+
};
|
|
19512
|
+
content: {
|
|
19513
|
+
"application/json": components["schemas"]["DatadogIntegrationStatusDto"];
|
|
19514
|
+
};
|
|
19515
|
+
};
|
|
19516
|
+
401: components["responses"]["Unauthorized"];
|
|
19517
|
+
403: components["responses"]["Forbidden"];
|
|
19518
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
19519
|
+
404: {
|
|
19520
|
+
headers: {
|
|
19521
|
+
[name: string]: unknown;
|
|
19522
|
+
};
|
|
19523
|
+
content: {
|
|
19524
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
19525
|
+
};
|
|
19526
|
+
};
|
|
19527
|
+
};
|
|
19528
|
+
};
|
|
19529
|
+
postWorkspaceDatadogIntegrationSync: {
|
|
19530
|
+
parameters: {
|
|
19531
|
+
query?: never;
|
|
19532
|
+
header?: never;
|
|
19533
|
+
path: {
|
|
19534
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
19535
|
+
};
|
|
19536
|
+
cookie?: never;
|
|
19537
|
+
};
|
|
19538
|
+
requestBody?: never;
|
|
19539
|
+
responses: {
|
|
19540
|
+
/** @description Sync completed */
|
|
19541
|
+
200: {
|
|
19542
|
+
headers: {
|
|
19543
|
+
[name: string]: unknown;
|
|
19544
|
+
};
|
|
19545
|
+
content: {
|
|
19546
|
+
"application/json": components["schemas"]["DatadogTriggerSyncResultDto"];
|
|
19547
|
+
};
|
|
19548
|
+
};
|
|
19549
|
+
401: components["responses"]["Unauthorized"];
|
|
19550
|
+
403: components["responses"]["Forbidden"];
|
|
19551
|
+
/** @description Workspace does not exist or malformed workspaceId */
|
|
19552
|
+
404: {
|
|
19553
|
+
headers: {
|
|
19554
|
+
[name: string]: unknown;
|
|
19555
|
+
};
|
|
19556
|
+
content: {
|
|
19557
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
19558
|
+
};
|
|
19559
|
+
};
|
|
19560
|
+
/** @description Datadog is not connected on this workspace */
|
|
19561
|
+
422: {
|
|
19562
|
+
headers: {
|
|
19563
|
+
[name: string]: unknown;
|
|
19564
|
+
};
|
|
19565
|
+
content: {
|
|
19566
|
+
"application/json": components["schemas"]["DatadogTriggerSyncResultDto"];
|
|
19567
|
+
};
|
|
19568
|
+
};
|
|
19569
|
+
/** @description Sync failed (Datadog API or persistence error) */
|
|
19570
|
+
503: {
|
|
19571
|
+
headers: {
|
|
19572
|
+
[name: string]: unknown;
|
|
19573
|
+
};
|
|
19574
|
+
content: {
|
|
19575
|
+
"application/json": components["schemas"]["DatadogTriggerSyncResultDto"];
|
|
19576
|
+
};
|
|
19577
|
+
};
|
|
19578
|
+
};
|
|
19579
|
+
};
|
|
19376
19580
|
postGithubWebhook: {
|
|
19377
19581
|
parameters: {
|
|
19378
19582
|
query?: never;
|