psu/client/resourceControl_update.go
2019-11-26 23:27:15 -05:00

35 lines
1.0 KiB
Go

package client
import (
"fmt"
"net/http"
portainer "github.com/portainer/portainer/api"
)
// ResourceControlUpdateOptions represents options passed to PortainerClient.ResourceControlUpdate()
type ResourceControlUpdateOptions struct {
ID portainer.ResourceControlID
Public bool
Users []portainer.UserID
Teams []portainer.TeamID
}
// ResourceControlUpdateRequest represents the body of a request to PUT /resource_controls/{id}
type ResourceControlUpdateRequest struct {
Public bool `json:",omitempty"`
Users []portainer.UserID `json:",omitempty"`
Teams []portainer.TeamID `json:",omitempty"`
}
func (n *portainerClientImp) ResourceControlUpdate(options ResourceControlUpdateOptions) (resourceControl portainer.ResourceControl, err error) {
reqBody := ResourceControlUpdateRequest{
Public: options.Public,
Users: options.Users,
Teams: options.Teams,
}
err = n.DoJSONWithToken(fmt.Sprintf("resource_controls/%d", options.ID), http.MethodPut, http.Header{}, &reqBody, &resourceControl)
return
}