diff --git a/packages/clients/src/api/cockpit/v1beta1/api.gen.ts b/packages/clients/src/api/cockpit/v1beta1/api.gen.ts index e0799b6cc..33fd019f9 100644 --- a/packages/clients/src/api/cockpit/v1beta1/api.gen.ts +++ b/packages/clients/src/api/cockpit/v1beta1/api.gen.ts @@ -23,6 +23,7 @@ import { marshalResetGrafanaUserPasswordRequest, marshalTriggerTestAlertRequest, unmarshalCockpit, + unmarshalCockpitMetrics, unmarshalContactPoint, unmarshalGrafanaUser, unmarshalListContactPointsResponse, @@ -33,6 +34,7 @@ import { import type { ActivateCockpitRequest, Cockpit, + CockpitMetrics, ContactPoint, CreateContactPointRequest, CreateGrafanaUserRequest, @@ -43,6 +45,7 @@ import type { DeleteTokenRequest, DisableManagedAlertsRequest, EnableManagedAlertsRequest, + GetCockpitMetricsRequest, GetCockpitRequest, GetTokenRequest, GrafanaUser, @@ -127,6 +130,30 @@ export class API extends ParentAPI { options, ) + /** + * Get cockpit metrics. Get the cockpit metrics with the given project ID. + * + * @param request - The request {@link GetCockpitMetricsRequest} + * @returns A Promise of CockpitMetrics + */ + getCockpitMetrics = (request: Readonly = {}) => + this.client.fetch( + { + method: 'GET', + path: `/cockpit/v1beta1/cockpit/metrics`, + urlParams: urlParams( + ['end_date', request.endDate], + ['metric_name', request.metricName], + [ + 'project_id', + request.projectId ?? this.client.settings.defaultProjectId, + ], + ['start_date', request.startDate], + ), + }, + unmarshalCockpitMetrics, + ) + /** * Deactivate a cockpit. Deactivate a cockpit associated with the given * project ID. diff --git a/packages/clients/src/api/cockpit/v1beta1/index.gen.ts b/packages/clients/src/api/cockpit/v1beta1/index.gen.ts index 7a947c45b..8729c6922 100644 --- a/packages/clients/src/api/cockpit/v1beta1/index.gen.ts +++ b/packages/clients/src/api/cockpit/v1beta1/index.gen.ts @@ -6,6 +6,7 @@ export type { ActivateCockpitRequest, Cockpit, CockpitEndpoints, + CockpitMetrics, CockpitStatus, ContactPoint, ContactPointEmail, @@ -18,6 +19,7 @@ export type { DeleteTokenRequest, DisableManagedAlertsRequest, EnableManagedAlertsRequest, + GetCockpitMetricsRequest, GetCockpitRequest, GetTokenRequest, GrafanaUser, diff --git a/packages/clients/src/api/cockpit/v1beta1/marshalling.gen.ts b/packages/clients/src/api/cockpit/v1beta1/marshalling.gen.ts index bf4244615..68bd041c9 100644 --- a/packages/clients/src/api/cockpit/v1beta1/marshalling.gen.ts +++ b/packages/clients/src/api/cockpit/v1beta1/marshalling.gen.ts @@ -6,12 +6,14 @@ import { resolveOneOf, unmarshalArrayOfObject, unmarshalDate, + unmarshalTimeSeries, } from '../../../bridge' import type { DefaultValues } from '../../../bridge' import type { ActivateCockpitRequest, Cockpit, CockpitEndpoints, + CockpitMetrics, ContactPoint, ContactPointEmail, CreateContactPointRequest, @@ -140,6 +142,18 @@ export const unmarshalCockpit = (data: unknown) => { } as Cockpit } +export const unmarshalCockpitMetrics = (data: unknown) => { + if (!isJSONObject(data)) { + throw new TypeError( + `Unmarshalling the type 'CockpitMetrics' failed as data isn't a dictionary.`, + ) + } + + return { + timeseries: unmarshalArrayOfObject(data.timeseries, unmarshalTimeSeries), + } as CockpitMetrics +} + export const unmarshalListContactPointsResponse = (data: unknown) => { if (!isJSONObject(data)) { throw new TypeError( diff --git a/packages/clients/src/api/cockpit/v1beta1/types.gen.ts b/packages/clients/src/api/cockpit/v1beta1/types.gen.ts index 5d68fd6ef..d446773a8 100644 --- a/packages/clients/src/api/cockpit/v1beta1/types.gen.ts +++ b/packages/clients/src/api/cockpit/v1beta1/types.gen.ts @@ -1,5 +1,6 @@ // This file was automatically generated. DO NOT EDIT. // If you have any remark or suggestion do not hesitate to open an issue. +import type { TimeSeries } from '../../../bridge' export type CockpitStatus = | 'unknown_status' @@ -43,6 +44,12 @@ export interface CockpitEndpoints { grafanaUrl: string } +/** Cockpit metrics. */ +export interface CockpitMetrics { + /** Timeseries array. */ + timeseries: TimeSeries[] +} + /** Alert contact point. Contact point. */ export interface ContactPoint { /** @@ -119,6 +126,17 @@ export type GetCockpitRequest = { projectId?: string } +export type GetCockpitMetricsRequest = { + /** Project ID. */ + projectId?: string + /** Start date. */ + startDate?: Date + /** End date. */ + endDate?: Date + /** Metric name. */ + metricName?: string +} + export type DeactivateCockpitRequest = { projectId?: string }