@camunda/ccma-api 0.0.4 → 0.0.5

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.
Files changed (31) hide show
  1. package/dist/index.d.ts +10 -4
  2. package/dist/index.js +6 -0
  3. package/dist/index.js.map +2 -2
  4. package/dist/services/ask-backend/ask-backend.service.d.ts +85 -0
  5. package/dist/services/ask-backend/ask-backend.service.js +378 -0
  6. package/dist/services/ask-backend/ask-backend.service.js.map +7 -0
  7. package/dist/services/console/console.admin.service.d.ts +64 -0
  8. package/dist/services/console/console.admin.service.js +153 -0
  9. package/dist/services/console/console.admin.service.js.map +2 -2
  10. package/dist/services/console/console.cluster-parameters.service.d.ts +1 -0
  11. package/dist/services/console/console.cluster-parameters.service.js.map +2 -2
  12. package/dist/services/console/console.cluster.service.d.ts +9 -0
  13. package/dist/services/console/console.cluster.service.js +28 -0
  14. package/dist/services/console/console.cluster.service.js.map +2 -2
  15. package/dist/services/console/console.clusterplan.modification.service.d.ts +1 -0
  16. package/dist/services/console/console.clusterplan.modification.service.js +28 -0
  17. package/dist/services/console/console.clusterplan.modification.service.js.map +2 -2
  18. package/dist/services/console/generation.service.d.ts +10 -0
  19. package/dist/services/console/generation.service.js +34 -0
  20. package/dist/services/console/generation.service.js.map +2 -2
  21. package/dist/services/glean/glean.service.d.ts +20 -0
  22. package/dist/services/glean/glean.service.js +49 -0
  23. package/dist/services/glean/glean.service.js.map +7 -0
  24. package/dist/services/incident-io/incident-io.service.d.ts +20 -0
  25. package/dist/services/incident-io/incident-io.service.js +67 -0
  26. package/dist/services/incident-io/incident-io.service.js.map +7 -0
  27. package/dist/services/incident-io/incident-io.service.spec.d.ts +1 -0
  28. package/dist/services/slack/slack.service.d.ts +37 -0
  29. package/dist/services/slack/slack.service.js +98 -0
  30. package/dist/services/slack/slack.service.js.map +2 -2
  31. package/package.json +3 -2
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/services/ask-backend/ask-backend.service.ts"],
4
+ "sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\nimport type { OpenIncident } from '../incident-io/incident-io.service.js'\n\nexport type { OpenIncident }\n\n/**\n * AskBackendService provides typed access to the ask-backend API endpoints.\n *\n * Unlike other services in this package that use `base: { id: 'system' }` for\n * URL resolution, ask-backend's base URL is supplied directly by the caller\n * (`baseUrl` on each request) because it is externally configurable at runtime\n * (e.g. `ASK_BACKEND_URL` in the MCP client) rather than being fixed per stage\n * in the environment configuration.\n */\nexport interface AskBackendBaseParams extends RequestBaseParams {\n baseUrl: string\n}\n\nexport interface AskBackendSearchOrgsParams extends AskBackendBaseParams {\n search?: string\n}\n\nexport interface AskBackendOrgParams extends AskBackendBaseParams {\n orgId: string\n}\n\nexport interface AskBackendRunQueryParams extends AskBackendBaseParams {\n sql: string\n}\n\n// Kept for backwards compat \u2014 callers of getOrgClusters (BigQuery) still use this\nexport interface AskBackendGetOrgClustersParams extends AskBackendBaseParams {\n orgId: string\n}\n\nexport interface OrgSummary {\n uuid: string\n name: string\n salesPlanType?: string\n clusterCount?: number\n}\n\nexport interface OrgDetail {\n uuid: string\n name: string\n salesPlanType?: string\n salesPlanName?: string\n created: string\n internal: boolean\n}\n\nexport interface OrgOwnerInfo {\n owner: string\n email: string\n first?: string\n last?: string\n}\n\nexport interface OrgMemberInfo {\n userId: string\n name: string\n email: string\n roles?: string[]\n}\n\nexport interface OrgClusterRow {\n orgId: string\n orgName: string\n clusterCount: number\n}\n\nfunction makeContext(\n name: string,\n url: string,\n normalizedUrl: string,\n type: 'get' | 'post',\n source: string,\n): RequestBaseServiceContext {\n return {\n method: { name, url, normalizedUrl, type },\n source,\n target: { name: 'ask-backend', type: 'internal' },\n }\n}\n\nexport class AskBackendService {\n public static async getOpenIncidents(\n params: AskBackendBaseParams,\n ): Promise<OpenIncident[]> {\n const url = `${params.baseUrl}/api/incident/incidents`\n const ctx = makeContext(\n 'AskBackendService.getOpenIncidents',\n url,\n '/api/incident/incidents',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OpenIncident[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async searchOrgs(\n params: AskBackendSearchOrgsParams,\n ): Promise<OrgSummary[]> {\n const url = `${params.baseUrl}/api/accounts/orgs?search=${encodeURIComponent(params.search ?? '')}`\n const ctx = makeContext(\n 'AskBackendService.searchOrgs',\n `${params.baseUrl}/api/accounts/orgs`,\n '/api/accounts/orgs',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OrgSummary[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getOrgDetails(\n params: AskBackendOrgParams,\n ): Promise<OrgDetail> {\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}`\n const ctx = makeContext(\n 'AskBackendService.getOrgDetails',\n url,\n '/api/accounts/orgs/:orgId',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OrgDetail>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getOrgOwner(\n params: AskBackendOrgParams,\n ): Promise<OrgOwnerInfo> {\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/owner`\n const ctx = makeContext(\n 'AskBackendService.getOrgOwner',\n `${params.baseUrl}/api/accounts/orgs/:orgId/owner`,\n '/api/accounts/orgs/:orgId/owner',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OrgOwnerInfo>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getOrgMembers(\n params: AskBackendOrgParams,\n ): Promise<OrgMemberInfo[]> {\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/members`\n const ctx = makeContext(\n 'AskBackendService.getOrgMembers',\n `${params.baseUrl}/api/accounts/orgs/:orgId/members`,\n '/api/accounts/orgs/:orgId/members',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OrgMemberInfo[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getOrgClustersFromConsole(\n params: AskBackendOrgParams,\n ): Promise<unknown[]> {\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/clusters`\n const ctx = makeContext(\n 'AskBackendService.getOrgClustersFromConsole',\n `${params.baseUrl}/api/accounts/orgs/:orgId/clusters`,\n '/api/accounts/orgs/:orgId/clusters',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getOrgLlmUsage(\n params: AskBackendOrgParams,\n ): Promise<Record<string, unknown>> {\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/llm`\n const ctx = makeContext(\n 'AskBackendService.getOrgLlmUsage',\n `${params.baseUrl}/api/accounts/orgs/:orgId/llm`,\n '/api/accounts/orgs/:orgId/llm',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<Record<string, unknown>>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async runBigQuery(\n params: AskBackendRunQueryParams,\n ): Promise<unknown[]> {\n const url = `${params.baseUrl}/api/bigquery/query`\n const ctx = makeContext(\n 'AskBackendService.runBigQuery',\n url,\n '/api/bigquery/query',\n 'post',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'post',\n body: { sql: params.sql },\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getOrgValueMetrics(\n params: AskBackendOrgParams & { days?: number },\n ): Promise<unknown[]> {\n const qs = params.days !== undefined ? `?days=${params.days}` : ''\n const url = `${params.baseUrl}/api/accounts/orgs/${encodeURIComponent(params.orgId)}/value-metrics${qs}`\n const ctx = makeContext(\n 'AskBackendService.getOrgValueMetrics',\n `${params.baseUrl}/api/accounts/orgs/:orgId/value-metrics`,\n '/api/accounts/orgs/:orgId/value-metrics',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async listClusterPlanTypes(\n params: AskBackendBaseParams,\n ): Promise<unknown[]> {\n const url = `${params.baseUrl}/api/admin/cluster-plan-types`\n const ctx = makeContext(\n 'AskBackendService.listClusterPlanTypes',\n url,\n '/api/admin/cluster-plan-types',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getClusterPlanType(\n params: AskBackendBaseParams & { planTypeId: string },\n ): Promise<unknown> {\n const url = `${params.baseUrl}/api/admin/cluster-plan-types/${encodeURIComponent(params.planTypeId)}`\n const ctx = makeContext(\n 'AskBackendService.getClusterPlanType',\n `${params.baseUrl}/api/admin/cluster-plan-types/:planTypeId`,\n '/api/admin/cluster-plan-types/:planTypeId',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async getGeneration(\n params: AskBackendBaseParams & { generationId: string },\n ): Promise<unknown> {\n const url = `${params.baseUrl}/api/admin/generations/${encodeURIComponent(params.generationId)}`\n const ctx = makeContext(\n 'AskBackendService.getGeneration',\n `${params.baseUrl}/api/admin/generations/:generationId`,\n '/api/admin/generations/:generationId',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async getUpgradableGenerations(\n params: AskBackendBaseParams & { generationId: string },\n ): Promise<unknown[]> {\n const url = `${params.baseUrl}/api/admin/generations/${encodeURIComponent(params.generationId)}/upgradable`\n const ctx = makeContext(\n 'AskBackendService.getUpgradableGenerations',\n `${params.baseUrl}/api/admin/generations/:generationId/upgradable`,\n '/api/admin/generations/:generationId/upgradable',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async listConnections(\n params: AskBackendBaseParams & { strategy?: 'all' | 'waad' | 'samlp' },\n ): Promise<unknown[]> {\n const strategy = params.strategy ?? 'all'\n const url = `${params.baseUrl}/api/admin/connections?strategy=${strategy}`\n const ctx = makeContext(\n 'AskBackendService.listConnections',\n `${params.baseUrl}/api/admin/connections`,\n '/api/admin/connections',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<unknown[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async getOrgClusters(\n params: AskBackendGetOrgClustersParams,\n ): Promise<OrgClusterRow[]> {\n const url = `${params.baseUrl}/api/bigquery/org-clusters?orgId=${encodeURIComponent(params.orgId)}`\n const ctx = makeContext(\n 'AskBackendService.getOrgClusters',\n `${params.baseUrl}/api/bigquery/org-clusters`,\n '/api/bigquery/org-clusters',\n 'get',\n params.config.metrics?.source ?? 'unset',\n )\n const response = await request<OrgClusterRow[]>({\n ...params,\n url,\n method: 'get',\n metricsDetails: ctx,\n })\n if (!response.ok) {\n throw new HttpError(\n `${ctx.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,5 +1,6 @@
1
1
  import type { ClusterBulkOperationAck, ClusterBulkOperationDto, ClusterBulkOperationPostContent, ClusterModificationConfigDto, ClusterModificationDto, ClusterPlanTypeDto, ClusterUsageMetricsData, CommonClusterDto, UniqueTaskUser, ValueMetrics } from '@camunda/ccma-shared-types';
