From eefff55d8c5b4f302de6c9af5128805c95204f1f Mon Sep 17 00:00:00 2001 From: scaleway-bot Date: Thu, 3 Nov 2022 16:43:30 +0000 Subject: [PATCH] feat: update generated APIs --- .../clients/src/api/baremetal/v1/api.gen.ts | 136 ++++++++++++++++++ .../src/api/baremetal/v1/content.gen.ts | 10 +- .../src/api/baremetal/v1/marshalling.gen.ts | 69 +++++++++ .../clients/src/api/baremetal/v1/types.gen.ts | 89 ++++++++++++ 4 files changed, 303 insertions(+), 1 deletion(-) diff --git a/packages/clients/src/api/baremetal/v1/api.gen.ts b/packages/clients/src/api/baremetal/v1/api.gen.ts index 05e8a2052..a83fafffd 100644 --- a/packages/clients/src/api/baremetal/v1/api.gen.ts +++ b/packages/clients/src/api/baremetal/v1/api.gen.ts @@ -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, @@ -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, @@ -57,6 +64,8 @@ import type { ListOptionsResponse, ListServerEventsRequest, ListServerEventsResponse, + ListServerPrivateNetworksRequest, + ListServerPrivateNetworksResponse, ListServersRequest, ListServersResponse, ListSettingsRequest, @@ -66,6 +75,9 @@ import type { Option, RebootServerRequest, Server, + ServerPrivateNetwork, + SetServerPrivateNetworksRequest, + SetServerPrivateNetworksResponse, Setting, StartBMCAccessRequest, StartServerRequest, @@ -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, + ) => + this.client.fetch( + { + 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, + ) => + this.client.fetch( + { + 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 = {}, + ) => + this.client.fetch( + { + 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 = {}, + ) => + enrichForPagination( + 'serverPrivateNetworks', + this.pageOfListServerPrivateNetworks, + request, + ) + + /** + * Delete a private network + * + * @param request - The request {@link DeleteServerPrivateNetworkRequest} + */ + deleteServerPrivateNetwork = ( + request: Readonly, + ) => + this.client.fetch({ + 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, + )}`, + }) } diff --git a/packages/clients/src/api/baremetal/v1/content.gen.ts b/packages/clients/src/api/baremetal/v1/content.gen.ts index 5311d3f4b..7d2b0d1af 100644 --- a/packages/clients/src/api/baremetal/v1/content.gen.ts +++ b/packages/clients/src/api/baremetal/v1/content.gen.ts @@ -1,6 +1,10 @@ // 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[] = [ @@ -8,6 +12,10 @@ export const SERVER_INSTALL_TRANSIENT_STATUSES: ServerInstallStatus[] = [ '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', diff --git a/packages/clients/src/api/baremetal/v1/marshalling.gen.ts b/packages/clients/src/api/baremetal/v1/marshalling.gen.ts index 6d84fa807..f7f6a6c89 100644 --- a/packages/clients/src/api/baremetal/v1/marshalling.gen.ts +++ b/packages/clients/src/api/baremetal/v1/marshalling.gen.ts @@ -11,6 +11,7 @@ import { import type { DefaultValues } from '../../../bridge' import type { AddOptionServerRequest, + AddServerPrivateNetworkRequest, BMCAccess, CPU, CreateServerRequest, @@ -23,6 +24,7 @@ import type { ListOffersResponse, ListOptionsResponse, ListServerEventsResponse, + ListServerPrivateNetworksResponse, ListServersResponse, ListSettingsResponse, Memory, @@ -38,7 +40,10 @@ import type { ServerEvent, ServerInstall, ServerOption, + ServerPrivateNetwork, ServerRescueServer, + SetServerPrivateNetworksRequest, + SetServerPrivateNetworksResponse, Setting, StartBMCAccessRequest, StartServerRequest, @@ -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( @@ -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( @@ -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, @@ -466,6 +521,13 @@ export const marshalAddOptionServerRequest = ( expires_at: request.expiresAt, }) +export const marshalAddServerPrivateNetworkRequest = ( + request: AddServerPrivateNetworkRequest, + defaults: DefaultValues, +): Record => ({ + private_network_id: request.privateNetworkId, +}) + export const marshalCreateServerRequest = ( request: CreateServerRequest, defaults: DefaultValues, @@ -512,6 +574,13 @@ export const marshalRebootServerRequest = ( boot_type: request.bootType, }) +export const marshalSetServerPrivateNetworksRequest = ( + request: SetServerPrivateNetworksRequest, + defaults: DefaultValues, +): Record => ({ + private_network_ids: request.privateNetworkIds, +}) + export const marshalStartBMCAccessRequest = ( request: StartBMCAccessRequest, defaults: DefaultValues, diff --git a/packages/clients/src/api/baremetal/v1/types.gen.ts b/packages/clients/src/api/baremetal/v1/types.gen.ts index 2c2c4ccfe..2eb269163 100644 --- a/packages/clients/src/api/baremetal/v1/types.gen.ts +++ b/packages/clients/src/api/baremetal/v1/types.gen.ts @@ -10,6 +10,12 @@ export type ListServerEventsRequestOrderBy = | 'created_at_asc' | 'created_at_desc' +export type ListServerPrivateNetworksRequestOrderBy = + | 'created_at_asc' + | 'created_at_desc' + | 'updated_at_asc' + | 'updated_at_desc' + export type ListServersRequestOrderBy = 'created_at_asc' | 'created_at_desc' export type ListSettingsRequestOrderBy = 'created_at_asc' | 'created_at_desc' @@ -42,6 +48,14 @@ export type ServerPingStatus = | 'ping_status_up' | 'ping_status_down' +export type ServerPrivateNetworkStatus = + | 'unknown' + | 'attaching' + | 'attached' + | 'error' + | 'detaching' + | 'locked' + export type ServerStatus = | 'unknown' | 'delivering' @@ -168,6 +182,11 @@ export interface ListServerEventsResponse { events: Array } +export interface ListServerPrivateNetworksResponse { + serverPrivateNetworks: Array + totalCount: number +} + /** List servers response */ export interface ListServersResponse { /** Total count of matching servers */ @@ -403,6 +422,26 @@ export interface ServerOption { expiresAt?: Date } +/** Server private network */ +export interface ServerPrivateNetwork { + /** The private network ID */ + id: string + /** The private network project ID */ + projectId: string + /** The server ID */ + serverId: string + /** The private network ID */ + privateNetworkId: string + /** The VLAN ID associated to the private network */ + vlan?: number + /** The configuration status of the private network */ + status: ServerPrivateNetworkStatus + /** The private network creation date */ + createdAt?: Date + /** The date the private network was last modified */ + updatedAt?: Date +} + /** Server. rescue server */ export interface ServerRescueServer { /** Rescue user name */ @@ -411,6 +450,10 @@ export interface ServerRescueServer { password: string } +export interface SetServerPrivateNetworksResponse { + serverPrivateNetworks: Array +} + /** Setting */ export interface Setting { /** ID of the setting */ @@ -701,3 +744,49 @@ export type GetOSRequest = { /** ID of the OS */ osId: string } + +export type AddServerPrivateNetworkRequest = { + /** Zone to target. If none is passed will use default zone from the config */ + zone?: Zone + /** The ID of the server */ + serverId: string + /** The ID of the private network */ + privateNetworkId: string +} + +export type SetServerPrivateNetworksRequest = { + /** Zone to target. If none is passed will use default zone from the config */ + zone?: Zone + /** The ID of the server */ + serverId: string + /** The IDs of the private networks */ + privateNetworkIds: Array +} + +export type ListServerPrivateNetworksRequest = { + /** Zone to target. If none is passed will use default zone from the config */ + zone?: Zone + /** The sort order for the returned private networks */ + orderBy?: ListServerPrivateNetworksRequestOrderBy + /** The page number for the returned private networks */ + page?: number + /** The maximum number of private networks per page */ + pageSize?: number + /** Filter private networks by server ID */ + serverId?: string + /** Filter private networks by private network ID */ + privateNetworkId?: string + /** Filter private networks by organization ID */ + organizationId?: string + /** Filter private networks by project ID */ + projectId?: string +} + +export type DeleteServerPrivateNetworkRequest = { + /** Zone to target. If none is passed will use default zone from the config */ + zone?: Zone + /** The ID of the server */ + serverId: string + /** The ID of the private network */ + privateNetworkId: string +}