Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 54 additions & 7 deletions packages/clients/src/api/instance/v1/api.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import {
marshalUpdateIpRequest,
marshalUpdatePlacementGroupRequest,
marshalUpdatePlacementGroupServersRequest,
marshalUpdatePrivateNICRequest,
marshalUpdateServerRequest,
marshalUpdateVolumeRequest,
unmarshalCreateImageResponse,
Expand Down Expand Up @@ -69,6 +70,7 @@ import {
unmarshalListSnapshotsResponse,
unmarshalListVolumesResponse,
unmarshalListVolumesTypesResponse,
unmarshalPrivateNIC,
unmarshalServerActionResponse,
unmarshalSetImageResponse,
unmarshalSetPlacementGroupResponse,
Expand Down Expand Up @@ -169,6 +171,7 @@ import type {
ListVolumesResponse,
ListVolumesTypesRequest,
ListVolumesTypesResponse,
PrivateNIC,
ServerActionRequest,
ServerActionResponse,
SetPlacementGroupRequest,
Expand All @@ -183,6 +186,7 @@ import type {
UpdatePlacementGroupResponse,
UpdatePlacementGroupServersRequest,
UpdatePlacementGroupServersResponse,
UpdatePrivateNICRequest,
UpdateServerResponse,
UpdateVolumeRequest,
UpdateVolumeResponse,
Expand Down Expand Up @@ -1484,13 +1488,9 @@ export class API extends ParentAPI {
)}/ips/${validatePathParam('ip', request.ip)}`,
})

/**
* List all private NICs of a given server.
*
* @param request - The request {@link ListPrivateNICsRequest}
* @returns A Promise of ListPrivateNICsResponse
*/
listPrivateNICs = (request: Readonly<ListPrivateNICsRequest>) =>
protected pageOfListPrivateNICs = (
request: Readonly<ListPrivateNICsRequest>,
) =>
this.client.fetch<ListPrivateNICsResponse>(
{
method: 'GET',
Expand All @@ -1501,10 +1501,29 @@ export class API extends ParentAPI {
'serverId',
request.serverId,
)}/private_nics`,
urlParams: urlParams(
['page', request.page],
['per_page', request.perPage ?? this.client.settings.defaultPageSize],
[
'tags',
request.tags && request.tags.length > 0
? request.tags.join(',')
: undefined,
],
),
},
unmarshalListPrivateNICsResponse,
)

/**
* List all private NICs of a given server.
*
* @param request - The request {@link ListPrivateNICsRequest}
* @returns A Promise of ListPrivateNICsResponse
*/
listPrivateNICs = (request: Readonly<ListPrivateNICsRequest>) =>
enrichForPagination('privateNics', this.pageOfListPrivateNICs, request)

/**
* Create a private NIC connecting a server to a private network.
*
Expand Down Expand Up @@ -1554,6 +1573,34 @@ export class API extends ParentAPI {
unmarshalGetPrivateNICResponse,
)

/**
* Update one or more parameter/s to a given private NIC.
*
* @param request - The request {@link UpdatePrivateNICRequest}
* @returns A Promise of PrivateNIC
*/
updatePrivateNIC = (request: Readonly<UpdatePrivateNICRequest>) =>
this.client.fetch<PrivateNIC>(
{
body: JSON.stringify(
marshalUpdatePrivateNICRequest(request, this.client.settings),
),
headers: jsonContentHeaders,
method: 'PATCH',
path: `/instance/v1/zones/${validatePathParam(
'zone',
request.zone ?? this.client.settings.defaultZone,
)}/servers/${validatePathParam(
'serverId',
request.serverId,
)}/private_nics/${validatePathParam(
'privateNicId',
request.privateNicId,
)}`,
},
unmarshalPrivateNIC,
)

/**
* Delete a private NIC.
*
Expand Down
1 change: 1 addition & 0 deletions packages/clients/src/api/instance/v1/index.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ export type {
UpdatePlacementGroupResponse,
UpdatePlacementGroupServersRequest,
UpdatePlacementGroupServersResponse,
UpdatePrivateNICRequest,
UpdateServerResponse,
UpdateVolumeRequest,
UpdateVolumeResponse,
Expand Down
14 changes: 13 additions & 1 deletion packages/clients/src/api/instance/v1/marshalling.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ import type {
UpdatePlacementGroupResponse,
UpdatePlacementGroupServersRequest,
UpdatePlacementGroupServersResponse,
UpdatePrivateNICRequest,
UpdateServerResponse,
UpdateVolumeRequest,
UpdateVolumeResponse,
Expand Down Expand Up @@ -274,7 +275,7 @@ const unmarshalPlacementGroup = (data: unknown) => {
} as PlacementGroup
}

const unmarshalPrivateNIC = (data: unknown) => {
export const unmarshalPrivateNIC = (data: unknown) => {
if (!isJSONObject(data)) {
throw new TypeError(
`Unmarshalling the type 'PrivateNIC' failed as data isn't a dictionary.`,
Expand All @@ -287,6 +288,7 @@ const unmarshalPrivateNIC = (data: unknown) => {
privateNetworkId: data.private_network_id,
serverId: data.server_id,
state: data.state,
tags: data.tags,
} as PrivateNIC
}

Expand Down Expand Up @@ -1078,6 +1080,7 @@ export const unmarshalListPrivateNICsResponse = (data: unknown) => {

return {
privateNics: unmarshalArrayOfObject(data.private_nics, unmarshalPrivateNIC),
totalCount: data.total_count,
} as ListPrivateNICsResponse
}

Expand Down Expand Up @@ -1485,6 +1488,7 @@ const marshalPrivateNIC = (
private_network_id: request.privateNetworkId,
server_id: request.serverId,
state: request.state,
tags: request.tags,
})

const marshalSecurityGroupSummary = (
Expand Down Expand Up @@ -1684,6 +1688,7 @@ export const marshalCreatePrivateNICRequest = (
defaults: DefaultValues,
): Record<string, unknown> => ({
private_network_id: request.privateNetworkId,
tags: request.tags,
})

export const marshalCreateSecurityGroupRequest = (
Expand Down Expand Up @@ -2059,6 +2064,13 @@ export const marshalUpdatePlacementGroupServersRequest = (
servers: request.servers,
})

export const marshalUpdatePrivateNICRequest = (
request: UpdatePrivateNICRequest,
defaults: DefaultValues,
): Record<string, unknown> => ({
tags: request.tags,
})

export const marshalUpdateServerRequest = (
request: UpdateServerRequest,
defaults: DefaultValues,
Expand Down
25 changes: 25 additions & 0 deletions packages/clients/src/api/instance/v1/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,7 @@ export interface ListPlacementGroupsResponse {

export interface ListPrivateNICsResponse {
privateNics: PrivateNIC[]
totalCount: number
}

/** List security group rules response */
Expand Down Expand Up @@ -411,6 +412,8 @@ export interface PrivateNIC {
macAddress: string
/** The private NIC state */
state: PrivateNICState
/** The private NIC tags */
tags: string[]
}

/** Security group */
Expand Down Expand Up @@ -1587,6 +1590,15 @@ export type ListPrivateNICsRequest = {
zone?: Zone
/** The server the private NIC is attached to */
serverId: string
/** The private NIC tags */
tags?: string[]
/**
* A positive integer lower or equal to 100 to select the number of items to
* return
*/
perPage?: number
/** A positive integer to choose the page to return */
page?: number
}

export type CreatePrivateNICRequest = {
Expand All @@ -1596,6 +1608,8 @@ export type CreatePrivateNICRequest = {
serverId: string
/** UUID of the private network where the private NIC will be attached */
privateNetworkId: string
/** The private NIC tags */
tags?: string[]
}

export type GetPrivateNICRequest = {
Expand All @@ -1607,6 +1621,17 @@ export type GetPrivateNICRequest = {
privateNicId: string
}

export type UpdatePrivateNICRequest = {
/** Zone to target. If none is passed will use default zone from the config */
zone?: Zone
/** UUID of the server the private NIC will be attached to */
serverId: string
/** The private NIC unique ID */
privateNicId: string
/** Tags used to select private NIC/s */
tags?: string[]
}

export type DeletePrivateNICRequest = {
/** Zone to target. If none is passed will use default zone from the config */
zone?: Zone
Expand Down