@@ -2108,6 +2108,21 @@ type ApplyBlockMigrationRequest struct {
21082108 ValidationKey string `json:"validation_key,omitempty"`
21092109}
21102110
2111+ // AttachServerFileSystemRequest: attach server file system request.
2112+ type AttachServerFileSystemRequest struct {
2113+ // Zone: zone to target. If none is passed will use default zone from the config.
2114+ Zone scw.Zone `json:"-"`
2115+
2116+ ServerID string `json:"-"`
2117+
2118+ FilesystemID string `json:"filesystem_id,omitempty"`
2119+ }
2120+
2121+ // AttachServerFileSystemResponse: attach server file system response.
2122+ type AttachServerFileSystemResponse struct {
2123+ Server * Server `json:"server"`
2124+ }
2125+
21112126// AttachServerVolumeRequest: attach server volume request.
21122127type AttachServerVolumeRequest struct {
21132128 // Zone: zone to target. If none is passed will use default zone from the config.
@@ -2591,6 +2606,21 @@ type DeleteVolumeRequest struct {
25912606 VolumeID string `json:"-"`
25922607}
25932608
2609+ // DetachServerFileSystemRequest: detach server file system request.
2610+ type DetachServerFileSystemRequest struct {
2611+ // Zone: zone to target. If none is passed will use default zone from the config.
2612+ Zone scw.Zone `json:"-"`
2613+
2614+ ServerID string `json:"-"`
2615+
2616+ FilesystemID string `json:"filesystem_id,omitempty"`
2617+ }
2618+
2619+ // DetachServerFileSystemResponse: detach server file system response.
2620+ type DetachServerFileSystemResponse struct {
2621+ Server * Server `json:"server"`
2622+ }
2623+
25942624// DetachServerVolumeRequest: detach server volume request.
25952625type DetachServerVolumeRequest struct {
25962626 // Zone: zone to target. If none is passed will use default zone from the config.
@@ -4761,6 +4791,78 @@ func (s *API) DetachServerVolume(req *DetachServerVolumeRequest, opts ...scw.Req
47614791 return & resp , nil
47624792}
47634793
4794+ // AttachServerFileSystem: Attach a filesystem volume to an Instance.
4795+ func (s * API ) AttachServerFileSystem (req * AttachServerFileSystemRequest , opts ... scw.RequestOption ) (* AttachServerFileSystemResponse , error ) {
4796+ var err error
4797+
4798+ if req .Zone == "" {
4799+ defaultZone , _ := s .client .GetDefaultZone ()
4800+ req .Zone = defaultZone
4801+ }
4802+
4803+ if fmt .Sprint (req .Zone ) == "" {
4804+ return nil , errors .New ("field Zone cannot be empty in request" )
4805+ }
4806+
4807+ if fmt .Sprint (req .ServerID ) == "" {
4808+ return nil , errors .New ("field ServerID cannot be empty in request" )
4809+ }
4810+
4811+ scwReq := & scw.ScalewayRequest {
4812+ Method : "POST" ,
4813+ Path : "/instance/v1/zones/" + fmt .Sprint (req .Zone ) + "/servers/" + fmt .Sprint (req .ServerID ) + "/attach-filesystem" ,
4814+ }
4815+
4816+ err = scwReq .SetBody (req )
4817+ if err != nil {
4818+ return nil , err
4819+ }
4820+
4821+ var resp AttachServerFileSystemResponse
4822+
4823+ err = s .client .Do (scwReq , & resp , opts ... )
4824+ if err != nil {
4825+ return nil , err
4826+ }
4827+ return & resp , nil
4828+ }
4829+
4830+ // DetachServerFileSystem: Detach a filesystem volume to an Instance.
4831+ func (s * API ) DetachServerFileSystem (req * DetachServerFileSystemRequest , opts ... scw.RequestOption ) (* DetachServerFileSystemResponse , error ) {
4832+ var err error
4833+
4834+ if req .Zone == "" {
4835+ defaultZone , _ := s .client .GetDefaultZone ()
4836+ req .Zone = defaultZone
4837+ }
4838+
4839+ if fmt .Sprint (req .Zone ) == "" {
4840+ return nil , errors .New ("field Zone cannot be empty in request" )
4841+ }
4842+
4843+ if fmt .Sprint (req .ServerID ) == "" {
4844+ return nil , errors .New ("field ServerID cannot be empty in request" )
4845+ }
4846+
4847+ scwReq := & scw.ScalewayRequest {
4848+ Method : "POST" ,
4849+ Path : "/instance/v1/zones/" + fmt .Sprint (req .Zone ) + "/servers/" + fmt .Sprint (req .ServerID ) + "/detach-filesystem" ,
4850+ }
4851+
4852+ err = scwReq .SetBody (req )
4853+ if err != nil {
4854+ return nil , err
4855+ }
4856+
4857+ var resp DetachServerFileSystemResponse
4858+
4859+ err = s .client .Do (scwReq , & resp , opts ... )
4860+ if err != nil {
4861+ return nil , err
4862+ }
4863+ return & resp , nil
4864+ }
4865+
47644866// ListImages: List all existing Instance images.
47654867func (s * API ) ListImages (req * ListImagesRequest , opts ... scw.RequestOption ) (* ListImagesResponse , error ) {
47664868 var err error
0 commit comments