| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | package functionsimport (	"fmt"	"net/http"	"github.com/gravitl/netmaker/models")type hostNetworksUpdatePayload struct {	Networks []string `json:"networks"`}// GetHosts - fetch all host entriesfunc GetHosts() *[]models.ApiHost {	return request[[]models.ApiHost](http.MethodGet, "/api/hosts", nil)}// DeleteHost - delete a hostfunc DeleteHost(hostID string, force bool) *models.ApiHost {	return request[models.ApiHost](http.MethodDelete, fmt.Sprintf("/api/hosts/%s?force=%t", hostID, force), nil)}// UpdateHost - update a hostfunc UpdateHost(hostID string, body *models.ApiHost) *models.ApiHost {	return request[models.ApiHost](http.MethodPut, "/api/hosts/"+hostID, body)}// AddHostToNetwork - add a network to hostfunc AddHostToNetwork(hostID, network string) *hostNetworksUpdatePayload {	return request[hostNetworksUpdatePayload](http.MethodPost, "/api/hosts/"+hostID+"/networks/"+network, nil)}// DeleteHostFromNetwork - deletes a network from hostfunc DeleteHostFromNetwork(hostID, network string) *hostNetworksUpdatePayload {	return request[hostNetworksUpdatePayload](http.MethodDelete, "/api/hosts/"+hostID+"/networks/"+network, nil)}// CreateRelay - add relay to a nodefunc CreateRelay(netID, nodeID string, relayedNodes []string) *models.ApiNode {	return request[models.ApiNode](http.MethodPost, fmt.Sprintf("/api/nodes/%s/%s/createrelay", netID, nodeID), &models.RelayRequest{		NodeID:       nodeID,		NetID:        netID,		RelayedNodes: relayedNodes,	})}// DeleteRelay - remove relay from a nodefunc DeleteRelay(netID, nodeID string) *models.ApiNode {	return request[models.ApiNode](http.MethodDelete, fmt.Sprintf("/api/nodes/%s/%s/deleterelay", netID, nodeID), nil)}// RefreshKeys - refresh wireguard keysfunc RefreshKeys(hostID string) any {	if hostID == "" {		return request[any](http.MethodPut, "/api/hosts/keys", nil)	}	return request[any](http.MethodPut, fmt.Sprintf("/api/hosts/%s/keys", hostID), nil)}
 |