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
136 changes: 136 additions & 0 deletions packages/clients/src/api/baremetal/v1/api.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ import type { WaitForOptions, Zone } from '../../../bridge'
import { SERVER_TRANSIENT_STATUSES } from './content.gen'
import {
marshalAddOptionServerRequest,
marshalAddServerPrivateNetworkRequest,
marshalCreateServerRequest,
marshalInstallServerRequest,
marshalRebootServerRequest,
marshalSetServerPrivateNetworksRequest,
marshalStartBMCAccessRequest,
marshalStartServerRequest,
marshalUpdateIPRequest,
Expand All @@ -26,19 +28,24 @@ import {
unmarshalListOffersResponse,
unmarshalListOptionsResponse,
unmarshalListServerEventsResponse,
unmarshalListServerPrivateNetworksResponse,
unmarshalListServersResponse,
unmarshalListSettingsResponse,
unmarshalOS,
unmarshalOffer,
unmarshalOption,
unmarshalServer,
unmarshalServerPrivateNetwork,
unmarshalSetServerPrivateNetworksResponse,
unmarshalSetting,
} from './marshalling.gen'
import type {
AddOptionServerRequest,
AddServerPrivateNetworkRequest,
BMCAccess,
CreateServerRequest,
DeleteOptionServerRequest,
DeleteServerPrivateNetworkRequest,
DeleteServerRequest,
GetBMCAccessRequest,
GetOSRequest,
Expand All @@ -57,6 +64,8 @@ import type {
ListOptionsResponse,
ListServerEventsRequest,
ListServerEventsResponse,
ListServerPrivateNetworksRequest,
ListServerPrivateNetworksResponse,
ListServersRequest,
ListServersResponse,
ListSettingsRequest,
Expand All @@ -66,6 +75,9 @@ import type {
Option,
RebootServerRequest,
Server,
ServerPrivateNetwork,
SetServerPrivateNetworksRequest,
SetServerPrivateNetworksResponse,
Setting,
StartBMCAccessRequest,
StartServerRequest,
Expand Down Expand Up @@ -714,4 +726,128 @@ export class BaremetalV1GenAPI extends API {
},
unmarshalOS,
)

/**
* Add a server to a private network
*
* @param request - The request {@link AddServerPrivateNetworkRequest}
* @returns A Promise of ServerPrivateNetwork
*/
addServerPrivateNetwork = (
request: Readonly<AddServerPrivateNetworkRequest>,
) =>
this.client.fetch<ServerPrivateNetwork>(
{
body: JSON.stringify(
marshalAddServerPrivateNetworkRequest(request, this.client.settings),
),
headers: jsonContentHeaders,
method: 'POST',
path: `/baremetal/v1/zones/${validatePathParam(
'zone',
request.zone ?? this.client.settings.defaultZone,
)}/servers/${validatePathParam(
'serverId',
request.serverId,
)}/private-networks`,
},
unmarshalServerPrivateNetwork,
)

/**
* Set multiple private networks on a server
*
* @param request - The request {@link SetServerPrivateNetworksRequest}
* @returns A Promise of SetServerPrivateNetworksResponse
*/
setServerPrivateNetworks = (
request: Readonly<SetServerPrivateNetworksRequest>,
) =>
this.client.fetch<SetServerPrivateNetworksResponse>(
{
body: JSON.stringify(
marshalSetServerPrivateNetworksRequest(request, this.client.settings),
),
headers: jsonContentHeaders,
method: 'PUT',
path: `/baremetal/v1/zones/${validatePathParam(
'zone',
request.zone ?? this.client.settings.defaultZone,
)}/servers/${validatePathParam(
'serverId',
request.serverId,
)}/private-networks`,
},
unmarshalSetServerPrivateNetworksResponse,
)

protected pageOfListServerPrivateNetworks = (
request: Readonly<ListServerPrivateNetworksRequest> = {},
) =>
this.client.fetch<ListServerPrivateNetworksResponse>(
{
method: 'GET',
path: `/baremetal/v1/zones/${validatePathParam(
'zone',
request.zone ?? this.client.settings.defaultZone,
)}/server-private-networks`,
urlParams: urlParams(
['order_by', request.orderBy ?? 'created_at_asc'],
[
'organization_id',
request.organizationId ??
this.client.settings.defaultOrganizationId,
],
['page', request.page],
[
'page_size',
request.pageSize ?? this.client.settings.defaultPageSize,
],
['private_network_id', request.privateNetworkId],
[
'project_id',
request.projectId ?? this.client.settings.defaultProjectId,
],
['server_id', request.serverId],
),
},
unmarshalListServerPrivateNetworksResponse,
)

/**
* List the private networks of a server
*
* @param request - The request {@link ListServerPrivateNetworksRequest}
* @returns A Promise of ListServerPrivateNetworksResponse
*/
listServerPrivateNetworks = (
request: Readonly<ListServerPrivateNetworksRequest> = {},
) =>
enrichForPagination(
'serverPrivateNetworks',
this.pageOfListServerPrivateNetworks,
request,
)

/**
* Delete a private network
*
* @param request - The request {@link DeleteServerPrivateNetworkRequest}
*/
deleteServerPrivateNetwork = (
request: Readonly<DeleteServerPrivateNetworkRequest>,
) =>
this.client.fetch<void>({
method: 'DELETE',
path: `/baremetal/v1/zones/${validatePathParam(
'zone',
request.zone ?? this.client.settings.defaultZone,
)}/servers/${validatePathParam(
'serverId',
request.serverId,
)}/private-networks/${validatePathParam(
'privateNetworkId',
request.privateNetworkId,
)}`,
})
}
10 changes: 9 additions & 1 deletion packages/clients/src/api/baremetal/v1/content.gen.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
// This file was automatically generated. DO NOT EDIT.
// If you have any remark or suggestion do not hesitate to open an issue.
import type { ServerInstallStatus, ServerStatus } from './types.gen'
import type {
ServerInstallStatus,
ServerPrivateNetworkStatus,
ServerStatus,
} from './types.gen'

/** Lists transient statutes of the enum {@link ServerInstallStatus}. */
export const SERVER_INSTALL_TRANSIENT_STATUSES: ServerInstallStatus[] = [
'to_install',
'installing',
]

/** Lists transient statutes of the enum {@link ServerPrivateNetworkStatus}. */
export const SERVER_PRIVATE_NETWORK_TRANSIENT_STATUSES: ServerPrivateNetworkStatus[] =
['attaching', 'detaching']

/** Lists transient statutes of the enum {@link ServerStatus}. */
export const SERVER_TRANSIENT_STATUSES: ServerStatus[] = [
'delivering',
Expand Down
69 changes: 69 additions & 0 deletions packages/clients/src/api/baremetal/v1/marshalling.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {
import type { DefaultValues } from '../../../bridge'
import type {
AddOptionServerRequest,
AddServerPrivateNetworkRequest,
BMCAccess,
CPU,
CreateServerRequest,
Expand All @@ -23,6 +24,7 @@ import type {
ListOffersResponse,
ListOptionsResponse,
ListServerEventsResponse,
ListServerPrivateNetworksResponse,
ListServersResponse,
ListSettingsResponse,
Memory,
Expand All @@ -38,7 +40,10 @@ import type {
ServerEvent,
ServerInstall,
ServerOption,
ServerPrivateNetwork,
ServerRescueServer,
SetServerPrivateNetworksRequest,
SetServerPrivateNetworksResponse,
Setting,
StartBMCAccessRequest,
StartServerRequest,
Expand Down Expand Up @@ -326,6 +331,25 @@ const unmarshalServerEvent = (data: unknown) => {
} as ServerEvent
}

export const unmarshalServerPrivateNetwork = (data: unknown) => {
if (!isJSONObject(data)) {
throw new TypeError(
`Unmarshalling the type 'ServerPrivateNetwork' failed as data isn't a dictionary.`,
)
}

return {
createdAt: unmarshalDate(data.created_at),
id: data.id,
privateNetworkId: data.private_network_id,
projectId: data.project_id,
serverId: data.server_id,
status: data.status,
updatedAt: unmarshalDate(data.updated_at),
vlan: data.vlan,
} as ServerPrivateNetwork
}

export const unmarshalSetting = (data: unknown) => {
if (!isJSONObject(data)) {
throw new TypeError(
Expand Down Expand Up @@ -420,6 +444,22 @@ export const unmarshalListServerEventsResponse = (data: unknown) => {
} as ListServerEventsResponse
}

export const unmarshalListServerPrivateNetworksResponse = (data: unknown) => {
if (!isJSONObject(data)) {
throw new TypeError(
`Unmarshalling the type 'ListServerPrivateNetworksResponse' failed as data isn't a dictionary.`,
)
}

return {
serverPrivateNetworks: unmarshalArrayOfObject(
data.server_private_networks,
unmarshalServerPrivateNetwork,
),
totalCount: data.total_count,
} as ListServerPrivateNetworksResponse
}

export const unmarshalListServersResponse = (data: unknown) => {
if (!isJSONObject(data)) {
throw new TypeError(
Expand All @@ -446,6 +486,21 @@ export const unmarshalListSettingsResponse = (data: unknown) => {
} as ListSettingsResponse
}

export const unmarshalSetServerPrivateNetworksResponse = (data: unknown) => {
if (!isJSONObject(data)) {
throw new TypeError(
`Unmarshalling the type 'SetServerPrivateNetworksResponse' failed as data isn't a dictionary.`,
)
}

return {
serverPrivateNetworks: unmarshalArrayOfObject(
data.server_private_networks,
unmarshalServerPrivateNetwork,
),
} as SetServerPrivateNetworksResponse
}

const marshalCreateServerRequestInstall = (
request: CreateServerRequestInstall,
defaults: DefaultValues,
Expand All @@ -466,6 +521,13 @@ export const marshalAddOptionServerRequest = (
expires_at: request.expiresAt,
})

export const marshalAddServerPrivateNetworkRequest = (
request: AddServerPrivateNetworkRequest,
defaults: DefaultValues,
): Record<string, unknown> => ({
private_network_id: request.privateNetworkId,
})

export const marshalCreateServerRequest = (
request: CreateServerRequest,
defaults: DefaultValues,
Expand Down Expand Up @@ -512,6 +574,13 @@ export const marshalRebootServerRequest = (
boot_type: request.bootType,
})

export const marshalSetServerPrivateNetworksRequest = (
request: SetServerPrivateNetworksRequest,
defaults: DefaultValues,
): Record<string, unknown> => ({
private_network_ids: request.privateNetworkIds,
})

export const marshalStartBMCAccessRequest = (
request: StartBMCAccessRequest,
defaults: DefaultValues,
Expand Down
Loading