@@ -319,6 +319,14 @@ type ReleaseIPRequest struct {
319319IPID string `json:"-"`
320320}
321321
322+ // ReleaseIPSetRequest: release ip set request.
323+ type ReleaseIPSetRequest struct {
324+ // Region: region to target. If none is passed will use default region from the config.
325+ Region scw.Region `json:"-"`
326+
327+ IPIDs []string `json:"ip_ids"`
328+ }
329+
322330// UpdateIPRequest: update ip request.
323331type UpdateIPRequest struct {
324332// Region: region to target. If none is passed will use default region from the config.
@@ -420,6 +428,36 @@ func (s *API) ReleaseIP(req *ReleaseIPRequest, opts ...scw.RequestOption) error
420428return nil
421429}
422430
431+ // ReleaseIPSet:
432+ func (s * API ) ReleaseIPSet (req * ReleaseIPSetRequest , opts ... scw.RequestOption ) error {
433+ var err error
434+
435+ if req .Region == "" {
436+ defaultRegion , _ := s .client .GetDefaultRegion ()
437+ req .Region = defaultRegion
438+ }
439+
440+ if fmt .Sprint (req .Region ) == "" {
441+ return errors .New ("field Region cannot be empty in request" )
442+ }
443+
444+ scwReq := & scw.ScalewayRequest {
445+ Method : "POST" ,
446+ Path : "/ipam/v1/regions/" + fmt .Sprint (req .Region ) + "/ip-sets/release" ,
447+ }
448+
449+ err = scwReq .SetBody (req )
450+ if err != nil {
451+ return err
452+ }
453+
454+ err = s .client .Do (scwReq , nil , opts ... )
455+ if err != nil {
456+ return err
457+ }
458+ return nil
459+ }
460+
423461// GetIP: Retrieve details of an existing IP, specified by its IP ID.
424462func (s * API ) GetIP (req * GetIPRequest , opts ... scw.RequestOption ) (* IP , error ) {
425463var err error
0 commit comments