Skip to content

Commit f273ec6

Browse files
Merge pull request #13429 from linode/staging
Release v1.159.0 - staging → master
2 parents 724135c + 0d86ab1 commit f273ec6

File tree

477 files changed

+18463
-4567
lines changed

Some content is hidden

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

477 files changed

+18463
-4567
lines changed

packages/api-v4/CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
## [2026-02-25] - v0.157.0
2+
3+
4+
### Added:
5+
6+
- New quota properties ([#13177](https://github.com/linode/manager/pull/13177))
7+
- `Maintenance Policy` to Linode Capabilities ([#13269](https://github.com/linode/manager/pull/13269))
8+
9+
### Changed:
10+
11+
- Adjust Custom HTTPS Destination types ([#13274](https://github.com/linode/manager/pull/13274))
12+
- Adjust Custom HTTPS Destination types: content type, data compression, custom headers ([#13331](https://github.com/linode/manager/pull/13331))
13+
- Delivery Logs - adjust DestinationDetailsPayload type for Custom HTTPS destinations ([#13380](https://github.com/linode/manager/pull/13380))
14+
- New fields in the NodeBalancer details object and NodeBalancerVPC object to align with recent API updates ([#13394](https://github.com/linode/manager/pull/13394))
15+
16+
### Removed:
17+
18+
- The value 'in-progress' from cloudpulse/types.ts ([#13406](https://github.com/linode/manager/pull/13406))
19+
20+
### Tech Stories:
21+
22+
- Clean up unused marketplace v2 apiv4 endpoints ([#13396](https://github.com/linode/manager/pull/13396))
23+
24+
### Upcoming Features:
25+
26+
- RESPROT2- Added lock permissions to IAM types (AccountAdmin and AccountViewer ) ([#13305](https://github.com/linode/manager/pull/13305))
27+
- Rename the marketplace contact sales POST API route ([#13368](https://github.com/linode/manager/pull/13368))
28+
- Deprecate connection_pool_port, add endpoints property to DatabaseHosts ([#13386](https://github.com/linode/manager/pull/13386))
29+
- Update types for network load balancer integration with `CloudPulse Metrics` ([#13387](https://github.com/linode/manager/pull/13387))
30+
131
## [2026-01-26] - v0.156.0
232

333

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.156.0",
3+
"version": "0.157.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/cloudpulse/types.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export type CloudPulseServiceType =
99
| 'firewall'
1010
| 'linode'
1111
| 'lke'
12+
| 'netloadbalancer'
1213
| 'nodebalancer'
1314
| 'objectstorage';
1415
export type AlertClass = 'dedicated' | 'shared';
@@ -26,7 +27,6 @@ export type AlertStatusType =
2627
| 'enabled'
2728
| 'enabling'
2829
| 'failed'
29-
| 'in progress'
3030
| 'provisioning';
3131
export type CriteriaConditionType = 'ALL';
3232
export type MetricUnitType =
@@ -428,6 +428,7 @@ export const capabilityServiceTypeMapping: Record<
428428
objectstorage: 'Object Storage',
429429
blockstorage: 'Block Storage',
430430
lke: 'Kubernetes',
431+
netloadbalancer: 'Network LoadBalancer',
431432
};
432433

433434
/**

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,21 @@ export interface DatabaseCredentials {
9090
username: string;
9191
}
9292

93+
export type HostEndpointRole =
94+
| 'primary'
95+
| 'primary-connection-pool'
96+
| 'standby'
97+
| 'standby-connection-pool';
98+
99+
interface HostEndpoint {
100+
address: string;
101+
port: number;
102+
private_access: boolean;
103+
role: HostEndpointRole;
104+
}
105+
93106
interface DatabaseHosts {
107+
endpoints: HostEndpoint[];
94108
primary: string;
95109
secondary?: string;
96110
standby?: string;
@@ -106,6 +120,7 @@ type MemberType = 'failover' | 'primary';
106120
export interface DatabaseInstance {
107121
allow_list: string[];
108122
cluster_size: ClusterSize;
123+
/** @Deprecated replaced by `endpoints` property */
109124
connection_pool_port: null | number;
110125
connection_strings: ConnectionStrings[];
111126
created: string;

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

Lines changed: 40 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export interface Destination extends DestinationCore, AuditData {
5858

5959
export type DestinationDetails =
6060
| AkamaiObjectStorageDetails
61-
| CustomHTTPsDetails;
61+
| CustomHTTPSDetails;
6262

6363
export interface AkamaiObjectStorageDetails {
6464
access_key_id: string;
@@ -72,38 +72,65 @@ export interface AkamaiObjectStorageDetailsExtended
7272
access_key_secret: string;
7373
}
7474

75-
type ContentType = 'application/json' | 'application/json; charset=utf-8';
76-
type DataCompressionType = 'gzip' | 'None';
75+
export const contentType = {
76+
Json: 'application/json',
77+
JsonUtf8: 'application/json; charset=utf-8',
78+
} as const;
79+
80+
export type ContentType = (typeof contentType)[keyof typeof contentType] | null;
81+
82+
export const dataCompressionType = {
83+
Gzip: 'gzip',
84+
None: 'None',
85+
} as const;
7786

78-
export interface CustomHTTPsDetails {
87+
export type DataCompressionType =
88+
(typeof dataCompressionType)[keyof typeof dataCompressionType];
89+
90+
export interface CustomHTTPSDetails {
7991
authentication: Authentication;
8092
client_certificate_details?: ClientCertificateDetails;
81-
content_type: ContentType;
93+
content_type?: ContentType;
8294
custom_headers?: CustomHeader[];
8395
data_compression: DataCompressionType;
8496
endpoint_url: string;
8597
}
8698

99+
export interface CustomHTTPSDetailsExtended extends CustomHTTPSDetails {
100+
authentication: Authentication & {
101+
details?: AuthenticationDetailsExtended;
102+
};
103+
}
104+
87105
interface ClientCertificateDetails {
88-
client_ca_certificate: string;
89-
client_certificate: string;
90-
client_private_key: string;
91-
tls_hostname: string;
106+
client_ca_certificate?: string;
107+
client_certificate?: string;
108+
client_private_key?: string;
109+
tls_hostname?: string;
92110
}
93111

94-
type AuthenticationType = 'basic' | 'none';
112+
export const authenticationType = {
113+
Basic: 'basic',
114+
None: 'none',
115+
} as const;
116+
117+
export type AuthenticationType =
118+
(typeof authenticationType)[keyof typeof authenticationType];
95119

96120
interface Authentication {
97121
details?: AuthenticationDetails;
98122
type: AuthenticationType;
99123
}
100124

101125
interface AuthenticationDetails {
102-
basic_authentication_password: string;
103126
basic_authentication_user: string;
104127
}
105128

106-
interface CustomHeader {
129+
interface AuthenticationDetailsExtended extends AuthenticationDetails {
130+
basic_authentication_password: string;
131+
}
132+
133+
export interface CustomHeader {
107134
name: string;
108135
value: string;
109136
}
@@ -134,7 +161,7 @@ export interface AkamaiObjectStorageDetailsPayload
134161

135162
export type DestinationDetailsPayload =
136163
| AkamaiObjectStorageDetailsPayload
137-
| CustomHTTPsDetails;
164+
| CustomHTTPSDetailsExtended;
138165

139166
export interface CreateDestinationPayload {
140167
details: DestinationDetailsPayload;

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

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import { BETA_API_ROOT } from '../constants';
2-
import Request, { setData, setMethod, setParams, setURL } from '../request';
2+
import Request, {
3+
setData,
4+
setMethod,
5+
setParams,
6+
setURL,
7+
setXFilter,
8+
} from '../request';
39

410
import type { Account } from '../account';
511
import type { Token } from '../profile';
@@ -18,29 +24,35 @@ import type { IamUserRoles } from './types';
1824
export const getChildAccountsIam = ({
1925
params,
2026
users,
21-
}: GetChildAccountsIamParams) =>
22-
users
27+
filter,
28+
}: GetChildAccountsIamParams) => {
29+
return users
2330
? Request<Page<ChildAccountWithDelegates>>(
2431
setURL(`${BETA_API_ROOT}/iam/delegation/child-accounts?users=true`),
2532
setMethod('GET'),
26-
setParams({ ...params }),
33+
setParams(params),
34+
setXFilter(filter),
2735
)
2836
: Request<Page<ChildAccount>>(
2937
setURL(`${BETA_API_ROOT}/iam/delegation/child-accounts`),
3038
setMethod('GET'),
31-
setParams({ ...params }),
39+
setParams(params),
40+
setXFilter(filter),
3241
);
42+
};
3343

3444
export const getDelegatedChildAccountsForUser = ({
3545
username,
3646
params,
47+
filter,
3748
}: GetDelegatedChildAccountsForUserParams) =>
3849
Request<Page<ChildAccount>>(
3950
setURL(
4051
`${BETA_API_ROOT}/iam/delegation/users/${encodeURIComponent(username)}/child-accounts`,
4152
),
4253
setMethod('GET'),
4354
setParams(params),
55+
setXFilter(filter),
4456
);
4557

4658
export const getChildAccountDelegates = ({
@@ -69,11 +81,13 @@ export const updateChildAccountDelegates = ({
6981

7082
export const getMyDelegatedChildAccounts = ({
7183
params,
84+
filter,
7285
}: GetMyDelegatedChildAccountsParams) =>
7386
Request<Page<Account>>(
7487
setURL(`${BETA_API_ROOT}/iam/delegation/profile/child-accounts`),
7588
setMethod('GET'),
7689
setParams(params),
90+
setXFilter(filter),
7791
);
7892

7993
export const getDelegatedChildAccount = ({ euuid }: { euuid: string }) =>

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
import type { Params } from 'src/types';
1+
import type { Filter, Params } from 'src/types';
22

33
export interface ChildAccount {
44
company: string;
55
euuid: string;
66
}
77

88
export interface GetChildAccountsIamParams {
9+
enabled?: boolean;
10+
filter?: Filter;
911
params?: Params;
1012
users?: boolean;
1113
}
@@ -15,11 +17,13 @@ export interface ChildAccountWithDelegates extends ChildAccount {
1517
}
1618

1719
export interface GetMyDelegatedChildAccountsParams {
20+
filter?: Filter;
1821
params?: Params;
1922
}
2023

2124
export interface GetDelegatedChildAccountsForUserParams {
2225
enabled?: boolean;
26+
filter?: Filter;
2327
params?: Params;
2428
username: string;
2529
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,13 @@ export type AccountAdmin =
7676
| 'cancel_account'
7777
| 'cancel_service_transfer'
7878
| 'create_child_account_token'
79+
| 'create_lock'
7980
| 'create_profile_pat'
8081
| 'create_profile_ssh_key'
8182
| 'create_profile_tfa_secret'
8283
| 'create_service_transfer'
8384
| 'create_user'
85+
| 'delete_lock'
8486
| 'delete_profile_pat'
8587
| 'delete_profile_phone_number'
8688
| 'delete_profile_ssh_key'
@@ -98,6 +100,7 @@ export type AccountAdmin =
98100
| 'list_delegate_users'
99101
| 'list_enrolled_beta_programs'
100102
| 'list_entities'
103+
| 'list_locks'
101104
| 'list_role_permissions'
102105
| 'list_service_transfers'
103106
| 'list_user_delegate_accounts'
@@ -123,6 +126,7 @@ export type AccountAdmin =
123126
| 'view_account_settings'
124127
| 'view_child_account'
125128
| 'view_enrolled_beta_program'
129+
| 'view_lock'
126130
| 'view_network_usage'
127131
| 'view_profile_security_question'
128132
| 'view_region_available_service'
@@ -258,6 +262,7 @@ export type AccountViewer =
258262
| 'list_default_firewalls'
259263
| 'list_enrolled_beta_programs'
260264
| 'list_entities'
265+
| 'list_locks'
261266
| 'list_role_permissions'
262267
| 'list_service_transfers'
263268
| 'list_user_grants'
@@ -266,6 +271,7 @@ export type AccountViewer =
266271
| 'view_account_login'
267272
| 'view_account_settings'
268273
| 'view_enrolled_beta_program'
274+
| 'view_lock'
269275
| 'view_network_usage'
270276
| 'view_region_available_service'
271277
| 'view_service_transfer'

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,13 @@ export interface Linode {
4646
label: string;
4747
lke_cluster_id: null | number;
4848
locks: LockType[];
49-
maintenance_policy?: MaintenancePolicySlug;
49+
/**
50+
* The maintenance policy configured for this Linode.
51+
*
52+
* Will be `null` if the Maintenance Policy feature is not enabled or the Linode's
53+
* region does not support maintenance policies.
54+
*/
55+
maintenance_policy: MaintenancePolicySlug | null;
5056
placement_group: LinodePlacementGroupPayload | null;
5157
region: string;
5258
site_type: RegionSite;
@@ -75,6 +81,7 @@ export interface LinodeBackups {
7581
export type LinodeCapabilities =
7682
| 'Block Storage Encryption'
7783
| 'Block Storage Performance B1'
84+
| 'Maintenance Policy'
7885
| 'SMTP Enabled';
7986

8087
export type Window =

0 commit comments

Comments
 (0)