package rg import ( "context" "errors" "net/http" "strconv" ) // Request struct for update resource group type UpdateRequest struct { // Resource group ID // Required: true RGID uint64 `url:"rgId" json:"rgId"` // New name // Required: false Name string `url:"name,omitempty" json:"name,omitempty"` // New description // Required: false Description string `url:"desc,omitempty" json:"desc,omitempty"` // Max size of memory in MB // Required: false MaxMemoryCapacity uint64 `url:"maxMemoryCapacity,omitempty" json:"maxMemoryCapacity,omitempty"` // Max size of aggregated virtual disks in GB // Required: false MaxVDiskCapacity uint64 `url:"maxVDiskCapacity,omitempty" json:"maxVDiskCapacity,omitempty"` // Max number of CPU cores // Required: false MaxCPUCapacity uint64 `url:"maxCPUCapacity,omitempty" json:"maxCPUCapacity,omitempty"` // Max sent/received network transfer peering // Required: false MaxNetworkPeerTransfer uint64 `url:"maxNetworkPeerTransfer,omitempty" json:"maxNetworkPeerTransfer,omitempty"` // Max number of assigned public IPs // Required: false MaxNumPublicIP uint64 `url:"maxNumPublicIP,omitempty" json:"maxNumPublicIP,omitempty"` // Register computes in registration system // Required: false RegisterComputes bool `url:"registerComputes,omitempty" json:"registerComputes,omitempty"` // Reason for action // Required: false Reason string `url:"reason,omitempty" json:"reason,omitempty"` } func (rgrq UpdateRequest) validate() error { if rgrq.RGID == 0 { return errors.New("field RGID can not be empty or equal to 0") } return nil } // Update updates resource group func (r RG) Update(ctx context.Context, req UpdateRequest) (bool, error) { err := req.validate() if err != nil { return false, err } url := "/cloudapi/rg/update" res, err := r.client.DecortApiCall(ctx, http.MethodPost, url, req) if err != nil { return false, err } result, err := strconv.ParseBool(string(res)) if err != nil { return false, err } return result, nil }