Skip to content

Commit 06dcd76

Browse files
feat(cockpit): add getRulesCount endpoint (#2219)
Co-authored-by: Laure-di <[email protected]>
1 parent 8a330ea commit 06dcd76

File tree

4 files changed

+101
-0
lines changed

4 files changed

+101
-0
lines changed

packages_generated/cockpit/src/v1/api.gen.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import {
3232
unmarshalDisableAlertRulesResponse,
3333
unmarshalEnableAlertRulesResponse,
3434
unmarshalGetConfigResponse,
35+
unmarshalGetRulesCountResponse,
3536
unmarshalGrafana,
3637
unmarshalGrafanaProductDashboard,
3738
unmarshalGrafanaUser,
@@ -53,6 +54,7 @@ import type {
5354
DisableAlertRulesResponse,
5455
EnableAlertRulesResponse,
5556
GetConfigResponse,
57+
GetRulesCountResponse,
5658
GlobalApiCreateGrafanaUserRequest,
5759
GlobalApiDeleteGrafanaUserRequest,
5860
GlobalApiGetCurrentPlanRequest,
@@ -90,6 +92,7 @@ import type {
9092
RegionalApiGetAlertManagerRequest,
9193
RegionalApiGetConfigRequest,
9294
RegionalApiGetDataSourceRequest,
95+
RegionalApiGetRulesCountRequest,
9396
RegionalApiGetTokenRequest,
9497
RegionalApiGetUsageOverviewRequest,
9598
RegionalApiListAlertsRequest,
@@ -690,6 +693,25 @@ The output returned displays a URL to access the Alert manager, and whether the
690693
unmarshalAlertManager,
691694
)
692695

696+
/**
697+
* Get a detailed count of enabled rules in the specified Project. Includes preconfigured and custom alerting and recording rules.. Get a detailed count of enabled rules in the specified Project. Includes preconfigured and custom alerting and recording rules.
698+
*
699+
* @param request - The request {@link RegionalApiGetRulesCountRequest}
700+
* @returns A Promise of GetRulesCountResponse
701+
*/
702+
getRulesCount = (request: Readonly<RegionalApiGetRulesCountRequest> = {}) =>
703+
this.client.fetch<GetRulesCountResponse>(
704+
{
705+
method: 'GET',
706+
path: `/cockpit/v1/regions/${validatePathParam('region', request.region ?? this.client.settings.defaultRegion)}/rules/count`,
707+
urlParams: urlParams([
708+
'project_id',
709+
request.projectId ?? this.client.settings.defaultProjectId,
710+
]),
711+
},
712+
unmarshalGetRulesCountResponse,
713+
)
714+
693715
/**
694716
* Create a contact point. Contact points are email addresses associated with the default receiver, that the Alert manager sends alerts to.
695717
The source of the alerts are data sources within the same Project and region as the Alert manager.

packages_generated/cockpit/src/v1/index.gen.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export type {
1818
EnableAlertRulesResponse,
1919
GetConfigResponse,
2020
GetConfigResponseRetention,
21+
GetRulesCountResponse,
2122
GlobalApiCreateGrafanaUserRequest,
2223
GlobalApiDeleteGrafanaUserRequest,
2324
GlobalApiGetCurrentPlanRequest,
@@ -62,6 +63,7 @@ export type {
6263
RegionalApiGetAlertManagerRequest,
6364
RegionalApiGetConfigRequest,
6465
RegionalApiGetDataSourceRequest,
66+
RegionalApiGetRulesCountRequest,
6567
RegionalApiGetTokenRequest,
6668
RegionalApiGetUsageOverviewRequest,
6769
RegionalApiListAlertsRequest,
@@ -71,6 +73,7 @@ export type {
7173
RegionalApiTriggerTestAlertRequest,
7274
RegionalApiUpdateContactPointRequest,
7375
RegionalApiUpdateDataSourceRequest,
76+
RulesCount,
7477
Token,
7578
TokenScope,
7679
Usage,

packages_generated/cockpit/src/v1/marshalling.gen.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import type {
1717
EnableAlertRulesResponse,
1818
GetConfigResponse,
1919
GetConfigResponseRetention,
20+
GetRulesCountResponse,
2021
GlobalApiCreateGrafanaUserRequest,
2122
GlobalApiResetGrafanaUserPasswordRequest,
2223
GlobalApiSelectPlanRequest,
@@ -46,6 +47,7 @@ import type {
4647
RegionalApiTriggerTestAlertRequest,
4748
RegionalApiUpdateContactPointRequest,
4849
RegionalApiUpdateDataSourceRequest,
50+
RulesCount,
4951
Token,
5052
Usage,
5153
UsageOverview,
@@ -257,6 +259,39 @@ export const unmarshalGetConfigResponse = (
257259
} as GetConfigResponse
258260
}
259261

262+
const unmarshalRulesCount = (data: unknown): RulesCount => {
263+
if (!isJSONObject(data)) {
264+
throw new TypeError(
265+
`Unmarshalling the type 'RulesCount' failed as data isn't a dictionary.`,
266+
)
267+
}
268+
269+
return {
270+
dataSourceId: data.data_source_id,
271+
dataSourceName: data.data_source_name,
272+
rulesCount: data.rules_count,
273+
} as RulesCount
274+
}
275+
276+
export const unmarshalGetRulesCountResponse = (
277+
data: unknown,
278+
): GetRulesCountResponse => {
279+
if (!isJSONObject(data)) {
280+
throw new TypeError(
281+
`Unmarshalling the type 'GetRulesCountResponse' failed as data isn't a dictionary.`,
282+
)
283+
}
284+
285+
return {
286+
customRulesCount: data.custom_rules_count,
287+
preconfiguredRulesCount: data.preconfigured_rules_count,
288+
rulesCountByDatasource: unmarshalArrayOfObject(
289+
data.rules_count_by_datasource,
290+
unmarshalRulesCount,
291+
),
292+
} as GetRulesCountResponse
293+
}
294+
260295
export const unmarshalGrafana = (data: unknown): Grafana => {
261296
if (!isJSONObject(data)) {
262297
throw new TypeError(

packages_generated/cockpit/src/v1/types.gen.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,21 @@ export interface GetConfigResponseRetention {
8484
defaultDays: number
8585
}
8686

87+
export interface RulesCount {
88+
/**
89+
* ID of the data source.
90+
*/
91+
dataSourceId: string
92+
/**
93+
* Name of the data source.
94+
*/
95+
dataSourceName: string
96+
/**
97+
* Total count of rules associated with this data source.
98+
*/
99+
rulesCount: number
100+
}
101+
87102
/**
88103
* Structure representing an alert.
89104
*/
@@ -430,6 +445,21 @@ export interface GetConfigResponse {
430445
productLogsRetention?: GetConfigResponseRetention
431446
}
432447

448+
export interface GetRulesCountResponse {
449+
/**
450+
* Total count of rules grouped by data source.
451+
*/
452+
rulesCountByDatasource: RulesCount[]
453+
/**
454+
* Total count of preconfigured rules.
455+
*/
456+
preconfiguredRulesCount: number
457+
/**
458+
* Total count of custom rules.
459+
*/
460+
customRulesCount: number
461+
}
462+
433463
/**
434464
* Create a Grafana user.
435465
*/
@@ -953,6 +983,17 @@ export type RegionalApiGetDataSourceRequest = {
953983
dataSourceId: string
954984
}
955985

986+
export type RegionalApiGetRulesCountRequest = {
987+
/**
988+
* Region to target. If none is passed will use default region from the config.
989+
*/
990+
region?: ScwRegion
991+
/**
992+
* ID of the Project to retrieve the rule count for.
993+
*/
994+
projectId?: string
995+
}
996+
956997
/**
957998
* Get a token.
958999
*/

0 commit comments

Comments
 (0)