network.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package functions
  2. import (
  3. "fmt"
  4. "net/http"
  5. "github.com/gravitl/netmaker/models"
  6. )
  7. // CreateNetwork - creates a network
  8. func CreateNetwork(payload *models.Network) *models.Network {
  9. return request[models.Network](http.MethodPost, "/api/networks", payload)
  10. }
  11. // UpdateNetwork - updates a network
  12. func UpdateNetwork(name string, payload *models.Network) *models.Network {
  13. return request[models.Network](http.MethodPut, "/api/networks/"+name, payload)
  14. }
  15. // UpdateNetworkNodeLimit - updates a network
  16. func UpdateNetworkNodeLimit(name string, nodeLimit int32) *models.Network {
  17. return request[models.Network](http.MethodPut, fmt.Sprintf("/api/networks/%s/nodelimit", name), &models.Network{
  18. NodeLimit: nodeLimit,
  19. })
  20. }
  21. // GetNetworks - fetch all networks
  22. func GetNetworks() *[]models.Network {
  23. return request[[]models.Network](http.MethodGet, "/api/networks", nil)
  24. }
  25. // GetNetwork - fetch a single network
  26. func GetNetwork(name string) *models.Network {
  27. return request[models.Network](http.MethodGet, "/api/networks/"+name, nil)
  28. }
  29. // DeleteNetwork - delete a network
  30. func DeleteNetwork(name string) *string {
  31. return request[string](http.MethodDelete, "/api/networks/"+name, nil)
  32. }
  33. // RefreshKeys - refresh public and private key pairs for a network
  34. func RefreshKeys(networkName string) *models.Network {
  35. return request[models.Network](http.MethodPost, fmt.Sprintf("/api/networks/%s/keyupdate", networkName), nil)
  36. }