@@ -13,6 +13,8 @@ import {
1313 marshalAddOptionServerRequest ,
1414 marshalCreateServerRequest ,
1515 marshalInstallServerRequest ,
16+ marshalPrivateNetworkApiAddServerPrivateNetworkRequest ,
17+ marshalPrivateNetworkApiSetServerPrivateNetworksRequest ,
1618 marshalRebootServerRequest ,
1719 marshalStartBMCAccessRequest ,
1820 marshalStartServerRequest ,
@@ -26,12 +28,15 @@ 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 {
@@ -57,15 +62,22 @@ import type {
5762 ListOptionsResponse ,
5863 ListServerEventsRequest ,
5964 ListServerEventsResponse ,
65+ ListServerPrivateNetworksResponse ,
6066 ListServersRequest ,
6167 ListServersResponse ,
6268 ListSettingsRequest ,
6369 ListSettingsResponse ,
6470 OS ,
6571 Offer ,
6672 Option ,
73+ PrivateNetworkApiAddServerPrivateNetworkRequest ,
74+ PrivateNetworkApiDeleteServerPrivateNetworkRequest ,
75+ PrivateNetworkApiListServerPrivateNetworksRequest ,
76+ PrivateNetworkApiSetServerPrivateNetworksRequest ,
6777 RebootServerRequest ,
6878 Server ,
79+ ServerPrivateNetwork ,
80+ SetServerPrivateNetworksResponse ,
6981 Setting ,
7082 StartBMCAccessRequest ,
7183 StartServerRequest ,
@@ -715,3 +727,140 @@ export class BaremetalV1GenAPI extends API {
715727 unmarshalOS ,
716728 )
717729}
730+
731+ /** Elastic Metal Private Network API. */
732+ export class BaremetalPrivateNetworkV1GenAPI extends API {
733+ /** Lists the available zones of the API. */
734+ public static readonly LOCALITIES : Zone [ ] = [ 'fr-par-2' ]
735+
736+ /**
737+ * Add a server to a private network
738+ *
739+ * @param request - The request {@link PrivateNetworkApiAddServerPrivateNetworkRequest}
740+ * @returns A Promise of ServerPrivateNetwork
741+ */
742+ addServerPrivateNetwork = (
743+ request : Readonly < PrivateNetworkApiAddServerPrivateNetworkRequest > ,
744+ ) =>
745+ this . client . fetch < ServerPrivateNetwork > (
746+ {
747+ body : JSON . stringify (
748+ marshalPrivateNetworkApiAddServerPrivateNetworkRequest (
749+ request ,
750+ this . client . settings ,
751+ ) ,
752+ ) ,
753+ headers : jsonContentHeaders ,
754+ method : 'POST' ,
755+ path : `/baremetal/v1/zones/${ validatePathParam (
756+ 'zone' ,
757+ request . zone ?? this . client . settings . defaultZone ,
758+ ) } /servers/${ validatePathParam (
759+ 'serverId' ,
760+ request . serverId ,
761+ ) } /private-networks`,
762+ } ,
763+ unmarshalServerPrivateNetwork ,
764+ )
765+
766+ /**
767+ * Set multiple private networks on a server
768+ *
769+ * @param request - The request {@link PrivateNetworkApiSetServerPrivateNetworksRequest}
770+ * @returns A Promise of SetServerPrivateNetworksResponse
771+ */
772+ setServerPrivateNetworks = (
773+ request : Readonly < PrivateNetworkApiSetServerPrivateNetworksRequest > ,
774+ ) =>
775+ this . client . fetch < SetServerPrivateNetworksResponse > (
776+ {
777+ body : JSON . stringify (
778+ marshalPrivateNetworkApiSetServerPrivateNetworksRequest (
779+ request ,
780+ this . client . settings ,
781+ ) ,
782+ ) ,
783+ headers : jsonContentHeaders ,
784+ method : 'PUT' ,
785+ path : `/baremetal/v1/zones/${ validatePathParam (
786+ 'zone' ,
787+ request . zone ?? this . client . settings . defaultZone ,
788+ ) } /servers/${ validatePathParam (
789+ 'serverId' ,
790+ request . serverId ,
791+ ) } /private-networks`,
792+ } ,
793+ unmarshalSetServerPrivateNetworksResponse ,
794+ )
795+
796+ protected pageOfListServerPrivateNetworks = (
797+ request : Readonly < PrivateNetworkApiListServerPrivateNetworksRequest > = { } ,
798+ ) =>
799+ this . client . fetch < ListServerPrivateNetworksResponse > (
800+ {
801+ method : 'GET' ,
802+ path : `/baremetal/v1/zones/${ validatePathParam (
803+ 'zone' ,
804+ request . zone ?? this . client . settings . defaultZone ,
805+ ) } /server-private-networks`,
806+ urlParams : urlParams (
807+ [ 'order_by' , request . orderBy ?? 'created_at_asc' ] ,
808+ [
809+ 'organization_id' ,
810+ request . organizationId ??
811+ this . client . settings . defaultOrganizationId ,
812+ ] ,
813+ [ 'page' , request . page ] ,
814+ [
815+ 'page_size' ,
816+ request . pageSize ?? this . client . settings . defaultPageSize ,
817+ ] ,
818+ [ 'private_network_id' , request . privateNetworkId ] ,
819+ [
820+ 'project_id' ,
821+ request . projectId ?? this . client . settings . defaultProjectId ,
822+ ] ,
823+ [ 'server_id' , request . serverId ] ,
824+ ) ,
825+ } ,
826+ unmarshalListServerPrivateNetworksResponse ,
827+ )
828+
829+ /**
830+ * List the private networks of a server
831+ *
832+ * @param request - The request {@link PrivateNetworkApiListServerPrivateNetworksRequest}
833+ * @returns A Promise of ListServerPrivateNetworksResponse
834+ */
835+ listServerPrivateNetworks = (
836+ request : Readonly < PrivateNetworkApiListServerPrivateNetworksRequest > = { } ,
837+ ) =>
838+ enrichForPagination (
839+ 'serverPrivateNetworks' ,
840+ this . pageOfListServerPrivateNetworks ,
841+ request ,
842+ )
843+
844+ /**
845+ * Delete a private network
846+ *
847+ * @param request - The request
848+ * {@link PrivateNetworkApiDeleteServerPrivateNetworkRequest}
849+ */
850+ deleteServerPrivateNetwork = (
851+ request : Readonly < PrivateNetworkApiDeleteServerPrivateNetworkRequest > ,
852+ ) =>
853+ this . client . fetch < void > ( {
854+ method : 'DELETE' ,
855+ path : `/baremetal/v1/zones/${ validatePathParam (
856+ 'zone' ,
857+ request . zone ?? this . client . settings . defaultZone ,
858+ ) } /servers/${ validatePathParam (
859+ 'serverId' ,
860+ request . serverId ,
861+ ) } /private-networks/${ validatePathParam (
862+ 'privateNetworkId' ,
863+ request . privateNetworkId ,
864+ ) } `,
865+ } )
866+ }
0 commit comments