Skip to content

Commit b95c5cd

Browse files
Merge pull request #13249 from linode/release-v1.157.0
Release v1.157.0 - release → staging
2 parents de81051 + 5d37384 commit b95c5cd

File tree

279 files changed

+9864
-1344
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

279 files changed

+9864
-1344
lines changed

packages/api-v4/CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
## [2026-01-12] - v0.155.0
2+
3+
4+
### Added:
5+
6+
- `Akamai Cloud Pulse Logs LKE-E Audit ` to the `AccountCapability` type ([#13171](https://github.com/linode/manager/pull/13171))
7+
8+
### Changed:
9+
10+
- Use v4beta endpoints for /events and /events/<eventId> ([#13084](https://github.com/linode/manager/pull/13084))
11+
- Renamed updated_at, created_at to updated,created in NotificationChannelBase interface ([#13193](https://github.com/linode/manager/pull/13193))
12+
- Updated getDatabaseConnectionPools signature to accept params for pagination ([#13195](https://github.com/linode/manager/pull/13195))
13+
- AlertNotificationType from `custom | default` to `user | system` ([#13203](https://github.com/linode/manager/pull/13203))
14+
- ACLP-Alerting: Notification Channel types to support API changes and backward compatibility ([#13227](https://github.com/linode/manager/pull/13227))
15+
- Move to `v4 endpoint` instead of v4beta for `CloudPulse metrics` api calls ([#13239](https://github.com/linode/manager/pull/13239))
16+
17+
### Upcoming Features:
18+
19+
- Add new API endpoints and types for Resource Locking feature(RESPROT2) ([#13187](https://github.com/linode/manager/pull/13187))
20+
- Change range property of IPv6SLAAC to be optional ([#13209](https://github.com/linode/manager/pull/13209))
21+
- Add API endpoints for `Marketplace` ([#13215](https://github.com/linode/manager/pull/13215))
22+
- CloudPulse-Alerts: Add `CreateNotificationChannelPayload` in types.ts and add request function `createNotificationChannel` in alerts.ts ([#13225](https://github.com/linode/manager/pull/13225))
23+
- CloudPulse-Alerts: Add type for edition of notification channel payload ([#13235](https://github.com/linode/manager/pull/13235))
24+
125
## [2025-12-16] - v0.154.1
226

327

packages/api-v4/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@linode/api-v4",
3-
"version": "0.154.1",
3+
"version": "0.155.0",
44
"homepage": "https://github.com/linode/manager/tree/develop/packages/api-v4",
55
"bugs": {
66
"url": "https://github.com/linode/manager/issues"

packages/api-v4/src/account/events.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { API_ROOT } from '../constants';
1+
import { API_ROOT, BETA_API_ROOT } from '../constants';
22
import Request, { setMethod, setParams, setURL, setXFilter } from '../request';
33

44
import type { Filter, Params, ResourcePage } from '../types';
@@ -12,7 +12,7 @@ import type { Event, Notification } from './types';
1212
*/
1313
export const getEvents = (params: Params = {}, filter: Filter = {}) =>
1414
Request<ResourcePage<Event>>(
15-
setURL(`${API_ROOT}/account/events`),
15+
setURL(`${BETA_API_ROOT}/account/events`),
1616
setMethod('GET'),
1717
setXFilter(filter),
1818
setParams(params),
@@ -26,7 +26,7 @@ export const getEvents = (params: Params = {}, filter: Filter = {}) =>
2626
*/
2727
export const getEvent = (eventId: number) =>
2828
Request<Event>(
29-
setURL(`${API_ROOT}/account/events/${encodeURIComponent(eventId)}`),
29+
setURL(`${BETA_API_ROOT}/account/events/${encodeURIComponent(eventId)}`),
3030
setMethod('GET'),
3131
);
3232

packages/api-v4/src/cloudpulse/alerts.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import {
22
createAlertDefinitionSchema,
3+
createNotificationChannelPayloadSchema,
34
editAlertDefinitionSchema,
5+
editNotificationChannelPayloadSchema,
46
} from '@linode/validation';
57

68
import { BETA_API_ROOT as API_ROOT } from '../constants';
@@ -17,7 +19,9 @@ import type {
1719
Alert,
1820
CloudPulseAlertsPayload,
1921
CreateAlertDefinitionPayload,
22+
CreateNotificationChannelPayload,
2023
EditAlertDefinitionPayload,
24+
EditNotificationChannelPayload,
2125
NotificationChannel,
2226
} from './types';
2327

@@ -139,3 +143,32 @@ export const updateServiceAlerts = (
139143
setMethod('PUT'),
140144
setData(payload),
141145
);
146+
147+
export const createNotificationChannel = (
148+
data: CreateNotificationChannelPayload,
149+
) =>
150+
Request<NotificationChannel>(
151+
setURL(`${API_ROOT}/monitor/alert-channels`),
152+
setMethod('POST'),
153+
setData(data, createNotificationChannelPayloadSchema),
154+
);
155+
156+
export const getNotificationChannelById = (channelId: number) =>
157+
Request<NotificationChannel>(
158+
setURL(
159+
`${API_ROOT}/monitor/alert-channels/${encodeURIComponent(channelId)}`,
160+
),
161+
setMethod('GET'),
162+
);
163+
164+
export const updateNotificationChannel = (
165+
channelId: number,
166+
data: EditNotificationChannelPayload,
167+
) =>
168+
Request<NotificationChannel>(
169+
setURL(
170+
`${API_ROOT}/monitor/alert-channels/${encodeURIComponent(channelId)}`,
171+
),
172+
setMethod('PUT'),
173+
setData(data, editNotificationChannelPayloadSchema),
174+
);

packages/api-v4/src/cloudpulse/dashboards.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BETA_API_ROOT as API_ROOT } from 'src/constants';
1+
import { API_ROOT } from 'src/constants';
22

33
import Request, { setMethod, setURL } from '../request';
44

packages/api-v4/src/cloudpulse/services.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BETA_API_ROOT as API_ROOT } from 'src/constants';
1+
import { API_ROOT } from 'src/constants';
22

33
import Request, {
44
setData,

packages/api-v4/src/cloudpulse/types.ts

Lines changed: 89 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,16 @@ export type MetricUnitType =
4141
| 'second';
4242
export type NotificationStatus = 'Disabled' | 'Enabled';
4343
export type ChannelType = 'email' | 'pagerduty' | 'slack' | 'webhook';
44-
export type AlertNotificationType = 'custom' | 'default';
44+
export type AlertNotificationType = 'system' | 'user';
4545
type AlertNotificationEmail = 'email';
4646
type AlertNotificationSlack = 'slack';
4747
type AlertNotificationPagerDuty = 'pagerduty';
4848
type AlertNotificationWebHook = 'webhook';
49+
type EmailRecipientType =
50+
| 'admin_users'
51+
| 'read_users'
52+
| 'read_write_users'
53+
| 'user';
4954
export interface Dashboard {
5055
created: string;
5156
group_by?: string[];
@@ -277,50 +282,68 @@ export interface Alert {
277282
updated_by: string;
278283
}
279284

280-
interface NotificationChannelAlerts {
281-
id: number;
282-
label: string;
285+
interface NotificationChannelAlertInfo {
286+
alert_count: number;
283287
type: 'alerts-definitions';
284288
url: string;
285289
}
286290
interface NotificationChannelBase {
287-
alerts: NotificationChannelAlerts[];
291+
alerts: NotificationChannelAlertInfo;
288292
channel_type: ChannelType;
289-
created_at: string;
293+
created: string;
290294
created_by: string;
291295
id: number;
292296
label: string;
293297
status: NotificationStatus;
294298
type: AlertNotificationType;
295-
updated_at: string;
299+
updated: string;
296300
updated_by: string;
297301
}
298302

299303
interface NotificationChannelEmail extends NotificationChannelBase {
300304
channel_type: AlertNotificationEmail;
301-
content: {
305+
content?: {
302306
email: {
303307
email_addresses: string[];
304308
message: string;
305309
subject: string;
306310
};
307311
};
312+
details?: {
313+
email: {
314+
recipient_type: EmailRecipientType;
315+
usernames: string[];
316+
};
317+
};
308318
}
309319

310320
interface NotificationChannelSlack extends NotificationChannelBase {
311321
channel_type: AlertNotificationSlack;
312-
content: {
322+
content?: {
313323
slack: {
314324
message: string;
315325
slack_channel: string;
316326
slack_webhook_url: string;
317327
};
318328
};
329+
details?: {
330+
slack: {
331+
slack_channel: string;
332+
slack_webhook_url: string;
333+
};
334+
};
319335
}
320336

321337
interface NotificationChannelPagerDuty extends NotificationChannelBase {
322338
channel_type: AlertNotificationPagerDuty;
323-
content: {
339+
content?: {
340+
pagerduty: {
341+
attributes: string[];
342+
description: string;
343+
service_api_key: string;
344+
};
345+
};
346+
details?: {
324347
pagerduty: {
325348
attributes: string[];
326349
description: string;
@@ -330,12 +353,27 @@ interface NotificationChannelPagerDuty extends NotificationChannelBase {
330353
}
331354
interface NotificationChannelWebHook extends NotificationChannelBase {
332355
channel_type: AlertNotificationWebHook;
333-
content: {
356+
content?: {
357+
webhook: {
358+
http_headers: {
359+
header_key: string;
360+
header_value: string;
361+
}[];
362+
webhook_url: string;
363+
};
364+
};
365+
details?: {
334366
webhook: {
367+
alert_body: {
368+
body: string;
369+
subject: string;
370+
};
335371
http_headers: {
336372
header_key: string;
337373
header_value: string;
338374
}[];
375+
method: 'GET' | 'POST' | 'PUT';
376+
request_body: string;
339377
webhook_url: string;
340378
};
341379
};
@@ -411,3 +449,43 @@ export interface CloudPulseAlertsPayload {
411449
*/
412450
user_alerts?: number[];
413451
}
452+
453+
interface EmailDetail {
454+
email: {
455+
usernames: string[];
456+
};
457+
}
458+
459+
export interface CreateNotificationChannelPayload {
460+
/**
461+
* The type of channel to create.
462+
*/
463+
channel_type: ChannelType;
464+
/**
465+
* The details of the channel to create.
466+
*/
467+
details: EmailDetail;
468+
/**
469+
* The label of the channel to create.
470+
*/
471+
label: string;
472+
}
473+
474+
export interface EditNotificationChannelPayload {
475+
/**
476+
* The details of the channel to edit.
477+
*/
478+
details: EmailDetail;
479+
/**
480+
* The label of the channel to edit.
481+
*/
482+
label: string;
483+
}
484+
485+
export interface EditNotificationChannelPayloadWithId
486+
extends EditNotificationChannelPayload {
487+
/**
488+
* The ID of the channel to edit.
489+
*/
490+
channelId: number;
491+
}

packages/api-v4/src/databases/databases.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,12 +371,16 @@ export const getDatabaseEngineConfig = (engine: Engine) =>
371371
/**
372372
* Get a paginated list of connection pools for a database
373373
*/
374-
export const getDatabaseConnectionPools = (databaseID: number) =>
374+
export const getDatabaseConnectionPools = (
375+
databaseID: number,
376+
params?: Params,
377+
) =>
375378
Request<Page<ConnectionPool>>(
376379
setURL(
377380
`${API_ROOT}/databases/postgresql/instances/${encodeURIComponent(databaseID)}/connection-pools`,
378381
),
379382
setMethod('GET'),
383+
setParams(params),
380384
);
381385

382386
/**

packages/api-v4/src/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,14 @@ export * from './kubernetes';
2424

2525
export * from './linodes';
2626

27+
export * from './locks';
28+
2729
export * from './longview';
2830

2931
export * from './managed';
3032

33+
export * from './marketplace';
34+
3135
export * from './netloadbalancers';
3236

3337
export * from './network-transfer';

packages/api-v4/src/linodes/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ export interface ConfigInterfaceIPv4 {
192192

193193
export interface IPv6SLAAC {
194194
address?: string;
195-
range: string;
195+
range?: string;
196196
}
197197

198198
// The legacy interface type - for Configuration Profile Interfaces

0 commit comments

Comments
 (0)