@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.
@@ -1,7 +1,7 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: ThinkAI API
4
- version: 2.183.0
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-24.1"]
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: 6
23751
- maxItems: 6
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkai/tai-api-contract",
3
- "version": "2.183.0",
3
+ "version": "2.185.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -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-24.1";
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;