2
2
  import type { RequestBaseParams } from '../../types/general.types.js';
3
+ import type { OpenIncident } from '../incident-io/incident-io.service.js';
3
4
  export interface UpdateClusterToNewPlanTypeRequest extends RequestBaseParams {
4
5
  params: {
5
6
  orgId: string;
@@ -46,6 +47,45 @@ export interface CreateLiteLLMSecretsForOrgRequest extends RequestBaseParams {
46
47
  };
47
48
  };
48
49
  }
50
+ export type SpecExplainerFieldSource = 'plan' | 'generation' | 'planType' | 'override' | 'modification' | 'infra' | 'computed' | 'featureFlag' | 'org' | 'cluster';
51
+ export interface SpecExplainerFieldAnnotation {
52
+ source: SpecExplainerFieldSource;
53
+ sourcePath?: string;
54
+ sourceValue?: unknown;
55
+ finalValue: unknown;
56
+ transforms?: string[];
57
+ overrides?: Array<{
58
+ by: SpecExplainerFieldSource;
59
+ originalValue: unknown;
60
+ }>;
61
+ fallbackChain?: Array<{
62
+ source: SpecExplainerFieldSource;
63
+ value: unknown;
64
+ used: boolean;
65
+ }>;
66
+ }
67
+ export interface SpecExplainerResponse {
68
+ spec: Record<string, unknown>;
69
+ annotations: Record<string, SpecExplainerFieldAnnotation>;
70
+ sources: {
71
+ plan: Record<string, unknown>;
72
+ generation: Record<string, unknown>;
73
+ planType: Record<string, unknown>;
74
+ overrideEnvVars?: Record<string, unknown>;
75
+ activeModification?: {
76
+ planModifications: Array<{
77
+ key: string;
78
+ value: unknown;
79
+ }>;
80
+ };
81
+ featureFlags: Record<string, boolean>;
82
+ };
83
+ }
84
+ export interface GetSpecExplainerRequest extends RequestBaseParams {
85
+ params: {
86
+ clusterId: string;
87
+ };
88
+ }
49
89
  export interface GetAllClustersRequest extends RequestBaseParams {
50
90
  params: {
51
91
  headers: {
@@ -309,6 +349,16 @@ export declare class ConsoleAdminService {
309
349
  static deleteClusterBulkOperation(params: {
310
350
  uuid: string;
311
351
  } & RequestBaseParams): Promise<void>;
352
+ static getDbCorpses(params: RequestBaseParams): Promise<{
353
+ corpses: Array<{
354
+ clusterId: string;
355
+ orgId: string;
356
+ name: string;
357
+ created: string;
358
+ k8sContextUuid?: string;
359
+ k8sContext?: string;
360
+ }>;
361
+ }>;
312
362
  static getK8sCorpses(params: RequestBaseParams): Promise<{
313
363
  corpses: Array<{
314
364
  clusterId: string;
@@ -318,6 +368,13 @@ export declare class ConsoleAdminService {
318
368
  k8sContext?: string;
319
369
  }>;
320
370
  }>;
371
+ static deleteDbCorpses(params: RequestBaseParams): Promise<{
372
+ deleted: number;
373
+ corpses: Array<{
374
+ clusterId: string;
375
+ orgId: string;
376
+ }>;
377
+ }>;
321
378
  static deleteK8sCorpses(params: RequestBaseParams): Promise<{
322
379
  deleted: number;
323
380
  corpses: Array<{
@@ -326,4 +383,11 @@ export declare class ConsoleAdminService {
326
383
  }>;
327
384
  }>;
328
385
  static createLiteLLMSecretsForOrg(params: CreateLiteLLMSecretsForOrgRequest): Promise<void>;
386
+ static getSpecExplainer(params: GetSpecExplainerRequest): Promise<SpecExplainerResponse>;
387
+ static getOpenIncidents(params: RequestBaseParams): Promise<{
388
+ incidents: OpenIncident[];
389
+ }>;
390
+ static getClusterIncidents(params: RequestBaseParams & {
391
+ clusterId: string;
392
+ }): Promise<OpenIncident[]>;
329
393
  }
@@ -1428,6 +1428,36 @@ class ConsoleAdminService {
1428
1428
  );
1429
1429
  }
1430
1430
  }
1431
+ static async getDbCorpses(params) {
1432
+ const serviceContext = {
1433
+ method: {
1434
+ name: `ConsoleAdminService.getDbCorpses`,
1435
+ url: `api/admin/clusters/db-corpses`,
1436
+ normalizedUrl: `api/admin/clusters/db-corpses`,
1437
+ type: "get"
1438
+ },
1439
+ source: params.config.metrics?.source || "unset",
1440
+ target: { name: "console", type: "internal" }
1441
+ };
1442
+ const response = await request({
1443
+ ...params,
1444
+ base: {
1445
+ id: "console"
1446
+ },
1447
+ responseType: "json",
1448
+ url: serviceContext.method.url,
1449
+ method: serviceContext.method.type,
1450
+ metricsDetails: serviceContext
1451
+ });
1452
+ if (!response.ok) {
1453
+ throw new HttpError(
1454
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
1455
+ response.status,
1456
+ response.statusText
1457
+ );
1458
+ }
1459
+ return response.body;
1460
+ }
1431
1461
  static async getK8sCorpses(params) {
1432
1462
  const serviceContext = {
1433
1463
  method: {
@@ -1458,6 +1488,36 @@ class ConsoleAdminService {
1458
1488
  }
1459
1489
  return response.body;
1460
1490
  }
1491
+ static async deleteDbCorpses(params) {
1492
+ const serviceContext = {
1493
+ method: {
1494
+ name: `ConsoleAdminService.deleteDbCorpses`,
1495
+ url: `api/admin/clusters/db-corpses`,
1496
+ normalizedUrl: `api/admin/clusters/db-corpses`,
1497
+ type: "delete"
1498
+ },
1499
+ source: params.config.metrics?.source || "unset",
1500
+ target: { name: "console", type: "internal" }
1501
+ };
1502
+ const response = await request({
1503
+ config: params.config,
1504
+ base: {
1505
+ id: "console"
1506
+ },
1507
+ responseType: "json",
1508
+ url: serviceContext.method.url,
1509
+ method: serviceContext.method.type,
1510
+ metricsDetails: serviceContext
1511
+ });
1512
+ if (!response.ok) {
1513
+ throw new HttpError(
1514
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
1515
+ response.status,
1516
+ response.statusText
1517
+ );
1518
+ }
1519
+ return response.body;
1520
+ }
1461
1521
  static async deleteK8sCorpses(params) {
1462
1522
  const serviceContext = {
1463
1523
  method: {
@@ -1520,6 +1580,99 @@ class ConsoleAdminService {
1520
1580
  );
1521
1581
  }
1522
1582
  }
1583
+ static async getSpecExplainer(params) {
1584
+ const serviceContext = {
1585
+ method: {
1586
+ name: `ConsoleAdminService.getSpecExplainer`,
1587
+ url: `api/admin/clusters/${params.params.clusterId}/spec-explainer`,
1588
+ normalizedUrl: `api/admin/clusters/:clusterId/spec-explainer`,
1589
+ type: "get"
1590
+ },
1591
+ source: params.config.metrics?.source || "unset",
1592
+ target: {
1593
+ name: "console",
1594
+ type: "internal"
1595
+ }
1596
+ };
1597
+ const response = await request({
1598
+ ...params,
1599
+ base: {
1600
+ id: "console"
1601
+ },
1602
+ url: serviceContext.method.url,
1603
+ method: serviceContext.method.type,
1604
+ metricsDetails: serviceContext
1605
+ });
1606
+ if (!response.ok) {
1607
+ throw new HttpError(
1608
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
1609
+ response.status,
1610
+ response.statusText
1611
+ );
1612
+ }
1613
+ return response.body;
1614
+ }
1615
+ static async getOpenIncidents(params) {
1616
+ const serviceContext = {
1617
+ method: {
1618
+ name: "ConsoleAdminService.getOpenIncidents",
1619
+ url: "api/admin/clusters/incidents",
1620
+ normalizedUrl: "api/admin/clusters/incidents",
1621
+ type: "get"
1622
+ },
1623
+ source: params.config.metrics?.source || "unset",
1624
+ target: {
1625
+ name: "console",
1626
+ type: "internal"
1627
+ }
1628
+ };
1629
+ const response = await request({
1630
+ ...params,
1631
+ base: { id: "console" },
1632
+ url: serviceContext.method.url,
1633
+ method: serviceContext.method.type,
1634
+ metricsDetails: serviceContext
1635
+ });
1636
+ if (!response.ok) {
1637
+ throw new HttpError(
1638
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
1639
+ response.status,
1640
+ response.statusText
1641
+ );
1642
+ }
1643
+ return response.body;
1644
+ }
1645
+ static async getClusterIncidents(params) {
1646
+ const url = `api/admin/clusters/${params.clusterId}/incidents`;
1647
+ const serviceContext = {
1648
+ method: {
1649
+ name: "ConsoleAdminService.getClusterIncidents",
1650
+ url,
1651
+ normalizedUrl: "api/admin/clusters/:clusterId/incidents",
1652
+ type: "get"
1653
+ },
1654
+ source: params.config.metrics?.source || "unset",
1655
+ target: {
1656
+ name: "console",
1657
+ type: "internal"
1658
+ }
1659
+ };
1660
+ const response = await request({
1661
+ ...params,
1662
+ base: { id: "console" },
1663
+ url: serviceContext.method.url,
1664
+ method: serviceContext.method.type,
1665
+ metricsDetails: serviceContext
1666
+ });
1667
+ if (!response.ok) {
1668
+ throw new HttpError(
1669
+ `${serviceContext.method.name}: ${response.status} ${response.statusText}`,
1670
+ response.status,
1671
+ response.statusText
1672
+ );
1673
+ }
1674
+ return response.body.incidents;
1675
+ }
1523
1676
  }
1524
1677
  export {
1525
1678
  ConsoleAdminService