@@ -11,9 +11,11 @@ import type { WaitForOptions, Zone } from '../../../bridge'
1111import { SERVER_TRANSIENT_STATUSES } from './content.gen'
1212import {
1313 marshalAddOptionServerRequest ,
14+ marshalAddServerPrivateNetworkRequest ,
1415 marshalCreateServerRequest ,
1516 marshalInstallServerRequest ,
1617 marshalRebootServerRequest ,
18+ marshalSetServerPrivateNetworksRequest ,
1719 marshalStartBMCAccessRequest ,
1820 marshalStartServerRequest ,
1921 marshalUpdateIPRequest ,
@@ -26,19 +28,24 @@ import {
2628 unmarshalListOffersResponse ,
2729 unmarshalListOptionsResponse ,
2830 unmarshalListServerEventsResponse ,
31+ unmarshalListServerPrivateNetworksResponse ,
2932 unmarshalListServersResponse ,
3033 unmarshalListSettingsResponse ,
3134 unmarshalOS ,
3235 unmarshalOffer ,
3336 unmarshalOption ,
3437 unmarshalServer ,
38+ unmarshalServerPrivateNetwork ,
39+ unmarshalSetServerPrivateNetworksResponse ,
3540 unmarshalSetting ,
3641} from './marshalling.gen'
3742import type {
3843 AddOptionServerRequest ,
44+ AddServerPrivateNetworkRequest ,
3945 BMCAccess ,
4046 CreateServerRequest ,
4147 DeleteOptionServerRequest ,
48+ DeleteServerPrivateNetworkRequest ,
4249 DeleteServerRequest ,
4350 GetBMCAccessRequest ,
4451 GetOSRequest ,
@@ -57,6 +64,8 @@ import type {
5764 ListOptionsResponse ,
5865 ListServerEventsRequest ,
5966 ListServerEventsResponse ,
67+ ListServerPrivateNetworksRequest ,
68+ ListServerPrivateNetworksResponse ,
6069 ListServersRequest ,
6170 ListServersResponse ,
6271 ListSettingsRequest ,
@@ -66,6 +75,9 @@ import type {
6675 Option ,
6776 RebootServerRequest ,
6877 Server ,
78+ ServerPrivateNetwork ,
79+ SetServerPrivateNetworksRequest ,
80+ SetServerPrivateNetworksResponse ,
6981 Setting ,
7082 StartBMCAccessRequest ,
7183 StartServerRequest ,
@@ -714,4 +726,128 @@ export class BaremetalV1GenAPI extends API {
714726 } ,
715727 unmarshalOS ,
716728 )
729+
730+ /**
731+ * Add a server to a private network
732+ *
733+ * @param request - The request {@link AddServerPrivateNetworkRequest}
734+ * @returns A Promise of ServerPrivateNetwork
735+ */
736+ addServerPrivateNetwork = (
737+ request : Readonly < AddServerPrivateNetworkRequest > ,
738+ ) =>
739+ this . client . fetch < ServerPrivateNetwork > (
740+ {
741+ body : JSON . stringify (
742+ marshalAddServerPrivateNetworkRequest ( request , this . client . settings ) ,
743+ ) ,
744+ headers : jsonContentHeaders ,
745+ method : 'POST' ,
746+ path : `/baremetal/v1/zones/${ validatePathParam (
747+ 'zone' ,
748+ request . zone ?? this . client . settings . defaultZone ,
749+ ) } /servers/${ validatePathParam (
750+ 'serverId' ,
751+ request . serverId ,
752+ ) } /private-networks`,
753+ } ,
754+ unmarshalServerPrivateNetwork ,
755+ )
756+
757+ /**
758+ * Set multiple private networks on a server
759+ *
760+ * @param request - The request {@link SetServerPrivateNetworksRequest}
761+ * @returns A Promise of SetServerPrivateNetworksResponse
762+ */
763+ setServerPrivateNetworks = (
764+ request : Readonly < SetServerPrivateNetworksRequest > ,
765+ ) =>
766+ this . client . fetch < SetServerPrivateNetworksResponse > (
767+ {
768+ body : JSON . stringify (
769+ marshalSetServerPrivateNetworksRequest ( request , this . client . settings ) ,
770+ ) ,
771+ headers : jsonContentHeaders ,
772+ method : 'PUT' ,
773+ path : `/baremetal/v1/zones/${ validatePathParam (
774+ 'zone' ,
775+ request . zone ?? this . client . settings . defaultZone ,
776+ ) } /servers/${ validatePathParam (
777+ 'serverId' ,
778+ request . serverId ,
779+ ) } /private-networks`,
780+ } ,
781+ unmarshalSetServerPrivateNetworksResponse ,
782+ )
783+
784+ protected pageOfListServerPrivateNetworks = (
785+ request : Readonly < ListServerPrivateNetworksRequest > = { } ,
786+ ) =>
787+ this . client . fetch < ListServerPrivateNetworksResponse > (
788+ {
789+ method : 'GET' ,
790+ path : `/baremetal/v1/zones/${ validatePathParam (
791+ 'zone' ,
792+ request . zone ?? this . client . settings . defaultZone ,
793+ ) } /server-private-networks`,
794+ urlParams : urlParams (
795+ [ 'order_by' , request . orderBy ?? 'created_at_asc' ] ,
796+ [
797+ 'organization_id' ,
798+ request . organizationId ??
799+ this . client . settings . defaultOrganizationId ,
800+ ] ,
801+ [ 'page' , request . page ] ,
802+ [
803+ 'page_size' ,
804+ request . pageSize ?? this . client . settings . defaultPageSize ,
805+ ] ,
806+ [ 'private_network_id' , request . privateNetworkId ] ,
807+ [
808+ 'project_id' ,
809+ request . projectId ?? this . client . settings . defaultProjectId ,
810+ ] ,
811+ [ 'server_id' , request . serverId ] ,
812+ ) ,
813+ } ,
814+ unmarshalListServerPrivateNetworksResponse ,
815+ )
816+
817+ /**
818+ * List the private networks of a server
819+ *
820+ * @param request - The request {@link ListServerPrivateNetworksRequest}
821+ * @returns A Promise of ListServerPrivateNetworksResponse
822+ */
823+ listServerPrivateNetworks = (
824+ request : Readonly < ListServerPrivateNetworksRequest > = { } ,
825+ ) =>
826+ enrichForPagination (
827+ 'serverPrivateNetworks' ,
828+ this . pageOfListServerPrivateNetworks ,
829+ request ,
830+ )
831+
832+ /**
833+ * Delete a private network
834+ *
835+ * @param request - The request {@link DeleteServerPrivateNetworkRequest}
836+ */
837+ deleteServerPrivateNetwork = (
838+ request : Readonly < DeleteServerPrivateNetworkRequest > ,
839+ ) =>
840+ this . client . fetch < void > ( {
841+ method : 'DELETE' ,
842+ path : `/baremetal/v1/zones/${ validatePathParam (
843+ 'zone' ,
844+ request . zone ?? this . client . settings . defaultZone ,
845+ ) } /servers/${ validatePathParam (
846+ 'serverId' ,
847+ request . serverId ,
848+ ) } /private-networks/${ validatePathParam (
849+ 'privateNetworkId' ,
850+ request . privateNetworkId ,
851+ ) } `,
852+ } )
717853}
0 commit comments