Skip to content

Commit b1db6fe

Browse files
Merge pull request #13085 from linode/release-v1.155.0
Release v1.155.0 - release → staging
2 parents 9e9284a + 1a1e18f commit b1db6fe

File tree

215 files changed

+6898
-2002
lines changed

Some content is hidden

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

215 files changed

+6898
-2002
lines changed

Jenkinsfile-playwright.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
library 'cloud-manager-ui-tests'
2+
3+
runTestsRelease()

Jenkinsfile-region-tests.groovy

Lines changed: 0 additions & 3 deletions
This file was deleted.

packages/api-v4/CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
## [2025-11-18] - v0.153.0
2+
3+
4+
### Added:
5+
6+
- IAM Parent/Child: delegate permissions ([#13033](https://github.com/linode/manager/pull/13033))
7+
- Added `Akamai Cloud Pulse Logs ` to the `AccountCapability` type ([#13062](https://github.com/linode/manager/pull/13062))
8+
9+
### Changed:
10+
11+
- IAM: cleanup for nodebalancer permissions ([#13017](https://github.com/linode/manager/pull/13017))
12+
13+
### Upcoming Features:
14+
15+
- Clean up Delivery Stream and Destination interfaces ([#13038](https://github.com/linode/manager/pull/13038))
16+
- Add new API endpoints, and types for Firewall RS & PL ([#13061](https://github.com/linode/manager/pull/13061))
17+
- CloudPulse-Metrics: Update `CloudPulseServiceType` and `CapabilityServiceTypeMapping` at types.ts for new service - lke ([#13064](https://github.com/linode/manager/pull/13064))
18+
- New IAM getUserEntitiesByPermission endpoint ([#13070](https://github.com/linode/manager/pull/13070))
19+
120
## [2025-11-04] - v0.152.0
221

322

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.152.0",
3+
"version": "0.153.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/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export type BillingSource = 'akamai' | 'linode';
6262
export const accountCapabilities = [
6363
'Akamai Cloud Load Balancer',
6464
'Akamai Cloud Pulse',
65+
'Akamai Cloud Pulse Logs',
6566
'Block Storage',
6667
'Block Storage Encryption',
6768
'Cloud Firewall',

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export type CloudPulseServiceType =
88
| 'dbaas'
99
| 'firewall'
1010
| 'linode'
11+
| 'lke'
1112
| 'nodebalancer'
1213
| 'objectstorage';
1314
export type AlertClass = 'dedicated' | 'shared';
@@ -381,6 +382,7 @@ export const capabilityServiceTypeMapping: Record<
381382
firewall: 'Cloud Firewall',
382383
objectstorage: 'Object Storage',
383384
blockstorage: 'Block Storage',
385+
lke: 'Kubernetes',
384386
};
385387

386388
/**

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,11 @@ export interface AuditData {
2020
}
2121

2222
export interface Stream extends AuditData {
23-
destinations: Destination[];
23+
destinations: DestinationCore[];
2424
details: StreamDetailsType;
2525
id: number;
2626
label: string;
27-
primary_destination_id: number;
2827
status: StreamStatus;
29-
stream_audit_id: number;
3028
type: StreamType;
3129
version: string;
3230
}
@@ -46,11 +44,14 @@ export const destinationType = {
4644
export type DestinationType =
4745
(typeof destinationType)[keyof typeof destinationType];
4846

49-
export interface Destination extends AuditData {
47+
export interface DestinationCore {
5048
details: DestinationDetails;
5149
id: number;
5250
label: string;
5351
type: DestinationType;
52+
}
53+
54+
export interface Destination extends DestinationCore, AuditData {
5455
version: string;
5556
}
5657

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

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ import type {
2020
Firewall,
2121
FirewallDevice,
2222
FirewallDevicePayload,
23+
FirewallPrefixList,
2324
FirewallRules,
25+
FirewallRuleSet,
2426
FirewallSettings,
2527
FirewallTemplate,
2628
FirewallTemplateSlug,
@@ -305,3 +307,55 @@ export const getTemplate = (templateSlug: FirewallTemplateSlug) =>
305307
)}`,
306308
),
307309
);
310+
311+
/**
312+
* getFirewallRuleSets
313+
*
314+
* Returns a paginated list of all Cloud Firewall Rule Sets.
315+
*/
316+
export const getFirewallRuleSets = (params?: Params, filter?: Filter) =>
317+
Request<Page<FirewallRuleSet>>(
318+
setMethod('GET'),
319+
setParams(params),
320+
setXFilter(filter),
321+
setURL(`${BETA_API_ROOT}/networking/firewalls/rulesets`),
322+
);
323+
324+
/**
325+
* getFirewallRuleSet
326+
*
327+
* Get a specific Firewall Rule Set by its ID.
328+
*/
329+
export const getFirewallRuleSet = (ruleSetID: number) =>
330+
Request<FirewallRuleSet>(
331+
setMethod('GET'),
332+
setURL(
333+
`${BETA_API_ROOT}/networking/firewalls/rulesets/${encodeURIComponent(ruleSetID)}`,
334+
),
335+
);
336+
337+
/**
338+
* getFirewallPrefixLists
339+
*
340+
* Returns a paginated list of all Cloud Firewall Prefix Lists.
341+
*/
342+
export const getFirewallPrefixLists = (params?: Params, filter?: Filter) =>
343+
Request<Page<FirewallPrefixList>>(
344+
setMethod('GET'),
345+
setParams(params),
346+
setXFilter(filter),
347+
setURL(`${BETA_API_ROOT}/networking/prefixlists`),
348+
);
349+
350+
/**
351+
* getFirewallPrefixList
352+
*
353+
* Get a specific Firewall Prefix List by its ID.
354+
*/
355+
export const getFirewallPrefixList = (prefixListID: number) =>
356+
Request<FirewallPrefixList>(
357+
setMethod('GET'),
358+
setURL(
359+
`${BETA_API_ROOT}/networking/prefixlists/${encodeURIComponent(prefixListID)}`,
360+
),
361+
);

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

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,30 @@ export interface FirewallSettings {
106106
export interface UpdateFirewallSettings {
107107
default_firewall_ids: Partial<DefaultFirewallIDs>;
108108
}
109+
110+
export interface FirewallRuleSet {
111+
created: string;
112+
deleted: null | string;
113+
description: string;
114+
id: number;
115+
is_service_defined: boolean;
116+
label: string;
117+
rules: FirewallRuleType[];
118+
type: string;
119+
updated: string;
120+
version: number;
121+
}
122+
123+
export type FirewallPrefixListVisibility = 'private' | 'public' | 'restricted';
124+
125+
export interface FirewallPrefixList {
126+
created: string;
127+
description: string;
128+
id: number;
129+
ipv4?: null | string[];
130+
ipv6?: null | string[];
131+
name: string;
132+
updated: string;
133+
version: number;
134+
visibility: FirewallPrefixListVisibility;
135+
}

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ import Request, { setData, setMethod, setURL } from '../request';
33

44
import type {
55
AccessType,
6+
EntityByPermission,
67
IamAccountRoles,
78
IamUserRoles,
89
PermissionType,
910
} from './types';
11+
import type { EntityType } from 'src/entities/types';
1012

1113
/**
1214
* getUserRoles
@@ -100,3 +102,26 @@ export const getUserEntityPermissions = (
100102
),
101103
setMethod('GET'),
102104
);
105+
106+
/**
107+
* getUserEntitiesByPermission
108+
*
109+
* Returns the available entities for a given permission.
110+
*/
111+
export interface GetEntitiesByPermissionParams {
112+
entityType: EntityType;
113+
permission: PermissionType;
114+
username: string | undefined;
115+
}
116+
117+
export const getUserEntitiesByPermission = ({
118+
username,
119+
entityType,
120+
permission,
121+
}: GetEntitiesByPermissionParams) =>
122+
Request<EntityByPermission[]>(
123+
setURL(
124+
`${BETA_API_ROOT}/iam/users/${username}/entities/${entityType}?permission=${permission}`,
125+
),
126+
setMethod('GET'),
127+
);

0 commit comments

Comments
 (0)